launch文件可以自动启动ros master,因此不需要roscore。但是bash书写可能需要启动roscore。
结束launch包含一个</launch>。
pkg= rosrun package-name executable-name,init节点名和这里的name一样,但是这里会取代init时候的节点名字。
pkg="ros_tutorials_topic"为对应的功能包的名称;
type=“topic_publisher” 节点对应的可执行文件名,一般为.cpp的文件名字:ros::init(argc,argv,“topic_publisher”); //初始化发布者节点名称对应;
name="topic_publisher1"运行时显示的节点名称,也就是用命令rosnode list 所看到的节点列表里的名称。这儿定义的名字优先会覆盖可执行程序(如.cpp里面init()赋予的节点名),当两者不一样是以name为准。
和output=“screen”一个功能。
roslaunch ros_tutorials_topic topic.launch --screen //--screen是将通信消息发送到屏幕端
重映射:更新所有使用该话题的节点,最好放在node标签前面。如果有缩进不在开头表示只更新该节点的订阅消息。
<remap from="ros_tutorial_msg" to="remap/ros_tutorial_msg"/>
respawn:重启节点
required:要求某个节点启动
ns:namespace,避免命名冲突
args:给节点输入参数。这里与param的区别在于,args是launch文件内部的局部变量,仅限于launch文件使用。
<rosparam file="$(find pkgname)/config/name.yaml" command="load"/>
launch文件一般在launch文件目录下,xml显示会有高亮。
roslaunch 功能名 launch文件名.launch