写ros程序的时候话题订阅上了,但是callback不触发的问题,以及话题订阅发布不成功的原因

时间:2024-05-19 14:07:11

写ros程序的时候话题订阅上了,但是callback不触发的问题

是没有在线程的while循环中加入

ros::spinOnce();切记

如图:

写ros程序的时候话题订阅上了,但是callback不触发的问题,以及话题订阅发布不成功的原因

触发机制就是每执行一次ros::spinOnce();

如果有话题的话就会触发一次callback

 

订阅话题和发布话题的时候,

订阅和发布要弄成全局的,

如下所示

写ros程序的时候话题订阅上了,但是callback不触发的问题,以及话题订阅发布不成功的原因

如果弄成

ros::Subscriber enabled_sub = node_handle_.subscribe<std_msgs::Bool>("/is_robot_enabled", 1, 

这种函数内部的局部变量就订阅不上了,

订阅者的生命周期随着函数的退出就销毁了。切记