霍彥希 張誠誠 董振宇 陳偉 張志捷
摘 要 為了解決快遞行業(yè)“最后一公里”耗時(shí)耗力難題,文章介紹了一種基于單目視覺SLAM的無人快遞車的設(shè)計(jì)方案,以O(shè)penCR為控制核心,以無線WiFi技術(shù)為信息收發(fā)媒介,以單目SLAM技術(shù)為同時(shí)定位與地圖構(gòu)建基礎(chǔ),利用移動(dòng)機(jī)器人導(dǎo)航技術(shù),使無人快遞車與快遞員和收件人友好交互,完成路徑規(guī)劃并自主導(dǎo)航寄送快遞,實(shí)現(xiàn)高效便捷寄收快遞,具有成本低廉、操作簡單、簡潔高效等特點(diǎn)。
關(guān)鍵詞 同時(shí)定位與地圖構(gòu)建;移動(dòng)機(jī)器人導(dǎo)航;路徑規(guī)劃
中圖分類號(hào) TP3 文獻(xiàn)標(biāo)識(shí)碼 A 文章編號(hào) 1674-6708(2019)232-0117-02
一種基于單目SLAM的無人快遞車能自主導(dǎo)航,將快遞員投遞到快遞柜的物品送至目的地,并在沿途能主動(dòng)避障并重新規(guī)劃,這樣就大大提高了快遞員的效率,也給收件人提供了便利。
1 無人快遞車設(shè)計(jì)方案
根據(jù)功能需求,需要設(shè)計(jì)服務(wù)端模塊,人機(jī)交互模塊,構(gòu)圖和導(dǎo)航模塊,底層運(yùn)動(dòng)控制模塊。對(duì)于PC及移動(dòng)終端,其與OpenCR開發(fā)板和服務(wù)端選擇使用無線通信。OpenCR開發(fā)板與傳感器和里程計(jì)模塊選擇對(duì)應(yīng)的USB接口或者串口。無人快遞車可完成以下功能:快遞員與無人快遞車進(jìn)行交互,將快遞寄存在無人快遞車的快遞柜中,無人快遞車根據(jù)物流信息從服務(wù)端獲取收件人地址,自動(dòng)導(dǎo)航至目的地址附近,將開柜二維碼加密后發(fā)送至收件人手機(jī)App并發(fā)送驗(yàn)收提醒。收件人憑借二維碼開柜提取貨物確認(rèn)簽收。使用分模塊設(shè)計(jì),將敏感信息存儲(chǔ)在服務(wù)端,使敏感信息泄露可能性降低,簡化了快遞員操作流程,保護(hù)了收件人的隱私。
2 構(gòu)圖和導(dǎo)航模塊
2.1 地圖構(gòu)建模塊
快遞員在首次使用無人快遞車前操控?zé)o人快遞車在工作區(qū)域進(jìn)行地圖構(gòu)建。無人快遞車在構(gòu)圖過程中啟動(dòng)激光雷達(dá)掃描外部環(huán)境,標(biāo)記行駛過程中的障礙物體,將地圖保存在內(nèi)存中。
基本工作原理為,激光掃描模塊利用Gmapping算法中使用的一種高效的Rao-Blackwellized粒子濾波將收取到的激光測距數(shù)據(jù)最終轉(zhuǎn)換為柵格地圖。粒子濾波要經(jīng)歷初始化、轉(zhuǎn)移、決策、重采樣、濾波、地圖生成6個(gè)階段。
在構(gòu)圖過程中采用激光雷達(dá)進(jìn)行閉環(huán)檢測。因?yàn)榈缆穲鼍氨容^復(fù)雜,因此地圖構(gòu)建過程中選擇車流量較少的時(shí)候進(jìn)行地圖構(gòu)建,減少干擾因素,提高激光掃描匹配的成功率和準(zhǔn)確度。匹配算法采用Olson算法。SLAM構(gòu)建的靜態(tài)環(huán)境地圖將作為無人快遞車路徑規(guī)劃和導(dǎo)航過程中的靜態(tài)基準(zhǔn)地圖。無人快遞車在導(dǎo)航過程將根據(jù)傳感器數(shù)據(jù)在靜態(tài)基準(zhǔn)地圖的基礎(chǔ)上不斷更新動(dòng)態(tài)地圖。如果遇到道路堵塞時(shí)將暫時(shí)更新靜態(tài)的地圖并覆蓋原先的靜態(tài)基準(zhǔn)地圖。
2.2 導(dǎo)航與避障模塊
無人快遞車根據(jù)激光雷達(dá)構(gòu)建的靜態(tài)地圖作為路徑規(guī)劃的基礎(chǔ)。根據(jù)從服務(wù)端獲取的當(dāng)前收件人地址,無人快遞車將其標(biāo)記在靜態(tài)地圖中,采用ROS中的Gmapping算法生成最佳導(dǎo)航路徑,并沿此路徑寄送快遞。在導(dǎo)航過程中啟用激光雷達(dá)不斷更新地圖,當(dāng)遇到移動(dòng)速度較快的動(dòng)態(tài)物體時(shí),無人快遞車根據(jù)單目相機(jī)多次掃描的結(jié)果預(yù)判是否有可能與其相撞。無人快遞車根據(jù)運(yùn)動(dòng)物體的運(yùn)動(dòng)軌跡重新規(guī)劃當(dāng)前導(dǎo)航路徑進(jìn)行主動(dòng)避讓,同時(shí)不斷測試當(dāng)前物體的運(yùn)動(dòng)軌跡,一旦無法避讓,則立即停止直到運(yùn)動(dòng)物體原理沖突路徑后再啟動(dòng)導(dǎo)航模塊。
當(dāng)無人快遞車檢測到道路阻塞之后,無人快遞車將利用傳感器傳回的數(shù)據(jù)更新局部地圖,然后在更新后的地圖的基礎(chǔ)上重新規(guī)劃一條可行路徑。當(dāng)所有路徑均不可行時(shí),無人快遞車將退出此次導(dǎo)航,選擇下一收貨人地址進(jìn)行配送。
2.3 里程計(jì)模塊
無人快遞車的里程計(jì)基于OpenCV中特征點(diǎn)的提取和匹配。采用SIFT特征點(diǎn)算法,使用組和層的結(jié)構(gòu)在尺度空間上構(gòu)建高斯差分金字塔;然后探索上一步建立的高斯尺度空間;通過高斯差分來識(shí)別潛在的對(duì)尺度和旋轉(zhuǎn)不變的特征點(diǎn)進(jìn)而實(shí)現(xiàn)極值檢測及特征點(diǎn)的定位;基于圖像局部的梯度方向,分配給每個(gè)關(guān)鍵點(diǎn)位置一個(gè)或多個(gè)方向?qū)μ卣鞣较蜻M(jìn)行賦值。通過上述步驟找到的SIFT特征點(diǎn)的位置、方向、尺度信息,最后使用一組向量來描述特征點(diǎn)及其周圍鄰域像素的信息最終生成特征描述子。特征點(diǎn)的匹配分為3個(gè)步驟:提取圖像中的關(guān)鍵點(diǎn),根據(jù)得到的關(guān)鍵點(diǎn)的位置計(jì)算特征點(diǎn)的描述子,根據(jù)特征點(diǎn)的描述子進(jìn)行匹配。
3 軟件程序設(shè)計(jì)
3.1 寄送模塊
快遞員將貨物寄存在無人快遞車的快遞柜時(shí),無人快遞車把快遞柜門的編號(hào)發(fā)送到服務(wù)端,服務(wù)端生成一個(gè)二維碼發(fā)送到收件人的手機(jī)App,并把二維碼和對(duì)應(yīng)快遞柜門的編號(hào)的對(duì)應(yīng)關(guān)系存儲(chǔ)起來,快遞員將所有的貨物寄存結(jié)束后設(shè)定無人快遞車開始寄送快遞。
本模塊設(shè)計(jì)采用C++語言編寫,在main()函數(shù)中初始化變量。然后進(jìn)入等待while(true)循環(huán),依次經(jīng)過等待輸入指令函數(shù)、確認(rèn)貨物入柜函數(shù)、生成二維碼并發(fā)送提醒函數(shù)。這個(gè)三函數(shù)在while(true)中循環(huán),當(dāng)快遞員完成投遞并輸入開始工作指令后,無人快遞車將開始進(jìn)入自動(dòng)導(dǎo)航寄送狀態(tài)。無人快遞車提取當(dāng)前所送貨物的目的地址并在靜態(tài)地圖上標(biāo)注,自動(dòng)規(guī)劃當(dāng)前位置到目的地址的最佳路徑并啟動(dòng)自動(dòng)導(dǎo)航,在寄送過程中通過激光距離傳感器模塊和視覺傳感器模塊不斷更新地圖并優(yōu)化導(dǎo)航路徑。
3.2 送達(dá)提示模塊
車輛每隔1秒檢測自身的位置,當(dāng)檢測到目的地與自身位置的距離小于預(yù)先設(shè)定的閾值時(shí),執(zhí)行送達(dá)提示函數(shù),無人快遞車給收件人發(fā)送二維碼和驗(yàn)收提醒消息,收件人憑借二維碼打開相應(yīng)的快遞柜,提取貨物并關(guān)閉快遞柜完成取貨操作。無人快遞車開始自主導(dǎo)航至下一收件人地址,直到所有快遞寄送完成后返回快遞員預(yù)先指定地址。
本模塊包括定位查詢函數(shù)和驗(yàn)收提醒函數(shù)。在寄送狀態(tài)中定位查詢函數(shù)負(fù)責(zé)查詢當(dāng)前位置與目標(biāo)位置的距離是否小于設(shè)定閾值,當(dāng)檢測到當(dāng)前位置與目標(biāo)位置的距離小于設(shè)定閾值時(shí),驗(yàn)收提醒函數(shù)利用無人快遞車中內(nèi)置的無線網(wǎng)絡(luò)向服務(wù)端驗(yàn)收提醒函數(shù)API接口發(fā)送請(qǐng)求,服務(wù)端將驗(yàn)收消息推送到對(duì)應(yīng)收件人手機(jī)App中。收件人憑自己手機(jī)上的二維碼在無人快遞車的二維碼掃描儀前掃描,無人快遞車根據(jù)二維碼的信息向服務(wù)端發(fā)送請(qǐng)求獲取對(duì)應(yīng)快遞柜門的編號(hào)打開對(duì)應(yīng)的快遞柜門,收件人完成取貨后無人快遞車將對(duì)未送的快遞進(jìn)行排序,選擇距離當(dāng)前位置最近的收件人地址進(jìn)行派送,并開始重新規(guī)劃路徑。
參考文獻(xiàn)
[1]鄧明華,陳云紅,王晶晶.基于單目視覺的移動(dòng)機(jī)器人SLAM系統(tǒng)構(gòu)建[J].南方農(nóng)機(jī),2019(1):20-21.
[2]鄒謙.基于圖優(yōu)化SLAM的移動(dòng)機(jī)器人導(dǎo)航方法研究[D].哈爾濱:哈爾濱工業(yè)大學(xué),2017.
[3]楊雪夢,姚敏茹,曹凱.移動(dòng)機(jī)器人SLAM關(guān)鍵問題和解決方法綜述[J].計(jì)算機(jī)系統(tǒng)應(yīng)用,2018,27(7):1-10.
[4]楊芳.基于OpenCV的雙目視覺系統(tǒng)目標(biāo)定位與測距方法研究[D].銀川:寧夏大學(xué),2018.