A balance is a measure of the position of the robot's body with respect to feet positions along a given dof. This measures are evaluated by comparing each leg position at a given moment with respect to a reference position that is at a fixed place with respect to the body. Both the legs and the reference positions are expressed in the reference frame of reference introduced in section 3.2.1.
The difference of a leg position with respect to its current reference position along a given dof is called the tension of this leg. There is a physical analogy that can illustrate the meaning of the tension. If we imagine that each leg is attached to the reference position by an ideal spring, then the tension correspond the the forces and moments that the spring connected to the leg exert on the robot's body.
Formally, if pi=(pix,piy,piz) is the current position of a leg in the reference frame and ri=(rix,riy,riz) is its reference position in this same frame of reference, we can compute and many different tensions as possible dof in the Euclidean space (i.e., Tx, Ty, Tz, Rx, Ry, Rz):
Normally, the reference position of a leg should be the central position of its workspace (the one reached when all motor angles are zero) but the user can select another initial reference position and he can on-line change the reference position for legs. Formally, if riniti is the initial reference position given by the user, then the reference position ri at a given moment is
The values of the tensions (and consequently the balance values) can be modified by moving legs (either individually of performing gestures) or by moving the reference positions. In our controllers both methods are used in different circumstances.
Returns the current tension produced by a given leg in the specified dof.
Returns the tension that a leg would exert on the robot's body in a given dof if the leg was placed at position. The position is given in the body frame of reference.
Returns the adding of tensions in a given dof for all legs.
Sets the parameter
Sets the parameter
Sets the values of the reference positions to its initial values (i.e., sets all reference movement
parameters ,
,
, rz, ry, and rx to 0).
Returns the initial reference position for the given leg (rinitleg).
Returns the current reference position for the given leg (rleg).