INRIA
BIPOP

-----------------------
Tutorial
-----------------------

About contacts between the body and the environment in HuMAnS

One of the main goals of the HuMAnS software is to simulate humanoid walking motions. The core of this job is to simulate articulated bodies with unilateral constraints, that is taking into account how the equations of motion are modified depending on the fact that a part of the model is in contact with the environment or not at a given position. So far in HuMAnS, only some specific points can be considered to be potentially in contact with the environment. We're going to present now how these potential points of contact are defined and modeled.


Points of contact

The definition of a Lagrangian dynamical Model includes the definition of a set of points of importance called Tags. A subset of these Tags is defined then to be the potential Contact_Points, defined more precisely as the set of indexes of Tags that might be in contact with the environment. When an update of the state of contacts happens, the position of these possible points of contact is compared to the position of the environment; if there is a contact for a point, the corresponding component of a boolean vector called ContactState is set to true (and to false otherwise of course). You will have to be careful in your choice of contact points with respect to a given motion in order not to obtain solids penetrating each other. For example in the 'Human36' model, the potential contact points are: 4 points on each foot, 1 on each hip and hand. So with this model you cannot simulate someone falling on the knees...


Environment

The comparison between the position of the potential points of contact and the environment is done in the LagrangianDynamics/*Name* module/directory by the function ContactEventDetection. If you look in the details of the functions used by our tutorial you will see that the potential points of contact are always considered to be above a constant altitude: we usually consider a planar ground, except for the 'ChairSitToStand' sample application where the model is sitting and therefore the hips are considered to be resting on a chair higher than the ground.


Last modification: