胡小文,韓劍輝,黃弘毅,韓飛馳,劉宏昕,曹雨琛
(哈爾濱理工大學 計算機科學與技術學院,黑龍江 哈爾濱 150080)
互聯網的發展以及人們生活水平的提高,催生了眾多新型行業,外賣就是最近幾年一個典型的例子。這幾年外賣行業交易額以及用戶規模增長迅速,CNNIC發布的第44次《中國互聯網絡發展狀況統計報告》顯示[1],如圖1所示,截至2019年6月,中國網上外賣用戶規模達4.21億,并且呈現出逐年升高的趨勢。

圖1 2015-2019年外賣行業市場行情
數據顯示,2019年外賣銷售額占餐飲業銷售額的82%。由于外賣的便利性,種類繁多等諸多優點,其在學生群體中受歡迎程度越來越高。雖然受2020年疫情的影響,外賣行業銷售額有所減少,但是仍不影響其在餐飲行業所占的比重。雖然外賣業蓬勃發展,但由此衍生出來的社會問題卻讓人詬病已久。特別是在校園等地,“最后一公里”的配送是一個亟待解決的問題[2]。
本系統實現校園內外賣自動配送,解決校園外賣配送“最后一公里”問題。首先,外賣送餐員將外賣放置到指定的餐盒中,并在車載觸摸屏上輸入取餐信息。待所有餐盒都裝滿外賣或者達到最大等待時間后,利用路徑規劃算法,送餐機器人將餐食依次送到指定地點,并且通過阿里云向用戶發送短信,通知用戶到指定地點取餐,并通過掃描屏幕上的二維碼或者輸入取餐碼來打開餐盒上的鎖,如圖2所示,完成取餐。待所有外賣都被取走之后,機器人回到起點,等待下一次送餐。

圖2 機器人取餐界面
整個系統的硬件框圖如圖3所示。主控板收集GPS和各種傳感器采集到的數據,通過串口發送給上位機;通過顯示界面引導快遞員輸入取餐人信息,并通過4G DTU模塊將部分數據存儲到阿里云RDS數據庫和物聯網平臺;上位機匯總各種傳感器數據以及激光雷達和攝像頭采集到的數據,通過高效的路徑規劃算法,通過串口向主控板發送行駛指令,控制機器人行駛。

圖3 送餐機器人硬件框圖
本文利用PyQt5[3],設計顯示在觸摸屏上的用戶界面。如圖4(a)所示,存界面引導送餐員輸入用戶信息;如圖4(b)所示,取界面引導用戶取餐。

圖4 用戶界面
通過對stm32系列、51系列和arduino系列等各個系列的模塊比較,綜合考慮各種芯片的各項指標之后,決定選用arduino作為主控板。上位機選擇搭載具有較小內核且適用于安全操作的Linux系統,通過串口與各個模塊之間傳輸數據。
本地與云端數據通信部分,通過4G DTU模塊,基于MQTT協議[4],將本地數據傳輸到阿里云物聯網平臺和RDS數據庫實現數據的可視化[5]和云端存儲。
在路徑規劃算法設計方面,傳統的算法主要有廣度優先搜索(BFS)、深度優點搜索(DFS)、Dijkstra算法和A*的算法等。現在主流的路徑規劃算法包括蟻群算法[6]、slam算法[7]、遺傳算法[8]。通過考慮綜合因素,決定選用蟻群算法來進行路徑規劃。
校園內外賣配送是一個很典型的TSP問題,針對不同的使用環境,蟻群算法可以很好地解決這個問題。
蟻群算法(ant colony algorithm)是一種啟發式的隨機搜索算法,模擬螞蟻合作覓食行為的性質來尋找從蟻巢出發經過所有食物源并回到蟻巢的最佳路徑。自然環境下,螞蟻群體出去覓食,當它們第一次遇到分叉路口時,會隨機選擇一個方向,并在行走路線上留下一種特殊的物質——信息素(pheromone)。信息素會隨著時間揮發掉,當第二只螞蟻到這個分叉路口的時候,會選擇信息素濃度較高的路線,這樣就形成了一種正反饋,當行走的螞蟻數量足夠多的時候,最佳的行走路徑上信息素濃度最高。
蟻群算法就是模擬現實中螞蟻覓食的情況,通過不斷更新路徑上的信息素來求解最短路徑,其算法流程如圖5所示。

圖5 蟻群算法流程圖
為了驗證蟻群算法的迭代速度以及迭代準確率等是否適用于校園內的外賣配送路徑規劃,通過實地調研校園內的環境,設置了25個校園內外賣取餐點,根據相對坐標使用python語言生成坐標點并使用tkinter庫實現可視化,效果如圖6(a)所示。

圖6 蟻群算法實驗結果圖
使用蟻群算法,可以得到迭代次數以及最佳距離如表1所示,得到的最佳路徑如圖6(b)所示,完全可以應用于校園內外賣配送的路徑規劃。

表1 蟻群算法迭代次數及其最佳路徑總距離
本文描述了一種校園內外賣自動配送的設計方案,旨在解決外賣配送“最后一公里”問題。本文是以校園內外賣配送為基礎進行設計開發,但其使用范圍不僅僅是校園內,在小區、醫院內同樣適用。但由于本文使用的是蟻群算法來進行路徑規劃,當外賣取餐點較多時,其迭代速度會很慢而且容易陷入局部最優解的情況,這是未來設計過程中需要克服的一大難題。