TUMとMBZUAI、ROS 2の制御モード切り替えを約210ミリ秒から0.01ミリ秒に短縮する反射エンジンを公開
改良したROS 2制御器でフランカのPandaアームの制御モード切り替えを平均0.01ミリ秒で済ませ、標準のros2_controlの約210ミリ秒から大幅に縮めたと、ミュンヘン工科大学のロボット研究所MIRMIとMBZUAIの研究チームが10月15日公開のプレプリントで発表した。机の清掃作業では最大ジャークが499から155m/s3に下がった。切り替えが速いため、衝突や関節限界に1kHzの制御周期内で対応でき、ハードウェアの安全停止に至らずに作業を続けられる。
ROS 2と互換性のあるオープンソースの制御構成で、安全のための反射動作を1kHzの制御ループ内で回せるほど速く制御器を切り替え、危険が生じてもロボットを止めずに作業を続けられるかを問う。
家庭用やサービスロボットは一つの作業の中でも、速い自由空間動作、柔らかい接触、力制御、安全な復帰といった異なる制御器を必要とする。標準のros2_controlはライフサイクルの状態遷移で切り替えるため、一方の制御器を止めてから次を起動する。遅延とばらつきが生じ、実際には衝突や限界超過が穏やかな対応ではなく全停止で終わる。
これまではros2_controlの停止してからの切り替えを受け入れるか、全工程を一つで扱う統合制御器を作るか、商用のリアルタイム基盤に頼ってきた。著者らが先に作ったmultipanda_ros2のマルチモード制御器も下位制御器を切り替えられたが、平均1.8ミリ秒かかっていた。
改良版マルチモード制御器はすべての制御動作をあらかじめ読み込み、有効な制御器をロックフリーのポインタ差し替えで入れ替え、リアルタイム経路からミドルウェア呼び出しを除いた。その上に反射エンジンを載せた。外力、関節位置、関節速度を監視する状態機械で、しきい値(15ニュートン、またはハードウェア限界の手前0.2ラジアン、0.1ラジアン毎秒)を超えると、フランカ自身の安全機能が働く前に柔らかいインピーダンス制御か無重力モードへ渡す。既存のros2_control制御器は下位制御器としてそのまま移せる。
各構成100回の切り替えで、平均遅延はros2_controlが約210ミリ秒、元のマルチモード制御器が1.8ミリ秒、改良版が0.01ミリ秒で、最悪でも0.1ミリ秒未満だった。関節ごと10回、計70回の関節限界試験では、反射作動後の停止距離が位置試験で平均0.082ラジアン、速度試験で0.080ラジアンで、ハードウェア限界には一度も達しなかった。秒速0.09から0.26メートルでの30回の衝突では平均0.122秒で接触力を解消した。把持、拭き取り、戻りの3段階作業を各10回行うと、所要時間は14.58秒から14.09秒に、最大ジャークは499.0から155.4m/s3へと約3.2分の1になった。
プレプリントであり、Panda1台と切り替えが2回だけの短い作業でしか検証していない。柔らかい停止は設定した安全余裕を越えて行き過ぎるため用途ごとの調整が要る。硬い物体との衝突直後の初期衝撃はどのフィードバック制御でも抑えられず、15ニュートンを上回る。反射機能はソフトウェア層であり、ISO 10218やISO 13482の認証を受けた安全機能ではない。
ROS 2でサービスロボットを開発するチームと、安全停止からの再起動でサイクルタイムを失う協働ロボットのシステムインテグレーターに直接関わる成果だ。ROS 2を使う国内の協働ロボットや介護、家庭向けロボットの開発チームも、コードが公開されれば力制御アームで数カ月以内に試せる。認証済み安全機能に仕立てるにはずっと長い時間がかかる。
この論文はライセンス上、全文を転載できないため、要約と原文へのリンクのみを掲載しています。