其中A*的的实现代码的详细分析如下:
#include<global_planner/astar.h>
#include<costmap_2d/cost_values.h>
namespace global_planner {
AStarExpansion::AStarExpansion(PotentialCalculator* p_calc, int xs, int ys) :
Expander(p_calc, xs, ys) {
}
/* function:计算规划代价的函数
potential: 代价数组,
costs: 地图指针,
cycles:循环次数;
*/
bool AStarExpansion::calculatePotentials(unsigned char* costs, double start_x, double start_y, double end_x, double end_y, int cycles, float* potential) {
//queue_为启发式搜索到的向量队列:<i , cost>
queue_.clear();
//起点对应的序号
int start_i = toIndex(start_x, start_y);
//1 将起点放入队列
queue_.push_back(Index(start_i, 0

最低0.47元/天 解锁文章
1万+

被折叠的 条评论
为什么被折叠?



