ROS实操入门系列(九)Param和Launch的实际应用

    • param介绍
    • launch文件
    • https://www.lanqiao.cn/courses/2947,提供准备好的云主机ros环境,进行实操,课程包括了 Topic 通讯, Service 通讯,ROS 自定义消息,URDF可视化,TF坐标转换等技术要点。每个技术点都会结合例子先把原理讲解清楚,为了达到学以致用的目的,我们会再进行知识拓展,针对每个技术点实现对应的生动有趣的需求,保证学完后会有很大的收获。

    param介绍

    1. 什么是Param
      Param是Parameters的简写,意为参数。在ROS种,起到的作用是节点间共享数据。实现的原理是将需要共享的数据存放到ROS Master中,这样所有的节点都可以访问。
      在这里插入图片描述

    2. 存储规范
      Param存储数据遵循的是YAML规范。如果去简单的理解,可以认为是一个key value的组合,key是string类型,value 的类型可以有多种。

      value的类型有:
      (1)integer: 整数类型
      (2)boolean: bool类型
      (3)double: 小数类型
      (4)list: 集合列表类型
      (5)map: 字典类型
      (6)binary: 二进制数据类型

    3. 命令行工具, ROS 提供了命令行工具,供我们对Param进行操作

      查询操作,通过list命令,可以查询出当前所有可共享的参数。
      rosparam list
      
      通过set命令可以修改参数的值
      rosparam set /heihei 123
      
      通过get命令可以获取要获取的值
      rosparam get /heihei
      

      可以删除对应的key
      rosparam delete /heihei
      

      dump命令可以把当前的param导出为一个文件(由内存转为磁盘)
      如果重启roscore,内存释放,刚才设置的param就会消失
      rosparam dump abc.yml
      
      load命令可以把yml文件导入到param中
      rosparam load abc.yml
      

    4. paramAPI访问
      在这里插入图片描述

    launch文件

    1. 什么是roslaunch
      roslaunch 是一个工具,可以帮助我们同时启动多个Node节点,可以为我们设置默认的参数,可以帮助我们重启死掉的进程。launch文件是一个xml文件,用来描述节点启动的
      roslaunch使用流程:
      (1)在package下新建launch文件夹
      (2)在launch文件夹下编写,xxx.launch文件
      (3)在.launch文件中编写启动配置
    2. 节点配置
      Node标签属性:
      pkg:要启动的 package名称。
      type:可执行文件名称
      name:可执行文件启动后节点名称
      respawn:进程死掉后是否重启。取值为true或false。默认值为false
      respawn_delay: 重启的时间间隔。单位为秒,默认值为0
      output:将日志输入到什么位置。screen|log。默认值log。
      rosrun turtlesim turtlesim_node (rosrun  包名  可执行文件名称)
      
    3. 之前需要开启两个命令窗口,开启两个节点去操作小乌龟,现在只需要运行 roslaunch hello_driver demo1.launch就可以同时开启两个节点,并且不需要再去开启rosmaster了,之前运行一定要先运行roscore
    4. 可以更改默认的节点名称(默认的是通过init_node() 设置的)

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

      更改之后:
      在这里插入图片描述

    5. namespace
      没加之前 ,使用 rosnode list 打印
      在这里插入图片描述
      加了之后 再使用rosnode list打印
      在这里插入图片描述

      在这里插入图片描述

      在这里插入图片描述
      注意加了ns后,使用rosnode info /kaitou/change_turtlesim命令,里面的节点信息除了 /rosout 都会加上ns的名称

      在这里插入图片描述
    6. remap子标签

      重新映射
      1.修改subscriber的topic
      from是原来的名称
      to修改后的名称 /hello/vel

      修改之前 ,运行:roslaunch hello_driver demo2.launch
      在这里插入图片描述

      修改之后 再次运行:roslaunch hello_driver demo2.launch
      在这里插入图片描述

      在这里插入图片描述

    7. 内部param子标签
      启动小乌龟节点,后可以通过rosparm list 可以查看到一些背景颜色的参数,修改这些参数查看效果
      在这里插入图片描述在这里插入图片描述
    8. ~的使用
      在这里插入图片描述在这里插入图片描述

    9. param全局和内部, 路径名称也不同
      在这里插入图片描述在这里插入图片描述

    10. 外部arg的使用
      在这里插入图片描述在这里插入图片描述
    11. 通过group可以启动两个小乌龟窗口
      在这里插入图片描述
      在这里插入图片描述

    https://www.lanqiao.cn/courses/2947,提供准备好的云主机ros环境,进行实操,课程包括了 Topic 通讯, Service 通讯,ROS 自定义消息,URDF可视化,TF坐标转换等技术要点。每个技术点都会结合例子先把原理讲解清楚,为了达到学以致用的目的,我们会再进行知识拓展,针对每个技术点实现对应的生动有趣的需求,保证学完后会有很大的收获。