一、P77
小结
二、P78
三、P79
四、P80
1、新建功能包
在demo03_ws工作空间中的src文件夹中,新建功能包plumbing_param_server
选中src文件夹右击,点击Create Catkin Package,在弹出的输入框中输入:plumbing_param_server,按下回车键,添加依赖包;
2、添加依赖包
在输入框中输入:roscpp rospy std_msgs,按下回车键。
3、新建C++文件
在plumbing_param_server/src中新建文件:demo01_param_set.cpp
4、编写程序
在文件中编写如下代码(参数服务器增加):
#include "ros/ros.h"
/*
实现参数的新增和修改
需求:假设是一个圆形机器人
1、首先设置机器人的共享参数,类型、半径(0.15m)
2、修改半径为(0.2m)
实现:
ros::NodeHandle
setParam(“键”,值)
ros::param
set(“键”,值)
*/
int main(int argc,char *argv[])
{
//初始化节点
ros::init(argc,argv,"set_param_c");
//创建ROS节点句柄
ros::NodeHandle nh;
//参数增加---------新增一个机器人的型号和半径------------------
//方案1:nh
nh.setParam("type","xiaoHuang");
nh.setParam("radius",0.15);
//方案2:ros::param
ros::param::set("type_param","xiaoBai");
ros::param::set("radius_param",0.15);
//参数修改---------------------------
return 0;
}
5、修改配置文件CMList.txt
add_executable(demo01_param_set src/demo01_param_set.cpp)
target_link_libraries(demo01_param_set
${catkin_LIBRARIES}
)
6、编译程序
ctrl+shift+b 编译程序,看看搭建的框架有没有问题。
7、打开终端,启动核心
8、打开工作空间
cd demo03_ws
source ./devel/setup.bash
rosrun plumbing_param_server demo01_param_set
按下回车键,没有任何提示,说明成功了。因为程序中没有输出的指令。此时,已经把参数设置进入参数服务器了。
9、查看参数信息
新打开终端,输入:
rosparam list,可以看到一些参数,有些是系统自带的,有些是刚刚编写的。
输入 :
rosparam get /type
rosparam get /type_param
rosparam get /radius
rosparam get /radius_param
得到如下结果
10、参数服务器修改
//参数修改---------------------------
//方案1:nh
nh.setParam("radius",0.35);//参数覆盖
//方案2:ros::param
ros::param::set("radius_param",0.45);//参数覆盖
11、重新编译
12、查看结果
修改成功。