Simulating Human with Rigid Body Joints

Started by
12 comments, last by adriansnetlis 7 years, 12 months ago

Hm... I still want to know the principle of how human balances. For example, if the upper body part is starting to fall backwards - which mouscles does stretch and how much do they stretch?:)

By the way - the physical character in the video is amazing!:)

Advertisement
Project the vertices of the feet (or contacts) to the gravity plane (ground) and make the convex hull of them to get the 'support polygon'.

Next calculate the COM of all bodies (mass weighted average), project to ground plane too and try to keep it inside the support polygon.
That would be a very simple approach for balancing good enough for first experiments.

Something better using math from this paper:
https://www.google.at/url?sa=t&rct=j&q=&esrc=s&source=web&cd=2&cad=rja&uact=8&ved=0CCsQFjABahUKEwix8_XK3KHHAhVJiRoKHRpUBVs&url=http%3A%2F%2Frepository.tudelft.nl%2Fassets%2Fuuid%3A9e390296-9ba9-46d5-9b3f-3b7653b2d1ba%2FThesis_Sebastiaan_Kiemel.pdf&ei=fUfKVfHAKcmSapqoldgF&usg=AFQjCNFSJJKJA1c26bbxlR1fi1NqvC-jgA&sig2=HWl6Hh1P6NFa16njKwUWiw&bvm=bv.99804247,d.d2s
There is how to calculate the Center of Pressure,
and the Instaneous Capture Point (ICP).
If COP == ICP and both are in the support polygon, the human is balanced.
So a simple balance controller can calculate a ankle counter rotation from (COP-ICP) * userGain (used this in my video)

There's still a lot room for improvement, i took the route towards an analytical solution answering the 'how fast' question,
others use data from real humans as input for an optimization,
others use learning approaches (NaturalMation AFAIK, assumption again)
...

However, most effective muscles to move the com of upright humans are mainly the ankle joints.

You can do a lot of balancing by just considering the ankles or, more generally, rotating the floor contact plane relative to the character. For side-side balance, the equivalent of "ankle balance" in the fwd/back direction is pushing down with one foot - and you can generalise this into having a target plane for the feet that. This works when the feet are at awkward angles too, and can be extended to handle the feet being on uneven terrain.

However, you can do a lot more than just balancing with the ankles/feet. If you imagine standing facing out over a cliff top, feet so near the edge you can't step, and somebody gives you a shove from behind, you use your whole body to balance/try to recover - leaning forwards at the hip and "windmilling" your arms. It's worth thinking about what these actions are actually doing, how they induce forces on your feet which are the only ones that can affect your COM - its position and velocity. Ankles/feet are good for COM position control. Upper body motion is good for COM velocity control.

There are two types of forces on the feet that are relevant - normal and tangential (the latter coming from friction). It's easy to imagine (or even do!) an experiment where there's no tangential/frictional force - e.g. standing on ice. The other extreme, where you have a single contact point (i.e. you can make use of the friction forces, but the centre of pressure is always fixed) is harder to experience - would it be possible to stand on the tip of a spike, where you have no option to balance with just "ankle control"? See the "Balance Controller (new)" video here for the answer! http://royfeatherstone.org/skippy/

Are there any resources, tutorials or explanative guides for this topic around? It'd be great for me to read one.

This topic is closed to new replies.

Advertisement