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 m | C++ (rc27_planning) |
| 経路探索 | 可視グラフ + Dijkstra | C++ |
| 平滑化 | 3 次 Bスプライン、向きは θ(s) を PCHIP | C++ |
| 時間割り付け | 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 がいる。押し出し禁止・ブロッキング違反があるので、止まって待つ・復帰点へ戻る、を先に決める
関連
最終更新: