0 引 言
移動機(jī)器人是一種能夠感知外部環(huán)境,,在有障礙物的環(huán)境中能夠?qū)崿F(xiàn)動態(tài)決策與規(guī)劃,,從而完成避障等多種功能的綜合系統(tǒng),。機(jī)器人系統(tǒng)通常分為機(jī)構(gòu)本體和控制系統(tǒng)兩部分,控制系統(tǒng)的作用是根據(jù)用戶的指令對機(jī)構(gòu)本體進(jìn)行操作和控制,。隨著機(jī)器人的智能化水平越來越高,,控制器要有方便、靈活的操作方式,,以及多種形式的控制方式和高度可靠性,,還要有很高的實時性,。
為了保證系統(tǒng)的實時性,簡化控制系統(tǒng)軟件的設(shè)計,,有必要在控制系統(tǒng)引入嵌入式操作系統(tǒng),。本設(shè)計將嵌入式技術(shù)與機(jī)器人技術(shù)相結(jié)合,利用ARM作為硬件平臺并移人μC/OS-Ⅱ嵌入式實時操作系統(tǒng),,開發(fā)了具有多線程,、多任務(wù)管理的控制終端。嵌入式主控制器ARM是整個機(jī)器人控制系統(tǒng)的核心,,主要完成環(huán)境感知,、組織管理、總體任務(wù)分配,。嵌入式主控器作為機(jī)器人的運算層,,一方面作為控制上位機(jī),可以通過串口與下位機(jī)伺服控制系統(tǒng)通信,,從而完成機(jī)器人的運動控制,;另一方面還提供了與遙控操作端或用戶端的無線通信接口。本文設(shè)計的機(jī)器人控制系統(tǒng)可應(yīng)用于日常生活,、足球機(jī)器人以及其他科學(xué)探索領(lǐng)域,。
1 系統(tǒng)組織架構(gòu)與硬件設(shè)計
設(shè)計時考慮到機(jī)器人在體積、質(zhì)量等方面的限制,,以及要滿足功耗低,,實時性高,性能優(yōu)越的特點,,選擇合適的軟硬件結(jié)構(gòu)及有效的控制模式是整個設(shè)計過程的關(guān)鍵,。
1.1 系統(tǒng)總體架構(gòu)
整個機(jī)器人控制系統(tǒng)由嵌入式主控制器、伺服控制模塊,、無線通信模塊和傳感檢測模塊組成,。控制系統(tǒng)的總體架構(gòu)如圖1所示,。
按功能劃分,,該控制系統(tǒng)分為上下兩層。由實現(xiàn)任務(wù)管理,、運動軌跡生成,、定位的上層控制系統(tǒng),以及完成機(jī)器人伺服控制,、傳感器信息采集的下層控制系統(tǒng)組成,。上層控制系統(tǒng)是整個控制系統(tǒng)的核心控制層,它有兩種控制實現(xiàn)方式:一種是獨立運行模式,,另一種是遙控或遠(yuǎn)程實時控制模式,。獨立運行模式有自己的運行參數(shù),,即上層控制系統(tǒng)根據(jù)激光雷達(dá)的信息傳遞到環(huán)境建模模塊,產(chǎn)生環(huán)境地圖并產(chǎn)生避障算法所需信息,,控制器根據(jù)避障模塊信息產(chǎn)生機(jī)器人本體速度和方向信息,,傳遞到運動控制器。在運動控制底層程序定義了一系列程序,,運動控制器通過解釋上層控制系統(tǒng)傳遞過來的信息并執(zhí)行相應(yīng)程序,,從而達(dá)到機(jī)器人控制的目的,實現(xiàn)實時避障,。遙控器或遠(yuǎn)程實時控制模式是通過無線通信單元接收用戶端或遙控端發(fā)出的命令,,實現(xiàn)對機(jī)器人的實時控制。系統(tǒng)的控制實現(xiàn)方式如圖2所示,。
1.2 主控制模塊
主控制模塊采用SAMSUNG公司16/32位RISC處理器S3C4480作為控制器,。S3C4480功耗低,有多種電源供電方式,,有多種外部存儲器訪問,新的總線體系結(jié)構(gòu)(SAMBA),,速度可達(dá)132 MHz,。主控模塊使用Hynix公司的HY57V281620(SDRAM)以及SAM-SUNG公司的Nand-Flash芯片K9F2808U作為存儲器。為了增大數(shù)據(jù)吞吐能力,,選取了2片SDRAM構(gòu)成32位地址寬度,。S3C4480使用ARM7TDMI核,它滿足μC/OS-Ⅱ正常運行的所有條件,,設(shè)計時S3C4480移入μC/OS-Ⅱ操作系統(tǒng),,將加快處理器的應(yīng)用和開發(fā),而且還能提高系統(tǒng)的實時性,。通過將系統(tǒng)的功能劃分成按不同優(yōu)先級調(diào)度的任務(wù),,實現(xiàn)對機(jī)器人的多任務(wù)控制,主控制模塊中的路徑規(guī)劃任務(wù)采用柵格法,。
1.3 激光雷達(dá)測距模塊
激光雷達(dá)是一種工作在從紅外線到紫外光譜段的雷達(dá)系統(tǒng),,相對于超聲波、紅外,、攝像頭等其他傳感測距方法,,激光雷達(dá)具有探測距離遠(yuǎn),測量精度高,,價格相對適中等優(yōu)點,。在本設(shè)計中使用德國施克公司的LMS291激光測量系統(tǒng),基于飛行時間測量原理,,180°掃描角度,,可以設(shè)置三個保護(hù)區(qū)域,,具有濾波功能,以消除障礙檢測過程中激光雷達(dá)的測距噪聲干擾,。
LMS291激光雷達(dá)通過旋轉(zhuǎn)鏡面向各個方向發(fā)射脈沖激光,,并由LMS291接收器接收反射光線。該激光雷達(dá)響應(yīng)時間可固定為13 ms,,發(fā)射角為幾mrad的激光脈沖,,通過測量發(fā)射脈沖與反射脈沖之間的時間延遲,并乘以光速,,就可以測得障礙物的距離,。時間測量通過圖3所示的脈沖填充法求出。
如果計數(shù)值為N,,則t=N△T=N/f,,從而可得L=ct/2=cN/(2f),其中,,f為時鐘脈沖,。
LMS291激光測量系統(tǒng)提供RS 232數(shù)據(jù)接口,本設(shè)計主控制器采用的是S3C44B0,,由于它的LVTTL電路所定義的高,、低電平信號為正邏輯,而RS 232標(biāo)準(zhǔn)采用負(fù)邏輯方式,,兩者間通信要進(jìn)行電平轉(zhuǎn)換,,在設(shè)計時系統(tǒng)采用RS 232電平轉(zhuǎn)換芯片MAX232ACPE實現(xiàn)串口的通信。
1.4 無線通信模塊
無線通信模塊利用從前端RF接收到的遙控端或用戶端的信息通過串口發(fā)送到機(jī)器人,,也可將機(jī)器人的信息通過無線通信模塊發(fā)送出去,。前端RF使用Chip-con公司生產(chǎn)的CC2420芯片,無線通信模塊采用的微控制器為Microchip公司的 PIC18LF4620,。CC2420與PIC18LF4620都使用3.3 V作為工作電壓,,可以降低功耗,CC2420只需通過SI,,SO,,SCLK,CSn與PIC18LF4620的SPI接口進(jìn)行連接,。本設(shè)計中使用 PIC18LF4620的RC6,,RC7引腳作為RS 232的數(shù)據(jù)發(fā)送端與數(shù)據(jù)接收端。CC2420是一款較為通用的符合IEEE802.15.4的2.4 GHz ZigBee收發(fā)芯片,,該芯片在集成了PHY層和部分MAC層的同時,,還提供了許多硬件支持。
1.5 伺服控制模塊
運動控制模塊通過RS 232與主控制模塊連接,主控制模塊通過串行總線將期望速度,、方向信息傳送至運動控制器,,運動控制器將信息處理后作為運動控制算法的輸入量,運動控制算法得到以PWM形式表示的電機(jī)控制信息,。為判斷電機(jī)轉(zhuǎn)速及運轉(zhuǎn)方向,,安裝在電機(jī)上的光電編碼器提供相位相差90°的兩個通道的光碼脈沖輸出,光電編碼器產(chǎn)生的兩脈沖送入DSP的正交編碼脈沖單元的QEP1,,QEP2引腳,,通過DSP的比較單元CAP1,CAP2捕捉,,然后經(jīng)譯碼單元產(chǎn)生內(nèi)部4倍頻后的脈沖信號CLK以及轉(zhuǎn)向信號,,將脈沖信號送入選定的計數(shù)器進(jìn)行計數(shù),計數(shù)方向由轉(zhuǎn)向信號決定,,通過讀取選定通用定時器的計數(shù)值,、脈沖數(shù)、計數(shù)方向可得到電機(jī)的轉(zhuǎn)速,、行程及方向為伺服控制提供反饋輸入,。沒計使用TI公司的TMS320F2812作為控制驅(qū)動模塊的控制器,該芯片產(chǎn)生的PWM信號并不能夠直接驅(qū)動電機(jī)的執(zhí)行,,設(shè)計時使用TI公司的直流電機(jī)驅(qū)動芯片SN7S4410將PWM轉(zhuǎn)換成可驅(qū)動電機(jī)的驅(qū)動信號,。圖4為移動機(jī)器人運動控制系統(tǒng)的原理圖。
圖4中電流傳感器為霍爾元件電流傳感器,,將采集到的電機(jī)電流信息送入A/D轉(zhuǎn)換接口,從而整個運動控制系統(tǒng)形成雙閉環(huán)控制系統(tǒng),。運動控制器中運動控制算法采用PID算法,,設(shè)定允許的誤差為e0,設(shè)定如下關(guān)系:
當(dāng)| e(k)|≤e0時,,控制器不起作用,;
當(dāng)| e(k)|>e0時,可以得到控制器的輸出為:
PWM信號的寬度由時間管理器中定時器的周期寄存器和與該定時器相關(guān)的比較寄存器決定,,經(jīng)過PID處理后的控制器輸出u(k)為脈沖的占空比,,然后寫入選定定時器的比較寄存器,比較寄存器與周期寄存器的比值即為PWM波形的占空比,,從而實現(xiàn)電機(jī)轉(zhuǎn)速的控制,。
2 軟件設(shè)計
該機(jī)器人控制系統(tǒng)的軟件設(shè)計包括主控制模塊、DSP運動控制器算法程序,、PIC18LF4620的程序設(shè)計,。PIC18LF4620的程序設(shè)計在這里不做介紹。
2.1 主控制模塊程序設(shè)計
主控制模塊軟件設(shè)計是在μC/OS-Ⅱ平臺上設(shè)計各硬件的驅(qū)動程序,創(chuàng)建和啟動各項任務(wù),,創(chuàng)建信號量,、消息郵箱、消息隊列完成各任務(wù)間的通信,。
針對S3C4480的硬件資源和編譯器特性,,移植時要對μC/OS一Ⅱ的三個源文件做修改:
(1)OS_CPU.H頭文件與編譯器相關(guān)的數(shù)據(jù)類型重新修改;
(2)OS_CPU_ A.S文件中修改處理器相關(guān)的4個匯編函數(shù),;
(3)OS_ CPU.C文件中編寫初始化任務(wù)的堆棧函數(shù),。
μC/OS-Ⅱ中程序是從main()函數(shù)開始執(zhí)行,程序啟動后跳轉(zhuǎn)至主程序運行,,調(diào)用ARMInit()初始化ARM系統(tǒng),,包括建立相關(guān)參數(shù)和變量,配置ARM處理器中斷端口,、設(shè)置中斷并初始化各器件,,然后調(diào)用OSInit()初始化μC/OS-Ⅱ操作系統(tǒng),將操作系統(tǒng)的初始化與硬件的初始化分開來使得思路更清晰,,便于調(diào)試,。由于各任務(wù)之間要通過創(chuàng)建信號量、消息郵箱,、消息隊列來完成通信,,該操作通過調(diào)用 OSSemCreate(),OSMboxCreate(),,OSQCreate()函數(shù)來完成,,然后調(diào)用 OSTaskCreate(void(*task)(void*pd),void*pda-ta,,OS_STK*ptos,,INT8U prio)函數(shù)創(chuàng)建各任務(wù)完成系統(tǒng)控制。最后調(diào)用函數(shù)OSStlart(),,μC/OS-Ⅱ開始運行,,執(zhí)行任務(wù)。本系統(tǒng)設(shè)計時主要完成的任務(wù)有無線通信任務(wù),、命令解釋任務(wù),、激光雷達(dá)信息處理任務(wù)。
2.2 伺服控制模塊程序設(shè)計
伺服控制模塊利用高速的DSP運動控制器與反饋信號組成閉環(huán)控制系統(tǒng),,DSP發(fā)送PWM波與方向信號控制直流電機(jī)的轉(zhuǎn)速,,通過速度反饋,DSP可實時讀取當(dāng)前速度,,利用DSP中的控制程序根據(jù)速度讀數(shù)控制PWM的占空比,,從而實現(xiàn)閉環(huán)控制,。主程序流程圖如圖5所示。
在DSP的事件管理器中,,將其中一個定時器設(shè)定一個中斷周期,,每當(dāng)定時器產(chǎn)生中斷時,調(diào)用中斷處理子程序獲得電機(jī)的反饋速度,。
3 結(jié) 語
根據(jù)新型激光雷達(dá)跟蹤測量理論,,開發(fā)研制了基于μC/OS-Ⅱ的機(jī)器人實時控制系統(tǒng)。該控制系統(tǒng)已成功用于實驗室自主研制開發(fā)的足球機(jī)器人,。性能測試表明,,該機(jī)器人控制系統(tǒng)能夠快速及時跟蹤定位目標(biāo),并且能夠通過無線通信模塊與遙控端進(jìn)行通信,,完成指定操作指令,。該控制系統(tǒng)采用的控制決策算法為PID,今后將致力于研究采用更為先進(jìn)的算法,。