第13章 Freedrive Mode

本章について

Freedrive Mode は、サーボモータのトルク制御を利用して、人がロボットアームを直接手で動かせる機能である。

ティーチング作業では最も利用頻度が高い機能の一つであり、

・教示点作成 ・位置合わせ ・試運転 ・メンテナンス

などで利用される。

本章では

・Freedrive の仕組み ・Teach Pendant との関係 ・Python API ・CBシリーズとe-Seriesの違い

について説明する。


13.1 Freedriveとは

通常、URロボットは

Motor

↓

位置制御

↓

位置保持

となっている。

そのため、人が押してもほとんど動かない。

Freedriveでは

Motor

↓

重力補償

↓

外力追従

へ制御モードが切り替わる。

その結果、

人が軽い力でロボットを動かせるようになる。


13.2 ティーチングとの関係

Freedrive は

ティーチング

そのものである。

一般的な流れ

Freedrive開始

↓

手でロボットを動かす

↓

目的位置

↓

現在位置取得

↓

教示点保存

となる。


13.3 Teach PendantでのFreedrive

Teach Pendantでは

Freedrive ボタン

または

画面上の Freedrive 機能

から開始する。

開始すると

ロボットを直接動かせる。

終了すると通常制御へ戻る。


13.4 Pythonから開始

ur_rtdeでは

rtde_c.teachMode()

またはバージョンによっては

rtde_c.freedriveMode()

を利用する。

内部的には

Freedrive状態

へControllerを切り替える。


13.5 終了

終了は

rtde_c.endTeachMode()

または

rtde_c.endFreedriveMode()

を利用する。

終了後は

moveJ

moveL

など通常制御へ戻る。


13.6 位置取得

Freedrive中でも

pose = rtde_r.getActualTCPPose()

や

q = rtde_r.getActualQ()

は利用できる。

そのため

手で動かす

↓

現在位置取得

↓

保存

という教示が可能である。


13.7 教示プログラム例

teachMode()

↓

ユーザーが手で動かす

↓

Enterキー

↓

getActualTCPPose()

↓

CSV保存

↓

endTeachMode()

非常に単純な構成で

ティーチングソフトウェアを作成できる。


13.8 COBOTTAとの違い

COBOTTAでは

TakeArm

↓

Motor ON

↓

Free Mode

という流れになる。

URでは

Teach Mode

を開始するだけで

同様の操作ができる。

考え方は非常によく似ている。


13.9 Payload設定

Freedriveでは

Payload設定

が重要である。

重量設定が誤っていると

・重い

・勝手に動く

・保持しづらい

などの現象が起きる。


13.10 Safety

Freedrive中も

安全監視

は継続される。

衝突や過負荷が発生すると

Protective Stop

になる。


13.11 Remote Controlとの関係

PythonからTeach Modeを開始する場合も

Remote Control

が有効である必要がある。

Remote Modeでなければ

開始できない場合がある。


13.12 e-Series

e-Seriesでは

Force Sensor

との組み合わせにより

より自然な操作感になる。

ティーチング用途では

e-Seriesの方が扱いやすい。


13.13 CBシリーズ

CBシリーズでも

Freedriveは利用できるが、

利用可能なAPIや操作方法が

e-Seriesと一部異なる。

使用するControllerの世代を確認すること。


13.14 典型的な利用例

Teach Mode開始

↓

P1へ移動

↓

保存

↓

P2へ移動

↓

保存

↓

P3へ移動

↓

保存

↓

Teach Mode終了

このようにして

ティーチングポイントを作成する。


13.15 Pythonサンプル

rtde_c.teachMode()

input("Move robot and press Enter")

pose = rtde_r.getActualTCPPose()

print(pose)

rtde_c.endTeachMode()

最小構成の教示プログラムである。


13.16 ur_ctrl.pyでの実装

高レベルAPIとして

enter_freedrive()

leave_freedrive()

または

teach_start()

teach_stop()

を提供すると利用しやすい。

さらに

get_current_pose()

を組み合わせることで

Teach Pendantを使わずに

Pythonだけでティーチングツールを構築できる。


まとめ

Freedrive Mode は、

人が直接ロボットを動かすための制御モードである。

ティーチング用途では最も重要な機能の一つであり、

Pythonから

・Teach Mode開始

・現在位置取得

・Teach Mode終了

を組み合わせることで、

独自のティーチングソフトウェアを容易に作成できる。

次章では TCP・Base・Tool・Feature などの座標系について説明する。