第1章 URロボット制御を始める

本章について

本章では、Universal Robots (UR) を Python から制御するために必要な基礎知識を説明する。

対象読者は、

・初めて UR を利用する人 ・Python から制御したい人 ・本ドキュメントの ur_ctrl.py を利用する人

である。

本章を読み終えると、

・UR の通信方式 ・Remote Control の意味 ・Python ライブラリ ・最初の接続確認

まで理解できることを目的とする。


1.1 Universal Robotsとは

Universal Robots (UR) は協働ロボット(Collaborative Robot)の代表的なメーカーである。

代表的な機種は次のとおりである。

機種

可搬重量

UR3 / UR3e

3 kg

UR5 / UR5e

5 kg

UR10 / UR10e

10 kg

UR16e

16 kg

UR20

20 kg

UR30

30 kg

本ドキュメントでは主に UR3 / UR3e を対象とするが、紹介する Python API の多くは他機種でも共通である。


1.2 CBシリーズとe-Series

URには大きく2世代存在する。

CBシリーズ

・UR3 ・UR5 ・UR10

古いコントローラであり PolyScope 3.x 系を使用する。


e-Series

・UR3e ・UR5e ・UR10e ・UR16e

PolyScope 5.x を採用している。

Force Sensor が内蔵されるなど、多くの機能が追加されている。


1.3 Pythonから制御する方法

Universal Robots では、Control Box 内の URControl がロボット制御の中核となる。TP 上の PolyScope は操作・教示・プログラミング環境であり、PolyScope で作成したロボットプログラムは URScript として URControl 上で実行される。外部 PC から URScript を直接送信する経路も用意されている。

外部 PC との通信には複数の公式 I/F がある。

方法

主な役割

RTDE

Controller の状態・I/O・汎用レジスタなどの双方向データ交換

Primary / Secondary Interface

Controller 情報の取得、URScript 送信など

Dashboard Server

電源、Brake Release、プログラム実行などの運転管理

ROS / ROS2 Driver

ROS / ROS2 との統合

本ドキュメントの実装では、これらの公式 I/F に加えて SDU Robotics の ur_rtde を利用する。


1.4 公式 RTDE とは

RTDE は Real-Time Data Exchange の略で、Universal Robots が公式に提供する、外部 application と UR controller 間の双方向データ I/F である。

RTDE では、joint / TCP state、robot mode、safety、I/O、汎用 register などを読み出し、公開されている I/O、speed slider、汎用 input register などへ値を書き込める。

ただし、公式 RTDE protocol 自体に movej や movel といった URScript の motion command が定義されているわけではない。公式 RTDE と、次節の SDU Robotics ur_rtde は区別する必要がある。


1.5 SDU Robotics ur_rtde

本ドキュメントで利用する

ur_rtde

は Universal Robots 純正 SDK ではなく、SDU Robotics が開発する第三者のオープンソースライブラリである。

ur_rtde は Universal Robots 公式 RTDE を利用し、主に次の I/F を提供する。

  • RTDEControlInterface

  • RTDEReceiveInterface

  • RTDEIOInterface

このうち RTDEControlInterface は、公式 RTDE と robot 側で動作する専用の control URScript を組み合わせ、moveJ、moveL、servoJ などの PC 側モーション API を構成している。

インストール例

pip install ur_rtde

詳細は次章以降で説明する。


1.6 Dashboard Server との違い

Dashboard Server は Universal Robots 公式の管理用 I/F であり、SDU Robotics ur_rtde とは別系統である。

プログラムの load / play / stop、power、Brake Release、Protective Stop からの復旧など、ロボットの運転管理を担当する。

本実装では、モーション・状態取得・I/O に SDU Robotics ur_rtde を利用し、必要な運転管理には Dashboard Server を組み合わせる。


1.7 本ドキュメントで使用する構成

Python
    │
    │
ur_ctrl.py
    │
    ├──────── RTDEControl
    ├──────── RTDEReceive
    ├──────── RTDEIO
    └──────── Dashboard
            │
        Ethernet
            │
         UR Robot

利用者は基本的に ur_ctrl.py を利用するだけでよい。

低レベルAPIは ur_ctrl.py が内部で管理する。


次章

次章では、

・PC設定 ・IPアドレス ・Remote Control ・通信確認

について説明する。