王增喜
(1.清研華翊(天津)教育科技有限公司,天津300304;2.清華大學 天津高端裝備研究院,天津300304)
雙足機器人是機器人技術的制高點,具有非常典型的學科綜合和交叉性強等特點,幾乎涵蓋了工科大部分專業內容,是非常好的創新實踐教學載體。 基于STM32的6 自由度雙足機器人,STM32 單片機是整個控制系統的核心,負責協調和監控整個控制系統的運行;通信單元主要負責人機交互時的數據傳遞;存儲單元主要用來存儲脫機運行時的位置信息;電源單元負責給控制系統和舵機提供電源;采用插補法實現了舵機的調速控制,解決了多路舵機的聯動控制問題[1-3]。
整個機器人的控制系統如圖1 所示,主要由主控單元、通信單元、存儲單元、電源單元、舵機單元、無線單元和傳感單元等組成。

圖1 機器人控制系統Fig.1 Robot control system
電源單元主要通過鋰電池,電壓進行轉換后為其他單元供電;舵機單元是控制器通過總線TTL 給舵機發送控制命令,控制舵機轉動;通信單元是控制器與上位機進行通信;傳感器單元包括超聲波傳感器、紅外遙控傳感器、LED、蜂鳴器;存儲單元是控制器將上位機發送數據進行存儲。
采用總線舵機控制方案,具有在線調試、下載程序模塊、離線程序執行功能特點。 為滿足機器人運動控制要求,機器人采用分布式控制系統,分為運動控制層和決策層兩層控制,運動控制層管理機器人的各種運動,功能包括數據存儲,在線姿態調整,舵機控制。 決策層處理傳感器信息,做出智能決策,生成運動指令,兩層控制互相通信,并且共享信息[4-5]。
控制系統程序框架如圖2 所示。

圖2 控制系統程序框架圖Fig.2 Control system program frame diagram
在線調試模塊包括通信模塊、驅動模塊、傳感器模塊和數據管理模塊。 功能主要是用于調試和制作機器人步態動作;操作者在計算機使用圖形化界面編程,通過專用數據線進行在線調試。

圖3 在線調試模塊Fig.3 Online debugging module
下載程序模塊包括通信模塊、存儲模塊。 將控制器與計算機用數據線連接,使用圖形化界面下載已調試好的程序,下載程序即步態數據以非易失的形式儲存。
離線程序模塊包括存儲模塊、舵機模塊、傳感器模塊。 機器人調試完畢后,控制器與計算機斷開;控制器執行存儲與控制器的步態數據及命令,以此使機器人做出不同動作。

圖4 下載程序模塊Fig.4 Download program module

圖5 離線調試模塊Fig.5 Off-line debug module
控制系統采用主循環處理+中斷事件的程序結構的協作式的多任務系統,其結構如圖6 所示。

圖6 控制系統多任務處理Fig.6 Multitask processing of control system
所有的任務均在主循環內得到運行,某個任務得以運行的條件是由該任務對應的事件發生,例如接收到串口數據,則中斷子程序會給對應的串口數據包處理任務打標記,時間中斷檢測在一個運行周期內是否有新事件產生,如果有則在消息隊列中加入一條對應的消息,主循環不斷地檢測消息隊列內是否有消息,如果有則立即執行該消息對應的處理函數。 這樣可以最大限度地利用CPU 時間,以期在未來加入在線步態規劃時有充足的CPU資源[6-8]。
上位機基于LabVIEW 開發, 主要是造型簡介主界面、步態規劃界面和編程界面,如圖7、圖8 所示。主界面包括雙足機器人舵機關節ID、零件清單;步態界面有新建、導入、在線調試步態等功能;編程界面主要是可以調用設計的不同步態。

圖7 上位機主界面Fig.7 Host computer interface

圖8 上位機步態界面Fig.8 Gait interface of upper computer
雙足步行的復雜性使仿人機器人研究存在較大難度,其動作是高維非線性耦合的,雙足機器人在很長一段時間內由單腿支撐,同時存在開環機構和閉環機構的交替轉變。 因此,目前的機器人系統仍遠沒有達到自然生物界的運動靈活性,仍然有眾多問題亟待解決。
步行運動規劃研究始終是仿人機器人技術研究的核心問題,目前已取得諸多研究成果。從考慮環境約束的角度主要分為無環境約束的步行運動規劃和考慮全局環境的運動規劃兩個方向,前者即常見的步態規劃,后者則以足跡規劃最具代表性。首先在全局地圖、初始條件和目標狀態已知的情況下,構造自起始點至終止點的足跡序列,進而由步態規劃方法生成關節軌跡,逐個實現足跡序列的單元,最終由控制器和關節驅動器跟隨該軌跡,完成步行運動任務。
該步行運動規劃的本質是通過足跡序列建立了機器人關節運動和環境約束的聯系,將問題一分為二,以足跡規劃解決環境障礙物的躲避問題,以步態規劃達到了滿足動力學約束的關節軌跡生成目標,為仿人機器人的步行運動規劃建立了通用的流程。
4.2.1 插補法調速過程
舵機本身是不能進行速度控制的,我們必須要通過軟件實現,想要實現速度控制,必須要給定舵機的初始位置和終點位置,然后給定從初始位置到終點位置的時間,把時間和角度分別細化,并一一對應。 這樣就可以從宏觀上對舵機實現速度控制。時間細分的越密集,舵機的轉動也越流暢,但是受舵機自身條件的限制,不可能無限的細分下去。 插補法具體實現過程如下,采用定時器中斷來實現時間的細化,一個周期為T 的時間里,定時器中斷N次,這樣時間的細化單位如式(1)所示:

從初始位置到目標位置時間為Ten,這樣細化次數n 如式(2)所示:

初始位置的角度為ω0, 終點位置的角度為ωn,從初始位置到終點位置的角度差dp如式(3)所示:

最終得出角度的細化單位,如式(4)所示:

由此可見,時間每增加一個dt,角度也對應增加dp0,令m 為差補次數變量,當m=n 時,舵機到達目標位置。
4.2.2 插補法調速過程
為了實現舵機的速度控制,本控制系統采用插補法實現,差補法速度調節流程如圖9 所示。
本文設計了基于嵌入式的雙足機器人控制系統,系統的硬件和軟件均采用模塊化的設計方法,有利于系統后期的功能拓展和硬件維護;并對驗證一個關節舵機的位置控制和速度控制的效果是否達到控制系統的整體要求。 設計了一款基于STM32的類人機器人控制器,該控制器主要解決了多路關節舵機的聯動控制和速度控制問題,使控制系統可以實現對多個關節的聯動控制,保證了系統具有較好的實時性能。 同時,為了使此類人操作系統具有人機交互功能,采用LabVIEW 編寫上位機控制軟件及人機交互界面,通過人機交互可以實現機器人的“示教-再現”功能。 雙足機器人涉及到仿生學、運動學、動力學級自動控制理論的綜合運用。 測試結果表明上位機步態設計合理,舵機控制平滑,實現雙足機器人平穩控制。

圖9 差補法速度調節流程Fig.9 Speed adjustment flow chart of difference compensation method