主要介紹了一種移動機器人的運動控制系統(tǒng)硬、軟件結(jié)構(gòu)。控制系統(tǒng)是由工業(yè)PC,ADT850運動控制卡及相關(guān)傳感器組成;操作系統(tǒng)采用Windows98系統(tǒng),采用VisualC++6.0開發(fā),并應(yīng)用模塊化及Windows線程的多任務(wù)處理機制實現(xiàn)控制程序設(shè)計;根據(jù)狀態(tài)反饋控制理論,設(shè)計了移動機器人路徑跟蹤控制算法。實驗論證了此控制系統(tǒng)及控制算法的有效性。
引言
移動機器人是能夠在未知環(huán)境下自主運動的智能機器人,集環(huán)境感知、動態(tài)決策與規(guī)劃、運動控制等多項功能于一體,其中運動控制系統(tǒng)的主要功能是實現(xiàn)對上層規(guī)劃路徑的跟蹤[1]。
隨著科學技術(shù)的發(fā)展,人類的研究活動領(lǐng)域已由陸地擴展到海底和空間。利用移動機器人進行空間探測和開發(fā),已成為21世紀世界各主要科技發(fā)達國家開發(fā)空間資源的主要手段之一。研究和發(fā)展月球探測移動機器人技術(shù),對包括移動機器人運動控制在內(nèi)的相關(guān)前沿技術(shù)的研究將產(chǎn)生巨大的推動作用[2]。
本文提出了一種基于工業(yè)計算機(IPC)及ADT850運動控制卡的移動機器人運動控制系統(tǒng),實現(xiàn)移動機器人的車體與傳感器云臺運動控制。采用Windows系統(tǒng)的模塊化、多線程軟件設(shè)計方法,使系統(tǒng)具有較好的開放性,易于功能擴展。針對本系統(tǒng),提出了一種基于狀態(tài)反饋的移動機器人路徑跟蹤控制算法,實現(xiàn)平穩(wěn)、有效的鎮(zhèn)定控制。
1運動控制系統(tǒng)的硬件結(jié)構(gòu)
1.1問題的描述
對于移動機器人的運動控制系統(tǒng),精確地進行自定位是一個基本的要求。自定位就是獲得機器人自身相對于一個固定坐標系的位置和方向角(統(tǒng)稱位姿)。因此,從系統(tǒng)硬件層次來講,移動機器人就必須要有一定的傳感器來獲得這些位姿信息,如利用固定在驅(qū)動輪軸上的光電編碼器,通過測量各電機的運動增量推算出機器人的位置,利用光纖陀螺儀測量機器人在水平面的方向角,利用傾角傳感器測量機器人與水平面的傾角。另外,移動機器人運動系統(tǒng)還要接收上層決策系統(tǒng)路徑規(guī)劃信息及向決策系統(tǒng)反饋機器人狀態(tài)信息等,因此要求系統(tǒng)要有較好的通信能力。
1.2硬件系統(tǒng)結(jié)構(gòu)
運動控制系統(tǒng)由計算機系統(tǒng)、傳感器系統(tǒng)、驅(qū)動控制系統(tǒng)及電源系統(tǒng)等幾個部分組成(如圖1)。其中,計算機系統(tǒng)采用通用的工控機(IPC),這樣保證了整個系統(tǒng)較好的可擴展性。傳感器系統(tǒng)包括編碼器、光纖陀螺儀及傾角傳感器。編碼器用來測量車輪的實際轉(zhuǎn)動量;光纖陀螺儀用來測量機器人車體在水平面的方向偏角;傾角傳感器則用來測量機器人車體與水平面傾角。驅(qū)動控制系統(tǒng)包括ADT850運動控制卡及步進電機驅(qū)動器。電源系統(tǒng)采用二組鎳氫12Ah電池組分別對計算機系統(tǒng)與驅(qū)動系統(tǒng)獨立供電,其中計算機系統(tǒng)采用24V直流源,步進電機采用36V直流源,可以支持系統(tǒng)連續(xù)工作2~3小時。
圖1移動機器人運動控制系統(tǒng)硬件結(jié)構(gòu)框圖
光纖陀螺儀、傾角傳感器通過串口向IPC傳送移動機器人的姿態(tài)信息,編碼器采集的移動機器人位置信息,通過ADT850運動控制卡的I/O向IPC傳送。IPC獲取移動機器人位姿信息后,并作相應(yīng)融合處理,然后根據(jù)上層決策系統(tǒng)提供的路徑規(guī)劃信息,執(zhí)行相應(yīng)的控制算法,向運動控制卡發(fā)送控制命令??刂泼钔ㄟ^運動控制卡,轉(zhuǎn)換為控制步進電機的脈沖信號。
ADT850運動控制卡是基于PCI總線的高性能四通道伺服/步進控制卡,在本系統(tǒng)中,兩個通道分別用于機器人車體左、右輪的驅(qū)動控制,另外兩個通道分別用于傳感器云臺的旋轉(zhuǎn)與俯仰運動控制。其脈沖輸出方式可用單脈沖(脈沖+方向)或雙脈沖(脈沖+脈沖)方式,這里采用前一種方式,最大脈沖頻率為4MHz。位置管理采用兩個加/減計數(shù)器,一個用于內(nèi)部管理驅(qū)動脈沖輸出的邏輯位置計數(shù)器,一個用于接收編碼器輸入信號,作為實際位置計數(shù)器,計數(shù)器位數(shù)高達32位。還有到位信號、報警信號、伺服開啟信號等外部輸入信號接口。提供多種運動控制方式,如定量運動、連續(xù)運動、回零運動等。速度控制可用定速和直線或S曲線加減速,可做非對稱直線加減速,可用自動或手動減速。每軸有2個32位比較寄存器,用于產(chǎn)生中斷或作為軟件限位。并且每軸有8個輸入信號端,包括2個正負限位信號,3個停止信號,1個伺服報警信號和1個通用輸入信號。除限位信號外,其余信號可通過設(shè)置成無效來作為通用輸入信號。所有數(shù)字輸入信號均有積分型濾波器,可選8種濾波時間常數(shù),以防止干擾。各軸最高輸出速度可以通過設(shè)定其倍率參數(shù)來決定,因為驅(qū)動速度、加/減速度等參數(shù)的設(shè)定范圍只在1~8000之間,若需要設(shè)定8000以上的數(shù)值的話,就必須提高倍率,但提高倍率后,速度的分辨率會相應(yīng)地降低。因此,在保證能達到最高的驅(qū)動速度的條件下,設(shè)定最小倍率。由于移動機器人最高速度為0.8m/s,轉(zhuǎn)化為脈沖頻率即為64kp/s,故最小倍率應(yīng)設(shè)定為8。
步進電機驅(qū)動器的輸入信號共有3路,它們是:步進脈沖信號CP、方向電平信號DIR、脫機信號FREE。它們在驅(qū)動器內(nèi)部分別通過270????的限流電阻接入光耦的負輸入端,且電路形式完全相同,見圖2。OPTO端為3路信號的公共正端(3路光耦的正輸入端),3路輸入信號在驅(qū)動器內(nèi)部接成共陽方式,所以O(shè)PTO端須接外部系統(tǒng)的VCC,如果VCC是+5V則可直接接入;如果VCC是12V則須外部另加限流電阻R=680????,VCC是24V則須外部另加限流電阻R=1.8k????,以保證給驅(qū)動器內(nèi)部光耦提供8~15mA的驅(qū)動電流。步進脈沖信號CP用于控制步進電機的位置和速度,也就是說:驅(qū)動器每接受一個CP脈沖就驅(qū)動步進電機旋轉(zhuǎn)一個步距角,CP脈沖的頻率改變則同時使步進電機的轉(zhuǎn)速改變,控制CP脈沖的個數(shù),則可以使步進電機精確定位。這樣就可以很方便地達到步進電機調(diào)速和定位的目的。方向電平信號DIR用于控制步進電機的旋轉(zhuǎn)方向。此端為高電平時,電機為一個轉(zhuǎn)向;此端為低電平時,電機為另一個轉(zhuǎn)向。電機換向必須在電機停止后再進行,并且換向信號一定要在前一個方向的最后一個CP脈沖結(jié)束后以及下一個方向的第一個CP脈沖前發(fā)出。
1.3軟件系統(tǒng)結(jié)構(gòu)
本控制系統(tǒng)的操作系統(tǒng)采用Windows98,程序開發(fā)系統(tǒng)采用VisualC++,并且采用模塊化及Windows線程的多任務(wù)處理機制等程序設(shè)計方法,這樣不僅便于程序調(diào)試與修改,而且還可以實現(xiàn)控制系統(tǒng)的準并行分布式處理[3]。
首先,利用ADT850運動控制卡所提供的開發(fā)庫函數(shù),將其針對運動控制卡各通道的操作封裝為針對機器人各輪的操作函數(shù),這些函數(shù)均屬于定義為CAdtMotorCtrl類的成員函數(shù)。舉例如下:
通過以上兩個類,基本上屏蔽了運動控制卡及機器人本體有關(guān)硬件操作和硬件參數(shù),從而使上層開發(fā)更加簡單、方便,在無需知道與之相關(guān)的硬件知識就能完成機器人運動控制程序的開發(fā)。使系統(tǒng)具備良好的可擴展性能。其總體結(jié)構(gòu)如圖3所示:
圖3移動機器人運動控制系統(tǒng)程序框圖
其中位姿狀態(tài)監(jiān)測模塊用來采集各傳感器的輸入信號,完成對移動機器人位置姿態(tài)的監(jiān)測,并將這些信號作為控制系統(tǒng)的反饋信號;路徑跟蹤控制模塊實現(xiàn)移動機器路徑跟蹤控制算法,向驅(qū)動系統(tǒng)提供控制信號;傳感器云臺控制模塊控制傳感器云臺以角速度8(?。?s水平轉(zhuǎn)動及4(!)/s俯仰運動;緊急情況處理模塊用于各種緊急情況處理;通信模塊完成運動控制系統(tǒng)與上層決策系統(tǒng)之間的通信。
為了保證控制系統(tǒng)的實時性,利用位于Win????dows底層的定時控制API函數(shù),由它來獲得較高精度的定時信號,而且,通過線程的優(yōu)先級安排,可以解決各線程對系統(tǒng)資源爭奪問題,將重要的、緊急的任務(wù)安排在優(yōu)先級高的線程中來完成;另外,ADT850運動控制卡能夠獨立響應(yīng)和處理一些硬中斷事件,可以用來處理緊急事件,如機器人需緊急停止等,從而進一步提高了控制系統(tǒng)的實時性。經(jīng)實驗,此方案完全能夠滿足本移動機器人實時性要求。
2運動控制算法
移動機器人的運動控制最主要的就是路徑跟蹤控制,其任務(wù)就是控制機器人使其運動軌跡漸近收斂于期望軌跡。由于移動機器人車體的非線體、輪胎與地面的滑動和非完整約束等原因,無法建立一個精確的數(shù)學模型[4],因此,本文提出了一種基于狀態(tài)反饋路徑跟蹤控制算法。
首先,對二差分輪式移動機器人作運動學分析。設(shè)vl,vr分別為機器人左、右輪速,如圖所示,
在半徑為3m的圓軌跡跟蹤過程中,最大超調(diào)量約為1.2m,經(jīng)過50s左右便穩(wěn)定在期望軌跡上,且最終穩(wěn)態(tài)誤差約為0.15m。
4結(jié)論
本文介紹了一種基于IPC與ADT850的移動機器人運動控制系統(tǒng),包括系統(tǒng)的硬件、軟件體系結(jié)構(gòu)。采用基于狀態(tài)反饋的控制算法,對移動機器人進行軌跡跟蹤控制,實驗證明了本控制系統(tǒng)及控制算法的有效性。本系統(tǒng)采用了Windows系統(tǒng)的模塊化及Windows線程的多任務(wù)處理機制程序設(shè)計方法,使本控制系統(tǒng)具有較好的擴展性和開放性,為進一步研究與實用化創(chuàng)造了較好的條件。
評論