2、nh.getParam()和ros::param.get()获取ROS参数服务器中的数据
可参考博客 https://blog.csdn.net/qq_39779233/article/details/108411778
1、 ros::NodeHandle,节点句柄
节点和节点句柄 是不同的。一般而言,一个cpp文件只能启动一个ROS节点,但作为该节点的句柄却可以设置多个。
节点句柄类有两个作用:
- 在一个roscpp程序中,节点句柄可以启动或关闭一个ROS内部节点;
- 节点句柄可以增加一层命名空间,可以为编写组件提供便利。
创建一个节点句柄最简单的方式如下所示:
ros::NodeHandle nh;
节点句柄的另一个构造函数形式可以让我们自定义命名空间:
ros::NodeHandle nh("my_ns"); // <node_namespace>/my_ns
- 若存在节点命名空间,如在launch文件中启动该节点时加入ns=“node_ns”,则命名空间为node_ns/my_ns;
- 若不存在节点命名空间,则为my_ns。
另外也可以创建多个节点句柄,然后为某个句柄设置父节点句柄:
ros::NodeHandle nh1("ns1"); // <node_namespace>/ns1
ros::NodeHandle nh2(nh1, "ns2"); // <node_namespace>/ns1/ns2