実装差分と移植方針

方針

URCtrl と CobottaCtrl は、どちらかが一方的に基準ではない。目的は協働ロボット共通 I/F である。

したがって、UR 実装で整理された良い API は cobotta_ctrl 側へ反映され得る。

変数管理

UR には RC8 の P レジスタがないため、RobotVarManager を使う。

COBOTTA 側も将来的に、実ロボット内部変数とローカル変数管理を明確に分ける余地がある。

状態監視

UR 実装では state() に robot mode、safety mode、status bits、Dashboard 情報を集約する。

これは共通 I/F として有用であるため、COBOTTA 側でも task_state / state() 系を揃える対象である。

エラー情報

UR では RTDE から詳細エラー本文を取れないため、状態からエラー情報を合成する。

COBOTTA 側では RC8 のエラー情報が取れるが、上位 I/F としては get_current_error_info() に揃えるのが望ましい。

no-op と未対応

take_arm() / give_arm() は UR では no-op である。

一方、専用ハンドや PacScript は未対応として明示する。

共通 I/F では、no-op にするものと未対応にするものを区別する。

BL774 / SPring-8 接続

共通 I/F の目的は、実験システムにロボットを接続することである。

そのため、API は以下を優先する。

・短い
・状態が読める
・失敗時に原因へ近づける
・サーバー化しやすい
・装置制御シーケンスへ組み込みやすい

メーカー API の完全露出は目的ではない。