Skip to content

feat: grSimボール・ロボット配置制御#34

Merged
HansRobo merged 1 commit intomainfrom
feat/grsim-placement-control
Feb 10, 2026
Merged

feat: grSimボール・ロボット配置制御#34
HansRobo merged 1 commit intomainfrom
feat/grsim-placement-control

Conversation

@HansRobo
Copy link
Copy Markdown
Member

@HansRobo HansRobo commented Feb 10, 2026

Summary

  • Foxgloveパネル上でクリック操作によりgrSimシミュレータのボール・ロボットを任意位置に配置する機能を追加
  • GrSimToolbarコンポーネントでBall/Yellow(0-15)/Blue(0-15)の配置モードを選択し、フィールド上でクリックすると/replacementトピックにGrSimReplacementメッセージを発行
  • ドラッグ操作(パン移動)とクリック操作(配置)を移動量で自動判別し、両方の操作が共存可能

主な機能

  • 配置モード選択: ツールバーからBall/Yellow ID/Blue IDを選択
  • クリック配置: フィールド上のクリックで選択オブジェクトをテレポート
  • ゴーストプレビュー: カーソル位置に半透明のプレビューを表示
  • Escキー: 配置モード解除
  • ドラッグ/クリック判別: 3px以上の移動でドラッグ、それ未満でクリックとして処理
  • 設定パネル: grSim制御の有効/無効、トピック名、デフォルトロボット方向を設定可能
  • Publish非対応検知: ファイル再生時などpublish不可時にwarning表示

Test plan

  • Foxglove Studio + ROS2 live接続でパネルを開く
  • grSimが起動している状態でBallモードを選択しフィールドをクリック → ボールが移動
  • Yellowロボットを選択しフィールドをクリック → ロボットが移動
  • ドラッグでパン移動が正常に動作することを確認
  • Escキーで配置モードが解除されることを確認
  • mcapファイル再生時にPublish非対応warningが表示されボタン無効化されることを確認

🤖 Generated with Claude Code

Foxgloveパネルからクリック操作でgrSimシミュレータ上のボールや
ロボットを任意の位置に配置する機能を実装。

主な変更点:
- GrSimToolbarコンポーネント: Ball/Yellow/Blueの配置モード選択UI
- Foxglove advertise/publish APIによるROSトピック発行
- SVG座標(mm)→grSim座標(m)の自動変換(Y軸反転対応)
- ドラッグ移動量追跡によるクリック/ドラッグの自動判別
- カーソル位置にゴーストプレビュー表示
- Escキーで配置モード解除
- 設定パネルにgrSim制御セクションを追加

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@HansRobo HansRobo merged commit bed9869 into main Feb 10, 2026
1 check passed
@HansRobo HansRobo deleted the feat/grsim-placement-control branch February 10, 2026 16:59
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