




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、基于arduino的自主移動機器小車開發(fā)smartcar負(fù)責(zé)人:馬培培 張憲許導(dǎo)師:許軍2013年6月16日目 錄1 項目概述11.1 研究內(nèi)容11.2 開發(fā)背景11.3 項目意義22 詳細(xì)設(shè)計32.1 避障小車設(shè)計32.2 自平衡小車104 參考資料141 項目概述1.1 研究內(nèi)容本項目主要是完成可以自由行走、自動避障以及簡單通訊功能的智能小車的研究與實現(xiàn),具體工作包括基礎(chǔ)部分和發(fā)揮部分:基礎(chǔ)部分:(1) 小車系統(tǒng)能完成測速、避開障礙物等功能。發(fā)揮部分:(1) 小車能避開障礙物、并以最佳路線繞過障礙物、防滑落、適應(yīng)復(fù)雜工作環(huán)境(主要通過學(xué)習(xí))等能力;(2) 小車與小車之間構(gòu)建一個zigbee
2、網(wǎng)絡(luò),這個網(wǎng)絡(luò)用于收集周圍的環(huán)境信息,并組成車載自組網(wǎng)絡(luò),給arm留更多的資源來進(jìn)行視頻傳輸及對傳感器信息的融合處理;1.2 開發(fā)背景“robot”一詞源自捷克語“robota”,意謂“強迫勞動”。1920年捷克斯洛伐克作家薩佩克寫了一個名為洛桑萬能機器人公司的劇本,他把在洛桑萬能機器人公司生產(chǎn)勞動的那些家伙取名“robot”,漢語音譯為“羅伯特”,捷克語意為“奴隸”薩佩克把機器人的地位確定為只管埋頭干活、任由人類壓榨的奴隸,他們存在的價值只是服務(wù)于人類。他們沒有思維能力,不能思考,只是類似人的機器,以便使人擺脫勞動。到目前為止,機器人技術(shù)的發(fā)展過程大致可以分為以下3個階段:第一代為可編程示教
3、再現(xiàn)型機器人,其特征是機器人能夠按照事先教給它們的程序進(jìn)行重復(fù)工作。1959年美國人英格伯格和德沃爾制造的世界上第一臺工業(yè)機器人就屬于示教再現(xiàn)型,即人手把著機械手,把應(yīng)當(dāng)完成的任務(wù)做一遍,或者人用示教控制盒發(fā)出指令,讓機器人的機械手臂運動,一步步完成它應(yīng)當(dāng)完成的各個動作;第二代機器人(20世紀(jì)70年代)是具有一定的感覺功能和自適應(yīng)能力的離線編程機器人,其特征是可以根據(jù)作業(yè)對象的狀況改變作業(yè)內(nèi)容,即所謂的“知覺判斷機器人”;第三代機器人(20世紀(jì)80年代中期以后)是智能機器人,這種機器人帶有多種傳感器,能夠?qū)⒍喾N傳感器得到的信息進(jìn)行融合,能夠有效的適應(yīng)變化的環(huán)境,具有很強的自適應(yīng)能力、學(xué)習(xí)能力和
4、自治功能。而對于機器人領(lǐng)域的一個分支移動機器人,它的研究始于60年代末期,斯坦福研究院(sri)的nits nilssen和charles rosen等人, 在1966年至1972年間研制出了名為shake的自主移動機器人。進(jìn)入20世紀(jì)80年代以后,人們的研究方向逐漸轉(zhuǎn)移到了面向?qū)嶋H應(yīng)用的室內(nèi)移動機器人的研究,并逐步形成了自主式移動機器人amr(indoor autonomous mobile robot)概念。美國國防高級研究計劃局(darpa)專門立項,制定了地面天人作戰(zhàn)平臺的戰(zhàn)略計劃。從此在全世界掀開了全面研究室外移動機器人的序幕,如darpa的“戰(zhàn)略計算機”計劃中的自主地面車輛(alv
5、)計劃(19831990),能源部制訂的為期10年的機器人和智能系統(tǒng)計劃(rips)(19861995),以及后來的空間機器人計劃:日本通產(chǎn)省組織的極限環(huán)境下作業(yè)的機器人計劃:歐洲尤里卡中的機器人計劃等。初期的研究,主要從學(xué)術(shù)角度研究室外機器人的體系結(jié)構(gòu)和信息處理,并建立實驗系統(tǒng)進(jìn)行驗證。雖然由于80年代對機器人的智能行為期望過高,導(dǎo)致室外機器人的研究未達(dá)到預(yù)期的效果,但卻帶動了相關(guān)技術(shù)的發(fā)展,為探討人類研制智能機器人的途徑積累了經(jīng)驗。同時,也推動了其它國家對移動機器人的研究與開發(fā)。在國內(nèi),從“七五”開始,國的移動機器人研究開始起步,經(jīng)過多年來的發(fā)展,己經(jīng)取得了一定的成績。清華大學(xué)智能移動機器
6、人于1994年通過鑒定。涉及到五個方面的關(guān)鍵技術(shù):基于地圖的全局路徑規(guī)劃技術(shù)研究(準(zhǔn)結(jié)構(gòu)道路網(wǎng)環(huán)境下的全局路徑規(guī)劃、具有障礙物越野環(huán)境下的全局路徑規(guī)劃、自然地形環(huán)境下的全局路徑規(guī)劃);基于傳感器信息的局部路徑規(guī)劃技術(shù)研究(基于多種傳感器信息的“感知一動作”行為、基于環(huán)境勢場法的“感知一動作”行為、基于模糊控制的局部路徑規(guī)劃與導(dǎo)航控制);路徑規(guī)劃的仿真技術(shù)研究(基于地圖的全局路徑規(guī)劃系統(tǒng)的仿真模擬、室外移動機器人規(guī)劃系統(tǒng)的仿真模擬、室內(nèi)移動機器人局部路徑規(guī)劃系統(tǒng)的仿真模擬);傳感技術(shù)、信息融合技術(shù)研究(差分全球衛(wèi)星定位系統(tǒng)、 磁羅盤和光碼盤定位系統(tǒng)、超聲測距系統(tǒng)、視覺處理技術(shù) 信息融合技術(shù));智
7、能移動機器人的設(shè)計和實現(xiàn)(智能移動機器人thmr111的體系結(jié)構(gòu)、高效快速的數(shù)據(jù)傳輸技術(shù)、自動駕駛系統(tǒng))。香港城市大學(xué)智能設(shè)計、自動化及制造研究中心的自動導(dǎo)航車和服務(wù)機器人。中國科學(xué)院沈陽自動化研究所的agv和防爆機器人。中國科學(xué)院自動化所自行設(shè)計、制造的全方位移動式機器人視覺導(dǎo)航系統(tǒng)。哈爾濱工業(yè)大學(xué)于1996年研制成功的導(dǎo)游機器人等。1.3 項目意義1994年,美國的一個機器人丹蒂(dante)探索了南極洲的埃力柏斯火山口,這無疑是智能機器人最新技術(shù)的示范。該探險行動實際上是由相互協(xié)作的兩個機器人來執(zhí)行的。其中一個是善于爬坡的運輸機器人,把丹蒂從營地送到火山口邊緣,然后丹蒂用攀登繩索下去取樣
8、。雖然該項行動遇到故障,但是人們普遍承認(rèn)該機器人系統(tǒng)是成功的。事實上,這是代表當(dāng)前智能機器人最高水平的自主式移動機器人(amr)系列中的一個。自主式移動機器人,它要求在野外非結(jié)構(gòu)化環(huán)境中自主地執(zhí)行一系列任務(wù),例如偵察、探險、搬運等等。環(huán)境變化的不確定性意味著機器人必須有良好的環(huán)境感知、行動規(guī)劃與決策、靈巧的機動控制等功能。涉及的技術(shù)領(lǐng)域包括機器視覺、多傳感融合、全局與局部控制、學(xué)習(xí)與決策,以及機械構(gòu)造、運動學(xué)與動力學(xué)控制等。綜上所述,開發(fā)一款具有無線功能的智能小車是有很大實用意義的。圖1為此系統(tǒng)在探險中應(yīng)用的模型表示:圖1.1 智能車在探險中的應(yīng)用的模型化表示2 詳細(xì)設(shè)計本部分主要簡要地介紹智
9、能車系統(tǒng)設(shè)計思路及設(shè)計過程。2.1 避障小車設(shè)計小車采用超聲波測量前方距離,arduino 根據(jù)超聲波模塊接受的距離控制小車前進(jìn)、后退或者左轉(zhuǎn)右轉(zhuǎn)。也就是說它有自己的“思維”方式,只要打開電源在沒有人干預(yù)的情況下可以獨自在房間里閑逛而不會碰到任何東西。材料準(zhǔn)備:1、arduino uno板子一個。2、 超聲波測距模塊一個3、 直流電機 + 輪胎4、 l298n電機驅(qū)動模塊 一個 電機驅(qū)動最好帶光耦的,否則可能會對超聲波信號產(chǎn)生干擾5、萬向輪 + 小車底盤 + 杜邦線 + 螺絲、螺母 + 烙鐵 + 螺絲刀 + 剪刀等小車底盤是用來固定電機和電路板的,可以選用pvc板自己動手制作也可以買現(xiàn)成的材料
10、都有了就可以將它們鏈接起來。接線方式可以從程序的注釋中看出來,android程序如下:#definedebug 0 / set to 1 to print to serial monitor, 0 to disable#include servo headservo; / 頭部舵機對象/ constantsconst int echopin = 2; /超聲波信號輸入const int trigpin = 3; /超聲波控制信號輸出constintleftmotorpin1 = 4; / 直流電機信號輸出const int leftmotorpin2 = 5;constintrightmoto
11、rpin1 = 6;constintrightmotorpin2 = 7;constintheadservopin = 9; / 舵機信號輸出 只有9或10接口可利用const int sharppin = 11; / 紅外輸入 constintmaxstart = 800; /run dec time/ variablesint isstart = maxstart; /啟動int currdist = 0; / 距離boolean running = false;voidsetup() serial.begin(9600); / 開始串行監(jiān)測 /信號輸入接口 pinmode(echopin
12、, input);pinmode(sharppin, input);/信號輸出接口for(int pinindex = 3; pinindex 11; pinindex+) pinmode(pinindex, output); / set pins 3 to 10 as outputs /舵機接口headservo.attach(headservopin);/啟動緩沖活動頭部headservo.write(70);delay(2000);headservo.write(20);delay(2000);voidloop() if(debug)serial.print(running:);if(r
13、unning)serial.println(true);elseserial.println(false);if(isstart 0) isstart = maxstart;delay(4000);return;isstart-;delay(100);if(debug)serial.print(isstart: );serial.println(isstart);currdist = measuringdistance(); /讀取前端距離if(debug)serial.print(current distance: );serial.println(currdist);if(currdist
14、 30) nodanger();elseif(currdist 15)backup();randtrun();else/whichway();randtrun();/測量距離 單位厘米longmeasuringdistance() longduration;/pinmode(trigpin, output);digitalwrite(trigpin, low);delaymicroseconds(2);digitalwrite(trigpin, high);delaymicroseconds(5);digitalwrite(trigpin, low);/pinmode(echopin, inp
15、ut);duration = pulsein(echopin, high);returnduration / 29 / 2;/ 前進(jìn)voidnodanger() running = true;digitalwrite(leftmotorpin1, low);digitalwrite(leftmotorpin2, high);digitalwrite(rightmotorpin1, low);digitalwrite(rightmotorpin2, high);return;/后退voidbackup() running = true;digitalwrite(leftmotorpin1, hi
16、gh);digitalwrite(leftmotorpin2, low);digitalwrite(rightmotorpin1, high);digitalwrite(rightmotorpin2, low);delay(1000);/選擇路線voidwhichway() running = true;totalhalt(); / first stop!headservo.write(20);delay(1000);intldist = measuringdistance(); / check left distance totalhalt(); / 恢復(fù)探測頭headservo.write
17、(120); / turn the servo right delay(1000);intrdist = measuringdistance(); / check right distance totalhalt(); / 恢復(fù)探測頭if(ldist 5) body_rturn();elsebody_lturn(); 2.2 自平衡小車arduino自平衡小車,查了些segway技術(shù)資料發(fā)現(xiàn)自平衡小車的原理也比較簡單:利用陀螺儀和加速度模塊獲得小車角度,arduino對獲取的數(shù)據(jù)進(jìn)行處理,然后控制電機運轉(zhuǎn)糾正傾斜,從而達(dá)到平衡的效果。需要準(zhǔn)備的硬件有:1、陀螺儀 選用的是l3g4200d三軸陀
18、螺儀,其實自平衡小車只用到其中的一軸 2、加速度計 用的是adxl345三軸加速度計,自平衡小車也只用到其中兩軸3、arduino板子 4、l298n電機驅(qū)動模塊 一個 需要帶光耦5、直流減速電機兩個 小車輪胎兩個 塑料盒子一個還需要一些杜邦線、 電池、螺絲等輔助的東西組裝過程比較簡單,在塑料盒合適的位置打孔,然后用螺絲固定住電路板和電機即可:制作之前需要對陀螺儀 + 加速度計 進(jìn)行測試,看獲取的角度數(shù)據(jù)是否滿足要求。網(wǎng)上常用的方法是使用卡爾曼濾波將陀螺儀和加速度計的數(shù)據(jù)進(jìn)行融合而得到一個相對穩(wěn)定正確的角度值。獲取到角度以后需要找到小車的平衡點,也就是無外力作用的時候小車能夠立在地面上的角度:
19、 角度差 = 小車角度 - 平衡點角度。用小車角度數(shù)據(jù)結(jié)合當(dāng)前的傾斜目標(biāo)值,通過pid運算,得出電機pwm脈寬數(shù)據(jù),指揮電機運行即可。pid算法相對比較簡單,而且arduino有現(xiàn)成的pid libraries : http:/arduino.cc/playground/code/pidlibrarypid:pid(double* input, double* output, double* setpoint,doublekp, double ki, double kd, int controllerdirection)pid:setoutputlimits(0, 255); /default
20、 output limit corresponds to /the arduino pwm limitssampletime = 100; /default controller sample time is 0.1 secondspid:setcontrollerdirection(controllerdirection);pid:settunings(kp, ki, kd);lasttime = millis()-sampletime;inauto = false;myoutput = output;myinput = input;mysetpoint = setpoint;pid lib
21、的參數(shù)分別是這樣的:input 輸入值(這里輸入卡爾曼融合獲取的角度值)output pid計算的結(jié)果,供電機驅(qū)動的pwm使用setpoint 期望值(這里輸入小車平衡點的角度值)kp、ki、kd 這是kpi的三個重要參數(shù)這三個參數(shù)的詳細(xì)說明:比例(p)控制比例控制是一種最簡單的控制方式。其控制器的輸出與輸入誤差信號成比例關(guān)系。當(dāng)僅有比例控制時系統(tǒng)輸出存在穩(wěn)態(tài)誤差(steady-state error)。積分(i)控制在積分控制中,控制器的輸出與輸入誤差信號的積分成正比關(guān)系。對一個自動控制系統(tǒng),如果在進(jìn)入穩(wěn)態(tài)后存在穩(wěn)態(tài)誤差,則稱這個控制系統(tǒng)是有穩(wěn)態(tài)誤差的或簡稱有差系統(tǒng)(system with steady-state error)。為了消除穩(wěn)態(tài)誤差,在控制器中必須引入“積分項”。積分項對誤差取決于時間的積分,隨著時間的增加,積分項會增大。這樣,即便誤差很小,積分項也會隨著時間的增加而加大,它推動控制器的輸出增大使穩(wěn)態(tài)誤差進(jìn)一步減小,直到等于零。因此,比例+積分(pi)控制器,可以使系統(tǒng)在進(jìn)入穩(wěn)態(tài)后無穩(wěn)態(tài)誤差。微分(d)控制在微分控制中,控制器的輸出與輸入誤差信號的微分(即誤差的變化率)成正比關(guān)系。自動控制系統(tǒng)在克服誤差的調(diào)節(jié)過程中可能會出現(xiàn)振蕩甚至失穩(wěn)。其原因是由于存在有較大慣性組件(環(huán)節(jié))或有滯后(delay)組
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 電力行業(yè)員工薪酬福利合同
- 勞動合同 月度范文
- 大型商業(yè)綜合體裝修合同
- 建筑工地安全施工合同書
- 廢舊物資循環(huán)利用合同項目2025
- 生產(chǎn)制造合同合作書
- 商品房購回合同條款
- 房地產(chǎn)租賃管理合同范本
- 訂單班人才培養(yǎng)協(xié)議(范本)
- 無機鹽產(chǎn)品在農(nóng)業(yè)領(lǐng)域的應(yīng)用考核試卷
- 部編人教版道德與法治五年級下冊全冊課時練習(xí)講解課件
- 廉政鑒定書(院內(nèi)廉政意見書)
- 《潘姓源于固始,是不爭的史實》的考辨
- 園林景觀工程細(xì)節(jié)
- 焊接技師培訓(xùn)教材(釬焊)課件
- 2022年中級注冊安全工程師(安全生產(chǎn)法及相關(guān)法律知識)考試題庫模考300題及答案下載(四川省專用)
- 《未成年人保護(hù)法》課件
- 原發(fā)性肝癌經(jīng)皮肝動脈化療栓塞術(shù)(TACE)臨床路徑
- 成品檢驗部在線抽檢記錄表
- 化工工藝學(xué)-第二章-化工原料及其初步加工
- 全國水資源綜合規(guī)劃技術(shù)細(xì)則(水利部文件)
評論
0/150
提交評論