notes
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 (TF quest_headset)
  • /quest/aruco_detections — 較正健康状態モニタ

数値#

  • ワーク: Chip Star S、直径約 65 mm
  • 要求位置精度: 直径オーダー (数 cm)
  • 深度不要: 床面拘束 (z 既知) でレイ × 平面交点が確定
  • Quest3 SLAM ドリフト量: 未計測 (要検証)

運用フロー#

  1. YOLOv11n が想定位置に Chip Star を検出しない、または BT がフォールバック分岐に入る
  2. WebUI かブザーでオペレータに Quest3 操作を要求
  3. オペレータが ArUco マーカを一度見て T_robot_quest を更新
  4. コントローラで対象を指す
  5. パススルー AR で交点マーカを重畳、確認後トリガーで publish
  6. 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 点の直接指示ができない。

関連#

最終更新:

On this page