可以通过两套API进行实现:
ros::NodeHandle ros::param
言简意赅:
首先创建工作空间:demo_csfwq_ws
创建功能包:plumbing_param_server 依赖库:roscpp std_msgs
在功能包下src目录内新建:demo01_param_set.cpp
编写如下代码:
#include "ros/ros.h"
/*
需要实现参数的新增与修改
需求:首先设置机器人的共享参数,类型、半径(例:0.15)
再修改半径(改:0.2)
实现:两套API
ros::NodeHandle
setParam()
ros::param
set()
*/
int main(int argc, char *argv[])
{
//初始化 ROS 节点
ros::init(argc, argv, "set_param_c");
//创建 ROS 节点句柄
ros::NodeHandle nh;
//参数增----------------------------------------
//方案1: nh
nh.setParam("type", "Auto_Robot");
nh.setParam("radius", 0.15);
//方案2: ros::param
ros::param::set("type_param", "Controllable_Robot");
ros::param::set("radius_param", 0.15);
//参数改----------------------------------------
return 0;
}
修改配置文件:功能包内的CMakeLists:
老生常谈:
add_executable(demo01_param_set src/demo01_param_set.cpp)
target_link_libraries(demo01_param_set
${catkin_LIBRARIES}
)
编译一下看看代码有没问题,然后启动终端
roscore,source...,rosrun老生常谈,然后无反应,使用以下代码验证确认无误
rosparam list 列出现在参数服务器内的所有参数,然后找自己弄的,输入
rosparam get 加上上面的名字,斜杠需要加上,输出内容
未完待续.......