标签:
就是一个PD,其他没有。
角度用的是第三个点与第一个点的横向偏差。距离用的第一和第三个点的弧长的中点所对应的点。
Y = k1*S + k2*A.
如图:上面主要思路是寻单边,哪个靠谱用哪个。算法部分还是用的PD。这里面涉及到参数模型的问题,下面是四种控制模型。(上图中的iserror是有用的,左车道为主,右车道次之。注意正负号等。)
此方法中我们使用的是第一种,比例模型。
调参数的经验:
先调节P,当P出现走大S弯的时候,说明P参数过大,需要将P弄小一点。
P大,前瞻不够,导致一有偏,打的角度比较狠,直接拐弯,当它偏的比较小的时候,想要纠正回来,此时由于转向有延迟,无法执行刚刚的角度值。当之前的角度执行完毕,又开始执行较大的角度。
导致,车来回震荡。
P小,一有小的偏差,转向有纠正。且纠正的速度小于转向的速度。
当P调节完毕就可以调节D了。参数调整如上图所示。
?
注意:
算法处理部分:
滤波算法: 中值,均值,互补。主要目的是干掉错误的状态。
上面的算法中,我是通过 三帧的跳变值来检测数据是否可信。
?
限幅算法:
当你的输出是负数时,我们需要规范其输出。
?
饱和处理:
当输出值不在我们规定的范围内,我们直接输出最大or最小值。
丢失处理:
当左右两边都没发现障碍物的时候,保留上一帧。共保存了5帧。超过5帧,说明真的没有数据。
?
?
?
先是滤波,然后是平方模型,中间有断点的话,保持上一帧数据。饱和和丢失处理。
标签:
原文地址:http://www.cnblogs.com/zhuxuekui/p/4932018.html