I have been working on simulating a pressure sensor for humanoid robots. Pressure sensors mounted on both feet of a humanoid can provide a measure of how the weight of the robot is distributed across its entire body. This information is useful for humanoid robot balancing and stable walking algorithms.
There are a couple of different methods to simulate a pressure sensor and I have been looking at two. The first method is to measure or read the force that is acting on the sensor and the second is to calculate the force directly using center of mass (COM) and acceleration.
Depending on the physics or game engine that you are using, getting the force on an object might not be an easy task. I am using the Unity engine with integrated Ageia PhysX so one would think that this force information is available to Unity developers, but it is not! On to the second method!
Simulating pressure using COM. If we ignore external forces( servo forces should be negligible for small humanoids, but I will have to experiment with standing and squatting to be sure ) applied to the robot, the force on a pressure sensor should be directly related to the mass or weight applied and gravity. So basically to calculate pressure I will:
1.) Calculate the COM
2.) Calculate the applied mass using COM and 3d position of the pressure sensor
3.) Force = M*G
I think this should work. I have read Pratt’s dissertation on “Exploiting Inherent Robustness and Natural Dynamics in the Control of Bipedal Walking Robots” and have used this information before for implementing basic walking algorithms.
As a first pass I will be implementing this on a simulated Robonova. Keep ya posted!