[运动控制算法]Pure Pursuit纯路径跟踪算法

纯路径跟踪

Pure Pursuit是一种用于路径跟踪的控制算法。它通过计算角速度控制机器人从当前位置移到机器人前方的某个预瞄点。假定线速度是恒定的,当然可以随意更改机器人的线速度。该算法会根据机器人的当前位置在路径上移动预瞄点,直到路径的终点。可以想象成机器人不断追逐它前面的一个点。参数LookAheadDistance就决定将预瞄点放置有多远。

Pure Pursuit并不是传统的控制器,而是充当着跟踪算法的角色,用于跟随路径,航向点的信息是唯一的,可以指定所需的线速度及最大角速度。给定机器人的位姿(位置和方向)作为输入,Pure Pursuit会计算机器人的线速度和角速度命令。机器人如何使用这些命令取决于你所使用的系统,因此请考虑给定这些命令的机器人如何执行动作。LookAheadDistance参数它告诉机器人在跟踪路径上要走多远。

参考坐标系

重点是了解Pure Pursuit算法对其输入和输出使用的参考坐标系,如下图显示了参考坐标系。输入的航路点是[x ,y]坐标,用于计算机器人速度命令。机器人的姿态作为点的姿态和方位(theta)列表输入[x, y, theta]。
[运动控制算法]Pure Pursuit纯路径跟踪算法_第1张图片

预瞄距离

LookAheadDistance参数是整个Pure Pursuit控制器的重要参数。往前看的距离是机器人从当前位置应沿着路径观察的距离,以计算角速度命令。下图显示了机器人和预瞄点。如图所示,实际的路径与追踪路径是不匹配的。
[运动控制算法]Pure Pursuit纯路径跟踪算法_第2张图片
更改预瞄距离可以改变机器人路径追踪的方式。较小的预瞄距离可以使机器人更加精确地追踪实际的路径,但是可能会使机器人在追踪路径时产生振荡,较大的预瞄距离可以减少机器人沿路的振荡,但最追踪的路径可能不够精确,也会导致拐角处附近的曲率变大。

[运动控制算法]Pure Pursuit纯路径跟踪算法_第3张图片
预瞄距离的调整需要根据机器人运行的实际情况来进行调整。


总结

Pure Pursuit在低速小在情况下合理调整LookAheadDistance参数可以实现较好的路径跟踪效果,较小的预瞄距离能使机器人更加精确地追踪路径,但可能会引起机器人控制的不稳定甚至震荡;较大的预瞄距离可以使机器人跟踪路径更加平滑,但不能精确地跟踪原始的路径,在大转角处会出现转向不足的情况。


参考

https://ww2.mathworks.cn/help/nav/ug/pure-pursuit-controller.html

你可能感兴趣的:(控制)