对robot_navigation.launch的深入理解

文件内参数

  <arg name="map_file" default="$(find robot_navigation)/maps/map.yaml"/>
  <arg name="simulation" default= "false"/> 
  <arg name="planner"  default="teb" doc="opt: dwa, teb"/> 
  <arg name="open_rviz" default="false"/>
  <arg name="use_dijkstra" default= "true"/> 
  <arg name="pub_imu"       default="False" />
  <arg name="sub_ackermann"       default="False" />

以上为一些运行launch文件时候可选的参数,该参数仅在launch文件内生效。

map_file加载地图

simulation选择是否在仿真环境下导航

planner选择局部规划器

open_rviz是否打开rviz

use_dijkstra全局规划器是否使用dijkstra

pub_imu是否发布imu信息

sub_ackermann是否订阅ackermann话题

使用仿真

<group if="$(arg simulation)">
    <!-- simulation robot with lidar and map-->
    <include file="$(find robot_simulation)/launch/simulation_one_robot_with_map.launch"/>
</group>

判断是否仿真:是,则启动simulation_one_robot_with_map.launch这个文件

不使用仿真

<group unless="$(arg simulation)">
  
    <!-- robot with lidar -->
    <!-- <include file="$(find robot_navigation)/launch/robot_lidar.launch"> -->
          <!--<arg name="robot_name"            value="$(arg robot_name)"/>-->
    <!-- </include>  -->
    <include file="$(find base_control)/launch/base_control.launch">
        <arg name="pub_imu"            value="$(arg pub_imu)"/>  
        <arg name="sub_ackermann"            value="$(arg sub_ackermann)"/>  
    </include>
    
    <!-- Map server -->
    <node pkg="map_server" name="map_server" type="map_server" args="$(arg map_file)">
      <param name="frame_id" value="map"/>
    </node>
    <!-- AMCL -->
    <node pkg="amcl" type="amcl" name="amcl" output="screen">
      <rosparam file="$(find robot_navigation)/param/$(env BASE_TYPE)/amcl_params.yaml" command="load" />
      <param name="initial_pose_x"            value="0.0"/>
      <param name="initial_pose_y"            value="0.0"/>
      <param name="initial_pose_a"            value="0.0"/>
    </node>
  </group>

在不使用仿真的情况下,首先启动小车底盘base_control.launch。                                                然后启动地图服务器,加载保存好的地图。                                                                                    这里我把用于定位的AMCL注释掉了。因为我的小车没有激光雷达。关于AMCL的知识:机器人导航(仿真)(二)——amcl定位_蔡军帅的博客-CSDN博客

小车导航堆栈:路径规划

<!-- move_base -->
<include file="$(find robot_navigation)/launch/move_base.launch" >
    <arg name="planner"            value="$(arg planner)"/>
    <arg name="simulation"            value="$(arg simulation)"/>
    <arg name="use_dijkstra"     value="$(arg use_dijkstra)"/>
</include>

启动move_base.launch文件,执行具体的导航任务。

关于move_base包的理解_青年云耕的博客-CSDN博客

带你理清:ROS机器人导航功能实现、解析、以及参数说明_dwa 局部规划器规划表现不稳定_tomorrow″的博客-CSDN博客

 

是否启动rviz

<group if="$(arg open_rviz)"> 
    <node pkg="rviz" type="rviz" name="rviz" required="true"
          args="-d $(find robot_navigation)/rviz/navigation.rviz"/>
</group>

这里只是单纯的打开了rviz,和多点导航打开的navigation_rviz.launch文件不同。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值