国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

ROS自動(dòng)導(dǎo)航機(jī)器人在Python課程中的應(yīng)用

2022-10-15 13:17王超李乾坤
現(xiàn)代信息科技 2022年14期
關(guān)鍵詞:移動(dòng)機(jī)器人算法自動(dòng)

王超,李乾坤

(山東華宇工學(xué)院,山東 德州 253034)

0 引 言

隨著社會(huì)的發(fā)展以及人們生活要求的進(jìn)步,自動(dòng)導(dǎo)航機(jī)器人在人們的日常生活中扮演著不可缺失的角色。1959年,在眾多研究者的不懈努力下,第一臺(tái)機(jī)器人被德沃爾與約瑟夫聯(lián)合制造,他們成立了世界上第一家機(jī)器人制造廠,正式開啟了機(jī)器人為人類服務(wù)的新篇章。機(jī)器人的出現(xiàn)對各行業(yè)都有著不同程度的影響。而移動(dòng)機(jī)器人在眾多各式各類的機(jī)器人中最為典型,不僅影響著交通的發(fā)展,而且對工業(yè)、農(nóng)業(yè)、教育等各領(lǐng)域都產(chǎn)生著不同程度的影響。在高校教學(xué)中往往與Python、C語言等程序設(shè)計(jì)課程相結(jié)合,寓機(jī)器人設(shè)計(jì)實(shí)踐于教學(xué)當(dāng)中。

本文以研究在Python 教學(xué)中設(shè)計(jì)基于自動(dòng)導(dǎo)航的移動(dòng)智能機(jī)器人,基于ROS 系統(tǒng)利用激光雷達(dá)探測周圍環(huán)境,樹莓派3 來處理數(shù)據(jù),OpenCR 控制器為控制中樞轉(zhuǎn)化信號(hào)以控制機(jī)器人各個(gè)方向的移動(dòng)。實(shí)現(xiàn)了物聯(lián)網(wǎng)的對接、機(jī)器人的遠(yuǎn)程操作以及機(jī)器人自主巡航和避障。

機(jī)器人操作系統(tǒng)(robot operating system,ROS)是一個(gè)開源的機(jī)器人操作系統(tǒng),世界上有越來越多的人使用它。它可以提供通用功能、底層控制、流程消息等服務(wù),還可以提供跨計(jì)算機(jī)獲取、編譯、編寫和運(yùn)行代碼所需的工具和數(shù)據(jù)庫。它是一種高度靈活的軟件體系結(jié)構(gòu),用于編寫機(jī)器人軟件程序以及機(jī)器人的研究和開發(fā)。ROS 還支持一個(gè)類似于代碼數(shù)據(jù)庫的系統(tǒng),該系統(tǒng)還可以協(xié)作和發(fā)布項(xiàng)目。從驅(qū)動(dòng)到最新算法,再到強(qiáng)大的開發(fā)系統(tǒng),ROS 的主要目的是提供一個(gè)統(tǒng)一的開源程序框架,以實(shí)現(xiàn)在各種實(shí)際環(huán)境和仿真世界中對移動(dòng)機(jī)器人的控制。ROS 擁有許多機(jī)器人開發(fā)軟件工具和軟件功能包,能夠增加移動(dòng)機(jī)器人研究過程中軟件的再利用率,加速項(xiàng)目進(jìn)程,用最簡單的代碼實(shí)現(xiàn)更強(qiáng)大的功能?;赗OS 實(shí)現(xiàn)機(jī)器人操作越來越普遍,已逐漸發(fā)展為機(jī)器人領(lǐng)域的標(biāo)桿。在機(jī)器人和人工智能的研究過程中,ROS 已經(jīng)成為最強(qiáng)大的助手和最穩(wěn)妥的設(shè)備。自動(dòng)導(dǎo)航對于移動(dòng)機(jī)器人來說是最基本的功能,移動(dòng)機(jī)器人應(yīng)該在陌生或者復(fù)雜的環(huán)境中能夠自主探測出障礙物并且躲避障礙物,規(guī)劃出一條安全性最高的最優(yōu)路線,并沿著這條路線智能性地避開路途中的障礙物達(dá)到目標(biāo)點(diǎn)。

機(jī)器人的自動(dòng)導(dǎo)航設(shè)計(jì)首先需要對機(jī)器人的環(huán)境進(jìn)行構(gòu)建,其次讓機(jī)器人進(jìn)行自主定位,然后進(jìn)行自動(dòng)導(dǎo)航,最后對機(jī)器人進(jìn)行仿真模擬實(shí)現(xiàn)機(jī)器人的自動(dòng)導(dǎo)航。

1 硬件設(shè)計(jì)

機(jī)器人系統(tǒng)主要分為三個(gè)部分:傳感器板塊、功能運(yùn)算板塊、功能執(zhí)行板塊。機(jī)器人硬件連接如圖1所示。

圖1 硬件連接圖

機(jī)器人采用鋰電池作為供電結(jié)構(gòu),360°傳感器作為傳感系統(tǒng),樹莓派作為控制器以完成機(jī)器人的整體結(jié)構(gòu),其結(jié)構(gòu)圖如圖2所示。基于ROS 的計(jì)算機(jī)端通過Wi-Fi 接收信息,從而實(shí)現(xiàn)機(jī)器人的運(yùn)動(dòng)操作、前進(jìn)、后退、左右轉(zhuǎn)。通過一系列算法來實(shí)現(xiàn)環(huán)境探測、自動(dòng)泊車、遠(yuǎn)程桌面控制、自動(dòng)巡航、檢測障礙以及定點(diǎn)導(dǎo)航的功能。

圖2 機(jī)器人結(jié)構(gòu)圖

激光傳感器使用激光發(fā)射對準(zhǔn)目標(biāo),通過激光反射往返時(shí)間測量出與周圍物體的間距,用于對周圍環(huán)境的探測采集,實(shí)時(shí)測出周圍障礙物的距離。本文采用的是陀螺儀3Axis,加速度計(jì)3Axis,磁力計(jì)3Axis更加精準(zhǔn)并且可靠穩(wěn)定的運(yùn)行。

機(jī)器人的處理器使用了樹莓派3 的CPU,相對于該類型移動(dòng)機(jī)器人樹莓派3 的處理器完全夠用。

OpenCR 是機(jī)器人的主控制板是為ROS 嵌入式系統(tǒng)開發(fā)的并且提供了完整的軟件及硬件。外形小,性能高并且高效節(jié)能,相當(dāng)于大腦,控制著整個(gè)機(jī)體的操作,使機(jī)器人的各個(gè)部件能夠協(xié)同運(yùn)行。

多功能數(shù)字舵機(jī)使用高頻率脈沖激勵(lì)雷達(dá),使用微處理器來控制,大大地優(yōu)化了舵機(jī)的性能,而供電系統(tǒng)也使用了小巧便攜的鋰電池,減小了馬達(dá)的壓力,移動(dòng)機(jī)器人的位移活動(dòng)更加靈敏。

2 周圍環(huán)境構(gòu)建

移動(dòng)機(jī)器人要在陌生的環(huán)境中進(jìn)行完全自主導(dǎo)航,了解周圍環(huán)境必不可少,首先確定移動(dòng)機(jī)器人當(dāng)前的位置,然后建立一個(gè)模型。如今,移動(dòng)機(jī)器人全是通過自身所攜帶的激光雷達(dá)設(shè)置對周圍環(huán)境進(jìn)行估算和測量。因此,本文使用SLAM 對周圍環(huán)境進(jìn)行建模。SLAM 建圖大致分為兩步,首先獲取周圍環(huán)境的大致信息,其次對這些信息進(jìn)行匹配吻合。整個(gè)過程激光雷達(dá)起主要作用。SLAM 算法的原理框架如圖3所示,建模后圖像如圖4所示。

圖3 SLAM 原理圖框架

圖4 建模圖

在目前的SLAM 技術(shù)中,比較通用的是激光SLAM 和 視覺SLAM,即利用激光雷達(dá)對環(huán)境進(jìn)行掃描,然后對環(huán)境信息進(jìn)行處理,優(yōu)點(diǎn)在于可靠性高,技術(shù)生態(tài)較為完整。與此同時(shí),為了克服不利于精度的影響,采用雙線性插值方法來估計(jì)網(wǎng)格占用率。在環(huán)境網(wǎng)格圖構(gòu)建完成后,將當(dāng)前采集的激光掃描框架與創(chuàng)建的網(wǎng)格圖進(jìn)行配對,然后完成對移動(dòng)機(jī)器人的位置和姿態(tài)的估計(jì)。SLAM 算法采用高精度的激光傳感器,絲毫不需要里程表的數(shù)據(jù)信息,具有巨大的發(fā)展前途,特別是應(yīng)用于移動(dòng)機(jī)器人領(lǐng)域的地圖建模問題。

3 AMCL 定位

在移動(dòng)機(jī)器人領(lǐng)域,定位系統(tǒng)一般采用的算法是AMCL算法,該算法屬于粒子濾波算法。AMCL 定位算法是一種蒙特卡羅粒子濾波算法。主要用于機(jī)器人在地圖上導(dǎo)航時(shí),為機(jī)器人提供定位功能?;诹W尤簝?yōu)化算法的優(yōu)越性,系統(tǒng)對基于粒子群優(yōu)化的AMCL 算法進(jìn)行了優(yōu)化。

與建圖系統(tǒng)相比,AMCL 定位系統(tǒng)的功能更加局限。接收到的主要數(shù)據(jù)有靜態(tài)地圖、初始位姿、實(shí)時(shí)激光雷達(dá)數(shù)據(jù)等,這些數(shù)據(jù)是根據(jù)粒子濾波算法、粒子點(diǎn)云以及從里程計(jì)到地圖的坐標(biāo)轉(zhuǎn)換估計(jì)出的機(jī)器人當(dāng)前的位姿。由于初始的MCL 算法對于機(jī)器人的定位問題存在一些偏差,本文基于KLD 重采樣的AMCL 算法對移動(dòng)機(jī)器人進(jìn)行定位。

SLAM 建圖首先應(yīng)當(dāng)確保已經(jīng)安裝SLAM,其次是獲取要使用的包文件,然后啟動(dòng)SLAM 系統(tǒng)輸入一系列命令生成所需要顯示的類型,例如地圖類型和點(diǎn)云類型,以可視化所需的數(shù)據(jù)。打開終端可在rviz 中看到實(shí)時(shí)映射出的地圖。生成地理特征圖之后應(yīng)當(dāng)將地圖保存,用以記憶該地圖的探測時(shí)間和環(huán)境等相關(guān)信息。地圖構(gòu)建完成后應(yīng)當(dāng)對地圖進(jìn)行檢驗(yàn)是否有誤,在Team_Hector_MappingBoxCup 上找到其地圖是否與剛剛建立的地圖有所不同,如果不同,檢查是否在發(fā)布版本中構(gòu)建了SLAM 以獲得完整的性能,SLAM 的參數(shù)在映射結(jié)果中也發(fā)揮著重要的作用,同時(shí)也需要檢查映射出來的參數(shù)。對環(huán)境構(gòu)建完成并獲取地圖后,就需要在煩瑣復(fù)雜的環(huán)境中確定好移動(dòng)機(jī)器人實(shí)時(shí)所處的位置,在接收到雷達(dá)信息后,AMCL通過粒子濾波跟蹤SLAM 構(gòu)建中移動(dòng)機(jī)器人的位置和姿勢,對信息進(jìn)行處理和探測,最終依靠機(jī)器人的狀態(tài)使移動(dòng)機(jī)器人能夠完成自主定位。

4 路徑規(guī)劃

移動(dòng)機(jī)器人在完成對周圍環(huán)境的建模以及自身的定位之后,還剩最后一步最重要的操作,即移動(dòng)機(jī)器人的路徑規(guī)劃,使得移動(dòng)機(jī)器人能夠自主的進(jìn)行路徑的選擇去避開途中的障礙物到達(dá)目的地,并且采用優(yōu)化后的A*算法和DWA 動(dòng)態(tài)窗口法完成路徑規(guī)劃和避障等多種功能。

A*算法是一種廣泛使用的圖搜索算法。雖然可以有效地完成了機(jī)器人的全局路徑規(guī)劃,但存在拐點(diǎn)多、路徑長等缺點(diǎn)。傳統(tǒng)的A*算法到達(dá)目標(biāo)點(diǎn)的最優(yōu)路徑覆蓋了所有規(guī)劃點(diǎn)。根據(jù)機(jī)器人的運(yùn)動(dòng),通過簡化路徑,進(jìn)一步優(yōu)化A*算法。本文采用平滑法對路徑進(jìn)行優(yōu)化。優(yōu)化的主要思想是直接找到直線內(nèi)可到達(dá)的最遠(yuǎn)節(jié)點(diǎn),舍棄最遠(yuǎn)節(jié)點(diǎn)之間的中間節(jié)點(diǎn),從而減少路徑上冗余的拐點(diǎn)。DWA 算法的基本思想是離散樣本線速度和角速度的多個(gè)組速度矢量空間,評估基于運(yùn)動(dòng)學(xué)模型的運(yùn)動(dòng)軌跡,并選擇最優(yōu)目標(biāo)路線,從而完成對移動(dòng)機(jī)器人局部的路徑規(guī)劃。

5 ROS 仿真實(shí)驗(yàn)

在ROS 系統(tǒng)下,移動(dòng)機(jī)器人要想能夠自動(dòng)導(dǎo)航。首先需要安裝ROS,然后去調(diào)用上面的一些功能包完成環(huán)境建模,移動(dòng)機(jī)器人的定位,路徑規(guī)劃以及機(jī)器人的自主運(yùn)行具體流程圖如圖5所示,仿真分析圖如圖6所示。

圖5 導(dǎo)航流程圖

圖6 仿真分析圖

SLAM 算法在ROS 系統(tǒng)下只需要通過激光掃描所采集的數(shù)據(jù)就可以對環(huán)境進(jìn)行地圖構(gòu)建,因?yàn)椴恍枰锍逃?jì)等傳感器且技術(shù)更加成熟完善,所以應(yīng)用范圍非常廣泛,如環(huán)境探測儀、視覺設(shè)備等。在模擬ROS 環(huán)境中進(jìn)行仿真,首先需要在ROS 中確定激光數(shù)據(jù)和系統(tǒng)命令主題,從而發(fā)布機(jī)器人的姿態(tài)信息和網(wǎng)格地圖信息。其次,通過ROS 系統(tǒng)啟動(dòng)腳本。同時(shí),鍵盤方向鍵用于控制機(jī)器人在環(huán)境中的行走。在移動(dòng)機(jī)器人的行走過程中,完全構(gòu)建了與真實(shí)場景基本一致的環(huán)境地圖,沒有滑動(dòng)、重影。構(gòu)建過程中,可使用鍵盤操作機(jī)器人巡視周圍環(huán)境,以完成周圍環(huán)境的構(gòu)建,使之與現(xiàn)實(shí)場景相對應(yīng)。第二步在路徑規(guī)劃的過程中,需要機(jī)器人在任何地方都能夠估算出自身所處的位置以便于路徑規(guī)劃:(1)需要對蒙特卡羅算法進(jìn)行優(yōu)化,實(shí)現(xiàn)基于KLD 重采樣的AMCL 算法,準(zhǔn)確得到機(jī)器人的位置。(2)調(diào)用移動(dòng)基函數(shù)包,接下來進(jìn)行全局路徑規(guī)劃和局部路徑規(guī)劃,全局路徑規(guī)劃由A*算法完成,局部路徑規(guī)劃由DWA 算法完成,以準(zhǔn)確求出最優(yōu)路徑。經(jīng)過上述一系列算法,實(shí)現(xiàn)了SLAM 環(huán)境地圖的構(gòu)建。因此接下來可以打開rviz 將地圖放在ROS 框架上,通過粒子云得出正確位置,對移動(dòng)機(jī)器人進(jìn)行路徑規(guī)劃以及自動(dòng)導(dǎo)航實(shí)驗(yàn),通過地圖的加載以及位置的定位之后使移動(dòng)機(jī)器人能夠自動(dòng)地進(jìn)行路徑的規(guī)劃以及自動(dòng)導(dǎo)航達(dá)到終點(diǎn)完成實(shí)驗(yàn)。

該設(shè)計(jì)最終實(shí)現(xiàn)了機(jī)器人的自動(dòng)導(dǎo)航,并且機(jī)器人能夠在陌生的環(huán)境中進(jìn)行建圖進(jìn)而進(jìn)行路徑規(guī)劃,對未來的發(fā)展起著重要的作用。

6 機(jī)器人在教學(xué)中的應(yīng)用

隨著互聯(lián)網(wǎng)教育的興起和人工智能技術(shù)的不斷進(jìn)步,機(jī)器人的應(yīng)用已經(jīng)滲透到教育行業(yè)的各個(gè)領(lǐng)域,可用于Python、C 語言等編程課程中,作為編程課程的拓展內(nèi)容,也可作為大學(xué)生創(chuàng)新創(chuàng)業(yè)大賽的裝備,提高學(xué)生的應(yīng)用能力和實(shí)際操作能力。隨著計(jì)算機(jī)視覺、語音識(shí)別、編程語言等技術(shù)的不斷完善,未來的人工智能技術(shù)將對教育行業(yè)產(chǎn)生廣泛而深刻的影響。

7 結(jié) 論

通過基于ROS 移動(dòng)機(jī)器人自動(dòng)導(dǎo)航設(shè)計(jì),在Python 教學(xué)中對SLAM 建圖、AMCL 定位、路徑的自動(dòng)規(guī)劃開展了一系列的研究,通過虛擬的場景實(shí)現(xiàn)了移動(dòng)機(jī)器人的自動(dòng)導(dǎo)航功能,使得移動(dòng)機(jī)器人在真實(shí)場景中也能夠進(jìn)行地圖的構(gòu)建、路徑的規(guī)劃以及實(shí)現(xiàn)自動(dòng)導(dǎo)航功能。對于移動(dòng)機(jī)器人來說,自主構(gòu)建地圖、規(guī)劃路線并巡航只是機(jī)器人自動(dòng)化的一個(gè)最根本的基礎(chǔ),在未來的研究中軟件方面可以使用Python語言實(shí)現(xiàn)與人工智能的結(jié)合,在移動(dòng)機(jī)器人的硬件上根據(jù)需求進(jìn)一步進(jìn)行改裝并且插入所需要的軟件,例如可以在該機(jī)器人的基礎(chǔ)上安裝爪子來實(shí)現(xiàn)機(jī)器人的自動(dòng)導(dǎo)航抓取功能,也可以讓機(jī)器人自主識(shí)別做一個(gè)全自動(dòng)清潔機(jī)器人等使我們的生活更加便捷。在未來的研究過程中自動(dòng)導(dǎo)航機(jī)器人將與編程課程相融合,實(shí)現(xiàn)教學(xué)與實(shí)踐的相融合。自動(dòng)導(dǎo)航機(jī)器人在未來的生活中一定會(huì)使用得越來越廣泛,這將是人類必不可少的一部分。

猜你喜歡
移動(dòng)機(jī)器人算法自動(dòng)
基于ROS 和PX4 飛控的四輪驅(qū)動(dòng)移動(dòng)機(jī)器人研究
拉貨機(jī)器人
Travellng thg World Full—time for Rree
移動(dòng)機(jī)器人技術(shù)的應(yīng)用與展望
學(xué)習(xí)算法的“三種境界”
算法框圖的補(bǔ)全
算法初步知識(shí)盤點(diǎn)
讓小鴨子自動(dòng)轉(zhuǎn)身
關(guān)于自動(dòng)駕駛
移動(dòng)機(jī)器人圖像目標(biāo)識(shí)別