張雨晴, 呂 程, 高金鳳
(1 浙江理工大學(xué)信息科學(xué)與工程學(xué)院, 杭州 310018; 2 杭州市水務(wù)集團(tuán)有限公司, 杭州 310009)
隨著科學(xué)技術(shù)的進(jìn)步,機(jī)器人技術(shù)不斷創(chuàng)新,已經(jīng)在餐飲、物流等領(lǐng)域起著重要作用,代替人類從事危險(xiǎn)、重復(fù)和繁瑣的工作。 無接觸配送智能車是一種可以節(jié)省勞動(dòng)力的工具。 然而,當(dāng)前的無接觸配送小車操作繁瑣、功能單一、自動(dòng)化程度不高,尤其是在狹小、擁擠的動(dòng)態(tài)環(huán)境中無法勝任配送工作[1]。
提升智能車的集成程度、運(yùn)動(dòng)路徑精度,規(guī)劃出更合理、時(shí)間更短、平滑性更高和誤差更小的移動(dòng)路徑等問題已成為研究的重點(diǎn)[2]。 本文設(shè)計(jì)了一款基于ROS 操作系統(tǒng)的多功能無人配送智能車,該智能車可通過遙控、語音導(dǎo)航和運(yùn)動(dòng)跟隨3 種方式控制,以實(shí)現(xiàn)物資的配送。
遠(yuǎn)程控制設(shè)備和無人配送智能車的連接示意圖如圖1 所示。 該智能車基于ROS 機(jī)器人操作系統(tǒng),包括遠(yuǎn)程控制設(shè)備、配送小車和無線網(wǎng)絡(luò)系統(tǒng),其中配送小車和遠(yuǎn)程遙控設(shè)備需處于同一無線局域網(wǎng)中。 該智能車包括儲(chǔ)物筐和移動(dòng)底盤,移動(dòng)底盤采用3 層平臺結(jié)構(gòu),移動(dòng)底盤的上層設(shè)有深度攝像機(jī)、麥克風(fēng)語音裝置、WIFI 模塊和激光雷達(dá)導(dǎo)航避障裝置;中層設(shè)有單片機(jī)驅(qū)動(dòng)板和上位機(jī);下層設(shè)有電源擴(kuò)展板和麥克納姆輪。 上位機(jī)控制激光雷達(dá)導(dǎo)航避障裝置和深度攝像機(jī)。 通過遙控、語音導(dǎo)航和運(yùn)動(dòng)跟隨3 種方式,控制智能車進(jìn)行配送任務(wù)。
圖1 遠(yuǎn)程控制設(shè)備與無人配送智能車連接示意圖Fig. 1 Connection diagram of remote control and unmanned intelligent delivery vehicle
智能車平臺總體架構(gòu)圖如圖2 所示。 該智能車平臺的總體架構(gòu)由軟件控制系統(tǒng)層、硬件層和驅(qū)動(dòng)層3 部分組成。 硬件層包括慣性測量單元、深度攝像機(jī)、激光雷達(dá)、里程計(jì)和電機(jī)。 思嵐A1 激光雷達(dá)和樂視深度攝像機(jī)將采集到的數(shù)據(jù)直接發(fā)送給上位機(jī),慣性測量單元、里程計(jì)和電機(jī)由下位機(jī)控制。 軟件控制系統(tǒng)層包括能夠?qū)崿F(xiàn)建圖功能的功能包、導(dǎo)航框架和路徑規(guī)劃功能包。
圖2 智能車平臺總體架構(gòu)圖Fig. 2 Overall architecture of intelligent vehicle platform
該智能車控制系統(tǒng)由ROS 機(jī)器人操作系統(tǒng)和STM32 運(yùn)動(dòng)控制器組成。 ROS 機(jī)器人操作系統(tǒng)控制激光雷達(dá)導(dǎo)航避障裝置和深度攝像機(jī),并將處理后的信息實(shí)時(shí)傳輸給同一局域網(wǎng)上的遠(yuǎn)程遙控設(shè)備。 遠(yuǎn)程遙控設(shè)備接收信息后發(fā)送指令給STM32運(yùn)動(dòng)控制器,從而控制小車的運(yùn)動(dòng)[3]。
ROS 機(jī)器人操作系統(tǒng)安裝在PC 上作為上位機(jī),其主要模塊是定位導(dǎo)航模塊。 運(yùn)動(dòng)信息通過上位機(jī)傳送給STM32 下位機(jī),下位機(jī)通過訂閱話題的方式接收并使用 PID ( Proportion Integration Differentiation)算法調(diào)節(jié)電機(jī)的速度,向上位機(jī)傳運(yùn)動(dòng)數(shù)據(jù)和傳感器信息[4]。
該無人配送智能車使用ROS 機(jī)器人操作系統(tǒng)作為平臺, 應(yīng)用 Gmapping SLAM (Simultaneous Localization and Mapping)建圖算法將激光雷達(dá)采集的環(huán)境信息進(jìn)行建圖。 用AMCL(Adaptive Monte Carlo Localization)自適應(yīng)蒙特卡洛定位算法實(shí)現(xiàn)精確定位[5],同時(shí)結(jié)合A?全局路徑規(guī)劃算法和DWA(Dynamic Window Approach)局部路徑規(guī)劃算法,以規(guī)劃出最優(yōu)路徑。 此外,為了提高適用性,該系統(tǒng)還設(shè)計(jì)了跟隨和語音導(dǎo)航功能。
構(gòu)建地圖是實(shí)現(xiàn)智能車定位導(dǎo)航、路徑規(guī)劃和自主移動(dòng)工作的前提條件。 采用SLAM 建圖理論,智能車在未知環(huán)境中移動(dòng),利用脈沖式激光傳感器獲取周圍環(huán)境信息。 傳感器向周圍發(fā)射脈沖信號,接收回波信號,通過計(jì)時(shí)電路計(jì)算激光往返時(shí)間來確定智能車與障礙物的距離,從而構(gòu)建地圖。
該智能車使用開源Gmapping 功能包訂閱里程計(jì)、慣性測量單元和深度信息,同時(shí)完成一些必要的參數(shù)設(shè)置。
定位過程:首先,通過智能車不同位置坐標(biāo)系之間的變換關(guān)系,可以顯示運(yùn)動(dòng)狀態(tài);其次,利用基于擴(kuò)展卡爾曼濾波算法的robot_pose_ekf 算法,輪式里程計(jì)的數(shù)據(jù)和慣性測量單元的信息融合濾波并輸出;最后,通過AMCL 定位框架在已知地圖中進(jìn)行智能車定位,實(shí)現(xiàn)持續(xù)定位跟蹤[6]。
該智能車的語音交互系統(tǒng)由語音喚醒、語音采集、命令詞識別和語音合成等部分組成。 語音識別采用的是開源的科大訊飛公司的語音功能包,能夠?qū)⒉杉降恼Z音轉(zhuǎn)化為文本,通過命令詞識別功能,將語音指令轉(zhuǎn)換為對應(yīng)的地點(diǎn)名稱和坐標(biāo),并發(fā)布到智能車的控制話題中,以實(shí)現(xiàn)準(zhǔn)確到達(dá)目標(biāo)位置的目的。
對針對靜態(tài)地圖使用A?算法可以快速有效地規(guī)劃出全局地圖的最佳路徑,但無法很好應(yīng)對動(dòng)態(tài)環(huán)境[7]。 DWA 算法則能夠使機(jī)器人很好地處理小范圍的動(dòng)態(tài)環(huán)境,避開障礙物,但規(guī)劃出的路徑不一定是最優(yōu)路徑[8]。 因此,本文通過路徑規(guī)劃功能包將A?全局路徑規(guī)劃算法和DWA 局部路徑規(guī)劃算法結(jié)合起來。 在智能車構(gòu)建生成地圖后,首先通過A?算法規(guī)劃出全局最優(yōu)路徑規(guī)劃,讓智能車按照該路徑行駛。 在行駛過程中,如果動(dòng)態(tài)環(huán)境影響到下一個(gè)路徑并導(dǎo)致節(jié)點(diǎn)被占用,就使用DWA 算法規(guī)劃出動(dòng)態(tài)的局部路徑,使智能車?yán)@過障礙物,回到A?規(guī)劃的路徑。
2.4.1 全局路徑規(guī)劃算法改進(jìn)
A?算法結(jié)合了具有全局性特點(diǎn)的Dijkstra 算法和最佳優(yōu)先算法BFS(Best First Search)。 Dijkstra算法被廣泛用于智能車路徑規(guī)劃的全局搜索。 雖然BFS 算法可以減小Dijkstra 算法的搜索范圍,但是規(guī)劃出的路徑不一定是最優(yōu)路徑。 改進(jìn)后的A?算法可以減少傳統(tǒng)的A?算法在路徑規(guī)劃時(shí)會(huì)產(chǎn)生冗余點(diǎn)和拐點(diǎn)的問題。 A?算法示意圖如圖3 所示。
圖3 A?算法示意圖Fig. 3 A ?algorithm diagram
A?算法的評價(jià)函數(shù),式(1):
當(dāng)前點(diǎn)的評價(jià)函數(shù)f(n) 由過去成本函數(shù)g(n)和當(dāng)前成本函數(shù)h(n) 組成,過去成本函數(shù)是起點(diǎn)(x0,y0) 到當(dāng)前點(diǎn)(x1,y1) 的距離,當(dāng)前成本函數(shù)當(dāng)前點(diǎn)(x1,y1) 到目標(biāo)點(diǎn)(x2,y2) 的距離,式(2) 和式(3):
這種算法通過改進(jìn)評價(jià)函數(shù)的計(jì)算方式,降低了算法的計(jì)算量,從而能更加快速有效地生成平滑路徑。當(dāng)h(n) 權(quán)重比過大時(shí),雖然能夠減少尋路的工作量,但是不能規(guī)劃出最佳路徑;而當(dāng)h(n) 權(quán)重比過小時(shí),雖然可以規(guī)劃出最佳路徑,但是工作量較大,通過引入權(quán)重比例系數(shù)改變評價(jià)函數(shù)的權(quán)重比,改善路徑,以及通過節(jié)點(diǎn)優(yōu)化改進(jìn)路徑生成策略。
2.4.2 局部路徑規(guī)劃算法改進(jìn)
本文提出了一種改進(jìn)的動(dòng)態(tài)窗口法,可以有效解決無人配送智能車在局部路徑規(guī)劃時(shí)加速度超出規(guī)定范圍和實(shí)際路徑偏離全局路徑過多之類的問題。 該方法分為兩步:首先對智能車自身的速度空間進(jìn)行動(dòng)力學(xué)約束、運(yùn)動(dòng)學(xué)約束和障礙物約束;其次,對速度空間的數(shù)據(jù)采樣后,利用動(dòng)力學(xué)公式進(jìn)行軌跡推算。 軌跡推算示意圖如圖4 所示。
圖4 軌跡推算示意圖Fig. 4 Schematic diagram of trajectory estimation
在不考慮路況的理想情況下,軌跡推算公式(4)如下:
其中,[xt+dt,yt+dt,θt+dt,]T是t+dt時(shí)刻小車在世界坐標(biāo)系下的位姿,[xt,yt,θt]T是t時(shí)刻小車在世界坐標(biāo)系下的位姿,[dx,dy,dθ]是dt時(shí)間內(nèi)小車在底盤坐標(biāo)系下的理想變化量。
實(shí)際軌跡推算公式中,應(yīng)該考慮誤差對于dt時(shí)間內(nèi)智能車底盤坐標(biāo)的變化量的影響。
誤差補(bǔ)償后的公式(6):
該算法首先通過DWA 算法對速度進(jìn)行動(dòng)力學(xué)約束,把智能車加速度控制在不會(huì)導(dǎo)致輪胎垂直載荷過小的合理范圍內(nèi)。 其次,該算法對軌跡誤差進(jìn)行閉環(huán)的補(bǔ)償,從而減少了實(shí)際路徑和全局路徑的誤差。
本實(shí)驗(yàn)在構(gòu)建的地圖上設(shè)置了多個(gè)目標(biāo)點(diǎn)和巡航路線,通過QT Creator 開發(fā)的遙控軟件或語音指令,用戶可以輕松地遙控智能車。
經(jīng)過將改進(jìn)后的A?算法與傳統(tǒng)的A?算法進(jìn)行仿真實(shí)驗(yàn)對比,不同A?算法尋路時(shí)間對比見表1,表明改進(jìn)的A?算法路徑查找時(shí)間更短。
表1 不同A?算法尋路時(shí)間對比Tab. 1 Comparison of pathfinding time of different A?algorithms
經(jīng)過仿真實(shí)驗(yàn)比較傳統(tǒng)的局部路徑規(guī)劃算法和改進(jìn)后的局部路徑規(guī)劃算法,傳統(tǒng)DWA 和改進(jìn)DWA 精確度對比見表2,優(yōu)化后的DWA 路徑規(guī)劃算法比傳統(tǒng)DWA 路徑規(guī)劃算法的誤差更小。
表2 傳統(tǒng)DWA 和改進(jìn)DWA 精確度對比Tab. 2 Comparison of accuracy between traditional DWA and improved DWA
本文設(shè)計(jì)了一種無人配送智能車,該智能車具備良好的語音交互特性、準(zhǔn)確建圖和精準(zhǔn)定位能力,以及運(yùn)動(dòng)跟隨和精準(zhǔn)配送功能。 在改進(jìn)后的路徑規(guī)劃算法的支持下,該智能車能夠更快更精確地到達(dá)目的地。 未來的研究可以進(jìn)一步優(yōu)化無人配送智能車的性能,以滿足不同應(yīng)用場景的需求。