Ros学习笔记10(launch启动文件)

launch文件:通过xml文件实现多个结点的启动与配置.包含标签与属性等...,launch文件自动启动roscore;

1launch文件语法
1.1<launch>根标签

<launch>
<node pkg="包名"type="可执行文件名字"name="自己起得名字(相当于充映射命名)"/>
</launch>

属性:output\respawn\required\ns\args
1.2<param>存储在参数服务器,相当于全局变量

<param name="********" value="***"/>#一个参数
<rosparam file="*****" command="load" ns="*****/">#加载参数文件

1.3<arg>仅限于在launch文件内使用,相当于局部变量

<arg name="arg-name" default="arg-value" />
#调用这个局部变量
<param name="foo" value="$(arg arg-name)" />
<node pkg="包名"type="可执行文件名字"name="自己起得名字(相当于充映射命名)" args="$(arg arg-name)" />

1.3<remap>重映射计算图资源的命名

<remap from="gtt" to "gt" />#注意这个地方重命名之后就不存在gtt这个名字了

1.4<include>包含其他launch文件,类似于头文件?这个地方有些疑问,在c语言中,调用头文件可以选择性的调用某个函数,在ros系统中调用launch文件是什么情况?

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

1.5命名空间与launch启动
roslaunch *** ***

<launch>

    <param name="/turtle_number"   value="2"/>

    <node pkg="turtlesim" type="turtlesim_node" name="turtlesim_node">
        <param name="turtle_name1"   value="Tom"/>
        <param name="turtle_name2"   value="Jerry"/>

        <rosparam file="$(find learning_launch)/config/param.yaml" command="load"/>
    </node>

    <node pkg="turtlesim" type="turtle_teleop_key" name="turtle_teleop_key" output="screen"/>

</launch>

1.5.1这个地方设计到命名空间的问题,其中/是全局变量 直接命名是相对变量 ~是私有变量
1.5.2注意yaml文件也可以设计命名空间问题
eg

controllers: {
   base_controller: {
       type: diff_controller, 
       base_frame_id: base_footprint, 
       base_width: 0.26, 
       ticks_meter: 4100, 
       Kp: 12, 
       Kd: 12, 
       Ki: 0, 
       Ko: 50, 
       accel_limit: 1.0 
    }
}

1.5.3以上执行的效果图


2019-11-14 11-53-41屏幕截图.png

http://wiki.ros.org/roslaunch/xml

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容