設定ガイド¶
🎛️ 設定パネル概要¶
Crane Visualizerパネルの設定は、論理的にグループ化された4つのセクションに分かれています。各セクションは特定の機能領域を管理し、効率的な設定変更を可能にします。
📡 トピック設定¶
スナップショットトピック¶
- 設定項目:
aggregatedTopic - デフォルト値:
/aggregated_svgs - 説明: 完全な状態情報を含む低頻度トピック
- 推奨値: プロジェクトのROSトピック命名規則に従って設定
# 例: チーム別設定
aggregatedTopic: "/team_blue/aggregated_svgs"
aggregatedTopic: "/simulation/field_state"
aggregatedTopic: "/match_recorder/full_state"
更新トピック¶
- 設定項目:
updateTopic - デフォルト値:
/visualizer_svgs - 説明: レイヤーごとの増分更新を含む高頻度トピック
- 推奨値: スナップショットトピックと整合性を保つ命名
# 例: 対応する更新トピック
updateTopic: "/team_blue/svg_updates"
updateTopic: "/simulation/dynamic_updates"
updateTopic: "/match_recorder/incremental_updates"
更新トピック有効化¶
- 設定項目:
enableUpdateTopic - デフォルト値:
true - 説明: 更新トピックの使用可否を制御
有効時 (true) - 推奨設定¶
- スナップショット + 更新の統合処理
- 最大90%のログサイズ削減
- 高精度なリアルタイム更新
無効時 (false) - レガシー互換¶
- スナップショットトピックのみ使用
- 従来のFoxglove拡張と同等の動作
- シンプルな設定でのテスト用途
⚡ パフォーマンス設定¶
履歴保持期間¶
- 設定項目:
maxHistoryDuration - デフォルト値:
300秒(5分間) - 単位: 秒
- 説明: メモリに保持するメッセージの最大期間
用途別推奨値¶
メモリ使用量の目安¶
最大履歴サイズ¶
- 設定項目:
maxHistorySize - デフォルト値:
1000メッセージ - 説明: 保持するメッセージの最大数(期間制限の補完)
設定の考え方¶
// 実際の制限 = min(maxHistoryDuration, maxHistorySize)
// 例: 30Hzの更新トピックの場合
const messagesIn5Minutes = 30 * 60 * 5; // 9000メッセージ
// maxHistorySize: 1000 → 実際は約33秒分のみ保持
推奨設定値¶
🎨 表示設定¶
背景色¶
- 設定項目:
backgroundColor - デフォルト値:
#585858ff - 形式: RGBA色指定
- 説明: SVGキャンバスの背景色
色指定の詳細¶
/* 16進数RGBA表記 */
#585858ff /* グレー、不透明 */
#000000ff /* 黒、不透明 */
#ffffffcc /* 白、半透明 */
#00ff0080 /* 緑、50%透明 */
用途別推奨色¶
{
"フィールド表示": "#228b22ff", // フォレストグリーン
"技術分析": "#000000ff", // 黒
"プレゼンテーション": "#ffffffff", // 白
"デバッグ": "#404040ff" // ダークグレー
}
ViewBox幅¶
- 設定項目:
viewBoxWidth - デフォルト値:
10000 - 単位: 座標単位(通常はmm)
- 説明: 表示範囲の幅(ズームレベルに影響)
SSL標準フィールドサイズ対応¶
{
"フィールド全体": 12000, // 12m幅
"ハーフフィールド": 6000, // 6m幅
"ペナルティエリア": 2400, // 2.4m幅
"詳細分析": 1000 // 1m幅
}
アスペクト比の自動調整¶
// 高さは幅の60%で自動計算
const height = viewBoxWidth * 0.6;
const viewBox = `${-viewBoxWidth/2} ${-height/2} ${viewBoxWidth} ${height}`;
📁 名前空間(レイヤー表示制御)¶
階層構造の管理¶
レイヤーは階層的な名前空間で管理され、個別に表示/非表示を制御できます。
field/ ✓ 表示
├─ boundary ✓ 表示
├─ goals ✓ 表示
└─ center_circle ✗ 非表示
robots/ ✓ 表示
├─ team_blue/ ✓ 表示
│ ├─ robot_0 ✓ 表示
│ └─ robot_1 ✗ 非表示
└─ team_yellow/ ✗ 非表示
debug/ ✗ 非表示
├─ trajectories - 親が非表示
└─ ai_decisions - 親が非表示
動的レイヤー発見¶
新しいレイヤーが含まれるメッセージを受信すると、自動的に設定項目に追加されます。
// 新レイヤーの自動追加
msg.svg_primitive_arrays.forEach((svg_primitive_array) => {
if (!config.namespaces[svg_primitive_array.layer]) {
// デフォルトで表示状態で追加
newNamespaces[svg_primitive_array.layer] = { visible: true };
}
});
🔧 設定ファイルの管理¶
設定の永続化¶
Foxglove Studioがパネル設定を自動的に保存・復元します。
// 保存される設定例
{
"backgroundColor": "#585858ff",
"viewBoxWidth": 10000,
"aggregatedTopic": "/aggregated_svgs",
"updateTopic": "/visualizer_svgs",
"enableUpdateTopic": true,
"maxHistoryDuration": 300,
"maxHistorySize": 1000,
"namespaces": {
"field/boundary": { "visible": true },
"robots/team_blue/robot_0": { "visible": true },
"debug/trajectories": { "visible": false }
}
}
設定のエクスポート・インポート¶
Foxglove Studioのレイアウト機能を使用して設定を保存・共有できます。
📊 設定監視とデバッグ¶
リアルタイム情報表示¶
パネル下部に設定の動作状況が表示されます。
Aggregated Topic: /aggregated_svgs
Update Topic: /visualizer_svgs
Receive num: 1250
History: Aggregated(25), Updates(750)
Seek Time: 2024-01-15T10:30:45.123Z
パフォーマンス指標¶
- Receive num: 受信メッセージ総数
- History counts: 各トピックの履歴保持数
- Seek Time: 現在の時間シーク位置
🚀 高度な設定パターン¶
開発環境設定¶
{
"aggregatedTopic": "/dev/aggregated_svgs",
"updateTopic": "/dev/svg_updates",
"enableUpdateTopic": true,
"maxHistoryDuration": 60,
"maxHistorySize": 500,
"backgroundColor": "#404040ff",
"viewBoxWidth": 8000
}
本番環境設定¶
{
"aggregatedTopic": "/match/field_state",
"updateTopic": "/match/updates",
"enableUpdateTopic": true,
"maxHistoryDuration": 1800,
"maxHistorySize": 5000,
"backgroundColor": "#228b22ff",
"viewBoxWidth": 12000
}
デモ・プレゼンテーション設定¶
{
"aggregatedTopic": "/demo/visualization",
"updateTopic": "/demo/highlights",
"enableUpdateTopic": true,
"maxHistoryDuration": 300,
"maxHistorySize": 1000,
"backgroundColor": "#ffffffff",
"viewBoxWidth": 10000
}
💡 設定のベストプラクティス¶
1. 段階的な設定変更¶
大きな変更は段階的に行い、各ステップで動作確認を実施
2. 環境別設定管理¶
開発・テスト・本番で異なる設定プロファイルを維持
3. パフォーマンス監視¶
メモリ使用量と応答性能を定期的にチェック
4. バックアップ¶
重要な設定はFoxglove Studioのレイアウト機能で保存
5. チーム共有¶
チーム内で標準的な設定を共有し、一貫した分析環境を構築
この包括的な設定ガイドにより、様々な用途と環境に応じたCrane Visualizerパネルの最適化を実現できます。