句柄可以让你通过构造函数指定命名空间
ros::init(argc, argv, "node_name");
(1)ros::NodeHandle nodel_handle;
ros::Publisher map_publisher_ = node_handle_.advertise<nav_msgs::OccupancyGrid>("map", 1, true);
上例子会发布节点<node_name>的话题/map
话题形式为:话题名字。
(2)ros::NodeHandle nodel_handle("~");
ros::Publisher map_publisher_ = node_handle_.advertise<nav_msgs::OccupancyGrid>("map", 1, true);
上例子会发布节点<node_name>的话题/node_name/map
话题形式为:节点名字+话题名字。
NodeHandle类的主要成员函数:
发布话题,返回一个Publisher,负责广播topic
Publisher | advertise (const std::string &topic, uint32_t queue_size, bool latch=false) |
订阅一个话题,收到话题中的消息后触发回调函数
Subscriber | subscribe (const std::string &topic, uint32_t queue_size, void(T::*fp)(M), T *obj, const TransportHints &transport_hints=TransportHints()) |
从参数服务中获得某个参数
bool | getParam (const std::string &key, std::string &s) const |