王增喜
(1.清研華翊(天津)教育科技有限公司,天津300304;2.清華大學(xué) 天津高端裝備研究院,天津300304)
雙足機器人是機器人技術(shù)的制高點,具有非常典型的學(xué)科綜合和交叉性強等特點,幾乎涵蓋了工科大部分專業(yè)內(nèi)容,是非常好的創(chuàng)新實踐教學(xué)載體。 基于STM32的6 自由度雙足機器人,STM32 單片機是整個控制系統(tǒng)的核心,負責(zé)協(xié)調(diào)和監(jiān)控整個控制系統(tǒng)的運行;通信單元主要負責(zé)人機交互時的數(shù)據(jù)傳遞;存儲單元主要用來存儲脫機運行時的位置信息;電源單元負責(zé)給控制系統(tǒng)和舵機提供電源;采用插補法實現(xiàn)了舵機的調(diào)速控制,解決了多路舵機的聯(lián)動控制問題[1-3]。
整個機器人的控制系統(tǒng)如圖1 所示,主要由主控單元、通信單元、存儲單元、電源單元、舵機單元、無線單元和傳感單元等組成。
圖1 機器人控制系統(tǒng)Fig.1 Robot control system
電源單元主要通過鋰電池,電壓進行轉(zhuǎn)換后為其他單元供電;舵機單元是控制器通過總線TTL 給舵機發(fā)送控制命令,控制舵機轉(zhuǎn)動;通信單元是控制器與上位機進行通信;傳感器單元包括超聲波傳感器、紅外遙控傳感器、LED、蜂鳴器;存儲單元是控制器將上位機發(fā)送數(shù)據(jù)進行存儲。
采用總線舵機控制方案,具有在線調(diào)試、下載程序模塊、離線程序執(zhí)行功能特點。 為滿足機器人運動控制要求,機器人采用分布式控制系統(tǒng),分為運動控制層和決策層兩層控制,運動控制層管理機器人的各種運動,功能包括數(shù)據(jù)存儲,在線姿態(tài)調(diào)整,舵機控制。 決策層處理傳感器信息,做出智能決策,生成運動指令,兩層控制互相通信,并且共享信息[4-5]。
控制系統(tǒng)程序框架如圖2 所示。
圖2 控制系統(tǒng)程序框架圖Fig.2 Control system program frame diagram
在線調(diào)試模塊包括通信模塊、驅(qū)動模塊、傳感器模塊和數(shù)據(jù)管理模塊。 功能主要是用于調(diào)試和制作機器人步態(tài)動作;操作者在計算機使用圖形化界面編程,通過專用數(shù)據(jù)線進行在線調(diào)試。
圖3 在線調(diào)試模塊Fig.3 Online debugging module
下載程序模塊包括通信模塊、存儲模塊。 將控制器與計算機用數(shù)據(jù)線連接,使用圖形化界面下載已調(diào)試好的程序,下載程序即步態(tài)數(shù)據(jù)以非易失的形式儲存。
離線程序模塊包括存儲模塊、舵機模塊、傳感器模塊。 機器人調(diào)試完畢后,控制器與計算機斷開;控制器執(zhí)行存儲與控制器的步態(tài)數(shù)據(jù)及命令,以此使機器人做出不同動作。
圖4 下載程序模塊Fig.4 Download program module
圖5 離線調(diào)試模塊Fig.5 Off-line debug module
控制系統(tǒng)采用主循環(huán)處理+中斷事件的程序結(jié)構(gòu)的協(xié)作式的多任務(wù)系統(tǒng),其結(jié)構(gòu)如圖6 所示。
圖6 控制系統(tǒng)多任務(wù)處理Fig.6 Multitask processing of control system
所有的任務(wù)均在主循環(huán)內(nèi)得到運行,某個任務(wù)得以運行的條件是由該任務(wù)對應(yīng)的事件發(fā)生,例如接收到串口數(shù)據(jù),則中斷子程序會給對應(yīng)的串口數(shù)據(jù)包處理任務(wù)打標記,時間中斷檢測在一個運行周期內(nèi)是否有新事件產(chǎn)生,如果有則在消息隊列中加入一條對應(yīng)的消息,主循環(huán)不斷地檢測消息隊列內(nèi)是否有消息,如果有則立即執(zhí)行該消息對應(yīng)的處理函數(shù)。 這樣可以最大限度地利用CPU 時間,以期在未來加入在線步態(tài)規(guī)劃時有充足的CPU資源[6-8]。
上位機基于LabVIEW 開發(fā), 主要是造型簡介主界面、步態(tài)規(guī)劃界面和編程界面,如圖7、圖8 所示。主界面包括雙足機器人舵機關(guān)節(jié)ID、零件清單;步態(tài)界面有新建、導(dǎo)入、在線調(diào)試步態(tài)等功能;編程界面主要是可以調(diào)用設(shè)計的不同步態(tài)。
圖7 上位機主界面Fig.7 Host computer interface
圖8 上位機步態(tài)界面Fig.8 Gait interface of upper computer
雙足步行的復(fù)雜性使仿人機器人研究存在較大難度,其動作是高維非線性耦合的,雙足機器人在很長一段時間內(nèi)由單腿支撐,同時存在開環(huán)機構(gòu)和閉環(huán)機構(gòu)的交替轉(zhuǎn)變。 因此,目前的機器人系統(tǒng)仍遠沒有達到自然生物界的運動靈活性,仍然有眾多問題亟待解決。
步行運動規(guī)劃研究始終是仿人機器人技術(shù)研究的核心問題,目前已取得諸多研究成果。從考慮環(huán)境約束的角度主要分為無環(huán)境約束的步行運動規(guī)劃和考慮全局環(huán)境的運動規(guī)劃兩個方向,前者即常見的步態(tài)規(guī)劃,后者則以足跡規(guī)劃最具代表性。首先在全局地圖、初始條件和目標狀態(tài)已知的情況下,構(gòu)造自起始點至終止點的足跡序列,進而由步態(tài)規(guī)劃方法生成關(guān)節(jié)軌跡,逐個實現(xiàn)足跡序列的單元,最終由控制器和關(guān)節(jié)驅(qū)動器跟隨該軌跡,完成步行運動任務(wù)。
該步行運動規(guī)劃的本質(zhì)是通過足跡序列建立了機器人關(guān)節(jié)運動和環(huán)境約束的聯(lián)系,將問題一分為二,以足跡規(guī)劃解決環(huán)境障礙物的躲避問題,以步態(tài)規(guī)劃達到了滿足動力學(xué)約束的關(guān)節(jié)軌跡生成目標,為仿人機器人的步行運動規(guī)劃建立了通用的流程。
4.2.1 插補法調(diào)速過程
舵機本身是不能進行速度控制的,我們必須要通過軟件實現(xiàn),想要實現(xiàn)速度控制,必須要給定舵機的初始位置和終點位置,然后給定從初始位置到終點位置的時間,把時間和角度分別細化,并一一對應(yīng)。 這樣就可以從宏觀上對舵機實現(xiàn)速度控制。時間細分的越密集,舵機的轉(zhuǎn)動也越流暢,但是受舵機自身條件的限制,不可能無限的細分下去。 插補法具體實現(xiàn)過程如下,采用定時器中斷來實現(xiàn)時間的細化,一個周期為T 的時間里,定時器中斷N次,這樣時間的細化單位如式(1)所示:
從初始位置到目標位置時間為Ten,這樣細化次數(shù)n 如式(2)所示:
初始位置的角度為ω0, 終點位置的角度為ωn,從初始位置到終點位置的角度差dp如式(3)所示:
最終得出角度的細化單位,如式(4)所示:
由此可見,時間每增加一個dt,角度也對應(yīng)增加dp0,令m 為差補次數(shù)變量,當m=n 時,舵機到達目標位置。
4.2.2 插補法調(diào)速過程
為了實現(xiàn)舵機的速度控制,本控制系統(tǒng)采用插補法實現(xiàn),差補法速度調(diào)節(jié)流程如圖9 所示。
本文設(shè)計了基于嵌入式的雙足機器人控制系統(tǒng),系統(tǒng)的硬件和軟件均采用模塊化的設(shè)計方法,有利于系統(tǒng)后期的功能拓展和硬件維護;并對驗證一個關(guān)節(jié)舵機的位置控制和速度控制的效果是否達到控制系統(tǒng)的整體要求。 設(shè)計了一款基于STM32的類人機器人控制器,該控制器主要解決了多路關(guān)節(jié)舵機的聯(lián)動控制和速度控制問題,使控制系統(tǒng)可以實現(xiàn)對多個關(guān)節(jié)的聯(lián)動控制,保證了系統(tǒng)具有較好的實時性能。 同時,為了使此類人操作系統(tǒng)具有人機交互功能,采用LabVIEW 編寫上位機控制軟件及人機交互界面,通過人機交互可以實現(xiàn)機器人的“示教-再現(xiàn)”功能。 雙足機器人涉及到仿生學(xué)、運動學(xué)、動力學(xué)級自動控制理論的綜合運用。 測試結(jié)果表明上位機步態(tài)設(shè)計合理,舵機控制平滑,實現(xiàn)雙足機器人平穩(wěn)控制。
圖9 差補法速度調(diào)節(jié)流程Fig.9 Speed adjustment flow chart of difference compensation method