基于深度學(xué)習(xí)的智能倉庫貨物管理與路徑規(guī)劃設(shè)計(jì)_第1頁
基于深度學(xué)習(xí)的智能倉庫貨物管理與路徑規(guī)劃設(shè)計(jì)_第2頁
基于深度學(xué)習(xí)的智能倉庫貨物管理與路徑規(guī)劃設(shè)計(jì)_第3頁
基于深度學(xué)習(xí)的智能倉庫貨物管理與路徑規(guī)劃設(shè)計(jì)_第4頁
基于深度學(xué)習(xí)的智能倉庫貨物管理與路徑規(guī)劃設(shè)計(jì)_第5頁
已閱讀5頁,還剩46頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

課題研究背景及意義1.1國內(nèi)背景AGV(自動(dòng)導(dǎo)引車)與智能倉庫密不可分,它是實(shí)現(xiàn)倉庫自動(dòng)化最核心的設(shè)備之一。目前AGV在中國國內(nèi)日益普及,特別是在制造業(yè)與物流倉儲(chǔ)領(lǐng)域得到了廣泛的應(yīng)用REF_Ref5857\r\h[1]。在中國的高速發(fā)展以及制造業(yè)的轉(zhuǎn)型升級(jí)過程中,AGV技術(shù)得到了進(jìn)一步的發(fā)展與改進(jìn),現(xiàn)其在我國的使用范圍已十分廣闊,如汽車制造、電子制造、醫(yī)療保健特別是物流倉儲(chǔ)使用率十分的高。另外,由于智能化程度的提高,無人駕駛車將會(huì)在中國得到更多的使用。隨著AGV技術(shù)的不斷發(fā)展,其在各個(gè)行業(yè)中的使用越來越廣泛,越來越方便,越來越多的人受益。在我國,隨著電子商務(wù)和智能制造等各方面的迅猛發(fā)展,對(duì)智能裝卸設(shè)備的需求也越來越大。所以,開發(fā)與使用AGV機(jī)器人是目前我國物流倉儲(chǔ)的一個(gè)熱門課題。目前,我國自主研發(fā)的AGV機(jī)器人技術(shù)雖有較大進(jìn)步,但與世界先進(jìn)水平還有很大的距離。為此,我國科研人員應(yīng)加大對(duì)AGV系統(tǒng)的研究力度,使其在未來的發(fā)展中能夠更好地適應(yīng)不斷發(fā)展的物流要求。隨著人工智能、機(jī)器學(xué)習(xí)等學(xué)科的飛速發(fā)展,AGV智能化水平不斷提高,對(duì)提升物流效率、降低成本、優(yōu)化倉儲(chǔ)管理具有重要意義。所以,在我國,對(duì)AGV機(jī)器人進(jìn)行研究與推廣是非常有意義的。1.2國外背景當(dāng)前,以自主移動(dòng)機(jī)器人為基礎(chǔ)的智能倉庫移動(dòng)機(jī)器人技術(shù)受到限制,而與之相對(duì)應(yīng)的是,其應(yīng)用范圍不斷擴(kuò)大,因此智能倉庫在技術(shù)上還有一定困難,但市場需求十分巨大。高級(jí)感知科技,如同人的雙眼,只有具備完備的感知能力,才能更全面地獲取周邊環(huán)境的信息,提高航行的速率與精度;同時(shí),該方法還提高了導(dǎo)航系統(tǒng)的健壯性。有效地處理資訊。其中包括圖像處理,語音識(shí)別,圖像識(shí)別,圖像識(shí)別等。在國際上,AGV在工業(yè)自動(dòng)控制、物流等方面得到了越來越多的應(yīng)用。在美國,德國,日本等先進(jìn)國家的工業(yè)自動(dòng)控制與物流方面,都已發(fā)展出一整套的AGV控制技術(shù),這是企業(yè)提升產(chǎn)能,節(jié)約成本的一種有效途徑。自動(dòng)導(dǎo)向車作為一種新興的交通工具,其應(yīng)用范圍越來越廣。AGV在電子商務(wù)和智能制造等方面得到了更多的應(yīng)用。AGV不但能夠在流水線上進(jìn)行材料的搬運(yùn),而且能夠在庫房內(nèi)進(jìn)行自動(dòng)入庫、取貨,從而達(dá)到倉儲(chǔ)的智能化。所以,對(duì)AGV倉儲(chǔ)進(jìn)行智能化調(diào)度,是目前國際上的一個(gè)熱門課題。為了提升企業(yè)的物流效率,減少人力資源消耗,目前國內(nèi)外很多企業(yè)及科研院所正在進(jìn)行一系列的研究與開發(fā)。因此,本文提出了一種基于AGV的自動(dòng)化倉儲(chǔ)物流系統(tǒng)的智能化方案,該方案在國際上得到了較好的發(fā)展,并在今后的研究中得到了進(jìn)一步的發(fā)展[2]。1.3智能倉庫AGV移動(dòng)導(dǎo)航技術(shù)的發(fā)展意義AGV是具有自動(dòng)行走和運(yùn)輸功能的無人智能機(jī)器人。本文主要通過AGV智能機(jī)器人來實(shí)現(xiàn)智能倉庫的主要功能,對(duì)智能機(jī)器人和智能倉庫研究提供幫助。提高生產(chǎn)效益:AGV車載定位系統(tǒng)可以極大地提高企業(yè)的生產(chǎn)水平,提高企業(yè)的生產(chǎn)效益。采用AGV實(shí)現(xiàn)自動(dòng)裝卸,不僅節(jié)省了人工作業(yè)的人力,而且還能有效地減少人工作業(yè)造成的差錯(cuò),縮短物流周期,節(jié)約物流費(fèi)用。提高了產(chǎn)品的安全性能:AGV能夠自行規(guī)避障礙,并能夠防止由于人為的失誤或意外原因造成的勞動(dòng)損失,提高了企業(yè)的安全水平。提高了產(chǎn)品的柔性:AGV運(yùn)動(dòng)導(dǎo)向系統(tǒng)具有多路徑、多任務(wù)、多規(guī)劃等特性,能夠?qū)ξ锪髀窂郊叭蝿?wù)進(jìn)行靈活規(guī)劃。1.4架構(gòu)安排第1部分主要說明該課題的研究背景與意義,與分析分析國內(nèi)外AGV技術(shù)發(fā)展現(xiàn)狀,明確論文的研究目標(biāo)。第2部分梳理AGV導(dǎo)航技術(shù)的學(xué)術(shù)進(jìn)展,總結(jié)高精度建圖、多傳感器融合等技術(shù)難點(diǎn),還完成硬件選型(STM32+ROS)與軟件架構(gòu)設(shè)計(jì),解決IMU溫漂、電機(jī)控制等底層問題。第3部分基于智能倉庫ROS來實(shí)現(xiàn)gmapping建圖,還對(duì)比了Dijkstra與A*算法,優(yōu)化TEB局部路徑規(guī)劃,并進(jìn)行誤差分析。第4部分通過智能機(jī)器人的AR標(biāo)簽修正激光導(dǎo)航誤差,設(shè)計(jì)磁條導(dǎo)航布線方案。第5部分構(gòu)建多AGV任務(wù)調(diào)度模型,集成遺傳算法與蟻群算法,通過接駁臺(tái)案例驗(yàn)證系統(tǒng)可行性,并附上仿真圖片。

2智能倉庫國內(nèi)外研究現(xiàn)狀2.1智能倉庫國內(nèi)外研究現(xiàn)狀目前,國際上對(duì)智能倉庫的移動(dòng)機(jī)器人的開發(fā)與研究給予了高度的關(guān)注。近年來,許多大學(xué)、研究機(jī)構(gòu)紛紛投資研制了具有自主知識(shí)產(chǎn)權(quán)的智能化移動(dòng)機(jī)器人。然而,美國,日本,歐洲等一些先進(jìn)的國家依然是這項(xiàng)科技的領(lǐng)導(dǎo)者。納維實(shí)驗(yàn)室的智能化汽車系統(tǒng),是在美國卡內(nèi)基-梅隆學(xué)院的機(jī)器人學(xué)院研發(fā)并完成的。這種感應(yīng)裝置被整合到龐蒂亞克運(yùn)動(dòng)型轎車的車體內(nèi),該裝置包含一臺(tái)裝有可兼容影像控制器的攝像機(jī),GPS,光纖阻尼陀螺儀以及一臺(tái)光編碼器。本研究主要依靠SparcLx型便攜工作站及HCII單片機(jī)來完成該系統(tǒng)的各項(xiàng)功能。通過對(duì)多個(gè)傳感器采集到的信息進(jìn)行綜合、分析,得出機(jī)器人行走的最優(yōu)路線,最終達(dá)到自動(dòng)行駛和自動(dòng)運(yùn)輸貨物的的目的。此外,該控制單元還能對(duì)整車的運(yùn)行狀況進(jìn)行實(shí)時(shí)監(jiān)測,以保證整車的安全性和穩(wěn)定性。盡管中國現(xiàn)在全力推廣人工智能技術(shù),而且全國的智能化汽車科技已經(jīng)開始推廣,但因?yàn)槲覈娜斯ぶ悄墚a(chǎn)業(yè)發(fā)展相對(duì)滯后,我國的重點(diǎn)研發(fā)院所還處于研發(fā)階段,所以只有很少一部分的商用公司能夠進(jìn)入這個(gè)行業(yè)[3]。2.2地面AGV未來的發(fā)展方向AGV作為一種新型的運(yùn)輸方式,在生產(chǎn)、物流等領(lǐng)域有著廣泛的應(yīng)用前景。AGV的發(fā)展方向是:1、智能化,即AGV具有高度自治、高感知、高定位等特點(diǎn)。這將為AGV提供更強(qiáng)的自適應(yīng)能力。2、多功能,今后AGV將具備更多的功能,包括搬運(yùn)、分類、組裝、包裝、質(zhì)量檢驗(yàn)等。這樣,AGV就可以很好地適應(yīng)各種生產(chǎn)、物流的需要。3、柔性:AGV可以靈活的穿梭于各種流水線及物流領(lǐng)域。這樣,AGV就可以快速地對(duì)各種制造、物流的變化進(jìn)行調(diào)整,從而有效地提升AGV的工作效率和柔性。4、適應(yīng)能力強(qiáng),AGV具有較強(qiáng)的適應(yīng)性,可以根據(jù)實(shí)際情況自動(dòng)調(diào)節(jié)自身的車速和路線,以適應(yīng)各種產(chǎn)品及物流環(huán)境。5、網(wǎng)絡(luò)化,將來的AGV將更加網(wǎng)絡(luò)化、網(wǎng)絡(luò)化,可以實(shí)現(xiàn)與其它裝置、系統(tǒng)之間的實(shí)時(shí)信息交互以及協(xié)作作業(yè)。這將使AGV更好的融入到企業(yè)的制造及物流環(huán)境中,提升倉庫的智能程度。從而提升企業(yè)整體的運(yùn)作效率與精度[4]。2.3智能倉庫移動(dòng)機(jī)器人的重點(diǎn)技術(shù)與技術(shù)難點(diǎn)2.3.1高精度地圖難點(diǎn)在自動(dòng)導(dǎo)向車的導(dǎo)航中,導(dǎo)航系統(tǒng)會(huì)受到一定程度的擾動(dòng),它的構(gòu)建與否將決定整個(gè)系統(tǒng)的運(yùn)行效率,因此高精度的地圖構(gòu)建是實(shí)現(xiàn)高精度導(dǎo)航的先決條件,其中一個(gè)關(guān)鍵問題就是雷達(dá)系統(tǒng)的性能。由于資料處理困難,為了制作出高精度的地形圖,必須對(duì)所收集的資料進(jìn)行整理、分析。這就要求對(duì)點(diǎn)云配準(zhǔn),道路拓?fù)浣Y(jié)構(gòu)提取,數(shù)據(jù)濾波等進(jìn)行高精度數(shù)據(jù)配準(zhǔn)。2.3.2導(dǎo)航算法難點(diǎn)路徑計(jì)劃則是通過Dijkstra,A*,JPS等方法,實(shí)現(xiàn)了基于整體規(guī)劃的實(shí)時(shí)路徑調(diào)整與計(jì)劃。該方法為移動(dòng)機(jī)器人提供了一條可行的行走路線,使其能夠在真實(shí)的空間內(nèi)實(shí)現(xiàn)高效的移動(dòng)。在航跡規(guī)劃方面,也出現(xiàn)了多種方法相結(jié)合的傾向,比如雙重A*等,其中最常用的是DWA和DEB[4]。兩種算法的結(jié)合,產(chǎn)生的結(jié)果也會(huì)有很大的差別,比如二維A*算法的路徑尋找模擬,如圖2-1。圖2.1A*路徑2.3.3多傳感器融合難點(diǎn)多傳感信息的融合是目前移動(dòng)機(jī)器人研究中的一個(gè)熱點(diǎn),也是各大企業(yè)共同努力的目標(biāo)。在機(jī)器人研究中,定位是一個(gè)很大的難題,比如激光SLAM,單純使用激光雷達(dá)作為導(dǎo)航信息,隨著時(shí)間的推移,會(huì)出現(xiàn)較大的偏差,而通過多個(gè)傳感器之間的相互傳遞,可以提高導(dǎo)航的可靠性。尤其是在室內(nèi)的AGV上,它沒有像戶外機(jī)器人那樣配備GPS模塊來進(jìn)行定位,而是更多地依靠著多個(gè)傳感器的融合。在工作中,我們看到了各種各樣的機(jī)器人,例如送餐機(jī)器人、智能叉車、無人AGV倉庫等,有的時(shí)候,它們的數(shù)量甚至超過了20個(gè),這說明了大企業(yè)對(duì)多傳感器的融合非??粗?。2.3.4智能倉庫AGV各系統(tǒng)通信難點(diǎn)AGV系統(tǒng)包括導(dǎo)航、傳感器和控制等多個(gè)子系統(tǒng)。為了實(shí)現(xiàn)協(xié)作,各子系統(tǒng)之間必須進(jìn)行通訊,但是通訊中有以下幾個(gè)困難:第一,AGV系統(tǒng)中各個(gè)子系統(tǒng)使用的通訊方式不盡相同,這增加了相互通訊的難度。比如,一個(gè)導(dǎo)航系統(tǒng)可以采用Ethernet,一個(gè)傳感器可以采用CAN總線,因此,兩個(gè)不同的系統(tǒng)都有不同的規(guī)約。第二,系統(tǒng)間的資料格式差異:AGV系統(tǒng)中的各子系統(tǒng)產(chǎn)生的資料格式會(huì)存在差異,比如,在傳感系統(tǒng)中可以產(chǎn)生二值資料,而在控制系統(tǒng)中則可以采用ASCII碼。在本例中,有必要對(duì)數(shù)據(jù)格式進(jìn)行轉(zhuǎn)化。第三,AGV系統(tǒng)中,由于各子系統(tǒng)間必須進(jìn)行通訊,所以在系統(tǒng)間存在通訊時(shí)延,所以通訊時(shí)延會(huì)造成系統(tǒng)的反應(yīng)速率降低。比如,一個(gè)航行系統(tǒng)向一個(gè)控制系統(tǒng)發(fā)出一個(gè)命令,然后再把一個(gè)命令反饋到一個(gè)航行系統(tǒng),這一進(jìn)程可能要花上一段時(shí)間。第四,通訊通道的穩(wěn)定:為了保證信息的可靠傳送,AGV的通訊通道必須是穩(wěn)定的。2.4智能倉庫AGV移動(dòng)機(jī)器人開發(fā)應(yīng)用需求分析2.4.1硬件需求首先要有一輛小車做實(shí)驗(yàn),其次是雷神N10的激光雷達(dá),最遠(yuǎn)可以達(dá)到25米,深度攝像機(jī)可以掃描到更遠(yuǎn)的地方,還有一個(gè)深度攝像頭,下面是stm32的控制器,下面是一個(gè)stm32的控制器,上面的ros是用魯班貓做的ros硬件開發(fā)電路板,如圖2.2。圖2.2小車硬件組裝圖2.4.2最終實(shí)踐流程分析根據(jù)網(wǎng)絡(luò)上相符的硬件測試,和自身模擬操作,建議采用AR標(biāo)記識(shí)別的方式進(jìn)行修正,當(dāng)錯(cuò)誤修正完畢后,AGV就會(huì)顯示在磁條上方,此時(shí),小車就可以利用磁條導(dǎo)航,將其引導(dǎo)到特定的架子上,并對(duì)此進(jìn)行具體的磁條導(dǎo)航流程,實(shí)現(xiàn)智能倉庫系統(tǒng)。具體研究內(nèi)容將包含:室內(nèi)SLAM導(dǎo)航(已完成課題),AR輔助定位精度降低(輔助),磁條導(dǎo)航(引入流程和方法)[5]。2.5本章小結(jié)本章內(nèi)容主要包括智能倉庫在國內(nèi)外的研究情況,還有它的發(fā)展方向和發(fā)展前期就目前來看智能倉庫在世界各地的市場上具有巨大潛力。潛力大的同時(shí)也說明了智能倉庫想要實(shí)現(xiàn)的眾多困難。同時(shí)也表明智能機(jī)器人底層所需要的配套硬件設(shè)施。

3智能倉庫上位機(jī)ROS實(shí)施方案及主要內(nèi)容3.1.智能倉庫ROS上層功能基本設(shè)計(jì)3.1.1.機(jī)器人坐標(biāo)轉(zhuǎn)換矩陣數(shù)學(xué)基礎(chǔ)坐標(biāo)W中智能倉庫系統(tǒng)AGV的坐標(biāo):(x,y,0)智能倉庫AGV坐標(biāo)B到坐標(biāo)W的轉(zhuǎn)換矩陣: (4.1)旋轉(zhuǎn)向量(a,b)的表達(dá)公式: (4.2)對(duì)于向量的旋轉(zhuǎn),可以等價(jià)于對(duì)基底的旋轉(zhuǎn): (4.3)X軸基向量(1,0)的旋轉(zhuǎn): (4.4)Y軸基向量(0,1)的旋轉(zhuǎn): y (4.5)被動(dòng)旋轉(zhuǎn) (4.6)其中,表示物理量x在B坐標(biāo)系中的坐標(biāo),表示物理量x在W坐標(biāo)系中的坐標(biāo)。設(shè)向量x在B系中的坐標(biāo)為(a,b)。 (4.7)如果知道B系基向量在W系中的表達(dá)式,即可知道向量x在W系中的坐標(biāo)。根據(jù)旋轉(zhuǎn)可得,O和O在W系中的坐標(biāo):向量x在W系中的表達(dá)式: (4.8)寫成矩陣形式: (4.9) (4.10)假設(shè)B系在W系中的位姿為: (4.11)已知B系中的某個(gè)量,在W系中的表達(dá): (4.12) (4.13)坐標(biāo)系B在坐標(biāo)系W中的坐標(biāo):(x,y,)坐標(biāo)系B到坐標(biāo)W的轉(zhuǎn)換矩陣: (4.14)坐標(biāo)系W到坐標(biāo)系B的轉(zhuǎn)換矩陣: (4.15)機(jī)器人A在坐標(biāo)系W的坐標(biāo): , (4.16)機(jī)器人B在坐標(biāo)系W的坐標(biāo): , (4.17) (4.18)T2V:將矩陣轉(zhuǎn)換成向量[6]。3.1.2和下位機(jī)串口通信車載的激光雷達(dá)和STM32單片機(jī)之間通過串行接口與魯班貓進(jìn)行通訊。這激光探測技術(shù)是通過一個(gè)名為“rplidarNode”的正式Wiki組件來與ROS系統(tǒng)相連的,ROS是一個(gè)機(jī)器人操作系統(tǒng),它可以在Bangcat上運(yùn)行。建立地圖以及進(jìn)行機(jī)器人的航行都離不開IMU、高度計(jì)等資料。從原理上講,可以將所有的傳感器都通過魯班貓進(jìn)行采集。很明顯,STM32的性能非常好,并且具有一個(gè)硬件編碼器的界面。采用STM32實(shí)現(xiàn)了對(duì)編碼器、慣導(dǎo)的實(shí)時(shí)檢測,實(shí)現(xiàn)了PID算法,并與魯班貓進(jìn)行串口通信,實(shí)現(xiàn)了對(duì)傳感器的實(shí)時(shí)監(jiān)控。串行端口的檢查的想法是,除了幀尾以外的所有數(shù)據(jù)都是比特級(jí)排他邏輯(相同為0,不相同為1)。代碼如下:unsigned

char

turn_on_robot::

Check_Sum(unsigned

char

Count_

Number,

unsigned

char

mode)

{unsigned

char

check_sum=0,k;

if(mode==0)//接收數(shù)據(jù)模式

for

(k=0;k<Count_Number;

k++)

check_sum=check_sum^Receive_Data.rx[k];//按位異或}

if(mode==1)//發(fā)送數(shù)據(jù)模式{

for(k=0;k<Count_Number;k++){

check_sum=check_sum^Send_Data.tx[k];//按位異或

}}

return

check_sum;

//返回按位異或結(jié)果}Z向旋轉(zhuǎn)角度的旋轉(zhuǎn)速率既可以用編碼器來求出,也可以用陀螺儀來采集。在陀螺即將出現(xiàn)零漂的瞬間,該編碼器具有較快的速度,此時(shí)能夠脫離,從使用結(jié)果來看,如果說智能機(jī)器人的定位要求沒有過高的要求,還是可以滿意的答卷。智能機(jī)器人系統(tǒng)系統(tǒng)接收下位機(jī)發(fā)過來的數(shù)據(jù),與此同時(shí),智能倉庫系統(tǒng)還會(huì)向下位機(jī)發(fā)指令對(duì)機(jī)器人進(jìn)行控制,主要代碼如下:turn_onrobot::~turn_on_robot(){//對(duì)象turn_on_robot結(jié)束前向下位機(jī)發(fā)送停止運(yùn)動(dòng)命令SendData.tx[O]=FRANE_HEADER,SendData.tx[1]=0;Send_Data.tx[2]=0;Send_Data.tx[4]=0;Send_Data.tx[3]=0;SendData.tx[6]=0;SendData.tx[5]=0;Send_Data.tx[8]=0;Send_Data.tx[7]=0;SendData.tx(9]=CheckSum(9,SEND_DATA_CHECK);//校驗(yàn)位,規(guī)則參見CheckSumSendData.tx[10]=FRAME_TAIL;Try{Stm32_Serial,write(Send_Data.tx,sizeof(SendData.tx));//向串口發(fā)數(shù)據(jù)}catch(serial::IOException&e)ROS_ERRORSTREAN(“Unabletosenddatathroughserialport”);//如果發(fā)送數(shù)據(jù)失敗,打印錯(cuò)誤信息} Stm32_Serial.close();//關(guān)閉串口ROS_INFO_STREAN("Shuttingdown");//提示信息}3.1.3機(jī)器人節(jié)點(diǎn)解析在ROS中,結(jié)點(diǎn)是一個(gè)能夠與其它結(jié)點(diǎn)進(jìn)行通訊的可執(zhí)行程序。一個(gè)結(jié)點(diǎn)可以發(fā)表或者訂購一個(gè)主題,或者一個(gè)特定的服務(wù)。例如發(fā)行,訂購,鏈接等等。利用ROS中的結(jié)點(diǎn)的思想,使得ROS體系中的各部分能夠很容易地進(jìn)行通訊和協(xié)同工作。因此使用交叉節(jié)鏈表來檢查系統(tǒng)中的一個(gè)節(jié)點(diǎn),如圖3.1。圖3.1rosnodelist信息3.1.4tf坐標(biāo)變換與解析在智能機(jī)器人的運(yùn)動(dòng)過程中,經(jīng)常會(huì)產(chǎn)生大量的空間坐標(biāo),例如:世界坐標(biāo)系,基準(zhǔn)坐標(biāo)系。tf追蹤每一段時(shí)間內(nèi)的每一幀,它是一套針對(duì)各種座標(biāo)系統(tǒng)的程序。將智能機(jī)器人與外部環(huán)境的各個(gè)部分建立在一個(gè)樹形的模型中。它能在任何兩個(gè)座標(biāo)系中進(jìn)行點(diǎn)與矢量的互相變換[9]。主要代碼如下:<nodepkg=“tf”type="statictransformpublisher"name="base-to-camera"args="0.1200.15000base-footprintcameralink100”/><nodepkg=“tf”type="statictransformpublisher"name="base-to-gyro"args="000000basefootprantgyroLinok100"/</group><groupif=“$(evalcar-mode=='mini-mec-movest-four')*><nodepkg=“tf”type="statictransformpublisher"name="base-to-laser"args="0.0480.000.183.1400baseftotprantlaser100"/><--Allaser-->從第1個(gè)節(jié)點(diǎn)和第2個(gè)節(jié)點(diǎn)中可以看出,gyro_link,基本鏈接和基本根是一致的,從第3個(gè)節(jié)點(diǎn)中,我們可以看出,輸入?yún)?shù)為非零,而汽車前端的激光雷達(dá)與基本腳并不一致。參數(shù)表示x,y,z,yaw,pitch,roll,以m為單位。100表示100毫秒發(fā)射一次,不同的機(jī)械臂會(huì)有不同的安裝地點(diǎn),準(zhǔn)確的大小應(yīng)該基于感應(yīng)裝置的定位。為了更好的看到每一個(gè)坐標(biāo)的關(guān)系,在模擬連接智能機(jī)器人后,打開rviz,各個(gè)tf坐標(biāo),如下圖3.2。圖3.2rviz里的tf坐標(biāo)在rviz中,可以查看到每一個(gè)零件的位置,例如laser_link,紅色的線條代表著它的方向,也就是說,這個(gè)系統(tǒng)中的雷達(dá)已經(jīng)被轉(zhuǎn)了一百八十度。后來我們在測試中發(fā)現(xiàn),隨著時(shí)間的推移,odom_combined會(huì)隨著時(shí)間的推移而隨意地移動(dòng),這是無法避免的。3.1.5通過launch文件啟動(dòng)機(jī)器人節(jié)點(diǎn)當(dāng)已成功地撰寫并編輯了ROS的源碼后,就準(zhǔn)備好了。rosrun指令可以被用來激活一個(gè)ros結(jié)點(diǎn),但是AGV往往是多個(gè)結(jié)點(diǎn),所以如果僅僅使用一個(gè)結(jié)點(diǎn)來激活一個(gè)結(jié)點(diǎn),那么這個(gè)結(jié)點(diǎn)的工作效率就會(huì)大大降低??梢酝ㄟ^"roslaunch"的指令為ROS開始引導(dǎo)。一個(gè)引導(dǎo)檔可以在同一時(shí)間內(nèi)開啟多個(gè)結(jié)點(diǎn),也可以設(shè)定一些參數(shù)以及檔案清單,如圖3.3。圖3.3launch文件列表這里機(jī)器人啟動(dòng)的launch文件名是turn_on_wheeltec_robot.launch。這里以navigation.launch為例。代碼代碼如下:<launch><!--開啟機(jī)器人底層相關(guān)節(jié)點(diǎn)同時(shí)開啟導(dǎo)航功能--><includefile="$(findturn_on_wheeltec_robot)/launch/turn_on_wheeltec_robot.launch"><argname="navigation"default="true"/></include><!--turnonlidar開啟雷達(dá)--><includefile="$(findturn_on_wheeltec_robot)/launch/wheeltec_lidar.launch"/><!--設(shè)置需要用于導(dǎo)航的地圖--><argname="map_file"default="$(findturn_on_wheeltec_robot)/map/WHEELTEC.yaml"/><nodename="map_server_for_test"pkg="map_server"type="map_server"args="$(argmap_file)"/><!--開啟用于導(dǎo)航的自適應(yīng)蒙特卡洛定位amcl--><includefile="$(findturn_on_wheeltec_robot)/launch/include/amcl.launch"/><!--MarkerArray功能節(jié)點(diǎn)--><nodename="send_mark"pkg="turn_on_wheeltec_robot"type="send_mark.py"/></launch>launch文件的核心工作就是啟動(dòng)各種函數(shù)節(jié)點(diǎn),并向節(jié)點(diǎn)發(fā)送參數(shù),在這個(gè)文檔中,機(jī)器人的底層節(jié)點(diǎn)被打開,雷達(dá)被打開,ARGS被傳送到了地圖上,AMLLA已經(jīng)啟動(dòng),啟動(dòng)了launch文件,在沒有catkin_make的情況下,啟動(dòng)文件就可以正常工作。3.2智能倉庫ROS激光雷達(dá)建圖3.2.1建圖原理與技巧在激光SLAM地圖構(gòu)建中,由于所用的構(gòu)建算法不同,其工作機(jī)理也不盡相同,其中,構(gòu)建地圖的方式以雷達(dá)發(fā)出的激光為信號(hào),利用脈沖激光的方式,利用反射波的飛行時(shí)間進(jìn)行距離的測定,其中TOF雷達(dá)具有高的測量精度,且具有很高的工作壽命,例如圖3.4所示的TOF雷達(dá)。圖3.4TOF雷達(dá)總結(jié)激光雷達(dá)建圖的方法:在繪制圖形時(shí),應(yīng)盡量避開閉合環(huán)前的圓周運(yùn)動(dòng)和來回運(yùn)動(dòng)。這樣就很可能在較小的環(huán)境特征的情況下造成閉合回路失敗或出錯(cuò)。若要改善閉環(huán),首先要讓機(jī)器人沿著一條直線前進(jìn),很快就能形成一個(gè)閉環(huán)循環(huán),然后在地圖上進(jìn)行下一步的掃描,以改善整個(gè)閉環(huán)的細(xì)節(jié)。而且建立地圖的時(shí)候,盡量讓機(jī)械臂保持較低的移動(dòng)速度,如果車速太快,就會(huì)造成輪胎滑動(dòng),從而造成里程計(jì)累積的錯(cuò)誤[7]。3.2.2建圖算法Gmapping與Cartographer解析與選擇Gmapping是一種經(jīng)典的激光SLAM算法,它不需要太多的計(jì)算資源,也不需要太高的頻率,也不需要太高的魯棒性,但是Gmapping需要大量的里程數(shù)據(jù),這就導(dǎo)致了Gmapping的過程中,累積的錯(cuò)誤會(huì)不斷的增長,并且Gmapping需要的是一個(gè)微粒,200個(gè)微粒就是200個(gè)微粒,內(nèi)存將會(huì)大幅度提升[8]。開啟gmapping建圖算法。代碼代碼如下:<!--開啟gmapping建圖算法--><groupif="$(evalgmapping_mode=='gmapping')"><includefile="$(findturn_on_wheeltec_robot)/launch/include/algorithm_gmapping.launch"/><!--開啟機(jī)器人底層相關(guān)節(jié)點(diǎn)--><includefile="$(findturn_on_wheeltec_robot)/launch/turn_on_wheeltec_robot.launch"><argname="navigation"value="$(argnavigation)"/><argname="is_cartographer"value="false"/><argname="odom_frame_id"value="$(argodom_frame_id)"/></include></group>相比于Gmapping搜索,還有一個(gè)新的算法Caetographer,是谷歌自己研發(fā)和開放的,非常出色。地圖編寫者的位置處理依賴于最初的位置座標(biāo)。若初始位置錯(cuò)誤已發(fā)生,修正難度較大。這可以通過對(duì)一個(gè)易于辨認(rèn)的地點(diǎn)進(jìn)行重新設(shè)置或者進(jìn)行初步的設(shè)置,并且在進(jìn)行下一步之前,一定要確定最初的位置是對(duì)的。與地圖不同,Caetographer不需要里程表就能建立地圖,還能利用雷達(dá)數(shù)據(jù)重新定位,尤其適合大型地圖建設(shè),是AGV行業(yè)最熱門的一種算法。Caetographer對(duì)各種限制進(jìn)行了大規(guī)模的運(yùn)算,并進(jìn)行了多次的全局最優(yōu)運(yùn)算,導(dǎo)致了較大的時(shí)延錯(cuò)誤,打開了Caetographer生成算法.代碼代碼如下:<!--開啟cartographer建圖算法--><groupif="$(evalmapping_mode=='cartographer')"><!--這個(gè)功能包的路徑是:/opt/ros/melodic/share/cartographer_ros--><includefile="$(findcartographer_ros)/launch/2d_online.launch"/><!--開啟機(jī)器人底層相關(guān)節(jié)點(diǎn)--><includefile="$(findturn_on_wheeltec_robot)/launch/turn_on_wheeltec_robot.launch"><argname="navigation"value="$(argnavigation)"/><argname="is_cartographer"value="true"/><argname="odom_frame_id"value="$(argodom_frame_id)"/></include> </group>算法 Cartographer的信息如下圖3.5。/tfmap_frame到odom_frame的tf坐標(biāo)/tfmap_frame到odom_frame的tf坐標(biāo)odom_frame到basefootprint_frame的tf坐標(biāo)/scan雷達(dá)掃描信息CartographerCartographer/odom里程計(jì)/submap_list地圖數(shù)據(jù)/odom里程計(jì)/submap_list地圖數(shù)據(jù)Cartographer_occupancy_grid_node/Cartographer_occupancy_grid_node/submap_list地圖數(shù)據(jù)/map地圖/map地圖圖3.5cartographer訂閱信息通過對(duì)Gmapping和Cartographer的優(yōu)劣進(jìn)行了比較,Cartographer在軟件上要優(yōu)于Gmapping,但是考慮到真實(shí)的硬件環(huán)境,Cartographer會(huì)受到雷達(dá)頻率、主板等因素的限制,會(huì)造成Gmapping算法的延遲和建模過程中的誤差,因此,我們采用了一種比較傳統(tǒng)、比較穩(wěn)定的Gmapping方法來構(gòu)建地圖。3.2.3代價(jià)地圖解析簡單建個(gè)圖,加載地圖文件.pgm文件,如圖3.6。圖3.6pgm地圖文件除了pgm圖片格式,還可以使用的jpg、png等格式。jpg地圖如圖3.7。圖3.7.jpg地圖文件加載地圖文件、地圖參數(shù)文件,.yaml地圖參數(shù)文件,代碼如下:image:/home/wheeltec/wheeltec_robot/src/turn_on_wheeltec_robot/map/WHEELTEC.pgm#包含占用數(shù)據(jù)的圖像文件的路徑resolution:0.050000//#地圖的分辨率,米/像素origin:[-19.400000,-20.000000,0.000000]negate:0//#地圖中的起始姿態(tài)(x,y,yaw)occupied_thresh:0.65//#這個(gè)閾值的取值范圍是0到1free_thresh:0.196//#閾值的取值范圍為0到1。mode:Trinary是解釋數(shù)值的方發(fā)。當(dāng)將灰度值范圍在0到300之間的圖像轉(zhuǎn)換成p值時(shí),可以使用Trinary解釋方式。代價(jià)地圖可分為靜態(tài)層、障礙層、膨脹層,如圖3.8。圖3.8代價(jià)地圖3.2.4.建圖效果與誤差分析在建立地圖時(shí),我們考慮到實(shí)際情況,因此采用了Gmapping算法進(jìn)行建圖,算法代碼如下:<launch><!--Mappingalgorithmoptions--><argname="mapping_mode"default="gmapping"doc="opt:gmapping,hector,cartographer,karto"/><!--Whethertoenablenavigationduringmapping(defaultfalse)--><argname="navigation"default="false"/><argname="odom_frame_id"default="odom_combined"/><!--Turnonlidar--><includefile="$(findturn_on_wheeltec_robot)/launch/wheeltec_lidar.launch"/><!--StartAPPmapsavingfunctionality--><nodepkg="world_canvas_msgs"type="save"name="save_map"/><!--Startgmappingalgorithm--><groupif="$(evalmapping_mode=='gmapping')"><includefile="$(findturn_on_wheeltec_robot)/launch/include/algorithm_gmapping.launch"/><!--Startrobotbasenodes--><includefile="$(findturn_on_wheeltec_robot)/launch/turn_on_wheeltec_robot.launch"><argname="navigation"value="$(argnavigation)"/><argname="is_cartographer"value="false"/><argname="odom_frame_id"value="$(argodom_frame_id)"/></include></group></launch>進(jìn)入應(yīng)用,輸入建圖launch,如圖3.9。圖3.9啟動(dòng)建圖launch在啟動(dòng)launch之后,接下來在本機(jī)端啟動(dòng)rviz,打開終端輸入rviz即可,如圖3.10。圖3.10啟動(dòng)rviz在rviz打開后,配置好rviz,rviz初始雷達(dá)信息地圖如圖3.11。圖3.11初始位置rviz圖在低速建好圖后,地圖如圖3.12。圖3.12建圖效果圖3.3智能倉庫AGV激光雷達(dá)導(dǎo)航3.3.1導(dǎo)航原理介紹智能倉庫ROS以兩個(gè)函數(shù)包的方式提供了move_base和amcl。AGV作為一種具有自主知識(shí)產(chǎn)權(quán)的智能交通工具,通過內(nèi)置的編碼器、IMU等和外設(shè)的激光、視頻等感知設(shè)備,實(shí)現(xiàn)自主導(dǎo)航,實(shí)現(xiàn)自主導(dǎo)航。其中包括定位,路徑規(guī)劃等幾個(gè)方面。在此基礎(chǔ)上,提出了一種基于自主知識(shí)產(chǎn)權(quán)的新型移動(dòng)機(jī)械臂自主導(dǎo)航方法。該方法的基本原則是:雷達(dá)掃描環(huán)境。搭載于該機(jī)器人的騎士通過對(duì)其周邊環(huán)境進(jìn)行實(shí)時(shí)監(jiān)測,通過對(duì)激光束照射的時(shí)間、方位等信息進(jìn)行檢測,從而得到目標(biāo)物體的方位和距離。創(chuàng)建一個(gè)環(huán)境地圖。將雷達(dá)探測到的點(diǎn)云信息轉(zhuǎn)化成三維空間中的場景映射。其中,包括了障礙物的位置,形狀,尺寸等信息,同時(shí)也包括了機(jī)器人目前的位置與姿態(tài)。設(shè)定路徑。根據(jù)該地圖,采用路徑規(guī)劃方法,自動(dòng)導(dǎo)引車求解出目的地及位置的最優(yōu)路徑。在此基礎(chǔ)上,提出了一種基于自主學(xué)習(xí)能力的多目標(biāo)優(yōu)化方法。一個(gè)電機(jī)控制。自動(dòng)導(dǎo)引車采用基于軌跡規(guī)劃的方法求解出機(jī)器人的行走軌跡,從而實(shí)現(xiàn)自動(dòng)導(dǎo)航。從而適應(yīng)環(huán)境的改變而做出相應(yīng)的動(dòng)作。即利用Lidar定位系統(tǒng),通過對(duì)所處的地形進(jìn)行實(shí)時(shí)的探測,生成一幅完整的地形地貌圖,并根據(jù)此地形進(jìn)行相應(yīng)的路線規(guī)劃與動(dòng)作控制,從而實(shí)現(xiàn)對(duì)目標(biāo)的自動(dòng)定位。3.3.2自適應(yīng)蒙特卡羅定位AMCL該算法的核心思想是通過優(yōu)化粒子集合的結(jié)構(gòu),減少粒子數(shù)量的同時(shí)提升定位精度。它依托對(duì)環(huán)境的感知與建模,利用多個(gè)粒子模擬可能的位姿分布,并通過傳感器數(shù)據(jù)不斷更新這些粒子的權(quán)重,從而實(shí)現(xiàn)機(jī)器人實(shí)際狀態(tài)的逼近。具體流程包括五個(gè)主要步驟:首先是初始化階段,設(shè)定機(jī)器人在初始時(shí)刻的位姿參數(shù);隨后進(jìn)入運(yùn)動(dòng)模型階段,根據(jù)機(jī)器人的控制輸入和系統(tǒng)噪聲,預(yù)測各粒子的下一狀態(tài);第三步為傳感器模型,通過比較每個(gè)粒子預(yù)測狀態(tài)與傳感器測得信息之間的匹配程度,更新粒子權(quán)重;在此基礎(chǔ)上執(zhí)行重采樣操作,保留權(quán)重較高的粒子,剔除不可靠的粒子;最后,根據(jù)所有粒子的分布情況與權(quán)重進(jìn)行加權(quán)平均,估算出當(dāng)前機(jī)器人最可能的真實(shí)位置。通過上述過程,AMCL算法實(shí)現(xiàn)了對(duì)移動(dòng)機(jī)器人位置的高效估計(jì),并在保持計(jì)算負(fù)擔(dān)可控的前提下,顯著提升了定位的穩(wěn)定性與準(zhǔn)確性。如圖3.13。初始化初始化計(jì)算權(quán)重計(jì)算權(quán)重重新采樣重新采樣狀態(tài)轉(zhuǎn)移狀態(tài)轉(zhuǎn)移圖3.13AMCL流程3.3.3啟動(dòng)式算法的理解與推算以起點(diǎn)與目標(biāo)點(diǎn)在三維空間中各坐標(biāo)軸方向上的差值為基礎(chǔ),分別計(jì)算出在X、Y、Z方向上的距離差,記作dx、dy、dz。為了實(shí)現(xiàn)最短路徑的估計(jì),該方法從這三個(gè)差值中選取最大值、次大值與最小值,分別記作max、mid和min。路徑規(guī)劃的基本思想是,在每一步中,盡可能地同時(shí)在三個(gè)方向上移動(dòng),從而實(shí)現(xiàn)空間對(duì)角方向上的有效推進(jìn)。在這種情況下,最小值部分的步數(shù)可被平均分配至三個(gè)方向,以實(shí)現(xiàn)路徑的空間均衡性。當(dāng)某一方向上的剩余距離為最小值時(shí),該方向的位移也率先完成,而剩余的步數(shù)則繼續(xù)分配給其他方向,直至完成所有方向上的距離推進(jìn)。這種計(jì)算策略可有效避免不必要的往返運(yùn)動(dòng),從而最大程度減少路徑長度,提高搜索效率。該對(duì)角線啟發(fā)式方法在三維A*路徑搜索中表現(xiàn)出良好的準(zhǔn)確性與計(jì)算性能。其核心實(shí)現(xiàn)邏輯通過條件判斷語句(如if、elseif、switch等)構(gòu)建,程序結(jié)構(gòu)清晰,運(yùn)行效率高,代碼如下:doubledx=abs(node1->coord(0)-node2->coord(0));doubledy=abs(node1->coord(1)-node2->coord(1));doubledz=abs(node1->coord(2)-node2->coord(2));doubledx_=abs(startNode->coord(0)-goalNode->coord(0));doubledy_=abs(startNode->coord(1)-goalNode->coord(1));doubledz_=abs(startNode->coord(2)-goalNode->coord(2));doubletieBreakerCoeff=1;if(useTieBreaker==NO){tieBreakerCoeff=0;}elseif(useTieBreaker==YES){doublecross=abs((dx*dy_-dx_*dy)+(dx*dz_-dx_*dz)+(dy*dz_-dy_*dz));tieBreakerCoeff=cross*0.01;}switch(heuristicsType){caseManhattanHeu:return(dx+dy+dz)+tieBreakerCoeff;break;caseEuclideanHeu:returnsqrt(dx*dx+dy*dy+dz*dz)+tieBreakerCoeff;break;caseDiagonalHeu:return(dx+dy+dz)+(sqrt(3)-2)*min(min(dx,dy),dz)+tieBreakerCoeff;break;default:return0;break;}通過三層的for循環(huán)來訪問相鄰的節(jié)點(diǎn),還需判斷那些相鄰的節(jié)點(diǎn)不需要拓展的。代碼如下:。Vector3icurrentIdx=currentPtr->index;intx=currentIdx[0];//x軸索引inty=currentIdx[1];//y軸索引intz=currentIdx[2];//z軸索引for(inti=-1;i<=1;++i){//x方向鄰域for(intj=-1;j<=1;++j){//y方向鄰域for(intk=-1;k<=1;++k){//z方向鄰域if(i==0&&j==0&&k==0)//跳過當(dāng)前中心節(jié)點(diǎn) {continue; }intnewX=x+i;intnewY=y+j;intnewZ=z+k;//計(jì)算鄰居節(jié)點(diǎn)新坐標(biāo)if(newX>=0&&newX<GLX_SIZE&&newY>=0&&newY<GLY_SIZE&&newZ>=0&&newZ<GLZ_SIZE)//邊界檢查 {GridNodePtrnode=GridNodeMap[newX][newY][newZ];//獲取網(wǎng)格節(jié)點(diǎn)指針if(isOccupied(newX,newY,newZ))//障礙物檢查 {continue;//跳過障礙物節(jié)點(diǎn)}if(node->id==-1){continue;}neighborPtrSets.push_back(node);//記錄有效鄰居節(jié)點(diǎn)edgeCostSets.push_back((currentPtr->coord-node->coord). norm());//計(jì)算歐式距離作為邊代價(jià)}}}}3.3.4全局路徑規(guī)劃算法Djikstra與A*算法的解析與選擇Dijkstra算法的具體流程如下:初始化:先設(shè)定起點(diǎn)為S點(diǎn),然后將其加入開放列表(OpenList),并初始化其周圍節(jié)點(diǎn)的路徑代價(jià),把節(jié)點(diǎn)設(shè)為S點(diǎn)。

??第一次擴(kuò)展:從OpenList中選取路徑代價(jià)最小的節(jié)點(diǎn)作為當(dāng)前中心節(jié)點(diǎn),將其移入已訪問列表(ClosedList)。隨后對(duì)其周圍八個(gè)鄰近節(jié)點(diǎn)進(jìn)行檢查,更新路徑長度;若某鄰點(diǎn)已存在于OpenList中,則保留路徑代價(jià)較小的方案。

??繼續(xù)迭代:再次從OpenList中選取路徑代價(jià)最小的節(jié)點(diǎn)作為新一輪的中心點(diǎn),重復(fù)前述過程,持續(xù)更新各節(jié)點(diǎn)的節(jié)點(diǎn)與路徑代價(jià)信息。

??持續(xù)搜索:繼續(xù)以相同方式進(jìn)行路徑擴(kuò)展,直至所有可達(dá)節(jié)點(diǎn)均被訪問并記錄最短路徑。

?路徑收斂:根據(jù)記錄的節(jié)點(diǎn)信息,從目標(biāo)點(diǎn)反向追溯至起點(diǎn),得到最終最短路徑。

???以上即為Dijkstra算法的基本執(zhí)行流程,其仿真效果與實(shí)現(xiàn)過程如圖3.14所示。圖3.14Dijkstra運(yùn)行效果經(jīng)過幾次實(shí)驗(yàn)后,發(fā)現(xiàn)Dijkstra算法的思路是選擇離起點(diǎn)最近的一個(gè)點(diǎn),然后在用選擇了的點(diǎn)為基本中心,然后再計(jì)算這個(gè)點(diǎn)其他點(diǎn)到起點(diǎn)的距離。。然而A*算法可以更快的找到路徑,但是它所選擇的路徑可能不是最近的路徑。A*核心部分:估算算法,因此可能會(huì)降低運(yùn)輸效率。所以選擇了Dijkstra算法作為主要的算法方法。但是A*算法運(yùn)行效果還是模擬了一遍如下圖3.15。圖3.15A*算法運(yùn)行效果通過對(duì)比,可以非常直觀的看出,A*算法遍歷的點(diǎn)非常有目的性,計(jì)算量小的同時(shí)帶來的是高效率的路徑規(guī)劃[10]。3.3.5局部路徑規(guī)劃算法DWA與TEB的解析與選擇DWA算法是用于機(jī)器人學(xué)習(xí)中的算法,它的主要內(nèi)容是在不同類別特征之間的區(qū)分能力自適應(yīng)地調(diào)整特征的權(quán)重,以增強(qiáng)模型的識(shí)別能力。DWA算法如下:首先計(jì)算每個(gè)特征在不同類別之間的區(qū)分能力,通常使用Fisher判別準(zhǔn)則或Wilks'Lambda準(zhǔn)則等統(tǒng)計(jì)方法進(jìn)行計(jì)算。根據(jù)計(jì)算出的特征區(qū)分能力,可以為每個(gè)特征設(shè)置一個(gè)起始權(quán)重。對(duì)于新的樣本,則是調(diào)整后的特征權(quán)重進(jìn)行特征加權(quán),并使用加權(quán)后的特征進(jìn)行分類。DWA的缺點(diǎn)是需要對(duì)每個(gè)特征計(jì)算區(qū)分能力,計(jì)算量較大,同時(shí)在某些情況下可能會(huì)出現(xiàn)過擬合的問題。然而它的優(yōu)點(diǎn)是能夠很快的調(diào)整特征權(quán)重,從而提智能倉庫的泛化能力和魯棒性。為了提升機(jī)器學(xué)習(xí)模型的分類性能,可以根據(jù)每個(gè)特征在不同類別之間的判別能力,賦予其一個(gè)初始的權(quán)重。在訓(xùn)練過程中,這些特征權(quán)重會(huì)根據(jù)實(shí)際分類效果動(dòng)態(tài)調(diào)整,從而提高整體模型的判別能力。在模型迭代中,通過比較每個(gè)樣本的預(yù)測結(jié)果與其真實(shí)標(biāo)簽之間的差異,衡量模型當(dāng)前的分類偏差。進(jìn)而,對(duì)每一個(gè)特征,統(tǒng)計(jì)其在所有樣本中的分類誤差表現(xiàn)。通過誤差評(píng)估結(jié)果,調(diào)整該特征的權(quán)重,使其在后續(xù)訓(xùn)練中對(duì)分類結(jié)果的影響更加貼近實(shí)際貢獻(xiàn)[11]。在面對(duì)新樣本時(shí),模型會(huì)根據(jù)已學(xué)習(xí)的特征權(quán)重進(jìn)行加權(quán)評(píng)分,以此判斷其類別歸屬。該評(píng)分機(jī)制綜合考慮了特征的區(qū)分能力與在訓(xùn)練過程中所體現(xiàn)的重要性。整個(gè)過程依賴于樣本的數(shù)量與特征的維度,確保模型既具有良好的泛化能力,也具備較強(qiáng)的分類魯棒性。在算法執(zhí)行過程中,首先會(huì)根據(jù)機(jī)器人的當(dāng)前狀態(tài)和控制輸入預(yù)測其未來的運(yùn)動(dòng)狀態(tài)。在預(yù)測的同時(shí),系統(tǒng)會(huì)考慮不確定性因素對(duì)狀態(tài)的影響,從而推測出當(dāng)前狀態(tài)的置信度范圍。此外,TEB算法也會(huì)結(jié)合傳感器所獲得的實(shí)時(shí)觀測數(shù)據(jù),對(duì)預(yù)測狀態(tài)進(jìn)行修正。這個(gè)修正過程會(huì)利用當(dāng)前觀測結(jié)果與預(yù)測狀態(tài)之間的偏差,動(dòng)態(tài)調(diào)整路徑節(jié)點(diǎn)的位置與時(shí)間,從而使路徑更符合實(shí)際運(yùn)動(dòng)軌跡。TEB的另一個(gè)特點(diǎn)是路徑規(guī)劃過程中的協(xié)方差管理,通過不斷更新狀態(tài)不確定性,可以使路徑在應(yīng)對(duì)動(dòng)態(tài)環(huán)境變化時(shí)更加魯棒。同時(shí),它在節(jié)點(diǎn)間傳輸信息時(shí),僅需攜帶時(shí)間和能量等基本要素,相比其他算法傳輸大量冗余數(shù)據(jù)而言,通信代價(jià)更低,更有利于節(jié)省系統(tǒng)能耗。在本研究中,對(duì)TEB算法與DWA(動(dòng)態(tài)窗口法)進(jìn)行了對(duì)比分析。DWA雖然支持速度限制與避障,并能夠禁止機(jī)器人后退行為,但在復(fù)雜場景中路徑的合理性和靈活性存在不足。在查閱質(zhì)料后發(fā)現(xiàn),TEB在路徑生成方面更加平滑,適應(yīng)性更強(qiáng),能夠有效處理環(huán)境中的動(dòng)態(tài)障礙和實(shí)時(shí)干擾。綜合考慮路徑效果、計(jì)算效率以及系統(tǒng)能耗等因素,最終選擇TEB算法作為本項(xiàng)目中的局部路徑規(guī)劃方案,以提升整體導(dǎo)航系統(tǒng)的性能與穩(wěn)定性。3.3.6導(dǎo)航結(jié)果與誤差分析為了路徑的穩(wěn)定與快速,使用了路徑規(guī)劃算法是Dijkstra和TEB,代碼如下:#障礙物避障參數(shù)min_obstacle_dist:0.2include_costmap_obstacles:Truecostmap_obstacles_behind_robot_dist:6.0(m)obstacle_poses_affected:15#障礙物影響位姿的數(shù)量(0-30)costmap_converter_plugin:""#代價(jià)地圖轉(zhuǎn)換插件costmap_converter_spin_thread:True#啟用代價(jià)地圖轉(zhuǎn)換線程costmap_converter_rate:5#轉(zhuǎn)換頻率(Hz)include_dynamic_obstacles:True#是否包含動(dòng)態(tài)障礙物dynamic_obstacle_inflation_dist:0.6#動(dòng)態(tài)障礙物膨脹半徑(m)#目標(biāo)點(diǎn)容差參數(shù)xy_goal_tolerance:0.04#目標(biāo)點(diǎn)位置容差(m)yaw_goal_tolerance:0.04#目標(biāo)點(diǎn)角度容差(rad)free_goal_vel:True#允許以最大速度接近目標(biāo)#軌跡規(guī)劃參數(shù)teb_autosize:True#允許動(dòng)態(tài)調(diào)整軌跡時(shí)域長度dt_ref:0.45#局部路徑規(guī)劃時(shí)間分辨率(s),最小值0.01dt_hysteresis:0.04#時(shí)間分辨率浮動(dòng)范圍(建議dt_ref的10%)global_plan_overwrite_orientation:False#是否覆蓋全局路徑點(diǎn)朝向max_global_plan_lookahead_dist:3.0#全局路徑前瞻距離(m)feasibility_check_no_poses:5#位姿可達(dá)性檢查間隔#優(yōu)化器參數(shù)no_inner_iterations:5#內(nèi)層優(yōu)化迭代次數(shù)no_outer_iterations:4#外層優(yōu)化迭代次數(shù)optimization_activate:True#啟用軌跡優(yōu)化小車導(dǎo)航速度、加速度的設(shè)置代碼如下:#機(jī)器人基本運(yùn)動(dòng)參數(shù)max_vel_x:0.5#最大前進(jìn)速度(m/s)max_vel_y:0.0#最大橫向速度(m/s),非全向移動(dòng)機(jī)器人設(shè)為0max_vel_x_backwards:0.5#最大后退速度(m/s)max_vel_theta:1.5#最大轉(zhuǎn)向角速度(rad/s)acc_lim_x:0.2#X軸最大加速度(m/s2)acc_lim_y:0.0#Y軸最大加速度(m/s2),非全向移動(dòng)機(jī)器人設(shè)為0acc_lim_theta:0.3#最大角加速度(rad/s2)#阿克曼轉(zhuǎn)向模型參數(shù)(非阿克曼機(jī)器人設(shè)為0)min_turning_radius:0.0#最小轉(zhuǎn)彎半徑(米)wheelbase:0.0#軸距(前輪與后輪距離,米)進(jìn)行導(dǎo)航到目標(biāo)點(diǎn),導(dǎo)航中rviz圖如圖3.16。圖3.16導(dǎo)航中rviz圖定位不準(zhǔn)確誤差:智能機(jī)器人定位系統(tǒng)的誤差是導(dǎo)致路徑導(dǎo)航誤差罪魁禍?zhǔn)?。定位誤差的因素有許多,在設(shè)備沒有故障的前提下一般是因?yàn)閭鞲衅骶炔粔?、環(huán)境變化大、地圖質(zhì)量差、智能機(jī)器人姿態(tài)等多種因素引起。3.4本章小結(jié)這部分論文的重要核心內(nèi)容,介紹了上位機(jī)的實(shí)施方案和算法原理等,其中,智能機(jī)器人部分主要有矩陣轉(zhuǎn)換數(shù)學(xué)基礎(chǔ),基礎(chǔ)講解了上位機(jī)與下位機(jī)的串口通信、機(jī)器人節(jié)點(diǎn)解析、tf坐標(biāo)變換和通過launch去啟動(dòng)機(jī)器人各節(jié)點(diǎn)。重點(diǎn)講了建圖問題,建圖算法選擇了Gmapping。這是因?yàn)镃artographer算法受限較多,而切智能機(jī)器人硬件運(yùn)行Cartographer算法會(huì)比較困難。在智能倉庫路徑規(guī)劃方面,主要詳細(xì)的講解了Djikstra和TEB算法的基本原理原理,然后選擇使用的是Djikstra和TEB的互相配合的方法。還進(jìn)行了導(dǎo)航的誤差分析,在多次誤差調(diào)整后,發(fā)現(xiàn)路徑導(dǎo)航過億單一使整體還帶有較大的誤差,因此思考是否還要加入新的路徑導(dǎo)航方法。

4智能倉庫AR輔助調(diào)整誤差及末端磁導(dǎo)航4.1智能倉庫導(dǎo)航中端使用AR標(biāo)簽識(shí)別重定位4.1.1AR標(biāo)簽識(shí)別介紹在智能倉庫系統(tǒng)中添加了一個(gè)可以實(shí)現(xiàn)AR標(biāo)簽跟隨功能,其中需要使用計(jì)算機(jī)視覺和圖像處理技術(shù),通過實(shí)時(shí)識(shí)別設(shè)備的方向和位置,使智能機(jī)器人始終保持在運(yùn)輸路徑范圍內(nèi)還可以保持智能機(jī)器人周邊環(huán)境中物體的距離和角度。這里是由于激光導(dǎo)航有一定的誤差,所以為了保險(xiǎn)啟見引入了AR標(biāo)簽識(shí)別跟隨[12]。4.1.2AR標(biāo)簽識(shí)別中端定位在運(yùn)行l(wèi)aunch文件后,AR就會(huì)被打開,此時(shí)在攝像頭前方移動(dòng)需要跟隨的AR標(biāo)簽,智能機(jī)器人就會(huì)跟著移動(dòng),就可以觀察到智能機(jī)器人攝像頭和AR的坐標(biāo)。在文件中還可以設(shè)置智能機(jī)器人向各個(gè)方向移動(dòng)時(shí)的速度、最大最小線速度角速度以及小車與AR標(biāo)簽保持的距離和方向。坐標(biāo)如圖4.1。圖4.1rvizTF坐標(biāo)圖ar_marker_0為AR標(biāo)簽。源碼部分:launch啟動(dòng)文件代碼如下:<launch><!--啟動(dòng)攝像頭節(jié)點(diǎn)--><includefile="$(findturn_on_wheeltec_robot)/launch/wheeltec_camera.launch"/><!--AR標(biāo)記檢測參數(shù)--><argname="marker_size"default="4.4"/><!--標(biāo)記物理尺寸(cm)--><argname="max_new_marker_error"default="0.08"/><!--新標(biāo)記識(shí)別最大誤差--><argname="max_track_error"default="0.2"/><!--跟蹤過程最大誤差--><!--相機(jī)話題配置--><argname="cam_image_topic"default="/camera/depth_registered/points"<argname="cam_info_topic"default="/camera/rgb/camera_info"/><!--相機(jī)信息話題--><argname="output_frame"default="ar_link"/><!--AR標(biāo)記輸出坐標(biāo)系--><!--建立camera_link到ar_link的靜態(tài)TF變換--><nodepkg="tf"type="static_transform_publisher"name="camera_to_ar"args="000000ar_linkcamera_link100"/><!--修正了參數(shù)格式--><!--啟動(dòng)AR標(biāo)記識(shí)別節(jié)點(diǎn)--><nodename="ar_track_alvar"pkg="ar_track_alvar"type="individualMarkers"respawn="false"output="screen"><paramname="marker_size"type="double"value="$(argmarker_size)"/><paramname="max_new_marker_error"type="double"value="$(argmax_new_marker_error)"/><paramname="max_track_error"type="double"value="$(argmax_track_error)"/><paramname="output_frame"type="string"value="$(argoutput_frame)"/><remapfrom="camera_image"to="$(argcam_image_topic)"/><remapfrom="camera_info"to="$(argcam_info_topic)"/></node></launch>在ar_follow.py文件中,我定義了小車與AR標(biāo)簽之間的距離、啟動(dòng)速度和判斷邏輯,代碼如下:self.srv=Server(arrPIDConfig,self.config_callback)#創(chuàng)建動(dòng)態(tài)參數(shù)服務(wù)器#初始PID參數(shù)self.linearfront_p=0.5#前進(jìn)方向比例系數(shù)self.linearback_p=0.6#后退方向比例系數(shù)self.angularleft_p=3.0#左轉(zhuǎn)比例系數(shù)self.angularright_p=2.7#右轉(zhuǎn)比例系數(shù)self.d_param=0.8#距離控制參數(shù)#創(chuàng)建ROS話題接口self.cmd_vel_pub=rospy.Publisher("/cmd_vel",Twist,queue_size=5)#速度指令發(fā)布self.ar_pose_sub=rospy.Subscriber("/ar_pose_marker",AlvarMarkers,self.set_cmd_vel)#AR標(biāo)記位姿訂閱#狀態(tài)初始化self.target_visible=False#AR標(biāo)記可見狀態(tài)self.move_cmd=Twist()#創(chuàng)建速度指令對(duì)象rospy.loginfo("ar_followstarting!")#啟動(dòng)日志#主控制循環(huán)whilenotrospy.is_shutdown():self.cmd_vel_pub.publish(self.move_cmd)#持續(xù)發(fā)布速度指令rate.sleep()#動(dòng)態(tài)參數(shù)回調(diào)函數(shù)defconfig_callback(self,config,level):"""rqt_reconfigure參數(shù)更新回調(diào)"""self.linearfront_p=config.linearfront_p#更新前進(jìn)P參數(shù)self.linearback_p=config.linearback_p#更新后退P參數(shù)self.angularleft_p=config.angularleft_p#更新左轉(zhuǎn)P參數(shù)self.angularright_p=config.angularright_p#更新右轉(zhuǎn)P參數(shù)self.d_param=config.d_param#更新距離控制參數(shù)在小車讀到AR標(biāo)簽后,進(jìn)行位置調(diào)整,我設(shè)置調(diào)整位置過程中的允許誤差為0.06米,小車出現(xiàn)誤差偏差時(shí)的判斷邏輯代碼如下:offset_y=0.06#小車中心與攝像頭檢測中心的Y軸偏差target_offset_y=marker.pose.pose.position.y+offset_y#校正后的Y軸偏差target_offset_x=marker.pose.pose.position.x#X軸方向距離#X軸方向距離控制(前進(jìn)/后退)iftarget_offset_x>self.goal_x:#計(jì)算線性速度(帶死區(qū)補(bǔ)償)linearspeed=target_offset_x*self.linearfront_p-self.d_param*0.4#低速死區(qū)處理(避免抖動(dòng))iflinearspeed<0.012:linearspeed=0#速度限幅eliflinearspeed>self.max_linear_speed:linearspeed=self.max_linear_speedself.move_cmd.linear.x=linearspeed#Y軸方向偏差控制(左右轉(zhuǎn)向)iftarget_offset_y>self.goal_y:#左轉(zhuǎn)控制angularspeed=target_offset_y*self.angularleft_p-self.d_param*0.6#低速死區(qū)處理ifangularspeed<0.012:angularspeed=0#角速度限幅elifangularspeed>self.max_angular_speed:angularspeed=self.max_angular_speedself.move_cmd.angular.z=angularspeedelse:#右轉(zhuǎn)控制(帶方向補(bǔ)償)angularspeed=target_offset_y*self.angularright_p+self.d_param*0.3#低速死區(qū)處理(絕對(duì)值判斷)ifabs(angularspeed)<0.012:angularspeed=0#角速度限幅(保持方向)elifabs(angularspeed)>self.max_angular_speed:angularspeed=-self.max_angular_speedifangularspeed<0elseself.max_angular_speedself.move_cmd.angular.z=angularspeed4.2智能倉庫導(dǎo)航末端通道使用磁條導(dǎo)航磁條導(dǎo)航系統(tǒng)是由一組帶有磁性的方條組成的,這些帶有磁性的方條被固定鋪設(shè)在智能倉庫提前設(shè)定好的地面上。磁條一般是由永久磁體或者電磁鐵來制作的,在它們的四周它們可以產(chǎn)生一個(gè)比較穩(wěn)定的磁場。導(dǎo)航設(shè)備上安裝了一些磁場感應(yīng)傳感器,和傳播器,可以檢測到這些磁條產(chǎn)生的磁場,從而確定智能機(jī)器人在空間中的位置和方向,并把內(nèi)容告知給智能機(jī)器人[14]。當(dāng)智能機(jī)器人移動(dòng)時(shí),它會(huì)沿著鋪設(shè)好的磁軌道行走,磁場感應(yīng)傳感器會(huì)持續(xù)地讀取磁場強(qiáng)度和方向。然后通過分析這些數(shù)據(jù),讓智能機(jī)器人可以確定自己的位置和方向,并隨時(shí)的調(diào)整自己的移動(dòng)方向。磁條導(dǎo)航布分布如圖4.2。圖4.2磁條導(dǎo)航布線圖4.3本章小結(jié)本章的主要內(nèi)容是通過AR調(diào)整誤差,和末端磁導(dǎo)航來實(shí)現(xiàn)智能機(jī)器的導(dǎo)航系統(tǒng)。由于激光導(dǎo)航有誤差,所以通過AR標(biāo)簽識(shí)別跟隨加上磁導(dǎo)航來輔助完成。智能機(jī)器人通過AR標(biāo)簽識(shí)別后,進(jìn)行二次調(diào)整,再加上磁導(dǎo)航給機(jī)器人傳遞信息。會(huì)使誤差保持在一個(gè)較低的水平以內(nèi),以此來加強(qiáng)智能機(jī)器人的行進(jìn)準(zhǔn)確度,完成智能倉庫運(yùn)輸功能。

5智能倉庫調(diào)度管理5.1智能倉庫調(diào)度系統(tǒng)調(diào)度流程調(diào)度系統(tǒng)是指負(fù)責(zé)管理、分配、控制智能倉庫系統(tǒng)中各種資源的程序,其調(diào)度流程可以簡單地概括為以下幾個(gè)步驟:1)接收任務(wù):智能倉庫的調(diào)度系統(tǒng)就會(huì)向智能機(jī)器人發(fā)布任務(wù),智能機(jī)器人將會(huì)在最短時(shí)間內(nèi)完成任務(wù)。2)任務(wù)分配:智能倉庫調(diào)度系統(tǒng)會(huì)根據(jù)各種情況,將任務(wù)分配給相應(yīng)的智能機(jī)器人并明確的告訴它貨物的放置位置,如圖5.1。圖5.1產(chǎn)品分配情況智能倉庫的產(chǎn)品類型管理:智能倉庫調(diào)度系統(tǒng)會(huì)對(duì)完成運(yùn)輸?shù)呢浳镞M(jìn)行嚴(yán)格的分類管理,確保各種類似的貨物可以在最短的時(shí)間內(nèi)完成進(jìn)出貨物,以提高智能倉庫系統(tǒng)的運(yùn)輸能力和整齊程度。如圖5.2。圖5.2產(chǎn)品類型進(jìn)貨調(diào)度:智能倉庫調(diào)度系統(tǒng)會(huì)根據(jù)貨物的優(yōu)先級(jí)、調(diào)度策略等因素,將任務(wù)分配給的智能機(jī)器人,以確保任務(wù)更加快速的按照指定的方式運(yùn)輸完成。如圖5.3。如圖5.3進(jìn)貨信息圖5)監(jiān)控控制:智能倉庫調(diào)度系統(tǒng)會(huì)不定時(shí)的檢查智能機(jī)器人的使用情況和執(zhí)行運(yùn)輸任務(wù)時(shí)狀態(tài),對(duì)出現(xiàn)的異常情況的智能機(jī)器人進(jìn)行處理和調(diào)整,以確保系統(tǒng)的穩(wěn)定性和可靠性。6)事件記錄機(jī)制:智能倉庫調(diào)度系統(tǒng)會(huì)通過記錄機(jī)制向工作人員或其他的系統(tǒng)提供任務(wù)執(zhí)行狀態(tài)和資源使用情況等信息,以便及時(shí)調(diào)整任務(wù)和資源的分配。如圖5.4。圖5.4倉庫事件記錄圖可在調(diào)度系統(tǒng)設(shè)置AGV儲(chǔ)位調(diào)度流程,可分配AGV接任務(wù)和調(diào)度的邏輯,撞車管控。5.2智能倉庫調(diào)度系統(tǒng)線路整體解析5.2.1智能機(jī)器人的接駁臺(tái)在上章磁導(dǎo)航部分我介紹給出了磁導(dǎo)航的路線圖,從上面可以看到有接駁臺(tái)的設(shè)計(jì),智能機(jī)器人在接到任務(wù)后,可以在接駁臺(tái)進(jìn)行上下儲(chǔ)操作,如圖5.5。圖5.5接駁臺(tái)拓?fù)浣Y(jié)構(gòu)在接駁臺(tái)的拓?fù)浣Y(jié)構(gòu)中,可以看到機(jī)械臂、接駁臺(tái)、AGV料口和各個(gè)傳感器的位置[15]。5.2.2AGV調(diào)度路線儲(chǔ)位解析AGV任務(wù)可分為上、下儲(chǔ),以下儲(chǔ)為例,先切換模式:在倉管系統(tǒng),先將模式改成下儲(chǔ)模式。在agv車號(hào)那里,點(diǎn)擊“更改模式”就可以了。模式的切換與上儲(chǔ)模式的切換是一樣的。然后在調(diào)度系統(tǒng)上給小車發(fā)命令,讓小車待命即可。在下儲(chǔ)流程中,只要將小車放在下圖的線上待命即可。然后讓現(xiàn)場的人員去調(diào)用他們的單號(hào),小車就會(huì)自動(dòng)地去取料,下儲(chǔ)路線圖如圖5.6。圖5.6AGV下儲(chǔ)路線圖5.2.3路線表說明路線表如下:表5.1路線表序號(hào)起點(diǎn)(出發(fā)點(diǎn))終點(diǎn)(目標(biāo)點(diǎn))路線備注1待命點(diǎn)上料口112上料口A片區(qū)203A片區(qū)待命點(diǎn)40暫定原路返回4上料口待命點(diǎn)41暫定待命點(diǎn)還未修改前其中,小車如果是上儲(chǔ)模式,就會(huì)通過11號(hào)路線前往上料口,進(jìn)行上儲(chǔ)操作。在使用AGV磁導(dǎo)航調(diào)度系統(tǒng)之前,需要預(yù)先規(guī)劃AGV的路徑。系統(tǒng)使用計(jì)算機(jī)軟件規(guī)劃AGV的路徑,將其存儲(chǔ)在系統(tǒng)中。這些路徑由一系列導(dǎo)航點(diǎn)組成,每個(gè)導(dǎo)航點(diǎn)都對(duì)應(yīng)一個(gè)特定的位置。在AGV磁導(dǎo)航調(diào)度系統(tǒng)啟動(dòng)后,系統(tǒng)將啟動(dòng)調(diào)度程序,該程序會(huì)讀取存儲(chǔ)在系統(tǒng)中的路徑信息并將其轉(zhuǎn)換為AGV可以識(shí)別的導(dǎo)航信號(hào)。AGV路線拐彎點(diǎn)解析,如圖5.7。圖5.7AGV路線拐點(diǎn)啟動(dòng)調(diào)度程序并將路徑信息轉(zhuǎn)換為導(dǎo)航信號(hào)后,智能機(jī)器人收到指令就可以開始行動(dòng)。智能機(jī)器人會(huì)使用其磁導(dǎo)航傳感器來跟蹤磁性導(dǎo)線,并沿著路徑移動(dòng)。在行駛過程中,調(diào)度程序會(huì)不斷監(jiān)控智能機(jī)器人的位置,并對(duì)其進(jìn)行調(diào)整,以確保它沿著預(yù)定路徑移動(dòng)。5.2.4智能倉庫調(diào)度系統(tǒng)入庫模式智能倉庫使用AGV磁導(dǎo)航調(diào)度系統(tǒng)的入庫模式分為以下幾個(gè)步驟:任務(wù)派發(fā):根據(jù)生產(chǎn)計(jì)劃或者物料需求,調(diào)度系統(tǒng)會(huì)將需要入庫的物料信息和目標(biāo)位置等任務(wù)信息下發(fā)給AGV。入庫界面如圖5.8入庫信息。圖5.8入庫信息2)智能機(jī)器人識(shí)別貨物:智能機(jī)器人通過貨物識(shí)別系統(tǒng)如貨物編號(hào)、貨物名稱等,對(duì)儲(chǔ)架上的貨物進(jìn)行掃描,并獲取相關(guān)信息規(guī)格、數(shù)量等。如圖5.9產(chǎn)品信息。5.9產(chǎn)品信息3)智能機(jī)器人移動(dòng)到入庫口:智能機(jī)器人將掃描到的物料從料架上取下,并移動(dòng)至入庫口。4)智能機(jī)器人返回:完成入庫操作后,智能機(jī)器人會(huì)回到指定的位置,等待下一次任務(wù)的派發(fā)。在整個(gè)入庫過程中,磁導(dǎo)航系統(tǒng)會(huì)實(shí)時(shí)監(jiān)測智能機(jī)器人的位置,并對(duì)其進(jìn)行調(diào)度和控制,以確保貨物能夠快速、準(zhǔn)確地入庫,并且不會(huì)出現(xiàn)碰撞等安全問題。5.2.5智能倉庫調(diào)度系統(tǒng)儲(chǔ)位管理在智能倉庫儲(chǔ)架儲(chǔ)位系統(tǒng)中,智能機(jī)器人被用來運(yùn)輸指定的貨物到指定的位置。存放的位置由是儲(chǔ)架構(gòu)成,儲(chǔ)物架可以垂直或水平整齊的擺放,通過智能機(jī)器人進(jìn)行儲(chǔ)存或取出。智能機(jī)器人也可以通過在預(yù)定好了的路徑行駛,將貨物從出發(fā)點(diǎn)運(yùn)輸?shù)皆O(shè)訂好了的位置上,從而提高了智能倉庫的運(yùn)作效率。在AGV儲(chǔ)架儲(chǔ)位系統(tǒng)中,AGV可以進(jìn)行多種操作,如載貨、放貨、轉(zhuǎn)彎、上升、下降等。通過使用自動(dòng)化控制系統(tǒng),AGV可以自主完成運(yùn)輸任務(wù),同時(shí)實(shí)現(xiàn)對(duì)儲(chǔ)位的自動(dòng)管理,如儲(chǔ)位狀態(tài)監(jiān)測、自動(dòng)儲(chǔ)存和取出、儲(chǔ)位庫存盤點(diǎn)等。在智能倉庫儲(chǔ)架儲(chǔ)位系統(tǒng)是一種高效、準(zhǔn)確、安全的自動(dòng)化物流解決方案,它可以提升智能倉庫的整體運(yùn)作效率,還可以降低運(yùn)行成本和出錯(cuò)率。提高倉庫的安全性,為企業(yè)的物流管理提供了有力的支持[16]。智能倉庫的儲(chǔ)位管理邏輯的流程圖,如圖5.10。圖5.10儲(chǔ)位管理邏輯流程圖5.3智能倉庫調(diào)度系統(tǒng)整體設(shè)計(jì)5.3.1智能倉庫調(diào)度系統(tǒng)智能倉庫的調(diào)度系統(tǒng)主要是一個(gè)用于管理運(yùn)輸路徑和物資高低級(jí)的軟件系統(tǒng),預(yù)測工作量等一個(gè)完整的系統(tǒng)。它能夠自動(dòng)化調(diào)度、分配和優(yōu)化任務(wù)的運(yùn)行過程。包括智能機(jī)器人的路徑優(yōu)化、提前分配任務(wù)等。5.3.2智能倉庫調(diào)度系統(tǒng)算法智能倉庫調(diào)度系統(tǒng)最尋常的調(diào)度算法主要包括以下幾種:1)最短路徑的算法最短路徑算法是智能倉庫調(diào)度中最常用的算法,它可以減少智能倉庫機(jī)器人的工作量,大大的降低了成本與時(shí)間。然而常見的最短路徑算法就是上文說明了的Dijkstra算法和A*算法。2)遺傳算法遺傳算法可以解決NP難的麻煩。在智能倉庫調(diào)度系統(tǒng)中,遺傳算法可以用來優(yōu)化智能機(jī)器人行進(jìn)的路徑,減少機(jī)器人的運(yùn)行時(shí)間這可以提高整個(gè)智能倉庫系統(tǒng)的效率。遺傳算法,代碼如下:defgenetic_algorithm():#1.初始化種群population=[generate_chromosome()f

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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)論