廣東人工智能與先進計算研究院 柳建鑫 盧進 吳昌隆
針對機器觸覺感知的應用中壓力傳感器數量大,測試工序繁雜問題,本文設計了一款壓力傳感器標定系統,系統采用了FPGA作為數據處理芯片,相比于其他壓力標定系統處理芯片,其具有多IO高并行的特點,對標準壓力傳感器和待測壓力傳感器數據進行數據融合與同步處理,極大提高了大數據量傳感器的標定效率。
隨著人們日益增長的科技需求,機器人技術逐漸普及在人們的視野,當前這項技術正往智能化方向發展[1]。智能機器人技術實現中,多維度感知系統是其開展的必要條件[2],而力是一項及其重要的信息,通過受力信息,對機器人進行姿態、運動控制,根據力對接觸的物體外形進行形狀識別[3]。本文待測的壓力傳感器用于機器人手掌多觸點壓力的識別。由于工藝與結構的差異,不同陣列與相同陣列不同位置的傳感器性質也會不同,因此需要我們對傳感器進行逐個標定。在觸覺感知中,需要大密度的傳感器分布,如單個手掌的感知,需要安裝數十個傳感器陣列,而傳感器陣列包含著16個壓力傳感器,標定如此數量的傳感器,無疑是一項十分耗時耗力的工作。
觸覺感知傳感器的標定,目前可采用的方式都較為耗費時間、資源成本,并且測試類型有局限,如在控制上通過砝碼直接或者經過機械傳動施力標定[4,5]、通過距離與壓力傳感器反饋壓力控制標定[6,7],這些類型標定方式控制過程久,標定效率較慢,無法進行特定如沖擊、正弦、斜坡等壓力動態的測試;或者在數據采集上待測傳感器和標定傳感器獨立采集,再傳輸至上位機做數據處理,這種方式標定傳感器和待測傳感器時間關系不確定,無法確定它們之間相對延時。
針對以上標定方式缺陷,本文設計的可適配自動化同步標定系統,壓力由音圈電機進行閉環控制,該方案中間無傳動結構,控制穩定無回程誤差并且響應速度快;數據處理采用了FPGA芯片,可并行采樣多個待測傳感器的監測數據,在設計中,可選擇的傳感器數據和待測傳感器數據實時打包上傳至終端進行分析,數據同步性強,且并行多接口設計省去了許多繁雜的人工裝配啟動等操作,給后續大數量傳感器標定提供了有利的條件。
系統外設和硬件共有壓力驅動模塊和其配套控制器、壓力檢測模塊、數據采集模塊、待測傳感器、上位機終端構成,硬件連接關系如圖1所示
裝置中,壓力驅動模塊安裝于待測傳感器正上方,壓力檢測模塊固定于驅動模塊的動子處。通過預設的施力曲線,壓力驅動模塊動子經過壓力檢測模塊對待測傳感器施加一個法向的作用力,根據牛頓第三定律,待測傳感器和壓力檢測模塊受到的力大小相等,方向相反。通過FPGA同步采集的待測傳感器檢測輸出值和壓力檢測模塊檢測到的法向壓力值進行分析,可以對待測傳感器輸出值與法向壓力值的關系進行標定。
音圈電機具有體積小、重量輕、高加速度、高速度、快速響應、推力均勻等優良性能優點[8],方案中壓力驅動模塊驅動由音圈電機負責。壓力驅動模塊采用SMAG公司生產的LCA32音圈電機。這款型號的音圈電機配備一個外部的控制器,用戶可以使用終端控制音圈電機的PID控制參數和電機的施力曲線。
壓力檢測模塊通過反作用力,對待測傳感器壓力進行間接檢測,壓力檢測模塊采用的是ATI公司的9105-TWNANO17TI-R-5,X、Y軸力傳感器量程為±32N,Z軸力傳感器量程為±56.4N,X、Y、Z軸力矩量程為±200Nmm,它們在25℃條件下的滿量程精度為1%。
壓力傳感器也配備有一個專用控制器,用于檢測壓力傳感器模擬值并將其轉換成力/力矩值,可以實時檢測傳感器狀態,確保傳感器正常運行,傳感器采樣率6Hz到3336Hz可設,內部可進行均值濾波輸出,傳輸接口為RS232串口。
數據采集模塊采用ZYNQ7020板卡,板卡上數據通過一個千兆網口輸出,外圍配備了22個待測傳感器接口,可以同時讀取22個待測傳感器和一個六軸壓力傳感器數據。ZYNQ內部的FPGA擁有豐富的LUT、BRAM、IO與時鐘等資源,通過并行的邏輯資源對傳感器進行配置和數據讀取,再將讀取的數據打包通過PS的網口輸出至終端,資源與運算速率完全滿足設計需求。
待測傳感器用于獲取法向壓力,基于MLX90393實現,主要有三大部分組成:MLX90330霍爾傳感器、柔性硅膠結構、磁鐵。磁鐵通過柔性硅膠結構安裝在霍爾傳感器上方,在對磁鐵處按壓力時,硅膠會產生相應形變,實現力到距離的轉換,再根據霍爾傳感器輸出與磁鐵的距離一定的函數關系,可以實現磁場強度到力的轉換。
系統軟件運行于數據采集模塊,由ZYNQ內部FPGA和ARM核共同實現,內部并行運行22個待測傳感器數據接口模塊和六軸傳感器數據接口模塊,接口模塊分別對傳感器進行初始化配置和數據的讀取,數據讀取達到一定數量后,數據交互模塊將傳感其數據打包發送至測試終端。軟件框圖如圖2所示。
2.1.1 傳輸速率計算
六軸傳感器采樣率采用200Hz,力和力矩數據位寬為24bit,傳輸協議采用UART,算每8bit有一個開始和截止位,傳輸速率為(200×24×6)/8×10=36kHz,經權衡本次傳輸波特率采用115.2kHz。
2.1.2 傳感器寄存器設置
根據數據手冊和設備實際使用條件,FPGA配置部分進行如下初始化:
(1)復位傳感器;
(2)設置數據傳輸格式為二級制格式(另一種為ASCII模式,該模式比較占用傳輸帶寬,并且數據分析時還需要對數據進行裝換,因此舍棄該格式);
(3)設置均值濾波參數;
(4)設置采樣率;
(5)直流偏置消除指令;
(6)打開數據上傳狀態。
2.1.3 數據讀取與解析
(1)六軸傳感器一組數據有19個Byte,數據傳輸方式為打開數據上傳狀態后,設備會按照設定的采樣率對數據進行主動上傳,一組數據的傳輸格式為:
error byte、Fx、Fy、Fz、Tx、Ty、Tz分 別 為 錯誤告警、xyz軸壓力值,xyz軸力矩值。
(2)錯誤告警
(3)每一組數據將被放入緩沖FIFO等待上位機數據交互接口使用。
2.2.1 傳感器寄存器設置
待測傳感器的寄存器配置已由傳感器應用設備定義,其傳輸通過IIC協議進行,IIC時鐘速率為100kHz,主要相關設置參數為:
(1)RES=2;GAIN_SEL=0;TCMP_EN=0x0,該設置影響數據解算和單位換算;
(2)SB=0,該設置影響數據傳輸方式。
2.2.2 數據讀取和分析
(1)待測壓力傳感器一組數據有8個Byte,數據傳輸方式為定時對指定地址進行訪問,以獲得實時更新的三軸待測傳感器數據,一組數據的格式為:
T、Fx、Fy、Fz、分別為溫度值、xyz軸壓力值
(2)每一組數據將被放入緩沖FIFO等待上位機數據交互接口使用。
2.3.1 數據打包與組幀上傳
數據打包融合主要分為兩部分。(1)數據同步:待測傳感器數據和六軸傳感器數據通過FIFO接入數據打包融合模塊,模塊將實時檢測數據,若數據量出現不均衡,則會對緩存進行重置,以確保兩傳感器數據的同步性,該重置一般僅在初始化時會被觸發;(2)數據組幀:當傳感器數據保存達到一定數量時,數據將被進行打包組幀,通過AXI4總線傳輸至ARM核內部,ARM核再使用千兆網傳輸至上位機。
2.3.2 上位機指令交互
FPGA與上位機指令交互通過ARM端GP接口進行,GP接口如同ARM的一個普通的IO,可以實現低速的數據交互。主要交互的指令有待測傳感器通道號選擇、設備狀態上傳、版本號查詢等。
硬件環境如圖3所示,圖中展示了測試的標定臺,臺面安裝著待測傳感器,待測傳感器上方的音圈電機動軸通過六軸傳感器上安裝的觸頭按壓至待測傳感器。
音圈電機上方兩根線分別為電源線和控制線,控制線連向音圈電機配套的控制器;六軸傳感器引出的總線輸出的是模擬量,連接至六軸傳感器專用的控制器,控制器將模擬量轉換成力/力矩值通過串口傳輸至數據采集模塊;待測傳感器左側排線為IIC總線,接線連接至數據采集模塊的一號接口處;數據采集模塊將待測傳感器和六軸傳感器數據同步打包后通過網口上傳至分析終端。
3.2.1 測試方案說明
單次按壓流程:分離5s——按壓設定力5s——分離5s,按壓效果如圖4所示,實線為高精度六軸力/力矩傳感器、虛線為待測壓力傳感器數據(為作比較數據經過縱軸等比例縮放),可以看到兩個數據同步性較高。單次按壓數據在觀察后可以發現實際曲線與設定有所差異,曲線存在一個PID控制過程,當按壓力達到預定值后將會保持5s,以確保測試完整進行。
多次按壓值設定如下,在單次按壓的基礎上,初始按壓值為1N,每次按壓以0.2N步進線性增長,直到按壓力達到8N,再由8N以0.2N步進線性遞減,直到按壓力達到1N,測試效果如圖5所示。
3.2.2 數據分析說明
六軸傳感器法向壓力分辨率為1/2736(N/LSB),磁場強度分辨率為4.84(μt/LSB),測試中MLX90393檢測到測磁場強度范圍一般在0~117mt范圍內。
標定裝置采樣率為200Hz,并且音圈電機在按壓到每一個設定按壓值時,按壓會穩定保持5s,因此每次按壓理論上每個傳感器將會有1000個有效采樣點,通過六軸壓力傳感器和待測傳感器數據即可對待測傳感器進行標定分析。
本文設計的壓力傳感器標定裝置具有高靈敏度、高響應性、高同步、高自動化的特點,對大量傳感器的標定作業提供了一個高效和穩定的平臺。在實際使用中,其標定測試簡化了許多安裝、調整的步驟,統一了測試接口,同步采集數據,節約了許多人工成本并且為后續分析提供了可靠且精確的數據。