zoukankan      html  css  js  c++  java
  • ROS机器人路径规划介绍--全局规划

    ROS机器人路径规划算法主要包括2个部分:1)全局路径规划算法;2)局部路径规划算法;

    一、全局路径规划 global planner

    ROS 的navigation官方功能包提供了三种全局路径规划器:carrot_planner、global_planner、navfn,默认使用的是navfn,

    其中:

    1、carrot_planner

    参考ROS wiki :http://wiki.ros.org/carrot_planner

    简单的路径规划器,优点是:是即使规划的目标点在障碍物上,也可以执行。机器人会向着目标点前进,避开障碍物尽量靠近目标点。

    2、navfn:一个基于grid的全局规划器,navfn提供了一个快速的内插导航功能,可用于为移动基础创建计划。计划者假定一个圆形机器人,并在成本地图上运行,以从一个起点到一个网格的终点,找到一个最小的成本计划。导航功能是用Dijkstra的算法计算出来的,但对启发式的支持也可能在不久的将来添加。navfn还为navfn计划器提供了一个ROS包装器,它遵循navcore::在navcore中指定的BaseGlobalPlanner接口。

    参考:http://wiki.ros.org/navfn

    缺点是默认使用Dijkstra算法,对A*算法支持不好。

    3、global_planner:替代navfn,支持A*算法。这个包提供了一个快速的、内插式全局规划器的实现。这个类遵循navcore::在navcore包中指定的BaseGlobalPlanner接口。它是作为一个更灵活的替代品来替代navfn。

    参考:http://wiki.ros.org/global_planner

    4、如何使用新的全局规划器。

    目前ros默认使用的是navfn的全局规划器,使用Dijkstra的算法,如果需要使用A*算法,则需要更改全局路径规划器。

    具体是在move_base包的launch文件里面更改:

    <node pkg="move_base" type="move_base" respawn="false" name="move_base" output="screen">
     <param name="base_global_planner" value="global_planner/GlobalPlanner"/>

    move_base将调用global_planner规划器进行路径规划。参数设置:

    如图所示, 将use_dijkstra算法设置false就是使用A*算法。

    也可以使用自己写的路径规划器进行路径规划,参考:

    https://community.bwbot.org/topic/43

    http://blog.csdn.net/heyijia0327/article/details/45030929

  • 相关阅读:
    Android——继续深造——从安装Android Studio 2.0开始(详)
    PHP——安装wampserver丢失MSVCR110.dll
    Marza Gift for GDC 2016
    Retrieve OpenGL Context from Qt 5.5 on OSX
    Space Time Varying Color Palette
    Screen Space Depth Varying Glow based on Heat Diffusion
    Visualization of Detail Point Set by Local Algebraic Sphere Fitting
    Glass Dragon
    Jump Flood Algorithms for Centroidal Voronoi Tessellation
    京都之行
  • 原文地址:https://www.cnblogs.com/kuangxionghui/p/8423507.html
Copyright © 2011-2022 走看看