外观
踩坑Robotics Stack Exchange2025-09-05
Gazebo Harmonic gpu_lidar缺失gz_frame_id致std::bad_al。
本文由 AI 根据公开内容整理,可能有误,请以原文为准:Gazebo harmonic: frame_id vs gz_frame_id in urdf definition of gpu_lidar(Robotics Stack Exchange #117354)
状态:已解决
问题
在Gazebo Harmonic与ROS Jazzy联调gpu_lidar传感器时,若URDF中未定义gz_frame_id,echo LaserScan话题会触发std::bad_alloc异常;若未定义frame_id,ros-gz-bridge初始化后会发生segfault。即使两参数值相同,也必须同时显式声明才能正常工作。
环境
Gazebo Harmonic, ROS Jazzy, ros_gz 1.0.16, gpu_lidar传感器, ros-gz-bridge
解决办法
- 在URDF/xacro的gpu_lidar sensor标签内同时添加<frame_id>与<gz_frame_id>标签,并将二者设置为相同的link名称(如${name}_link)。
- 保持该冗余配置直至升级至修复此问题的更新版gz-sim,因Harmonic版本插件对SDF标签解析存在差异,需同时满足新旧插件需求。
- 确保ros_gz_bridge.yaml中正确映射gz.msgs.LaserScan到sensor_msgs/msg/Range,且方向设为GZ_TO_ROS。
原问题作者:thequila;采纳答案作者:Mike973。原内容依 CC BY-SA 4.0 授权,本页摘要同样依 CC BY-SA 4.0 授权。
来源
本页事实对应的公开页面,以原文为准。