参数的使用和编程方法

简介

参数是在ros measter中,每个节点都可以访问该数据

rosparam 参数类指令的使用

命令参数查看

输入rosparam查看rosparam的参数设置

rosparam is a command-line tool for getting, setting, and deleting parameters from the ROS Parameter Server.

Commands:
	rosparam set	set parameter
	rosparam get	get parameter
	rosparam load	load parameters from file
	rosparam dump	dump parameters to file
	rosparam delete	delete parameter
	rosparam list	list parameter names

list:显示但前的参数名
set: 可以设置参数值
load: 加载.yaml文件来修改参数值
dump: 把当前参数和值到出到一个.yaml文件中
delete:是删除某个参数

以小海龟为例查看指令的使用

  1. rosparam list
    在这里插入图片描述
  2. rosparam get
    在这里插入图片描述
  3. rosparam set
    在这里插入图片描述
    通过`rosservice call /clear "{}"查看参数修改的效果
    在这里插入图片描述
  4. rosparam dump filename.yaml

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
生成了数据文件
5. rosparam load name.yaml
在这里插入图片描述
在这里插入图片描述
service call /clear "{}"后查看
在这里插入图片描述
小海龟背景变为黑色

C++编程实现修改小海龟背景颜色

1.代码

/*
该例程设置/读取小海龟历程中的参数
*/
#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_conflg");
	//创建节点句柄
	ros::NodeHandle n;
	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", 100);
	ros::param::set("/turtlesim/background_g", 100);
	ros::param::set("/turtlesim/background_b", 100);
	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 = n.serviceClient<std_srvs::Empty>("/clear");
	std_srvs::Empty srv;
	clear_background.call(srv);
	
	sleep(1); 
	return 0;	
}

2.运行

运行步骤和前面一样

结果

在这里插入图片描述在这里插入图片描述

python

#!/usr/bin/env python3
# -*- coding:utf-8 -*-
#该进程设置/读取小海龟的参数
import sys
import rospy
from std_srvs.srv import Empty

def parameter_conflg():
	#ROS节点初始化
	rospy.init_node('parameter_conflg', anonymous = True)
	#读取背景颜色参数
	red = rospy.get_param('/turtlesim/background_r')
	green = rospy.get_param('/turtlesim/background_g')
	blue = rospy.get_param('/turtlesim/background_b')
	rospy.loginfo("Get Background Color[%d, %d, %d]", red, green, blue)
	#设置背景颜色参数
	rospy.set_param('/turtlesim/background_r', 0)
	rospy.set_param('/turtlesim/background_b', 0)
	rospy.set_param('/turtlesim/background_g', 0)
	rospy.loginfo("Set Background Color [0, 0, 0]")
	#读取背景颜色参数
	red = rospy.get_param('/turtlesim/background_r')
	green = rospy.get_param('/turtlesim/background_g')
	blue = rospy.get_param('/turtlesim/background_b')
	rospy.loginfo("Re-Get Background Color[%d, %d, %d]", red, green, blue)
	#发现/clear服务后,创建一个服务客户端,连接名为/clear的服务
	rospy.wait_for_service('/clear')
	clear_background = rospy.ServiceProxy('/clear', Empty)
	response = clear_background()
	return response
if __name__ == '__main__':
	parameter_conflg()

添加变量

只需要调用set类函数,添加变量名字和值即可
rospy.set_param('tmp', 0)
c++:ros::param::set("cpptmp", 100);
在这里插入图片描述

总结

如何获取/设置

  1. 初始化ROS节点
  2. get函数获取参数
    pythongreen = rospy.get_param('/turtlesim/background_g')
    c++ros::param::get("/turtlesim/background_g", green);
  3. set函数设置参数
    python rospy.set_param('/turtlesim/background_b', 0)
    c++ros::param::set("/turtlesim/background_g", 100);

添加参数

set函数按照设置参数的方法即可
python tmppy', 0)
c++ros::param::set("tmpcpp", 100);

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

wuming先生

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

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

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

打赏作者

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

抵扣说明:

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

余额充值