5. 优化函数Smoother
5.1 tracePath()
- 功能:此函数的功能就是要找到一条从
start节点到goal节点的路径path. - 参数:此处带入的初始节点指针
node是已经找到的goal的指针,i是第回溯到第一个节点了,path是回溯的路径.
本函数采用了递归调用的模式,不断去找node的前任节点node->getPred(),不断更新路径path,知道node为空指针nullptr,意味着已经到了start节点.
void Smoother::tracePath(const Node3D* node, int i, std::vector<Node3D> path) {
if (node == nullptr) {
this->path = path;
return;
}
i++;
path.push_back(*node);
tracePath(node->getPred(), i, path);
}
5.2 smoothPath()
- 功能:把
tracePath()回溯到的路径path进行优化 - 参数:
void Smoother::smoothPath(DynamicVoronoi& voronoi) {
}
- 步骤:
5.2.1 初始化参数
包括voronoi的尺寸,最大叠代次数和路径长度.
// load the current voronoi diagram into the smoother
this->voronoi = voronoi;
this

本文介绍了Smoother类的两个关键函数:tracePath()和smoothPath()。tracePath()通过递归方式从目标节点回溯至起始节点,构建最优路径。而smoothPath()对回溯的路径进行优化,通过迭代过程修正路径上的节点位置,考虑了障碍物、平滑度和曲线等修正项,确保路径的平滑性和合规性。整个优化过程限制在最大迭代次数内,以保持计算效率。
最低0.47元/天 解锁文章
1465

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



