ros中launch文件

       在ros package中launch文件夹下的.launch文件,可以同时启动多个节点,使用roslaunch命令可以运行launch文件

(1)launch文件的结构

         <launch>

             <node name="talker"pkg="rospy_tutorials" type="talker" >

             </node>​

         </launch>

其中,.launch文件开头是以<launch>为tag,</launch>为结尾。中间是要启动的节点,是以<node> 开始,</node>结束。pkg="rospy_tutorials",是要启动节点的package名称;type="talker"启动节点的类型;name="talker"启动节点的名称

(2)roslaunch /XML/remap     ​

<node> 启动一个节点

<param> 设置参数服务器上的参数

<arg> 声明参数

<include> 包含roslaunch 文件

<remap> 声明一个名称映射,允许你通过名称映射参数到ROS 节点,使一个节点模仿另一个节点做出的响应。适用于在其范围内随后的所有声

     明(<launch>, <node> or<group>)

<group> 共享一个命名空间或映射的封闭的元素组

<machine> 声明启动要使用的机器

<rosparam> 使用rosparam 文件设置启动要用的ROS 参数

<env> 制定启动节点的环境变量

<test> 启动一个测试节点rostest

(3)实例分析

turtlesim/launch文件夹下建一个multi_node.launch的文件:

<launch>

     <group ns="turtlesim1">

         <nodepkg="turtlesim" name="sim"type="turtlesim_node"/>

     </group>

     <group ns="turtlesim2">

         <nodepkg="turtlesim" name="sim"type="turtlesim_node"/>

     </group>

     <node pkg="turtlesim" name="turtle_mimic"type="mimic">

          <remap from="input"to="turtlesim1/turtle1"/>

          <remap from="output"to="turtlesim2/turtle1"/>

     </node>

</launch>


打开终端,输入:

​$source ~/ros_tutorial/devel/setup.bash

$roslaunch turtlesim multi_node.launch

$rostopic pub /turtlesim1/turtle1/cmd_vel geometry_msgs/Twist -r 1 -- '[2.0, 0.0, 0.0]' '[0.0, 0.0, -1.8]'

​$rqt_graph 


出现结果:




想再映射一个小乌龟,可在上面的.launch文件中改为如下内容:

<launch>

.........................

     <groupns="turtlesim3">

         <nodepkg="turtlesim" name="sim"type="turtlesim_node"/>

     </group>    

............................ 

      <node pkg="turtlesim" name="turtle_mimic1"type="mimic">

              <remap from="input" to="turtlesim1/turtle1"/>

              <remap from="output"to="turtlesim3/turtle1"/>

       </node>   

</launch>


运行结果

​​​​


更多有关roslaunch /XML/请看ros官网  http://wiki.ros.org/roslaunch/XML

以下是一个ROSlaunch文件示例,用于启动一个简单的机器人模拟器(使用Gazebo仿真),并启动相应的ROS节点: ``` <launch> <!-- 启动Gazebo仿真器 --> <include file="$(find gazebo_ros)/launch/empty_world.launch"> <arg name="world_name" value="$(find my_robot)/worlds/my_world.world"/> <arg name="paused" value="false"/> <arg name="use_sim_time" value="true"/> <arg name="gui" value="true"/> <arg name="headless" value="false"/> <arg name="debug" value="false"/> </include> <!-- 启动机器人控制节点 --> <node name="robot_control" pkg="my_robot" type="robot_control_node.py" output="screen"> <param name="robot_name" value="my_robot"/> <param name="control_rate" value="10"/> </node> <!-- 启动传感器数据处理节点 --> <node name="sensor_processing" pkg="my_robot" type="sensor_processing_node.py" output="screen"> <param name="robot_name" value="my_robot"/> </node> </launch> ``` 上述launch文件包含了三个节点: 1. Gazebo仿真器:使用Gazebo仿真器启动机器人模拟器,并设置仿真世界和一些参数。 2. 机器人控制节点:启动一个ROS节点,用于控制机器人的运动。 3. 传感器数据处理节点:启动一个ROS节点,用于处理机器人传感器的数据。 其,节点的名称、包名、类型、参数等信息都需要根据实际情况进行修改。在终端运行launch文件时,可以使用以下命令: ``` $ roslaunch my_robot my_robot.launch ``` 此时,launch文件的节点会依次启动,完成机器人模拟器的启动和相关节点的启动。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值