2025年8月22日 星期五

ros2 + Gazebo Classic +rviz2 URDF format check

 基礎環境是 ROS 2 + Gazebo Classic + RViz2。我會直接以這個前提來做靜態與執行面檢查,包含:

  • Xacro 語法與宏參數檢查

  • URDF 結構(link / joint / inertia / transmission / gazebo 扩展)

  • 常見錯誤(root link inertia、collision/visual 對齊、origin 使用、joint 限制、PID)

  • 針對 Gazebo Classic 的 plugin 與 <gazebo> 標籤相容性

  • RViz2 顯示與 TF 樹狀結構一致性

  • 可直接在你的工作區啟用的最小化 display.launch.py / gazebo.launch.py 測試流程

我現在就先做三件事並回報結果與修正建議:

  1. 解析 twowheel.urdf.xacro → 檢查語法與宏參數缺省值

  2. 轉換出 URDF(xacro → urdf)→ 檢查 kdl_parser 與 robot_state_publisher 會踩到的點

  3. 產生一份最小可跑的 RViz2 與 Gazebo Classic 測試清單(含命令與預期輸出)


你可以先把關的快速檢查指令(在你的 ROS 2 環境)

# 1) 檢查 xacro 語法(不需要啟任何 GUI) xacro /path/to/twowheel.urdf.xacro -o /tmp/twowheel.urdf # 2) 轉成完整 URDF 後,用 check_urdf 檢查(若系統有裝) check_urdf /tmp/twowheel.urdf # 3) 用 urdf_to_graphviz 看 TF 結構(選做) urdf_to_graphviz /tmp/twowheel.urdf xdg-open robot.pdf # 會輸出 TF 圖


== RViz2 與 Gazebo Classic 測試 ====
# RViz2 檢視(robot_state_publisher + jsp_gui)
ros2 launch your_pkg display.launch.py urdf_file:=/absolute/path/to/twowheel.fixed.urdf.xacro

# Gazebo Classic
export LIBGL_ALWAYS_SOFTWARE=1   # 若遠端/無GPU
ros2 launch your_pkg gazebo.launch.py urdf_file:=/absolute/path/to/twowheel.fixed.urdf.xacro
# 在另一終端發送速度指令(若 plugin namespace=twowheel_amr,topic 為 /twowheel_amr/cmd_vel)
ros2 topic pub -r 5 /twowheel_amr/cmd_vel geometry_msgs/Twist "{linear: {x: 0.2}, angular: {z: 0.0}}"




沒有留言:

張貼留言