




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
自二十世紀七十年代初期美國斯坦福大學(SRI)的第一臺被叫做Shakey的移動機器人研究成功,成為了我們人類科學技術在二十世紀以來的重要成果。移動機器人的問世是現代自動化技術與人工智能技術發展與融合的典型代表,也昭示著制造技術發達的水平。在過去50年中,在計算機技術飛速發展的帶動下,人工智能技術取得了重大的突破性進展。越來越多的領域開始嘗試使用人工智能技術提高生產效率,其中模式識別技術取代傳統低效率識別方式、智能控制技術代替人工操作、傳感器技術和數據融合讓數據利用越來越精確。這一系列技術推動著智能機器人技術的飛速發展。在傳統的工業系統當中,原有工業機器人對生產生活效率的提高起著微乎其微的作用。如今的智能機器人更加自動化并且工作環境不再局限于室內等構造簡單的環境,而能勝任各種復雜多變的工作環境,如海陸空等。應用的領域也越來越廣泛和無法估量,目前已經運用到了工農業自動化、軍事、醫療等。智能移動機器人作為機器人學和人工智能領域結合的重點研究對象,以其突出的研究價值及在各領域潛在的廣闊前景受到了全世界的高校和圖1-1自主機器人在各個領域的應用智能車,即能實現不需要駕駛員,僅僅通過計算機和無線傳感器控制就能實現自己行動的車輛,是移動智能機器人在交通領域的重要應用。智能車使用多種車載傳感器,例如視覺相機、GPS導航、激光雷達測距儀、里程計等,獲取車輛周圍的環境情況,并通過傳感器的數據創建出表示環境的地圖,包括路徑、障礙物的位置以及自身的位置,再這些的基礎上完成定位、導航和避障等等行為。無人駕駛車輛顧名思義它具有智能控制的方式,它不再需要駕駛員這個可變因素較高的成分,而用了相對來說穩定的電腦來控制車輛行駛。我們給智能車安裝了導航、定位、避障等等功能,使其能夠有效穩定的完成任務,大大的提高了交通的效率和安全系數。這些技術都有同樣的目的——保障智能車的安全可靠。而要實現智能車自主行駛最基本的技術便是定位,同時它也是研究中的最重點的問題。本課題中最關鍵的兩個問題是對智能車的建圖和定位,他們是相互依存的。智能車想要定位,那么需要有一個有效的環境地圖,同時地圖的創建又需要智能車當前的定位為基礎。因為它們之前存在著這樣密不可分的關系,所以我們稱這個過程為同步定位與地圖創建(simultaneouslocalizationandmapbuilding,SLAM),它是指智能車在當前未知的環境中一邊建圖一邊在所創建的地圖上定位自身的過程。這就是智能車能在未知環境中有效的移動而不是傻傻的到處亂跑的關鍵所在,在這個基礎上智能車還可以更進一步的研究制造,完成更加復雜的任本次畢業設計的題目是基于激光雷達的智能車定位,我個人認為本次設計的選題意義在于對ROS平臺的理解和應用,因為如今智能車以及智能機器人等智能的。況且能將所學到的應用到實際當中更是最好的。其次是從激光雷達傳感器中獲取數據的學習,因為之前對此是一無所知的狀態,所以要想學習并理解激光雷達的數據獲取還是要下很多功夫的,數據的獲取對于智能車定位來說是必不可少的一個環節,因為這也是對其地圖搭建和實現定位重要基礎。最后就是對基于粒子濾波的SLAM算法進行一定學習和理解了,此次設計的定位算法所用到的方法就是粒子濾波進行定位。智能車的定位對于我們日常生活中的工作和學習是至關重要的,在生活中智能車可以代替人類完成很多人不能完成的工作和任務,尤其是在一些特殊環境下的工作。對智能車的研究意義重大,它可以解決人類的生活困難,在學習過程中也能加深我們對智能車的了解以便于更好的控制他為我們工作當前時代,各個世界強國都對智能技術趨之若鶩,特別體現在對智能車技術的需求,在這種背景下智能車技術成為了評價一個國家科技綜合國力的標準之一,美國、日本、歐盟等都走在了世界前列。上世紀70年代末世界上首輛智能車在日本研發并制作成功。該車上采集信號的傳感器由2臺TV攝像機組成并裝有專用的信號處理器,并在當時已經可以達到30公里每小時的速度。美國也在智能車領域進行了深入的研究并為此投入了巨額的費用,同時也是最早開始智能車研究的國家之一。從1980年開始,美國的卡內基梅隆大學、麻省理工大學、斯坦福大學就得到國家的支持開始了智能車方面的科學研究。很快他們就在智能車方面取得了重大的研究成果,研制出了如圖1-2所示的NavLba11智能車。該出配備有目前世界上主流的傳感器,通過視覺相機、里程計、激光雷達、GPS導航等完成了自主移動,并為后來智能車的發展做出了良好的鋪墊,具有很重大的意義。圖1-2卡內基梅隆大學的NavLab11智能車在歐洲,智能車的研究發展以歐盟為代表取得了卓越的成績,各國之間也逐漸形成了統一的合作關系并建立組織。他們開發了自己的智能車框架項目,并且在歐盟各個國家的科學家組建的團隊通力合作研究下,這些項目有了很卓著的成果。其中最具有代表性的實際應用是1997年12月Frog公司的ParkShuttle在荷蘭阿姆斯特丹Schiphol機場的應用,如圖1-3所示,雖然那只是早期的智能車技術,但在當時已經是很了不起的成就。它能在出發點和終點按一定的路線來1999年2月,在荷蘭的鹿特丹,相同的智能車技術用于ParkShuttle在Rivium商業區的應用上。2002年,CyberCab以荷蘭園藝博覽會為平臺完成了試驗,任務是短距離輸送當時的游客。如圖1-4所示,這時技術已經比早期成熟許多,雖然同樣是在規定的路線上完成對游客的運輸工作,智能車系統能夠完成2004年6月,法國借鑒歐盟的智能車項目,開發出了自己的智能車并進行了大規模的演示。2005年6月,該項目有了突破性的進展隨之而來是法國智能車項目越來越多的展示,這些各種各樣的成果展示都向世界展示了他們在智能車研究上取得的成就和未來發展的速度將越來越快。圖1-3Frog公司CyberCar在機場的應用圖1-4雅馬哈公司的智能車輛CyberCab我們國家對智能車項目的研究起步比世界上其他大國晚,期初的規模也比不上國際水平,但我們投入了大量的精力現在也取得了不錯的進展和成果。如上海交大、國防科大、清華、浙大等高校及其研究單位在這方面工作上做出了巨大的付出,同時也取得了杰出的成果。在1991年到1995年期間,我國的第一款智能車面世,取名為ALVLAB1。對程中自主進行道路的偵查和選擇,能有效躲避障礙物并能夠在野外泥濘等復雜環境中保持良好運行狀態。在直路狀態下最高時速21.6km/h,當在轉彎以及躲避障礙物時也能保持12km/h的時速。總體上達到了國際智能車的性能水平。在大好形勢下,我國在第九個“五年計劃”期間成功研制出了我國的第二代智能車異,在第一代智能車基礎上增加了支持臨場感遙控駕駛及戰場偵查等功能。其在復雜道路環境和無人駕駛狀態下最高時速達到了74km/h,平均正常行駛速度為30.6km/h。在特殊路段如越野環境中,白天行駛時速最高達到24km/h,夜晚行駛時速達到了15km/h。在前兩代智能車的基礎上,由中科院與清華大學計算機系合作提供技術的支撐,在國家重點實驗室中研制成功了我國新一代智能車THMR-V(TsingHuaMobileRobotV)。在原有基礎上改良了智能車的道路適應系統,讓其可以同時兼顧高速公路和一般道路的行駛。智能車THMR-V車體由道奇7座廂式車改裝而來,設計其在高速公路上的時速為80km/h,在一般道路上的時速為20km/h。目前此智能車已經能夠完成在非結構化道路環境下進行道路的偵查和選擇和躲吉林大學也在中國智能車發展的道路上緊緊跟隨上述各個單位的腳步,在組建自己的科研小組后成功的研制出了自己的智能車JUTIV-II。該智能車于上世紀九十年代初研制成功,具備了當時智能車普遍的功能,在國內是較早跟上當時技術水平的單位之一。還有2013年我國首次送上月球的智能車“玉兔號”(如圖1-5所示),其代表這我國在智能車方面的研究已經躋身世界前列,是非常具有意義的。該車采用太陽能為動力源,具備了在外太空爬坡、避障和導航等功能。上海交通大學主持了歐盟CyberC3項目,并參加了歐盟CyberCars-2項目,已經研制出多輛智能車,如圖1-6所示,該智能車性能穩定、優異,已經在上海市向市民進行了演示,并且投入實際工作和生活中使用。圖1-5玉兔號月球車圖1-6上海交通大學Cyberc3智能車輛本課題將把激光雷達集成到ROS平臺上開展工作,以提高智能車的地圖定位本課題利用ROS搭建智能車軟件平臺,利用TurtleBot和激光雷達搭建智能法設計能力、C++語言應用開發能力和綜合應用能力。第一章:主要介紹本課題的研究背景和意義,以及智能車在國內外的發展概況第二章:介紹了智能車定位過程中創建的各種地圖類型及其優缺點,詳細介紹了本次課題采用的地圖——基于激光雷達傳感器的線段特征采集以及局部地第四章:介紹了實驗智能車平臺,實驗的過程中重要步驟和代碼的分析。第五章:對本課題的總結和展望。實現智能車在未知環境中的定位與其實現自主創建地圖是互相依存的。地圖是智能車所在環境的信息表現方式,它依據智能車所配傳感器收集的信息而建立。根據創建使用的地圖不同,有三種不同的方法創建地圖來供智能車使用:拓撲方法、柵格法、特征法。這三個方向對應著不同的環境建圖。本文主要討論的是室內環境下的智能車即時定位與同步建圖(SLAM),所以選擇采用創建基于特征的地圖。本章重點講述各種方法創建的地圖類型和它們各自的優缺點,也介紹了智能車傳感器的模型并詳細介紹了本課題所使用的地圖創建過程——特征地圖的創建。對于智能車來說,創建地圖的方法是它能否快速有效的完成SLAM過程的關鍵。在如今智能車研究發展的結果表明一張切實有效的地圖,都應滿足以下三個(2)地圖的更新迭代不困難,新的信息隨時可以吸收;(3)智能車可以使用該地圖完成我們對它布置的任務。前文介紹了創建地圖有三種方法,而每種方法創建出的地圖都有自己的特點和適用范圍,應該根據實際情況選擇合適的地圖表示方法。2.1.1拓撲地圖基于拓撲圖表示法是將智能車所在的外部環境表示為一張拓撲圖,周圍環境中的每一個路標點(可以自行做標記)對應于地圖中的一個節點,若果地圖中的節點兩兩之間有一段弧則說明在真實環境中的2個路標點之間存在可以通行的路徑。如下圖2-1所示。拓撲地圖通過非常抽象的拓撲圖表示環境,不追求環境中具體的情況、甚至不同的節點之間它們實際的位置關系也是不精確的,所以創建時很方便。因為拓撲圖具有這樣的特點,所以它很適合用于創建大范圍、室外、環境情況復雜的地圖,如果需要對環境中的情況有需要的話可以將這些信息儲存為對應節點的描述文件?;谕負涞貓D的智能車SLAM有著難以創建和更新的缺點,維護也比較麻煩。特別是環境中又有兩個地方很相似,而傳感器的誤差是不可避免的,通常這樣的話我們就無法分析它們是否為相同的節點,創建的地圖可能就出現非常大的誤差,導致智能車無法完成任務。圖2-1拓撲地圖柵格法對地圖的表示已經越來越多的應用在了智能車自主地圖的創建,并在柵格地圖上進行自主定位。該方法將智能車所在的環境信息收集起來,建立一個坐標系,并將用一個一個的柵格來儲存收集的各種信息,每一個柵格有自己的坐標,也有一個數值用來表示該方格代表的環境中存在障礙物的概率。柵格法創建地圖的優點在于創建的過程不復雜,數據的結構是坐標系也很容易計算,使得地圖在需要維護和更新時更加的方便。如圖2-2。圖2-2占有柵格地圖來創建整個地圖,而全局地圖的更新是通過更新局部柵格來實現的,再通過將局部地圖與全局地圖匹配,可以確定智能車的位置。柵格地圖非常適合于智能車的路徑規劃是該方法最突出的優點,因為可行或不可行的區域顏色對比非常明顯。顏色越深的地方代表障礙物存在的概率越大,反之概率就越小。不過它的創建難點在于確定每一個柵格的大小,這是顯而易見的。如果要求地圖的精度高,那么我們需要選擇尺度較小的柵格,那么創建的地圖數據結構很很大,導致需求的儲存空間和計算的時間復雜度很高;如果選擇大尺寸的柵格,那么地圖的誤差就會難以估計。因此柵格法在大規模地圖中應用具將傳感器置于需要檢測的環境中,智能車通過傳感器得到環境的具體數據并對這些數據進行分析,從而建立抽象的幾何模型,如點、線、面等模型來表示環境。這就是特征地圖。如圖2-3所示為提取線段創建的特征地圖。圖2-3基于線段的特征地圖特征地圖具有表示緊密細致并且讓定位目標位置和識別其信息變得更加方便的優點。比如在辦公室等室內的封閉環境中,多數都是由顯著的幾何特性線段組成,這時就可以利用環境中的幾何特征進行建模,可以簡單明了的將環境具體的表現出來。由這種方法創建出來的特征地圖能有效的對目標進行精確定位且能直觀體現目標的位置信息。特征地圖有效解決了在不同坐標系中難以轉換和不同傳感器之間的數據難以有效交叉相容的難題,更有利于在真實的室內環境中有效實施,很適用于智能車導航中的自定位,很多智能車系統都采用了這種方法。因為室內環境有很多的幾何特征,便于采集,并且地圖表達簡單,存儲空間較小。所以本課題采用特征地圖來進行智能車的定位?;谔卣鞯貓D的智能車SLAM需要從傳感器收集的數據中采集出所需要的線段特征,再進行下一步的工里程計(Odometry)具有價格不高、采樣速率高、短距離內的定位誤差極小的特點,成為智能車很常用的一種定位工具。它的工作原理是通過光電編碼器獲得車輪在實驗過程中旋轉過的度數,(如圖2-4所示)再結合車輪的周長,推算出智能車行走的路程距離來得到智能車距離出發點的位置情況。不過缺點在于誤差較大,通常會結合其他的傳感器完成數據的采集。本文采用常見的增量式正交光電編碼器。在一個周期T內采樣可以推算智能車左輪和右輪的位移分別是:假設智能車的2個車輪之間的寬度為D,那么在一個周期T內智能車位置和上式左側就是里程計的輸出量。2.2.2激光雷達測距儀模型激光雷達測距儀是移動智能車研究中常用的測距傳感器,屬于外部傳感器。激光雷達測距儀采用的是激光束,它不受光照影響,采集到的環境信息誤差相比里程計得到的信息精確度很高,并且具有質量輕、體積小、距離遠、實時性高、抗干擾能力強等優點使其可以作為自主智能車主要的的環境信息獲取傳感器。工作原理和聲吶類似如圖2-5所示。由發射口發出一束激光信號,在信號傳播的過程中如果遇到障礙物它就會反射回來,激光雷達傳感器有自己的接收器,可以接受被反射回來的激光信號。通過發射和接收之間的時間間隔來計算出障礙物的距離,主要用于收集創建地圖的數據。本文采用的激光傳感器是日本北陽公司生產的2D激光掃描儀Hokuyo指標名稱參數指標名稱參數電源電壓DC12V±10%光源半導體雷射入=870nm測距范圍掃描角度測距精度0.1-10m:±30mm;角度分解度約0.25(360/1,440分割)掃描時間噪音接口USB2.0(全速)環境溫濕度濕度:<85%RH(無凝露)激光掃描測距產品,測量距離0.1to30m,測量范圍為270°,角度分辨率為0.25°(360°/1,440steps),精度為0.1toZ,=(p?+o,,α?+o?)'i=1,2,3…,N2.3線段特征提取和局部地圖匹配預期的特征或者特征模板進行對比并配對出相同的特征。上述過程中,通常傳感器檢測到的幾何特征參數數目會大于被估計的數目。因為傳感器的測量都存在不可避免的誤差,所以不會存在相同的情況,而要考慮的就是如何優化我們的檢測到的結果。例如我們用最小平方值來估計,可以得到一個有效的估計參數,使得我們得到的估計值與由傳感器采集數據計算而來的測量值之間差異最小。2.3.2線段特征檢測特征方法創建地圖的具體流程如圖2-6所示。通過激光雷達和里程計得到的原始數據提取出特征線段,然后進行濾波、聚類、擬合等步驟得到局部地圖,再通過選取的角度對局部地圖進行掃描,然后一一匹配來減少誤差。最終的環境地據匹配聚類濾波擬合據匹配聚類濾波擬合數圖2-7激光數據處理流程圖激光雷達測距儀得到的數據并不是直接的特征地圖,而是一系列的點。我們需要去除誤差較大的點后才可以進行線段特征的提取。這一過程稱為濾波,能提高地圖的準確性。由于室內環境下線段特征容易采集,所以本課題采用線段特征的提取方法構建室內地圖。這里我們使用的是聚類法提取特征,該方法主要是給各個采集點賦于不同的權值為數據處理手段,因此具有更高的精確性。得到了環境中的線段特征,我們需要通過聚類法將它們擬合成直線,然后才可以創建環境的特征地圖。因為傳感器的原因和數據計算過程中難免存在大量難以估計的誤差,那么為了提高地圖的精確度,對得到的線段特征使用一定的算法進行擬合得到直線特征,減少誤差。實驗得到的觀測數據與之前的預測值的匹配問題,也稱作數據關聯。比如說通過掃描環境模型中特征值對應的路標點,這樣做可以確認我們的測量值是否和預測值相同,或者說相同的測量值和預測值是否來自于同一個路標點。這樣做可以防止錯誤的測量值被我們用于地圖創建過程中的聚類,提高地圖的可靠性。那么我們就需要更加復雜的數據關聯技術進行關聯匹配。Besl和McKay在1992年提出了ICP(IterativeClosestPoint)迭代最近點算法。這是一種從不同的角度對模型中距離最近的2個采集點進行不同的掃描匹配,找到對全局最合適的匹配方案,如圖2-7所示。這個匹配問題可以描述為:對智能車從一個采集點到下一個采集點運動前后對同一路標點的兩組激光測量數據,求出一個運動系數以使這兩組數據指向的都是這個相同的路標點。然后繼續重復上述的匹配過程。圖2-8在橢圓模型中進行ICP匹配(1)計算距離最近點(2)計算配準(3)更新點集(4)迭代終止本章講述在智能車定位過程所涉及到的幾種地圖類型及根據它們各自的特點,本課題采用的了其中的特征地圖。介紹了在室內環境下采用基于特征方法表示智能車所處環境,并建立特征地圖。特征地圖使用里程計和激光雷達測距儀采集的數據,提取線段特征描述環境,簡單明了便于儲存。在創建地圖的過程中由于激光雷達傳感器的功能不穩定,地圖有時會出現錯誤,這時需要等待地圖的更新以改正。2007年WillowGarage公司和美國斯坦福的聯合項目誕生了ROS操作系統。ROS從誕生開始就是面向全世界的智能機器人愛好者和研究人員,開源并且不收費,因此被廣泛的使用在全世界各種各樣的機器人上,是一種可靠優秀的分布式框架操作系統。它可以提供類似Windows這樣的操作系統所具備的大多數功能,并且自帶有許多簡單有效的工具軟件。最重要的一點是她支持多種編程語言編寫的程序,能在機器人領域輕松加愉快的實現代碼復用,因此ROS還支持代碼庫的上述所有功能都能由ROS的基礎工具實現。本次課題就會用到R供的用于機器人導航的完整包navigation,其中包含了本次實驗所使用到的重AMCL模塊實現的。我們還會用到ROS系統自帶的一個可視化3D軟件RVIZ,它提供給我們地圖的可視化界面。ROS的主要特點有點對點設計、不依賴編程語言、精簡與集成、便于測試、開源并且規模大。這一級主要包括幾個重要概念:節點,節點管理器,參數服務器,消息,主題,服務(1)節點:節點執行計算的進程,ROS上一個機器人控制系統有許多節點組成。(2)消息:每個不同節點間相互聯絡是通過傳送消息進行通訊的,每一個消息(3)主題:消息發布訂閱傳輸系統來傳送,節點之前的通信是依靠主題來互通消息的。主題是用于識別消息內容的名稱,發布消息必須伴隨著一條主題。(4)服務:與主題類似也是一種消息傳輸機制。雖然基于主題的發布或者訂閱模型是很靈活的通信模式,但是它對于同步傳輸模式并不適合。在ROS中服務被互行為表現為類似一個遠程程序的調用。subscribeROS節點管理器通過RPC(RemoteProcedureCallProtocol,遠程過程調用)提供了主題和服務的注冊信息以及對其他計算圖表的查找。節點之間是可以直接相連的,通過節點管理器提供的表信息,如同IP地址一樣。節點就能找到其他節點并確定一種協議進行通信。比如控制節點訂閱和發布消息的模型如下:XML/RPC8○3)connect("scan*.TCP)4)TCPserver:foo:23456)dataXML/RPC:foo:1234TCPdata:foo:2345messages句二二XML/RPC:foo:1234ROSRPC:foo:3456XML/RPC0圖3-4ROS控制器控制服務ROS文件系統級類似于Windows系統,可以通過硬盤分區,通過圖形界面來查看ROS系統中的文件,比如源代碼文件等等。圖3-5ROS系統文件種類ROS計算圖中包含的內容類似于Windows中各種各樣的文件,它們統一包含在ROS文件系統結構中,主要有以下2個重要的組織形式:包和堆。(1)包圖3-6包圖3-7堆功能包功能包清單消息服務代碼其他功能包集圖3-8ROS文件結構是開源的并且希望最大速度讓它發展,所以采用軟件倉庫的管理模式來處理。這樣做使得ROS愛好者和研究人員可以在通過其他人的創意來豐富自己的機器人,同時也可以共享自己的想法,達到共同推進ROS發展的目的。因為此類自上到下結構的設計,使得一個能夠實現個體自主工作和根據環境的不同進行優化。這種結構上分布的優點,讓獨立地發展和實施工作成為可能,以指數級增加。社區級文件系統級社區級程序分布式管理程序如何組織構建描述程序如何運行3.2粒子濾波理論分析粒子濾波的核心是對智能車的路徑位姿及地圖進行分解的一種混合濾波算法。根據該思想,將聯合后驗概率分解:p(S,m/Z,,U,)=p(S,/Z,,U,)p(m/Z,S,)是t-1時刻前的控制量,實際反映為里程計的反饋。具體的算法流程如后面小節介紹。粒子濾波器是一種基本統計工具,其核心是序列重要采樣(SequentialImportanceSampling,SIS)通常也稱之為蒙特卡洛濾波器。目前已經成功應用在目標跟蹤、智能車定位、地圖創建等各個相關領域。通過采樣樣本表示概率分布,每一個樣本稱作一個粒子,每一個粒子賦予不同的權值。它提供了一種方便有效的計算后驗概率的方法。粒子濾波器包括四部分:1)生成粒子集(采樣步驟);4)重采樣。根據先驗概率隨機選取N個粒子,作為初始狀態,每個粒子對應自己的權值為W?=1/N,根據規則和目標的先驗概率得到初始狀態集為X。=P(X?)。積,即P(x?,x?)=P(x?|x?)P(x?)。如果P(x?,x?)可以解析的表示,那么只需要對對于每一個粒子,根據特定的粒子歷史計算預期分布,并且根據該分布采集X”~π(X?|XO,Zx,U)并將該樣本加入到粒子的歷史中。3.2.3粒子權重的計算每個粒子的權值可以由如下的遞推式得到:xw;P(z,ls,,z_,)其中,Z'1代表t-1時刻及之前對環境特征的觀測值,Z'表示t時刻的觀測值,S'表示t時刻的智能車的位置。如果t時刻前的估計值不在測量值計算出來目標區間,那么計算會變得非常復雜,而且不一定能有結果。這里有一個優化的方案:將t時刻的觀測值直接引入到對下一代的粒子集合的產生中。得到:p(s,m_,,s,,z,,u,,)的粒子樣本集合,那么可以推出新的權值的計算方式為:3.2.4重采樣當得到所有的樣本粒子后,我們并不是要使用所有的樣本粒子。我們會用權值高的粒子來代替那些權值較低的粒子,得到更加精確的定位信息。這個過程就稱為重采樣。這樣做又存在一個關鍵的問題,當我們多次迭代之后,樣本粒子中只剩下那些重復的權值大的粒子,我們的樣本就會退化,即那些權值大的粒子就3.2.5狀態參數的估計根據前文提到的各種模型得到粒子樣本,再根據粒子樣本估計得到的結果,更新對應的地圖參數,通過激光數據得到的當前估計的位姿來對下一步的粒子濾波進行采樣。具體高斯估計的參數如下:其中的為歸一化參數:設智能車與設定的特征路標點的距離為r,行駛路線與路標的夾角為a,那其中的q為:q=(0m,y-S?y)2+(0m,x-s,)2SLAM算法的過程,主要使用特征地圖進行定位,對粒子的重要性權值計算和重本次實驗平臺是由實驗室老師和研究生師兄自主搭建的一個智能小車,如圖4-1、4-2、4-3所示。4-1輪式智能車4-2輪式智能車4-3輪式智能車該機器人采用前文介紹的激光掃描儀HokuyoUTM-30LX,基于TurtleBot智能機器人平臺。TurtleBot是一個較為簡單的基礎機器人開發平臺,自帶有軟硬件,使用ROS作為操作系統,能實現機器人的自主建圖、導航、定位等功能。本次實驗采用JoyStick手柄進行操控智能車,實驗的環境為西南科技大學東7A座8樓的走廊。(1)打開ROS(2)在turtlesim控制節點 $rosrunturtlesimturtlesimnode啟動小海龜仿真平面(3)發布控制命令在新的terminal中輸入以下指令: $rostopicpub-1/turtlel/cmd_velgeometry_msgs/Twist-可以得到小海龜繪制8字形狀命令,效果如下:4.2.2TurtleBot實現建圖在使用完成TurtleBot對ROS進行初步認識之后,現在我們就應該把本課題的主體軟件程序應用到此平臺上來。在第二章中,我們介紹了激光雷達傳感器采集環境?,F在只要將數據添加到TurtleBot上,我們就可以用運用這些數據進行創建地圖,加載地圖的工作了。具體的各個命令順序如下:I$roslaunchturtlebot_bringupminimal.launch $roslaunchturtlebot_navigationgmapping_demo.launch $roslaunchturtlebot_rviz_launchersview_navigation.launch $roslaunchturtlebot_teleopkeyboard_teleop.launch V如果還沒實現存儲地圖工作,不能關上gmapping.launch運行保存的地圖。4.3.1創造一個簡單的ROS包ROS的軟件以包的方式存在。包可以用自己寫的軟件封裝,也可使用ROS提供的工具,例如roscreate-pkg來創建package:生成manifest.xml文件,如圖4-4所示。<!--Theexporttagcontainsother,unspecified,tags--><!--Youcanspecifythatthispackageisameta<!--Youcanspecifythatthispackageisameta<!--<metapackage/>-->(2)將該路徑添加到ros系統中(即更新ros查找路徑):通過將改路徑添加到ros的環境變量中來實現。export.ROS_PACKAGE_PATH=YOUR_BEGINNER_TUTORIALS_PATH:$ROS_PACKAGEPATHcatmanifest.xml,得到結果如圖4-5。<!--Theexporttagcontainsother,unspecified,tags---><!--Youcanspecify<!--Youcanspecifythatthispackageisa<!--<metapackage/>-->圖4-5申明顯示結果rosdep命令:根據ROSpackages來安裝系統變量msg:msg文件是儲存了ROS消息的內容,可以生成各種適合于ROS的源代分開。srv文件存儲在srv文件路徑。(2)創建一個msg:_a.在已經創建好的beginner_tutorials_num”>msg/num”>msg/Num.msgpackage上創建msg:然后,用“geditCMakeLists.txt”打開package的CMakeList.txt,取b.查看msg文件:圖風《《《《《□《《圖風《《《《《□《《建立完成packge,相關程序及進行操作其文檔應該在~/catkin_ws/src文件下,等價的打開命令通常是如圖4-6所示的。$catkin_init_workspace$cmake…/Src-DCMAKE_INSTALL_PREFIX=../install-DCATKIN_DEVEL_PREFIX=../devel圖4-6存放目錄等價命令4.3.3用ruiz包實時顯示機器人建立的地圖Rosrunrvizrviz創建地圖過程中截圖如圖4-7所示。GlobalStatus:okGeldTFLocalMapStatus:OkTop北PotionToleranceAngleToleranceKeepLengthLengthofeacharrow.3030fps圖4-7創建地圖的過程截圖在上圖中的黑點即為移動智能車的定位所在。(1)通過RVIZ對智能車進行直線定位,通過手柄控制智能車在走廊上進行直線行駛一定的距離,記錄智能車在地圖上與路路標的距離,使用卷尺測量智能車與路標的實際距離。(2)通過RVIZ對機器人進行非直線定位,通過手柄控制智能車在走廊上進行非直線行駛一定的距離,記錄智能車在地圖上與路路標的距離,使用卷尺根據數據可以對定位精度進行測試。測試數據截圖如下所示:orlentation:y:0.0covartance:[6.1,6.0,0z:0.cstanp:Z:0.0orlentatlon:Y8O.thear:X:0.00.0,0.0,Y:OZ:0.0X:X:0.0,0.0,0.0,1.7976931348623157G0.0,1.7976931348623157e+308,0.0,0.0,0.0,0.0,turtlebotOturtlebotturtlebotOturtlebot:~Pose:x:0.0y:0.6tisttx:0.0x:0.Cy:0.0covarlance:[6.1,0.0.0.0.0.0.0.0,對數據進行整理可以得到:理論值(cm)實際值誤差誤差范圍(cm)起始坐標終止坐標距離82定位精度在進行多次測量中,大部分誤差范圍均維持在10cm以內,僅少數誤差范圍超過10cm。驗證了本文討論的基于激光雷達的智能車定位算法是有效4.4重要源代碼及分析$roslaunchturtlebot_navgmapping_demo.launch文件是初始化算法的文件,其中:入加載算法所需要的參數,并初始化;gmapping.launch.xml文件包含所有需要用到的參數,其中:<nodepkg="gmapping"type="slam_gmapping"name="slam_gmapping"output="screen">加載名為gmapping的包并初始化,生成名為slam_gmapping的可執行文件,參算法的主函數main.cpp:#include<ros/ros.h>#include"slam_gmapping.h"main(intargc,char**argv){ros::init(argc,argv,"slam_gmapping");gn.startLiveSlam();ros::spin();其中ros::init(argc,argv,"slam_gmapping");初始化gmapping節點;SlamGMappinggn;定義了一個類的對象gn;gn.startLiveSlam();調用gn里的一個功能函數來創建地圖并定位。slam_gmapping.h中封裝了一個很重要的類SlamGMapping:(部分重要的代碼)classSlamGMapping{public:SlamGMapping();SlamGMapping(unsignedlongintseed,unsignedlongintmax_duration_buffer);~SlamGMapping();voidvoidvoidvoidsensor_msgssensor_msgs::LaserScan::ConstPtr&scan);laserCallback(const上述代碼定義了激光數據的回調,以及地圖的保存和更新。在SlamGMapping這個類中的構造函數SlamGMapping:SlamGMapping::SlamGMappingSlamGMapping::SlamGMapping():map_to_odom(tf::Transform(tf::createQuaternionFromRPY(0,0,0),tf::Point(0,laser_count_(0),private_nh_("~"),scan_filter_sub_(NULL),scan_filter_(NULL),}它的主要功能就是實現各種參數的初始化SlamGMapping
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年終止合同關系
- 2025年新版擔保公司借款合同范本
- 2025年:職工提取公積金支付房租 新政策取消完稅證明及租賃合同備案要求
- 2025節能照明系統設計委托服務合同樣本
- 《新同伴新樂趣》課件
- 《輪椅適應性與輔助設備》課件
- 2025年福建省家居裝修工程合同
- 2025石油貿易合同范文
- 《夏夜喜雨》課件
- 2025商鋪租賃合同模板
- 河南省洛陽市新安縣2023-2024學年八年級下學期4月期中道德與法治試題
- 安全生產培訓課件:機器設備安全操作規程
- DB11-T 2207-2023 市政橋梁工程數字化建造標準
- 校園足球教育知識講座
- 2022-2023學年湖南省長沙市重點中學高一下學期期中考試化學試卷
- 硼元素植物研究報告總結
- 中職英語 基礎模塊2 Unit 4 Volunteer Work
- 水上交通整治方案
- 醫德醫風工作考核總結通用五篇
- 提高PICC導管維護規范率成果匯報
- 公司安環部績效考核實施管理方法
評論
0/150
提交評論