(南京郵電大學 江蘇 210003)
近年來,快遞行業發展迅猛。末端派送,逐漸成為行業新的角力點。目前末端派送主要是依靠快遞員本身的業務能力和習慣對快件裝車、派送,因此會出現派件時難以取出隨意堆放的快件、由于忘記某一派件區域快件數量漏派后返回增加派送時間、新快遞員不熟悉路況增加派送難度等,這些情況不僅影響派件時效性,更可能會造成包裹損壞,影響服務質量;另外,隨著信息化發展,快遞員派件過程中需要頻繁掏手機操作派件APP,無疑加重了派送員的派件壓力。為了解決這些問題,本文設計并開發了基于Android 平臺的智能派件系統。該系統以APP 的形式運行于快遞員的Android 手機,符合智慧物流[1]的發展趨勢,提高了末端派送環節的效率,有效實現降本增效。
在功能分析階段,筆者于2020 年5 月24 日到達南京圓通棲霞區分公司就快遞流程、派件軟件使用情況等幾方面內容開展調研。總結出在快遞派送流程中需要以下功能:
快遞員在快遞分揀時打開軟件,軟件自動根據收件人所管轄的片區從服務器上獲取需派送快件列表。列表信息包含的數據項要滿足快遞員正常派件的全部需求,軟件需要提供對這些信息的便捷訪問,以及語音播報。通過獲取快件的地理信息和不同的派送類別,智能排列。快件生成快件上車規劃圖,快遞員可以根據該圖完成上車排序。
通過獲取快件列表中不同快件的地理位置和不同場景,根據AI*算法智能生成最短派送路徑。將此最短派送路徑標注到百度地圖上,快遞員可以在地圖上清晰看到自己的派送路徑,可以參考此派送路徑進行派送。在派送過程中,根據正在派送快件的地址進行實時導航。
智能語音是解放快遞員雙手的重要手段。在數據采集的過程中,可以通過語音在特定的地點采集所需要的信息。而在派件過程中可以通過語音交互獲得目前的業務信息,包括下一點的距離、時間、方位等,并可通過語音進行撥號與發送短信的操作,而在簽收的過程中也可以通過語音對快件簽收狀態進行標注。
該應用基于Android 平臺,使用百度地圖API 實現派送路徑的可視化和實時導航,使用科大訊飛API 實現不同場景下的智能語音交互和喚醒。具體通過客戶端和用戶進行交互,實時響應用戶的請求。
客戶端:主要是基于Java 語言和Android 平臺進行開發,采用Android +科大訊飛API+百度地圖API 實現信息的可視化與語音交互的智能化。用戶可以通過語音指令,例如規劃路徑、開始導航等獲得自己的派送路徑和實時導航服務。
服務端:服務器借助云計算技術,部署在云平臺上。主要包括web service 服務器[2]、快件信息數據庫等主要模塊,提供強勁的查詢處理能力和更快的服務器響應能力。主要采用MySQL+PHP 進行服務器搭建,對于用戶信息的存儲與分析。
開發環境:基于Android 平臺的智能派件系統以Android Studio作為開發平臺,其具有響應速度快、UI 更漂亮、強大的調試功能等優點[3]。
根據需求分析和系統的技術路線,本系統分為云服務器、客戶端主體和客戶端語音模塊,系統框架如圖1 所示。
快件列表模塊:系統初始化時,會向服務器發出加載數據的請求。APP 與服務端通信采用HTTP 協議,使用Android 網絡框架OKhttp[4]完成HTTP 協議的相關操作,使用JSON(JavaScript object notation)數據交換格式進行數據交換,使用POST[5]方法向服務端發送請求數據包。通過對JISON 字符串進行解析和匹配,根據不同的關鍵詞獲取到不同的字段,最后封裝成ExpressInfo 對象為一個快件的詳細信息。快件列表詳細展示了需要派送快件的詳細信息,具體如圖2 所示。

圖1 系統框架圖

圖2 快遞列表模塊
快件列表包含一次派件的所有快件,已根據派件路徑排序完畢,點擊每個列表項可以查看用戶詳細信息,撥打電話,發送短信等,點擊導航可以查看到該派送點的導航路徑。長按列表項可以顯示簽收習慣,讓快遞員可以手動補充簽收信息。點擊導航按鈕可以調用百度地圖導航接口,點擊規劃可以獲取規劃的路徑。
上車排序模塊:通過對快件列表中快件不同的派送類型和派送地址進行分類和規劃,得出快件上車順序和車內堆放位置,然后可視化的顯示在客戶端。快遞員可以根據該圖完成上車排序,通過點擊主界面上車排序按鈕獲得此功能。對快件列表里面的快件根據不同派送類別分為四類:(1)驛站代收;(2)投快遞柜;(3)定點自取;(4)送貨入戶。對于送貨入戶這類快遞,再根據其不同的派送地點進行分類。
路徑規劃和實時導航模塊:路徑規劃功能主要是幫助快遞員對所需派件的路徑進行規劃,得出一條最短的派送路徑。系統首先會獲取到快件列表,將快件的派件地址轉換為經緯度,然后采用A Star[6]算法進行規劃路徑,最后調用百度地圖API 將規劃出的派送順序和路徑標注在地圖上。
A Star 算法引入了啟發式函數和預估代價,算法的核心部分在于估計函數的設計,其估價函數如式1 所示:

本方案根據派件路徑規劃的實際問題設 h=restNUm?minDis,以此啟發函數控制A Star 的行為,提升算法的效率。本文設計實現的A*算法具體步驟如下所示。
步驟(1):創建兩個名稱為Open_List 和Close_List 的列表,并將起點放入Open_List 列表中。
步驟(2):檢測Open_List 列表是否為空。如果為空,則跳轉至步驟9;否則繼續進行步驟(3)。
步驟(3):找出Open_List 列表中F 的值最小的節點,并將其移入Close_List 列表中。
步驟(4):檢測終點是否已經被加入Close_List 中。如果是,則跳轉至步驟(9);否則繼續進行步驟(5)。
步驟(5):找出與當前節點相鄰的所有節點,對相鄰節點進行逐一檢測,判斷其是否已被加入Close_List 列表中。如果是,則跳轉至步驟(2);否則繼續進行步驟(6)。
步驟(6):檢測相鄰節點是否在Open_List 列表中。如果是,則繼續進行步驟(7);否則跳轉至步驟(8)。
步驟(7):用當前節點的G 值重新檢測相鄰節點,如果從當前節點到相鄰節點的G 值更小,則更新相鄰節點的F 和G 值并將相鄰節點的父節點設置為當前節點;然后進行步驟(2)。
步驟(8):把相鄰節點加入Open_List 列表中,把當前節點作為相鄰節點的父節點并計算到相鄰節點的G 和F 值;然后進行步驟(2)。
步驟(9):算法運行結束。
算法的運行流程如圖3 所示。
智能語音交互模塊:智能語音交互是本系統最重要的功能,也是連接其他模塊的重要手段。在派件過程中同樣可以通過語音播報獲得目前的業務信息,包括下一點的距離、時間、方位等,并可通過語音指令進行撥號與發送短信的操作,在簽收的過程中也可以通過語音對快件簽收狀態進行標注。語音識別全局開啟,通過撥打電話,幫我排序,我已到達,開始派件,更換地點,簽收快遞,開始導航,規劃路徑八個語音指令實現對應的操作。
系統采用的是科大訊飛的語音識別服務,下載集成科大訊飛的SDK 至本系統,在工程 AndroidManifest.xml 文件中添加相應的用戶權限,之后在程序入口Application根據應用ID初始化SpeechUtility,初始化語音識別引擎并完成參數設置,最后開啟語音識別。
將完成的手機應用軟件成功安裝,經反復測試,可以通過系統具備的快件信息可視化、上車排序、路徑規劃、實時導航、語音交互等功能,幫助快遞派送人員更好的執行派件任務,降低其勞動強度,提高末端派送效率。

圖3 A Star 算法流程圖