張 奔,卞新高,朱燈林
(1.三江學(xué)院機械工程學(xué)院,江蘇南京210012;2.河海大學(xué)機電工程學(xué)院,江蘇常州213022)
作為機器人的核心部分,控制系統(tǒng)是四足行走機器人正常工作的重要保證,只有通過控制系統(tǒng)的運行才能使得機器本體按照一定的規(guī)律運動,從而實現(xiàn)機器人的行走功能。
現(xiàn)有的機器人控制系統(tǒng)結(jié)構(gòu)有:集中式、分布式、分層遞階式3 種[1]。傳統(tǒng)的機器人控制系統(tǒng)多采用集中式控制系統(tǒng),其結(jié)構(gòu)限制了機器人系統(tǒng)的擴展和靈活性。而分布式結(jié)構(gòu)將機器人控制系統(tǒng)分為多個子系統(tǒng),每個子系統(tǒng)采用一個獨立的CPU 來控制,彼此間通過總線交換信息。控制系統(tǒng)模塊化,具有擴展性好、實時性較高、可靠性較高等優(yōu)點;其缺點是控制系統(tǒng)結(jié)構(gòu)較復(fù)雜、協(xié)調(diào)有一定的難度[2]。
本研究所設(shè)計的JQRI00 四足行走機器人目標(biāo)是一個具有一定的負(fù)載能力和復(fù)雜環(huán)境行走的機器人。該機器人執(zhí)行機構(gòu)包括機架、腿、關(guān)節(jié)以及足四部分組成。機架主要負(fù)責(zé)承載電機、液壓系統(tǒng)、電控柜、作業(yè)裝置等;單腿采用三自由度結(jié)構(gòu),為胯部、上臂、下臂(包括足)3 部分,機架與胯部、胯部與上臂、上臂與下臂分別采用3 個轉(zhuǎn)動副連接,使足底能夠達(dá)到一定范圍空間內(nèi)的任意位置;各關(guān)節(jié)的運動采用液壓油缸驅(qū)動,每個油缸與另外兩個運動臂構(gòu)成穩(wěn)定的三角形結(jié)構(gòu)以適應(yīng)重載運行;每個油缸的運動由電控伺服閥和油缸內(nèi)同軸安裝的位移傳感器構(gòu)成閉環(huán)位移和速度控制;足底安裝接觸力傳感器用于腿與地面的接觸狀態(tài)識別[3]。
根據(jù)上述功能歸類,本研究設(shè)計了JQRI00 四足機器人控制系統(tǒng)的總體方案,控制系統(tǒng)結(jié)構(gòu)如圖1所示。
圖1 控制系統(tǒng)結(jié)構(gòu)
該控制系統(tǒng)由監(jiān)控、主控制器和子控制器3 個功能模塊組成。其中:監(jiān)控模塊對JQRI00 機器人行走過程中的實時狀態(tài)進(jìn)行監(jiān)控;主控制模塊對JQRI00 機器人進(jìn)行路徑、步態(tài)和位姿規(guī)劃,并把規(guī)劃的足底坐標(biāo)轉(zhuǎn)換成各個關(guān)節(jié)的控制量;子控制模塊對機器人各個關(guān)節(jié)的伺服閥進(jìn)行控制,驅(qū)動關(guān)節(jié)運動,包括4 個子控制器,每個子控制器獨立控制一條腿[4-5]。
3 個功能模塊之間相對獨立,完成各自的任務(wù)并相互之間進(jìn)行數(shù)據(jù)通信。監(jiān)控模塊、主控制器和子控制器使用不同的CPU。目前常用的控制器有PC、DSP、ARM、單片機等。由于行走機器人控制系統(tǒng)要求精度高、實時性強、靈活性高。本研究對主、從兩級控制器同時采用基于ARM9 內(nèi)核AT91SAM9260 微控制器的關(guān)節(jié)伺服控制器;而監(jiān)控機主要做數(shù)據(jù)監(jiān)控,要求較好的人機交互性,本研究選用一般的PC 實現(xiàn)。各控制器之間通過CAN 總線網(wǎng)絡(luò)交換數(shù)據(jù),其中主控制器將規(guī)劃好的行走路線、步態(tài)位姿信息細(xì)分解到各子控制器,控制層通過標(biāo)準(zhǔn)RS232 總線與監(jiān)控PC 機進(jìn)行數(shù)據(jù)交換。
監(jiān)控模塊是人機交互的平臺,它一方面負(fù)責(zé)下達(dá)操作者的命令給主控制器模塊,另一方面接收主控制器模塊返回的監(jiān)控數(shù)據(jù)。根據(jù)監(jiān)控機的功能要求,監(jiān)控機模塊功能主要包括兩部分:界面設(shè)計以及數(shù)據(jù)收發(fā)。本研究選用VC+ +來設(shè)計監(jiān)控程序。
機器人監(jiān)控程序的設(shè)計要根據(jù)機器人的運動特征來確定,四足機器人實體模型的運動大體可以分為調(diào)試階段、標(biāo)定階段、正常運動階段、復(fù)位階段。根據(jù)這四個階段把四足機器人的監(jiān)控界面分為3 個不同的監(jiān)控界面:標(biāo)定界面、運行界面、復(fù)位界面。3 個工作監(jiān)控界面由主界面進(jìn)入,監(jiān)控程序主界面如圖2所示。在標(biāo)定界面,完成四足機器人的前期調(diào)試、四足機器人油缸標(biāo)定以及四足機器人初始位置的零點標(biāo)定;在運行界面,考慮可以選擇不同的運動狀態(tài),監(jiān)控在各種不同的運動狀態(tài)下,機器人中各種傳感器采樣的值以及主控制器做的規(guī)劃值;復(fù)位界面用于監(jiān)控在機器人恢復(fù)到原有狀態(tài)過程中參數(shù)。
圖2 監(jiān)控程序主界面
同時監(jiān)控機還需要同主控制器通過RS232 接口的無線模塊進(jìn)行通信。該實驗通信過程中,監(jiān)控機把命令通過25 個字節(jié)發(fā)給主控制器,主控制器收到這25 個字節(jié)以后決定機器人的工作方式;另外在主控制器工作過程中,主控制器收集所有機器人工作的狀態(tài)參數(shù),最終用145 個字節(jié)返回給監(jiān)控機,監(jiān)控機再把這145 個字節(jié)做相應(yīng)的處理并顯示在監(jiān)控界面上。這里選用MSComm 控件編程,它是Microsoft 公司提供的簡化Windows 下串行通信編程的ActiveX 控件,在串口編程時非常方便,不用去了解較為復(fù)雜的API 函數(shù),能高效地完成串口通信程序的設(shè)計。流程圖如圖3所示。
主控制器是JQRI00 四足行走機器人中的重要控制部分,它主要完成以下功能:
(1)實現(xiàn)機器人路徑、步態(tài)和位姿規(guī)劃算法;
圖3 監(jiān)控模塊串口通信程序流程圖
(2)與子控制器實時通信,把計算的運動值實時傳送給子控制器,從而實現(xiàn)執(zhí)行機構(gòu)的運動;
(3)接收子控制器返回的采樣值,用于實時的軌跡計算和監(jiān)控;
(4)接收傾角傳感器發(fā)送的空間3 個角度的值;
(5)與監(jiān)控機實時通信,發(fā)送所有計算、測量的數(shù)值給監(jiān)控機,并接收監(jiān)控機發(fā)送的控制命令。
子控制器主要用作接收主控制器命令數(shù)據(jù),伺服驅(qū)動各關(guān)節(jié)動作,獲取機器人運行過程中液壓缸位移量、運動方向、通信故障等信息并反饋至主控制器進(jìn)行處理分析,其功能如下[6]:
(1)油缸驅(qū)動DAC 模塊用于驅(qū)動伺服閥閥芯正向或反向運動,將電信號轉(zhuǎn)換為液壓缸伸長或縮短方向的物理位移。
(2)數(shù)據(jù)采集四足機器人運行過程中,需實時采集各模擬量進(jìn)行處理分析并對下一微步步態(tài)位移、速度參數(shù)做出相應(yīng)調(diào)整。本研究中主要有液壓缸運動位移量、足端著地點壓力等參數(shù)。
(3)故障識別運行過程中對各油缸移動的實際位置和足端壓力進(jìn)行判斷,確定是否有位置超限和過負(fù)荷等故障。
根據(jù)以上功能需求分析和硬件電路設(shè)計原則,本研究選擇了ATMEL 公司基于ARM926EJ-S 內(nèi)核的工業(yè)級32 位ARM9 芯片AT91SAM9260 微控制器,并對外圍各個模塊電路進(jìn)行了設(shè)計,包括USB 接口、RJ45網(wǎng)口、ISA 接口、UART 接口、CAN 接口、SPI 接口等組成。
由于控制器EM9260 工控模塊內(nèi)嵌Windows CE實時操作系統(tǒng),它是基于時間片輪轉(zhuǎn)調(diào)度的多線程并行工作,為線程設(shè)置較高的優(yōu)先級,將提高控制系統(tǒng)響應(yīng)實時性。故本研究采用EVC 對系統(tǒng)進(jìn)行軟件開發(fā)。Embedded Visual C + +(簡稱EVC)可用C/C + +語言為Windows CE 開發(fā)應(yīng)用程序。利用EVC 對Windows CE 進(jìn)行開發(fā)類似與平時在PC 上利用VC + +對Windows XP 等操作系統(tǒng)進(jìn)行應(yīng)用程序開發(fā)[7]。
主控制器要完成步態(tài)規(guī)劃和計算、數(shù)據(jù)通信等任務(wù),其程序流程簡圖如圖4所示。子控制器接收主控制器發(fā)送的實時任務(wù),協(xié)調(diào)控制12 個伺服閥,其程序流程簡圖如圖5所示。
圖4 主控制器程序流程圖
四足行走機器人是一個復(fù)雜的多控制器控制系統(tǒng),如前文所提到的:JQRI00 機器人分為監(jiān)控、主控、子控3 個功能模塊。而各個功能模塊之間要通過一定的通信方式連接,以實現(xiàn)數(shù)據(jù)之間的交換。
整個控制系統(tǒng)的通信分為兩部分:監(jiān)控機和主控制器之間主要完成監(jiān)控數(shù)據(jù)的交換和控制指令的下達(dá)。它們之間的通信屬于點對點通信,并且考慮到在工作過程中監(jiān)控機應(yīng)該具有一定的靈活性,選用微功率無線數(shù)傳模塊,該模塊選用RS232 串口,其中一個無線模塊與主控制器的串口連接,另一個與監(jiān)控機PC的串口連接。
主控制器和4 個子控制器之間要求通信速度快、可靠性強,這里選用CAN 總線作為其通信方式。主控制器在每一個循環(huán)周期內(nèi)主動向4 個子控制器發(fā)送運動指令和數(shù)據(jù),子控制器在收到主控制器發(fā)送的數(shù)據(jù)以后按照主控制器的命令驅(qū)動液壓閥工作;同時采集位移傳感器和力傳感器的值返回主控制器。這里采用Peli-CAN 工作模式下的Standard Frame 格式,速率為125 kbps。CAN 總線上通信幀的格式為:一幀包括11個字節(jié),其中前3 個字節(jié)為幀地址,后面8 個字節(jié)為幀內(nèi)容。通信過程中信息幀以多主方式發(fā)送,多播方式接收??偩€空閑時,任何節(jié)點均可收發(fā)信息。CAN 通信的地址如表1、表2所示。主控制器向子控制器發(fā)送數(shù)據(jù)的幀地址如表1所示,其中第2 個字節(jié)表示主控制器與哪個子控制器通信,而第3 個字節(jié)表示是第幾幀數(shù)據(jù)。由表2 可見,主控制器收到子控制器返回的數(shù)據(jù)幀地址,第2 個字節(jié)表示主控制器與哪個子控制器通信,而第3 個字節(jié)表示是第幾幀數(shù)據(jù)[8]。
表1 CAN 通信地址(主控器發(fā)送)
表2 CAN 通信地址(子控器發(fā)送)
JQRI00 四足行走機器人調(diào)試平臺主要包括兩臺調(diào)試PC。其中一臺調(diào)試機用于運行監(jiān)控機軟件;另外一臺利用無線路由和5 個控制器連接,在EVC 調(diào)試狀態(tài)下運行主控制器和子控制器的程序。另外,利用串口調(diào)試助手以及CAN 調(diào)試助手輔助監(jiān)視串口通信和CAN 總線通信時的數(shù)據(jù)。
為了檢測實際運行中的通信效果,本研究對各臺控制器間的相互通信進(jìn)行了試驗。試驗內(nèi)容:主控制器順序向四臺子控制器發(fā)送3 幀數(shù)據(jù),并依次接收各子控制器返回的2 幀數(shù)據(jù)幀。通信測試中一個主要部分是檢測各臺子控制器是否僅接收CAN 總線上屬于自己的信息幀,屏蔽其他消息,并能正確返回數(shù)據(jù)。實驗波特率設(shè)置為250 Kbit/s,標(biāo)準(zhǔn)數(shù)據(jù)幀傳輸,經(jīng)過試驗,各臺控制器之間數(shù)據(jù)傳輸正常,主控制器依次向每臺子控制器發(fā)送3 幀數(shù)據(jù)后,都會接收到子控制器返回的2 幀數(shù)據(jù)信息,經(jīng)過試驗知所編寫CAN 通信程序可以實現(xiàn)各臺控制器間的數(shù)據(jù)傳輸任務(wù)。
對機器人的運動控制就是對油缸的運動速度進(jìn)行控制。要想利用伺服閥驅(qū)動油缸速度,必須把油缸的運動速度值轉(zhuǎn)換成對應(yīng)的DA 值[9-11]。油缸的運動速度由油缸內(nèi)的液壓油流量所決定,要想保證一定的油缸運動速度即要計算液壓油流量。雙向油缸的運動包括兩種狀態(tài):正向伸長和逆向縮短。JQRI00 機器人所使用的液壓缸其內(nèi)徑為40,液壓活塞直徑28,由于正向伸長時液壓油在整個內(nèi)徑中推動液壓缸伸長,而逆向縮短時液壓油在缸內(nèi)徑和活塞桿直接推動液壓缸縮短,故液壓缸正向伸長伺服閥最大流量時,最大運動速度為(最大流量為20 L/min):
而逆向縮短伺服閥最大流量時,最大運動速度為:
相應(yīng)的液壓缸正向伸長時DA 值的計算為:
液壓缸逆向縮短時DA 值的計算為:
本研究把DA+和DA-的計算公式放入主控制器的程序中,主控制器直接把相應(yīng)的DA 值發(fā)送給子控制器,子控制器在直接按照該DA 值驅(qū)動伺服閥達(dá)到液壓缸按一定的速度運動的效果。但在后期的實驗過程中發(fā)現(xiàn),如果按照這個實際計算的DA 值發(fā)送,油缸運動的速度和實際要求并不符合??紤]給DA 的計算公式增加一個參數(shù),讓實際速度逼近規(guī)劃的速度。通過實驗,得到DA 的計算公式如下:
液壓缸正向伸長時DA 值的計算為:
液壓缸逆向縮短時DA 值的計算為:
主控制器程序使用以上的公式計算,所得到的運動速度基本符合要求。主控制器收到子控制器發(fā)送上來的位移及力都是AD 采樣值(12 位),監(jiān)控界面所有顯示的是從AD 值轉(zhuǎn)變成的實際數(shù)值。對于JQRI00機器人的4 條腿12 個油缸來說,由于P、L 缸的最大行程為175 mm,而Q 缸的最大行程為130 mm,故應(yīng)分開計算:對于P 和L 缸來說:其AD 值、電壓值和行程的對應(yīng)關(guān)系可求出理論上實際行程P、L 的運動值為:
相應(yīng)的調(diào)整行程最大值為150 mm,Q 的運動值為:
實驗過程中,本研究對AD 采樣的值做分析,發(fā)現(xiàn)實際運動和采樣的值有誤差,考慮其傳感器分辨率有限,對實際長度值做插補。
本研究針對JQRI00 機器人控制系統(tǒng)進(jìn)行了設(shè)計分析,提出了一種基于PC 和ARM 的四足機器人分布式控制系統(tǒng)設(shè)計方法,后期通過在四足機器人原理樣機上進(jìn)行的大量模擬試驗表明,本研究論述的機器人分布式控制系統(tǒng)設(shè)計方法正確、有效,能夠滿足四足機器人實時控制的要求。
通過實驗,JQRI00 機器人在平地簡單環(huán)境直行、轉(zhuǎn)彎步態(tài)規(guī)劃的基礎(chǔ)上,已近可以進(jìn)行簡單自主行進(jìn),但并未對機器人在臺階、斜坡等復(fù)雜地形下行走時的復(fù)雜步態(tài)進(jìn)行研究。
[1]陳德明.四足仿生機器人運動控制系統(tǒng)的設(shè)計與實現(xiàn)[D].西安:西北工業(yè)大學(xué)機電學(xué)院,2007.
[2]樊昌信,曹麗娜.通信原理[M].北京:國防工業(yè)出版社,
2006.
[3]張 奔,卞新高,朱燈林.用于抗洪打樁的四足機器人結(jié)構(gòu)設(shè)計[J].機電工程,2012,29(11):1259-1263.
[4]陳學(xué)東,孫 翔,賈文川.多足步行機器人運動規(guī)劃與控制[M].武漢:華中科技大學(xué)出版社,2006.
[5]張 奔.四足機器人結(jié)構(gòu)設(shè)計與運動控制算法研究[D].常州:河海大學(xué)機電工程學(xué)院,2010.
[6]侯憲倫,李向東,徐 方,等.基于CAN 總線的移動機器人控制系統(tǒng)設(shè)計[J].山東科學(xué),2008(1):64-68.
[7]何宗鍵.Windows CE 嵌入式系統(tǒng)[M].北京:北京航空航天大學(xué)出版社,2006.
[8]王紅路.四足機器人運動控制系統(tǒng)設(shè)計[D].常州:河海大學(xué)機電工程學(xué)院,2010.
[9]許 勇,孫峰磊.基于扭轉(zhuǎn)振動的多步態(tài)移動裝置的運動學(xué)建模[J].輕工機械,2015,33(1):31-36.
[10]龔勤慧.基于VB 的多關(guān)節(jié)搬運機器人的設(shè)計[J].機械,2013(1):22-24.
[11]殷勇華,卞新高,陸衛(wèi)麗.液壓驅(qū)動四足機器人步態(tài)規(guī)劃和運動控制[J].機電工程,2014,31(7):839-843.