基于軟硬件協(xié)同處理的小型輪式機(jī)器人平臺(tái)
1項(xiàng)目背景及目標(biāo)
1.1項(xiàng)目背景
本文課題源于華中科技大學(xué)瑞薩實(shí)驗(yàn)室的移動(dòng)機(jī)器人項(xiàng)目以及智能車(chē)競(jìng)賽,主要目的是基于嵌入式技術(shù)和控制系統(tǒng)原理,基于FPGA結(jié)合ARM的基本架構(gòu)設(shè)計(jì)一個(gè)小型移動(dòng)機(jī)器人平臺(tái),可以研究自動(dòng)駕駛、自動(dòng)泊車(chē)、圖像處理、智能控制算法等機(jī)器人應(yīng)用。
該平臺(tái)是一種模塊化、通用、層次結(jié)構(gòu)的設(shè)計(jì)方案,使得研究人員可以根據(jù)自己的要求選擇不同的模塊通過(guò)簡(jiǎn)單的組合,構(gòu)建符合要求的移動(dòng)機(jī)器人平臺(tái)。所設(shè)計(jì)的小型移動(dòng)機(jī)器人平臺(tái)不光有助于機(jī)器人技術(shù)領(lǐng)域的研究,也是一個(gè)理想的嵌入式技術(shù)的研究和驗(yàn)證平臺(tái)。
移動(dòng)機(jī)器人領(lǐng)域在可重配置和模塊化方面一直有大量的研究。隨著FPGA在嵌入式系統(tǒng)中的廣泛應(yīng)用,通過(guò)硬件語(yǔ)言編程來(lái)實(shí)現(xiàn)所需的邏輯功能、實(shí)現(xiàn)硬件平臺(tái)的重配置,為可重配置和模塊化機(jī)器人的設(shè)計(jì)提供了一種新的方法。FPGA負(fù)責(zé)實(shí)現(xiàn)連接各類(lèi)傳感器和執(zhí)行機(jī)構(gòu)的邏輯電路功能和必要的信號(hào)處理,只需編寫(xiě)不同的硬件語(yǔ)言程序,即可實(shí)現(xiàn)所需的電路功能,連接相應(yīng)的傳感器和執(zhí)行機(jī)構(gòu),實(shí)現(xiàn)硬件的重新配置。隨著基于FPGA的SOPC技術(shù)的發(fā)展,使用SOPC技術(shù)來(lái)實(shí)現(xiàn)可重配置的機(jī)器人控制器也成為了機(jī)器人平臺(tái)研究的熱點(diǎn)。然而基于開(kāi)發(fā)控制系統(tǒng)的商業(yè)性、系統(tǒng)可升級(jí)性、算法復(fù)雜度以及工具鏈、生態(tài)鏈成熟度的角度考慮,使用基于ARM的CPU作為主控制器更易于實(shí)現(xiàn)該平臺(tái)。因此本項(xiàng)目將基于分立的ARM和FPGA基本架構(gòu)實(shí)現(xiàn)移動(dòng)機(jī)器人平臺(tái)。
該機(jī)器人平臺(tái)系統(tǒng)分為三個(gè)層次:實(shí)時(shí)控制層、控制數(shù)據(jù)流層、傳感器與驅(qū)動(dòng)器層。系統(tǒng)高兩層使用串行計(jì)算的MCU(ARM7)和并行計(jì)算的FPGA(Spartan6)這樣的AMP架構(gòu),處理器間高效的通信將是提升整個(gè)系統(tǒng)性能的關(guān)鍵,基于開(kāi)發(fā)經(jīng)驗(yàn),本平臺(tái)將采用EMC與SSP這樣串并結(jié)合的通信方式。平臺(tái)還可以上擴(kuò)一個(gè)高端嵌入式系統(tǒng)接口,ARM7可以通過(guò)USB與ARM Cortex A9通信,完成更復(fù)雜的功能。傳感器與驅(qū)動(dòng)器層可以搭載多種傳感器與驅(qū)動(dòng)器模塊,運(yùn)算在FPGA中完成。
關(guān)于軟件平臺(tái)設(shè)計(jì),該小型移動(dòng)機(jī)器人可以移植非常有商業(yè)前景的TOPPERS實(shí)時(shí)嵌入式操作系統(tǒng),既可以在ARM7上移植,也可以考慮在Spartan6上移植。
該課題思想已經(jīng)在專業(yè)課程、移動(dòng)機(jī)器人項(xiàng)目以及兩項(xiàng)智能車(chē)競(jìng)賽中得到數(shù)年設(shè)計(jì)的充分驗(yàn)證,團(tuán)隊(duì)有成熟的硬件平臺(tái)、OS及組件系統(tǒng)移植范例、IP設(shè)計(jì)范例、算法資源和測(cè)試數(shù)據(jù),已經(jīng)開(kāi)始相關(guān)模塊的實(shí)現(xiàn)。
1.1.1FPGA處理底層密集數(shù)據(jù)流
FPGA相對(duì)CPU的特點(diǎn)在于并行計(jì)算和高速,因此適合于處理批量數(shù)據(jù)。針對(duì)本項(xiàng)目,F(xiàn)PGA負(fù)責(zé)數(shù)字圖像處理、智能控制、圖像人機(jī)接口等典型應(yīng)用的底層密集數(shù)據(jù)流。
以點(diǎn)陣液晶LCM作為基本人機(jī)接口為例說(shuō)明。引入映射緩沖區(qū)這一思想,可以把LCM接口的物理接口部分和數(shù)據(jù)部分分開(kāi),即ARM只讀寫(xiě)映射區(qū)的數(shù)據(jù),而FPGA負(fù)責(zé)液晶的具體時(shí)序要求,通用性、可移植性大大增強(qiáng)。引入雙口RAM,則可實(shí)現(xiàn)ARM的快速數(shù)據(jù)通道EMC接口與LCM的慢數(shù)據(jù)通道接口的跨時(shí)鐘域設(shè)計(jì)。這樣一來(lái),系統(tǒng)的同步、模塊化、高效大大加強(qiáng)。同時(shí)可以利用C語(yǔ)言邏輯描述優(yōu)勢(shì)實(shí)現(xiàn)復(fù)雜的畫(huà)圖功能,而利用Verlilog HDL物理并行優(yōu)勢(shì)在數(shù)據(jù)間插入復(fù)雜的時(shí)序、命令及狀態(tài)機(jī)操作。
1.1.2ARM處理上層復(fù)雜控制流
CPU相對(duì)硬件的特點(diǎn)是復(fù)雜函數(shù)計(jì)算。實(shí)時(shí)嵌入式操作系統(tǒng)TOPPERS在ARM7上的移植可以豐富系統(tǒng)的應(yīng)用及加強(qiáng)實(shí)時(shí)性。同時(shí)結(jié)合豐富的協(xié)議棧及應(yīng)用支持,系統(tǒng)功能可以得到較大擴(kuò)展。利用ARM處理復(fù)雜控制流并擴(kuò)展功能、利用FPGA處理密集數(shù)據(jù)流,正是該平臺(tái)最顯著的特點(diǎn)。
1.2主要實(shí)現(xiàn)目標(biāo)
1.2.1ARM與FPGA高效通信及重配置
采用的ARM7芯片擁有32 位外部存儲(chǔ)器控制器EMC以及串行同步接口SSP。EMC支持異步靜態(tài)存儲(chǔ)器(如SRAM、Flash)和動(dòng)態(tài)存儲(chǔ)器(例如SDRAM)的并行接口,而SSP兼容SSI、SPI、MicroWave等格式,并支持DMA傳輸。
為了充分發(fā)揮接口性能,ARM7與Spartan6之間的通信采用雙向EMC與雙向SSP結(jié)合的方式,其中一路SSP被配置成SPI模式,完成ARM對(duì)FPGA從串配置。
1.2.2FPGA實(shí)現(xiàn)圖像處理
本項(xiàng)目使用攝像頭主要是為了完成循線和標(biāo)志識(shí)別,上層控制流所需的信息并沒(méi)有那么豐富,大部分無(wú)用信息可以通過(guò)可編程硬件濾波、圖像分割、圖像細(xì)化;其次,高速運(yùn)動(dòng)的機(jī)器人平臺(tái)捕捉的圖像也是各幀運(yùn)動(dòng)的,需要對(duì)運(yùn)動(dòng)幀做濾波、趨勢(shì)判斷處理。由此產(chǎn)生的數(shù)據(jù)流均由可編程硬件FPGA完成。
1.2.3FPGA實(shí)現(xiàn)在系統(tǒng)圖像顯示
針對(duì)顯示輸出設(shè)備,有兩類(lèi)任務(wù):車(chē)載顯示和無(wú)線顯示。
車(chē)載顯示可利用小型LCM顯示基本的人機(jī)界面和實(shí)時(shí)監(jiān)控?cái)?shù)據(jù);而無(wú)線顯示可采用無(wú)線局域網(wǎng)等網(wǎng)絡(luò)連接機(jī)器人平臺(tái)和上位機(jī),實(shí)時(shí)回傳攝像頭圖像,還可以在FPGA中處理計(jì)算生成的路徑,將二者復(fù)合后回傳。
1.2.4FPGA實(shí)現(xiàn)運(yùn)動(dòng)控制算法
傳統(tǒng)PID基本算法并不會(huì)占用CPU多少時(shí)間,但考慮到運(yùn)動(dòng)控制中對(duì)雙閉環(huán)、智能算法、PMSM等更為迫切的需求,同時(shí)考慮到系統(tǒng)可擴(kuò)展可重構(gòu)性能,采用FPGA實(shí)現(xiàn)運(yùn)動(dòng)控制是一種合適的解決方案。
1.2.5FPGA實(shí)現(xiàn)模糊控制等智能算法
高級(jí)語(yǔ)言具有比硬件描述語(yǔ)言更好的行為級(jí)建模能力,而基于System Generator和Matlab Simulink的軟硬件協(xié)同設(shè)計(jì)方法正成為一大熱門(mén)控制系統(tǒng)開(kāi)發(fā)方法。
模糊控制這類(lèi)智能算法無(wú)需建立被控對(duì)象的數(shù)學(xué)模型,對(duì)控制對(duì)象的參數(shù)變化或非線性特性具有較好的適應(yīng)能力,對(duì)干擾或噪聲具有更強(qiáng)的抑制功能。但其實(shí)現(xiàn)需要較高的并行程度,考慮到可重構(gòu)性,由FPGA完成模糊控制硬件,而由ARM完成重構(gòu)或升級(jí),具有非常好的架構(gòu)優(yōu)點(diǎn)。
在本項(xiàng)目中使用模糊控制,既可以應(yīng)用到控制層控制策略、傳感器層數(shù)據(jù)融合,也可以應(yīng)用到驅(qū)動(dòng)層電機(jī)控制,可以說(shuō)各個(gè)層次都有應(yīng)用。
本項(xiàng)目考慮在Matlab Simulink環(huán)境下建立模糊控制系統(tǒng)基本模型,得到理想仿真結(jié)果后,搭建System Generator模型并完成定點(diǎn)仿真,完成軟件硬件協(xié)同設(shè)計(jì)。
1.2.6FPGA實(shí)現(xiàn)傳感器數(shù)據(jù)融合
控制流層需要的信息更多的是抽象級(jí)、行為級(jí),而具體傳感器帶來(lái)了大量的數(shù)據(jù)流,如何組合出各類(lèi)傳感器,并提取出有效的信息是一大關(guān)鍵。為此,可以采用數(shù)據(jù)融合的方式,具體可以使用模糊控制等智能算法。
2系統(tǒng)原理及技術(shù)
2.1系統(tǒng)結(jié)構(gòu)
2.1.1機(jī)器人平臺(tái)
暫定DFRobot的ROB0001:4輪驅(qū)動(dòng),無(wú)轉(zhuǎn)向驅(qū)動(dòng),需要通過(guò)差速轉(zhuǎn)向。
Four encodered DC motors
Includes 4x gearmotors
Aluminum frame and mounting hardware
Speed: 80 cm/s
Electronics, camera, servo motors sold separately
Package Dimensions: 360mm x 355mm x 165mm
27cm (Length) x 20cm (width) x 6cm(height) (rectangular base)
27cm (Length) x 20cm (width) x 7cm(height) (upper deck)
也可以考慮飛思卡爾或瑞薩智能車(chē)平臺(tái),帶轉(zhuǎn)向驅(qū)動(dòng)。
2.1.2控制系統(tǒng)結(jié)構(gòu)
電機(jī)驅(qū)動(dòng)環(huán)
車(chē)體控制環(huán)
2.1.3處理與計(jì)算平臺(tái)架構(gòu)
系統(tǒng)分為ARM實(shí)時(shí)控制流層、FPGA控制與數(shù)據(jù)流層、傳感器與驅(qū)動(dòng)器層這三層,最底層將由外擴(kuò)的IO控制,運(yùn)算在FPGA中完成。高性能處理層暫不實(shí)現(xiàn)。
硬件結(jié)構(gòu)如下:
內(nèi)部結(jié)構(gòu)如下:
2.2硬件流程
2.2.1圖像處理模塊
與一般視頻圖像處理不同,該平臺(tái)是針對(duì)機(jī)器而非人而進(jìn)行處理,因此需要得到機(jī)器能有效時(shí)別的圖像幀中的路徑、標(biāo)志等。時(shí)序控制、濾波、分割、選擇、壓縮、運(yùn)動(dòng)檢測(cè)、跨時(shí)鐘域同步等步驟。
2.2.2電機(jī)控制模塊
轉(zhuǎn)速指令與電機(jī)控制器分開(kāi),后者由FPGA完成。
2.2.3模糊算法模塊
將T-S型FLC用在電機(jī)轉(zhuǎn)矩控制中,發(fā)揮FPGA的高度并行及快速特性。
2.3軟件流程
2.3.1任務(wù)調(diào)度
2.3.2圖像處理流程
2.3.3路徑識(shí)別
2.3.4循線控制算法
由于可以切內(nèi)彎,因此可以分直道、普通彎道、S彎道三種情況來(lái)處理。而這三種情況可以通過(guò)主路徑曲線的拐點(diǎn)數(shù)區(qū)分。
跟蹤控制
轉(zhuǎn)向控制
動(dòng)力控制
3需要的資源
3.1主要硬件
Nexys™3 Spartan-6 FPGA Board、NXP LPC2478、Xilinx XC6LX9-TQG144。
3.2儀器
ChipScope PRO、示波器、萬(wàn)用表。
3.3開(kāi)發(fā)工具
FPGA:ISE Design Suite、Modelsim、Matlab Simulink SystemGnerator;
ARM:Eclipse;
電路:Altium Designer。
評(píng)論