關(guān) 閉

新聞中心

EEPW首頁 > 工控自動化 > 設(shè)計應(yīng)用 > 基于軟硬件協(xié)同處理的小型輪式機(jī)器人平臺

基于軟硬件協(xié)同處理的小型輪式機(jī)器人平臺

作者: 時間:2017-06-08 來源:網(wǎng)絡(luò) 收藏

本文引用地址:http://m.butianyuan.cn/article/201706/352423.htm

1項目背景及目標(biāo)

1.1項目背景

本文課題源于華中科技大學(xué)瑞薩實驗室的移動機(jī)器人項目以及智能車競賽,主要目的是基于嵌入式技術(shù)和控制系統(tǒng)原理,基于FPGA結(jié)合的基本架構(gòu)設(shè)計一個小型移動機(jī)器人平臺,可以研究自動駕駛、自動泊車、圖像處理、等機(jī)器人應(yīng)用。

該平臺是一種模塊化、通用、層次結(jié)構(gòu)的設(shè)計方案,使得研究人員可以根據(jù)自己的要求選擇不同的模塊通過簡單的組合,構(gòu)建符合要求的移動機(jī)器人平臺。所設(shè)計的小型移動機(jī)器人平臺不光有助于機(jī)器人技術(shù)領(lǐng)域的研究,也是一個理想的嵌入式技術(shù)的研究和驗證平臺。

移動機(jī)器人領(lǐng)域在可重配置和模塊化方面一直有大量的研究。隨著FPGA在嵌入式系統(tǒng)中的廣泛應(yīng)用,通過硬件語言編程來實現(xiàn)所需的邏輯功能、實現(xiàn)硬件平臺的重配置,為可重配置和模塊化機(jī)器人的設(shè)計提供了一種新的方法。FPGA負(fù)責(zé)實現(xiàn)連接各類傳感器和執(zhí)行機(jī)構(gòu)的邏輯電路功能和必要的信號處理,只需編寫不同的硬件語言程序,即可實現(xiàn)所需的電路功能,連接相應(yīng)的傳感器和執(zhí)行機(jī)構(gòu),實現(xiàn)硬件的重新配置。隨著基于FPGA的SOPC技術(shù)的發(fā)展,使用SOPC技術(shù)來實現(xiàn)可重配置的機(jī)器人控制器也成為了機(jī)器人平臺研究的熱點。然而基于開發(fā)控制系統(tǒng)的商業(yè)性、系統(tǒng)可升級性、算法復(fù)雜度以及工具鏈、生態(tài)鏈成熟度的角度考慮,使用基于的CPU作為主控制器更易于實現(xiàn)該平臺。因此本項目將基于分立的和FPGA基本架構(gòu)實現(xiàn)移動機(jī)器人平臺。

該機(jī)器人平臺系統(tǒng)分為三個層次:實時控制層、控制數(shù)據(jù)流層、傳感器與驅(qū)動器層。系統(tǒng)高兩層使用串行計算的MCU(ARM7)和并行計算的FPGA(Spartan6)這樣的AMP架構(gòu),處理器間高效的通信將是提升整個系統(tǒng)性能的關(guān)鍵,基于開發(fā)經(jīng)驗,本平臺將采用EMC與SSP這樣串并結(jié)合的通信方式。平臺還可以上擴(kuò)一個高端嵌入式系統(tǒng)接口,ARM7可以通過USB與ARM Cortex A9通信,完成更復(fù)雜的功能。傳感器與驅(qū)動器層可以搭載多種傳感器與驅(qū)動器模塊,運算在FPGA中完成。

關(guān)于軟件平臺設(shè)計,該小型移動機(jī)器人可以移植非常有商業(yè)前景的TOPPERS實時嵌入式操作系統(tǒng),既可以在ARM7上移植,也可以考慮在Spartan6上移植。

該課題思想已經(jīng)在專業(yè)課程、移動機(jī)器人項目以及兩項智能車競賽中得到數(shù)年設(shè)計的充分驗證,團(tuán)隊有成熟的硬件平臺、OS及組件系統(tǒng)移植范例、IP設(shè)計范例、算法資源和測試數(shù)據(jù),已經(jīng)開始相關(guān)模塊的實現(xiàn)。

1.1.1FPGA處理底層密集數(shù)據(jù)流

FPGA相對CPU的特點在于并行計算和高速,因此適合于處理批量數(shù)據(jù)。針對本項目,F(xiàn)PGA負(fù)責(zé)數(shù)字圖像處理、智能控制、圖像人機(jī)接口等典型應(yīng)用的底層密集數(shù)據(jù)流。

以點陣液晶LCM作為基本人機(jī)接口為例說明。引入映射緩沖區(qū)這一思想,可以把LCM接口的物理接口部分和數(shù)據(jù)部分分開,即ARM只讀寫映射區(qū)的數(shù)據(jù),而FPGA負(fù)責(zé)液晶的具體時序要求,通用性、可移植性大大增強。引入雙口RAM,則可實現(xiàn)ARM的快速數(shù)據(jù)通道EMC接口與LCM的慢數(shù)據(jù)通道接口的跨時鐘域設(shè)計。這樣一來,系統(tǒng)的同步、模塊化、高效大大加強。同時可以利用C語言邏輯描述優(yōu)勢實現(xiàn)復(fù)雜的畫圖功能,而利用Verlilog HDL物理并行優(yōu)勢在數(shù)據(jù)間插入復(fù)雜的時序、命令及狀態(tài)機(jī)操作。

1.1.2ARM處理上層復(fù)雜控制流

CPU相對硬件的特點是復(fù)雜函數(shù)計算。實時嵌入式操作系統(tǒng)TOPPERS在ARM7上的移植可以豐富系統(tǒng)的應(yīng)用及加強實時性。同時結(jié)合豐富的協(xié)議棧及應(yīng)用支持,系統(tǒng)功能可以得到較大擴(kuò)展。利用ARM處理復(fù)雜控制流并擴(kuò)展功能、利用FPGA處理密集數(shù)據(jù)流,正是該平臺最顯著的特點。

1.2主要實現(xiàn)目標(biāo)

1.2.1ARM與FPGA高效通信及重配置

采用的ARM7芯片擁有32 位外部存儲器控制器EMC以及串行同步接口SSP。EMC支持異步靜態(tài)存儲器(如SRAM、Flash)和動態(tài)存儲器(例如SDRAM)的并行接口,而SSP兼容SSI、SPI、MicroWave等格式,并支持DMA傳輸。

為了充分發(fā)揮接口性能,ARM7與Spartan6之間的通信采用雙向EMC與雙向SSP結(jié)合的方式,其中一路SSP被配置成SPI模式,完成ARM對FPGA從串配置。

1.2.2FPGA實現(xiàn)圖像處理

本項目使用攝像頭主要是為了完成循線和標(biāo)志識別,上層控制流所需的信息并沒有那么豐富,大部分無用信息可以通過可編程硬件濾波、圖像分割、圖像細(xì)化;其次,高速運動的機(jī)器人平臺捕捉的圖像也是各幀運動的,需要對運動幀做濾波、趨勢判斷處理。由此產(chǎn)生的數(shù)據(jù)流均由可編程硬件FPGA完成。

1.2.3FPGA實現(xiàn)在系統(tǒng)圖像顯示

針對顯示輸出設(shè)備,有兩類任務(wù):車載顯示和無線顯示。

車載顯示可利用小型LCM顯示基本的人機(jī)界面和實時監(jiān)控數(shù)據(jù);而無線顯示可采用無線局域網(wǎng)等網(wǎng)絡(luò)連接機(jī)器人平臺和上位機(jī),實時回傳攝像頭圖像,還可以在FPGA中處理計算生成的路徑,將二者復(fù)合后回傳。

1.2.4FPGA實現(xiàn)運動控制算法

傳統(tǒng)PID基本算法并不會占用CPU多少時間,但考慮到運動控制中對雙閉環(huán)、智能算法、PMSM等更為迫切的需求,同時考慮到系統(tǒng)可擴(kuò)展可重構(gòu)性能,采用FPGA實現(xiàn)運動控制是一種合適的解決方案。

1.2.5FPGA實現(xiàn)模糊控制等智能算法

高級語言具有比硬件描述語言更好的行為級建模能力,而基于System Generator和Matlab Simulink的軟硬件協(xié)同設(shè)計方法正成為一大熱門控制系統(tǒng)開發(fā)方法。

模糊控制這類智能算法無需建立被控對象的數(shù)學(xué)模型,對控制對象的參數(shù)變化或非線性特性具有較好的適應(yīng)能力,對干擾或噪聲具有更強的抑制功能。但其實現(xiàn)需要較高的并行程度,考慮到可重構(gòu)性,由FPGA完成模糊控制硬件,而由ARM完成重構(gòu)或升級,具有非常好的架構(gòu)優(yōu)點。

在本項目中使用模糊控制,既可以應(yīng)用到控制層控制策略、傳感器層數(shù)據(jù)融合,也可以應(yīng)用到驅(qū)動層電機(jī)控制,可以說各個層次都有應(yīng)用。

本項目考慮在Matlab Simulink環(huán)境下建立模糊控制系統(tǒng)基本模型,得到理想仿真結(jié)果后,搭建System Generator模型并完成定點仿真,完成軟件硬件協(xié)同設(shè)計。

1.2.6FPGA實現(xiàn)傳感器數(shù)據(jù)融合

控制流層需要的信息更多的是抽象級、行為級,而具體傳感器帶來了大量的數(shù)據(jù)流,如何組合出各類傳感器,并提取出有效的信息是一大關(guān)鍵。為此,可以采用數(shù)據(jù)融合的方式,具體可以使用模糊控制等智能算法。

2系統(tǒng)原理及技術(shù)

2.1系統(tǒng)結(jié)構(gòu)

2.1.1機(jī)器人平臺

暫定DFRobot的ROB0001:4輪驅(qū)動,無轉(zhuǎn)向驅(qū)動,需要通過差速轉(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)

也可以考慮飛思卡爾或瑞薩智能車平臺,帶轉(zhuǎn)向驅(qū)動。

2.1.2控制系統(tǒng)結(jié)構(gòu)

  1. 電機(jī)驅(qū)動環(huán)

  1. 車體控制環(huán)

2.1.3處理與計算平臺架構(gòu)

系統(tǒng)分為ARM實時控制流層、FPGA控制與數(shù)據(jù)流層、傳感器與驅(qū)動器層這三層,最底層將由外擴(kuò)的IO控制,運算在FPGA中完成。高性能處理層暫不實現(xiàn)。

  1. 硬件結(jié)構(gòu)如下:

  1. 內(nèi)部結(jié)構(gòu)如下:

2.2硬件流程

2.2.1圖像處理模塊

與一般視頻圖像處理不同,該平臺是針對機(jī)器而非人而進(jìn)行處理,因此需要得到機(jī)器能有效時別的圖像幀中的路徑、標(biāo)志等。時序控制、濾波、分割、選擇、壓縮、運動檢測、跨時鐘域同步等步驟。

2.2.2電機(jī)控制模塊

轉(zhuǎn)速指令與電機(jī)控制器分開,后者由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路徑識別

2.3.4循線控制算法

由于可以切內(nèi)彎,因此可以分直道、普通彎道、S彎道三種情況來處理。而這三種情況可以通過主路徑曲線的拐點數(shù)區(qū)分。

  1. 跟蹤控制

  2. 轉(zhuǎn)向控制

  3. 動力控制

3需要的資源

3.1主要硬件

Nexys™3 Spartan-6 FPGA Board、NXP LPC2478、Xilinx XC6LX9-TQG144。

3.2儀器

ChipScope PRO、示波器、萬用表。

3.3開發(fā)工具

FPGA:ISE Design Suite、Modelsim、Matlab Simulink SystemGnerator;

ARM:Eclipse;

電路:Altium Designer。



評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉