roslaunch是一个工具,可以启动多个本地或远程ros节点。启动文件以.launch为后缀,启动文件是xml格式,一般把启动文件存在名为launch的目录
rosrun与roslaunch的区别
方式1:直接launch文件启动。roslaunch path/to/your/xxx.launch
简单创建一个.launch文件,保存并运行
mkdir launch
cd launch
touch test.launch
填写内容
<launch>
<node pkg = "package_name" type = "executable_file" name = "ros_node_name" output = "screen"/>
</launch>
在终端直行
roslaunch test.launch
方式2:工程包方式启动。roslaunch package_name file_name.launch
用于ros工程中统一的功能包管理,实际项目中比较推荐这种方式
cd ~/catkin_ws/src
catkin_create_pkg test_launch
cd test_launch
mkdir launch
cd launch
touch test.launch
使用上面的.launch文件内容
cd ~/catkin_ws/src
catkin_make # 编译各个package
source devel/setup.bash
然后以工程包方式启动节点
roslaunch test_launch test.launch
<launch>
<node pkg = "package_name" type = "executable_file" name = "ros_node_name" output = "screen"/>
</launch>
3.1 文件属性
<launch>
</launch>
3.2 条目
组group
节点node
<group ns = “group_name”>
</group>
// ns = namespace命名空间,用来区分组group
3.3 节点
属性
pkg – 功能包的名字
type – 使用的功能包中的节点类型,可执行文件名
name – ros::init起的节点名字
output – 节点的输出定向到哪,默认是日志文件;通过output = “screen”输出到控制台
respawn – 当设置为true时,节点停止后roslaunch会重新启动该节点,比如因为某些条件触发的coredump导致节点挂掉时,可以通过该参数立即重启该节点
条目
remap – 映射关系,调整话题topic?输入与输出
from – 原始topic
to – 新的topic
启动多个节点,并设置节点掉线立即重启
<launch>
<node pkg="apollo" type="perception_bin" name="perception_node" respawn = "true" output="screen" />
<node pkg="apollo" type="prediction_bin" name="prediction_node" respawn ="true" output="screen" />
</launch>
【参考文章】
roslaunch核心语法
启动roslaunch的两种方式
catkin_create_pkg命令使用
process has died, exit -6报错
roslaunch节点关系图
created by shuaixio, 2022.11.06