ROS subscribe回撥函式的多引數使用
阿新 • • 發佈:2018-12-11
ROS 的subscribe函式,它在api中的原型為
template<class M , class T > Subscriber ros::NodeHandle::subscribe(const std::string & topic, uint32_t queue_size, void(T::*)(M) fp, const TransportHints & transport_hints = TransportHints() ) [inline]
因此在使用該函式時最簡單的形式是隻有回撥函式指標這一個實參:
ros::Subscriber sub = n.subscribe<std_msgs::String>("name", 10, &chatterCallback);
但是如果在回撥函式中不只有msgs這一個實參,則需要用到boost庫中的bind( )函式:
ros::Subscriber sub = n.subscribe<std_msgs::String>("name", 10, boost::bind(&chatterCallback,_1,param1));
在這裡param1是另一個引數,在這之前是佔位符,提供給std_msgs。