刚在网上发现篇文章很好,对有能力的同学来说这应该是个不错的资料,可以实现坡道检测。。 现发上来与大家分享,讨论。
结合角速度传感器与加速度计测量车辆运动
当测试车辆时,人们常常需要测量车辆的动态运动以及车辆相对于道路的倾角。我们可以通过加速度计来获得车辆转弯、加速或者制动时产生的冲击力,但是,除非车辆在进行上述运动时保持水平,否侧测试结果是不准确的。比如,你想用加速度计测量车辆的制动力,但车辆是向前倾斜的,测量结果中就会有重力分量。
大多数倾斜传感器把重力方向当作参考方向。重力是一种加速度,并且不断变化(应该是随高度变化吧)。制动、加速和转弯时,车辆会产生加速度。然而当进行倾斜测量时,我们只需要得到重力加速度;当进行车辆动力测量时,却又只想得到运动加速度。
有运动加速度时,倾斜传感器将得到一个不准确的倾角。也就是说,在车辆倾斜时只通过加速度计将无法得到准确的倾角。
通过测量绕车辆重心的旋转,角速度传感器有助于纠正车俩向前倾斜带来的不利影响。不幸的是,角速度传感器有其自身的缺陷。它测量旋转速度,不是旋转角度,通过不断积分得到角度。当旋转速度的测量出现偏差,积分后所得的角度将会有很大的偏差。但是,你可以结合角速度值和加速度值,计算出车辆动态运动时的精确数据。角速度和加速度的缺点可以相互弥补。当拥有足够强的计算能力,我们就可以得到实时的加速度和角度的精确值。
要实现这一点,你需要测量沿三个轴的加速度和角速度。于是我们沿着车身安装了三轴加速度计,和与值对应的三轴角速度计。见图1。如果可能,传感器最好安装在车辆重心,尽量减少旋转加速度对测量带来的不利影响。
我们可以用角速度传感器测量车辆绕给定轴的旋转。如果一直对角速度积分,将会得到角度关于时间的函数。例如,您可以使用角速度传感器来跟踪车辆沿着X和Y轴的旋转,然后对传感器信号积分,计算出车辆俯仰角和翻滚角。这是一个关于时间的函数。根据这个计算得到的俯仰角和翻滚角,从加速度传感器信号中减去由于倾斜带来的重力分量,最终得到运动加速度。
要得到可靠的俯仰角和翻滚角,你必须对角速度信号积分。结果是,角速度信号的偏差,会造成角度的偏差,并且随时间线性增加。此外,角速度传感器的随机噪声会导致计算角度的随机波动,这种波动使得角度以与时间的平方根成正比的速度漂移,even in the absence of rate bias error.这些影响将限制昂贵的角速度传感器在超过几分钟测量时的应用。
幸运的是,我们可以利用角速度传感器短时测量准确的优势和加速度计长时稳定的特点,两者结合,得到即能短时稳定又能长时稳定的倾角。用角速度传感器测量短时内角度变化,把加速度传感器当做倾角传感器测量倾角,并在一个长时间范围内,迫使角速度传感器得到的倾角慢慢匹配加速度传感器得到的倾角。
要执行这些操作,需要有传感器,以及数据采集和处理设备。我们使用一个三轴加速度计和(三个)3轴角速度计。不管沿哪个方向,你都需要以能测量车辆完整运动的目的来安装这些传感器。还可以添加一个温度传感器,用其采集的数据补偿温度对加速度计和角速度计输出的影响。然后将传感器信号数字化,并输入计算机或存储器。
可以使用电脑对得到的数据进行计算。但是,如果想看到实时的计算结果,那得需要一台数字信号处理器(DSP),作为信号采集设备之一。然后,将计算得到的角度数据、已修正的加速度和角速度信息用数据线传送到电脑。如果发送的是二进制数据包,工作在38.4K波特率的串行RS-232数据线应该满足超过200Hz的传输速率。这大大快于角速度传感器的带宽。
尽量把传感器安装在靠近车辆运动中心的地方。否侧旋转产生的离心力将会被加速度计测量。请注意,我们使用加速度计只是测量车辆重心的线性加速度,所以要尽量减少旋转运动对加速度测量的耦合。
图3显示了一个轴的算法。实时对角速度传感器输出积分得到原始角度。利用加速度计测量重力方向并推断出倾斜角度。例如,如果在x轴上得到0.1G的加速度,这意味着倾斜角为arcsin(0.1)=5.7°。为了避免震动和冲击造成倾斜角计算错误,使用截止频率为 100Hz或更底的低通滤波器。简单的单极RC滤波器即可。 计算两角度之差,为误差信号。它可以用来更正角度计算。这里定义了一个增益参数,k,决定着有多少误差信号用于更正角速度积分。最后将角速度原始积分与误差信号(已乘增益)相加。该过程的输出是一个角度值,短时间看角速度值起主导作用,但长时间看是由加速度值来修正的。时间尺度由k值决定。
增益参数k is similar to the erection rate in an analog vertical gyro. k值设置时间常数,在这段时间内角速度传感器计算得到的角度被重力计算的角度稳定修正。您应该选择一个比预期测试更长的时间常数。然后将它除于测量速率,就是k值了。例如,如果你选了一个5s的时间常数,而且角速度和加速度传感器的工作速率是200Hz。那么,k=5/200=0.025。
一旦得到稳定的倾角,就可以用它修正原始的加速度数据。这样能得到沿任一轴的真实(运动)加速度。请注意,
一旦倾斜,重力分量就会被x和y轴的加速度计测量。解决这一问题的办法之一是建立一个旋转矩阵,根据已求取的倾斜角,将加速度矢量(x,y和z轴与车辆一致)旋转到地面坐标系(对车辆坐标系进行坐标变换)。在水平系统中,重力是完全竖直的,所以水平方向上x,y轴得到的将是纯运动加速度,没有重力分量。
最终结果是得到车辆运动的完整描述,包括角速度,稳定的倾斜角度和纠正了的线性加速度。以上描述的实时系统可以使用固态传感器实现。这构成了一个可靠,廉价的车辆运动检测系统。 -------------------------------------------------------------------------------------------- 对于坡道检测的方法,这里引用下 flyer1988h 在另一个帖子里的回帖: 1,可以用加速度传感器,检测Z轴方向。但是在加速,减速或者过弯的时候有误检,程序中加入其它的辅助标志位,例如舵机的角度,即可检测坡道。
2,丢线算法。这个应该是常用的。就是前瞻大的激光管丢线后,进入坡道模式。启用下排激光管,或红外传感器。
3,辅助传感器,例如微动开关,在车头或车尾软性连接,输出开关量。
4,陀螺仪,检测跑道径向方向的角加速度。不知道今年北科是不是用这个。
还有的大家各抒己见吧,不对之处还望大家指正。
之前在另一篇文章中也提及到依靠车前安装开关碰撞坡道而完成识别的方法,是迟早会被淘汰的。车上安装重力传感器,将会成为今年比赛的趋势; 博文地址:http://blog.sina.com.cn/s/blog_4d80e02f0100l4b8.html
但车身抖动对加速度传感器的影响又比较大,所以陀螺仪和加速度计结合使用,效果也许会好些,不知大家的看法如何?
----------------------------------------------------------------------------------------------------------
另付一帖子 智能车用角速度传感器选择 http://www.znczz.com/thread-22713-1-1.html 有兴趣的同学可以去看看。 |