Range of Motion of the iCub Shoulders
The range of motion of the shoulders of iCub 2.x is constrained by the length of the tendons. Unfortunately, these constraints cannot be written in the form \(\left[\theta_{\text{min}}, \; \theta_{\text{max}}\right]\), which are the constraints currently implemented in the firmware.
Warning
Therefore, care must be taken when controlling the arm in the Joint Space to avoid reaching configurations that may break the tendons.
Note
By contrast, when controlling the arm in the Cartesian Space by means of the Cartesian Controller, the software will always find solutions for the reaching task that comply with the cable length constraints.
Correct Limits
The length of the tendons imposes the following constraints on the shoulder's joints:
where \(\mathbf{q}\) is the vector of the 3 shoulder's joints expressed in radians, whereas:
with \(c = 1.71\).
Remarkably, this set of constraints can be reduced by solving a linear programming problem whose outcome is:
Note
The Cartesian Controller software component implements the couple \(\left( \mathbf{A^*}, \; \mathbf{b^*}\right)\).