global_planner解析(2)

15 篇文章 0 订阅
7 篇文章 14 订阅

第二章我们则对功能包的文件及类进行解析:
首先我们看一下功能包里面有什么类分别作用(由于本人刚刚入门uml,故图片可能有所偏差)
在这里插入图片描述
里面最主要的就是插件算法类GlobalPlanner父类nav_core::BaseGlobalPlanner,而路径搜索分别是DijkstraExpansion(地杰斯特拉算法)、AStarExpansion(astar算法),路径回溯PotentialCalculator、QuadraticCalculator(使用梯度下降)

然后我们看一下里面有哪些文件:

.
├── bgp_plugin.xml
├── cfg
│   └── GlobalPlanner.cfg
├── CMakeLists.txt
├── include
│   └── global_planner
│       ├── astar.h
│       ├── dijkstra.h
│       ├── expander.h
│       ├── gradient_path.h
│       ├── grid_path.h
│       ├── orientation_filter.h
│       ├── planner_core.h
│       ├── potential_calculator.h
│       ├── quadratic_calculator.h
│       └── traceback.h
├── package.xml
└── src
    ├── astar.cpp
    ├── dijkstra.cpp
    ├── gradient_path.cpp
    ├── grid_path.cpp
    ├── orientation_filter.cpp
    ├── planner_core.cpp
    ├── plan_node.cpp
    └── quadratic_calculator.cpp

bgp_plugin.xml是用来注册导航插件的,而 GlobalPlanner.cfg文件则是动态参数调节所用文件,主要解析以下头文件及cpp文件:
以下对文件及类进行简单对应:
在这里插入图片描述
首先呢,各个类继承关系没什么难度,在planner core cpp中initialize()方法对导航进行初始化的时候,根据上一章所述的参数
如果参数use_quadratic为ture即使用二次近似函数则实例化QuadraticCalculator类,false则实例化PotentialCalculator
参数use_dijkstra是否使用地杰斯特拉算法true则实例化DijkstraExpansion否则实例化AStarExpansion(astar)
参数use_grid_path是否沿边界创建路径,true则实例化GridPath,false则实例化GradientPath使用梯度下降算法。

而各个类的主要方法也已经列出
GlobalPlanner 进行初始化时会调用initialize()方法

而每当我们需要规划路径时调用makeplan服务,GlobalPlanner会调用makePlan()方法★ 也是我们路径规划的核心步骤。

  • 4
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值