8
Programming manual for Meca500 (for firmware 9.2.x)
BASIC THEORy ANd dEfINITIONS
, notes 1 and 2), setting a desired posture or turn configuration (with
SetConf
or
SetConfTurn
, respectively) disables the automatic posture or turn configuration selection, respectively,
which are both set by default. Inversely, enabling the automatic posture or turn configuration selection,
with
SetAutoConf
(1) or
SetAutoConfTurn
(1), respectively, removes the desired posture or turn
configuration, respectively. At any moment, if
SetAutoConf
(0) or
SetAutoConfTurn
(0) is executed, the
robot posture or turn configuration of the current robot position is set as the desired posture or turn
configuration, respectively.
Secondly (
, note 3), the commands
MoveJoints
,
MoveJointsRel
, and
MoveJointsVel
ignore
the automatic and manual configuration selections. Thus, the robot may end up in a posture or
turn configuration different from the desired ones, if such were set. If you want to update the
desired configurations with the current ones, simply execute the commands
SetAutoConf
(0) or
SetAutoConfTurn
(0).
Thirdly,
MovePose
respects any desired posture or turn configuration, as long as the desired robot
position is reachable (
, note 4). In contrast, if automatic posture and/or turn configuration
selection is enabled,
MovePose
will choose the joint position, corresponding to the desired end-effector
pose, that is fastest to reach, and that satisfies the desired posture or turn configuration, if any.
Fourthly, in the case of
MoveLin*
commands, the desired posture and turn configurations will force the
linear move to remain within the specified configuration or turn (
, notes 5 and 6). This means
that a
MoveLin
or
MoveLinRel*
command will be executed only if the posture and turn configurations
of the initial and final robot positions are the same as the desired configurations. In the case of
MoveLinVel*
, the robot will start to move only if the posture and turn configurations of the initial and
final robot positions are the same as the desired configurations, and will stop if desired configuration
parameter has to change. When automatic configuration selection is enabled, a
MoveLin*
command may
lead to changing the posture (if passing through a wrist or shoulder singularity) or turn configuration
along the path.
Finally, note that there is currently no way of specifying only one of the posture configuration
parameters and leaving the choice of the others to the robot controller. However, there is an indirect
way to specify the elbow and wrist configurations, though this can't be done "on the fly". Indeed, if you
prefer to always stick to one of the two possible wrist configurations, you can simply limit the range of
joint 5, to either positive or non-negative values, using the command
SetJointLimits
. Similarly, you can
fix the elbow configuration parameter by setting the range of joint 3 to be always smaller or larger than
−arctan(60/19) ≈ −72.43°.
1.2.3 Workspace and singularities
Users often oversimplify the workspace of a six-axis robot arm as a sphere of radius equal to the
reach
of the robot (the maximum distance between the axis of joint 1 and the center of the robot's wrist). The
truth is that the Cartesian
workspace
of a six-axis industrial robot is a six-dimensional entity: the set of
all attainable end-effector poses (see our tutorial on
, available on our web site). Therefore,
the workspace of a robot depends on the choice of TRF. Worse yet, as we saw in the preceding section,
for a given end-effector pose, we can generally have eight different robot postures (
). Thus, the
Cartesian workspace of a six-axis robot arm is the combination of eight workspace subsets, one for
each the eight robot posture configurations. These eight workspace subsets have common parts, but
there are also parts that belong to only one subset (i.e, there are end-effector poses accessible with only
one configuration, because of joint limits). Therefore, in order to make optimal use of all possible end-
effector poses, the robot must often pass from one subset to the other. These passages involve so-called
singularities and are problematic when the robot's end-effector is to follow a specific Cartesian path.