第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

について詳しく説明する。