關 閉

        新聞中心

        EEPW首頁 > 工控自動化 > 設計應用 > 雙臂單腿跳躍機器人的實時控制技術研究

        雙臂單腿跳躍機器人的實時控制技術研究

        作者: 時間:2009-09-25 來源:網絡 收藏
        與倒立擺相似,是自然不穩定系統,在實際的規劃與中,需要保證性。這使得顯得至關重要。

        Windows系統本身不是操作系統,但是,對于采用上/下位機模式(如PC+DSP)的控制系統,因為下位機的定時精度高且響應快,通過合理的設計,同樣可以保證整個控制系統的實時性。

        本文引用地址:http://www.104case.com/article/163553.htm

        針對控制的要求,重點了實時控制,并給出具體控制方案。在聯機調試之前,先設計實驗驗證該控制方案的可行。實驗結果說明控制系統的實時性能滿足設計要求。

        1 控制系統的搭建

        本文所的是一種新型彈性機器人,該機器人采用驅動,彈性伸縮腿中不安裝驅動部件,系統依靠內部動力學耦合實現動態站立平衡、起跳和穩定連續。其機械本體如圖1所示。

        兩個直流伺服電機安裝在機器人的臂端,電機的輸出經由鋼絲傳到機器人肩部,從而實現臂的擺動。電機自帶編碼器,測臂的擺角;機器人肩部裝有陀螺儀,測身體的傾角;腿部有一直線位移傳感器,用以測腿的伸縮長度。

        考慮到本單腿跳躍機器人主要為研究先進控制理論和方法提供實驗平臺,其控制系統采用上/下位機的模式,主要由PC機、DSP(Digital Signal Processor)及機器人本體上的各傳感器組成,系統的結構框圖如圖2所示。

        PC與DSP之間通過總線來通信。適配卡采用周立功公司的PCI9810。PC作為上位機可充分利用其現有的軟件工具和開發環境,方便實現多任務管理;DSP(TI公司的TMS320F2812)作為下位機則利用其高速運算和精確定時。

        2 Windows下的實時控制

        這里希望在目前使用最廣的Windows平臺上開發實時控制軟件,以充分發揮其圖形功能和豐富的軟硬件支持,減少開發難度,提高軟件的通用性。所以在上位機采用的操作系統仍然是Windows系統。

        但是,Windows并非一種實時操作系統,或者僅能稱為“弱實時”。他是基于消息驅動機制的操作系統,一旦計算機的CPU被某個進程占用,或系統資源緊張時,任何其他消息或進程都將被暫時掛起而無法實時處理。

        所謂實時,就是要在特定的時間間隔內完成特定的任務。參考二級倒立擺控制周期(6~10 ms)和Raibert的SLIP跳躍機器人控制周期(6 ms),把控制周期定為5 ms。

        2.1 控制方案

        精確定時是實時控制中的關鍵指標,若不對操作系統進行擴展,Windows能達到的定時精度最高僅為1 ms,受其他任務干擾時精度會更低。如果僅用PC控制機器人,是無法保證實時性的。

        然而,對于上/下位機模式的控制系統,定時精度可以由下位機來保證,上位機只需在某個時間范圍內完成任務并響應即可。從某種意義上說,實時性其實是一個靠近下位的概念,生物具有高超的協調能力并不總需處于最上位的大腦的時刻關注。

        大腦也是個多任務系統,他總會被其他的事情干擾,但要進行某一控制時,他須具備2點:

        (1)及時響應;

        (2)一次給下位足夠的信息和權限以便委任之。

        這里要注意(1)中“及時”這個概念,他指上位可在某個時間范圍內作出響應,而不是在某個精確的時間點。而且,當(2)成立時,上位機甚至可以在若干個控制周期里不響應,控制仍能正常進行。

        基于以上控制思路,現有配置的Windows平臺下PC機完全可以勝任上位機工作。

        具體控制方案為:

        下位機(DSP) 精確定時,決定控制系統的控制周期,進行底層的伺服控制。

        上位機(PC) 不主動動作,只在接收到狀態量時才運算并發送控制量。通過狀態預估,一次發送幾個控制量,包含了對未來狀態的控制。使用多線程,并使用Windows下最高精度的定時器來專門負責發送,保證上位響應的及時。

        上/下位機協同工作過程的示意如圖3,其中T代表控制周期。

        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依然能夠讀到所需的控制量(緩沖區中默認的無控制量狀態是零)。


        上一頁 1 2 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 乾安县| 监利县| 盐亭县| 芜湖县| 临朐县| 安新县| 日土县| 漯河市| 河东区| 固始县| 民和| 岳西县| 德钦县| 宜兴市| 浮梁县| 安顺市| 天峻县| 和林格尔县| 牡丹江市| 双桥区| 旬阳县| 双江| 天峻县| 贺兰县| 巧家县| 南澳县| 柘荣县| 正镶白旗| 常山县| 汽车| 舞阳县| 柳林县| 宜宾市| 平江县| 闻喜县| 光泽县| 两当县| 宜城市| 措勤县| 巩留县| 宿迁市|