• 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

  • 相关阅读:
    MyBatis 学习(一)之 MyBatis 概述
    nginx环境下laravel框架URL省略输入index.php的配置
    SVN的安装配置
    tomcat web.xml文件中servlet的load-on-startup
    【前端】React项目初体验
    kubernetes中的list-watch机制
    深入理解mysql执行的底层机制
    shutdown 和close的区别
    RocketMQ 系列(二) 环境搭建
    【小程序】页面导航
  • 原文地址:https://blog.csdn.net/qq_42087574/article/details/134435246