1.参数模型:
参数可以理解为ROS中的全局变量,储存在ROS Master中(也就是roscore中),每一个节点都可以访问ROS Master中的参数。
2.创建功能包:
3.与参数相关的命令行:
(1)rosparam命令:查看与参数相关的命令
(2)rosparam list命令:列出当前所有参数
(3)rosparam get param_key命令:显示某个参数值
(4)rosparam set param_key param_value命令:设置某个参数值
(5)rosparam dump file_name命令:保存参数至文件,文件默认位于主文件夹
(6)rosparam load file_name命令:从文件读取参数
(7)rosparam delete param_key命令:删除某参数
4.如何获取/设置参数:
(1)初始化ROS节点,创建名为“parameter_config”的节点;
(2)get函数获取参数;
(3)set函数设置参数。
#include<string>
#include<ros/ros.h>
#include<std_srvs/Empty.h>
int main(int argc, char **argv)
{
int red, green, blue;
//ROS节点初始化
ros::init(argc, argv, "parameter_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;
}
5.配置CMakeLists.txt中的编译规则:
6.编译并运行: