Pages

Saturday, July 20, 2019

Simulating Balance: ZMP and Support Polygon

As briefly visited in an earlier blog, when considering the natural motion of a biped’s joints through gait phases I was able to make use of a simple inverted pendulum which I discovered through research into Zero Movement Points.

“ZMP is defined as the point on the ground where the net moment of the inertial forces and the gravity forces has no component along the horizontal axes” (Goswami, 2009, p. 9).

My solution was not produced to account for gravity on the biped, due to the time constraints of the project - though if it were to be expanded, while significantly increasing the systems complexity would produce more realistic behaviours as the biped system adapts its speed and posture with the goal of remaining balanced.

This would allow more realistic behaviours when traversing different terrain types and also from interactions from external forces.

To define the ZMP of a legged system, a single point is approximated by evaluating the ZMP as a function of the systems centre of mass position and centre of mass acceleration as discussed by Danilov et al. (2016, pp. 3-4).



The postural stability of the legged systems is then assessed by the position and velocity of the ZMP relative to the biped systems support polygon.


Support Polygon 

“The support polygon is the minimized polygon which connects all contact points of the robot with the floor.” (Burkhard et al., 2009, p. 11)

Figure 1: Visualisation of a support polygon (Goswami, 2009, p. 8)

For the biped to remain balanced the ZMP must always lay within the support polygon, else the system will become unbalanced and fall.

The ZMP position can be controlled by adjusting the biped systems centre of mass acceleration. My existing solution could be expanded to automatically adjust its posture to remain believably balanced.

This would still likely leave instances where the biped becomes unbalanced as the ZMP moves closer to and exits the support polygon. The position and velocity of the ZMP could be monitored to then effect corrective repositioning the leg limbs to counteract the ZMP deviation from the support polygon centre.


Application to my solution 

As demonstrated by my existing solution, it is possible to replicate natural motion without considerations being made for gravity – though having the biped be able to adapt to varied terrain and external forces would of course be a more realistic simulation of natural human motion.

To do this most accurately, it may most effective overhaul the existing functionality to generate upward forces by simulating muscle contractions/relaxation between bones across each joint, as is explored in Verrelst et al. (2002, pp 2-4) through simulating McKibben artificial muscles, though this would significantly extend total development time. Many independent systems would need to be created to provide the systems function.

Instead I would adapt the existing solution by simply applying an upward force to the root node of the system (hip joint) and also to the root of the arm chains (shoulder joints) to support the biped skeleton. The value of the upward force applied at the selected joints would be determined by the biped posture (and the resulting deviation of the ZMP position from the support polygon, with a lower upward force value the closer to the edge of the support polygon the ZMP is) and the current gait phase during locomotion.

To find the centre of mass position, the positions of each joint on the horizontal plane could be averaged, with more weighting given to the positions of joints higher on the y-axis.

As the ZMP nears the support polygon edge, proportional corrective movements can occur in the biped joint system to counteract the ZMP position deviation.
During relatively minor deviation, the ZMP could be recentered to the support polygon by linearly decreasing the bipeds centre of mass speed as it moves toward the edge of the support polygon as discussed by Kanoun, Laumond and Yoshida (2010, pp. 478-479). The velocity of the centre of mass would be best calculated with a PID controller and an inverted pendulum model (as explored in an earlier blog entry).
To add to this correction, the position of the arm chains could be adjusted to alter the systems centre of mass (as these limbs are not directly involved in locomotion, and joints higher on the y-axis would have a greater effect on the centre of mass calculation).

Figure 2: ZMP position through gait sub-phases (Burkhard et al., 2009, p. 11)

If the ZMP deviation becomes too great and it moves through the edge of the support polygon, behaviour would need to be created to allow for the swing phase limb to be rapidly placed on the floor and the supporting limb to quickly reposition to create a support polygon containing the ZMP to allow for the other responses to deviation to rebalance the biped system.

Once implemented, the new behaviour should allow for the biped to react to external forces, move across varied terrain and pick-up/carry weighted objects.


References
Burkhard, H., Holzhauer, F., Krause, T., Mellmann, H., Ritter, C., Welter, O. and Xu, Y. (2009). Nao-team Humboldt 2009. [online] pp.3-10. Available at: http://www.naoteamhumboldt.de/en/ [Accessed 18 Jul. 2019].

Danilov, I., Gabbasov, B., Afanasyev, I. and Magid, E. (2016). ZMP Trajectory from Human Body Locomotion Dynamics Evaluated by Kinect-based Motion Capture System. Proceedings of the 11th Joint Conference on Computer Vision, Imaging and Computer Graphics Theory and Applications, [online] pp.2-6. Available at: http://ipisoft.com/pr/papers/paper166.pdf [Accessed 18 Jul. 2019].

Goswami, D. (2009). BIPED LOCOMOTION: STABILITY ANALYSIS, GAITGENERATION AND CONTROL. Ph.D. NATIONAL UNIVERSITY OF SINGAPORE. [online] pp 1-59, 60-79, 85-142. Available at: https://core.ac.uk/download/pdf/48631345.pdf [Accessed 18 Jul. 2019].

Kanoun, O., Laumond, J. and Yoshida, E. (2010). Planning foot placements for a humanoid robot: A problem of inverse kinematics. The International Journal of Robotics Research, 30(4), [online] pp.476-485. Available at: https://staff.aist.go.jp/e.yoshida/papers/ijrr2011-kanoun.pdf [Accessed 18 Jul. 2019].

Verrelst, B., Van Ham, R., Daerden, F. and Lefeber, D. (2002). Design of a Biped Actuated by Pleated PneumaticArtificial Muscles. [online] pp.1-5. Available at: http://lucy.vub.ac.be/publications/clawar2002_verrelst.pdf [Accessed 18 Jul. 2019].

Bibliography
Alqudah, et. al., A. (2015). Design Techniques Study of PID Controllers. International Journal of Computing and Digital Systems, [online] pp.101-109. Available at: https://pdfs.semanticscholar.org/4f7e/4054d547b49be0c8a40b77ef7b4cf44da241.pdf [Accessed 18 Jul. 2019].

Ang, K.H. and Chong, G.C.Y. and Li, Y. (2005) PID control systemanalysis, design, and technology.IEEE Transactions on Control Systems Technology [online] pp. 559-576. Available at: https://core.ac.uk/download/pdf/1394222.pdf [Accessed 18 Jul. 2019].

Montes, H., Nabulsi, S. and Armada, M. (2005). Detecting Zero-Moment Point in Legged Robot. Climbing and Walking Robots, [online] pp.229-236. Available at: https://link.springer.com/chapter/10.1007/3-540-29461-9_21 [Accessed 18 Jul. 2019].

Pristovani, R., Henfri, B., Sanggar, D. and Dadet, P. (2017). Walking strategy model based on zero moment point with single inverted pendulum approach in “T-FLoW” humanoid robot. 2017 2nd International conferences on Information Technology, Information Systems and Electrical Engineering (ICITISEE). [online] Available at: https://ieeexplore-ieee-org.uos.idm.oclc.org/stamp/stamp.jsp?tp=&arnumber=8285498 [Accessed 18 Jul. 2019].