孫正宇, 張禹
(沈陽工業大學 機械工程學院,沈陽110870)
六維力傳感器可以在空間內測量沿三維坐標軸上的力Fx、Fy、Fz及繞這3條坐標軸產生的力矩Mx、My、Mz,可為操作者提供力反饋,提高臨場感[1],被廣泛用于空間機械臂[2]、水下機器人[3]、醫療機器人[4]等領域。而六維力傳感器被固定在機械臂末端用來測量力信號時,由于受到機械臂的振動、應變片熱噪聲、放大電路噪聲、彈性體蠕變噪聲及周圍環境電磁干擾[5]等影響,使得測得的數據精度較差,難以對數據進行分析。因此,需要對六維力傳感器采集的數據進行濾波處理,從而提高力信號的準確性及穩定性。
本文對常用的濾波方法進行分析,提出一種基于正態分布的滑動平均濾波法,在保證濾波實時性好、平滑性高的同時,消除個別極端噪聲對濾波曲線的影響。
卡爾曼濾波法是一種通過上一刻的最優估算值對當前時刻的測量值進行加權得到當前最優解的最優估計濾波方法[6]??柭鼮V波法可以有效地抑制過高或過低的噪聲,但該濾波法平滑程度較低,波動性比較大,而且卡爾曼濾波法公式復雜,計算機計算壓力大,依賴系統模型及噪聲模型的準確程度,在實際工作環境中,噪聲協方差矩陣難以準確獲得,導致無法估計線性最優值,從而使卡爾曼濾波效果下降[7]。
算數平均值濾波法是一種簡單快速的濾波法,通過對一組采樣數據進行算數平均值計算,從而得到這一組數據的采樣值。該種濾波法每組采樣數據越多,平滑性越高,算法簡單,解決了卡爾曼濾波計算繁雜、平滑性差的缺點,但濾波結果相對于數據采集延后嚴重,無法保證實時性。
滑動平均濾波法結合了算數平均值濾波法的優點,設置一個可容納N個數據的緩存區,傳感器連續采樣并將N個采樣值存入緩存區中進行算數平均值計算,然后每測得一個采樣值就會剔除緩存區內最舊的采樣值,并對緩存區內新的數據進行計算。這種濾波方法實時性好,平滑程度高,但對工作環境中突然波動較嚴重的噪聲抑制能力較差[8]。采用緩沖區內剔除最大值及最小值再進行算數平均值計算的方法[9],對極端噪聲的消除有一定效果,但對于連續的極端噪聲抑制能力較低,且去除緩存區內數據會降低平滑性。
去除最大值、最小值的滑動平均濾波法的弊端在于無法識別隨機分布的噪聲及個別極端的噪聲。為了結合普通滑動平均濾波法運算簡單、實時性好、平滑性高的優點,同時可以準確去除個別極端噪聲數據,本文采用基于正態分布的滑動平均濾波法,以正態分布為依據,對滑動平均濾波法緩存區內的數據進行判定,將不符合的數據剔除,從而降低極端噪聲對濾波曲線的影響,并對去除的數據用平均值進行補償,從而保證平滑性。
首先令計算機將連續采樣的n個采樣值存入緩存區,然后每采樣一個數據便將采樣值加入緩存區首端,同時去除緩存區末端的采樣值。假設某一時刻緩存區內n個數據為a1…an,計算緩存區內算數平均值:


圖1 程序流程圖
根據正態分布判定與滑動平均濾波法的前后邏輯關系,可設計程序流程框圖,如圖1所示。
本文實驗使用安徽埃力智能科技有限公司生產的Bioforcen六維力傳感器,使用基于VC6.0 的C++編程語言編寫,因此將算法轉化為C++程序如下:

將程序寫入傳感器源文件中,準備實驗。

圖2 滑動平均濾波法與原始數據對比
將六維力傳感器放置在無外部干擾的環境中,對Z軸的零負載讀數進行測量,采用廠商多維力數據采集系統對數據進行采樣,并分別使用普通滑動平均濾波法,去除最大值、最小值的滑動平均濾波法及基于正態分布的滑動平均濾波法進行濾波,抽取其中連續100個數值進行比對。
首先使用普通滑動平均濾波法對數據進行濾波處理,實驗結果如圖2所示。
由圖2可知,滑動平均濾波法有效地提高了原始數據的平滑性,對于噪聲有良好的抑制效果,但對于例如點46及點56處的隨機極端噪聲,波動性增大,抑制效果不明顯。
由圖3可知,與普通滑動平均濾波法相比,去除最大值、最小值的滑動平均濾波法對于點46、點56處的隨機極端噪聲有良好的濾波作用,波動小于普通滑動平均濾波法。如圖4所示,在處理連續周期性極端噪聲上,由于去除最大值、最小值的滑動平均濾波法每個緩存區內只能去除2個數據,因此對緩存區內存在多個極端噪聲數據時,濾波處理效果不明顯,緩存區內n值降低導致平滑性略微低于普通滑動平均濾波法。用基于正態分布的滑動平均濾波法對原始數據進行處理,與前兩種濾波法的效果做比較,在隨機極端噪聲時對比如圖5所示。由圖5可知,基于正態分布的滑動平均濾波法可以有效地抑制個別極端噪聲,在噪聲較少的區間平滑性略高于另外兩種濾波方法。在連續的周期性極端噪聲中,如圖6所示,基于正態分布的滑動平均濾波法可以連續對緩存區內的數據進行判定及補償,曲線平滑性比其他兩種濾波方法更高。

圖3 兩種濾波法極端噪聲處效果對比圖

圖4 兩種濾波法周期性噪聲處效果對比圖

圖5 正態分布滑動平均濾波法隨機噪聲處效果圖

圖6 正態分布滑動平均濾波法連續噪聲處效果圖
本文經過分析幾種常見的濾波方法,對滑動平均濾波法及去除最大值、最小值的滑動平均濾波法進行改進,利用正態分布來判定的滑動平均濾波法對采集數據進行濾波。實驗分析表明,基于正態分布的滑動平均濾波法可以有效抑制隨機及連續的極端噪聲,可以使濾波曲線更加平滑。