依照你前面在 Gazebo log 裡看到的兩個問題:
-
Laser(ray sensor)缺
<output_type>
→ Gazebo 預設成PointCloud2
,RViz2 看起來不直覺。 -
IMU sensor 缺 noise 配置 → 導致
Get noise index not valid
。
我幫你把這兩個部分補齊,直接整合進 xacro 版本。
修正版片段
雷射(LiDAR)
IMU
測試方法
-
重新轉換:
-
再 spawn 進 Gazebo:
-
檢查 ROS2 topic:
[建議測試]
# 轉成 URDF
xacro /path/to/twowheel.fixed.urdf.xacro -o /tmp/twowheel.urdf
#(可選)檢查
check_urdf /tmp/twowheel.urdf
/spawn_entity
不存在=你的 gzserver 沒跑,或沒載入 libgazebo_ros_factory.so
,或終端的 GAZEBO_MASTER_URI
不一致。照下面最短路徑做就會好:
1) 在「終端A」起 gzserver
(一定要帶 factory)
別關掉這個終端;保持 gzserver
在跑。
# 先起 gzserver(建議 headless、靜音、軟體渲染)
# 另開終端 spawn(用檔案最穩)load urdf to gzserver world
ros2 run gazebo_ros spawn_entity.py -entity twowheel_amr -file /tmp/twowheel.urdf
#gzclient is show GUI
gzclient
# 驗證感測器
ros2 topic list | egrep "scan|imu"
ros2 topic echo /twowheel_amr/scan --once
ros2 topic echo /twowheel_amr/imu/data --once
沒有留言:
張貼留言