ROS入门——ROS基础语法(launch文件)

launch文件的使用

  • 1. launch文件语法概述
  • 2. 实例讲述
    • 2.1 launch启动文件实例
    • 2.2 launch实现小海龟坐标跟随
    • 2.3 launch重映射实例
  • 3.参考内容

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

1. launch文件语法概述

<launch>launch文件中的根元素采用<launch> 标签定义

<node> 启动节点

<node pkg="package-name" type="execulate-name" name="node-name"/>
pkg :功能包名称
type:节点可执行文件名称
name:节点运行时的名称

参数设置:
<param>/<rosparam>
设置ROS系统运行参数,存储在参数服务器中

<param name="output_name"   value="odom"/>
name:参数名
value:参数值

加载参数文件中的多个参数
<rosparam file="params.yaml" command="load"ns="params"/>
例:<rosparam file="$(find learning_launch)/config/param.yaml" command="load"/>

<arg>
launch文件内部的局部变量,仅仅在launch文件中使用

<arg name="arg_name" default="arg_value"/>
name:参数名
value:参数值
<param name="foo" value="$(arg arg_name)"/>
<node name="node pkg="package-name" type="type" arg="$(arg arg_name)"/>

重映射:
<remap> 重映射ROS计算图资源的命名
tips:remap之后,原命名会不复存在


from:原命名
to:之后的命名

嵌套:
<include>包含其他launch的头文件,类似c与cpp


例:

2. 实例讲述

2.1 launch启动文件实例

编写相关simple.cpp文件

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

编译运行

catkin_make
roslaunch learning_launch simple.launch

2.2 launch实现小海龟坐标跟随

代码编写

 <launch>

    <!-- Turtlesim Node-->
    <node pkg="turtlesim" type="turtlesim_node" name="sim"/>
    <node pkg="turtlesim" type="turtle_teleop_key" name="teleop" output="screen"/>

    <node pkg="learning_tf" type="turtle_tf_broadcaster" args="/turtle1" name="turtle1_tf_broadcaster" />
    <node pkg="learning_tf" type="turtle_tf_broadcaster" args="/turtle2" name="turtle2_tf_broadcaster" />

    <node pkg="learning_tf" type="turtle_tf_listener" name="listener" />

  </launch>

编译运行

roslaunch learning_launch start_tf_demo_c++.launch 

2.3 launch重映射实例

代码编写

<launch>

	<include file="$(find learning_launch)/launch/simple.launch" />

    <node pkg="turtlesim" type="turtlesim_node" name="turtlesim_node">
		<remap from="/turtle1/cmd_vel" to="/cmd_vel"/>
	</node>

</launch>

编译运行
若更改后小乌龟正常运动,则正常

roslaunch learning_launch turtlesim_remap.launch
rostopic pub /cmd_vel geometry_msgs/Twist "linear:
  x: 1.0
  y: 0.0
  z: 0.0
angular:
  x: 0.0
  y: 0.0
  z: 0.0" 

3.参考内容

launch启动文件的使用
ROS入门——ROS基础语法(parameter&tf)

你可能感兴趣的:(linux)