ボールトラッキングシステム設計書¶
概要¶
このドキュメントでは、crane_world_model_publisherパッケージにおけるボールトラッキングシステムの設計と実装について説明します。本システムは、SSL-Vision-Tracker(または互換性のある外部トラッカー)からのTrackedFrameパケット、およびSSL-Vision生パケットからボール情報を取得し、高精度な世界状態を配信します。
アーキテクチャ概要¶
データフロー¶
SSL Vision / Tracker UDP → WorldModelDataProvider → WorldModelPublisher → /world_model topic
↓
BallPhysicsModel(物理特性・予測)
主要コンポーネント¶
- WorldModelDataProvider: UDPパケット(Vision/Tracker)の受信と正規化。外部トラッカーからの高精度データとVision生データを統合します。
- WorldModelPublisher: 統合された情報をWorldModelメッセージとしてパブリッシュします。
- BallPhysicsModel: ボールの物理パラメータ管理と軌道予測。
- WorldModelWrapper: 配信された情報を利用するクライアント側のラッパー。予測ユーティリティを提供します。
コンポーネント詳細¶
1. WorldModelDataProvider¶
責任: 複数ソース(Vision UDP, Tracker UDP, RobotFeedback)からのデータ受信と統合。
主要機能:
- マルチキャスト受信:
- Vision UDP(実機: 10006, シミュレーション: 10020)
- Tracker UDP(既定: 10010)
- データの正規化: 外部トラッカーからの
TrackedFrameを最優先ソースとし、未検出時はVision生データで補完。 - チーム・ゲーム状態管理: Referee信号に基づくチームカラー・サイド・ゲーム状況の管理。
2. BallPhysicsModel¶
責任: 物理計算の共有と予測計算。
主要機能:
- 物理パラメータ管理: 転がり減速度、重力、空気抵抗、各状態遷移閾値の保持。
- 状態判定: 位置・速度情報からの状態(STOPPED/ROLLING/FLYING)判定。
- 予測計算: 現在の状態と物理モデルに基づく未来位置・速度の予測。
設定パラメータ:
struct Config {
double deceleration = 0.7; // 転がり減速度 (m/s²)
double gravity = -9.81; // 重力加速度 (m/s²)
double air_resistance = 0.0; // 空気抵抗係数
double height_threshold = 0.05; // 飛行判定高度 (m)
double speed_threshold = 0.1; // 移動判定閾値 (m/s)
double stop_threshold = 0.05; // 停止判定閾値 (m/s)
};
トラッキングの優先順位¶
- 外部トラッカー (
TrackedFrame): EKF等の高度なフィルタリングが施された外部システムからのデータを最優先します。 - Vision生データ (
DetectionFrame): トラッカーが利用できない場合、Visionからの生の位置情報を使用します。
物理計算詳細¶
転がり物理¶
減速モデル: \(v(t) = v_0 - a \cdot t\) (または指数減衰モデル) 位置予測: \(x(t) = x_0 + v_0 \cdot t - 0.5 \cdot a \cdot t^2\)
飛行物理¶
放物運動:
- \(x(t) = x_0 + v_{x0} \cdot t\)
- \(y(t) = y_0 + v_{y0} \cdot t\)
- \(z(t) = z_0 + v_{z0} \cdot t + 0.5 \cdot g \cdot t^2\)
パフォーマンス最適化¶
- UDP非ブロッキング受信: 10ms周期のタイマーでUDPパケットを即座に処理。
- 予測計算のオンデマンド実行: クライアント側(WorldModelWrapper)で必要な時のみ物理モデルを使用して予測。
トラブルシューティング¶
よくある問題¶
-
ボール見失い:
- ネットワーク設定(マルチキャストアドレス・ポート)の確認。
- 外部トラッカーの稼働状態の確認。
-
予測精度低下:
- 物理パラメータ(deceleration等)の確認。
ball_model_calibration_guide.mdに基づく再キャリブレーションの実施。
まとめ¶
外部トラッカーの高精度な情報と、内製の物理モデルを統合することで、安定した世界モデルを提供します。