附件1基于slam單機(jī)器人導(dǎo)航、避障系統(tǒng)設(shè)計(jì)_第1頁(yè)
附件1基于slam單機(jī)器人導(dǎo)航、避障系統(tǒng)設(shè)計(jì)_第2頁(yè)
附件1基于slam單機(jī)器人導(dǎo)航、避障系統(tǒng)設(shè)計(jì)_第3頁(yè)
附件1基于slam單機(jī)器人導(dǎo)航、避障系統(tǒng)設(shè)計(jì)_第4頁(yè)
附件1基于slam單機(jī)器人導(dǎo)航、避障系統(tǒng)設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩23頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

一式2采用A4紙單面打印左側(cè)裝(包含附件,項(xiàng)目運(yùn)行時(shí)間為1-3年,必須在項(xiàng)目畢業(yè)前完成,須院部組織專家組評(píng)審并簽署意見后,將《檢查報(bào)告》報(bào)送教務(wù)處,紙質(zhì)版由項(xiàng)目和院部各留存一份。一、項(xiàng)目主要進(jìn)展(附已或其他成果復(fù)印件(重點(diǎn)介紹目前已主要開展工作,中期目標(biāo)完成情況,取得的主要成果。如具備國(guó)家級(jí)選拔資格,應(yīng)重點(diǎn)體現(xiàn)項(xiàng)目?jī)r(jià)值、深入研究潛力、預(yù)期成果與項(xiàng)目成員的投入)度年第二季研究地圖的表境中特征的生成仿真地度年第三季算法改進(jìn),基卡爾曼濾波器的方法基于擴(kuò)展濾波進(jìn)度年第四季基于機(jī)器人件的程仿真程序的實(shí)度年第一季購(gòu)置硬件設(shè)備調(diào)試編編調(diào)試成度年第二季硬件調(diào)硬件搭建成STM32DreamerMaple二維調(diào)試成度年第三基于ROS操作系統(tǒng)SLAMROS操作系統(tǒng)及硬件搭ROS實(shí)現(xiàn)部分綜航中的重要環(huán)節(jié)。基于SLAM的單機(jī)器人導(dǎo)航、避障系統(tǒng)是利用擴(kuò) 現(xiàn)階段本項(xiàng)目組已利用使仿真地圖構(gòu)建成功,并利用擴(kuò)展要求,因此改用ARM板進(jìn)行計(jì)算,并將硬件搭建成功。隨后我們進(jìn)行了二維激光的調(diào)試,在計(jì)算機(jī)上得到周圍環(huán)境的二維掃描地圖。后來(lái)改進(jìn),基于ROSARMROS光對(duì)周圍環(huán)境進(jìn)行360°掃描,得到與參照物之間的距離和角度,從而實(shí) 、 (或6軸慣性導(dǎo)航模塊)計(jì)算角度、角速度、(2、機(jī)器人底座搭建3、選擇ARM板作為機(jī)器人的控制中心。初次設(shè)計(jì)時(shí),使用的是STC12C5A60S2ARMTX,TXARMRX(4、編測(cè)速調(diào)試4WD/3PA小車編采用非接觸式方式把角位移轉(zhuǎn)換成電信號(hào)。遮斷并通過(guò)計(jì)算小車在一定時(shí)間內(nèi)產(chǎn)生的脈沖個(gè)數(shù)可以換算出的轉(zhuǎn)速。 原理5、二 連接及調(diào)試二 外將其各個(gè)管腳與arm板相連, 附近擺 物 試二 與arm板連接結(jié)果顯示圖(地圖基本輪廓可以顯示出來(lái)但由 實(shí)時(shí)掃描并顯示圖像會(huì)有閃動(dòng)6、ROS操作系統(tǒng)及硬件搭arm2ROSROS提供一些標(biāo)準(zhǔn)操作系統(tǒng)服務(wù),例如硬件抽象,底層設(shè)備控制,分布式控制,常用功能實(shí)現(xiàn),進(jìn)程間消息以及數(shù)據(jù)包管理。ROS是基于一種圖狀架構(gòu),從而不同節(jié)人的相關(guān)功能,不使用ROS能實(shí)ROS得機(jī)器人軟件搭建的工作更方便,效率更高ROS由.cpp將整個(gè)工程(Project) 編寫第N+1個(gè)節(jié)點(diǎn),然后編譯,然后運(yùn)行,即有N+1個(gè)節(jié)點(diǎn)共同運(yùn)行。 Topic:發(fā)布者與訂閱者之間數(shù)據(jù)傳輸“管道”的名字,消息:Message:int,char,7、ROS實(shí)現(xiàn)部整體導(dǎo)航包的格局如下圖所sensortransformstfsensor 這里是機(jī)器人導(dǎo)航傳感器數(shù)據(jù)輸odometryodometrysource機(jī)器人的導(dǎo)航需要輸入里程計(jì)的數(shù)二、下步工作計(jì)1SLAM利用基于ROS系統(tǒng)對(duì)SLAMSLAM ,,的地圖表達(dá)形式的是通過(guò)傳感器獲得的觀測(cè)信息用來(lái)別或者環(huán)境中的物體來(lái)導(dǎo)航。但是由于感知信息的不確SLAM22016三、存在問(wèn)題、建議及需要說(shuō)明的情 代替項(xiàng)目的 硬件—— 求。而在之后使用一維,雖比超聲波測(cè)距模塊更加精360°全方位掃描物而達(dá)到預(yù)期效果。因此采用二維。后期需要不斷調(diào)試修改。之前使用5節(jié)5號(hào)電池給機(jī)器人供電機(jī)器人行走用編測(cè)量。硬件連接更加方便。四、經(jīng)費(fèi)使用情況和經(jīng)費(fèi)安排計(jì)已報(bào)銷經(jīng)費(fèi):0下一步經(jīng)費(fèi)安排計(jì)即將報(bào)銷項(xiàng)金額(元打印費(fèi)、WIFI五、指導(dǎo)教師意 六、審核意 院部審核意 檢查結(jié)果(請(qǐng)打?qū)<覚z查意見(對(duì)項(xiàng)目進(jìn)展情況的過(guò)程性評(píng)價(jià)及下一步工作的建議附件仿仿真程functiondata=ekfslam_sim(lm,%functiondata=ekfslam_sim(lm,%%%%%lm-setoflandmarks//標(biāo)wp-setofwaypoints//% data-adatastructure data.path:thevehiclepathestimate(ie,whereSLAMestimatesthevehiclewent) SLAM data.state(k).x:theSLAMstatevectorattimek,k data.state(k).P:thediagonalsoftheSLAMcovariancematrixattime k% ThisprogramisaSLAM forthedesiredvehiclepath). Theprogram'frontend.m'maybeusedtocreatethissimulatedenvironment(仿真環(huán)境)type'helpfrontend'formoreinformation. Theconfigurationofthesimulatorismanagedbythescriptfile'configfile.m'.Toaltertheparametersofthevehicle,sensors,etc adjustthisfile.Therearealsoseveralswitchesthatcontrol filter%%TimBaileyandJuanNieto%Versionclearall;closeloadexample_densemap;%將數(shù)據(jù)導(dǎo)入到工作區(qū)間formatcompact%setupplotsholdon,axisequalplot(wp(1,:),wp(2,:),'g',wp(1,:),wp(2,:),'r.')xlabel('metres'),ylabel('metres')set(fig,'name','EKF-SLAMconfigfile;**USETHISFILETOCONFIGURE(配置)THEEKF-SLAM**h=setup_animations;veh=[0-WHEELBASE-WHEELBASE;0-22];%vehicle%plines=[];%forlaserlineanimation%initialisextrue=zeros(3,1);%初始化機(jī)器人的位姿[0,0,0]'x=zeros(3,1);%初始化系統(tǒng)狀態(tài)向量P=zeros(3);%%initialiseothervariablesandconstantsdt=DT_CONTROLS;ftag=1:size(lm,2);%identifierforeachlandmarkda_table=zeros(1,size(lm,2));%dataassociationtableiwp=1;%indextofirstwaypointG=0;%initialsteerangledata=initialise_store(x,P,xtrue);%storeddataforoff-lineQE=Q;RE=(ie,addstabilisingnoise)%ifSWITCH_SEED_RANDOM,randn('state',SWITCH_SEED_RANDOM),%mainloopwhileiwp~=0%computetrue[G,iwp]=compute_steering(xtrue,wp,iwp,AT_WAYPOINT,G,RATEG,MAXG,dt);

%performloops:iffinalwaypointreached,gobacktoxtrue=vehicle_model(xtrue,V,G,WHEELBASE,dt);[Vn,Gn]=add_control_noise(V,G,Q,%EKFpredict[x,P]=predict(x,P,Vn,Gn,QE,WHEELBASE,dt);%%ifheadingknown,observe%[x,P]=observe_heading(x,P,xtrue(3),%EKFupdatedtsum=dtsumdt;%控制進(jìn)行觀測(cè)的時(shí)間間隔,DT_OBSERVE=8*DT_CONTROLS;觀測(cè)的間隔時(shí)間為0.2sifdtsum>=DT_OBSERVEdtsum=0;[z,ftag_visible]=get_observations(xtrue,lm,ftag,z=add_observation_noise(z,R,ifSWITCH_ASSOCIATION_KNOWN==[zf,idf,zn,da_table]=data_associate_known(x,z,ftag_visible,da_table);[zf,idf,zn]=data_associate(x,P,z,RE,GATE_REJECT,[x,P]=augment(x,P,zn,RE);landmarkxifSWITCH_USE_IEKF==[x,P]=update_iekf(x,P,zf,RE,idf,1);[x,P]=update(x,P,zf,RE,idf,%offlinedatadata=store_data(data,x,P,%xt=xv=transformtoglobal(veh,x(1:3));%將局部變量轉(zhuǎn)換成全局變量set(h.xt,'xdata',xt(1,:),'ydata',xt(2,:))set(h.xv,'xdata',xv(1,:),'ydata',set(h.xf,'xdata',x(4:2:end),'ydata',x(5:2:end))%在地圖上標(biāo)記landmarkpcov(:,1:size(ptmp,2))=ptmp;ifdtsum==0set(h.cov,'xdata',pcov(1,:),'ydata',pcov(2,:))pcount=pcount+1;ifpcount==15%1515set(h.pth,'xdata',data.path(1,1:data.i),'ydata',set(h.truepth,'xdata',data.truepath(1,1:data.i),'ydata',data.truepath(2,1:data.i))if~isempty(z)%zplines=make_laser_linesset(h.obs,'xdata',plines(1,:),'ydata',plines(2,:))%線pcov=make_covariance_ellipses(x,P);%

data=set(h.pth,'xdata',data.path(1,:),'ydata',set(h.truepth,'xdata',data.truepath(1,:),'ydata',%%functionh=%EraseMode normal background xor noneh.xt=patch(0,0,'b','erasemode','xor');%vehicletrueh.xv=patch(0,0,'r','erasemode','xor');vehicleestimateh.truepth=plot(0,0,'r.','markersize',1,'erasemode','background');vehiclepathestimateSLAM估計(jì)路徑h.pth=plot(0,0,'k.','markersize',1,'erasemode','background');vehiclepathestimateSLAM估計(jì)路徑h.obs=plot(0,0,'y','erasemode','xor');%observationslandmarkh.xf=plot(0,0,'r+','erasemode','xor');estimatedfeatures%估計(jì)的landmarkh.cov=plot(0,0,'k','erasemode','xor');covarianceellipse%%functionp=make_laser_lines%computesetoflinesegmentsforlaserrange-bearingmeasurementsifisempty(rb),p=[];return,endlen=lnes(1,:)=zeros(1,len)+lnes(2,:)=zeros(1,len)+lnes(3:4,:)=rb(1,:).*sin(rb(2,:))],p=line_plot_conversion%%functionp=computeellipsesforplottingstatecovariancesN=10;%可以控制橢圓的平滑度inc=2*pi/N;phi=lenx=length(x);lenf=(lenx-p=zerosp(:,ii)=make_ellipse(x(1:2),P(1:2,1:2),2,ctr=N+3;fori=1:lenfii=jj=2+2*i;jj=%%

p(:,ii)=make_ellipse(x(jj),P(jj,jj),2,phi);ctr=ctr+N+2;functionp=make_ellipse(x,P,s,%makeasingle2-Dellipseofs-sigmasoverphiangleintervalsr=sqrtm(P);%r*r=Pp(2,:)=[a(2,:)+x(2)NaN];%p(1,:)=[a(1,:)+x(1)%%functiondata=initialise_store(x,P,%offlinestorageinitialisationdata.path=x;data.true=xtrue;data.state(1).x=x;data.state(1).P=P;%data.state(1).P=%%functiondata=store_data(data,x,P,%addcurrentdatatoofflinestorageCHUNK=5000;ifdata.i==size(data.path,2)%growarrayinchunkstoamortisedata.path=[data.pathzeros(3,CHUNK)];data.truepath=[data.truepathzeros(3,CHUNK)];data.true=[data.truezeros(3,CHUNK)];i=data.i+1;data.i=i;data.path(:,i)=x(1:3);data.truepath(:,i)=xtrue(1:3);data.true(:,i)=xtrue;data.state(i).x=x;data.state(i).P=%data.state(i).P=%%functiondata=%offlinestoragefinalisationdata.path=data.path(:,1:data.i);data.truepath=data.truepath(:,1:data.i);data.true=data.true(:,1:data.i);#include"sys.h"#include"usart.h"#include"delay.h"#include"timer.h"#include"motor.h"int{Stm32_Clock_Init(9);delay_init(72);//延時(shí)初始化uart_init(72,9600);//串口初始化ˉTIM3__Init(1000,0,200,200);{}} 程////# :Laurenfrom//# ://#Productname:WheelEncodersforDFRobot3PAand4WD//#ProductSKU://#//#ThesketchforusingtheencoderontheDFRobotMobile//#// leftwheelencoder->Digitalpin// rightwheelencoder->Digitalpin//#defineLEFT#defineRIGHTlongcoder[2]={0,0};intlastSpeed[2]={0,0};void //inittheSerialporttoprintthedataattachInterrupt(LEFT,LwheelSpeed,CHANGE); //inittheinterruptmodeforthedigitalpin2attachInterrupt(RIGHT,RwheelSpeed, //initthemodeforthedigitalpin}voidstaticunsignedlongtimer=0; //printmanagertimerif(millis()-timer>100){Serial.print("Codervalue:");Serial.print("[LeftWheel]");Serial.println("[RightWheel]");lastSpeed[LEFT]=coder[LEFT]; //recordthelatestspeedvaluelastSpeed[RIGHT]=coder[RIGHT];coder[LEFT]=0; //clearthedatabuffercoder[RIGHT]=0;timer=}}void{coder[LEFT] //counttheleftwheelencoder}void{coder[RIGHT]++;//counttherightwheelencoder}二 程RoboPeakRPLIDARArduinoThisexampleshowstheeasyandcommonwaytofetchdatafromanYoumayfreelyaddyourapplicationcodebasedonthis1.DownloadthissketchcodetoyourArduino(Pin0andPin1)3.ConnecttheRPLIDAR'smotorctrlpintotheArduinoboardpinCopyright(c)2014,All Redistributionanduseinsourceandbinaryforms,withorwithoutarepermittedprovidedthatthefollowingconditionsare1.Redistributionsofsourcecodemustretaintheabovecopyrightthislistofconditionsandthefollowing 2.Redistributionsinbinaryformmustreproducetheabovecopyrightthislistofconditionsandthefollowingdi erintheand/orothermaterialsprovidedwiththeTHISSOFTWAREISPROVIDEDBYTHECOPYRIGHTHOLDERSANDCONTRIBUTORS"ASIS"ANDANYEXPRESSORIMPLIEDWARRANTIES,INCLUDING,BUTNOTLIMITEDTO,THEIMPLIEDWARRANTIESOFMERCHANTABILITYANDFITNESSFORAPARTICULARPURPOSEARE ED.INNOEVENTSHALLTHECOPYRIGHTHOLDERORCONTRIBUTORSBELIABLEFORANYDIRECT,INDIRECT,INCIDENTAL,SPECIAL,EXEMPLARY,ORCONSEQUENTIALDAMAGES(INCLUDING,BUTNOTLIMITEDTO,PROCUREMENTOFSUBSTITUTEGOODSORSERVICES;LOSSOFUSE,DATA,ORPROFITS;ORBUSINESSINTERRUPTION)HOWEVERCAUSEDANDONANYTHEORYOFLIABILITY,WHETHERINCONTRACT,STRICTLIABILITY,

溫馨提示

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

評(píng)論

0/150

提交評(píng)論