• ROS 学习应用篇(六)参数的使用与编程


     node可能不在一个电脑里但是这些服务的参数信息是共享的,因为话题Topic是异步的所以只有服务Service有实时参数信息可以调用。

    接下来将演示服务参数信息的调用与修改。

    创建功能包(工作空间src文件夹下)

    catkin_create_pkg learning_parameter roscpp rospy std_srvs

    想要运行下面这些代码首先要先开启一个rosmaster

    • rosparam list % 列出当前包有多少参数
    • rosparam get param_key % 显示某一个参数的值
    • rosparam set param_key  param_value % 更改param_key的值为param_value
    • rosparam dump file_name % 保存参数到file_name文件,应该是.yaml格式
    • rosparam load file_name % 读入file_name文件中的参数
    • rosparam delete param_key %删除某一个参数
    • rosparam add param_key % 添加某一个参数,没有这个指令,应该是因为这些指令都要在rosmaster开启通信的状态下进行,这个过程是不能添加参数的。

    以小海龟为例,打开一个小海龟节点

    rosrun turtlesim turtlesim_node

    rosparam list %结果如下:

    获取某一个参数

    rosparam get /turtlesim/background_b % 要按照给出的目录级别来输入参数。

    更改参数

    rosparam set /turtlesim/background_g 255

    清除旧版设置

    只有清除旧版的设置才能改变小海龟的北背景颜色。


    保存参数

    rosparam dump param.yaml% 可以在文件名字前添加制定的文件目录,如果没加就是保存到当前的目录下。

    也可以修改yaml文件,然后通过load加载命令加载,同样需要再输入一次clear命令才会更新更改后的参数。

    接下来是以代码的方式获取参数、更改参数、上传参数。

    引入库

    C++                                                                                 Python

    这里的empty是用来送入空服务以实现刷新功能的包

    节点初始化

    C++                                                                                 Python

    参数读取

    C++                                                                                 Python

    参数修改

    C++                                                                                 Python

     参数再次读取

    C++                                                                                 Python

     调用服务

    调用服务送入空数据以实现刷新

     C++                                                                                 Python

    确定主函数段

    C++                                                                                 Python

    CMakelist.tx

    备注

    所有的参数前要加/turtlesim ,因为我的版本是ros1,我的小海龟的参数是有一个前缀文件夹的要不补齐,背景才会变色。

    更多内容见Parameter Server - ROS Wiki

  • 相关阅读:
    [杂记]C++中关于虚函数的一些理解
    消息队列与快递柜之间的奇妙关系
    TCP过程中,网络断开问题解决办法
    CAS:1620523-64-9_Azide-SS-biotin_生物素-二硫-叠氮
    超声波传感器(CHx01) 学习笔记 Ⅵ - 原始数据
    拨开发展迷雾,将“智慧”嵌入全业务场景【2022戴尔科技峰会预告】
    Android开源 Skeleton 骨架屏 V1.3.0
    Docker技术入门| Part02:Docker基础用法(Docker镜像使用、操作容器、数据管理)
    antd form.setFieldsValue问题总结
    rust切片
  • 原文地址:https://blog.csdn.net/qq_42087574/article/details/134435246