第2章 インストールと接続設定
本章について
本章では、PCとURロボットを接続し、Pythonから通信できる状態までのセットアップ方法を説明する。
本章を完了すると、
・ロボットとの通信 ・Remote Control設定 ・Pythonからの接続確認
ができるようになる。
2.1 システム構成
本ドキュメントでは、Universal Robots 公式の通信 I/F と、第三者 OSS である SDU Robotics ur_rtde を組み合わせる。構成は以下を前提とする。
+--------------------+
| Python PC |
| |
| ur_ctrl.py |
| ur_rtde |
+---------+----------+
|
Ethernet
|
+---------+----------+
| UR Robot |
| |
| Control Box |
| Teach Pendant |
+--------------------+
PCとロボットはEthernetケーブルで接続する。
スイッチングハブを介してもよい。
2.2 必要なソフトウェア
Python 3.10以上を推奨する。
モーション制御・状態取得・I/O の PC 側ライブラリとして、SDU Robotics の ur_rtde を利用する。これは Universal Robots 純正 SDK ではないが、通信には Universal Robots 公式 RTDE protocol を利用する。
必要なライブラリは以下である。
pip install ur_rtde
ur_rtde では
・RTDEControlInterface ・RTDEReceiveInterface ・RTDEIOInterface
を利用する。
2.3 OSごとのインストール
Windows
もっとも容易である。
pip install ur_rtde
でインストールできる場合が多い。
Visual C++ Runtime が必要になる場合がある。
Ubuntu
UbuntuではBoostなどの依存ライブラリが必要になる。
例
sudo apt install \
build-essential \
cmake \
libboost-all-dev
その後
pip install ur_rtde
を実行する。
macOS
Homebrewを利用する。
brew install cmake
brew install boost
必要に応じて
export PATH=/opt/homebrew/bin:$PATH
などを設定する。
環境によってはソースビルドになる。
Intel MacとApple Siliconでライブラリ位置が異なるため注意する。
2.4 ロボットのIPアドレス
Teach Pendantから
Settings
↓
System
↓
Network
を開く。
IPアドレスを確認する。
例
192.168.0.10
PCも同じセグメントに設定する。
例
Robot
192.168.0.10
PC
192.168.0.100
Subnet Maskは通常
255.255.255.0
である。
2.5 通信確認
まずPingが通ることを確認する。
Linux/macOS
ping 192.168.0.10
Windows
ping 192.168.0.10
応答が返れば物理通信は正常である。
2.6 Remote Controlとは
PythonからMove命令を送る場合、
Remote Control
を有効にする必要がある。
有効になっていない場合、
Please enable remote control on the robot!
というエラーになる。
これは ur_rtde が最もよく返すエラーの一つである。
2.7 Remote Controlの有効化
e-Seriesでは、
Settings
↓
System
↓
Remote Control
からRemote Controlを有効にする。
その後、
ロボットをRemote Modeへ切り替える。
Local Modeでは外部制御できない。
2.8 Remote Mode
Teach Pendant右上に
Local
または
Remote
が表示される。
Python制御を行う場合は
Remote
である必要がある。
2.9 Pythonから接続
最小構成は以下である。
from rtde_control import RTDEControlInterface
ROBOT_IP = "192.168.0.10"
rtde = RTDEControlInterface(ROBOT_IP)
print("Connected")
ここで例外が発生しなければ通信成功である。
2.10 Receive Interface
状態取得は別インターフェースである。
from rtde_receive import RTDEReceiveInterface
rtde_r = RTDEReceiveInterface(ROBOT_IP)
print(rtde_r.getActualQ())
関節角度が取得できれば正常である。
2.11 IO Interface
デジタルIO操作には
from rtde_io import RTDEIOInterface
rtde_io = RTDEIOInterface(ROBOT_IP)
を利用する。
2.12 よくあるエラー
Please enable remote control on the robot!
Remote Controlが無効。
Connection refused
IPアドレスが誤っている。
またはネットワーク設定が異なる。
Robot is not running
ロボットが起動していない。
Emergency Stop状態でも発生する。
Protective Stop
安全停止中である。
Teach Pendantで解除する。
必要に応じてDashboard ServerからUnlock Protective Stopを実行する。
2.13 接続確認チェックリスト
接続できない場合は以下を確認する。
□ Ethernetケーブル
□ Pingが通る
□ IPアドレス
□ Firewall
□ Remote Control
□ Remote Mode
□ Robot Power ON
□ Brake Release済み
□ Emergency Stop解除
□ Protective Stop解除
この順番に確認すると、多くの問題を切り分けられる。
次章
次章では、
・RTDEの仕組み ・RTDEControl ・RTDEReceive ・RTDEIO
について詳しく説明する。