添加geometry_msgs/PointStamped类型气压传感器后pressure话题未发布求助
气压传感器插件无ROS话题输出排查方案
- 检查xacro宏是否正确实例化
你提供的文件仅定义了气压传感器的xacro宏,需确认在机器人主urdf/xacro文件中已正确调用default_pressure或pressure_plugin_macro,传入的namespace、parent_link参数合法,origin位姿参数已正常配置。可执行xacro 你的主urdf文件路径 > test.urdf导出完整urdf,检查气压传感器的link、joint、plugin段是否正常生成。 - 检查话题命名空间前缀
从调试日志可知插件所属模型命名空间为rexrov2,因此气压话题实际路径为/rexrov2/pressure,而非根目录下的/pressure,可执行rostopic list | grep rexrov2检索带命名空间的相关话题。 - 校验插件参数合法性
你当前配置的saturation(量程)为30000kPa,远高于常规大气压力量程,若你是空中场景使用气压计,该参数可能触发插件的量程校验逻辑导致无输出;同时当前estimateDepth设为false,部分版本的压力插件关闭深度估计后会停止话题发布,可先修改为true测试是否有输出。 - 检查Gazebo与ROS的连通性
确认你是先启动roscore再启动Gazebo仿真,执行rosnode list查看是否存在/gazebo节点,若节点不存在说明Gazebo未成功连接ROS,不会发布任何ROS话题。 - 匹配输出消息类型
rotors_gazebo_pressure_plugin默认输出消息类型为sensor_msgs/FluidPressure,你需要的geometry_msgs/PointStamped类型并非该插件的原生输出,你可以修改插件源码,将压力值通过标准气压高度公式换算为高度后封装为geometry_msgs/PointStamped发布,也可以额外写一个转换节点完成消息类型的适配,再供给hector_pose_estimation使用。 - 查看完整运行日志
启动Gazebo时添加--verbose参数,查看插件初始化过程中是否有参数读取失败、依赖缺失等隐藏报错,定位具体问题。
内容的提问来源于stack exchange,提问作者Bob9710
相关产品推荐
相关产品推荐

