1. 程式人生 > 實用技巧 >寫ros程式的時候話題訂閱上了,但是callback不觸發的問題,以及話題訂閱釋出不成功的原因

寫ros程式的時候話題訂閱上了,但是callback不觸發的問題,以及話題訂閱釋出不成功的原因

寫ros程式的時候話題訂閱上了,但是callback不觸發的問題

是沒有線上程的while迴圈中加入

ros::spinOnce();切記

如圖:

觸發機制就是每執行一次ros::spinOnce();

如果有話題的話就會觸發一次callback

訂閱話題和釋出話題的時候,

訂閱和釋出要弄成全域性的,

如下所示

如果弄成

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

這種函式內部的區域性變數就訂閱不上了,

訂閱者的生命週期隨著函式的退出就銷燬了。切記