PID控制 作为控制领域最经典的控制算法,PID算法一直保持者及其广泛的应用。实践证明,在实际应用中对于工业控制、智能制造、测量等等都发挥了非常大的作用。
所谓PID,P(proportion),即比例环节,能够直接作用于被控对象,对于系统的偏差的消除起到立竿见影的作用;I(Integral),即积分环节,如果有一些高等数学的知识就会知道,积分实际上是一个积累的作用,只要偏差存在,则积分作用就会一直存在,最终直到偏差消除为止。这在实际的循迹控制中是应用非常重要的,能够保证小车可以一直保持高精度的循迹控制。而D(derivative)即微分,会产生一个正比于偏差变化率的控制量。如果目标量的变化量过于大时,能够有效的产生抑制作用,可以维持姿态的稳定。
简单的循迹方法由于使用的传感器对于黑色与白色的敏感程度是不同的,使用循迹功能时,首先利用黑色的胶带在对比明显的白色背景下铺设一条黑色的通道,当然为了防止车子冲出跑道,这条道路最好不要出现过于明显的尖角。
传感器的使用是非常重要的,如果想要准确测出机器人偏离轨道的大小,可以使用一组红外传感器,常规的PID控制是配置固定的PID参数,也就是说通过对小车偏移量的大小判断来决定进行对小车速度和转向的控制,控制量的大小可以用下图所示的公式来计算。
而高级点的PID控制算法可以实时修改Kp,Ki 和Kd的值,比如基于自适应的PID控制算法,能够当机器人偏移轨迹时根据偏移量的大小进行模式识别,分别识别出一些控制所用的特征参数,比如超调量、阻尼比、衰减震荡周期等,进行自动进行优化分析,修正PID控制器的各个参数。
我们通过视频了解到,Arduino能够使用简单的PD算法来实现非常好的循迹效果,当然如果你有兴趣,还可以学习一些新的控制算法比如人工神经网络、模糊算法等,从而大大提高移动机器人的循迹精度。
简单的避障方法
实际上循迹所用的红外传感器也能够应用于避障上面,但是检测的距离不够。借助于超声波传感器,我们能够人工修改传感器的最大检测距离,从而能够根据外界障碍物的大小进行适当的修正。下面是仅利用两个红外传感器进行避障控制的一个实例程序,设计到控制方法非常简单,以求抛砖引玉。
可以看到程序从两侧不同部位的传感器检测的不同,来决定下一步的动作。例如左侧的传感器检测到障碍物,首先进行后退,然后进行右转,以躲避障碍物,同样右侧的传感器检测到障碍物后退左转,只有两只传感器都没有检测到时方能前进,这样可以有效躲避与障碍物的碰撞。 总结 避障与循迹是移动机器人非常重要的两个设计功能,本次博客讲了基本的控制策略,并以实际程序讲解避障的方法。当然最重要的基于实践来进行修改和完善,希望大家有时间都能进行自我尝试。 |