ROS 问题(topic types do not match、topic datatype/md5sum not match、msg xxx have changed. rerun cmake)

1. topic types 不匹配

使用 roslaunch 命令

roslaunch carla_ros_bridge carla_ros_bridge_with_example_ego_vehicle.launch

启动官方 demo 后,试图通过手写 Python 脚本来控制车辆,但是有下面报错:

Could not process inbound connection: topic types do not match: 
[carla_msgs/CarlaEgoVehicleControl] vs. [topic_demo/CarlaEgoVehicleControl]

很明显 topic 类型不匹配,我们需要给 carla_msgs/CarlaEgoVehicleControl 发送控制命令,那么我们的 topic 也应该是 carla_msgs

解决方法:

  • ~/catkin_ws 目录下重新创建 carla_msgs 文件夹后再重新执行 catkin_make 命令

2. topic datatype/md5sum 不一致

问题 1 解决后又有如下报错

Could not process inbound connection: Client [/carla_ros_bridge] 
wants topic [/carla/ego_vehicle/vehicle_control_cmd] to have datatype/md5sum 
[carla_msgs/CarlaEgoVehicleControl/e5b57fc698c12ff4c20a5fc71fba832f], 
but our version has [carla_msgs/CarlaEgoVehicleControl/919d1c0732720a839958ff82b9ba0dcd] 
Dropping connection.

是因为我们修改了该 topic 对应的 msg 或者 srv 文件,导致两者的 MD5 值不一致。

解决方法:

  • 将原始的 msg 或者 srv 文件拷贝过来放到自己当前 Python 项目的 package 目录下,然后重新执行 catkin_make

3. message/service xxx have changed. Please rerun cmake.

问题 1 和 2 解决后接着执行 catkin_make 命令时又报错:

The dependencies of the message/service 'carla_msgs/CarlaEgoVehicleControl' have changed. Please rerun cmake.
carla_msgs/CMakeFiles/_carla_msgs_generate_messages_check_deps_CarlaEgoVehicleControl.dir/build.make:57: 
recipe for target 'carla_msgs/CMakeFiles/_carla_msgs_generate_messages_check_deps_CarlaEgoVehicleControl' failed

很明显由于 CarlaEgoVehicleControl.msg 文件改动后导致需要重新 cmake

解决方法:

  • 删除工作空间 ~/catkin_wsdevelbuild 目录下对应的项目目录文件,比如我的目录 carla_msgs 。(build 目录下包含 includelib 目录)

参考:https://answers.ros.org/question/138731/catkin_make-clean/

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值