命令行查询参数
$ rosparam list
设置参数值,得到参数值
$ rosparam set /
$ rosparam get /
把当前参数记录到文件中
$ rosparam dump param.yaml
文件保存在根目录下。
加载参数记录文件
$ rosparam dump param.yaml
下面用代码来实现参数的获取和修改。
首先创建功能包
$ cd ~/catkin_ws/src
$ catkin_create_pkg learning_parameter roscpp rospy std_srvs
代码如下
/*
*修改海龟背景颜色为白色
*/
#include <string>
#include <ros/ros.h>
#include <std_srvs/Empty.h>
int main(int argc, char **argv)
{
int red, green, blue;
ros::init(argc, argv, "paramter_config");
ros::NodeHandle node;
//读取背景颜色参数
ros::param::get("/turtlesim/background_r", red);
ros::param::get("/turtlesim/background_g", green);
ros::param::get("/turtlesim/background_b", blue);
ROS_INFO("Get Background Color[%d, %d, %d]", red, green, blue);
//设置背景颜色参数
ros::param::set("/turtlesim/background_r", 255);
ros::param::set("/turtlesim/background_g", 255);
ros::param::set("/turtlesim/background_b", 255);
ROS_INFO("Set Background Color[255, 255, 255]");
ros::param::get("/turtlesim/background_r", red);
ros::param::get("/turtlesim/background_g", green);
ros::param::get("/turtlesim/background_b", blue);
ROS_INFO("Re-get background Color[%d, %d, %d]", red, green, blue);
//调用服务,刷新背景颜色
ros::service::waitForService("/clear");
ros::ServiceClient clear_background = node.serviceClient<std_srvs::Empty>("/clear");
std_srvs::Empty srv;
clear_background.call(srv);
sleep(1);
return 0;
}
运行前
编译运行后,
jw@Z8:~$ rosrun learning_parameter parameter_config
[ INFO] [1646359062.192237083]: Get Background Color[69, 86, 255]
[ INFO] [1646359062.193959467]: Set Background Color[255, 255, 255]
[ INFO] [1646359062.194303664]: Re-get background Color[255, 255, 255]
命令行显示参数,背景变为白色