ROS入门--参数的使用与编程方法

ROS入门--参数的使用与编程方法

(参考古月居b站视频P16,本文仅为笔记和个人理解)

 

ROS master中有一个参数服务器叫做Parameter server可以查询不同pc端的字典,可以看作 全局变量的空间

 

一、创建功能包

到工作空间的src下mkdir一个learning_parameter

到工作空间目录下终端输入catkin_create_pkg learning_parameter roscpp rospy std_srvs

 

二、参数命令行的使用

终端输入rosparam,会显示rosparam的列表 

 

 

 上图可见,使用rosparam set命令可以修改这些参数,修改颜色如图,后使用rosservice call /clear "{}"  呼叫刷新。

 

可以使用rosparam dump param.yaml 可以保存设置到主目录下文件名字param.yaml 会保存我们在终端查询到的所有参数!

 

如果对文件进行修改还可以在终端 加载rosparam load param.yaml  这样可以使得当前运行参数改变为自定义的样子。

 

rosparam delete 可以删除某个参数,会使得当前客户端失去该参数属性。

 

 

三、做一个简单的实验(完成读取输出参数,改写输出参数)

代码如下:

/**
* 该例程设置/读取海龟例程中的参数
*/
#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("/background_r", red);
ros::param::get("/background_g", green);
ros::param::get("/background_b", blue);

ROS_INFO("Get Backgroud Color[%d, %d, %d]", red, green, blue);

// 设置背景颜色参数
ros::param::set("/background_r", 255);
ros::param::set("/background_g", 255);
ros::param::set("/background_b", 255);

ROS_INFO("Set Backgroud Color[255, 255, 255]");

// 读取背景颜色参数
ros::param::get("/background_r", red);
ros::param::get("/background_g", green);
ros::param::get("/background_b", blue);

ROS_INFO("Re-get Backgroud 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;
}

 

 配置编译文件:

add_executable(parameter_config src/parameter_config.cpp)
target_link_LIBRARIES(parameter_config ${catkin_LIBRARIES})

 

运行:

运行roscore

运行turtlesim节点

运行param节点

 

posted @   FrankPlus  阅读(230)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示