local planner 代码问题请教

sunxq_hit 2021-12-23 13:53:27

各位大神,请问这行代码(446-449):

if (pathID >= 0 && pathID < pathNum && groupID >= 0 && groupID < groupNum) {
  pathList[pathID] = groupID;
  endDirPathList[pathID] = 2.0 * atan2(endY, endX) * 180 / PI;
}

在计算每条路径终点的方向角时,为什么乘以2呢?

...全文
91 2 点赞 打赏 收藏 举报
写回复
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
Robert--cao 2021-12-26

个人理解可以把它看做为一个角度值的权重,目的就是让在计算代价值的时候轨迹终点方向角离目标点的越小的轨迹越容易被选择。但是也不能设置为太大,太大容易造成基本选择车的方向前进,特别是到终点的时候会不断的调整。也不能设置太小,太小容易在直道上轨迹很容易弯曲。

  • 打赏
  • 举报
回复
哈工大-朱洪彪 社区管理员 2021-12-25
你好,这里的2是一个经验数字,类似于一种驾驶的直觉,如果一条路径是向左或者向右弯曲的,后续的路径还会继续向相同的方向弯曲,所以我们把角度设置的比实际的大。当使用waypoint来引导local planner的时候,就会像把车开出去更远那样考虑车辆的行驶方向,而不只是考虑当前的状态。在实际测试中,我们已经把这个参数调到最好的效果了,不过你仍然可以自己去调节,尝试不同的效果。
  • 打赏
  • 举报
回复 1
相关推荐
发帖
TARE机器人自主导航系统
加入

175

社区成员

社区内分享我们的开源平台tare机器人自主导航系统,希望能帮助所有自主移动机器人领域的研究人员快速搭建出属于自己的,稳定可靠的机器人仿真和实验的平台,更快进入自己的研究领域
帖子事件
创建了帖子
2021-12-23 13:53
社区公告
暂无公告