zoukankan      html  css  js  c++  java
  • Navigation(四)global_planner源码解析之框架

    一、全局规划器概述

    对于global planner,可以采用以下三种实现之一: "navfn/NavfnROS","global_planner/GlobalPlanner","carrot_planner/CarrotPlanner"

    本文分析其中一种实现:global_planner/GlobalPlanner。
    move_base调用global_planner需要修改的文件:
    1、bgp_plugin.xml
    2、package.xml
    以上两个文件都在/global_planner文件夹内

    二、根据nav_core提供的BaseGlobalPlanner接口:

    initialize(name, costmap) ——算法实例的选取
    makePlan(start, goal, plan)——两个步骤完成路径的生成(①计算可行点矩阵potential_array (planner_->calculatePotentials) → ②从可行点矩阵中提取路径plan (path_maker_->getPath))
    主要是以下三个实例:
    1.计算“一个点”的可行性 —— p_calc_:PotentialCalculator::calculatePotential()、 QuadraticCalculator::calculatePotential()
    2.计算“所有”的可行点 —— planner_:DijkstraExpansion::calculatePotentials()、 AStarExpansion::calculatePotentials()
    3.从可行点中“提取路径” —— path_maker_:GridPath::getPath()、 GradientPath::getPath()

    涉及到四个算法程序:A*, Dijkstra;gradient_path, grid_path

    可以总结出global_planner框架:

    参考资料:

    https://zhuanlan.zhihu.com/p/46212318

     

    博文主要是总结自己的学习,因此有很多知识点没有提到,仅仅提了个人比较容易遗忘的或者非常重要的知识点。很多资料来源于网络和对一些课程的整理,侵权删。格式没花精力调整,望谅解。
  • 相关阅读:
    数据库触发器
    Java第四周学习日记(绪)
    Java第四周学习日记
    Java第三周学习日记
    java第二周学习日记
    Java第一周总结(20160801-20160807)
    ubuntu上解压目录里的文件到指定文件夹
    ubuntu上安装ftp
    ubuntu上u-boot的编译
    Ubuntu上Xilinx ARM交叉编译器安装
  • 原文地址:https://www.cnblogs.com/JuiceCat/p/12527999.html
Copyright © 2011-2022 走看看