Programming manual for Meca500 (for firmware 9.2.x)
13
BASIC THEORy ANd dEfINITIONS
1.3.4 Position and velocity modes
As already mentioned in the previous section, the conventional way of moving an industrial robot is by
requesting that its end-effector move to a desired pose or that its joints rotate to a desired joint set. This
basic control method is called
position mode
. If the robot must also follow a linear path, then you must
use the Cartesian-space motion commands
MoveLin
,
MoveLinRelTrf
and
MoveLinRelWrf
. If the goal is
to get the robot's end-effector to a certain pose or to rotate the robot's joints to a certain joint set or by
a certain amount, then use the joint-space motion commands
MovePose
,
MoveJoints
, or
MoveJointsRel
,
respectively.
In position mode, with Cartesian-space motion commands, it is possible to specify the maximum
linear and angular velocities, and the maximum accelerations for the end-effector. However, you
cannot set a limit on the joint velocities and accelerations. Thus, if the robot executes a Cartesian-
space motion command and passes very close to a singular robot posture, even if its end-effector
speed and accelerations are very small, some joints may rotate at maximum speed and with maximum
acceleration. Similarly, with joint-space motion commands, it is possible to specify the maximum velocity
and acceleration of the joints, but it is impossible to limit either the velocity or the acceleration of the
robot's end-effector.
summarizes the possible settings for the velocity and acceleration in
position mode.
There is a second method to control the Meca500, by defining either its end-effector velocity or its joint
velocities. This robot control method is called the
velocity mode
. Velocity mode is designed for advanced
applications such as force control, dynamic path corrections, or telemanipulation (for example, the
jogging feature in Meca500's web interface is implemented using velocity-mode commands).
Controlling the robot in velocity mode requires one of the three velocity-mode motion commands:
MoveJointsVel
,
MoveLinVelTrf
or
MoveLinVelWrf
. Note that the effect from a velocity-mode motion
command lasts the time specified in the
SetVelTimeout
command or until a new velocity-mode
command is received. This timeout must be very small (the default value is 0.05 s, and the maximum
value 1 s). For the robot to continue moving after this timeout, another velocity-mode command can
be sent before this timeout. This new command will immediately replace the previous command and
restart the timeout. Position-mode and velocity-mode motion commands can be sent to the robot, in
any order. However, if the robot is moving in velocity mode, the only commands that will be executed
immediately, rather than after the velocity timeout, are other velocity-mode motion commands and
SetCheckpoint
,
GripperOpen
and
GripperClose
commands.
There is a significant difference in the behavior of position and velocity-mode motion commands.
In position mode, if a Cartesian-space motion command cannot be completely performed due to
a singularity or a joint limit, the motion will normally not start and a motion error will be raised,
that must be reset.
In velocity mode, if the robot runs into a singularity or a joint limit, it will simply stop without
raising an error. Furthermore, the velocity of the robot's end-effector or of the robot joints
is directly controlled. No other command can further limit (or override) these velocities. The
SetJointAcc
command only limits for joints for
MoveJointsVel
. The
SetCartAcc
only limits the
end-effector acceleration
MoveLinVelTrf
and
MoveLinVelWrf
(see