第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(順運動学・逆運動学)と姿勢表現について詳しく説明する。