ROS学习(六)参数的设置与编程方法

目录

 

参数模型

一、参数命令行的使用

二、使用yaml文件

三、编程实现

1.创建功能包(learning_parameter)

2.创建parameter_config.cpp

3.配置CMakeLists.txt中的编译规则,build下

4.编译

5.运行


参数模型

Parameter Server相当于全局变量的储存空间


一、参数命令行的使用

1.列出当前多有参数 

rosparam list

2.显示某个参数值 

rosparam get xxx

3.设置某个参数值 

rosparam set xxx

4.保存参数到文件 

rosparam dump xxx.xxx

5.从文件读取参数 

rosparam load xxx.xxx

6.删除参数 

rosparam delete xxx

二、使用yaml文件

通过打开yaml文件来修改参数

background_b:255
background_g:86
background_r:69
rosdistro: 'melodic'
roslaunch:
  uris:{host_hcx_vpc__43763: 'http://hcx.vpc:43763/'}
rosversion: '1.14.3'
run_id: 077058de-a38b-11e9-818b-000c29d22e4d

也可从此文件中读取参数 

rosparam load xxx.xxx

刷新参数 

rosservice call /clear "{}"

三、编程实现

1.创建功能包(learning_parameter)

cd ~/catkin_ws/src
catkin_create_pkg learning_parameter roscpp rospy std_srvs

2.创建parameter_config.cpp

cd learning_parameter/src
touch parameter_config.cpp
gedit parameter_config.cpp

parameter_config.cpp内容如下 

//该例程设置/读取海龟例程中的参数
#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;
}

3.配置CMakeLists.txt中的编译规则,build下

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

 4.编译

cd ~/catkin_ws
catkin_make

5.运行

启动ROS核心

roscore

启动海龟仿真器

rosrun turtlesim turtlesim_node

运行

source ~/catkin_ws/devel/setup.bash
rosrun learning_parameter parameter_config

ros通过程序设置参数icon-default.png?t=M666https://download.youkuaiyun.com/download/m0_56451176/86398724?spm=1001.2014.3001.5503 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

dtge

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值