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。