第14章 座標系(Base・TCP・Tool・Feature)
本章について
UR を使用する上で最も重要なのは座標系の理解である。
moveL
servoL
Force Mode
TCP設定
などはすべて座標系を基準として動作する。
本章では
・Base座標 ・Tool座標 ・TCP ・Feature ・Pose ・Rotation Vector
について説明する。
14.1 なぜ座標系が必要か
例えば
X方向へ100 mm
と言っても
「どのXなのか」
が分からない。
候補として
・ロボット基準
・工具基準
・ワーク基準
などが存在する。
そのため
座標系
が必要になる。
14.2 Base座標
Base座標は
ロボット本体
に固定された座標系である。
+Z
↑
│
│
○────→ +X
/
+Y
ロボットが動いても
Base座標は動かない。
最も基本となる座標系である。
14.3 Tool座標
Tool座標は
工具先端
に固定された座標系である。
例えば
Gripper
──────►
TCP
+X
ロボットが回転すると
Tool座標も一緒に回転する。
14.4 TCP
TCP
Tool Center Point
とは
工具の制御点
である。
例えば
Flange
↓
グリッパ
↓
吸着ノズル
↓
ここがTCP
となる。
Controllerは
TCPが
目的位置へ行くように
Jointを計算する。
14.5 TCP設定
TCPは
Teach Pendant
または
API
から設定できる。
例えば
Flange
↓
100 mm
↓
吸着パッド
なら
TCPは
100 mm先
になる。
TCP設定が間違うと
moveL
Force Mode
などは期待通り動作しない。
14.6 Pose
URでは位置姿勢を
[
x,
y,
z,
rx,
ry,
rz
]
で表現する。
前半
x
y
z
位置
後半
rx
ry
rz
姿勢
である。
14.7 単位
位置
m
姿勢
rad
である。
例えば
500 mm
は
0.5
と入力する。
14.8 Rotation Vector
URは
Euler角
ではなく
Rotation Vector
を採用している。
(rx,ry,rz)
は
回転軸
×
回転角
である。
例えば
180°
X軸回転
なら
π
0
0
になる。
14.9 なぜEuler角ではないか
Euler角は
Roll
Pitch
Yaw
で分かりやすい。
しかし
Gimbal Lock
などの問題がある。
Rotation Vectorは
これを回避できる。
14.10 Base座標での移動
例えば
moveL
X+100 mm
なら
Base座標では
常に
ロボット前方
へ動く。
Toolの向きは関係ない。
14.11 Tool座標での移動
Tool座標では
Tool X
方向へ動く。
例えばToolが
90°
回転すると
同じ
Tool X
でも
Baseでは
Y方向
になる。
14.12 BaseとToolの違い
Base
世界が固定
Toolが動く
Tool
Toolに座標が付いてくる
である。
14.13 Feature座標
Featureは
ユーザーが定義する座標系である。
例えば
机
治具
ワーク
などに設定する。
Base
↓
Feature
↓
TCP
という階層になる。
14.14 ワーク座標
例えば
ワーク左下
を
Feature原点
とすると
ワーク交換後も
Featureだけ更新すれば
同じプログラムを利用できる。
14.15 座標変換
Controller内部では
Tool
↓
Base
↓
Joint
などの変換を毎周期実行している。
利用者は通常これを意識する必要はない。
14.16 poseTrans()
URScriptでは
poseTrans(A,B)
を利用すると
A
の座標系で
B
だけ移動
を計算できる。
Tool基準移動などでよく利用される。
14.17 poseInv()
poseInv()
は
Poseの逆変換
を計算する。
座標変換では頻繁に利用される。
14.18 よくある失敗
・mmを入力する
・Degreeを入力する
・TCP未設定
・BaseとToolを混同する
・Feature更新を忘れる
14.19 ur_ctrl.pyでの設計
高レベルAPIでは
move_base()
move_tool()
set_tcp()
get_tcp()
set_feature()
などを提供すると
利用者は座標系を意識しやすい。
14.20 実運用での考え方
一般的な自動化装置では
Base
↓
Feature
↓
TCP
という三層構造で考える。
Baseは設備固定。
Featureは治具。
TCPは工具先端。
これらを適切に分離することで、
ワーク交換や治具変更時にもプログラムの修正を最小限にできる。
まとめ
URでは
・Base
・Tool
・TCP
・Feature
という複数の座標系が存在する。
moveL
Force Mode
servoL
などを正しく利用するためには、
どの座標系で指令しているかを常に意識することが重要である。
次章では、Inverse Kinematics(順運動学・逆運動学)と姿勢表現について詳しく説明する。