ROS 软件包 explore_lite 自主建图使用

本文档详细介绍了如何在ROS中安装和配置explore_lite进行环境探索,以及move_base的launch文件配置。主要内容包括安装explore_lite,配置explore_costmap.launch和move_base.launch文件,以及解决常见问题的提示。同时提供了启动所有自主建图节点的launch文件示例。
摘要由CSDN通过智能技术生成

WIKI : explore_lite - ROS Wiki

一、安装explore_lite

sudo apt-get install ros-noetic-explore-lite

二、launch文件配置

在ros的share目录下,找到explore_lite的功能包,其中launch文件夹下面有两个,配置explore_lite即可。 

explore_costmap.launch配置文件如下,其中需要注意的是costmap_topic 和 costmap_updates_topic。

<launch>
<node pkg="explore_lite" type="explore" respawn="false" name="explore" output="screen">
  <param name="robot_base_frame" value="base_link"/>
  <param name="costmap_topic" value="move_base/global_costmap/costmap"/>
  <param name="costmap_updates_topic" value="move_base/global_costmap/costmap_updates"/>
  <!--指定是否发布可视化边界-->
  <param name="visualize" value="true"/>  
  <!--计算新边界和重新考虑目标的频率(Hz)-->
  <param name="planner_frequency" value="0.33"/>
  <!--时间以秒为单位。当机器人在 progress_timeout 没有任何进展时,当前目标将被放弃。-->
  <param name="progress_timeout" value="30.0"/>
  <!--用于加权边界。这个乘法参数影响前沿权重的前沿潜在分量(到前沿的距离)。-->
  <param name="potential_scale" value="3.0"/>
  <!--用于加权边界。这个乘法参数影响前沿权重的前沿方向分量。此参数目前不执行任何操作,仅用于向前兼容。-->
  <param name="orientation_scale" value="0.0"/>
  <!--用于加权边界。这个乘法参数影响边界权重(边界大小)的边界增益分量。-->
  <param name="gain_scale" value="1.0"/>
  <!--变换机器人姿势时使用的变换容差。-->
  <param name="transform_tolerance" value="0.3"/>
  <!--将边界视为探索目标的边界的最小大小。以米为单位。-->
  <param name="min_frontier_size" value="0.5"/>
</node>
</launch>

注意:启动自主建图的步骤:

        1、启动cartographer 或者 gmapping 建图,发布 /map 话题

        2、启动 move_base 保证接收到 goal 后能够发布 /cmd_vel 话题

        3、启动 explore_lite launch文件即可

附:

1、各个节点后的节点图

 2、move_base launch相关的配置

<launch>
  <!-- Arguments -->
  <arg name="odom_frame_id"   default="odom"/>
  <arg name="base_frame_id"   default="base_link"/>
  <arg name="global_frame_id" default="map"/>
  <arg name="laser_topic"     default="scan"/>
  <arg name="cmd_vel_topic"   default="cmd_vel" />
  <arg name="odom_topic"      default="odom" />
  <arg name="move_forward_only" default="true"/>

  <!-- move_base -->
  <node pkg="move_base" type="move_base" respawn="false" name="move_base" output="screen">
    <param name="base_local_planner" value="dwa_local_planner/DWAPlannerROS" />
    <rosparam file="$(find robot_navigation)/config/test_costmap_common_params.yaml" command="load" ns="global_costmap" />
    <rosparam file="$(find robot_navigation)/config/test_costmap_common_params.yaml" command="load" ns="local_costmap" />
    <rosparam file="$(find robot_navigation)/config/local_costmap_params.yaml" command="load" />
    <rosparam file="$(find robot_navigation)/config/global_costmap_params.yaml" command="load" />
    <!-- <rosparam file="$(find robot_navigation)/config/base_global_planner_params.yaml" command="load" /> -->
    <rosparam file="$(find robot_navigation)/config/move_base_params.yaml" command="load" />
    <rosparam file="$(find robot_navigation)/config/dwa_local_planner_params.yaml" command="load" />
    
    <param name="global_costmap/global_frame" value="$(arg global_frame_id)"/>
    <param name="global_costmap/robot_base_frame" value="$(arg base_frame_id)"/>
    <param name="local_costmap/global_frame" value="$(arg odom_frame_id)"/>
    <param name="local_costmap/robot_base_frame" value="$(arg base_frame_id)"/>
    <param name="DWAPlannerROS/global_frame_id" value="$(arg odom_frame_id)"/>
    
    <param name="DWAPlannerROS/min_vel_x" value="0.0" if="$(arg move_forward_only)" />
    
    <remap from="cmd_vel" to="$(arg cmd_vel_topic)"/>
    <remap from="laser_topic" to="$(arg laser_topic)"/>
    <remap from="odom" to="$(arg odom_topic)"/>

  </node>
</launch>

3、一个launch启动所有自主建图的节点

<launch>
    <!--参数配置,运动是否只向前,flase 则表示小车可以后退操作-->
    <arg name="move_forward_only" default="true" />  
    <!--启动gmapping建图-->
    <include file="$(find robot_navigation)/launch/gmapping.launch" />

    <!--启动move_base-->
    <include file="$(find robot_navigation)/launch/move_base.launch">
        <arg name="move_forward_only" value="$(arg move_forward_only)"/>
    </include>

    <!--启动explore_costmap-->
    <include file="$(find explore_lite)/launch/explore_costmap.launch" />
   
</launch>

三、常见问题

1、启动各个节点以后,并没有开始路径规划,小车未移动。

        检查节点各个话题是否能对应上,tf 树是否正确,另外小车的基体坐标系是base_link还是base_footprint。

2、节点话题都对应的上,小车还是不走的情况。

        检查cartographer 或者gmapping的地图发布频率,建议发布速度为5Hz。或者检查gmapping建图中map_update_interval这个参数,改为0.01。

移动机器人项目组任务安排表 Day 01 上午 1.gmapping参数配置(李超) 2.总体launch文件的编写(钟浩) 3.机器人tf,状态,滤波器launch文件的编写(李博) 4.移动机器人调试(李超,钟浩,李博) 5.完成gmapping建图修图(李超,钟浩,李博) 下午 1.move_base参数配置(李超,钟浩) 2.amcl参数配置(李博) 3.调试机器人导航参数(李超,钟浩,李博) 4.在rviz中完成机器人单点导航(李超,钟浩) 5.记录多个导航目标点(李超,钟浩) 6.查阅随机循环导航函数的资料(李博) 7.完成随机循环导航功能节点函数(李超,钟浩,李博) 8.完成随机循环导航功能测试(李超,钟浩,李博) 里程碑事件: 1.完成gmapping建图修图 2.调试机器人导航参数 3.完成随机循环导航功能测试 Day 02 上午 1.完成循环导航代码的编写(李超,钟浩,李博) 2.调试循环导航功能(李超,钟浩,李博) 下午 1.完成自主探索建图代码的编写(李超,钟浩,李博) 2.调试自主探索功能(李超,钟浩,李博) 3.优化自主探索功能代码(李超,钟浩,李博) Day 03 上午 1.完成初始化位姿功能 2.完成里程计清零功能 下午 1.完成可设置循环次数导航功能 2.调试初始化位姿,里程计清零,循环导航功能 Day 04 上午 1.完成单点设定导航插件 下午 1.完善单点设定导航插件 2.调试单点设定导航插件功能 Day 05 上午 1.完成多导航点记录插件 2.完成多点循环导航节点 下午 1.完成多点循环导航插件 2.调试多点循环导航插件功能 Day 06 上午 1.查找关于巡墙算法的解决方案 2.完成rrt_exploration(快速随机搜索树)的下载和demo测试 下午 1.修改rrt_exploration接口 Day 07 上午 1.修改rrt_exploration接口 下午 1.修改rrt_exploration接口 Day 08 上午 1.在仿真机器人上完成快速随机搜索树自主探索建图功能 2.优化导航UI界面 下午 1.在真实机器人上完成快速随机搜索树自主探索建图功能 2.优化导航UI界面 Day 09 上午 1.分别完成导航和自主建图的move_base参数的配置 下午 1.完成rviz中marker标记 Day 10 上午 1.将marker功能添加到真实机器人上,并完成各项参数优化。 下午 1.完成代码整理,说明文档撰写。
评论 16
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值