上半身テレオペレーション
com.bxi.upper_body_teleop は、Elf3 用の独立した Mod です。PICO 接続、MediaMTX、頭部カメラの RTSP 配信、Pinocchio による双腕 IK、およびそれらの実行時ライブラリを同梱しています。依存するのは com.bxi.basic_actions のみで、従来の bxi_teleop_v2 や個別の bringup ノードは不要です。
- Mod:
com.bxi.upper_body_teleop(導入ユーザー様に HumansX より提供します) - PICO クライアント:XRoboToolkit-PICO-1.1.1.apk
インストール
Mod は、App の更新で上書きされない独立したディレクトリにインストールします。
sudo mkdir -p /opt/bxi/mods
sudo git clone <provided-repo-url> /opt/bxi/mods/com.bxi.upper_body_teleop
既存のチェックアウトを更新する場合:
cd /opt/bxi/mods/com.bxi.upper_body_teleop
git pull --ff-only
古いプロジェクトの組み込み mods または private_git_mods に同じ Mod がすでに含まれている場合は、バックアップを取ったうえで、スキャン対象外のディレクトリへ移動してください。同じ Mod ID のコピーが 2 つ存在すると起動できません。
起動
| 起動方法 | プロジェクトディレクトリ | 取り扱い |
|---|---|---|
| リモコン | ~/bxi_ws/bxi_rl_controller_ros2_example | ソースツリーです。更新後はメインプロジェクトを再ビルドしてください。Mod は /opt/bxi/mods から読み込まれます。 |
| App | /opt/bxi/bxi_rl_controller_ros2_example | App がダウンロードしたビルド済みツリーです。手動ビルドは不要です。Mod は /opt/bxi/mods から読み込まれます。 |
ロボットと通常の制御プログラムを起動します。com.bxi.upper_body_teleop/upper_body_teleop 状態に入ると、Mod のノードが自動的に起動します。従来の elf3_arm_bringup_nohand.launch.py、pico_bxi_server、bxi_teleop_v2 の各スクリプトを別途実行しないでください。
PICO の接続とキャリブレーション
PICO の接続およびボディトラッキングのキャリブレーションは、Sonic と同じ手順で行います。
- 両脚に Motion Tracker を 1 つずつ、ボタン/インジケーター側を上に向けて固定し、電源を入れます。
- PICO のホーム画面で Motion Tracker を開き、2 つのトラッカーが接続されていることを確認してから Start Calibration を選択し、ガイドに従って手順を完了します。
- Adjust Floor を選択し、仮想の床面を実際の床面に合わせます。
XRoboToolkitを開き、Network → PC Service からロボットの LAN IP を指定して接続します。- 以下の設定を確認します。
セクション 項目 設定 Tracking Head選択 Tracking Controller選択 PICO Motion Tracker ModeFull-bodyPICO Motion Tracker High-Acc選択 PICO Motion Tracker Num2Data & Control Send選択 NetworkのステータスがWORKINGであり、ログにエラーが連続して出ていないことを確認します。その後、Mod の状態に入り、ボタンによるキャリブレーションを行います。
操作方法
normal状態から、リモコンでLB + LT + X(btn_10=17)を押して上半身テレオペレーションに入ります。- PICO で Body Tracking、Controller、Send を有効にし、XRoboToolkit が
WORKINGと表示していることを確認します。 - 標準の直立姿勢を保ったまま
A+B+X+Yを押してキャリブレーションします。キャリブレーションに成功すると自動的に POSE に入ります。A+Xの操作は不要です。 - 左または右のグリップを握ると、対応する腕の操作を引き継ぎます。グリップを離すと、その腕は PD による立位姿勢へ滑らかに戻ります。
- 左右のトリガーで、対応するグリッパーを操作します。状態に入るたびに、グリッパーの低速リミットキャリブレーションが実行されます。
- 再度
A+B+X+Yを押すと再キャリブレーションします。キャリブレーション中は両腕が PD 姿勢に戻ります。 - 終了する際は、標準のシステムイベントで
normal、PD brake、recover、zero-torqueのいずれかへ移行します。
A+X による追従モードの切り替えは廃止されました。PICO との接続が一時的に切れた場合、下半身は歩容ポリシーによる制御を継続し、両腕は PD 姿勢を保持します。映像配信
MediaMTX と頭部カメラノードは Mod によって管理されます。デフォルトの URL は rtsp://<robot-ip>:2212/video です。同じ LAN 上の PICO アプリでこのアドレスを選択してください。映像用のスクリプトを別途実行する必要はありません。
動作確認とトラブルシューティング
- ログに
mediamtx_server、head_camera_rtsp、pico_manager、arm_ik_bridgeが自動的に起動したことが表示されること A+B+X+Yで POSE に入り、グリップを握った側の腕がコントローラーに追従すること- トリガーでグリッパーを操作でき、状態を抜けると子プロセスが停止すること
Mod ID の重複エラーが出た場合は、/opt/bxi/mods/com.bxi.upper_body_teleop のみを残し、古いプロジェクト内のコピーをスキャン対象外のディレクトリへ移動してください。PICO からデータが届かない場合は、ヘッドセットをスリープから復帰させ、Body Tracking と Send を有効にして、WORKING と表示されていることを確認してください。
ドキュメント