Chapter 9: moveL
About This Chapter
moveL is a motion command that interpolates a straight-line trajectory for the TCP (Tool Center Point).
Use moveL for operations in which the TCP path matters, such as machining, measurement, dispensing, and welding.
However, moveL requires more computation than moveJ and is more susceptible to motion-speed and orientation constraints.
This chapter explains:
How moveL works internally
TCP coordinate system
Orientation interpolation
Inverse kinematics
Speed and acceleration
Precautions for use
9.1 What Is moveL?
The L in moveL stands for:
Linear
The TCP moves along a straight line, as shown below:
Start point
○────────────○
End point
The controller automatically calculates the intermediate orientations.
9.2 Difference from moveJ
moveJ:
Joint
↓
Joint interpolation
↓
TCP follows a curved path
moveL:
TCP
↓
TCP interpolation
↓
Joints are calculated using inverse kinematics
In other words:
moveJ is joint-based.
moveL is TCP-based.
9.3 What Is the TCP?
TCP stands for Tool Center Point.
It is the point at the end of the robot that is the target of control.
For example:
Flange
↓
Gripper
↓
Suction pad
↓
This point is the TCP
If the TCP is configured incorrectly, moveL will not follow the expected trajectory.
9.4 Pose
For moveL, specify a pose rather than joint positions.
[
x,
y,
z,
rx,
ry,
rz
]
Units:
x, y, z
↓
m
rx, ry, rz
↓
rad
9.5 Orientation
Both position and orientation are interpolated.
Start
↗
↓
End
→
The intermediate orientation also changes smoothly.
9.6 Internal Processing
moveL follows this sequence:
Pose
↓
TCP interpolation
↓
Inverse kinematics
↓
Joint angles
↓
Servo
This process is more complex than moveJ.
9.7 Inverse Kinematics
For moveL, inverse kinematics is solved at every control cycle.
TCP
↓
Joint
Consequently, an unreachable pose causes an error.
9.8 Singularities
As moveL approaches a singularity, joint velocities can increase sharply.
Typical examples include:
Wrist singularities
Elbow singularities
When velocity limits are reached, the motion may become slower than expected.
9.9 Speed
For moveL, specify the TCP speed.
The unit is:
m/s
This differs from the unit used by moveJ.
9.10 Acceleration
The unit is:
m/s²
This is the TCP acceleration.
9.11 Blend
A blend radius can also be specified for moveL.
○────○────○
↓
○╲__╱○
This enables continuous motion without stopping.
It is often used to shorten processing time.
9.12 Manufacturing Applications
moveL is used for:
Laser processing
3D printing
Dispensing
Adhesive application
Image-based measurement
This is because the TCP trajectory is maintained.
9.13 Applications Unsuitable for moveL
For simple movements to:
A retreat position
A home position
A taught point
moveJ is generally faster.
9.14 Unreachable Poses
For example, if a target is:
Outside the workspace
or violates a:
Joint limit
inverse kinematics may have no solution, causing moveL to fail.
9.15 Orientation Changes
With moveL, orientation matters as well as position.
For example:
Start
Tool →
End
Tool ↑
The orientation is interpolated as well.
A large orientation change may cause a joint limit to be reached at an intermediate point.
9.16 Choosing Between moveJ and moveL
A typical automated machine uses the following sequence:
Home
↓
moveJ
↓
Near the start of processing
↓
moveJ
↓
Processing start point
↓
moveL
↓
Processing
↓
moveL
↓
Retreat
↓
moveJ
moveL is used only during the processing segment.
9.17 Common Mistakes
Forgetting to configure the TCP
Mistaking the position unit for mm
Entering rx, ry, and rz in degrees
Specifying a point outside the workspace
Encountering a singularity
Requesting an excessively large orientation change
9.18 Implementation in ur_ctrl.py
In ur_ctrl.py, an interface such as:
move(
pose,
motion="line"
)
provides a straightforward way to invoke moveL internally.
Users do not need to call RTDEControlInterface directly.
9.19 Guidelines for Choosing moveJ or moveL
When in doubt, use the following criteria:
TCP trajectory is important → moveL
Only the final pose matters → moveJ
High-speed movement → moveJ
Processing or measurement → moveL
Summary
moveL is a straight-line interpolation command based on the TCP.
Although it can provide a more precise path than moveJ, it requires consideration of:
Inverse kinematics
TCP configuration
Singularities
Orientation interpolation
In practical automation, the most common approach is:
“Use moveJ for travel segments.”
“Use moveL for working segments.”
The next chapter explains moveP and moveC.