張 奔,卞新高,朱燈林
(1.三江學院機械工程學院,江蘇南京210012;2.河海大學機電工程學院,江蘇常州213022)
作為機器人的核心部分,控制系統是四足行走機器人正常工作的重要保證,只有通過控制系統的運行才能使得機器本體按照一定的規律運動,從而實現機器人的行走功能。
現有的機器人控制系統結構有:集中式、分布式、分層遞階式3 種[1]。傳統的機器人控制系統多采用集中式控制系統,其結構限制了機器人系統的擴展和靈活性。而分布式結構將機器人控制系統分為多個子系統,每個子系統采用一個獨立的CPU 來控制,彼此間通過總線交換信息。控制系統模塊化,具有擴展性好、實時性較高、可靠性較高等優點;其缺點是控制系統結構較復雜、協調有一定的難度[2]。
本研究所設計的JQRI00 四足行走機器人目標是一個具有一定的負載能力和復雜環境行走的機器人。該機器人執行機構包括機架、腿、關節以及足四部分組成。機架主要負責承載電機、液壓系統、電控柜、作業裝置等;單腿采用三自由度結構,為胯部、上臂、下臂(包括足)3 部分,機架與胯部、胯部與上臂、上臂與下臂分別采用3 個轉動副連接,使足底能夠達到一定范圍空間內的任意位置;各關節的運動采用液壓油缸驅動,每個油缸與另外兩個運動臂構成穩定的三角形結構以適應重載運行;每個油缸的運動由電控伺服閥和油缸內同軸安裝的位移傳感器構成閉環位移和速度控制;足底安裝接觸力傳感器用于腿與地面的接觸狀態識別[3]。
根據上述功能歸類,本研究設計了JQRI00 四足機器人控制系統的總體方案,控制系統結構如圖1所示。

圖1 控制系統結構
該控制系統由監控、主控制器和子控制器3 個功能模塊組成。其中:監控模塊對JQRI00 機器人行走過程中的實時狀態進行監控;主控制模塊對JQRI00 機器人進行路徑、步態和位姿規劃,并把規劃的足底坐標轉換成各個關節的控制量;子控制模塊對機器人各個關節的伺服閥進行控制,驅動關節運動,包括4 個子控制器,每個子控制器獨立控制一條腿[4-5]。
3 個功能模塊之間相對獨立,完成各自的任務并相互之間進行數據通信。監控模塊、主控制器和子控制器使用不同的CPU。目前常用的控制器有PC、DSP、ARM、單片機等。由于行走機器人控制系統要求精度高、實時性強、靈活性高。本研究對主、從兩級控制器同時采用基于ARM9 內核AT91SAM9260 微控制器的關節伺服控制器;而監控機主要做數據監控,要求較好的人機交互性,本研究選用一般的PC 實現。各控制器之間通過CAN 總線網絡交換數據,其中主控制器將規劃好的行走路線、步態位姿信息細分解到各子控制器,控制層通過標準RS232 總線與監控PC 機進行數據交換。
監控模塊是人機交互的平臺,它一方面負責下達操作者的命令給主控制器模塊,另一方面接收主控制器模塊返回的監控數據。根據監控機的功能要求,監控機模塊功能主要包括兩部分:界面設計以及數據收發。本研究選用VC+ +來設計監控程序。
機器人監控程序的設計要根據機器人的運動特征來確定,四足機器人實體模型的運動大體可以分為調試階段、標定階段、正常運動階段、復位階段。根據這四個階段把四足機器人的監控界面分為3 個不同的監控界面:標定界面、運行界面、復位界面。3 個工作監控界面由主界面進入,監控程序主界面如圖2所示。在標定界面,完成四足機器人的前期調試、四足機器人油缸標定以及四足機器人初始位置的零點標定;在運行界面,考慮可以選擇不同的運動狀態,監控在各種不同的運動狀態下,機器人中各種傳感器采樣的值以及主控制器做的規劃值;復位界面用于監控在機器人恢復到原有狀態過程中參數。

圖2 監控程序主界面
同時監控機還需要同主控制器通過RS232 接口的無線模塊進行通信。該實驗通信過程中,監控機把命令通過25 個字節發給主控制器,主控制器收到這25 個字節以后決定機器人的工作方式;另外在主控制器工作過程中,主控制器收集所有機器人工作的狀態參數,最終用145 個字節返回給監控機,監控機再把這145 個字節做相應的處理并顯示在監控界面上。這里選用MSComm 控件編程,它是Microsoft 公司提供的簡化Windows 下串行通信編程的ActiveX 控件,在串口編程時非常方便,不用去了解較為復雜的API 函數,能高效地完成串口通信程序的設計。流程圖如圖3所示。
主控制器是JQRI00 四足行走機器人中的重要控制部分,它主要完成以下功能:
(1)實現機器人路徑、步態和位姿規劃算法;

圖3 監控模塊串口通信程序流程圖
(2)與子控制器實時通信,把計算的運動值實時傳送給子控制器,從而實現執行機構的運動;
(3)接收子控制器返回的采樣值,用于實時的軌跡計算和監控;
(4)接收傾角傳感器發送的空間3 個角度的值;
(5)與監控機實時通信,發送所有計算、測量的數值給監控機,并接收監控機發送的控制命令。
子控制器主要用作接收主控制器命令數據,伺服驅動各關節動作,獲取機器人運行過程中液壓缸位移量、運動方向、通信故障等信息并反饋至主控制器進行處理分析,其功能如下[6]:
(1)油缸驅動DAC 模塊用于驅動伺服閥閥芯正向或反向運動,將電信號轉換為液壓缸伸長或縮短方向的物理位移。
(2)數據采集四足機器人運行過程中,需實時采集各模擬量進行處理分析并對下一微步步態位移、速度參數做出相應調整。本研究中主要有液壓缸運動位移量、足端著地點壓力等參數。
(3)故障識別運行過程中對各油缸移動的實際位置和足端壓力進行判斷,確定是否有位置超限和過負荷等故障。
根據以上功能需求分析和硬件電路設計原則,本研究選擇了ATMEL 公司基于ARM926EJ-S 內核的工業級32 位ARM9 芯片AT91SAM9260 微控制器,并對外圍各個模塊電路進行了設計,包括USB 接口、RJ45網口、ISA 接口、UART 接口、CAN 接口、SPI 接口等組成。
由于控制器EM9260 工控模塊內嵌Windows CE實時操作系統,它是基于時間片輪轉調度的多線程并行工作,為線程設置較高的優先級,將提高控制系統響應實時性。故本研究采用EVC 對系統進行軟件開發。Embedded Visual C + +(簡稱EVC)可用C/C + +語言為Windows CE 開發應用程序。利用EVC 對Windows CE 進行開發類似與平時在PC 上利用VC + +對Windows XP 等操作系統進行應用程序開發[7]。
主控制器要完成步態規劃和計算、數據通信等任務,其程序流程簡圖如圖4所示。子控制器接收主控制器發送的實時任務,協調控制12 個伺服閥,其程序流程簡圖如圖5所示。

圖4 主控制器程序流程圖
四足行走機器人是一個復雜的多控制器控制系統,如前文所提到的:JQRI00 機器人分為監控、主控、子控3 個功能模塊。而各個功能模塊之間要通過一定的通信方式連接,以實現數據之間的交換。
整個控制系統的通信分為兩部分:監控機和主控制器之間主要完成監控數據的交換和控制指令的下達。它們之間的通信屬于點對點通信,并且考慮到在工作過程中監控機應該具有一定的靈活性,選用微功率無線數傳模塊,該模塊選用RS232 串口,其中一個無線模塊與主控制器的串口連接,另一個與監控機PC的串口連接。
主控制器和4 個子控制器之間要求通信速度快、可靠性強,這里選用CAN 總線作為其通信方式。主控制器在每一個循環周期內主動向4 個子控制器發送運動指令和數據,子控制器在收到主控制器發送的數據以后按照主控制器的命令驅動液壓閥工作;同時采集位移傳感器和力傳感器的值返回主控制器。這里采用Peli-CAN 工作模式下的Standard Frame 格式,速率為125 kbps。CAN 總線上通信幀的格式為:一幀包括11個字節,其中前3 個字節為幀地址,后面8 個字節為幀內容。通信過程中信息幀以多主方式發送,多播方式接收。總線空閑時,任何節點均可收發信息。CAN 通信的地址如表1、表2所示。主控制器向子控制器發送數據的幀地址如表1所示,其中第2 個字節表示主控制器與哪個子控制器通信,而第3 個字節表示是第幾幀數據。由表2 可見,主控制器收到子控制器返回的數據幀地址,第2 個字節表示主控制器與哪個子控制器通信,而第3 個字節表示是第幾幀數據[8]。

表1 CAN 通信地址(主控器發送)

表2 CAN 通信地址(子控器發送)
JQRI00 四足行走機器人調試平臺主要包括兩臺調試PC。其中一臺調試機用于運行監控機軟件;另外一臺利用無線路由和5 個控制器連接,在EVC 調試狀態下運行主控制器和子控制器的程序。另外,利用串口調試助手以及CAN 調試助手輔助監視串口通信和CAN 總線通信時的數據。
為了檢測實際運行中的通信效果,本研究對各臺控制器間的相互通信進行了試驗。試驗內容:主控制器順序向四臺子控制器發送3 幀數據,并依次接收各子控制器返回的2 幀數據幀。通信測試中一個主要部分是檢測各臺子控制器是否僅接收CAN 總線上屬于自己的信息幀,屏蔽其他消息,并能正確返回數據。實驗波特率設置為250 Kbit/s,標準數據幀傳輸,經過試驗,各臺控制器之間數據傳輸正常,主控制器依次向每臺子控制器發送3 幀數據后,都會接收到子控制器返回的2 幀數據信息,經過試驗知所編寫CAN 通信程序可以實現各臺控制器間的數據傳輸任務。
對機器人的運動控制就是對油缸的運動速度進行控制。要想利用伺服閥驅動油缸速度,必須把油缸的運動速度值轉換成對應的DA 值[9-11]。油缸的運動速度由油缸內的液壓油流量所決定,要想保證一定的油缸運動速度即要計算液壓油流量。雙向油缸的運動包括兩種狀態:正向伸長和逆向縮短。JQRI00 機器人所使用的液壓缸其內徑為40,液壓活塞直徑28,由于正向伸長時液壓油在整個內徑中推動液壓缸伸長,而逆向縮短時液壓油在缸內徑和活塞桿直接推動液壓缸縮短,故液壓缸正向伸長伺服閥最大流量時,最大運動速度為(最大流量為20 L/min):

而逆向縮短伺服閥最大流量時,最大運動速度為:

相應的液壓缸正向伸長時DA 值的計算為:

液壓缸逆向縮短時DA 值的計算為:

本研究把DA+和DA-的計算公式放入主控制器的程序中,主控制器直接把相應的DA 值發送給子控制器,子控制器在直接按照該DA 值驅動伺服閥達到液壓缸按一定的速度運動的效果。但在后期的實驗過程中發現,如果按照這個實際計算的DA 值發送,油缸運動的速度和實際要求并不符合。考慮給DA 的計算公式增加一個參數,讓實際速度逼近規劃的速度。通過實驗,得到DA 的計算公式如下:
液壓缸正向伸長時DA 值的計算為:

液壓缸逆向縮短時DA 值的計算為:

主控制器程序使用以上的公式計算,所得到的運動速度基本符合要求。主控制器收到子控制器發送上來的位移及力都是AD 采樣值(12 位),監控界面所有顯示的是從AD 值轉變成的實際數值。對于JQRI00機器人的4 條腿12 個油缸來說,由于P、L 缸的最大行程為175 mm,而Q 缸的最大行程為130 mm,故應分開計算:對于P 和L 缸來說:其AD 值、電壓值和行程的對應關系可求出理論上實際行程P、L 的運動值為:

相應的調整行程最大值為150 mm,Q 的運動值為:


實驗過程中,本研究對AD 采樣的值做分析,發現實際運動和采樣的值有誤差,考慮其傳感器分辨率有限,對實際長度值做插補。
本研究針對JQRI00 機器人控制系統進行了設計分析,提出了一種基于PC 和ARM 的四足機器人分布式控制系統設計方法,后期通過在四足機器人原理樣機上進行的大量模擬試驗表明,本研究論述的機器人分布式控制系統設計方法正確、有效,能夠滿足四足機器人實時控制的要求。
通過實驗,JQRI00 機器人在平地簡單環境直行、轉彎步態規劃的基礎上,已近可以進行簡單自主行進,但并未對機器人在臺階、斜坡等復雜地形下行走時的復雜步態進行研究。
[1]陳德明.四足仿生機器人運動控制系統的設計與實現[D].西安:西北工業大學機電學院,2007.
[2]樊昌信,曹麗娜.通信原理[M].北京:國防工業出版社,
2006.
[3]張 奔,卞新高,朱燈林.用于抗洪打樁的四足機器人結構設計[J].機電工程,2012,29(11):1259-1263.
[4]陳學東,孫 翔,賈文川.多足步行機器人運動規劃與控制[M].武漢:華中科技大學出版社,2006.
[5]張 奔.四足機器人結構設計與運動控制算法研究[D].常州:河海大學機電工程學院,2010.
[6]侯憲倫,李向東,徐 方,等.基于CAN 總線的移動機器人控制系統設計[J].山東科學,2008(1):64-68.
[7]何宗鍵.Windows CE 嵌入式系統[M].北京:北京航空航天大學出版社,2006.
[8]王紅路.四足機器人運動控制系統設計[D].常州:河海大學機電工程學院,2010.
[9]許 勇,孫峰磊.基于扭轉振動的多步態移動裝置的運動學建模[J].輕工機械,2015,33(1):31-36.
[10]龔勤慧.基于VB 的多關節搬運機器人的設計[J].機械,2013(1):22-24.
[11]殷勇華,卞新高,陸衛麗.液壓驅動四足機器人步態規劃和運動控制[J].機電工程,2014,31(7):839-843.