HumansXドキュメントセンター English公式サイトへ ↗

上半身テレオペレーション

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_exampleApp がダウンロードしたビルド済みツリーです。手動ビルドは不要です。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 と同じ手順で行います。

  1. 両脚に Motion Tracker を 1 つずつ、ボタン/インジケーター側を上に向けて固定し、電源を入れます。
  2. PICO のホーム画面で Motion Tracker を開き、2 つのトラッカーが接続されていることを確認してから Start Calibration を選択し、ガイドに従って手順を完了します。
  3. Adjust Floor を選択し、仮想の床面を実際の床面に合わせます。
  4. XRoboToolkit を開き、Network → PC Service からロボットの LAN IP を指定して接続します。
  5. 以下の設定を確認します。
    セクション項目設定
    TrackingHead選択
    TrackingController選択
    PICO Motion TrackerModeFull-body
    PICO Motion TrackerHigh-Acc選択
    PICO Motion TrackerNum2
    Data & ControlSend選択
  6. Network のステータスが WORKING であり、ログにエラーが連続して出ていないことを確認します。その後、Mod の状態に入り、ボタンによるキャリブレーションを行います。

操作方法

  1. normal 状態から、リモコンで LB + LT + X(btn_10=17)を押して上半身テレオペレーションに入ります。
  2. PICO で Body Tracking、Controller、Send を有効にし、XRoboToolkit が WORKING と表示していることを確認します。
  3. 標準の直立姿勢を保ったまま A+B+X+Y を押してキャリブレーションします。キャリブレーションに成功すると自動的に POSE に入ります。A+X の操作は不要です。
  4. 左または右のグリップを握ると、対応する腕の操作を引き継ぎます。グリップを離すと、その腕は PD による立位姿勢へ滑らかに戻ります。
  5. 左右のトリガーで、対応するグリッパーを操作します。状態に入るたびに、グリッパーの低速リミットキャリブレーションが実行されます。
  6. 再度 A+B+X+Y を押すと再キャリブレーションします。キャリブレーション中は両腕が PD 姿勢に戻ります。
  7. 終了する際は、標準のシステムイベントで 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 と表示されていることを確認してください。