NodeHandle常用成员函数包括:
-
创建话题的publisher
ros::Publisher advertise(const string &topic,uint32_t queue_size, bool latch=false);
//第一个参数为发布话题的名称
//第二个是消息队列的最大长度,如果发布的消息超过这个长度而没有被接收,那么就的消息就会出队。通常设为一个
较小的数即可。
//第三个参数是是否锁存。某些话题并不是会以某个频率发布,比如/map这个topic,只有在初次订阅或者地图更新这两
种情况下,/map才会发布消息。这里就用到了锁存。 -
创建话题的subscriber
ros::Subscriber subscribe(const string &topic,uint32_t queue_size, void(*)(M));
//第一个参数是订阅话题的名称
//第二个参数是订阅队列的长度,如果受到的消息都没来得及处理,那么新消息入队,就消息就会出队
//第三个参数是回调函数指针,指向回调函数来处理接收到的消息 -
创建服务的server,提供服务
ros::ServiceServer advertiseService(const string &service, bool(*srv_func)(Mreq &, Mres &));
//第一个参数是service名称
//第二个参数是服务函数的指针,指向服务函数。指向的函数应该有两个参数,分别接受请求和响应。 -
创建服务的client
ros::ServiceClient serviceClient(const string&service_name, bool persistent=false);
//第一个函数式service名称
//第二个参数用于设置服务的连接是否持续,如果为true,client将会保持与远程主机的连接,这样后续的请求会快一些。通常我们设为flase -
查询某个参数的值
bool getParam(const string &key, std::string &s);
boolgetParam (const std::string &key, double &d) const;
bool getParam(const std::string &key, int &i) const;
//从参数服务器上获取key对应的值,已重载了多个类型 -
给参数赋值
void setParam (const std::string &key, const std::string &s)const;
void setParam (const std::string &key, const char *s) const;
void setParam (const std::string &key, int i) const;
//给key对应的val赋值,重载了多个类型的val