基于單片機的麥克納姆輪全向小車控制設計_第1頁
基于單片機的麥克納姆輪全向小車控制設計_第2頁
基于單片機的麥克納姆輪全向小車控制設計_第3頁
基于單片機的麥克納姆輪全向小車控制設計_第4頁
基于單片機的麥克納姆輪全向小車控制設計_第5頁
已閱讀5頁,還剩29頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領

文檔簡介

基于單片機的麥克納姆輪全向小車控制設計 摘要本設計參考了國內(nèi)外現(xiàn)有的智能機器人,設計了一款麥克納姆全向輪式智能跟隨小車實驗樣機。通過樣機進行了物體識別和跟蹤功能的實驗與研究。首先,本設計介紹了小車的總體設計方案,包括小車的全向運動功能和物體識別功能。小車全向運動功能部分包括全向小車的運動原理即麥克納姆輪原理介紹,小車微控制器選型介紹與程序設計兩部分。其中全向小車運動原理部分給出了小車的運動學模型。然后敘述了跟蹤部分設計方案,詳細描述了PixyCMUcam5圖像處理模塊的功能及在設計中的使用。研究了Pixy與微控制器間的通信方法以及圖像處理數(shù)據(jù)的使用方法和相應程序編寫。除此之外還進行了不同環(huán)境下的實驗并進行參數(shù)調(diào)節(jié)以獲得最佳的識別效果。最后,設計介紹了小車全向移動功能與圖像處理模塊物體跟蹤功能的結(jié)合,實現(xiàn)了智能小車對指定物體的自動跟蹤功能。關(guān)鍵詞:全向小車;麥克納姆輪;Pixy;圖像處理AbstractThisdesignreferstotheexistingintelligentrobotsathomeandabroad,anddesignsaMcNamomnidirectionalwheeledintelligentfollow-upcarprototype.Experimentsandresearchonobjectrecognitionandtrackingfunctionswerecarriedoutthroughprototypes.Firstofall,thisdesignintroducestheoveralldesignofthecar,includingtheomnidirectionalmotionfunctionandobjectrecognitionfunctionofthecar.Theomnidirectionalmotionfunctionofthecarincludestheprincipleofthemovementoftheomni-directionaltrolley,namelytheintroductionoftheMecanumwheelprinciple,theintroductionandprogrammingofthetrolleymicrocontroller.Thekinematicsmodelofthetrolleyisgivenintheprincipleofomnidirectionaltrolleymovement.Thenthetrackingpartdesignschemeisdescribed,andthefunctionofPixyCMUimageprocessingmoduleanditsuseindesignaredescribedindetail.ThecommunicationmethodbetweenPixyandmicrocontrollerandthemethodofusingimageprocessingdataandcorrespondingprogramwritingarestudied.Inadditiontothis,experimentsindifferentenvironmentswerecarriedoutandparameteradjustmentsweremadetoobtainthebestrecognitionresults.Finally,thedesignintroducesthecombinationoftheomnidirectionalmovementfunctionofthetrolleyandtheobjecttrackingfunctionoftheimageprocessingmodule,andrealizestheautomatictrackingfunctionofthesmartcartothespecifiedobject.Keywords:OmnidirectionalVehicle;MecanumWheel;Pixy;ImageProcessing目錄TOC\o"1-3"\h\u8738第1章緒論 第1章緒論1.1課題研究背景及意義機器人是20世紀人類最偉大的發(fā)明之一。從某種意義上來講,一個國家的機器人的技術(shù)水平反映了這個國家的綜合科技實力。目前,機器人的應用已經(jīng)逐漸在工業(yè)領域成熟起來,并且在軍事、服務、醫(yī)療、娛樂等非工業(yè)領域急速擴張發(fā)展。毋庸置疑,機器人技術(shù)將在本世紀得到更加長足的發(fā)展。移動機器人的研究最早始于20世紀60年代末期,當時出現(xiàn)了一大批噴涂、裝配、機械加工、弧焊電焊等類型的工業(yè)用機器人,這些機器人具有極高的實用性,大大提高了生產(chǎn)線產(chǎn)品的一致性和質(zhì)量,使勞動強度降低并提高生產(chǎn)效率,避免人類在危險、惡劣的生產(chǎn)環(huán)節(jié)中受到傷害,讓人類有更多精力投入到高級的工作之中而不是重復簡單的體力勞動REF_Ref25828\n\h[1]。在經(jīng)過一段時間的發(fā)展,機器人逐漸發(fā)展為一個類群,按照其應用可以分為工業(yè)機器人、服務機器人和特種機器人。其中,工業(yè)機器人包括串聯(lián)型工業(yè)機器人、并聯(lián)型工業(yè)機器人、工業(yè)移動機器人、人機協(xié)作性機器人,而當中移動機器人正逐漸受到大眾的密切關(guān)注。隨著機器人技術(shù)的發(fā)展,人們發(fā)現(xiàn)越來越多的情景下需要機器人能夠隨要求移動而不是僅能固定在一處操作。20世紀80年代后期,許多國家展開了有關(guān)移動機器人技術(shù)的研究,目的是在復雜環(huán)境下實現(xiàn)機器人系統(tǒng)的自主推理、規(guī)劃和控制。自主式移動機器人的目標是在沒有人為干預且無需對環(huán)境作任何規(guī)定和改變的條件下,有目的的移動和完成相應任務REF_Ref26631\n\h[2]。眾多的移動機器人中以使用麥克納姆輪(MecanumWheel)為代表的全向移動機器人更是當前移動機器人研究的熱點。麥克納姆輪最早是由瑞典MecanumAB公司的工程師BengtErlandIlon在1972年提出的專利,基于麥克納姆輪的全向移動平臺可以克服由車輪和轉(zhuǎn)向系統(tǒng)構(gòu)成的傳統(tǒng)輪式車輛的缺點,如轉(zhuǎn)彎半徑大,空間利用率低,移動性差和運輸效率低等REF_Ref3689\n\h[3]。這些不利因素將嚴重影響工廠的工作效率及安全性,而基于麥克納姆輪的全向移動技術(shù)能有效地避免這些不利因素。全向移動設備能在二維平面內(nèi)進行多自由度的運動,包括前、后、左、右、斜向平移和旋轉(zhuǎn)及多種自由度組合的運動方式。裝有麥克納姆輪的全向運輸車能夠從任何路徑到達目標地點。沒有傳統(tǒng)能源車輛的轉(zhuǎn)向結(jié)構(gòu)和方向盤,但卻能完成理想的車體動作,尤其是在狹窄的環(huán)境下,該種機器人依然有較其他傳統(tǒng)移動機器人更強的靈活性以應對各種需求。與此同時,全向移動技術(shù)也解決了在狹窄空間內(nèi)運輸形狀較長的材料的問題。NASA全向機器人移動平臺Airtrax全向叉車圖1基于麥克納姆輪的移動平臺設計1.2本文的工作本文設計了一輛智能小車,并在小車上實現(xiàn)了全向移動和跟蹤目標物體等功能。本文主要分為以下幾個部分:第二章介紹了小車實現(xiàn)全向運動功能的設計,首先介紹了完成全向運動的關(guān)鍵部件麥克納姆輪的結(jié)構(gòu)、原理等,然后建立了小車的全向運動學模型,將全向運動的動作分解到每個輪胎的運動狀態(tài)。緊接著介紹了小車的主控制芯片選型、電機和電機控制芯片選型和控制程序的編寫。最后進行了運動效果的實驗記錄。第三章研究探討了小車跟蹤功能的實現(xiàn)方法,首先是如何識別目標物體的方案,包括攝像頭選型、圖像數(shù)據(jù)處理和圖像處理模塊與微處理器的通信。本設計采用了PixyCMU這一開源硬件來完成攝像頭采集數(shù)據(jù)的處理,依賴該模塊強大的處理功能和通信功能來實現(xiàn)物體跟蹤。最后進行了跟蹤系統(tǒng)實測。第四章介紹了小車的完整設計,整合了全向運動和物體跟蹤各項功能,在多次調(diào)試測試后成功實現(xiàn)了期望中的物體跟蹤功能。最后敘述了本設計的應用場景與改進方案。1.3總體設計方案本設計總體可分為核心控制板、Pixy圖像處理模塊、電機驅(qū)動模塊、LCD液晶模塊四個部分。核心控制板主要完成小車運動控制和避障邏輯控制以及LCD模塊的輸出控制。Pixy圖像處理模塊負責處理圖像數(shù)據(jù)、獲得目標物體位置信息并反饋給核心控制板來進行跟隨控制。電機驅(qū)動模塊負責驅(qū)動麥克納姆完成規(guī)定動作。LCD液晶模塊負責顯示一些狀態(tài)信息。本設計的重點在于小車的控制和跟隨方案的設計,著重論述了核心控制部分和圖像處理部分。圖2總體設計第2章全向移動機器人設計2.1基于麥克納姆輪的全向運動原理車輪作為連接全向移動車輛與地面的部件,其性能表現(xiàn)對整個移動車輛尤其重要。麥克納姆輪由機輪以及與機輪成一定角度的隨動輥子構(gòu)成。輥子不僅能隨機輪的轉(zhuǎn)動而運動,同時輥子自身也會因地面的摩擦力而隨著特定的方向轉(zhuǎn)動,二者的運動的結(jié)合使麥克納姆輪的輥子把一部分機輪轉(zhuǎn)向力轉(zhuǎn)化為機輪的法向力,這就是麥克納姆輪能夠幫助車輛實現(xiàn)全向運動的根本原因。麥克納姆輪通過輥子與地面接觸,則所有輥子所形成的包絡必須是平滑的圓柱面才能保證麥克納姆輪運動的連續(xù)性和穩(wěn)定性。圖3麥克納姆輪及其結(jié)構(gòu)圖2.1.1麥克納姆輪運動模型分析如圖3所示,平臺的原點是,-xy是絕對笛卡爾坐標系,-xy是相對笛卡爾坐標系,坐標原點是麥克納姆輪的中心C1。是平臺的水平速度,是平臺的垂直速度。是點的角速度,、、、是四個麥克納姆輪的旋轉(zhuǎn)速度。絕對運動點C1相對應于笛卡爾坐標系中的-xy點,而對于相對笛卡爾坐標系C1-xy時C1進行的是相對運動,兩個系統(tǒng)中的相對運動被稱為牽連運動。圖4全向移動平臺平面圖在絕對運動中的C1點在相對坐標系O1-xy中的速度為:(1.1)(1.2)其中L為輥子長度。-xy坐標中的中心的移動速度為:(1.3)(1.4)上式相結(jié)合得:(1.5)(1.6)由(1.5)和(1.6)可推知:(1.7)從這些參數(shù)我們可以得到輥子的偏移角是45度,并有如下結(jié)論:(1.8)從以上模型中我們可以看出、、、的大小和角度的變化會影響整個麥克納姆輪無人移動平臺的運動方向和速度,從而實現(xiàn)全向運動。2.1.2全向運動控制原理圖5小車前后運動圖5到圖8中紅色箭頭代表車輪向前轉(zhuǎn),藍色箭頭代表車輪向后轉(zhuǎn)。紅色實線箭頭是車輪向前轉(zhuǎn)產(chǎn)生的摩擦力,藍色箭頭使車輪向后轉(zhuǎn)產(chǎn)生的摩擦力,虛線是分力,根據(jù)力的合成圖5左邊的小車會向前運動,右邊的小車會向后運動。圖6小車原地旋轉(zhuǎn)圖6左邊小車順時針旋轉(zhuǎn),右邊小車逆時針旋轉(zhuǎn)。圖7小車左右平移圖7左邊小車向左平移,右邊小車向右平移。圖8小車斜向移動2.2小車整體設計圖9小車平面圖小車基礎運動部分主要由車架、麥克納姆輪、電機、控制板構(gòu)成,本設計主要針對控制板進行編程來控制電機進而控制車輪的轉(zhuǎn)動從而實現(xiàn)全向運動。2.2.1控制板圖10控制板平面圖控制板搭載了意法半導體(ST)公司的STM32F103C8T6型32位微控制器,采用ARM公司的高性能Cortex-M3內(nèi)核,最高72MHz工作頻率,1.25DMIPS/MHz,程序存儲器容量64KB。具有1us的雙12位ADC,4M位/S的UART,18M/S的SPI,18MHz的I/O翻轉(zhuǎn)速度等高速外設。最高頻率工作時功耗僅為36mA,待機時下降到2uA。同時集成了復位電路、低電壓檢測、調(diào)壓器、精確的RC振蕩器等實用功能。STM32F103系列作為中低端微控制器是市場上最通用的MCU系列之一,在電機驅(qū)動、醫(yī)療、報警系統(tǒng)、空調(diào)系統(tǒng)等領域受到廣泛的使用,是一款非常成熟且性價比高的處理器。開發(fā)板還搭載了ST公司的L293D步進電機驅(qū)動芯片,內(nèi)部集成了雙極型H-橋電路,具有高電壓、高電流的特點,擁有4個通道,每個通道的電流輸出能力達600mA,峰值輸出電流達1.2A。每個通道都配備了一個輸入使能端,簡化雙橋應用,便于使能,使能信號可以用于脈寬(PWM)調(diào)整,控制電機轉(zhuǎn)速。圖11L293D器件圖如圖10,一片L293D可控制兩個電機,En1和En2分別為輸出使能端口,In1和In2、In3和In4對應電機的轉(zhuǎn)動方向控制,Out口通過控制板背面的電機驅(qū)動接口與電機連接,提供電機控制信號(即電壓)。除此之外,開發(fā)板還擁有眾多擴展接口,包括電機接口、5V對外供電接口、程序下載接口、A、B型擴展接口、舵機接口、液晶插座、PS2插座等。擁有電源插座、電源開關(guān)、狀態(tài)指示LED、蜂鳴器等基礎配置,方便小車的運行設計。2.2.2驅(qū)動電機電機是直接驅(qū)動輪子的器件,是保證整個小車能夠?qū)崿F(xiàn)目標運動的最主要的部件。電機在包裝、食品、制造業(yè)、醫(yī)療和機器人等眾多行業(yè)的許多運動控制功能中發(fā)揮著重要作用,是傳動及控制系統(tǒng)中的重要組成部分。在選擇使用的電機時我們可以根據(jù)功能、尺寸、扭矩、精度和速度要求來進行選擇。根據(jù)旋轉(zhuǎn)電機的用途,電機被分類為控制電機、功率電機和信號電機??刂齐姍C主要是應用在精確的轉(zhuǎn)速、位置控制上,其分類下的伺服電機和步進電機在各類機器人和控制系統(tǒng)中運用廣泛,是優(yōu)秀的“執(zhí)行機構(gòu)”。功率電機可為直流電機和交流電機,其中直流電動機在19世紀末就已經(jīng)出現(xiàn),是最早的電動機,擁有良好的控制特性,具有調(diào)速性能好、起動容易、能夠載重起動等優(yōu)點,技術(shù)成熟,成本較低,對于精度要求不是特別嚴格且有成本限制的設備是不錯的選擇。經(jīng)過選擇比較,小車最終選擇了一款市面上常見的直流減速電機,在普通直流電機的基礎上加上配套齒輪減速箱,使得電機可以提供較低的轉(zhuǎn)速和較大的力矩,同時選擇齒輪箱不同的減速比可以使電機提供不同的轉(zhuǎn)速和力矩。圖12直流減速電機圖圖13直流減速電機結(jié)構(gòu)圖本電機工作電壓為3V-7.2V,空載電流小于260mA,空載轉(zhuǎn)速為130至320rpm,扭矩最大可達1.8kgf.cm。直流電機連接和控制較為簡單,通過改變輸入電壓的大小和極性可以實現(xiàn)對轉(zhuǎn)速和方向的控制。2.2.3小車運動部分程序設計圖14電機驅(qū)動部分電路如圖14,該L293D的En1口連接到微控制器的PB15端口,In1連接到PB14端口,In2連接到PB13端口。所以當我們在程序中將PB15端口置為高電平使能輸出,PB14置為高電平,PB13置為低電平,小車右前輪將實現(xiàn)正轉(zhuǎn)。反之將PB14置為低電平,PB13置為高電平,右前輪將反轉(zhuǎn),PB14,、13均為低電平或PB15使能位為低電平是右前輪將停止,同理可控制其他所有輪胎的運動狀態(tài)。實現(xiàn)了小車輪胎的轉(zhuǎn)動方向控制,接下來將討論如何控制車輪的速度。STM32的通用定時器可以實現(xiàn)脈寬調(diào)制(PWM)脈沖輸出的功能,非常適合智能小車的速度控制。脈沖寬度調(diào)制是一種用微控制器的數(shù)字輸出來控制模擬電路的技術(shù),通過對一系列脈沖寬度進行調(diào)制來等效的獲得所需的模擬波形,脈寬是指脈沖的寬度,即固定周期內(nèi)高電平所占時間與總時間的比例,也叫作占空比。例如把正弦波視作很多個方波脈沖的疊加,這些脈沖的寬度相等但幅值不同,幅值與抽樣時刻的正弦脈沖幅值均值相同,當脈沖的個數(shù)足夠多時可以近似用此脈沖序列代替正弦波。如果把這些脈沖用數(shù)量相同、幅度一致但寬度不同的矩形脈沖代替,使矩形脈沖的中點和相應正弦等分的中點重合,且矩形脈沖與相應正弦部分面積相等,這些矩形脈沖序列就是PWM波,并且得到的PWM波與正弦波是等效的。這樣,我們便可以通過微控制器輸出PWM波來很容易的實現(xiàn)各種模擬波形的等效輸出,對電機進行控制。在本設計中,使用通用定時器2來實現(xiàn)PWM波的輸出。先對通用定時器2進行初始化,初始化函數(shù)如下:void

TIM2_Int_Init(u16

arr,u16

psc)

//定時器2初始化{

TIM_TimeBaseInitTypeDef

TIM_TimeBaseStructure;

//設置TIM類型

NVIC_InitTypeDef

NVIC_InitStructure;

RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2,ENABLE);

//使能TIM2時鐘

TIM_TimeBaseStructure.TIM_Period

=

arr;

//計數(shù)值

TIM_TimeBaseStructure.TIM_Prescaler

=psc;

//時鐘預分頻數(shù)

TIM_TimeBaseStructure.TIM_ClockDivision

=

TIM_CKD_DIV1;

//采樣分頻

TIM_TimeBaseStructure.TIM_CounterMode

=

TIM_CounterMode_Up;

//向上計數(shù)模式

TIM_TimeBaseInit(TIM2,

&TIM_TimeBaseStructure);

//定時基本設置

TIM_ARRPreloadConfig(TIM2,

DISABLE);

//禁止ARR預裝在緩沖器

TIM_ITConfig(TIM2,TIM_IT_Update,ENABLE

);

//開啟定時器2溢出中斷

NVIC_InitStructure.NVIC_IRQChannel

=

TIM2_IRQn;

//TIM2中斷

NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority

=

1;

//先占優(yōu)先級1級

NVIC_InitStructure.NVIC_IRQChannelSubPriority

=

2;

//從優(yōu)先級2級

NVIC_InitStructure.NVIC_IRQChannelCmd

=

ENABLE;

//IRQ通道使能

NVIC_Init(&NVIC_InitStructure);

//初始化NVIC寄存器

TIM_Cmd(TIM2,ENABLE);

//使能TIM2定時器}

在main函數(shù)中對定時器2進行初始化并設置計數(shù)值arr為7199,時鐘預分頻數(shù)psc為9,則定時器2將每1ms產(chǎn)生一次中斷,并執(zhí)行中斷處理函數(shù)。在中斷處理函數(shù)中,應當在每捕獲到一次中斷后對一個變量進行自加計數(shù),當該計數(shù)值小于某值時設置L293D使能端為高電平,大于該值時置使能端為低電平,計數(shù)值大于門限值時清零重新計數(shù),這樣就可以實現(xiàn)對電機輸出PWM波。void

TIM2_IRQHandler(void)

//定時器2中斷處理函數(shù)

{

if(TIM_GetITStatus(TIM2,TIM_IT_Update)

!=

RESET)

//捕獲定時器2中斷

{

TIM_ClearITPendingBit(TIM2,TIM_IT_Update);

//清除中斷

pwm_val

=

pwm_val

+

1;

if(pwm)

//pwm為總開關(guān)

{

if(pwm_val

<=

pwmvalinit)

//小于門限值電機使能

{

PB10_HIGH;

PB15_HIGH;

PB4_HIGH;

PB9_HIGH;

}

else

{

PB10_LOW;

PB15_LOW;

PB4_LOW;

PB9_LOW;

}

if(pwm_val

>=

20)

//大于總計數(shù)值電機停止

{

pwm_val

=

0;

}

}

else

{

PB10_LOW;

PB15_LOW;

PB4_LOW;

PB9_LOW;

}

}

}

pwmvalinit的值和20是設定的高電平門限值和總計數(shù)值,二者的比值將決定輸出的電壓,即電機的轉(zhuǎn)速。程序中pwmvalinit初始化為9。2.3LCD顯示運動狀態(tài)本設計采用了一塊LCD1602液晶屏來顯示小車初始化狀態(tài)和運動狀態(tài)。LCD模塊在配置好I/O口后對內(nèi)存指定位置寫入數(shù)據(jù)便可讓LCD顯示想要的字符。圖15LCD顯示初始化狀態(tài)和運動狀態(tài)2.4機器人運動效果根據(jù)上述原理,在通過中斷處理函數(shù)確定轉(zhuǎn)速后,我們便可以通過控制微控制器與L293D的In端口相連的引腳的高低電平來實現(xiàn)每個車輪的正轉(zhuǎn)反轉(zhuǎn),進而使小車能夠?qū)崿F(xiàn)各種運動動作。一般將這些引腳的電平設置寫在函數(shù)中,如Forward(前進)函數(shù),Back(后退)函數(shù)等,通過函數(shù)實現(xiàn)電機控制,方便后續(xù)代碼編寫時調(diào)用。為了方便觀察運動狀態(tài)是否正常,使用開發(fā)板上的一塊LCD1602來顯示當前的運動狀態(tài)。LCD1602可以通過DMA控制器,直接實現(xiàn)和存儲器之間的高速數(shù)據(jù)傳輸而不用經(jīng)過微控制器的干預,節(jié)省微控制器的資源進行其他任務。使用DMA與外設建立連接需要先配置ADC,然后開啟ADC的DMA支持并獨立配置DMA通道等參數(shù)。后續(xù)按照LCD1602手冊中進行配置初始化,即可讓LCD顯示想要的字符。為檢測小車運動狀態(tài),在main函數(shù)中初始化各模塊功能后讓小車循環(huán)執(zhí)行前進、后退、左平移、右平移、斜向平移和原地旋轉(zhuǎn)動作,每個動作之間延時1s。將程序燒寫至開發(fā)板,打開電源開關(guān)程序?qū)⒊跏蓟?,LCD顯示初始化信息及當前輸入電壓,程序等待直至按下K1按鈕后繼續(xù)執(zhí)行,小車依預設動作開始運行,依次在每個1秒鐘內(nèi)實現(xiàn)下列動作中的一個,前進或后退50cm,平移40cm,45°斜向移動35cm,原地旋轉(zhuǎn)180°等。經(jīng)過觀察,小車運動性能良好,麥克納姆輪輥子形成的包絡較接近圓柱形,輪胎與地面摩擦力較好,可以滿足目標跟隨的性能要求。在進行一段時間的測試后麥克納姆輪出來了一些磨損,主要表現(xiàn)在輥子上為了增大摩擦力的膠環(huán)因為摩擦而產(chǎn)生形變,導致輪子整體的摩擦力出現(xiàn)了一定程度的下降,此時若小車運動速度過快或者地面太過光滑可能會產(chǎn)生抓地力不足而漂移的情況,所以實驗場地改為在較粗糙的水泥地面進行,并且通過修改程序適當降低了車輪轉(zhuǎn)動的速度,避免輪胎空轉(zhuǎn)同時也減小磨損。圖16小車初始化第3章跟蹤系統(tǒng)設計3.1目標物識別方案3.1.1攝像頭選型為了實現(xiàn)對物體的跟蹤,需要選擇一個圖像傳感器作為小車的“眼睛”,給小車提供物體的位置信息,幫助小車做出如何移動的決策以實現(xiàn)跟蹤。目前,圖像處理器主要分為CMOS和CCD兩種類型,這兩種類型圖像處理器在靈敏度、成本、分辨率等方面有較大的差異,CMOS傳感器靈敏度和分辨率通常都低于CCD傳感器,但其采用一般半導體電路最常用的CMOS電路,可以節(jié)省外圍芯片的成本,同時不會出現(xiàn)CCD傳感器因一個像素不能運行而導致整排數(shù)據(jù)不能傳輸?shù)那闆r,擁有更高的良品率,故成本較CCD圖像傳感器也更低。所以,在低端家用設備市場CMOS傳感器更為普及。在智能小車的設計中經(jīng)常使用OmniVision(中文名豪威科技)的OV系列CMOS圖像傳感器。本次設計選擇了OmniVision的OV9715型圖像傳感器,1280*800分辨率,可視域水平75°,垂直47°。同時兼顧了成本與分辨率的需求。3.1.2圖像處理模塊為了實現(xiàn)對大量圖像數(shù)據(jù)的快速處理,本設計還采用了Pixy(CMUcam5)圖像處理模塊。圖像傳感器搭配適當?shù)乃惴◣缀蹩梢愿兄妥R別任何東西,且具有很高的靈敏度和反應速度。但在擁有非常快的反應速度的同時,圖形傳感器會輸出大量的數(shù)據(jù),達到每秒數(shù)十兆字節(jié),如此高的數(shù)據(jù)量可能會使主處理器無法應對。對于絕大多數(shù)處理器,即使能夠及時處理這些大量的數(shù)據(jù),也將消耗掉絕大部分的算力而無法騰出更多資源高效地執(zhí)行其他任務,所以對于本設計有必要采用專用的圖像處理模塊來進行圖像識別方面的任務,而讓主控制器能夠集中資源執(zhí)行控制任務。Pixy圖像處理模塊搭載了恩智浦(NXP)LPC4330型微控制器,主頻高達204MHz,完全滿足高速圖像處理的需求,USB輸入5V,寬電壓輸入在6-10V之間,消耗電流140mA。擁有264KbytesRAM和1MbytesFLash存儲空間,支持UART、SPI、I2C、USB、數(shù)字、模擬等多種通信方式。Pixy使用的是基于色調(diào)過濾算法(hue-basedcolorfilteringalgorithm)來識別物體,這是一種快速高效且準確率高的識別方法。Pixy會計算來自圖像傳感器的RGB像素的色調(diào)和飽和度,并將它們用作主要過濾參數(shù)。照明和曝光的變化會對濾色算法產(chǎn)生嚴重的影響,如在不同亮度的光源下同一顏色呈現(xiàn)的深淺會不一致,而照明和曝光基本不會影響物體的色調(diào),并且Pixy加入了自動白平衡的功能,與濾波算法相結(jié)合可以十分準確地識別目標顏色。得益于強大的微處理器,Pixy每秒可以處理50幀圖像,即每20ms處理整個640*400圖像幀,每次目標位置更新間隔僅20ms,已可以跟蹤下落、彈跳中的球的路徑(以50千米/小時速度運動的小球在20ms內(nèi)移動的距離不足0.3米),如此高速的位置信息反饋是提高物體跟蹤速度的必要條件。除此之外,Pixy在同一時間最多可以跟蹤7種不同顏色的物體數(shù)量多達100個,通過算法給出每個物體的大小和位置,利用串口通信便可以把這些信息傳遞給其他微控制器。圖17Pixy圖像識別模塊Pixy可以同時設置識別七種不同的顏色,讓Pixy學習追蹤某一顏色有兩種方法。方法一是利用模塊上自帶的按鍵,在模塊上電并等待模塊初始化完成之后,按住頂部的按鈕,等待大約1秒鐘后LED會變亮,然后依次顯示白色和紅色,在LED顯示紅色時松開按鈕進入“Lightpipe”模式,此時將要識別的物體放置在攝像頭視角的中央,如果LED顯示的顏色與目標物體的顏色相近,點按一下按鈕,若LED閃爍,說明Pixy已經(jīng)“學習”了目標物體并會追蹤與目標物同色的物體。如果LED沒有閃爍說明物體的色調(diào)受到環(huán)境干擾而不易于識別,可以排除環(huán)境光干擾后再試。方法二是將Pixy通過USB與電腦連接,使用Pixymon這個軟件來更直觀的教Pixy完成學習,同時也可以通過這個軟件調(diào)整模塊的數(shù)據(jù)輸出模式(使用UART串口輸出應調(diào)整為UART模式,波特率默認19200)、識別門限、白平衡設置和更為復雜的ColorCode模式等。圖18Pixymon操作界面在Pixymon上通過鼠標框選便可以選擇模塊要識別跟蹤的顏色。3.1.3圖像處理模塊與微處理器通信及數(shù)據(jù)處理數(shù)據(jù)通信:Pixy模塊使用UART串口與STM32處理器通信,如圖15,串口通信將用到圖17模塊右上角的I/Oport接口,這些接口引腳的功能如下圖。圖19I/Oport引腳功能使用UART串口通信需用到2號電源引腳,4號UARTTX(發(fā)送)引腳和6號GND引腳(Pixy模塊僅發(fā)送數(shù)據(jù)而不需接收,故不用RX引腳)。電源引腳和GND分別用杜邦線連接到控制板的5V供電接口和GND接口,4號發(fā)送引腳需要連接到微控制器的UARTRX引腳,將PA10復用UART1RX,在控制板上標為A10引腳。連接好之后需要在程序中初始化串口,使能A10的串口接收,微控制器便可以接收到來自Pixy的數(shù)據(jù)。數(shù)據(jù)處理:Pixy發(fā)送的數(shù)據(jù)包構(gòu)成如下:包頭、和校驗、顏色代號、X坐標、Y坐標、目標寬度、目標高度、CC模式角度。其中包頭組成為55AA55AA、其余信息位由兩個4位16進制數(shù)共16bit構(gòu)成,所以數(shù)據(jù)處理的思路是先檢測包頭,檢測到之后提取需要的X、Y軸和寬高信息。在數(shù)據(jù)處理函數(shù)中定義一個大小為40的數(shù)組Raw_Data[counter],將讀出的數(shù)據(jù)放在數(shù)組中,通過counter自加來實現(xiàn)數(shù)據(jù)依次存入數(shù)組,當counter等于40時開始處理數(shù)據(jù),counter清零,這樣便可獲得一幀圖像中目標物體位置的數(shù)據(jù)。同時需要注意的是每個信息的16個bit先發(fā)送的8bit低位再發(fā)送的8bit高位,所以接收到的16個bit需要將8bit高位數(shù)據(jù)乘256后與8bit低位數(shù)據(jù)相加,就可以得到想要的數(shù)據(jù)。如目標X軸位置信息:Pixy_Color_Inf.Pixy_Color_PosX

=

Raw_Data[i+8]

+Raw_Data[i+9]*256

當Pixy看不到目標物時串口輸出的數(shù)據(jù)為全零,包括包頭數(shù)據(jù)也為零,所以在代碼中設定為當檢測不到包頭時輸出的物體位置及寬高都是零。由此微控制芯片便獲得了目標物體的位置及像素大小信息。3.2跟蹤系統(tǒng)實測測試時將一個紙盒上與攝像頭的高度一致的位置涂成面積3.5cm×4cm的亮色方塊,使用Pixymon教跟蹤模塊識別此方塊,然后多測試記錄不同環(huán)境條件下串口的輸出情況。實測Pixy圖像數(shù)據(jù)處理模塊對環(huán)境亮度比較敏感,雖然該模塊具有白平衡和曝光校正功能但在光線差異較大的情境下對顏色的識別依然會產(chǎn)生比較嚴重的誤差,如自然光直射的情況下和無光源直射情況下對同一顏色的識別往往會出現(xiàn)不同的結(jié)果。解決方案是光線較弱的環(huán)境下進行使用,并在當前使用環(huán)境下對Pixy模塊進行參數(shù)調(diào)整。第4章整體設計4.1小車整體跟蹤程序設計Pixy通過上述方式與控制板連接,并通過前述代碼使微控制器獲得目標物體的位置及像素大小信息后,微控制器就可以通過這些數(shù)據(jù)控制小車進行物體的跟蹤。方案框圖如下:圖20整體程序流程圖在主函數(shù)中分別對時鐘、LCD、按鍵IO口、電機控制IO口、L392D管腳電平、AD進行初始化后,LCD顯示初始化信息,此時程序進入循環(huán)掃描等待Key1按下啟動小車跟隨。Key1按下后進入While(1)無限循環(huán),在循環(huán)中首先初始化Pixy模塊的Uart通信功能,之后微控制器將不停收到Pixy模塊傳送的數(shù)據(jù)。先判斷目標物體的水平位置,即結(jié)構(gòu)體Pixy_Color_Inf中Pixy_Color_PosX參數(shù)的值,Pixy_Color_PosX的取值范圍為0到319,中心位置為160。當此值大于0小于100時,表示目標在小車偏左的位置,小車向左移動。若PosX的值不在此范圍則判斷其值是否大于210小于319,若滿足則表示目標在小車偏右的位置,小車將向右平移。若PosX值在100至210之間表示目標在小車正前方。同時,當檢測到目標不在小車正前方時將為標志位pos賦值,目標偏左時pos=1,偏右pos=2。此標志位的作用是當小車因目標物移動過快而丟失目標時可根據(jù)此標志位的值使小車進行一定角度的順時針或逆時針旋轉(zhuǎn),嘗試尋找目標。pos=1即丟失目標前目標在小車左側(cè),小車便執(zhí)行AntiClockWise函數(shù),逆時針旋轉(zhuǎn)約15°尋找目標,同理pos=2時小車順時針旋轉(zhuǎn)15°尋找目標。當目標滿足在小車正前方時,小車進行目標距離檢測,思路是根據(jù)目標物像素的大小進行距離判斷,像素由目標的寬和高的乘積獲得:Pixy_Color_Inf.Pixy_Color_Height*Pixy_Color_Inf.Pixy_Color_Width經(jīng)過測試,目標像素大于等于100像素且小于1000像素時表示目標離小車較遠,小車將前進。100像素為一個門限值,排除小于100像素的噪聲干擾。若目標像素大于4000表示目標離小車較近,小車將執(zhí)行后退函數(shù)Back進而后退。當目標滿足在小車正前方且像素在大于1000小于4000之間時小車將停止運動,或者攝像頭視野中沒有發(fā)現(xiàn)目標,即目標像素為0時小車也將停止運動。小車經(jīng)過不斷的讀取目標的位置距離信息與程序預設值對比進而不斷調(diào)整位置實現(xiàn)對目標的跟蹤。4.2測試調(diào)試本設計采用識別顏色以跟蹤物體的方案,故測試時選擇一白底紙盒,在攝像頭視覺高度一致的位置涂上面積3.5cm×4cm的不同顏色色塊作為識別的目標。測試1首先測試了目標色塊顏色的選擇,分別選擇紅色和紫色兩種亮色作為目標顏色,在較明亮和較黑暗的環(huán)境下進行跟蹤測試。結(jié)果:紅色在明亮和黑暗的環(huán)境下識別度均較好,但在環(huán)境中容易出現(xiàn)其他紅色對跟蹤造成干擾。紫色在黑暗和明亮兩種不同亮度下識別差異較大,只適合在單一環(huán)境下工作,若切換環(huán)境需要重新調(diào)整Pixy模塊參數(shù)。但紫色可以較好排除環(huán)境中的干擾。結(jié)論:目標物的顏色可根據(jù)環(huán)境靈活選擇,若背景顏色單一但光照條件復雜可選擇紅色,若光照條件簡單但背景顏色復雜可選擇紫色或其他較少見顏色。測試2測試小車的跟蹤性能并調(diào)整參數(shù)以獲得更好的性能。實驗選取了如下圖所示ABCD四點作為目標色塊的放置中心并進行實驗。圖21實驗示意圖原點為小車所在位置,線①②表示攝像頭視角范圍,線③④之間表示視角的中心范圍,A、B、C、D分別代表四個不同目標物位置。結(jié)果:表1實驗數(shù)據(jù)目標與X軸距離(cm)偏離中心方向/角度X軸位置(像素)目標寬度(像素)目標高度(像素)目標面積(像素)15左10°1211161071241220右15°2175653236830左20°643432108840右30°2972121441目標與X軸距離(cm)偏離中心方向/角度小車動作車輪運動狀態(tài)15左10°后退所有車輪反轉(zhuǎn)20右15°右移左前輪和右后輪正轉(zhuǎn)右前輪和左后輪反轉(zhuǎn)30左20°左移左前輪和右后輪反轉(zhuǎn)右前輪和左后輪正轉(zhuǎn)40右30°先右移再前進先左前輪和右后輪正轉(zhuǎn)右前輪和左后輪反轉(zhuǎn)然后所有車輪正轉(zhuǎn)在4.1節(jié)的參數(shù)設置下,小車可實現(xiàn)的最大識別距離約為52cm,目標物體像素大于4000(距離約18cm)時小車將后退,目標物體像素小于1000(距離約35cm)時小車將前進。攝像頭最大可視角度為70°,為一個扇形。當目標物體中心位置偏離攝像頭中心大于16°(X軸位置大于210或小于100)時將被視為不在小車正前方,小車將向左或向右平移。如目標中心在小車攝像頭左側(cè)20°位置,則小車將向左移動。假如目標物體移動過快瞬間超出攝像頭可視范圍,小車將向移動方向旋轉(zhuǎn)15°嘗試尋找丟失的目標。小車跟蹤響應時間在0.5s左右。結(jié)論:小車跟蹤精度基本達到預期的標準,跟蹤性能良好,可通過進一步實驗調(diào)整以提高精度和性能。遇到的問題:在測試中遇到的最大的問題是光照環(huán)境的不同對實驗結(jié)果的影響,為了排除這一影響因素本設計進行了大量次數(shù)的實驗以及環(huán)境控制來獲得較為精確的實驗數(shù)據(jù)。4.3結(jié)論與展望本設計實現(xiàn)了全向小車的簡單智能跟蹤控制,后續(xù)期望實現(xiàn)更高精度和靈敏度的自動控制,增加機械臂實現(xiàn)物體的自動抓取,并且能夠?qū)崿F(xiàn)多車協(xié)作。隨著技術(shù)的發(fā)展全向智能移動設備將用有及其廣闊的發(fā)展前景,值得我們深入地研究。致謝轉(zhuǎn)眼間四年的大學生活就要結(jié)束了,在這論文即將收尾之際,我感慨萬千。四年的學習生涯,我得到了很多的幫助,尤其是進行畢業(yè)設計的這三個月。感謝室友對我的支持和鼓勵,感謝各位老師的教誨和培養(yǎng),其中,尤其要感謝我的指導老師,馮爾理老師。在大二開始學習電路和嵌入式之時便得到馮老師的指導,感謝老師的不吝賜教幫我解決了許多困惑和困難。從畢業(yè)設計選題開題到論文初稿修改,馮老師一直不辭辛苦地為我提供思路和技術(shù)支持,非常感謝馮老師的付出。同時,我也要感謝本科期間的各位老師,是你們打開了我的眼界,豐富了我的認知,沈荻帆老師、沈健老師等都是我心目中的好老師。感謝各位在我完成論文期間的幫助。由于我的學術(shù)水平有限,所寫論文難免有不足之處,懇請各位老師和同學批評和指正!參考文獻李玲.全向移動自主跟隨機器人系統(tǒng)設計與實現(xiàn)[D].湖南大學,2018.XE"1"XE"1"宋永端.移動機器人及其自主化技術(shù)[M].北京:機械工業(yè)出版社,2012.盧敬銘.重載倉儲自動引導車底盤的設計實現(xiàn)[D].華南理工大學,2017.顧嘉俊.移動機器人在非平坦地形上的自主導航研究[D].上海交通大學,2010.陳博翁,范傳康,賀驥.基于麥克納姆輪的全方位移動平臺關(guān)鍵技術(shù)研究[J].東方電氣評論,2013,27(04):7-11.王京起,陳慧巖.陸地自主車輛研究概況[J].車輛與動力技術(shù),2002(04):56-61.ZhiminWu.ResearchandDesignonElectricalControlSystemofOmni-directionalMobileVehicleofMecanumWheel[A].InformationEngineeringResearchInstitute,USA.Proceedingsof3rdAsianPacificConferenceonMechatronicsandControlEngineering(APCMCE2015)and2ndInternationalConferenceonAdvancedMaterialsinSportsEquipmentDesign(AMSED2015)and3rdInternationalConferenceonSportMaterial,ModellingandSimulation(ICSMMS2015)and3rdInternationalConferenceonManufacturing(MANUFACTURING2015)[C].InformationEngineeringResearchInstitute,USA:智能信息技術(shù)應用學會,2015:6.BaeksukChu.PerformanceEvaluationofMecanumWheeledOmni-directionalMobileRobot[R].SydneyAustralia:InternationalAssociationforAutomationandRoboticsinConstruction(IAARC),2014.黃鶴,郭璐,周熙煒.圖像處理與機器視覺[M].北京:人民交通出版社,2018.附錄部分源代碼:main.c(main函數(shù)部分):int

main(void)

{

Rcc_Init()

;

GPIO_1602_Configuration();

GPIO_KEY_Configuration();

GPIO_BEEP_Configuration();

BeepOff;

GPIO_LED_Configuration();

LedOff;

GPIO_MOTOR_Configuration();

L293d_Init();

ADC_init();

LCD1602_Init();

LCD1602_ClearScreen();

LCD1602_Show_Str(1,0,Init);

delay

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論