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.