Rotary axes with a value range over 360°
Robots often have rotary axes with a value range over 360° For example, the last axis (orientation axis A3) of a SCARA robot can often travel more than one rotation, from about -540° to 540°.
This means that the same position and orientation can be approached in multiple ways. Staying with SCARA, for example, the orientation and position of the tool is identical, regardless of whether the last axis is at -170° or at 190° (= -170° + 360°). As a result, the conversion of Cartesian position and orientation to axis values (the kinematic inverse transformation) is not unique, but has several solutions.
This can be used, for example, in pick-and-place applications to save time by moving from 170° to 190° and not to -170°.
Note: The movement of the SCARA orientation axis can quickly become a limiting factor for the cycle time in these applications.
If the points to be traveled are commanded in the axis coordinate system (ACS), then it is clear for each axis what value it will take in the target point. On the other hand, in Cartesian commanding (X/Y/Z position and orientation in A/B/C) this ambiguity exists for rotary axes.
The configuration of kinematics is used for resolving this ambiguity. With SCARA robots, the configuration already includes the setting whether the SCARA should approach a point with ElbowRight or ElbowLeft. In addition, the SCARA configuration also includes the setting nPeriodA3, which can be used to determine how the ambiguity for axis A3 should be resolved.
For this purpose, the entire value range is divided into periods of length up to a maximum of 360°:
Period -1 from -540° to -180°
Period 1 from -180° to 180°
Period 2 from 180° to 540°
(For a larger value range of the axis, there are correspondingly more possible periods.)
There is also a special value. If nPeriodA3 := 0 is set, then an automatic resolution of ambiguity is activated. For PTP movements, this means that the period is selected so that the distance between the A3 axis and the starting position of the movement is as small as possible. (The behavior with CP movements is described below.)
It is therefore possible to control the resolution of the ambiguity of a rotary axis by setting the kinematic configuration accordingly. (See SMC_SetKinConfiguration.)
See also
During a CP movement (MC_MoveLinearAbsolute/MC_MoveLinearRelative, MC_MoveCircularAbsolute/MC_MoveCircularRelative), rotary axes are always driven in automatic mode. The period of the axis is always selected so that there is no jump in the axis.
It is possible that at the end of the CP movement, the commanded axis value would not be reached at the end of the CP movement, but that the axis would arrive in a different period due to the automatic selection of the period. This means that the commanded position cannot be reached with the selected movement type. This conflict is detected before reaching the target position, and the axis group is halted and an error is issued.
Example: The user uses a SCARA robot with three rotary axes A1, A2 and A3. A3 has a value range from -360° to +360°. The user teaches two positions in axis coordinates. Position1 = (A1 = 0°, A2 = 90°, A3 = 170°), Position2 = (A1 = 10°, A2 = 90°, A3 = -170°).
Then the user commands a linear movement (MC_MoveLinear/MC_MoveAbsolute)) with the orientation mode GreatCircle.
This combination of commanding in ACS and great circle orientation interpolation is in conflict. In order to follow the orientation interpolation, axis A3 would have to move from 170° in positive direction to 190°. Therefore, it cannot reach the required target position (-170°).
Note: for CP movements, the period of the rotary axis is determined by the selected interpolation type. This also means that the target position of the axis depends on the path on which the target point is approached. It is therefore possible, for example, that by blending between two movements an axis arrives in a different period than would have been the case with buffered movements.
See also