(南京郵電大學 江蘇 210003)
近年來,快遞行業(yè)發(fā)展迅猛。末端派送,逐漸成為行業(yè)新的角力點。目前末端派送主要是依靠快遞員本身的業(yè)務能力和習慣對快件裝車、派送,因此會出現(xiàn)派件時難以取出隨意堆放的快件、由于忘記某一派件區(qū)域快件數(shù)量漏派后返回增加派送時間、新快遞員不熟悉路況增加派送難度等,這些情況不僅影響派件時效性,更可能會造成包裹損壞,影響服務質量;另外,隨著信息化發(fā)展,快遞員派件過程中需要頻繁掏手機操作派件APP,無疑加重了派送員的派件壓力。為了解決這些問題,本文設計并開發(fā)了基于Android 平臺的智能派件系統(tǒng)。該系統(tǒng)以APP 的形式運行于快遞員的Android 手機,符合智慧物流[1]的發(fā)展趨勢,提高了末端派送環(huán)節(jié)的效率,有效實現(xiàn)降本增效。
在功能分析階段,筆者于2020 年5 月24 日到達南京圓通棲霞區(qū)分公司就快遞流程、派件軟件使用情況等幾方面內容開展調研。總結出在快遞派送流程中需要以下功能:
快遞員在快遞分揀時打開軟件,軟件自動根據(jù)收件人所管轄的片區(qū)從服務器上獲取需派送快件列表。列表信息包含的數(shù)據(jù)項要滿足快遞員正常派件的全部需求,軟件需要提供對這些信息的便捷訪問,以及語音播報。通過獲取快件的地理信息和不同的派送類別,智能排列??旒煽旒宪囈?guī)劃圖,快遞員可以根據(jù)該圖完成上車排序。
通過獲取快件列表中不同快件的地理位置和不同場景,根據(jù)AI*算法智能生成最短派送路徑。將此最短派送路徑標注到百度地圖上,快遞員可以在地圖上清晰看到自己的派送路徑,可以參考此派送路徑進行派送。在派送過程中,根據(jù)正在派送快件的地址進行實時導航。
智能語音是解放快遞員雙手的重要手段。在數(shù)據(jù)采集的過程中,可以通過語音在特定的地點采集所需要的信息。而在派件過程中可以通過語音交互獲得目前的業(yè)務信息,包括下一點的距離、時間、方位等,并可通過語音進行撥號與發(fā)送短信的操作,而在簽收的過程中也可以通過語音對快件簽收狀態(tài)進行標注。
該應用基于Android 平臺,使用百度地圖API 實現(xiàn)派送路徑的可視化和實時導航,使用科大訊飛API 實現(xiàn)不同場景下的智能語音交互和喚醒。具體通過客戶端和用戶進行交互,實時響應用戶的請求。
客戶端:主要是基于Java 語言和Android 平臺進行開發(fā),采用Android +科大訊飛API+百度地圖API 實現(xiàn)信息的可視化與語音交互的智能化。用戶可以通過語音指令,例如規(guī)劃路徑、開始導航等獲得自己的派送路徑和實時導航服務。
服務端:服務器借助云計算技術,部署在云平臺上。主要包括web service 服務器[2]、快件信息數(shù)據(jù)庫等主要模塊,提供強勁的查詢處理能力和更快的服務器響應能力。主要采用MySQL+PHP 進行服務器搭建,對于用戶信息的存儲與分析。
開發(fā)環(huán)境:基于Android 平臺的智能派件系統(tǒng)以Android Studio作為開發(fā)平臺,其具有響應速度快、UI 更漂亮、強大的調試功能等優(yōu)點[3]。
根據(jù)需求分析和系統(tǒng)的技術路線,本系統(tǒng)分為云服務器、客戶端主體和客戶端語音模塊,系統(tǒng)框架如圖1 所示。
快件列表模塊:系統(tǒng)初始化時,會向服務器發(fā)出加載數(shù)據(jù)的請求。APP 與服務端通信采用HTTP 協(xié)議,使用Android 網(wǎng)絡框架OKhttp[4]完成HTTP 協(xié)議的相關操作,使用JSON(JavaScript object notation)數(shù)據(jù)交換格式進行數(shù)據(jù)交換,使用POST[5]方法向服務端發(fā)送請求數(shù)據(jù)包。通過對JISON 字符串進行解析和匹配,根據(jù)不同的關鍵詞獲取到不同的字段,最后封裝成ExpressInfo 對象為一個快件的詳細信息??旒斜碓敿氄故玖诵枰伤涂旒脑敿毿畔ⅲ唧w如圖2 所示。
圖1 系統(tǒng)框架圖
圖2 快遞列表模塊
快件列表包含一次派件的所有快件,已根據(jù)派件路徑排序完畢,點擊每個列表項可以查看用戶詳細信息,撥打電話,發(fā)送短信等,點擊導航可以查看到該派送點的導航路徑。長按列表項可以顯示簽收習慣,讓快遞員可以手動補充簽收信息。點擊導航按鈕可以調用百度地圖導航接口,點擊規(guī)劃可以獲取規(guī)劃的路徑。
上車排序模塊:通過對快件列表中快件不同的派送類型和派送地址進行分類和規(guī)劃,得出快件上車順序和車內堆放位置,然后可視化的顯示在客戶端??爝f員可以根據(jù)該圖完成上車排序,通過點擊主界面上車排序按鈕獲得此功能。對快件列表里面的快件根據(jù)不同派送類別分為四類:(1)驛站代收;(2)投快遞柜;(3)定點自?。唬?)送貨入戶。對于送貨入戶這類快遞,再根據(jù)其不同的派送地點進行分類。
路徑規(guī)劃和實時導航模塊:路徑規(guī)劃功能主要是幫助快遞員對所需派件的路徑進行規(guī)劃,得出一條最短的派送路徑。系統(tǒng)首先會獲取到快件列表,將快件的派件地址轉換為經(jīng)緯度,然后采用A Star[6]算法進行規(guī)劃路徑,最后調用百度地圖API 將規(guī)劃出的派送順序和路徑標注在地圖上。
A Star 算法引入了啟發(fā)式函數(shù)和預估代價,算法的核心部分在于估計函數(shù)的設計,其估價函數(shù)如式1 所示:
本方案根據(jù)派件路徑規(guī)劃的實際問題設 h=restNUm?minDis,以此啟發(fā)函數(shù)控制A Star 的行為,提升算法的效率。本文設計實現(xiàn)的A*算法具體步驟如下所示。
步驟(1):創(chuàng)建兩個名稱為Open_List 和Close_List 的列表,并將起點放入Open_List 列表中。
步驟(2):檢測Open_List 列表是否為空。如果為空,則跳轉至步驟9;否則繼續(xù)進行步驟(3)。
步驟(3):找出Open_List 列表中F 的值最小的節(jié)點,并將其移入Close_List 列表中。
步驟(4):檢測終點是否已經(jīng)被加入Close_List 中。如果是,則跳轉至步驟(9);否則繼續(xù)進行步驟(5)。
步驟(5):找出與當前節(jié)點相鄰的所有節(jié)點,對相鄰節(jié)點進行逐一檢測,判斷其是否已被加入Close_List 列表中。如果是,則跳轉至步驟(2);否則繼續(xù)進行步驟(6)。
步驟(6):檢測相鄰節(jié)點是否在Open_List 列表中。如果是,則繼續(xù)進行步驟(7);否則跳轉至步驟(8)。
步驟(7):用當前節(jié)點的G 值重新檢測相鄰節(jié)點,如果從當前節(jié)點到相鄰節(jié)點的G 值更小,則更新相鄰節(jié)點的F 和G 值并將相鄰節(jié)點的父節(jié)點設置為當前節(jié)點;然后進行步驟(2)。
步驟(8):把相鄰節(jié)點加入Open_List 列表中,把當前節(jié)點作為相鄰節(jié)點的父節(jié)點并計算到相鄰節(jié)點的G 和F 值;然后進行步驟(2)。
步驟(9):算法運行結束。
算法的運行流程如圖3 所示。
智能語音交互模塊:智能語音交互是本系統(tǒng)最重要的功能,也是連接其他模塊的重要手段。在派件過程中同樣可以通過語音播報獲得目前的業(yè)務信息,包括下一點的距離、時間、方位等,并可通過語音指令進行撥號與發(fā)送短信的操作,在簽收的過程中也可以通過語音對快件簽收狀態(tài)進行標注。語音識別全局開啟,通過撥打電話,幫我排序,我已到達,開始派件,更換地點,簽收快遞,開始導航,規(guī)劃路徑八個語音指令實現(xiàn)對應的操作。
系統(tǒng)采用的是科大訊飛的語音識別服務,下載集成科大訊飛的SDK 至本系統(tǒng),在工程 AndroidManifest.xml 文件中添加相應的用戶權限,之后在程序入口Application根據(jù)應用ID初始化SpeechUtility,初始化語音識別引擎并完成參數(shù)設置,最后開啟語音識別。
將完成的手機應用軟件成功安裝,經(jīng)反復測試,可以通過系統(tǒng)具備的快件信息可視化、上車排序、路徑規(guī)劃、實時導航、語音交互等功能,幫助快遞派送人員更好的執(zhí)行派件任務,降低其勞動強度,提高末端派送效率。
圖3 A Star 算法流程圖