基礎環境是 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
測試流程
我現在就先做三件事並回報結果與修正建議:
-
解析
twowheel.urdf.xacro
→ 檢查語法與宏參數缺省值 -
轉換出 URDF(xacro → urdf)→ 檢查 kdl_parser 與 robot_state_publisher 會踩到的點
-
產生一份最小可跑的 RViz2 與 Gazebo Classic 測試清單(含命令與預期輸出)
你可以先把關的快速檢查指令(在你的 ROS 2 環境)
== 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}}"
沒有留言:
張貼留言