ROS学习笔记(四)参数服务

ROS学习笔记(四)参数服务

rosparam:

列出当前所有参数:rosparam list 显示某个参数值:rosparam get param_key 设置某个参数值:rosparam set param_key param_value 保存参数到文件:rosparam dump file_name 从文件读取参数:rosparam load file_name 删除参数:rosparam delete param_key

一:创建自定义参数文件

(1)创建功能包

创建一个名为learning_parameters的ROS功能包,用于存放C++程序和参数文件。

cd ~/catkin_ws/src
catkin_create_pkg learning_parameters roscpp rospy std_msgs message_generation 

(2)创建自定义参数文件

config目录下创建一个名为params.yaml的自定义参数文件,用于存储参数值。在该文件中,定义需要使用的参数及其默认值。例如:

my_param1: 0.5
my_param2: "hello"

(3)创建节点读取参数

src目录下创建一个名为read_params.cpp的C++源文件,实现节点来读取参数。

#include <ros/ros.h>

int main(int argc, char** argv)
{
    ros::init(argc, argv, "read_params");    // 初始化ROS节点
    ros::NodeHandle nh;                     // 创建ROS节点句柄

    // 读取参数
    double my_param1;
    if (!nh.getParam("my_param1", my_param1)){
        // ROS_WARN("Could not get parameter my_param1, using default value 0.5");
        my_param1 = 0.5;
    }

   std::string my_param2;
   if (!nh.getParam("my_param2", my_param2)){
        // ROS_WARN("Could not get parameter my_param2, using default value 'hello'");
        my_param2 = "hello";
    }

    ROS_INFO("Read parameters: param1 = %f, param2 = %s",
             my_param1, my_param2.c_str());

    return 0;
}
  1. 在运行节点之前,使用rosparam命令来加载参数文件(在参数文件终端下)。
rosparam load params.yaml
  1. 在运行节点之前,使用rosrun命令来启动一个新的终端窗口,并在其中输入以下命令来设置参数。例如:
rosparam set my_param1 0.8
rosparam set my_param2 'cww'
  1. 编译C++程序并运行ROS节点,使用已加载的参数来执行节点。例如:
rosrun learning_parameters read_params

这将启动read_params节点,并使用已加载的参数来执行它。该节点将打印出已加载的参数值。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值