摘 要:針對雙臂單腿跳躍機器人的特點,基于CAN總線搭建起上/下位機模式的控制系統。分析上位機(PC)與下位機(DSP)的特點及其在控制系統中的作用,提出一種“DSP定時PC從動”的實時控制方式,并引入緩沖機制等提高實時性的關鍵技術,使得Windows平臺下弱實時的上位機同樣可以勝任實時控制任務,保證控制系統整體的實時性。通過實驗證明該實時控制方式的可行。
關鍵詞:機器人;CAN總線;實時系統;緩沖
中圖分類號:TP242文獻標識碼:A文章編號:1004-373X(2008)08-161-04
Research on the Realtime Control Techniques for a Onelegged Hopping
Robot with Two Actuated Arms
GU Hao1,LIANG Conghui1,ZHAO Bing2
(1.School of Automation Science and Electrical Engineering,Beijing University of Aeronautics and Astronautics,Beijing,100083,China;
2.School of Mechanical and Electrical Engineering,North China University of Technology,Beijing,100041,China)
Abstract:According to the characters of a onelegged hopping robot with two actuated arms,a realtime control system consisting of PC(Personal Computer) and DSP(Digital Signal Processor) based on Controller Area Network(CAN)is designed.After analyzing the behaviors of both PC and DSP in the control system,a way to realize realtime control is presented,in which DSP is used for timing and PC is driven to work by signals from DSP.Some techniques like buffering are introduced as well to improve the realtime performance.In this manner,even using Windows OS,PC can be qualified to make the whole system have good realtime performance.Experiments are given and the feasibility of this control method is demonstrated.
Keywords:robot;CAN bus;realtime system;buffering
與倒立擺相似,單腿跳躍機器人是自然不穩定系統,在實際的規劃與控制中,需要保證控制的實時性。這使得實時控制的研究顯得至關重要。
Windows系統本身不是實時操作系統,但是,對于采用上/下位機模式(如PC+DSP)的控制系統,因為下位機的定時精度高且響應快,通過合理的設計,同樣可以保證整個控制系統的實時性。
針對單腿跳躍機器人控制的要求,重點研究了實時控制技術,并給出具體控制方案。在聯機調試之前,先設計實驗驗證該控制方案的可行。實驗結果說明控制系統的實時性能滿足設計要求。
1 機器人控制系統的搭建
本文所研究的是一種新型彈性單腿機器人[1,2],該機器人采用雙臂驅動,彈性伸縮腿中不安裝驅動部件,系統依靠內部動力學耦合實現動態站立平衡、起跳和穩定連續跳躍。其機械本體如圖1所示。
圖1 雙臂單腿機器人實物
兩個直流伺服電機安裝在機器人的臂端,電機的輸出經由鋼絲傳到機器人肩部,從而實現臂的擺動。電機自帶編碼器,測臂的擺角;機器人肩部裝有陀螺儀,測身體的傾角;腿部有一直線位移傳感器,用以測腿的伸縮長度。
考慮到本雙臂單腿跳躍機器人主要為研究先進控制理論和方法提供實驗平臺,其控制系統采用上/下位機的模式,主要由PC機、DSP(Digital Signal Processor)及機器人本體上的各傳感器組成,系統的結構框圖如圖2所示。
圖2 控制系統結構圖
PC與DSP之間通過CAN總線來通信。CAN適配卡采用周立功公司的PCI9810。PC作為上位機可充分利用其現有的軟件工具和開發環境,方便實現多任務管理;DSP(TI公司的TMS320F2812)作為下位機則利用其高速運算和精確定時。
2 Windows下的實時控制
這里希望在目前使用最廣的Windows平臺上開發實時控制軟件,以充分發揮其圖形功能和豐富的軟硬件支持,減少開發難度,提高軟件的通用性。所以在上位機采用的操作系統仍然是Windows系統。
但是,Windows并非一種實時操作系統[3],或者僅能稱為“弱實時”[4]。他是基于消息驅動機制的操作系統,一旦計算機的CPU被某個進程占用,或系統資源緊張時,任何其他消息或進程都將被暫時掛起而無法實時處理[5]。
所謂實時,就是要在特定的時間間隔內完成特定的任務。參考二級倒立擺控制周期[6](6~10 ms)和Raibert的SLIP跳躍機器人控制周期[7](6 ms),把控制周期定為5 ms。
2.1 控制方案
精確定時是實時控制中的關鍵指標,若不對操作系統進行擴展,Windows能達到的定時精度最高僅為1 ms[3,5,8],受其他任務干擾時精度會更低。如果僅用PC控制機器人,是無法保證實時性的。
然而,對于上/下位機模式的控制系統,定時精度可以由下位機來保證,上位機只需在某個時間范圍內完成任務并響應即可。從某種意義上說,實時性其實是一個靠近下位的概念,生物具有高超的協調能力并不總需處于最上位的大腦的時刻關注。
大腦也是個多任務系統,他總會被其他的事情干擾,但要進行某一控制時,他須具備2點:
(1) 及時響應;
(2) 一次給下位足夠的信息和權限以便委任之。
這里要注意(1)中“及時”這個概念,他指上位可在某個時間范圍內作出響應,而不是在某個精確的時間點。而且,當(2)成立時,上位機甚至可以在若干個控制周期里不響應,控制仍能正常進行。
基于以上控制思路,現有配置的Windows平臺下PC機完全可以勝任上位機工作。
具體控制方案為:
下位機(DSP)
精確定時,決定控制系統的控制周期,進行底層的伺服控制。
上位機(PC)
不主動動作,只在接收到狀態量時才運算并發送控制量。通過狀態預估,一次發送幾個控制量,包含了對未來狀態的控制。使用多線程技術,并使用Windows下最高精度的定時器來專門負責發送,保證上位響應的及時。
上/下位機協同工作過程的示意如圖3,其中T代表控制周期。
圖3 上下位機協同工作示意圖
2.2 提高實時性的關鍵技術
在實際的機器人控制軟件設計中,采用幾項提高軟件實時性的關鍵技術,他們的引入,可以最大限度地發揮Windows的實時潛能,讓上位機更好地按照上節給出的控制方案運行。
(1) 進程及線程技術
進程是程序在計算機上的一次執行活動。當運行控制軟件,其進程就被啟動。
Windows雖然不是實時操作系統,但他的進程管理還是有優先級之分的。高優先級進程優先運行,只有當高優先級進程不運行時,才調度低優先級進程運行。
Windows下進程優先級有:實時、高、高于標準、標準、低于標準、低6個等級,一般程序的默認優先級為“標準”。
這里可以API函數SetPriorityClass()將控制軟件進程設置成“實時級”。實時級進程能占用更多的CPU資源,這意味著減少Windows下其他任務對機器人控制的影響。
Windows下,一個進程可以包含若干個線程,這就是多線程技術,他讓控制軟件可以同時做幾件事。
由圖3可見,軟件中主要有3個線程:線程1完成控制量的發送;線程2完成數據的接收與控制量運算;線程3負責人機交互。
(2) 多媒體時鐘
多媒體時鐘是Windows下精度最高的定時器。在控制軟件中,他負責發送控制,線程1就是由多媒體時鐘建立的,他使上位完成運算任務后,能把已得的控制量及時發送給下位。
(3) 緩沖技術
這是對提高實時性效果最顯著的技術,他包含預估工作,因為一次發送的多個控制量里有未來量。狀態的微分值(一階、二階),是估計未來、預先給出控制量的基礎。
緩沖區設在下位,只要上位一次給下位的控制量足夠充足,即使上位有若干周期不發送控制量給下位也不會影響整體的控制效果。這為上位機爭取了更多的時間用于復雜控制算法的解算,也提高了抗干擾的能力。
以緩沖區大小等于4為例,緩沖機制的過程如圖4所示,其中T代表控制周期。可以看到即使PC有4個周期不發控制量,DSP依然能夠讀到所需的控制量(緩沖區中默認的無控制量狀態是零)。
圖4 緩沖機制示意圖
3 實驗驗證
在雙臂單腿跳躍起機器人研究的前期,因為理論和技術水平的限制,尚不能馬上進入聯機調試階段。但可以設計實驗先對控制系統的實時性能作出驗證。
實驗中:
控制周期為5 ms;緩沖區大小為4(即一次發送四個控制量);實驗中所用到的一次矩陣運算,指對某10維方陣的求逆并乘于另一方陣,系調用Matcom C++矩陣庫實現。一次運算時間約0.1 ms。矩陣運算的作用是模擬實際控制中進行的運算量。實驗數據的采樣頻率為200Hz,數據值為信號電壓大小,單位為V。
3.1 實驗設計
構造一個由輸入控制輸出的系統,即輸出跟隨輸入的動作,這類似于生物的反射回路,雖然算法簡單,但很能說明實時問題。實時性不好,輸出就不能很好隨動,對于生物就是反應遲鈍。所以即使從直觀上,這個實驗也能反應出系統的實時性好壞。
上位機中插入上百次的矩陣運算用以模擬實際中復雜算法的時耗,從而實驗中顯示的實時性性能同樣也可以說明實際可用的實時性。
實驗框圖如圖5所示。
圖5 實驗框圖
控制軟件的運行界面如圖6所示。
圖6 上位控制軟件的運行界面
3.2 實驗結果
實驗中,A/D采得的輸入信號經CAN通信送給PC,PC由此來計算控制量(隨動控制中,輸入/輸出只是簡單的比例關系)再經CAN發送給DSP,最后由DA輸出給電機。
實驗最終要得到輸入與輸出曲線,看輸出能否很好地跟隨輸入。具體操作上,DSP在把控制量送給D/A的同時,也回送給PC,所以輸入和輸出數據都可由PC采集(即圖中數據存儲按鈕對應的功能)。再借助Matlab的曲線繪制功能來對實驗結果進行分析。
為顯示系統在高負荷運算下的實時性,以下實驗均在插入100次矩陣運算(時耗約為10 ms)的情況下進行。
(1) 對位置的跟蹤
輸出等于輸入,如圖7所示,可以看到他們幾乎重合。幾處不吻合的地方是因預估造成的,也說明那一刻PC并未順利將控制量發送給DSP(100次矩陣運算造成的),DSP靠讀取其緩沖區中的估計控制量工作,但并不影響整體的控制效果。
如果不啟用緩沖,PC一次只發送1個控制量,將得到如圖8所示結果。
因為DSP默認的輸出是零,控制量的不及時到位,造成DSP在大部分時間都輸出零。這個輸出加在電機上,根本無法控制電機隨動。
這就是為什么在前面說緩沖對提高實時性效果最顯著,他彌補上位機非實時的弱點,從而增加了系統的實時性。
(2) 對速度的跟蹤
為了更直觀地顯示系統響應的快慢,可以讓電機來跟蹤位移傳感器的速度信號。位移傳感器不動時電機不轉,正向動正轉,反向動反轉。
如圖9所示,為了保護電機,輸出值是輸入的1/5。可以看到,輸出對不同頻率變化的輸入都很好地隨動。說明系統回路具備了較好的實時性。
圖7 位置隨動
圖8 無緩沖區時的位置隨動
4 結 語
通過對上下位機模式控制系統的深入分析,發現,在控制回路中,對上位機的要求不是精確定時,而是及時響應,這恰使得在Windows平臺下開發上位機控制軟件成為可能。由此,本文提出一種“DSP定時PC從動”實時控制方式,并引入了緩沖機制等提高實時性的關鍵技術,保證實際應用中控制系統具有較穩健的實時性能。
本文所設計實驗,已經考慮較苛刻的時間及環境因素,能說明整個系統具有良好的實時性。該實時控制方案的可行,有效降低了雙臂單腿跳躍機器人控制系統的開發難度和成本,是關鍵的階段性成果。
圖9 速度跟隨
參 考 文 獻
[1]GuangPing He,XiaoLan Tan,XiangHui Zhang,et al.Modeling,Motion Planning,and Control of Onelegged Hopping Robot Actuated by Two Arms.Mech.Mach.Theory,2007,doi:10.1016/j.Mechmach Theory,2007.
[2]楊文綱.單腿跳躍機器人的動力學分析與運動規劃研究[D].北京:北京航空航天大學,2006.
[3]呂鵬,周丹.基于Windows的實時測試軟件系統的實現[J].北京生物醫學工程,2005,24(4):258260.
[4]談世哲,尚緒強,趙萬生.基于RTX的工業機器人全軟件關節位置伺服控制器的研究[J].自動化技術與應用,2004,23(5):3437.
[5]李進,李睿,徐紅,等.基于Windows的VxD技術實時控制系統設計與研究[J].西安建筑科技大學學報:自然科學版,2003,35(3):272276.
[6]杜浩藩,從爽,秦志強.Simulink 環境下二級倒立擺的實時控制[J].計算技術與自動化,2003,22(2):7982,85.
[7]Jessica K Hodins,Marc H Raibert.Adjusting Step Length for Rough Terrain Locomotion[J].IEEETrans.Robot.Automat.,1991,7(3):289298.
[8]李湘江,曾艷.基于Windows應用程序的精確定時技術[J].機械與電子,2001(3):5659.
[9]陳春艷.基于CAN的某實時系統的控制與通信技術研究[D].綿陽:中國工程物理研究院,2006.
[10]Matrix
作者簡介 顧 顥 男,1982年出生,浙江寧波人,碩士生。
注:本文中所涉及到的圖表、注解、公式等內容請以PDF格式閱讀原文