06 ROS配置launch文件

launch文件 通过XML形式描述
实现多节点的一键配置与启动
XML文件必须包含一个根元素
launch文件的根元素是<launch>
结束标志</launch>

设置节点 Node

name为运行后在ROS节点群中的名字叫什么
name将覆盖node中ros_init赋予的名字
type为节点自身的可执行文件的名字
pkg为节点自身所在功能包的名字
可选部分:
output="screen"输出到屏幕上
respawn=“true”节点被kill自动复活节点
required="true"设置为必要节点,该节点被kill时其他节点也被kill
ns="namespace"命名空间,为节点相对名称添加命名空间前缀
args=“arguments” 其他参数

<node pkg=name="set_by_you_node_name" "package_name" type="executableFile_name" output="screen" />

设置参数 Parameter

Parameter参数在launch后会存储在参数服务器供其他节点调用

1.单个参数
<param name="output_frame" value="odom"/>
2.多个参数
A: 123
B: "hello"

group: 
 C: 456
 D: "HELLO"

yaml里的 group是命名空间 为了避免资源冲突
yaml格式十分严格,在其中若有 :后面必须加空格
其中空格有缩进的作用,用于表示层级
将yaml格式文件里的参数全部上传,可以选择设置命名空间ns

<rosparam file="params.yaml" command="load" ns="params"/>
3.在launch文件内设置局部变量

arg和ROS节点内部的功能实现没有关系
是launch文件内部的局部变量

<arg name="arg_name" default="arg_value"/>

调用:

<param name="foo" value="$ (arg arg-name)"/>
<node name="node" pkg="pkg" type="type" args="$(arg arg-name)"/>
remap

重映射 重命名
当需要用别人的东西的时候
比如自己的速度控制指令是叫/cmd_vel
想用其他人分享的速度控制指令/turtlebot/cmd_vel
无须修改对方提供的功能包接口,只需要给接口起别名就行了
即可将/turtlebot/cmd_vel" 重映射为"/cmd_vel"

<remap from="/turtlebot/cmd_vel" to="/cmd_vel"/>

from=映射前原名
to=映射后名字

include

launch文件的嵌套,可以把其他launch文件一并加载

<include file="$(dirname)/other.launch"/>

详细标签文档可参考https://wiki.ros.org/roslaunch/XML

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值