仿人機器人的分布式控制系統設計
楊斌,蘇創波
上海交通大學自動化系,上海200240)
摘 要:針對仿人機器人系統自由度多,實時性與可靠性要求高的特點,設計了基于
CAN總線的具有windows與RT-Linux系統的雙主機的主控層結構的分布式控制系統,整個控制系統采用集中管理分散控制的方式,按照控制系統的結構和功能劃分為主控層、通信層、協調執行層3層。CAN總線與一般通信總線相比,它的數據通信具有較強的實時性,并且CAN總線連線簡單,降低了系統連線的復雜程度,增強了系統的可靠性:其中基于Windows的控制系統負責仿人機器人關節電機的調試以及傳感數據的顯示;基于RT-Linux的系統實現機器人的實時運動控制一實驗表明提出的分布式控制系統操作簡便、安全可靠、實時性強,能充分滿足仿人機器人系統調試與運動控制的要求
關鍵詞:仿人機器人;分布式控制;雙主機;買時性
中圖分類號:TP 27 文獻標識碼:A
Distributed Control System Design for Humanoid Robots
YANGBin.SU Jian-bo
(Automalion Department,Shanghai Jiao Tong University,Shan曲ai 200240,China)
Abstract:A humanoid robot contr01 system with distnbuted modularization is presented based on CAN bus a nd double PC control archi-tecture,tomeetthe requirements ofmuhi-degree-offreedom.real-time a nd stability pelrformanee Based onthe principle of centralizedmanagement a nd decentralized control,the control system is divided into three layers:main control layer,communication layer a nd actuating layer.CAN bus is a kind of field bus with better real-time performanee a nd stronger reliability.The main control layer system is based on Windows OS,responsible for testing a nd display of the sensor data received The other one is under RT-Linux 0S,aiming at realizing hulnanoid robot real tilne motion control Experilnental results show that the presented control s3 stem has good perfommnce of convenient operation,stability a nd real-time,meeting the requiremenls of humanoid robot testing a nd motion control
Key words:humanoid robot:distributed control:double PC:reaI-time
1引 言
近年來,仿人機器人已成為機器人領域研究的熱點。仿人機器人具有其他類型機器人無法比擬的優勢,便于融人人類日常生活和工作環境中,協助人類完成具體的任務[1]。然而仿人機器人作為一個復雜的多自由度系統,需要有效利用自身多傳感信息來感知外界環境及自身狀態變化,并對其運動執行機構進行調整,因此要求其控制系統需要有很高的可靠性和實時性。
本文針對仿人機器人的特點,從系統可靠性,穩定性,實時性以及整體性能的優化等多方面出發,設計了基于CAN總線協議的系統總線以及Windows和RT-Linux雙系統的仿人機器人主控層結構的分布式控制系統。本文所設計的系統在MIH-I(Mini Intelligent Humanoid robot-I)仿人機器人平臺上進行了實驗,結果表明,該設計方案系統調試方便,可很好地控制仿人機器人的各驅動電機協調工作,保證仿人機器人運動的穩定性和實時性。
2基于CAN總線的分布式控制系統
以往采用的集中式控制系統,控制功能高度集中,具有較快的數據傳輸速度和精度,但局部的故障就可能造成系統的整體失效。相對于傳統的集中式的控制系統,分布式控制系統具有高可靠性,易于維護,開放性和靈活性等特點,更能滿足仿人機器人運動控制的要求。因此,韓國的KHR-[2]。美國的Guroo[3]等先進系統都是采用了基于CAN(Controller Area Network)總線的分布式的體系結構,該結構可以簡化機器人控制系統的布線,提高了系統的可擴展性。CAN總線在工業領域中得到廣泛應用,具有成本低、可靠性高、結構簡單和開
放性好等特點,適于仿人機器人的控制系統[4]。
早先的機器人控制系統的設計中,較多使用的是windows,DOS等分時操作系統。這種操作系統追求系統整體平均性能的優化,操作界面友好,系統成熟,便于開發調試,但卻無法保證特定的任務在限定的時間內得到響應,也即不能滿足高實時性的要求,從而無法保證多關節的實時協調運動。因此,對于仿人機器人的穩定行走,實時操作系統是不可或缺的[5]。
目前,許多機器人都采用實時操作系統進行運動控制,如日本的ASIMO[6]、德國的Johnnie[7]等。然而,實時操作系統對于機器人多媒體性能支持較差,編程繁瑣及用戶界面不友好,因此增加了仿人機器人系統整體調試的難度[5]。
基于此,采用基于cAN總線的分布式控制系統。整個控制系統采用集中管理分散控制的方式,按照控制系統的結構和功能劃分為主控層、通信層、協調執行層[8]3層。其中,主控層由機器人本體外的工作站組成,采用雙操作系統的結構,既保留了windows操作系統的優點,又滿足了機器人運動的穩定性和實時性的要求。實現人機交互、任務規劃以及宏指令的生成等功能;協調執行層都集成在機器人本體上,完成具體的電機驅動,控制以及信號采集等任務;通信層負責主控層與協調執行層的信息交互,結構如圖l所示。
1)主控層模塊 主控層產生機器人關節運動序列,協調各個關節完成指定的動作。主控層包括2臺主控計算機,一臺工作于實時系統(RT-Llnux)下,實時系統具有可靠的穩定性和實時眭,所以該主控計算機主要完成機器人的步態規劃與行走控制;另一臺工作于Windows系統下,由于在Win—dows下能更直觀地顯示各個關節電機的工作情況,對于多媒體傳感信息的支持更好,因此方便進行機器人關節電機的調試,電機發送信號的檢查,傳感信息的獲得以及用于例外情況的緊急處理。2臺主控計算機既可以同時合作控制機器人的運動,也可以相互獨立操作。
2)通信模塊通信層主要負責主控層和執行層之間信息的傳輸。主控計算機與電機控制器之間通過CAN總線進行通信。CAN總線與一般通信總線相比,它的數據通信具有較強的可靠性、實時性和靈活性:結構簡單,用2根線構成總線,設備掛在總線上,而且在設備數量允許的范圍內可以任意增加或減少設備;能對錯誤的來源進行正確定位,提供相應的錯誤處理功能,保證了通信的可靠性;通訊速率高,在40 m的范圍內可以達到l Mbps的速率;采用短幀結構,傳輸時間短,保證了通訊的實時性;成本低,在速率要求不高、線路不長的場
合,普通的雙絞線就可以滿足需要,同時由于CAN總線只用2根線進行通信,大大降低了系統連線的復雜程度,同時增強了系統的可靠性能[2]。
鑒于以上CAN總線的優點,選其為仿人機器人分布式控制系統的通信媒介。具體連接方式為:主控計算機通過CAN總線接口卡連接到總線上,各運動控制器也都通過總線收發器掛接到總線上,而且可以根據實際情況增減數目。
3)協調執行層模塊協調執行層主要負責機器人關節伺服控制,為了提高機器人的實時性和穩定性,提出用若干個智能體來實現協調層的功能[9]。各個智能體之間是獨立的,每個智能體由1個關節控制器、若干個關節驅動器和相應的傳感器構成。一方面,智能體通過關節控制器接收主控層發送的關節運動序列,對關節電機進行伺服控制;另一方面,智能體接收傳感器信息,協同主控層直接處理仿人機器人的異常情況[9]。智能體的組成結構,如圖2所示。
基于智能體的分層控制系統通過充分發揮其智能性提高機器人控制系統的穩定性和實時性。
3主控層模塊設計
1)基于windows的控制系統設計基于windows的主控計算機控制系統可根據其功能,將整個軟件系統分為表示層、數據層、業務層[10],其控制系統軟件框架,如圖3所示。
①表示層作為仿人機器人人機交互界面,用戶可以設置系統參數和運行模式,實時監測仿人機器人當前的狀態,提供環境信息的動態顯示功能。
②數據層負責保存和設置各種數據和環境信息,包括傳感器數據,步態規劃數據等。
③業務層包括命令處理,任務處理,軌跡生成,運動控制功能以及傳感信號的采集與處理等。
其中,業務層是3層模式的核心,它對動態變化的環境信息進行處理,向機器人發送關節步態規劃運動序列數據。任務處理模塊是調度中心,負責協調業務層各個模塊工作,它接受來自命令處理模塊的用戶命令,來自全局信息模塊的環境信息,及讀取數據層的歷史數據。運動控制模塊負責產生機器人關節步態規劃運動序列,將關節電機信號封裝為CAN數據包并通過CAN設備發送。傳感信號采集與處理模塊負責仿人機器人各關節傳感信息數據的采集和處理,有選擇地將其顯示至狀態圖上。
2)基于RT-Linux的實時控制系統設計 基于windows操作系統的控制平臺可以直觀地控制機器人的各個關節電機的運動,并動態顯示各關節轉動角度及接收到的傳感數據的變化,但由于windows作為分時的非搶占式的操作系統,無法滿足對高實時性要求的仿人機器人的穩定行走控制。
要保證仿人機器人的穩定行走,必須保證控制系統的實時性,不僅需要縮短控制周期,而且要保證固定的時間間隔。此外,機器人要保證較強的環境適應能力,必須能同時處理多種復雜任務,并且實時控制任務必須在限定的時間內得到響應。機器人要能對外部環境的變化及時做出響應,還必須保證快速的中斷響應時間,這些都必須通過實時多任務操作系統得以保證,因此仿人機器人運動控制必須要基于實時系統的控制平臺。
①實時操作系統的選擇 目前,實時多任務操作系統的選擇較多,如Vxworks,QNX,RTX等。這些實時操作系統性能優秀,但是開放性較差,且價格昂貴。與之相比,RT-Linux是一個源碼開放的實時操作系統,便于開發研究,且能夠提供更多的功能,比如網絡TCP/IP協議等。本系統中選用RT-Linux作為MIH—I的實時操作系統:
RT—Linux是在Linux的基礎上對進程調度、中斷處理等方面進行了改進,把一個小的實時內核嵌在標準Linux的底部,標準Linux內核作為RT—Linux優先級****的一個任務運行。非實時任務運行于標準Linux中,可以提供網絡通信和數據庫等****功能。實時任務運行于RT—unux內核空間,完成對時限有嚴格要求的任務的執行[11]。
②基于RT—Linux的實時控制程序 實時任務主要由設備驅動模塊和實時控制模塊2部分組成。系統框圖,如圖4所示:
25個自由度。為了獲得機器人環境和自身關節信息,仿人機器人需要采用視覺傳感器、角度傳感器、力傳感器、電子羅盤和光電編碼器等傳感器。
1)仿人機器人關節電機調試實驗基于Windows平臺的仿人機器人控制系統,如圖6所示。
圖中每一個關節按鈕對應于相應的關節電機。通過該界面,操作者可以對仿人機器人各關節電機進行獨立控制調試,并在該界面上顯示關節電機的轉角和已發送的電機數據等。同時,也可以在系統控制精度要求不高時(大于100 ms時延)控制仿人機器人各關節的協同運動。操作者可以在系統初始化時可以指定期望顯示的傳感信號的CAN數據包ID號,然后通過基于windows平臺的傳感信號采集與處理模塊顯示界面實時顯示傳感信號的變化。
此外,傳感信息采集與處理模塊還包括對視覺和聽覺信號的采集,加強了仿人機器人對于多媒體信號的處理能力。通過基于windows平臺的仿人機器人控制系統顯著地提高了仿人機器人調試的效率。傳感信號采集與處理模塊顯示界面,如圖7所示。
2)仿人機器人系統實時性實驗為了比較2個不同的操作平臺的實時精度,在CAN總線波特率為500 kbps,控制周期為10 m的情況下,分別在基于不同操作系統的控制平臺上對仿人機器人進行實時性測試比較,如圖8所示。
數據顯示,雖然基于windows的仿人機器人控制系統在機器人的電機調試,平臺操作性以及傳感數據的顯示上與RT-Linux控制平臺相比具有較大的優勢,但在10 ms精度的情況下,該控制系統存在較大的時延,無法實現精確穩定的關節數據發送時間間隔的控制,發送數據周期從5 ms至40 ms不等,并且缺乏規律性,不能滿足仿人機器人行走的可靠性與實時性的要求。反之,在RT-Linux下,控制系統可以精確地控制10 ms的關節數據發送時間間隔,充分滿足了對實時性的要求;并且具有穩定的時延,關節數據發送時間間隔誤差在0.2 ms以內,滿足了其穩定性的要求。
綜上所述,基于RT-Hnux的實時控制系統可以很好地滿足仿人機器人的各關節電機的實時控制的要求,對于實現仿人機器人穩定行走是不可或缺的。但如文獻[11]所述,RT-LinuX內核需要工作在命令行模式下,不利于仿人機器人電機的調試以及多媒體信息的處理,因此需要在基于windows系統的控制平臺下進行圖形界面的操作并處理多媒體傳感信息。
5結語
本文針對仿人機器人的自由度多,控制復雜,實時性要求高等特點,設計了雙系統的仿人機器人分布式控制系統,充分利用了windows操作系統以及RT-Linux操作系統各自的優點,互相彌補了各自自身的缺陷,并將該系統在MIH-I上得到了成功應用。 |