可視化・記録と再生
RViz と経路表示
visualization/config.yaml の visualization.rviz_config で RViz 設定を選びます。統合 launch では launch.components.visualization の各 enabled で起動を制御します。
ノード / plugin |
入力 |
表示・出力 |
|---|---|---|
|
|
|
|
経路 CSV、 |
|
|
真値 pose、推定 pose、cmd_vel、RANSAC 状態 |
RViz の3Dビュー上の HUD |
path_visualizer は経路 index を受信したときだけ対応 CSV を表示します。負の index、未収録・空の CSV では空の Path を送って表示を消します。index と Path は transient_local + reliable で、後から接続した RViz にも最新値を渡します。CSV の yaw は rad です。
HUD は /localization/ground_truth_pose (PoseStamped)、/localization_pose (PoseWithCovarianceStamped)、/cmd_vel (Twist)、/localization/ransac_state (String) を購読します。x・y・theta の推定誤差、vx・vy・wz、RANSAC の捕捉・追跡・fallback・odom_only 状態を表示します。真値はシミュレータ側が供給します。
Groot Monitor は BT の ZeroMQ 出力を表示します。統合 Web 表示は RViz と Groot のタブを提供し、launch.components.web.rogi_web.enabled で起動します。
rosbag 記録
全 topic を MCAP 形式で保存します。rogi_nav.launch.py に record_all:=true record_output_dir:=<dir> を渡すと、
記録を先に開始してから各 component を 1 秒遅らせて起動します(make <example> はこの形で実行ごとの
output/<example>-<mode>-<日時>/ に記録します)。単体でも同じ引数で起動できます。
ros2 launch rogi_launch rosbag_record_all.launch.py \
record_all:=true record_output_dir:="$HOME/rogi_nav_ws/src/rogi_nav/output/manual"
引数 |
既定値 / 内容 |
|---|---|
|
|
|
必須(記録時に空ならエラー) |
|
|
|
|
rosbag 再生
ros2 launch rogi_launch rosbag_play.launch.py \
rosbag_dir:="$HOME/rogi_nav_ws/src/rogi_nav/output" \
bag:=latest rate:=1.0 start_paused:=true
bag は latest、更新日時が新しい順の index(0始まり)、bag ディレクトリ名、絶対パスで指定します。loop:=true で繰り返します。再生時は --clock を付け、同時に起動する RViz は use_sim_time=true にします。rosbag_dir の既定は <rogi_nav>/output(なければ <rogi_nav>/rosbag、/rosbag)で、配下を再帰的に探します。rviz_config で表示設定を変更できます。空(既定)の場合は、選択した bag と同じ実行ディレクトリに保存された example/<example>/config/visualization/rviz/*.rviz を使い、見つからなければ RViz の既定表示です。
停止時の SVG グラフ出力は rosbag と独立した機能です。simple_pure_pursuit を参照してください。