Using the presented approach based on ellipsoidal vector fields, for each point in space a velocity vector can be computed. However, the vector field does not incorporate the restrictions such as the joint angle limits. Therefore, if the leg hits a restriction during the swing movement it must cope with it by avoiding the restricted region. If the desired leg position gets too close to the singularity the leg position can be corrected by increasing the distance between the leg tip and the α-axis. If the leg tip leaves the leg tip/segment distance unrestrictedness, the leg can simply be moved away from the leg tip position of the adjacent leg until it is back inside the respective unrestrictedness.
For the joint angle unrestrictedness, however, a simple clipping of the joint angles at their limits does not always solve the problem. As described in section 2.1, the movements of the joint are coupled. Therefore, if the β-joint is at its limit for the upward movement of the femur and the trajectory generator still suggests to move the leg tip higher, this will not only affect the desired β-angle but also the desired α- and
γ-angles. Figure5.22shows exemplarily why a clipping of the joint angles at their limits will not work. If the β-joint is already at its upper limit and the desired position for the next iteration requires a further increase of the β-angle, using this concept, only the α- and γ-joints will be moved. In some cases, this will result in a vicious circle since the movement of α- and γ-joints might even lower the position of the leg tip by shifting its desired position in- or outwards.
bmax bmax bmax
(a) (b) (c) (d)
a-joint a-joint a-joint a-joint
Figure 5.22.: Illustration of the problem regarding simple clipping of joint angles in case the β-joint reaches its limit. (a) shows the leg in a configuration in which the
β-joint is already at its limit. In (b), the desired new leg configuration is shown in
gray for a foot point that is shifted upwards. (c) Clipping the β-joint at its angular limit but leaving the γ-joint at the angle defined by the desired configuration shown in (b). The foot position is shifted inwards. (d) Movement of the foot position over the course of the next iterations using the clipping method. Although the foot position is supposed to be lifted, it moves continuously inwards until it would reach the limit of the γ-joint.
pswt current position desired position bmax a-joint (a) bmax a-joint (b) p swt vtd pswt current position bmax a-joint (c) p swt current position bmax a-joint (d)
Figure 5.23.: The case already depicted in fig. 5.22 is addressed using a different strategy for the avoidance of the joint angle restriction. (a) shows the initial situation in which the leg tip is supposed to follow an ellipsoidal trajectory from the current
positions towards the goal position pswt. (b) shows possible positions of the leg tip by moving only the γ-joint. (c) shows a family of different possible trajectories for the movement to the target position. (d) shows the actual swing trajectory in black and the originally desired trajectory in grey. The swing trajectory is obtained by rotating only the γ-joint towards the target position (with β = βmax) until the vector field - based trajectory generation yields a desired position with β < βmax. At this point, the vector field is followed again, thus lowering the leg towards the target position.
A solution of this problem is depicted in fig. 5.23. Using the unrestricted joints, the leg tip is moved closer to the line defined by pswt+ δvtd, therefore the line defined by the target position and the target velocity vector. Since the scope of action depends on the number of unrestricted joints, in the following, situations of one and two restricted joints are handled separately.
If only one joint is restricted at position p, using the velocity vectors vn and vm (the
respective columns n and m of the forward kinematics Jacobian matrix) for movements of the remaining free joints n and m, an intermediate target position pinterm can be found that respects the joint angle restrictions:
pinterm = ptarget+ δ vtd (5.62)
= p + λn· vn+ λm· vm
pinterm represents a position that respects the local restriction of a joint and that lies on the line defined by the target direction vector vtd. To obtain a solution, eq. (5.62) must be solved for δ: δ = vm× (pswt− p) · vn (vm× vn) · vtd (5.63)
If two joints are at their limits, the remaining free joint must be used to move the leg tip closer to the target. An intermediate target position can be constructed by
pinterm = ptarget+ δ vtd+ ε (vn× vtd) (5.64)
= p + λn· vn .
Solved for λn, this yields:
λn= (pswt− p) × vtd · (vn× vtd) kvn× vtdk2 (5.65)
The goal position for the next iteration of the walking controller is computed by
p(t1) =
pinterm− p kpinterm− pk× s
(5.66)
with the desired speed s of the leg tip.
In combination with the evasion of the other restrictions (singularity, leg tip/segment, etc.), this approach might result in deadlocks. For example, if the desired leg position is located outside the leg tip distance unrestrictedness (therefore, too close to an neigh- boring leg), the desired position would be moved away from the adjacent leg. Due to this shift, one of the joint angle limits might be exceeded, which leads to the applica- tion of the correction mechanism described above. However, this might induce a shift of the desired position which moves it again out of the leg tip distance unrestricted- ness. Although these cases are rare, they usually prohibit further locomotion since the affected leg does not reestablish ground contact. As countermeasure, in these cases, the
target position pswt is successively moved towards the home position during multiple iterations of the walking controller until the leg tip reaches the target. Usually, by this measure, the problem is solved. However, an alternative solution for the generation of swing trajectories that directly incorporates the unrestrictednesses would be preferable.