汪云云, 王連明, 關(guān)建文, 王富興
(1.東北師范大學(xué)物理學(xué)院,長(zhǎng)春 130024; 2.海南熱帶海洋學(xué)院海洋科學(xué)技術(shù)學(xué)院,三亞 572022)
隨著人工智能技術(shù)的快速發(fā)展,工業(yè)自動(dòng)化程度日益提高,自動(dòng)導(dǎo)引車(chē)(automated guided vehicle,AGV)作為原始人工勞動(dòng)力的替代工具已經(jīng)被應(yīng)用到一些大型加工制造工廠之中。AGV是指裝備有自行定位導(dǎo)航裝置,可以依據(jù)規(guī)劃的路線行駛,具有安全保護(hù)和移載功能,能夠在物流運(yùn)輸自動(dòng)化中不需駕駛員實(shí)地操作的運(yùn)輸車(chē)[1]。AGV作為一種自動(dòng)化的運(yùn)輸車(chē),針對(duì)自動(dòng)化工廠無(wú)人駕駛、安全高效等現(xiàn)實(shí)需求,要求其具備地圖構(gòu)建、自主定位、路徑規(guī)劃、路徑跟蹤、自主導(dǎo)航等功能。
導(dǎo)引技術(shù)是AGV實(shí)現(xiàn)諸多功能的核心技術(shù),目前AGV的導(dǎo)引技術(shù)以激光導(dǎo)引為主,磁體導(dǎo)引、視覺(jué)導(dǎo)引等方式并存發(fā)展。文獻(xiàn)[2]采用磁體導(dǎo)引AGV方式,穩(wěn)定性較好,但需要定期更換磁體,潛在成本高。文獻(xiàn)[3]提出基于反光板的激光叉車(chē)AGV定位導(dǎo)航系統(tǒng),該方法定位較精確,但是容易受外界光線、地面平整度等環(huán)境因素影響。文獻(xiàn)[4]通過(guò)圖像處理識(shí)別道路顏色實(shí)現(xiàn)視覺(jué)導(dǎo)引AGV系統(tǒng),優(yōu)點(diǎn)是路徑維護(hù)方便,但該算法受環(huán)境光照影響比較大,對(duì)圖像處理算法魯棒性要求比較高。
本文以室內(nèi)運(yùn)輸任務(wù)為目標(biāo),從自動(dòng)化、柔性化、低成本化等現(xiàn)實(shí)需求出發(fā),設(shè)計(jì)了一款易開(kāi)發(fā)、易維護(hù)、適應(yīng)性強(qiáng)、操作簡(jiǎn)便且運(yùn)行靈活的室內(nèi)運(yùn)輸AGV系統(tǒng)。
開(kāi)源機(jī)器人操作系統(tǒng)(robot operating system,ROS)是由斯坦福大學(xué)人工智能實(shí)驗(yàn)室開(kāi)發(fā)的一套提供類似操作系統(tǒng)服務(wù)的機(jī)器人專用開(kāi)源系統(tǒng)。其包括對(duì)硬件的抽象描述、消息傳遞、底層控制等功能,同時(shí)提供機(jī)器人開(kāi)發(fā)所需的通用工具包和函數(shù)庫(kù),比如機(jī)器人自主導(dǎo)航的相關(guān)功能包,能夠極大地提高機(jī)器人研發(fā)的代碼復(fù)用率[5]。
ROS的分布式點(diǎn)對(duì)點(diǎn)通信機(jī)制如圖1所示,圖1中的一個(gè)節(jié)點(diǎn)就是一個(gè)ROS進(jìn)程,兩個(gè)節(jié)點(diǎn)之間的一對(duì)一通信稱為服務(wù),多個(gè)節(jié)點(diǎn)之間的通信可以通過(guò)話題機(jī)制實(shí)現(xiàn)。該通信機(jī)制使用了基于TCP/IP的通信方式,實(shí)現(xiàn)模塊間點(diǎn)對(duì)點(diǎn)的松耦合連接[6]。基于ROS進(jìn)行機(jī)器人的開(kāi)發(fā),可降低機(jī)器人開(kāi)發(fā)難度,縮短開(kāi)發(fā)周期。
圖1 ROS分布式點(diǎn)對(duì)點(diǎn)通信機(jī)制Fig.1 Distributed point-to-point communication mechanism of ROS
鑒于AGV有地圖構(gòu)建、自主定位、路徑規(guī)劃等功能需求,而ROS恰好提供了實(shí)現(xiàn)這些功能的框架,因此可以借助ROS平臺(tái)開(kāi)發(fā)AGV。AGV與ROS兩者的結(jié)合充分利用了ROS平臺(tái)的優(yōu)勢(shì),極大地提高了AGV系統(tǒng)的開(kāi)發(fā)效率,降低了開(kāi)發(fā)難度。
本文設(shè)計(jì)的基于ROS的室內(nèi)運(yùn)輸AGV系統(tǒng)可以分為軟件系統(tǒng)和硬件系統(tǒng)兩大部分,如圖2所示。從AGV的功能需求出發(fā),進(jìn)行硬件選型、設(shè)計(jì)與搭建硬件系統(tǒng)。在ROS規(guī)劃端進(jìn)行地圖構(gòu)建、自主定位、路徑規(guī)劃、路徑跟蹤、自主導(dǎo)航五大模塊的設(shè)計(jì)與實(shí)現(xiàn)。通過(guò)制定ROS規(guī)劃端與硬件系統(tǒng)的通信協(xié)議,使整個(gè)AGV系統(tǒng)軟硬件協(xié)同開(kāi)發(fā)、協(xié)調(diào)工作。
圖2 基于ROS的AGV系統(tǒng)整體方案框圖Fig.2 The block diagram of AGV system based on ROS
軟件部分分為ROS規(guī)劃端和網(wǎng)頁(yè)人機(jī)交互端。ROS規(guī)劃端設(shè)計(jì)與實(shí)現(xiàn)AGV的五大功能。網(wǎng)頁(yè)人機(jī)交互端基于rosbridge通信機(jī)制,實(shí)現(xiàn)在線發(fā)布AGV控制命令,完成動(dòng)態(tài)人機(jī)交互功能。
硬件系統(tǒng)設(shè)計(jì)為三個(gè)模塊:電源模塊、傳感器模塊、控制器模塊。其中電源模塊采用直流蓄電池組為整個(gè)車(chē)載系統(tǒng)提供所需電能。傳感器模塊包含舵機(jī)內(nèi)置編碼器、用于地圖構(gòu)建和避障的激光雷達(dá)、提供車(chē)體轉(zhuǎn)向信息的慣性測(cè)量單元、用于AGV手動(dòng)調(diào)試的遙控手柄??刂破髂K包括STM32核心芯片和工業(yè)控制計(jì)算機(jī),工業(yè)控制計(jì)算機(jī)作為上位機(jī)通過(guò)串口與STM32芯片進(jìn)行數(shù)據(jù)傳輸,實(shí)現(xiàn)上位機(jī)與底層控制器的實(shí)時(shí)通信。
為測(cè)試基于ROS的室內(nèi)運(yùn)輸AGV系統(tǒng)的可行性與實(shí)用性,以室內(nèi)無(wú)人工廠為實(shí)際應(yīng)用場(chǎng)景,設(shè)計(jì)并實(shí)現(xiàn)了一款基于ROS的單舵輪室內(nèi)運(yùn)輸AGV系統(tǒng)。設(shè)計(jì)采用的車(chē)體行走結(jié)構(gòu)為單舵輪輪系結(jié)構(gòu),包括一個(gè)主舵輪和兩個(gè)從動(dòng)輪,主舵輪選用的是中大的CFR轉(zhuǎn)向驅(qū)動(dòng)輪。單舵輪式結(jié)構(gòu)承載負(fù)荷小、行走速度快、轉(zhuǎn)向靈活,因此選作實(shí)驗(yàn)設(shè)計(jì)的平臺(tái)。
3.1.1 單舵輪AGV硬件系統(tǒng)設(shè)計(jì)
AGV系統(tǒng)地圖構(gòu)建、自主定位、路徑規(guī)劃、路徑跟蹤、自主導(dǎo)航五大功能的實(shí)現(xiàn),必須基于相應(yīng)的硬件平臺(tái)。本文設(shè)計(jì)的基于ROS的室內(nèi)運(yùn)輸AGV硬件系統(tǒng)結(jié)構(gòu)框圖如圖3所示。Ubuntu16.04操作系統(tǒng)運(yùn)行在主控制器工控機(jī)上,在該系統(tǒng)下又搭載了一個(gè)Kinetic版本的ROS機(jī)器人操作系統(tǒng)。SICK LMS1xx系列激光掃描儀通過(guò)網(wǎng)口掛載到工控機(jī)上,作為地圖構(gòu)建和避障的傳感器數(shù)據(jù)來(lái)源。微軟XBOX游戲手柄通過(guò)USB串口掛接在工控機(jī)上,用于手動(dòng)調(diào)試控制AGV。STM32核心控制芯片通過(guò)USB-TTL轉(zhuǎn)換器連接到工控機(jī)上,與ROS 系統(tǒng)進(jìn)行雙向通信。一方面STM32控制板接收ROS端發(fā)來(lái)的速度及轉(zhuǎn)向指令,根據(jù)CANopen協(xié)議通過(guò)CAN總線與兩個(gè)驅(qū)動(dòng)器進(jìn)行通信,以達(dá)到同時(shí)控制直行舵機(jī)和轉(zhuǎn)向電機(jī)的運(yùn)動(dòng);另一方面,STM32以50 Hz頻率向ROS端上傳舵機(jī)編碼器脈沖數(shù)、MPU9250慣性測(cè)量單元等傳感器的數(shù)據(jù)。直流蓄電池組為整個(gè)系統(tǒng)供給電能。
圖3 基于ROS的AGV硬件結(jié)構(gòu)框圖Fig.3 Hardware structure diagram of AGV based on ROS
AGV硬件系統(tǒng)中核心部件是主控制器。由于主控制器控制著AGV的通信、行駛、裝卸和故障診斷等任務(wù),所以一般要求其具有較高的可靠性、靈活性和抗干擾能力。選用Intel公司的具有酷睿i7雙核處理器、2 GB內(nèi)存的研華工業(yè)控制計(jì)算機(jī)。底盤(pán)輔助控制芯片采用的是STM32F103ZET6芯片。AGV主控制系統(tǒng)程序流程圖如圖4所示。
圖4 AGV主控制系統(tǒng)程序流程圖Fig.4 Flow chart of the main control system program of AGV
3.1.2 單舵輪AGV運(yùn)動(dòng)學(xué)模型建立與分析
AGV的運(yùn)動(dòng)學(xué)模型是運(yùn)動(dòng)控制的基礎(chǔ)。通過(guò)結(jié)合AGV的運(yùn)動(dòng)學(xué)模型和編碼器采集的數(shù)據(jù)等已知條件,可以求解AGV的里程計(jì)信息,進(jìn)而可以實(shí)現(xiàn)AGV的實(shí)時(shí)定位[7]。反之,當(dāng)AGV接收到上位機(jī)的運(yùn)動(dòng)指令時(shí),通過(guò)逆運(yùn)動(dòng)學(xué)解析,可將運(yùn)動(dòng)指令解析為驅(qū)動(dòng)控制器和轉(zhuǎn)向伺服控制器的控制命令,從而驅(qū)動(dòng)相應(yīng)電機(jī)進(jìn)行運(yùn)動(dòng)。
單舵輪輪系結(jié)構(gòu)如圖5所示,主舵輪既是驅(qū)動(dòng)輪也是轉(zhuǎn)向輪,分別由直行電機(jī)驅(qū)動(dòng)器和轉(zhuǎn)向電機(jī)驅(qū)動(dòng)器進(jìn)行驅(qū)動(dòng)。車(chē)體后方的固定從動(dòng)輪僅僅起支撐車(chē)體作用[8]。因此,AGV的運(yùn)動(dòng)學(xué)模型僅僅由主舵輪與從動(dòng)輪安裝的相對(duì)位置和布局方式?jīng)Q定。
圖5 單舵輪AGV示意圖Fig.5 Schematic diagram of single wheel AGV
單舵輪AGV的運(yùn)動(dòng)學(xué)模型建立如6所示,在本模型中,坐標(biāo)系XOY為二維世界坐標(biāo)系,點(diǎn)O1為從AGV車(chē)體中軸線向兩個(gè)從動(dòng)輪軸線作垂線得到的交點(diǎn),作為AGV車(chē)體位置的參考點(diǎn)。前輪和后輪的軸距為l。β為舵輪與車(chē)體中軸線的夾角,可以通過(guò)轉(zhuǎn)向編碼器獲取;α為車(chē)體中軸線與世界坐標(biāo)系X軸的夾角;vsteering為舵輪的行駛速度;vagv為車(chē)體中軸線上的速度,即AGV的前向行駛速度;vt為車(chē)體的橫向速度。vx、vy分別為舵輪速度在X、Y軸上的分量。ω為車(chē)體的角速度,定義逆時(shí)針?lè)较驗(yàn)檎怠<僭O(shè)車(chē)體初始位姿為 (x0,y0,α0),則經(jīng)過(guò)dt時(shí)間后,車(chē)體在目標(biāo)點(diǎn)處位姿為(x1,y1,α1),兩者之間的關(guān)系如下。
(1)初始位姿(x0,y0,α0)。
(2)AGV車(chē)體前向速度和角速度。
(1)
(3)dt時(shí)間段內(nèi)位移增量和方位角增量:
(2)
(4)dt時(shí)間后AGV在目標(biāo)點(diǎn)處的位姿(x1,y1,α1) 為
(3)
經(jīng)過(guò)以上對(duì)單舵輪AGV運(yùn)動(dòng)學(xué)模型的建立與分析可知,通過(guò)運(yùn)動(dòng)學(xué)模型結(jié)合AGV的初始位姿(x0,y0,α0)可推算出任意時(shí)刻AGV的姿態(tài)(x1,y1,α1)。AGV的位姿信息可作為ROS里程計(jì)的數(shù)據(jù)來(lái)源,里程計(jì)是衡量機(jī)器人從初始位姿到終點(diǎn)位姿的一個(gè)標(biāo)準(zhǔn),可以提供機(jī)器人往哪個(gè)方向行進(jìn)了多少距離的信息。ROS里程計(jì)包含AGV的位姿信息和速度信息。位姿即AGV實(shí)時(shí)的位置(x,y)和轉(zhuǎn)角α;速度指的是AGV的直行速度vagv和轉(zhuǎn)向角速度ω。ROS里程計(jì)為地圖構(gòu)建算法提供數(shù)據(jù)依據(jù),并且在后期的自主定位導(dǎo)航算法中,為車(chē)體基座坐標(biāo)系和地圖坐標(biāo)系轉(zhuǎn)換搭建了一個(gè)橋梁。
3.2.1 ROS規(guī)劃端的功能模塊設(shè)計(jì)
ROS規(guī)劃端進(jìn)行AGV的地圖構(gòu)建、自主定位、路徑規(guī)劃、路徑跟蹤、自主導(dǎo)航方案設(shè)計(jì),這五大功能的實(shí)現(xiàn)需要以AGV的URDF(unified robot description format)模型為前提。
URDF是ROS中機(jī)器人模型的統(tǒng)一描述格式[9]。為了給AGV的地圖構(gòu)建、自主定位、路徑規(guī)劃、路徑跟蹤、自主導(dǎo)航提供TF坐標(biāo)變換所需要的底盤(pán)各部件之間的坐標(biāo)變換關(guān)系,所以需要?jiǎng)?chuàng)建AGV的URDF模型。根據(jù)AGV硬件架構(gòu)設(shè)計(jì)其URDF模型如圖7所示。
紅色軸、綠色軸、藍(lán)色軸分別代表以車(chē)體中心為參考點(diǎn)車(chē)體坐標(biāo)系的X軸、Y軸、Z軸圖7 AGV的URDF模型Fig.7 URDF model of AGV
3.2.2 AGV地圖構(gòu)建方案
ROS中開(kāi)源地圖構(gòu)建算法使用最廣泛的是同步定位與建圖(simultaneous localization and mapping,SLAM),SLAM主要用于解決機(jī)器人在未知環(huán)境運(yùn)動(dòng)時(shí)的定位與地圖構(gòu)建問(wèn)題[10]。地圖構(gòu)建方案采用Google的cartographer SLAM算法。該算法可以生成分辨率為0.05 m的二維柵格地圖,實(shí)現(xiàn)實(shí)時(shí)室內(nèi)地圖構(gòu)建。由于其采用強(qiáng)大的圖優(yōu)化算法并且具備回環(huán)檢測(cè),可以消除積累誤差,因此建圖效果比較穩(wěn)定,成本較低的雷達(dá)也能跑出不錯(cuò)的效果[11]。
3.2.3 AGV定位方案
定位方案采用AMCL自適應(yīng)蒙特卡洛定位算法[12],該算法實(shí)現(xiàn)的是一種自主移動(dòng)機(jī)器人在二維環(huán)境下基于概率的定位系統(tǒng)。它使用KLD方法采樣來(lái)更新粒子[13],機(jī)器人在已知的地圖環(huán)境中進(jìn)行位姿跟蹤?;赗OS平臺(tái)的AMCL,充分利用了ROS開(kāi)源平臺(tái)的優(yōu)勢(shì),有利于AGV自主定位導(dǎo)航的加速實(shí)現(xiàn)。
AMCL可以通過(guò)編碼器等傳感器獲取外部環(huán)境信息并傳遞給里程計(jì),所以必須要存在一個(gè)TF變換樹(shù)來(lái)完成從獲取傳感器數(shù)據(jù)信息的基座坐標(biāo)系到里程計(jì)坐標(biāo)系的轉(zhuǎn)換[14]。TF變換示意圖如圖8所示。在AGV運(yùn)動(dòng)過(guò)程中,基于地圖的AMCL定位將/base_link基座坐標(biāo)系利用航跡推演法轉(zhuǎn)換到/Odom里程計(jì)坐標(biāo)系,并且通過(guò)里程漂移數(shù)據(jù)可以得到/Odom到/map的TF變換關(guān)系,從而完成/map_frame地圖坐標(biāo)系和/base_link坐標(biāo)系之間的轉(zhuǎn)換,進(jìn)而可對(duì)AGV的位姿進(jìn)行估算。
圖8 AMCL定位中的TF變換Fig.8 TF transformation in AMCL location
3.2.4 AGV路徑規(guī)劃方案
AGV路徑規(guī)劃方案采用ROS中的move_base路徑規(guī)劃方案,move_base包括全局路徑規(guī)劃器global planner、局部路徑規(guī)劃器local planner、行為執(zhí)行器behavior recovery等模塊[15]。全局路徑規(guī)劃采用waypoint-global-planner算法[16],該算法可根據(jù)用戶對(duì)導(dǎo)航路徑走向的要求人為地在地圖上點(diǎn)擊多個(gè)路徑點(diǎn),自動(dòng)連接成全局導(dǎo)航路徑。該算法與A*尋路算法相比,算法復(fù)雜度較低,操作簡(jiǎn)便,路徑更換簡(jiǎn)單高效,路徑規(guī)劃的結(jié)果更貼近用戶的意愿。
3.2.5 AGV路徑跟蹤實(shí)現(xiàn)方案
路徑跟蹤的實(shí)現(xiàn)基于局部路徑規(guī)劃器。局部路徑規(guī)劃是經(jīng)過(guò)全局路徑規(guī)劃器規(guī)劃出一條大致可行的路線之后,結(jié)合局部環(huán)境的障礙物情況動(dòng)態(tài)地進(jìn)行躲避障礙物方案的規(guī)劃。采用ROS中默認(rèn)的Dynamic Windows Approach動(dòng)態(tài)窗口法局部路徑規(guī)劃器[17]。路徑跟蹤的具體實(shí)現(xiàn)算法如下。
(1)將全局路徑規(guī)劃器輸出的全局路徑點(diǎn)通過(guò)TF坐標(biāo)系變換關(guān)系轉(zhuǎn)換到Odom局部地圖坐標(biāo)系下。
(2)根據(jù)局部地圖大小截取全局路徑,獲得局部路徑。
(3)在AGV的速度約束范圍內(nèi),采樣若干組線速度和角速度。
(4)依據(jù)AGV運(yùn)動(dòng)學(xué)模型與航跡推演原理,對(duì)各組采樣速度進(jìn)行時(shí)長(zhǎng)為sim_time的軌跡模擬。
(5)由(4)可得若干條模擬軌跡,依據(jù)評(píng)價(jià)函數(shù)尋找最優(yōu)軌跡,從而得到對(duì)應(yīng)的最優(yōu)速度。評(píng)價(jià)函數(shù)包括終點(diǎn)處的角度偏差是否滿足閾值要求、AGV在模擬軌跡上與障礙物的最近距離條件、當(dāng)前軌跡的速度大小是否滿足速度閾值要求,若以上三個(gè)條件都滿足,則尋得的軌跡便是最優(yōu)軌跡,對(duì)應(yīng)的速度為最佳采樣速度。
(6)將最佳采樣速度下發(fā)給AGV底盤(pán),控制AGV沿最優(yōu)模擬軌跡運(yùn)動(dòng)。
(7)判斷AGV是否到達(dá)全局路徑目標(biāo)點(diǎn),到達(dá)目標(biāo)點(diǎn)則路徑跟蹤結(jié)束;未到達(dá),則返回(2),截取下一段局部路徑,繼續(xù)執(zhí)行路徑跟蹤步驟。
3.2.6 AGV自主導(dǎo)航功能實(shí)現(xiàn)方案
在AGV實(shí)現(xiàn)地圖構(gòu)建、自主定位、路徑規(guī)劃、路徑跟蹤等子功能的基礎(chǔ)上,結(jié)合ROS端與底盤(pán)驅(qū)動(dòng)的通信機(jī)制,即可實(shí)現(xiàn)AGV的自主定位導(dǎo)航。ROS與底盤(pán)驅(qū)動(dòng)節(jié)點(diǎn)具體的通信過(guò)程如圖9所示。ROS將控制AGV運(yùn)動(dòng)的指令封裝為ROS消息Twist,該消息發(fā)送到/cmd_vel速度命令話題上,被底盤(pán)驅(qū)動(dòng)控制節(jié)點(diǎn)監(jiān)聽(tīng),底盤(pán)驅(qū)動(dòng)節(jié)點(diǎn)實(shí)時(shí)訂閱/cmd_vel話題上的Twist消息,通過(guò)通信協(xié)議解析成驅(qū)動(dòng)器能夠正確接收的數(shù)據(jù)和指令,從而控制AGV運(yùn)動(dòng)。
圖9 ROS與底盤(pán)驅(qū)動(dòng)節(jié)點(diǎn)的通信機(jī)制Fig.9 Communication mechanism between ROS and chassis driver nodes
AGV的網(wǎng)絡(luò)人機(jī)交互端采用rosbridge通信機(jī)制。rosbridge是一個(gè)Web瀏覽器和ROS之間進(jìn)行數(shù)據(jù)交互的中間件,能夠?qū)崿F(xiàn)數(shù)據(jù)的轉(zhuǎn)發(fā)[18]。rosbridge允許使用HTML5 Web sockets進(jìn)行ROS的消息傳送,由此便可以順利接入已有的基于ROS框架的AGV系統(tǒng)中。對(duì)于rosbridge的應(yīng)用框架如圖10所示,AGV在ROS層面的功能應(yīng)用通過(guò)rosbridge橋梁采用HTML5 Web sockets進(jìn)行消息傳送,下位機(jī)接收到ROS的消息后進(jìn)行相應(yīng)的命令解析處理。
圖10 rosbridge的應(yīng)用框架Fig.10 Framework of rosbridge’s application
借助rosbridge進(jìn)行網(wǎng)絡(luò)交互平臺(tái)設(shè)計(jì),與直接采用HTML、PHP、CSS等網(wǎng)絡(luò)編程語(yǔ)言進(jìn)行Web 網(wǎng)頁(yè)設(shè)計(jì)相比,該方法充分利用了ROS平臺(tái)的優(yōu)勢(shì),降低了網(wǎng)頁(yè)界面的編程難度,提高了開(kāi)發(fā)效率,縮短了AGV系統(tǒng)開(kāi)發(fā)的周期。
為測(cè)試本文設(shè)計(jì)的AGV系統(tǒng)的導(dǎo)航性能,以實(shí)驗(yàn)室為測(cè)試環(huán)境,進(jìn)行各個(gè)功能模塊的測(cè)試。
4.1.1 Cartographer地圖構(gòu)建
Cartographer地圖構(gòu)建過(guò)程及結(jié)果如圖11所示,首先通過(guò)錄制里程計(jì)、激光掃描儀、慣性測(cè)量單元等傳感器的數(shù)據(jù)包rosbag,當(dāng)AGV熟悉環(huán)境之后,傳感器數(shù)據(jù)就存放到ROS的bag包里。然后再通過(guò)回放傳感器數(shù)據(jù)作為Cartographer算法數(shù)據(jù)輸入,在算法各模塊被啟動(dòng)后開(kāi)始建圖。地圖構(gòu)建完成后通過(guò)地圖服務(wù)程序包map_server將其保存為.pgm格式的柵格地圖。
圖11 Cartographer構(gòu)建實(shí)驗(yàn)室柵格地圖Fig.11 Laboratory grid map building based on Cartographer
4.1.2 路徑規(guī)劃
路徑規(guī)劃功能包將Cartographer構(gòu)建的柵格地圖作為輸入數(shù)據(jù),首先開(kāi)啟ROS的可視化工具RVIZ,從中打開(kāi)導(dǎo)航配置文件,然后在RVIZ中初始化AGV當(dāng)前位置,鼠標(biāo)在地圖上點(diǎn)擊多個(gè)路徑點(diǎn)如圖12(a)所示,在全局路徑規(guī)劃器的作用下,會(huì)將這多個(gè)路徑點(diǎn)連線成全局路徑,如圖12(b)中的綠色路徑軌跡線所示。
圖12 路徑規(guī)劃測(cè)試Fig.12 Path planning result
4.1.3 路徑跟蹤
根據(jù)路徑規(guī)劃器可得到一條全局路徑,局部路徑規(guī)劃器依據(jù)路徑跟蹤步驟,對(duì)全局路徑分段完成跟蹤。如圖13所示為AGV跟蹤一條完整全局路徑時(shí)截取的兩個(gè)位置點(diǎn)跟蹤效果。
圖13 AGV路徑跟蹤測(cè)試Fig.13 AGV path tracking test
4.1.4 自主導(dǎo)航
局部路徑規(guī)劃器結(jié)合全局路徑、地圖數(shù)據(jù)和傳感器實(shí)時(shí)反饋的障礙物層costmap信息,規(guī)劃出AGV在局部運(yùn)動(dòng)時(shí)所需的實(shí)時(shí)速度和角度,通過(guò)話題/cmd_vel發(fā)送給AGV運(yùn)動(dòng)底盤(pán)執(zhí)行,從而實(shí)現(xiàn)動(dòng)態(tài)的自主避障導(dǎo)航。AGV在室內(nèi)運(yùn)輸貨物自主移動(dòng)效果如圖14所示。
圖14 自主導(dǎo)航效果圖Fig.14 Diagram of autonomous navigation result
4.1.5 網(wǎng)頁(yè)交互界面
通過(guò)在電腦、平板、手機(jī)等電子產(chǎn)品的瀏覽器中輸入工業(yè)控制計(jì)算機(jī)的網(wǎng)絡(luò)IP地址,即可訪問(wèn)AGV網(wǎng)頁(yè)交互界面。網(wǎng)頁(yè)交互端的操作舉例如圖15所示。
圖15 網(wǎng)頁(yè)人機(jī)交互界面操作舉例Fig.15 Examples of human-computer interface operation in web page
系統(tǒng)導(dǎo)航性能測(cè)試結(jié)果如圖16所示。路徑對(duì)比圖表明,直線跟蹤誤差在可接受范圍內(nèi),路徑中四個(gè)轉(zhuǎn)彎處的軌跡跟蹤誤差稍大,這是由單舵輪自身存在的機(jī)械限位所致。通過(guò)對(duì)期望路徑和實(shí)際路徑等距采樣了170個(gè)路徑點(diǎn),以對(duì)應(yīng)兩個(gè)路徑點(diǎn)的歐氏距離作為路徑跟蹤誤差,計(jì)算得到的跟蹤誤差如圖17所示。轉(zhuǎn)彎處的最大誤差不超過(guò)0.04 m,該誤差在室內(nèi)運(yùn)輸?shù)膽?yīng)用環(huán)境中是可以接受的。
圖16 路徑跟蹤對(duì)比圖Fig.16 Diagram of path tracing comparison
圖17 采樣點(diǎn)路徑跟蹤誤差值Fig.17 Error value of path tracking for sampling point
(1)設(shè)計(jì)的基于ROS的室內(nèi)運(yùn)輸AGV系統(tǒng),通過(guò)在搭建的單舵輪AGV硬件平臺(tái)上進(jìn)行地圖構(gòu)建、自主定位、路徑規(guī)劃、路徑跟蹤、自主導(dǎo)航五大功能測(cè)試,結(jié)果表明該系統(tǒng)性能穩(wěn)定,可控性、靈活性與磁條導(dǎo)引、激光反射板導(dǎo)引、光學(xué)導(dǎo)引等方式相比較好。路徑規(guī)劃完全依賴上位機(jī)的規(guī)劃算法,可根據(jù)用戶需求和環(huán)境情況在ROS端隨時(shí)進(jìn)行修改,并不會(huì)受到固定路徑更改困難、替換代價(jià)高、環(huán)境限制等問(wèn)題的影響。另外,友好便捷的網(wǎng)頁(yè)人機(jī)交互界面有利于用戶在云端與AGV進(jìn)行遠(yuǎn)程交互。研究表明,基于ROS的室內(nèi)運(yùn)輸AGV系統(tǒng)實(shí)現(xiàn)了自主導(dǎo)航功能,能夠有效地完成室內(nèi)運(yùn)輸任務(wù),具有一定的現(xiàn)實(shí)意義和工程應(yīng)用價(jià)值。
(2)選取單舵輪輪系結(jié)構(gòu)作為系統(tǒng)測(cè)試平臺(tái),如果采用其他輪系結(jié)構(gòu),本文所設(shè)計(jì)的AGV系統(tǒng)仍然適用,只需要依據(jù)所選輪系結(jié)構(gòu)修改運(yùn)動(dòng)學(xué)模型部分即可。
(3)為了不斷地滿足現(xiàn)代智能化工廠的需求,AGV的導(dǎo)引技術(shù)發(fā)展趨勢(shì)必然是恰當(dāng)融合多種導(dǎo)引技術(shù)的優(yōu)勢(shì),共同提高導(dǎo)引精度和系統(tǒng)可靠性。