# 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.