notes
ProjectRc27

RC27 BR の経路計画と追従

BR は可視グラフ + TOPP-RA で静的経路を作り、全方向用の追従器で追う (rc27_planning)。Nav2 は使わない。残りは実機寸法での上限の実測と sim での突き合わせ

要点: 経路は事前計算 (可視グラフ → Bスプライン + θ(s) → TOPP-RA)、追従は横ずれを直接消す全方向用の追従器。どちらも rc27_planning にある (2026-07-30 決定)。

構成#

段使うもの状態
障害物の膨張field.yaml + 外接半径 0.344 m + 余裕 0.085 mC++ (rc27_planning)
経路探索可視グラフ + DijkstraC++
平滑化3 次 Bスプライン、向きは θ(s) を PCHIPC++
時間割り付けTOPP-RA (pip install toppra)Python (オフライン)
追従全方向用の追従器 (1 ノード、終端の寄せ込み)C++
動的な相手静的経路 + 復帰点。必要な所だけ局所回避未実装

選んだ理由#

  • フィールドが静的: 11 x 11 m に多角形が数個なら、可視グラフが最短経路を厳密に即出す。RRT* / PRM の乱数は要らない
  • Nav2 を使わない: 大域計画はコストマップと動的再計画を前提にしていて、静的な場では得るものが少ない。MPPI / RPP などの追従器も、計画した曲線をそのまま通る保証が無い
  • 追従器の比較 (運動学だけの閉ループ、20 区間): 計画からのずれ最大は全方向用 0.2 mm、pure pursuit 102 mm。最小余裕 142 mm の 72%
  • 計算と現実の差を決めるのは最適化の精度ではなく、自己位置と追従。直接コロケーションは TOPP-RA で走らせて追従誤差を測ってから判断する

残っていること (2026-10-07)#

  • 機体の寸法と上限: br_limits.yaml の drive は全部 null (未測定)。BR が直動昇降の試作機に変わったので、外形・速度・加速度・旋回の上限を測り直す
  • rc27 リポジトリへの持ち込み: rc27_planning は rc27_bringup/config/br_tasks.yaml / br_limits.yaml と swerve params を読むが、ForteFibre/rc27 には入っていない (rc27_playground にある)
  • sim での突き合わせ: 運動学だけの予測 (直線 4.75 m で 3.91 s・ずれ 0 mm) と、物理込みの sim の実測を比べる。今の段越え sim (MuJoCo) で走らせられる
  • 膨張の角: rc27_planning は field.yaml の長方形を四方に 0.429 m 広げた長方形で膨張している。角で 0.178 m 余計に大きく、受け渡しエリアの余裕 0.142 m より大きい。八角形 (余計 0.035 m) か多角形の円弧に替える。中央ピラーも外接正方形でなく多角形の円にする (詳細: 障害物の表現と膨張)
  • L2 の相手機: 共有エリアには相手の BR がいる。押し出し禁止・ブロッキング違反があるので、止まって待つ・復帰点へ戻る、を先に決める

関連#

最終更新:

On this page