ROS实操入门系列(九)Param和Launch的实际应用
- param介绍
- launch文件
- https://www.lanqiao.cn/courses/2947,提供准备好的云主机ros环境,进行实操,课程包括了 Topic 通讯, Service 通讯,ROS 自定义消息,URDF可视化,TF坐标转换等技术要点。每个技术点都会结合例子先把原理讲解清楚,为了达到学以致用的目的,我们会再进行知识拓展,针对每个技术点实现对应的生动有趣的需求,保证学完后会有很大的收获。
param介绍
-
什么是Param
Param是Parameters的简写,意为参数。在ROS种,起到的作用是节点间共享数据。实现的原理是将需要共享的数据存放到ROS Master中,这样所有的节点都可以访问。 -
存储规范
Param存储数据遵循的是YAML规范。如果去简单的理解,可以认为是一个key value的组合,key是string类型,value 的类型可以有多种。value的类型有:
(1)integer: 整数类型
(2)boolean: bool类型
(3)double: 小数类型
(4)list: 集合列表类型
(5)map: 字典类型
(6)binary: 二进制数据类型 -
命令行工具, 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
-
paramAPI访问
launch文件
- 什么是roslaunch
roslaunch 是一个工具,可以帮助我们同时启动多个Node节点,可以为我们设置默认的参数,可以帮助我们重启死掉的进程。launch文件是一个xml文件,用来描述节点启动的
roslaunch使用流程:
(1)在package下新建launch文件夹
(2)在launch文件夹下编写,xxx.launch文件
(3)在.launch文件中编写启动配置 - 节点配置
Node标签属性:
pkg:要启动的 package名称。
type:可执行文件名称
name:可执行文件启动后节点名称
respawn:进程死掉后是否重启。取值为true或false。默认值为false
respawn_delay: 重启的时间间隔。单位为秒,默认值为0
output:将日志输入到什么位置。screen|log。默认值log。
rosrun turtlesim turtlesim_node (rosrun 包名 可执行文件名称)
- 之前需要开启两个命令窗口,开启两个节点去操作小乌龟,现在只需要运行 roslaunch hello_driver demo1.launch就可以同时开启两个节点,并且不需要再去开启rosmaster了,之前运行一定要先运行roscore
- 可以更改默认的节点名称(默认的是通过init_node() 设置的)
更改之后:
- namespace
没加之前 ,使用 rosnode list 打印
加了之后 再使用rosnode list打印
注意加了ns后,使用rosnode info /kaitou/change_turtlesim命令,里面的节点信息除了 /rosout 都会加上ns的名称 -
remap子标签
重新映射
1.修改subscriber的topic
from是原来的名称
to修改后的名称 /hello/vel修改之前 ,运行:roslaunch hello_driver demo2.launch
修改之后 再次运行:roslaunch hello_driver demo2.launch
- 内部param子标签
启动小乌龟节点,后可以通过rosparm list 可以查看到一些背景颜色的参数,修改这些参数查看效果 -
~的使用
-
param全局和内部, 路径名称也不同
- 外部arg的使用
- 通过group可以启动两个小乌龟窗口
评论(0)
您还未登录,请登录后发表或查看评论