参考B站古月居ROS入门21讲:launch启动文件的使用方法
基于VMware Ubuntu 20.04 Noetic版本的环境
文章目录
在前面我们的学习中,我们看到启动TF的坐标广播和监听,启动程序非常麻烦,要同时运行很多个终端,并且涉及到终端向ROS的参数传递。
本节我们可以通过launch启动文件来解决上述的麻烦问题,帮助我们快速部署、整合并启动相关例程。
一、launch的文件结构
- 由XML语言写的,可实现多个节点的配置和启动。
- 不再需要打开多个终端用多个rosrun命令来启动不同的节点了
- 可自动启动ROS Master
二、launch的文件语法
2.1 根元素
name为节点名称,会取代程序中初始化节点 init 时赋予的名字
其他:
- output:控制某个节点node把日志信息打印到终端
- respawn:节点奔溃后是否重启
- required:节点是否为必须节点,即改节点奔溃后须终止其他节点
- ns:自定义的命名空间,在自定义的命名空间中运行节点
- args:输入参数用
2.2 参数设置
- param:【在ROS参数服务器中】处理一个参数
- rosparam:【在ROS参数服务器中】处理多个参数
- arg:【不存在于ROS的参数服务器中】仅在launch文件中出现,可作为- node运行时传的参数,如之前在终端输入指令时传的参数。
2.3 重映射和嵌套
注意嵌套include之后,调用另一个launch文件,便会启动该文件内的所有内容。
更多标签参见:http://wiki.ros.org/roslaunch/XML
三、相关示例
在演示相关示例之前,我们先创建一个新的功能包:learning_launch
,这个包不需要添加其他依赖,只是用来存放launch文件。
cd ~/catkin_ws/src
catkin_create_pkg learning_launch
将相关的文件和代码分别放置对应的文件夹下:
编译环境:
cd ~/catkin_ws
catkin_make
打开拷贝进的launch文件,在文本编辑器选择高亮模式,选择XML代码方便查看代码:
simple.launch
该代码对之前的learning_topic功能包下的发布和订阅节点的程序进行了整合,设定了node的name,并选择将日志信息打印到终端。
运行该launch文件:
格式为:roslaunch 包名 文件名
roslaunch learning_launch simple.launch
我们可以看到启动launch后,发布和订阅的日志都打印到了终端。
turtlesim_parameter_config.launch
启动:
roslaunch learning_launch turtlesim_parameter_config.launch
start_tf_demo_c++.launch
启动:
roslaunch learning_launch start_tf_demo_c++.launch
start_tf_demo_py.launch
启动:
roslaunch learning_launch turtlesim_remap.launch
turtlesim_remap.launch
启动:
roslaunch learning_launch turtlesim_remap.launch
参考文章:https://blog.csdn.net/takedachia/article/details/122623247