第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 などの座標系について説明する。