第9章 moveL

本章について

moveL は TCP(Tool Center Point)が直線となるように補間するモーション命令である。

加工、計測、塗布、溶接など、TCPの軌跡が重要となる作業では moveL を使用する。

一方で、moveJ より計算量が多く、動作速度や姿勢制約の影響も受けやすい。

本章では

・moveL の内部動作 ・TCP座標系 ・姿勢補間 ・逆運動学 ・速度・加速度 ・利用上の注意

について説明する。


9.1 moveLとは

moveL の L は

Linear

を意味する。

TCP が

開始点

○────────────○

終了点

のように直線移動する。

途中姿勢は Controller が自動計算する。


9.2 moveJとの違い

moveJ

Joint

↓

Joint補間

↓

TCPは曲線

moveL

TCP

↓

TCP補間

↓

Jointは逆運動学で計算

つまり

moveJ は Joint が基準

moveL は TCP が基準

である。


9.3 TCPとは

TCP

Tool Center Point

とは、

ロボット先端で

「制御対象となる点」

である。

例えば

Flange

↓

Gripper

↓

吸着パッド

↓

ここがTCP

となる。

TCP設定が間違っていると

moveLは期待した軌跡にならない。


9.4 Pose

moveLでは

Jointではなく

Pose

を指定する。

[
x,
y,
z,
rx,
ry,
rz
]

単位

x,y,z

↓

m

rx,ry,rz

↓

rad

9.5 姿勢

位置だけではなく

姿勢も補間される。

開始

↗

↓

終了

→

途中姿勢も滑らかに変化する。


9.6 内部処理

moveLでは

Pose

↓

TCP補間

↓

Inverse Kinematics

↓

Joint角度

↓

Servo

という流れになる。

moveJより処理が複雑である。


9.7 Inverse Kinematics

moveLでは

毎制御周期ごとに

Inverse Kinematics

を解く。

TCP

↓

Joint

このため

到達不能姿勢

ではエラーになる。


9.8 特異点

moveLでは

Singularity

に近づくと

Joint速度が急激に増加する。

代表例

・手首特異点

・肘特異点

などである。

速度制限に達すると

思ったより遅くなる。


9.9 speed

moveLでは

TCP速度

を指定する。

単位

m/s

である。

moveJとは単位が異なる。


9.10 acceleration

単位

m/s²

TCP加速度である。


9.11 Blend

moveLでも

Blend Radius

を指定できる。

○────○────○

↓

○╲__╱○

停止せず連続移動できる。

加工時間短縮によく利用される。


9.12 加工用途

moveLは

・レーザー加工

・3Dプリンタ

・ディスペンサ

・接着剤塗布

・画像計測

などで利用される。

TCP軌跡が保証されるためである。


9.13 moveLが向かない用途

単なる

待避位置

ホーム位置

教示点移動

には

moveJ

の方が高速である。


9.14 到達不能

例えば

Workspace外

や

Joint Limit

により

Inverse Kinematics

が解けない場合

moveLは失敗する。


9.15 姿勢変化

moveLでは

位置だけではなく

姿勢も重要である。

例えば

開始

Tool →

終了

Tool ↑

では

姿勢も補間される。

大きな姿勢変化は

途中でJoint Limitになる場合がある。


9.16 moveJとの使い分け

一般的な自動機では

Home

↓

moveJ

↓

加工開始近く

↓

moveJ

↓

加工開始点

↓

moveL

↓

加工

↓

moveL

↓

退避

↓

moveJ

となる。

加工区間だけ moveL を使う。


9.17 よくある失敗

・TCP設定忘れ

・単位を mm と勘違い

・rx,ry,rz を Degreeで入力

・Workspace外

・特異点

・姿勢変更が大きすぎる


9.18 ur_ctrl.pyでの実装

ur_ctrl.pyでは

move(
    pose,
    motion="line"
)

のように

moveLを内部で呼び出す構成が分かりやすい。

利用者は

RTDEControlInterface

を直接呼ぶ必要がない。


9.19 moveJとmoveLの選択指針

迷った場合は次を基準とする。

・TCP軌跡が重要 → moveL

・最終姿勢だけ合えばよい → moveJ

・高速移動 → moveJ

・加工・計測 → moveL


まとめ

moveL は TCP を基準とした直線補間命令である。

moveJ より高精度な軌跡を実現できる一方で、

・逆運動学 ・TCP設定 ・特異点 ・姿勢補間

などを考慮する必要がある。

実際の自動化では、

「移動区間は moveJ」

「作業区間は moveL」

という使い分けが最も一般的である。

次章では moveP と moveC を説明する。