ProjectFortefibre
Quest3 で salamander の視野外ワーク補助
把持失敗で D455 視野外に転がった Chip Star の位置を Quest3 コントローラで指してロボ座標に publish する構想
要点: 把持失敗時、Quest3 コントローラのレイと床面 (z=既知) の交点を計算し、/recovery/workpiece_hint (geometry_msgs/PointStamped, frame map) として publish する。ロボ座標系との対応は ArUco マーカで確定する。
topic 案
/recovery/workpiece_hint— geometry_msgs/PointStamped、レイ × 床面交点/quest/head_pose— geometry_msgs/PoseStamped (TFquest_headset)/quest/aruco_detections— 較正健康状態モニタ
数値
- ワーク: Chip Star S、直径約 65 mm
- 要求位置精度: 直径オーダー (数 cm)
- 深度不要: 床面拘束 (z 既知) でレイ × 平面交点が確定
- Quest3 SLAM ドリフト量: 未計測 (要検証)
運用フロー
- YOLOv11n が想定位置に Chip Star を検出しない、または BT がフォールバック分岐に入る
- WebUI かブザーでオペレータに Quest3 操作を要求
- オペレータが ArUco マーカを一度見て
T_robot_questを更新 - コントローラで対象を指す
- パススルー AR で交点マーカを重畳、確認後トリガーで publish
- behavior_server が hint を受けて再把持シーケンスへ
較正
- ArUco をフィールドまたはロボベースに配置
- Quest3 パススルーカメラ (Meta Passthrough Camera API) で検出し
T_robot_questを確定 - 試合中は常時視認できないので、把持失敗時に一度視野に入れる運用
実装候補
- Unity (Meta XR SDK) + ros2-for-unity
- ArUco 検出: OpenCVforUnity
- rosbridge_websocket 経由なら Unity なしで WebXR 試作可 (精度と遅延で劣る)
発展
- Quest3 上で YOLOv11n を並列実行 (ONNX Runtime)。人は方向のみ指示し、精密位置は認識に任せる半自律
- fibril_asm の Achievement 条件に
workpiece_hint 受領を追加すれば既存 BT に組み込める
背景
Quest3 の強みは 6DoF 入力単体ではなく、両眼ステレオ視・パススルー AR 重畳・頭部 SLAM の組み合わせ。カメラ死角のワーク位置特定は「人間を追加センサとして ROS 2 に参加させる」ユースケースに該当する。SpaceMouse や単眼 WebUI では床面 3D 点の直接指示ができない。
関連
- /docs/project/fortefibre/robot-debug-devkit-plan — WebUI パネル追加余地 (Findings, agent status との統合先)
最終更新: