古月居 ROS入门21讲 第十九讲 launch启动文件的使用方法

古月居 ROS入门21讲 第十九讲 launch启动文件的使用方法

Launch文件:通过配置XML文件实现多节点的配置与启动(可自动启动Master)

创建功能包

cd ~/catkin_ws/src
catkin_create_pkg learning_launch
cd learn_launch
mkdir launch

创建launch文件

cd launch
vim simple.launch

输入以下内容

<launch>
    <node pkg="learning_topic" type="person_subscriber" name="listener" output="screen" />
    <node pkg="learning_topic" type="person_publisher" name="talker" output="screen" />
</launch>

编译并运行

catkin_make
roslaunch learning_launch simple.launch

在这里插入图片描述

turtlesim_parameter_config.launch

<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" output="screen" />
</launch>

需要在learning_launch文件夹下创建config文件夹,再创建param.xml:

A: 123
B: "hello"

group:
  C: 456
  D: "world"

运行时遇到错误:

RLException: error loading <rosparam> tag:
file does not exist [${find learning_launch}/config/param.yaml]
XML is <rosparam command=“load” file="${find learning_launch}/config/param.yaml"/>

解决

  1. ${find learning_launch}改为$(find learning_launch)
  2. 如果将${find learning_launch}写为绝对路径也会报相同的错。

start_tf_demo_c++.launch

<launch>
    <node name="sim" pkg="turtlesim" type="turtlesim_node"/>
    <node name="teleop" pkg="turtlesim" type="turtle_teleop_key" output="screen"/>
    <node pkg="learning_tf" type="turtle_tf_broadcaster" name="turtle1_tf_broadcaster" args="turtle1"/>
    <node pkg="learning_tf" type="turtle_tf_broadcaster" name="turtle2_tf_broadcaster" args="turtle2"/>
    <node pkg="learning_tf" type="turtle_tf_listener" name="listener"/>
</launch>
~                

start_tf_demo_py.launch

<launch>
    <node name="sim" pkg="turtlesim" type="turtlesim_node"/>
    <node name="teleop" pkg="turtlesim" type="turtle_teleop_key" output="screen"/>
    <node pkg="learning_tf" type="turtle_tf_broadcaster.py" name="turtle1_tf_broadcaster" args="_turtle:=turtle1"/>
    <node pkg="learning_tf" type="turtle_tf_broadcaster.py" name="turtle2_tf_broadcaster" args="_turtle:=turtle2"/>
    <node pkg="learning_tf" type="turtle_tf_listener.py" name="listener"/>
</launch>

<launch>
    <node name="sim" pkg="turtlesim" type="turtlesim_node"/>
    <node name="teleop" pkg="turtlesim" type="turtle_teleop_key" output="screen"/>
    <node pkg="learning_tf" type="turtle_tf_broadcaster.py" name="turtle1_tf_broadcaster">
        <param name="turtle" type="string" value="turtle1"/>
    </node>
    <node pkg="learning_tf" type="turtle_tf_broadcaster.py" name="turtle2_tf_broadcaster">
        <param name="turtle" type="string" value="turtle2"/>
    </node>
    <node pkg="learning_tf" type="turtle_tf_listener.py" name="listener"/>
</launch>

turtlesim_remap.launch

<launch>
    <include file="$(find learning_launch)/launch/simple.launch"/>
    <node pkg="turtlesim" type="turtlesim_node" name="turtlesim">
        <remap from="/turtle1/cmd_vel" to="cmd_vel"/>
    </node>
</launch>
~             
  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值