Crane Visualizer パネル概要¶
🎯 プロジェクトの目的¶
Crane Visualizer パネルは、RoboCup SSL(Small Size League)のロボットサッカー競技における戦術分析とデバッグを支援するFoxglove Studio拡張機能です。リアルタイムでのSVGベース可視化により、ロボットの動きや戦術パターンを直感的に理解できます。
✨ 主要機能¶
1. 複数トピック統合システム¶
- スナップショットトピック (
/aggregated_svgs): 完全な状態情報を低頻度(5秒間隔)で配信 - 更新トピック (
/visualizer_svgs): レイヤー単位の増分更新を高頻度で配信 - ログサイズ最適化: 従来比で大幅なログファイルサイズ削減を実現
2. 時間軸対応機能¶
- 双方向時間シーク: Foxglove Studioでの順方向・逆方向時間移動に完全対応
- 正確な状態再現: 任意の時点での可視化状態を正確に復元
- メッセージ合成: 直前のスナップショット + 現在時間までの更新を自動合成
3. インタラクティブな表示制御¶
- パン・ズーム操作: マウスドラッグでのパン、ホイールでのズーム
- キーボードショートカット: Ctrl+0でビューリセット
- レイヤー表示制御: 階層的な名前空間による個別表示切り替え
4. 高度なパフォーマンス管理¶
- 自動メモリクリーンアップ: 設定可能な履歴保持期間とサイズ制限
- 効率的な履歴管理: タイムスタンプベースのMap構造による高速検索
- リアルタイム監視: 履歴サイズと処理状況のライブ表示
🏗️ システム構成¶
データフロー¶
レイヤー更新操作¶
- append: 既存要素に新要素を追加
- replace: レイヤー全体を新しい内容で置換
- clear: レイヤーの全要素を削除
🎨 表示機能¶
SVG可視化¶
- 階層的レイヤー管理:
parent/child1/child2形式の名前空間 - 動的要素追加: 試合中のリアルタイム要素更新
- カスタマイズ可能な外観: 背景色、ViewBox設定
UI設定パネル¶
- トピック設定: 使用するROSトピックの選択と制御
- パフォーマンス設定: メモリ使用量と履歴管理の最適化
- 表示設定: 見た目とズームレベルの調整
- レイヤー制御: 個別レイヤーの表示/非表示切り替え
📊 技術的な利点¶
ログファイル最適化¶
- 従来方式: 全状態を毎フレーム記録 → 大容量ログファイル
- 新方式: スナップショット + 増分更新 → 大幅なサイズ削減
メモリ効率性¶
- 履歴管理: 必要な期間のみメモリに保持
- 自動クリーンアップ: 古いデータの自動削除
- 設定可能な制限: 用途に応じた調整可能
開発体験の向上¶
- リアルタイムデバッグ: 試合中の戦術パターン分析
- 時間軸分析: 特定時点での詳細な状況確認
- 視覚的理解: 複雑な動きパターンの直感的把握
🔧 適用分野¶
RoboCup SSL競技¶
- 戦術分析: チーム戦術の可視化と改善
- ロボット制御: 個別ロボットの動作確認
- 試合レビュー: 過去の試合データの詳細分析
開発・研究用途¶
- アルゴリズム検証: AI戦術アルゴリズムの動作確認
- パフォーマンス評価: システム性能の可視化
- 教育用途: ロボット工学教育での視覚的説明
🚀 今後の展開¶
予定機能¶
- 統計データ表示: リアルタイム統計情報の重畳表示
- 録画・再生機能: 重要場面のクリップ作成
- 比較表示: 複数試合データの同時比較
拡張性¶
- プラグインシステム: カスタム可視化要素の追加
- API拡張: 外部ツールとの連携強化
- クラウド対応: リモートデータソースの対応
この包括的な可視化システムにより、RoboCup SSLチームの競技力向上と効率的な開発環境を実現します。