コンテンツにスキップ

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構造による高速検索
  • リアルタイム監視: 履歴サイズと処理状況のライブ表示

🏗️ システム構成

データフロー

ROSトピック → メッセージ履歴管理 → 時間ベース合成 → SVGレンダリング → 表示

レイヤー更新操作

  • append: 既存要素に新要素を追加
  • replace: レイヤー全体を新しい内容で置換
  • clear: レイヤーの全要素を削除

🎨 表示機能

SVG可視化

  • 階層的レイヤー管理: parent/child1/child2形式の名前空間
  • 動的要素追加: 試合中のリアルタイム要素更新
  • カスタマイズ可能な外観: 背景色、ViewBox設定

UI設定パネル

  • トピック設定: 使用するROSトピックの選択と制御
  • パフォーマンス設定: メモリ使用量と履歴管理の最適化
  • 表示設定: 見た目とズームレベルの調整
  • レイヤー制御: 個別レイヤーの表示/非表示切り替え

📊 技術的な利点

ログファイル最適化

  • 従来方式: 全状態を毎フレーム記録 → 大容量ログファイル
  • 新方式: スナップショット + 増分更新 → 大幅なサイズ削減

メモリ効率性

  • 履歴管理: 必要な期間のみメモリに保持
  • 自動クリーンアップ: 古いデータの自動削除
  • 設定可能な制限: 用途に応じた調整可能

開発体験の向上

  • リアルタイムデバッグ: 試合中の戦術パターン分析
  • 時間軸分析: 特定時点での詳細な状況確認
  • 視覚的理解: 複雑な動きパターンの直感的把握

🔧 適用分野

RoboCup SSL競技

  • 戦術分析: チーム戦術の可視化と改善
  • ロボット制御: 個別ロボットの動作確認
  • 試合レビュー: 過去の試合データの詳細分析

開発・研究用途

  • アルゴリズム検証: AI戦術アルゴリズムの動作確認
  • パフォーマンス評価: システム性能の可視化
  • 教育用途: ロボット工学教育での視覚的説明

🚀 今後の展開

予定機能

  • 統計データ表示: リアルタイム統計情報の重畳表示
  • 録画・再生機能: 重要場面のクリップ作成
  • 比較表示: 複数試合データの同時比較

拡張性

  • プラグインシステム: カスタム可視化要素の追加
  • API拡張: 外部ツールとの連携強化
  • クラウド対応: リモートデータソースの対応

この包括的な可視化システムにより、RoboCup SSLチームの競技力向上と効率的な開発環境を実現します。