微波EDA网,见证研发工程师的成长!
首页 > 应用设计 > 汽车电子 > 数字形态学滤波器与智能车路径记忆

数字形态学滤波器与智能车路径记忆

时间:02-22 来源:电子产品世界 点击:

抑制效果仍然不理想,而且运算量偏大,单片机难以承受。图5为采用形态学滤波处理后的数据,赛道信息完整准确,可以较好的应用于后续控制策略。


图2 实验系统采用的赛道


图3 第一圈记录的赛道信息


图 4 3阶巴特沃兹滤波器处理后数据


图5 形态学滤波处理后的数据

  数学形态滤波的快速算法

  由于数学形态滤波器只由加法、减法和比较运算构成,其运算相对简单,因此,它很适合于在计算功能相对较弱的单片机上应用并能取得很好的效果。以往单片机由于受存储容量、计算速度及字长的限制而使大多数的数字滤波器较难实现,而形态滤波器则为单片机应用数字滤波器代替以往的模拟滤波器提供了一条新的途径。

  由腐蚀的定义可知,欲计算f(n)的腐蚀值,需要知道该点前w(w为结构元素的宽度)点的数据;而要计算f(n)膨胀后的结果,则需要知道该点后w点的数据。由于运算是一个腐蚀运算接着一个膨胀运算后得到的,在长度为L的数据中只有从第w点到第(L-w+1)点,才可以得到开运算的结果。

  如图6所示,我们定义一个模板序列,该序列的长度和结构元素的宽度相同。该模板的初始值由前w个点的腐蚀值组成。以第n点为例,沿该点向前的方向对模板序列的值进行膨胀运算,运算的结果即为该点的开运算的结果。同时,沿该点向后的方向继续进行腐蚀运算,得到第(n+1)点的腐蚀值。将(n+1)点的腐蚀值作为模板序列的最后一个点,并将模板序列前(w-1)点顺次向前移动一个位置。更新后的模板值即可用来做 (n+1)点的膨胀运算,得到在(n+1)点的开运算值。如此继续下去,就可完成全部的开运算。在做闭运算也可采用类似的方法来提高计算的速度。


图6 数学形态滤波快速算法

  这样,对长度为N的一段数据,用M个零作为其结构元素进行处理时,当采用一般方法进行计算,需要进行2×M×N次的比较运算。而当采用快速算法时,能够在比较最大值的同时得到最小值,减少(N-M+1)×M次比较运算,使程序的执行速度提高了近一倍,而且,由于采用这种快速算法,可以实现路径记忆信息的实时处理,很大程度上方便了第二圈控制策略的制定,因此,它使得形态滤波这种方法更加适合应用于路径信息的处理中。

  实验及结论

  通过对不同传感器方案(光电管和CCD)的智能车在不同赛道多次实验发现,对于光电管方案和CCD方案的智能车,赛道记忆算法都能一定程度上提高第二圈速度。智能车采用形态学滤波算法处理赛道记忆数据后,不但行驶的稳定性、准确性有了较大的提升,而且没有大幅增加MCU的资源消耗,同时可以支持复杂的控制策略。上述方案具有很强的通用性,适用于不同传感器方案、不同控制算法的智能车。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top