ROSsubscribe回调函数的多参数使⽤例⼦
lechery#include"ros/ros.h"
#include<nav_msgs/OccupancyGrid.h>
//#include <boost/bind.hpp>
void mapcallback(const nav_msgs::OccupancyGrid::ConstPtr& msg,int* k)
scarf是什么意思
{
//doing stuff
}
关于元宵节的资料int main(int argc,char**argv)
{
ros::init(argc, argv,"mapper");
envisioned
ros::NodeHandle n;
int test;
//boost::bind(&mapcallback, _1, test);
ros::Subscriber sub2=n.subscribe("map",1, boost::bind(&mapcallback, _1,&test));
while(ros::ok())
{
ros::spinOnce();
sleep(2);
英语春节手抄报}艾美奖2012
return0;
}
解析
ROS 的subscribe函数,它在api中的原型为
template<class M , class T >
专升本有几种方式Subscriber ros::NodeHandle::subscribe(const std::string & topic,
uint32_t queue_size,
void(T::*)(M) fp,
usually是什么意思
const TransportHints & transport_hints =TransportHints()
)[inline]
roomate
因此在使⽤该函数时最简单的形式是只有回调函数指针这⼀个实参:
tubekingsros::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。
参考