嵌入式移動(dòng)機(jī)器人控制器設(shè)計(jì)

2013-05-24  by:廣州有限元分析、培訓(xùn)中心-1CAE.COM  來(lái)源:仿真在線

1引言

移動(dòng)機(jī)器人控制器研究是機(jī)器人技術(shù)的一個(gè)重要領(lǐng)域。由于移動(dòng)機(jī)器人要通過(guò)與環(huán)境的互動(dòng)完成既定的任務(wù),所以其控制器的信息處理能力和實(shí)時(shí)控制性能從根本上決定了其整體性能。以往,人們通常用高性能的PC機(jī)作為車(chē)載控制系統(tǒng),然而,其相對(duì)龐大的體積和重量造成了沉重的載重負(fù)擔(dān)嚴(yán)重制約了移動(dòng)機(jī)器人的微、小型化和靈活性。另一方面,將通用型PC機(jī)應(yīng)用于移動(dòng)機(jī)器人會(huì)造成嚴(yán)重的資源浪費(fèi),降低了機(jī)器人的整體性?xún)r(jià)比,并且一般的桌面操作系統(tǒng)很難滿(mǎn)足移動(dòng)機(jī)器人控制的實(shí)時(shí)性要求。
基于此,本文提出了一種基于數(shù)字信號(hào)處理器( Digital Signal Processor, DSP)和uC/OS- II實(shí)時(shí)內(nèi)核的移動(dòng)機(jī)器人控制器設(shè)計(jì)方案。

2控制器硬件系統(tǒng)設(shè)計(jì)

    本文所提設(shè)計(jì)方案采用基于DSP的系統(tǒng)硬件設(shè)計(jì)。TMS320F2812型32位定點(diǎn)DSP集數(shù)字信號(hào)處理、事件管理和嵌人式控制功能于一體,具有豐富的片內(nèi)外設(shè)資源,可以大大簡(jiǎn)化外圍電路的設(shè)計(jì)。此外,為提高控制器的開(kāi)放性采取模塊化設(shè)計(jì),將基于DSP的最小系統(tǒng)設(shè)計(jì)為一個(gè)核心模塊(核心板),而將信號(hào)采集和處理、功率驅(qū)動(dòng)等功能電路分別設(shè)計(jì)成相應(yīng)的獨(dú)立模塊。

2.1控制器電路原理設(shè)計(jì)

圖1為DSP核心板的硬件原理圖。核心板上幾個(gè)電平轉(zhuǎn)換單元的功能是實(shí)現(xiàn)SV電平和3.3 V電平的轉(zhuǎn)換,用于DSPI/O接口電平(3.3 V)與外圍器件典型電平的匹配,確保DSP芯片安全。在DSP與電機(jī)之間采用光電耦合器實(shí)現(xiàn)隔離。在需對(duì)機(jī)器人的運(yùn)動(dòng)進(jìn)行精確控制的場(chǎng)合,應(yīng)通過(guò)轉(zhuǎn)速傳感器反饋電機(jī)的轉(zhuǎn)速信號(hào)。此外,核心板上還擴(kuò)展了256 K* 16位的外部RAM。

嵌入式移動(dòng)機(jī)器人控制器設(shè)計(jì)流體動(dòng)力學(xué)圖片圖片1

2.2移動(dòng)機(jī)器人控制器工作原理
  
移動(dòng)機(jī)器人的最基本的功能是避障導(dǎo)航。傳感器采集環(huán)境中障礙物信息,控制器基于這些信息控制驅(qū)動(dòng)電機(jī),從而控制機(jī)器人的運(yùn)動(dòng)。
目前用于導(dǎo)航的傳感器主要有紅外測(cè)距傳感器、超聲波測(cè)距傳感器和觸碰開(kāi)關(guān)等。其輸出信號(hào)的形式為模擬電壓信號(hào)或開(kāi)關(guān)電壓信號(hào)。TMS320F2812型DSP有16路12位分辨率ADC通道,可以配置為兩個(gè)獨(dú)立的8通道模塊或者一個(gè)級(jí)聯(lián)的16通道模塊,支持靈活的信號(hào)采集方式。在每次轉(zhuǎn)換前,由程序設(shè)置4個(gè)寄存器ADCCHSELSEQI-4的值,確定本次要采樣和轉(zhuǎn)換的通道。轉(zhuǎn)換完成后,數(shù)據(jù)被保存在結(jié)果寄存器組ADCRESULTn中,應(yīng)用程序訪問(wèn)該寄存器組獲取傳感數(shù)據(jù)。開(kāi)關(guān)型信號(hào)的采集可以通過(guò)對(duì)特定引腳的查詢(xún)或者DSP捕捉單元實(shí)現(xiàn)。DSP的捕捉單元在捕捉到引腳上的電平變化后,截取并保存定時(shí)器的當(dāng)前計(jì)數(shù)值,因此應(yīng)用程序可以計(jì)算出CPU等待此電平變化所用的時(shí)間。這種方式比較適用于采集"觸發(fā)-返回"式測(cè)距傳感器的信號(hào)。而觸碰開(kāi)關(guān)因?yàn)楣ぷ鞣绞较鄬?duì)簡(jiǎn)單,適用程序查詢(xún)的方式。
TMS320F2812型DSP可以方便地實(shí)現(xiàn)多路電機(jī)控制,其事件管理模塊(EVM)支持多達(dá)16路帶可編程死區(qū)的PWM輸出??梢詽M(mǎn)足移動(dòng)機(jī)器人的牽引電機(jī)、舵機(jī)及云臺(tái)電機(jī)的控制需求。

3控制器軟件系統(tǒng)設(shè)計(jì)

本設(shè)計(jì)采用基于實(shí)時(shí)操作系統(tǒng)的軟件設(shè)計(jì)方案。與傳統(tǒng)前后臺(tái)式程序設(shè)計(jì)相比,基于實(shí)時(shí)內(nèi)核的程序設(shè)計(jì)具有時(shí)間確定性強(qiáng)、便于功能擴(kuò)展和剪裁等優(yōu)點(diǎn)。uC/OS- II是一種源代碼公開(kāi)的實(shí)時(shí)內(nèi)核,已經(jīng)取得了美國(guó)航空管理局(Federal Aviation Administration ,FAA)的安全認(rèn)證,是一款成熟的嵌人式操作系統(tǒng)。
    uC/OS-II實(shí)時(shí)操作系統(tǒng)內(nèi)核的核心功能是任務(wù)調(diào)度和管理,通過(guò)任務(wù)調(diào)度器總是將CPU的使用權(quán)賦予就緒的具有最高優(yōu)先權(quán)的任務(wù)。任務(wù)調(diào)度器的工作流程是首先確定當(dāng)前時(shí)刻應(yīng)獲得CPU使用權(quán)的任務(wù),然后引發(fā)一次軟件中斷,在中斷服務(wù)程序中將CPU各寄存器的當(dāng)前值(即斷點(diǎn)數(shù)據(jù))保存在即將被剝奪CPU使用權(quán)的任務(wù)的堆棧中。最后,從待運(yùn)行任務(wù)的堆棧中恢復(fù)其上一次被剝奪CPU使用權(quán)時(shí)的斷點(diǎn)數(shù)據(jù),實(shí)現(xiàn)任務(wù)的切換.

3.1  uC/OS-II內(nèi)核在DSP上的移植

uC/0S-II是一個(gè)通用型內(nèi)核,要在DSP上運(yùn)行必須進(jìn)行移植。所謂移植就是使一個(gè)通用的操作系統(tǒng)內(nèi)核能夠在一個(gè)特定的處理器/控制器上有效地運(yùn)行。
實(shí)時(shí)內(nèi)核移植的主要工作是編寫(xiě)與處理器相關(guān)代碼,移植的步驟如下:
(1)編輯頭文件OS_CPU.H,將uGIOS-II自定義的數(shù)據(jù)類(lèi)型與TMS320F2812DSP的數(shù)據(jù)類(lèi)型匹配起來(lái)。
(2)在程序文件OS_CPU_C.C中編寫(xiě)任務(wù)堆棧初始化函數(shù)OSTaskStklnit ()。文件中其他函數(shù)用于擴(kuò)展系統(tǒng)功能,在本設(shè)計(jì)中只聲明了這些函數(shù),而沒(méi)有編寫(xiě)函數(shù)體。
(3)在程序文件OS_CPU_A.ASM中用匯編語(yǔ)言編寫(xiě)4個(gè)系統(tǒng)函數(shù)OSStartHighRay() ,OSCtxSw(),OSIntCtxSw()OSTick-ISR().
(4)編輯頭文件OS CFG.H。是實(shí)現(xiàn)uC/OS- II的可剪裁性的關(guān)鍵。
(5)測(cè)試移植代碼。
(6)編寫(xiě)驅(qū)動(dòng)程序庫(kù)。

3.2基于實(shí)時(shí)內(nèi)核的程序設(shè)計(jì)

基于實(shí)時(shí)內(nèi)核的多任務(wù)系統(tǒng)可劃分為兩個(gè)層次,即系統(tǒng)層和應(yīng)用層。系統(tǒng)層由內(nèi)核和驅(qū)動(dòng)程序庫(kù)組成,而應(yīng)用層包括用于達(dá)成機(jī)器人任務(wù)目標(biāo)的全部代碼。
在本方案應(yīng)用層程序設(shè)計(jì)中,將機(jī)器人的任務(wù)分解成AD采集、觸碰開(kāi)關(guān)量信號(hào)采集、測(cè)距開(kāi)關(guān)量采集、頻率量采集、機(jī)器人運(yùn)動(dòng)控制、決策和信息顯示等幾個(gè)用戶(hù)任務(wù)。并為共享數(shù)據(jù)和資源設(shè)置相應(yīng)的信號(hào)量保證任務(wù)的同步。系統(tǒng)中各任務(wù)及其同步機(jī)制如圖2所示。

嵌入式移動(dòng)機(jī)器人控制器設(shè)計(jì)流體仿真分析圖片圖片2


數(shù)據(jù)采集任務(wù)將數(shù)據(jù)暫存在相應(yīng)的緩沖區(qū)中。決策任務(wù)通過(guò)融合這些信息,實(shí)現(xiàn)"感知-動(dòng)作"映射。顯示任務(wù)根據(jù)各傳感數(shù)據(jù)點(diǎn)亮或熄滅相應(yīng)的狀態(tài)指示燈。運(yùn)動(dòng)控制任務(wù)根據(jù)決策任務(wù)的決策結(jié)果控制機(jī)器人的運(yùn)動(dòng)。本方案為4個(gè)傳感器數(shù)據(jù)緩沖區(qū)設(shè)置了信號(hào)量集,用于同步數(shù)據(jù)采集任務(wù)和決策、顯示任務(wù)。決策任務(wù)將最終決策通過(guò)消息郵箱通知運(yùn)動(dòng)控制任務(wù)。

4實(shí)驗(yàn)及結(jié)果分析

如前所述,實(shí)時(shí)內(nèi)核移植完成后應(yīng)對(duì)移植代碼進(jìn)行測(cè)試,以驗(yàn)證移植是否成功。然后,本文以三輪式小車(chē)為載體進(jìn)行了移動(dòng)機(jī)器人避障實(shí)驗(yàn)。

4.1實(shí)時(shí)內(nèi)核移植代碼測(cè)試

本測(cè)試建立了兩個(gè)任務(wù)Task 1()和Task2(),分別在通用UO引腳GPIOF3 、GPIOFI2上產(chǎn)生方波。Task l()和Task2()的優(yōu)先級(jí)分別為0和1,通過(guò)一個(gè)互斥型信號(hào)量flag同步。這兩個(gè)用戶(hù)任務(wù)的工作流程如表1所示程序運(yùn)行后,在示波器上觀察到GPIOF3(上),GPIOFI2(下)引腳上的電平變化如圖3所示。其中,圖3(a)所示為,Task2 ( )無(wú)限期等待信號(hào)量flag情況下的引腳電平變化。圖3(b)所示是Task2()等待信號(hào)量flag的時(shí)限設(shè)為20個(gè)節(jié)拍時(shí)的引腳電平變化。

嵌入式移動(dòng)機(jī)器人控制器設(shè)計(jì)流體仿真分析圖片圖片3

嵌入式移動(dòng)機(jī)器人控制器設(shè)計(jì)流體仿真分析圖片圖片4


從圖3(a)可見(jiàn)Task 1()將GPIOF3上的電平翻轉(zhuǎn)后,延時(shí)30個(gè)節(jié)拍(對(duì)應(yīng)圖中三格)發(fā)送信號(hào)量,由于Task2()在無(wú)限期地等待信號(hào)量,所以,當(dāng)Taskl()延時(shí)期滿(mǎn)后,Task2)立即獲得信號(hào)量,并翻轉(zhuǎn)GPIOFI2引腳電平。在圖3(b)中,Task2()延時(shí)10個(gè)節(jié)拍(一格)后,申請(qǐng)信號(hào)量,但是由于Taskl()未釋放信號(hào)量,所以進(jìn)人等待狀態(tài),等待20個(gè)節(jié)拍后,放棄等待,繼續(xù)運(yùn)行程序運(yùn)行結(jié)果表明,實(shí)時(shí)內(nèi)核已能正常工作,移植成功。

4.2移動(dòng)機(jī)器人避障實(shí)驗(yàn)

本實(shí)驗(yàn)采用一個(gè)三輪小車(chē)作為機(jī)器人本體。小車(chē)由左右兩個(gè)微型電機(jī)驅(qū)動(dòng),電機(jī)內(nèi)部集成了功率放大電路。車(chē)體前端安裝兩個(gè)夏普(SHARP)GP2D12型的紅外測(cè)距傳感器,輸出信號(hào)為0V-5V模擬電壓。
DSP根據(jù)測(cè)距傳感數(shù)據(jù)判斷障礙信息,依據(jù)"感知一動(dòng)作"映射表作出決策,控制電機(jī)的運(yùn)轉(zhuǎn),從而驅(qū)動(dòng)小車(chē)避開(kāi)障礙物。"感知一動(dòng)作"映射表如圖4所示,該映射表以"表"的形式存儲(chǔ)在DSP的存儲(chǔ)器中。

嵌入式移動(dòng)機(jī)器人控制器設(shè)計(jì)流體仿真分析圖片圖片5


本實(shí)驗(yàn)使用4個(gè)用戶(hù)任務(wù)用戶(hù)任務(wù)task_ad(), task_decide(),task_led(),task_wm(),分別用于采集模擬數(shù)據(jù)、決策、LED顯示控制和運(yùn)動(dòng)控制(電機(jī)控制)。
避障實(shí)驗(yàn)在小型機(jī)器人昆球場(chǎng)地中進(jìn)行。小車(chē)向任意初始方向出發(fā),到達(dá)場(chǎng)地邊緣后改為平行于場(chǎng)地邊緣前進(jìn)。到達(dá)拐角處,轉(zhuǎn)而沿另一邊緣前進(jìn)。圖5所示為小車(chē)到達(dá)場(chǎng)地邊緣和在拐角處轉(zhuǎn)向時(shí)的場(chǎng)景。

嵌入式移動(dòng)機(jī)器人控制器設(shè)計(jì)流體仿真分析圖片圖片6


實(shí)驗(yàn)結(jié)果表明,該控制器可以控制小車(chē)以極少的碰撞避開(kāi)環(huán)境中障礙物。考慮到實(shí)驗(yàn)是在只有兩個(gè)傳感器的條件下進(jìn)行的.這種碰撞是合理的。

5結(jié)束語(yǔ)

本文所提方案由實(shí)時(shí)多任務(wù)內(nèi)核和DSP分別構(gòu)成軟硬件平臺(tái),一方面,克服了控制器的性能與體積的矛盾,具有較高的性?xún)r(jià)比,另一方面簡(jiǎn)化了應(yīng)用程序設(shè)計(jì),提高了系統(tǒng)功能的可擴(kuò)展性和剪裁性,具有較高的開(kāi)放性。


開(kāi)放分享:優(yōu)質(zhì)有限元技術(shù)文章,助你自學(xué)成才

相關(guān)標(biāo)簽搜索:嵌入式移動(dòng)機(jī)器人控制器設(shè)計(jì) CFD培訓(xùn) CFD流體分析培訓(xùn) cfd視頻 fluent cfx pumplinx軟件培訓(xùn) Fluent、CFX流體分析 HFSS電磁分析 Ansys培訓(xùn) Abaqus培訓(xùn) Autoform培訓(xùn) 有限元培訓(xùn) 

編輯
在線報(bào)名:
  • 客服在線請(qǐng)直接聯(lián)系我們的客服,您也可以通過(guò)下面的方式進(jìn)行在線報(bào)名,我們會(huì)及時(shí)給您回復(fù)電話(huà),謝謝!
驗(yàn)證碼

全國(guó)服務(wù)熱線

1358-032-9919

廣州公司:
廣州市環(huán)市中路306號(hào)金鷹大廈3800
電話(huà):13580329919
          135-8032-9919
培訓(xùn)QQ咨詢(xún):點(diǎn)擊咨詢(xún) 點(diǎn)擊咨詢(xún)
項(xiàng)目QQ咨詢(xún):點(diǎn)擊咨詢(xún)
email:kf@1cae.com