launch文件


怕什么真理无穷,进一寸有一寸的欢喜。——读《胡适谈读书》


<?xml version="1.0" encoding="utf-8"?>
<launch>
  <arg name="global_env_pcd2_topic" value="/random_forest/all_map" /><!-- 这个参数是用来指定一个主题的,主题的名称是`/random_forest/all_map`。 -->
  <arg name="map_size_x" value="50.0" />
  <arg name="map_size_y" value="50.0" />
  <arg name="map_size_z" value="8.0" />
  <arg name="origin_x" value=" -25.0" />
  <arg name="origin_y" value=" -25.0" />
  <arg name="origin_z" value=" -1.0" />
  <arg name="resolution" value="0.5" />

  <arg name="steer_length" value="2.0" />
  <arg name="search_radius" value="6.0" />
  <arg name="search_time" value="0.2" />
  <arg name="max_tree_node_nums" value="5000" />

  <node pkg="path_finder" type="path_finder" name="path_finder_node" output="screen">
    <remap from="/global_cloud" to="$(arg global_env_pcd2_topic)"/>

    <param name="occ_map/origin_x" value="$(arg origin_x)" type="double"/>
    <param name="occ_map/origin_y" value="$(arg origin_y)" type="double"/>
    <param name="occ_map/origin_z" value="$(arg origin_z)" type="double"/>
    <param name="occ_map/map_size_x" value="$(arg map_size_x)" type="double"/>
    <param name="occ_map/map_size_y" value="$(arg map_size_y)" type="double"/>
    <param name="occ_map/map_size_z" value="$(arg map_size_z)" type="double"/>
    <param name="occ_map/resolution" value="$(arg resolution)" type="double"/>

    <param name="RRT_Star/steer_length" value="$(arg steer_length)" type="double"/>
    <param name="RRT_Star/search_radius" value="$(arg search_radius)" type="double"/>
    <param name="RRT_Star/search_time" value="$(arg search_time)" type="double"/>
    <param name="RRT_Star/max_tree_node_nums" value="$(arg max_tree_node_nums)" type="int"/>

  </node>

</launch>

这段代码是一个XML格式的ROS(Robot Operating System)的.launch文件,用于配置和启动ROS节点。

  1. <?xml version="1.0" encoding="utf-8"?> 这一行声明了这是一个XML文件,版本是1.0,编码方式是utf-8。

  2. <launch> 这是开始一个launch文件的标记。

  3. <arg name="..." value="..."/> 这些行定义了一些参数的值,可以在launch文件中引用。例如,<arg name="global_env_pcd2_topic" value="/random_forest/all_map" />定义了一个名为global_env_pcd2_topic的参数,值为/random_forest/all_map。其他<arg>行以相同的方式声明参数。

  4. <node pkg="path_finder" type="path_finder" name="path_finder_node" output="screen"> 这一行启动一个名为”path_finder_node”的ROS节点,它处于”path_finder”这个包中,其类型为”path_finder”。输出将显示在屏幕上。

  5. <remap from="/global_cloud" to="$(arg global_env_pcd2_topic)"/> 这一行重新映射/global_cloud主题到global_env_pcd2_topic参数所指定的值,也就是/random_forest/all_map

  6. <param name="..." value="$(arg ...)" type="..."/> 这些行为节点中的参数设置值。例如,<param name="occ_map/origin_x" value="$(arg origin_x)" type="double"/>在节点的occ_map命名空间内设置了origin_x参数的值,值为之前定义的origin_x的参数的值,类型为double。其他的<param>行以同样的方式定义节点参数。

  7. </node> 这是结束一个节点标记。

  8. </launch> 这是结束一个launch文件的标记。

这个.launch文件首先声明了一些参数的值,然后启动一个名为 “path_finder_node” 的节点,并为这个节点的部分参数设定了值。

<?xml version="1.0" encoding="utf-8"?>
<launch>
    <node pkg="rviz" type="rviz" name="rviz" output="screen" args="-d $(find path_finder)/launch/traj.rviz"/>
    <include file="$(find path_finder)/launch/map.launch"/>
    <include file="$(find path_finder)/launch/test_planners.launch"/>
</launch>

这段代码是ROS(机器人操作系统)的启动文件(.launch)的一部分,其中包含了一连串为ROS节点(node)的命令。当你运行这个 .launch文件时,它会启动一系列的ROS节点。

  1. <launch> 开始一个launch文件的标记。

  2. <node pkg="rviz" type="rviz" name="rviz" output="screen" args="-d $(find path_finder)/launch/traj.rviz"/> 启动一个名为rviz的ROS节点,该节点来自rviz包,其类型也为rviz。输出将会在屏幕上显示。args参数表示启动rviz时传递给它的命令行参数。在这里,-d $(find path_finder)/launch/traj.rviz 表示启动rviz时加载 $(find path_finder)/launch/traj.rviz 这个rviz配置文件。$(find path_finder)是ROS中的一种用于查找给定包(在这里是path_finder包)路径的方法。

  3. <include file="$(find path_finder)/launch/map.launch"/> 在当前launch文件内引入另一个launch文件 $(find path_finder)/launch/map.launch$(find path_finder)会被替换为path_finder包的路径,因此整个路径是path_finder包中launch目录下的map.launch文件。

  4. <include file="$(find path_finder)/launch/test_planners.launch"/> 同理,这行也是在当前launch文件内引入另一个launch文件test_planners.launch,位置是在path_finder包中launch目录下。

  5. </launch> 结束一个launch文件的标记。

简单来说,这个 .launch 文件首先启动 rviz 并加载指定的 rviz 配置文件,然后启动两个额外的 ROS 节点,它们都在 path_finder 包的 launch 目录下。


文章作者: Liam Xander
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 Liam Xander !
 上一篇
一些还没整理的知识点的汇总 一些还没整理的知识点的汇总
怕什么真理无穷,进一寸有一寸的欢喜。我们不是天生无畏,但是如果一件事值得我们去做,那么就应该克服畏惧、义无反顾地去实现。
2024-04-10
下一篇 
对Astar算法及相关知识点的整理 对Astar算法及相关知识点的整理
怕什么真理无穷,进一寸有一寸的欢喜。我们不是天生无畏,但是如果一件事值得我们去做,那么就应该克服畏惧、义无反顾地去实现。
2024-03-23
  目录