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