• launch文件


    launch
    在ROS应用中,每个节点通常有许多参数需要设置,为了方便高效操作多个节点,可以编写launch文件,然后用roslaunch命令运行
    roslaunch: roslaunch [options] [package] <filename> [arg_name:=value...]
                        roslaunch [options] <filename> [<filename>...] [arg_name:=value...]
    launch文件的一般格式,参数:
    <launch>
        <node .../>
        <rosparam ..../>
        <param .../>
        <include .../>
        <env .../>
        <remap .../>
        <arg.../>
    </launch>

    参数说明
    <node >要启动的node参数
        pkg=''mypackage''
        type=''nodetype''
        name=''nodename''
        arg=''arg1 ....''(可选)
        respawn=''ture''(可选)如果节点停止,自动重启节点
        ns=''foo''(可选)在foo命名空间启动节点
        output=''log|screen''(可选)
    <rosparam>操作yaml文件参数
        command=''load|dump|delete''(默认load)
        file=''$(find pkg-name)/path/foo.yaml''(load或dump命令)yaml文件的名字
        param=''param-name''参数名
    <param>定义一个设置在参数服务器的参数,它可以添加到<node>中
        name=''namespace/name''
        value=''value''(可选)如果省略这个参数,则应指定一个文件(binfile/textfile)或命令
        type=''str|int|double|boot''(可选)指定参数的类型
        textfile=''$(find pkg-name)/path/file''(可选)   

        binfile=''$(find pkg-name)/path/file''()
        command=''(find pkg-name)/exe '$(find pkg-name)/arg.txt' ''(可选)exe是可执行文件(cpp、py),arg.txt是参        数文件
    <include>在当前launch文件中调用另一个launch文件
        file=''$(find pkg-name)/path/launch-file.launch''    
    <env>设置节点的环境变量
        name=''environment-variable-name''
        value=''environment-variable-value''    
    <remap>将一个参数名映射为另一个名字
        from=''original-name''
        to=''new-name''    
    <arg>定义一个局部参数,该参数只能在一个launch文件中使用
        <arg name=''foo''/>声明一个参数foo,后面需要给它赋值
        <arg name=''foo'' default=''1''/>声明一个参数foo,如不赋值取默认值
        <arg name=''foo'' value=''bar''/>声明一常量foo,它的值不能修改

    首先新建一个测试功能包

    catkin_create_pkg turtlesim_launch roscpp rospy

    新建一个launch文件

    vi turtlesim_launch.launch
    <launch>
    <node pkg="turtlesim" type="turtlesim_node" name="turtlesim_node" respawn="true" output="screen"/>
    
    <node pkg="turtlesim" type = "turtle_teleop_key" name="turtle_teleop_key"
    respawn="false" output="screen"/>
    
    
    </launch>
    roslaunch turtlesim_launch.launch 

    j简单的键盘控制小乌龟

    利用<include>在当前launch文件中调用另一个launch文件
        file=''$(find pkg-name)/path/launch-file.launch''   

    运行子launch文件

      turtlesim_launch.launch

    <launch>
    
    <include  file="$(find turtlesim_launch)/teleop.launch"/>
    <node pkg="turtlesim" type="turtlesim_node" name="turtlesim_node" respawn="true" output="screen"/>
    
    <param name="turte" value = "1"/>
    <rosparam command="dump" file="$(find turtlesim_launch)/color.yaml"/>
    <arg name="foo" value="2"/>
    </launch>
    

      vi teleop.launch

    <launch>
    
    <node pkg="turtlesim" type = "turtle_teleop_key" name="turtle_teleop_key"
    respawn="false" output="screen"/>
    
    
    </launch>
    
  • 相关阅读:
    java的类继承(与c++对比)
    java的数据类型、自动拆装箱、字面量
    java中关键字static和final
    JVM之JIT
    java之JIT(Just in time)
    栈和堆
    C++中vector的使用
    canvas
    ajax笔记
    CSS笔记
  • 原文地址:https://www.cnblogs.com/CZM-/p/5943821.html
Copyright © 2020-2023  润新知