程 石,崔思柱,劉豐豪,肖 倩
(長安大學工程機械學院,陜西 西安710064)
四足機器人理論上良好的環境適應性、較強的承載能力、運動靈活性以及其易于優良的可控性和易加工性使得四足步行機器人在未來必然有著廣闊的應用前景。張婷婷等搭建了基于ARM和CPLD的四足機器人嵌入式控制平臺,展現了一種新的機器人控制系統架構[1]。蘇曉東等搭建了基于ARM、FPGA和DSP的集分層式控制系統和分布式控制系統于一體的復合式控制系統[2]。殷勇華等搭建了基于FPGA的四足機器人分布式控制系統,具有實時數據通信能力、能夠進行有效路徑規劃和實時精確控制關節運動[3]。本文針對實時性差與運行效率不高的缺陷,提出了一種高度并行的復合式控制系統結構。
本研究所設計的四足運輸機器人由機身、腿、足三部分組成,共計4條腿,左右對稱分布,每條腿3個關節,關節1、2固定在機身底部,關節3位于關節2的正下方,關節1實現機器人的側擺,關節2和3負責驅動機器人的前進,每個關節1個直流無刷電機、伺服驅動器、16位絕對式編碼器、霍爾傳感器,整體12個關節,需要12個直流無刷電機才能實現機器人的運動,且電機的控制精度最低要求為0.008°,要求其具有一定的承載能力,能夠在地面上穩定行走,同時對周圍環境有一定的適應性,故對控制系統的體積和重量要求更高,同時要對機器人的姿態和電機的運動位置與狀態進行實時采集并做出調控,并實施感知地面對足端的沖擊力然后加以控制,響應速度不超過5ms.
本控制系統硬件結構包括上位機(PC),內嵌NI Linux Real-Time操作系統的sbRIO-9627片上系統(SoC)、分布式的執行器和傳感器這三大部分。上位機上主要顯示經傳感器采集回來的關節位置值和電流值,以及監控電機狀態;以包括雙核667 MHz的ARM Cortex-A9處理器和Xilinx Zynq-7000的最高時鐘頻率為40 MHz的FPGA[4]芯片的sbRIO[5]-9627片上系統作為控制核心,ARM主要負責運動控制算法的運行,對經FPGA采集到的傳感器信息進行融合,計算出執行器所需的控制指令完成運動規劃,利用FPGA實現對傳感器數據采集和對執行器PWM控制信號發送的并行化;分布式的執行器和傳感器由12個伺服驅動器、直流無刷電機、絕對式編碼器、霍爾傳感器,4個三維力傳感器,1個姿態傳感器組成,構成機器人本體的動力驅動系統與采集系統,每條腿足端1個三維力傳感器用于采集足端落地時與地面的接觸力,絕對式編碼器用于記錄關節位置信息,姿態傳感器為機身控制提供俯仰角、偏轉角以及航向角的相關信息。
本控制系統軟件框架如圖1所示,采用的編程軟件平臺為Labview,軟件系統主要分為PC、多核處理器、FPGA等三層。PC層用于顯示電機狀態和接收的傳感器數據;多核處理器的CPU0運行控制算法得出控制指令并經RT FIFO傳給CPU1,同時CPU1接收FPGA采集的傳感器數據和向FPGA發送控制指令,將采集到的數據經RT FIFO傳到CPU0;FPGA層主要負責數據采集和根據CPU1發送的指令信息產生相應占空比的PWM信號給伺服驅動器,實現對直流無刷電機的實時控制。通過該改變PWM波的占空比(0~100%)來改變電機的位置在±Max(最大位置設定值)之間變化,指令更新周期為2 ms,PWM信號的周期為1ms.

圖1 系統軟件框圖
為了測試本控制系統的性能,在搭建好的硬件平臺上進行了單腿控制實驗,其中上位機軟件中顯示的控制大小腿關節脈沖數分別如圖2所示,其理論值分別如圖3所示。由圖2與圖3得出,向大小腿電機實時發送的控制指令數據與理論值沒有差異,說明本系統的控制架構是合理可行的。整個運動過程中電機的控制精度約為0.005 5°,滿足系統運動控制要求。

圖2 腿部脈沖個數控制指令值

圖3 腿部脈沖個數理論值
本文以NI sbRIO-9627為核心設計了一種集分層式控制系統結構與分布式控制系統結構特點與一體的復合式控制系統結構,搭建了一套相應的控制系統硬件平臺。該控制系統充分利用了多核處理器的高速運算處理能力和FPGA豐富的外設資源以及并行能力。通過相應的測試實驗驗證了該平臺工作穩定,對機器人各關節控制準確,能完成四足機器人實時控制的要求。該四足機器人控制系統在實時計算能力、存儲容量、集成度、實時性、可擴展性和小型化上具有良好的優勢。