RViz 配合 ROS 的用途與功能介紹
1. 什麼是 RViz?
RViz (ROS Visualization Tool) 是 ROS (Robot Operating System) 提供的一個 3D 視覺化工具,主要用於顯示機器人感測器數據、環境地圖、導航軌跡、機械手臂狀態等資訊。它可以幫助開發者即時監測機器人的運作狀態,並進行除錯與調試。
2. RViz 的用途
RViz 在 ROS 生態系統中主要負責 可視化,常見的用途包括:
✅ (1) 顯示機器人模型 (URDF / SDF)
- 可以載入機器人的 URDF (Unified Robot Description Format) 或 SDF (Simulation Description Format) 模型,顯示機器人的形狀、關節狀態及運動方式。
- 配合
robot_state_publisher
節點,能夠顯示機器人當前姿態。
📌 指令範例
✅ (2) 視覺化感測器數據
可以顯示機器人的各種感測器數據,例如:
- LIDAR / 雷射雷達 (
sensor_msgs/LaserScan
) - 深度相機 (RGB-D Camera) (
sensor_msgs/PointCloud2
) - IMU (慣性測量單元) (
sensor_msgs/Imu
) - GPS 定位資訊 (
sensor_msgs/NavSatFix
)
📌 常見雷射雷達可視化
在 RViz 內 新增 LaserScan 類型,訂閱雷射雷達的 Topic,例如 /scan
。
✅ (3) 機器人導航 (SLAM & Path Planning)
- SLAM (同時定位與建圖):可以顯示
map
,以及即時建立環境地圖 (occupancy grid map
)。 - 路徑規劃與導航:
- 可視化機器人的目標點 (
Move Base Goal
) - 顯示局部與全局路徑 (
Local Path & Global Path
) - 監控機器人避障狀態 (
costmap
)
- 可視化機器人的目標點 (
📌 導航功能常見指令
在 RViz 內 新增 Map 類型,訂閱 /map
來顯示機器人的地圖。
✅ (4) 機械手臂運動規劃 (MoveIt!)
- RViz 可以與 MoveIt! 搭配,顯示機械手臂的當前狀態、運動規劃軌跡 (
Trajectory
),並透過互動方式來控制手臂移動。 - 可視化逆向運動學 (IK) 解算結果。
📌 MoveIt! 例子
在 RViz 內,開啟 MotionPlanning 外掛來控制手臂。
✅ (5) 機器人運動軌跡 (TF & Odometry)
- TF (Transform Frames):顯示機器人的座標變換,例如從 機器人基座 (
base_link
) 到 相機 (camera_link
) 的相對位置。 - Odom (里程計 / Odometry):顯示機器人在世界座標中的位置 (
/odom
topic)。
📌 查看 TF 樹狀架構
📌 在 RViz 顯示 TF
- 新增 "TF" 顯示類型
- 訂閱
/tf
主題
✅ (6) 自訂 3D 標記 (Markers)
- 視覺化自訂訊息,例如:
- 繪製路徑 (
Line Strip
) - 顯示物件 (
MeshResource
) - 標示文字 (
Text View-Facing
) - 方向箭頭 (
Arrow
)
- 繪製路徑 (
📌 自訂 RViz Markers
在 RViz 內,新增 "Marker" 類型 訂閱 /visualization_marker
。
3. RViz 的基本操作
(1) 啟動 RViz
或
(2) 重要的可視化元素
顯示類型 | 說明 | 需訂閱的 Topic |
---|---|---|
RobotModel | 顯示機器人模型 | /robot_description |
TF | 顯示座標變換 | /tf |
LaserScan | 顯示雷射雷達數據 | /scan |
PointCloud2 | 顯示點雲 (3D Lidar) | /points |
Odometry | 顯示機器人位置 | /odom |
Path | 顯示導航路徑 | /move_base/NavfnROS/plan |
Marker | 顯示 3D 標記 | /visualization_marker |
Image | 顯示相機影像 | /camera/image_raw |
4. RViz 進階應用
(1) 建立 RViz 配置檔 (.rviz
)
可以儲存當前的 RViz 設定,以便下次開啟:
- 設定好視圖、座標、雷射雷達等顯示項目。
- 點選 File -> Save Config,存成
.rviz
檔案。 - 之後可以使用:
(2) 自動啟動 RViz
可以建立一個 launch 檔案,讓 RViz 自動啟動:
執行:
5. RViz vs Gazebo
功能 | RViz | Gazebo |
---|---|---|
主要用途 | 可視化 ROS 資訊 | 物理模擬 |
機器人模型 | 只能顯示 | 可模擬運動 |
感測器數據 | 可視化雷射、相機等 | 提供真實感測器模擬 |
導航 (SLAM) | 顯示地圖與路徑 | 無法執行 |
與 MoveIt! 搭配 | 是 | 也可以 |
6. 結論
✅ RViz 是 ROS 的重要視覺化工具,能夠幫助開發者監控機器人狀態、感測數據、導航資訊,並進行調試。
✅ 主要應用包括 機器人模型顯示、LIDAR 感測、SLAM、導航、運動規劃、TF 變換等。
✅ 可透過 .rviz
檔案 儲存與載入配置,並且能夠與 MoveIt!、SLAM、導航系統整合。
✅ 不具備物理模擬能力,如需物理模擬請搭配 Gazebo。
💡 建議:使用 RViz 進行即時監控,Gazebo 進行模擬測試,兩者搭配能發揮最大效益!🚀
沒有留言:
張貼留言