Skip to content

feat: 可視化レイヤーのlifetimeベース管理機能を実装#1136

Merged
HansRobo merged 2 commits intodevelopfrom
build-opt
Jan 31, 2026
Merged

feat: 可視化レイヤーのlifetimeベース管理機能を実装#1136
HansRobo merged 2 commits intodevelopfrom
build-opt

Conversation

@HansRobo
Copy link
Copy Markdown
Member

概要

可視化オブジェクトの有効期限を管理する機能を追加し、一時的な可視化データ(スキル・セッション)の自動削除を実現しました。

主な変更

メッセージ定義

  • SvgLayerUpdate.msg: float64 durationフィールドを追加
    • 秒単位で有効期限を指定
    • 0または未指定の場合は無限(期限なし)

VisualizerMessageBuilder (crane_msg_wrappers)

  • withDuration(double seconds)メソッド: durationを設定可能に
  • flush(): durationをメッセージに含めて送信
  • メンバ変数: double duration = 0.0(デフォルトは無限)

Aggregator (crane_visualization_aggregator)

  • LayerState構造体: プリミティブ配列と期限時刻を管理
  • 期限計算: update.duration > 0なら現在時刻 + durationを期限として設定
  • 自動削除: 100msタイマーで期限切れレイヤーを検出・削除
  • スナップショット: 有効なレイヤーのみを含める

デフォルト設定

  • SkillInterface (crane_robot_skills/skill_base.hpp): 0.5秒
  • SessionBase (crane_sessions/session_base.hpp): 0.5秒

アーキテクチャ

[VisualizerMessageBuilder]
  ↓ withDuration(0.5)
  ↓ flush() → duration付きメッセージ送信
[Aggregator]
  ↓ 期限計算 (now + duration)
  ↓ LayerStateに保存
  ↓ 100ms周期で期限チェック
  ↓ 期限切れレイヤー削除
[/aggregated_svgs]
  ↓ 有効なレイヤーのみ配信
[foxglove_crane_visualizer]
  ↓ 表示

効果

  • ✅ 短命な可視化データが自動的に消える
  • ✅ メモリ使用量の削減
  • ✅ 表示の整理・見やすさ向上
  • ✅ 手動削除の必要がなくなる

テスト計画

  • スキル可視化が0.5秒で消えることを確認
  • セッション可視化が0.5秒で消えることを確認
  • duration=0(無限)のレイヤーが残り続けることを確認
  • 期限切れレイヤーがスナップショットに含まれないことを確認

関連PR

🤖 Generated with Claude Code

HansRobo and others added 2 commits January 31, 2026 14:46
可視化オブジェクトの有効期限を管理する機能を追加し、
一時的な可視化データの自動削除を実現。

## 主な変更

### メッセージ定義
- `SvgLayerUpdate.msg`に`duration`フィールド追加(秒単位、0=無限)

### VisualizerMessageBuilder
- `withDuration()`メソッドを追加してdurationを設定可能に
- `flush()`時にdurationをメッセージに含める

### Aggregator
- `LayerState`構造体を導入し、プリミティブと期限を管理
- 100msタイマーで期限切れレイヤーを自動削除
- スナップショット生成時は有効なレイヤーのみ含める

### デフォルト設定
- SkillInterface: 0.5秒のデフォルトduration
- SessionBase: 0.5秒のデフォルトduration

## 効果
- 短命な可視化データ(スキル・セッション)が自動的に消える
- メモリ使用量の削減
- 表示の整理

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
@HansRobo HansRobo merged commit 813ab18 into develop Jan 31, 2026
6 checks passed
@HansRobo HansRobo deleted the build-opt branch January 31, 2026 06:06
@github-actions
Copy link
Copy Markdown
Contributor

@github-actions
Copy link
Copy Markdown
Contributor

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant