第7章 Dashboard Server

本章について

Dashboard Server は UR Controller を遠隔操作するための TCP サーバである。

現在の実装でモーション制御を担う SDU Robotics RTDEControlInterface に対し、Universal Robots 公式の Dashboard Server は

・電源投入 ・ブレーキ解除 ・プログラム開始 ・プログラム停止 ・Protective Stop解除

など、ロボットの運転管理を担当する。

現在の実装では、SDU Robotics ur_rtde が利用する公式 RTDE と、Dashboard Server をそれぞれの責務に応じて組み合わせて利用する。


7.1 Dashboard Serverとは

Dashboard Server は Controller 内部で動作する TCP サーバである。

Python

    │

TCP Socket

    │

Dashboard Server

    │

UR Controller

Dashboard Server は RTDE protocol とは別の TCP I/F である。


7.2 接続ポート

Dashboard Server は

29999

番ポートを使用する。

例

import socket

sock = socket.socket()

sock.connect(("192.168.0.10",29999))

接続すると

Connected: Universal Robots Dashboard Server

などのメッセージが返る。


7.3 コマンド送信

Dashboardは

文字列コマンド

を送信する。

例

sock.sendall(b"power on\n")

必ず改行を付ける。

Controllerは

Powering on

などの文字列を返す。


7.4 電源投入

power on

Controllerのサーボ電源を投入する。

注意

Controller自体のAC電源ではない。

Teach PendantのPowerボタン相当である。


7.5 Brake Release

brake release

ブレーキ解除を行う。

Power OnだけではMove命令は実行できない。

通常は

power on

↓

brake release

の順で実行する。


7.6 Program Load

load program.urp

URPファイルをロードする。

例

load demo.urp

ロードのみであり、

実行はまだ行われない。


7.7 Program Play

play

ロード済みプログラムを開始する。

Teach Pendantの

▶

ボタンと同等である。


7.8 Pause

pause

プログラムを一時停止する。

Move命令とは異なる。


7.9 Stop

stop

実行中プログラムを停止する。

RTDEControlInterfaceの

stopJ()

stopL()

とは意味が異なる。


7.10 Shutdown

shutdown

Controllerを安全に終了する。

電源断ではない。

OSを終了する。


7.11 Robot Status

状態取得も可能である。

例

robotmode

戻り値例

Robotmode: RUNNING

他にも

POWER_OFF

IDLE

BACKDRIVE

RUNNING

などが返る。


7.12 Program Status

programState

現在のプログラム状態を取得する。

例

STOPPED

PLAYING

PAUSED

7.13 Safety Status

safetystatus

安全状態を取得する。

Protective Stop判定などで利用する。


7.14 Protective Stop

Protective Stopは

安全装置による停止

である。

Emergency Stopとは異なる。

例えば

・衝突

・過負荷

・速度超過

などで発生する。

RTDEだけでは解除できない。


7.15 Protective Stop解除

解除コマンド

unlock protective stop

解除後、

Robot Modeを確認し、

必要なら

play

または

brake release

を行う。


7.16 Safety Popup

安全ダイアログ表示時は

close safety popup

を送信する。

Popupが残っていると

Move命令を受け付けない。


7.17 Typical Recovery Sequence

Protective Stop発生時の典型的な復旧シーケンス

close safety popup

↓

unlock protective stop

↓

power on
(必要な場合)

↓

brake release
(必要な場合)

↓

play
(必要な場合)

実際には RobotMode を確認しながら実施する。


7.18 RTDEとの役割分担

機能

RTDE

Dashboard

MoveJ

○

×

MoveL

○

×

現在位置取得

○

×

Digital IO

○

×

Power ON

×

○

Brake Release

×

○

Program Play

×

○

Protective Stop解除

×

○

両方が必要になる。


7.19 ur_ctrl.pyでの利用

ur_ctrl.pyでは

connect()

↓

Dashboard接続

↓

RTDE接続

を行う。

さらに

reset_error()

は

内部で

close safety popup

↓

unlock protective stop

などを実行する設計が望ましい。

また

turn_on_motor()

は

power on

↓

brake release

をまとめたAPIとして実装すると利用しやすい。


7.20 自動運転の基本シーケンス

Pythonから完全自動で運転する場合の流れは次のようになる。

Dashboard接続

↓

RTDE接続

↓

Power On

↓

Brake Release

↓

MoveJ

↓

MoveL

↓

IO制御

↓

MoveL

↓

MoveJ

↓

Stop

↓

Shutdown(必要なら)

まとめ

Dashboard Server はロボットの運転管理を担当する。

RTDEでは実行できない

・Power On ・Brake Release ・Program Play ・Protective Stop解除

などは Dashboard Server を利用する。

現在の実装では、SDU Robotics ur_rtde と Dashboard Server を組み合わせることで、モーション制御と運転管理を分担する。