999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于Zedboard的視覺導(dǎo)航除草機器人控制系統(tǒng)設(shè)計*

2014-03-21 05:13:00肖志遠杜啟亮田聯(lián)房秦傳波張勤
電子技術(shù)應(yīng)用 2014年6期
關(guān)鍵詞:設(shè)備

肖志遠,杜啟亮,田聯(lián)房,秦傳波,張勤

(華南理工大學(xué)自動化科學(xué)與工程學(xué)院,廣東廣州510640)

水田除草機器人是指具備人工智能識別功能、能夠通過圖像或者其他傳感器對雜草的具體情況進行識別并能夠通過推理判斷以產(chǎn)生具體的指令來指示機械除草機構(gòu)進行除草的一種智能裝置[1]。

隨著工業(yè)機器人的發(fā)展,一些發(fā)達國家(如日本、美國等)紛紛展開農(nóng)業(yè)機器人的研究和開發(fā)并已經(jīng)取得了一些階段性成果。但由于一些經(jīng)濟特殊性的問題,還沒有達到實用化的程度。日本發(fā)明了一種小型水田除草機器人,它體積很小,由電池供電,完成一次除草作業(yè)后,可通過轉(zhuǎn)彎的方式換到另一除草位置進行下一輪除草作業(yè)[2]。我國也開始了農(nóng)業(yè)機器人的研究,南京林業(yè)大學(xué)的陳勇等發(fā)明了一種高效除草機器人,它是由自動導(dǎo)航和雜草識別攝像裝置、行間切割涂抹與行內(nèi)除草機構(gòu)以及控制系統(tǒng)組成[2]的。

1 機器人控制系統(tǒng)整體設(shè)計

1.1 控制系統(tǒng)需求分析

根據(jù)除草機器人所要完成的功能可將系統(tǒng)劃分為如圖1所示的控制框圖。由圖可以看出,控制系統(tǒng)主要分為三大部分:第一部分為上位機監(jiān)控部分;第二部分為運動控制部分;第三部分為視頻采集及識別部分。

(1)上位機監(jiān)控部分:此部分主要實現(xiàn)對機器人的實時控制和合理操作。上位機要與運動控制部分進行數(shù)據(jù)通信[3]。

(2)運動控制部分:此部分主要負責(zé)接收上位機命令,并負責(zé)將這些數(shù)據(jù)進行判斷解析,將其轉(zhuǎn)換為電機控制信號來完成機器人的運行。

(3)視頻采集方案:此部分要實時采集水田秧苗圖像,并將圖像實時傳到PC,從而可以在PC上用瀏覽器來實時觀察圖像。因此,這里采用WiFi是非常合適的。

圖1 機器人控制方案

1.2 系統(tǒng)主控方案

本設(shè)計采用Zynq-7000平臺,Zynq-7000實現(xiàn)了雙核Cortex-A9 MPcore和最新的28 nm 7系列可編程邏輯的緊密集成。Zynq芯片內(nèi)部可以分為PS(Processing System)和PL(Programmable Logic)兩部分,ZedBoard是基于Xilinx ZynqTM-7000擴展式處理平臺的低成本開發(fā)板。它的可擴展接口使得用戶可以方便訪問處理系統(tǒng)和可編程邏輯,創(chuàng)建獨特而強大的設(shè)計[4-5]。

2 機器人控制系統(tǒng)實現(xiàn)

2.1 上位機部分

利用VC++6.0開發(fā)了除草機器人的人機交互界面,開發(fā)類庫是基于MFC的對話框設(shè)計的,通過ZigBee實現(xiàn)了上位機與Zedboard的通信。人機交互界面如圖2所示,主要分為3部分來控制。通過手柄和界面上的按鈕發(fā)送指令和數(shù)據(jù)。

圖2 人機交互界面

行走電機是通過M0和M1編輯框中的數(shù)值設(shè)置速度大小,運動方向可由Up和Down來控制,注意這里不選擇Select按鈕。

在圖2所示界面中,選中Select,這時,為控制4個推桿電機,鉤選R1、R2、1、2、3、4、L1、L2、Up、Down、Left、Right選項,每兩個選項控制一個推桿電機,如R1控制一號推桿的前進,R2控制一號推桿的后退,推桿復(fù)位、設(shè)置p參數(shù)、解除復(fù)位這3個按鈕用于4個推桿電機初始化的設(shè)置。

2.2 運動控制部分

2.2.1 運動控制部分結(jié)構(gòu)框圖

運動控制部分結(jié)構(gòu)框圖如圖3所示。

圖3 運動控制部分結(jié)構(gòu)框圖

Zedboard通過ZigBee接收從上位機來的數(shù)據(jù),通過增量式PID算法整定控制PWM波形。Zedboard作為帶FPGA的處理器,利用FPGA的邏輯資源十分有意義。本文將介紹產(chǎn)生一路PWM發(fā)生器的IP核,如果要產(chǎn)生多路PWM發(fā)生器,對FPGA來說僅僅是多消耗一些邏輯資源而已,其過程是一樣的。

在Zedboard中運行Linux系統(tǒng),要使用本設(shè)計FPGA的IP核,必須為這個IP核開發(fā)Linux系統(tǒng)上的設(shè)備驅(qū)動,使得運行在Linux系統(tǒng)上的應(yīng)用程序可以使用這個驅(qū)動程序與FPGA端進行通信,從而控制PWM的輸出。

2.2.2 增量式PID算法

PID算法廣泛應(yīng)用于控制系統(tǒng)中,本系統(tǒng)使用增量式PID算法,即:

增量式PID的輸出只與當(dāng)前拍和前兩拍的誤差有關(guān),因此累積誤差相對更小。上式中,e(n)對應(yīng)給定和反饋的偏差,u(n)對應(yīng)著輸出。增量式PID輸出的是控制量增量,并無積分作用,因此該方法適用于執(zhí)行機構(gòu)帶積分部件的對象,如電機等[6]。由于增量式PID輸出的是控制量增量,當(dāng)控制板出現(xiàn)故障時,誤動作影響較小,而執(zhí)行機構(gòu)本身有記憶功能,可保持原位,不會嚴(yán)重影響系統(tǒng)的工作。

2.2.3 PWM模塊的IP核設(shè)計

在Zynq上制作用戶IP核需要考慮如何與PS交換數(shù)據(jù)。有兩種方案,一種是EMIO交換數(shù)據(jù),一種是制作滿足AXI協(xié)議的IP核。通常采用第二種方案。Xilinx為用戶提供了Wizard,它會自動生成總線(AXI)相關(guān)的代碼,做好地址譯碼邏輯、讀寫控制邏輯,并在用戶工作區(qū)生成一些寄存器。本設(shè)計中的PL邏輯通過讀寫這些寄存器與PS交互[4]。

由于Zedboard運行的系統(tǒng)使用了FPGA資源,因此所開發(fā)的IP核必須在原有的工程里加入新的IP核,重新生成新的bit流文件,打開適合自己ise版本的官方demo,xps系統(tǒng)工程位于hwxps_proj文件夾下,打開這個xps工程。在xps中單擊Hardware->Create or Import Periphera進入歡迎界面,按照自己的要求定制IP核,完成IP核制作的向?qū)4]。

接下來把這個IP核添加進xps工程,在IP Catalog中的USER選項中找到它,雙擊添加到系統(tǒng)中,然后在Bus Interface中,分別修改MPD、添加接口、修改HDL sources[7-8]。修改完畢后,在project菜單中選擇Rescan User Repositories,從port中可以看到新添加的引腳,選擇為External Ports把引腳引出去。分配地址,修改ucf約束文件,產(chǎn)生bit流文件。導(dǎo)入到SDK中,新建一個fsbl工程,重新生成BOOT.BIN文件。這樣用戶IP核的部分就完成了。

2.2.4 Linux下PWM模塊驅(qū)動程序的開發(fā)

Linux提供了內(nèi)核模塊機制,模塊本身不被編譯入內(nèi)核映像,從而控制了內(nèi)核的大小,模塊一旦被加載,它就和內(nèi)核中的其他部分完全一樣。驅(qū)動程序是從來不主動運行的程序,而且等待應(yīng)用程序來調(diào)用。應(yīng)用程序通過內(nèi)核來調(diào)用驅(qū)動程序[9],實現(xiàn)與實際硬件設(shè)備的通信。一般分為字符設(shè)備、塊設(shè)備和網(wǎng)絡(luò)設(shè)備3種類型[10]。需為上面生成的IP核進行字符設(shè)備驅(qū)動的開發(fā)。

PWM模塊驅(qū)動程序主要分為4個部分:加載函數(shù),卸載函數(shù),設(shè)置PWM的周期函數(shù),設(shè)置PWM的占空比函數(shù)[4]。

(1)加載函數(shù),主要完成以下幾項工作:內(nèi)核注冊設(shè)備驅(qū)動,創(chuàng)建PWM設(shè)備類,利用利用PWM設(shè)備類創(chuàng)建一個PWM設(shè)備,在PWM設(shè)備中創(chuàng)建周期和占空比兩個文件,將PWM模塊的物理地址映射到虛擬地址上[4]。

(2)卸載函數(shù),這個主要是在rmmod模塊時完成清除的工作,注銷設(shè)備。

(3)設(shè)置pwm的周期函數(shù),修改前關(guān)閉pwm模塊,將數(shù)值寫入到寄存器中。

(4)設(shè)置pwm的占空比函數(shù),修改前關(guān)閉pwm模塊,將數(shù)值寫入到寄存器中。

完成了pwm驅(qū)動程序的編寫后,需要對驅(qū)動程序進行編譯,驅(qū)動程序的編譯依賴于內(nèi)核,這就和一般的應(yīng)用程序不同了。因此除了要在Linux主機下安裝交叉編譯工具之外,還要編譯和運行與Zedboard板子上的內(nèi)核版本一樣的內(nèi)核,然后編寫Makefile。Makefile中必須指定內(nèi)核所在的路徑,在這個Makefile的幫助下運行make即可生成編譯模塊。

2.3 視頻采集方案

2.3.1 搭建嵌入式Web服務(wù)器

Web服務(wù)器是連接在網(wǎng)絡(luò)上提供Web訪問服務(wù)的一種設(shè)備/程序。在Zedboard上運行一個提供Web服務(wù)的程序,使得Zedboard成為一個可以提供Web訪問服務(wù)的設(shè)備,這里選擇Boa服務(wù)器。

下載與移植Boa服務(wù)器,這里需要修改源碼目錄下的一些文件以及已經(jīng)發(fā)現(xiàn)的一些bug。

配置Boa服務(wù)器,在源碼目錄下找到boa.conf,在其基礎(chǔ)上做出自己的修改,配置Boa服務(wù)器。

在編譯配置完Boa服務(wù)器后,就需要在Zedboard上進行部署,完成相關(guān)的設(shè)置,保證與boa.conf中的配置相符。

2.3.2 網(wǎng)絡(luò)攝像機的移植和搭建

網(wǎng)絡(luò)攝像機可以提供實時捕獲的圖像。攝像頭捕獲的圖像數(shù)據(jù)很大,因此需要將其壓縮后進行網(wǎng)絡(luò)傳輸,接收端將接收到的壓縮數(shù)據(jù)進行解碼后播放。利用網(wǎng)絡(luò)攝像頭實時采集圖像的工作原理如圖4所示。

圖4 網(wǎng)絡(luò)攝像機工作原理

在安裝編碼軟件mjpg-streamer之前,需要安裝libtool工具盒移植JPEG編碼庫,移植mjpg-streamer需要修改源碼目錄中plugins/input_uvc目錄下的Makefile,然后使用交叉編譯。編譯完成后可以找到input_uvc.so、output_http.so,使用這兩個庫,將JPEG編碼庫生成的libjpg庫拷貝到Zedboard文件系統(tǒng),最好是/usr/lib/下。

在視頻采集方案中,將mjpg-streamer與Boa結(jié)合使用,結(jié)合Web服務(wù)器一起將實時圖像嵌入到網(wǎng)頁中,這樣就可以通過瀏覽器輸入Zedboard的IP地址來觀看傳回來的實時圖像。

3 實驗測試

測試:imsmodpwm_driver.ko

cd/sys/class/pwm_driver/pwm_device

echo1000>pwm_frequency

echo50>pwm_duty

產(chǎn)生頻率為10 kHz、占空比分別為50%和30%的PWM波,如圖5(a)、(b)所示。

圖5 占空比波形圖

打開火狐瀏覽器,輸入開發(fā)板的IP地址192.168.1.10,這時可以觀察到機器人傳回的實時圖像。

本設(shè)計是在Xilinx的Zynq平臺上進行實驗的。通過在機器人車身上安裝攝像頭可以實現(xiàn)對機器人的遠程控制。實驗結(jié)果表明,電機控制調(diào)節(jié)響應(yīng)快,電機驅(qū)動器運行穩(wěn)定可靠,實現(xiàn)了增量式PID閉環(huán)控制。通過WiFi接入機器人的無線路由,就可以獲取實時的圖像,能夠?qū)崿F(xiàn)對機器人的準(zhǔn)確控制,很好地滿足了實際的工程應(yīng)用。

[1]張濱,杜啟亮,田聯(lián)房.基于FPGA的步進電動機加減速控制器[J].微特電機,2012(08):71-74.

[2]夏歡.水田用除草機器人的結(jié)構(gòu)與實現(xiàn)[D].廣州:華南理工大學(xué),2012.

[3]呂常智,姚志科.基于無線通信的移動機器人遠程控制系統(tǒng)[J].煤礦機械,2012,33(3):239-241.

[4]陸佳華,江舟,馬岷.嵌入式系統(tǒng)軟硬件協(xié)同設(shè)計實戰(zhàn)指南基于Xilinx Zynq[M].北京:機械工業(yè)出版社,2013.

[5]何賓.Xilinx All Programmable Zynq-7000 Soc設(shè)計指南[M].北京:清華大學(xué)出版社,2013.

[6]杭啟樂,司賓強,朱紀(jì)洪,等.基于DSP和CPLD的四相容錯電機控制系統(tǒng)硬件設(shè)計[J].計算機測量與控制,2012,20(9):2413-2415.

[7]吳厚航.深入淺出玩轉(zhuǎn)FPGA[M].北京:北京航空航天大學(xué)出版社,2010.

[8]夏宇聞.Verilog數(shù)字系統(tǒng)設(shè)計教程[M].北京:北京航空航天大學(xué)出版社,2003.

[9]韋東山.嵌入式Linux應(yīng)用開發(fā)完全手冊[M].北京:人民郵電出版社,2008.

[10]宋寶華.Linux設(shè)備驅(qū)動開發(fā)詳解[M].北京:人民郵電出版社,2008.

猜你喜歡
設(shè)備
諧響應(yīng)分析在設(shè)備減振中的應(yīng)用
調(diào)試新設(shè)備
基于VB6.0+Access2010開發(fā)的設(shè)備管理信息系統(tǒng)
基于MPU6050簡單控制設(shè)備
電子制作(2018年11期)2018-08-04 03:26:08
廣播發(fā)射設(shè)備中平衡輸入與不平衡輸入的轉(zhuǎn)換
電子制作(2018年10期)2018-08-04 03:24:48
食之無味,棄之可惜 那些槽點滿滿的可穿戴智能設(shè)備
500kV輸變電設(shè)備運行維護探討
HTC斥資千萬美元入股虛擬現(xiàn)實設(shè)備商WEVR
IT時代周刊(2015年8期)2015-11-11 05:50:37
Automechanika Shanghai 2014 之“看” 汽保設(shè)備篇
如何在設(shè)備采購中節(jié)省成本
主站蜘蛛池模板: 亚洲国产综合精品一区| 19国产精品麻豆免费观看| 99视频有精品视频免费观看| 国产不卡在线看| 亚洲美女高潮久久久久久久| 亚洲综合片| 国产欧美另类| 国产在线91在线电影| 99这里只有精品在线| 91小视频在线| 国产亚洲成AⅤ人片在线观看| 扒开粉嫩的小缝隙喷白浆视频| 亚洲精品中文字幕午夜| 日韩 欧美 小说 综合网 另类| 亚洲午夜福利在线| 国产极品嫩模在线观看91| 国产jizz| 日韩一级毛一欧美一国产| 国产成人三级| 97se亚洲综合不卡| 国产91视频免费| 国产精品太粉嫩高中在线观看| 色丁丁毛片在线观看| 免费人欧美成又黄又爽的视频 | 中文字幕日韩欧美| 精品亚洲国产成人AV| 91最新精品视频发布页| 亚洲无码精彩视频在线观看| 五月激激激综合网色播免费| 高清亚洲欧美在线看| 国产精品无码久久久久久| 久久婷婷国产综合尤物精品| 99视频全部免费| 在线看片中文字幕| 日韩乱码免费一区二区三区| 午夜免费小视频| AV天堂资源福利在线观看| 国产成熟女人性满足视频| 日本成人福利视频| 高清色本在线www| 国产成人精品高清不卡在线| 国产区网址| 久久久久九九精品影院| 青青国产在线| 亚洲黄色高清| 国产资源站| 亚洲精品图区| 久久精品人人做人人爽97| 国产精品私拍在线爆乳| 午夜视频免费一区二区在线看| 中文字幕2区| 久久久久久久97| 国产精女同一区二区三区久| 日韩无码视频播放| 欧美区日韩区| 国产在线视频导航| 国产丝袜91| 亚洲免费黄色网| 久久激情影院| 特级毛片8级毛片免费观看| 特黄日韩免费一区二区三区| 免费aa毛片| 亚洲av无码人妻| 91久久国产热精品免费| 夜夜高潮夜夜爽国产伦精品| 22sihu国产精品视频影视资讯| 国产福利在线观看精品| 国产天天色| 99热这里只有精品5| аⅴ资源中文在线天堂| 精品少妇人妻一区二区| 国产区福利小视频在线观看尤物| 欧美综合区自拍亚洲综合天堂| 一级毛片基地| 风韵丰满熟妇啪啪区老熟熟女| 中文国产成人精品久久| 青青草原国产精品啪啪视频| 精品国产Av电影无码久久久| 亚洲人成人伊人成综合网无码| 国产乱人乱偷精品视频a人人澡| 国产99免费视频| 欧美一区日韩一区中文字幕页|