楊海軍,侯永琪,王利祥,曹云龍,焦鴻韜,楊 浩
(洛陽理工學(xué)院,河南 洛陽 471023)
我國單日快遞量過億的情況已成常態(tài),“最后一公里“的配送概念越來越被人們所熟知[1],快遞配送環(huán)節(jié)的自動(dòng)化與無人化成為時(shí)代熱題。與此同時(shí),快遞分揀機(jī)器人、無人派件機(jī)器人相繼出現(xiàn),但由于地形多樣性問題與定位精度問題,遲遲得不到普及。本文以校園物流快件配送終端為背景,介紹了基于ROS 的藍(lán)牙定位快件配送機(jī)器人,電缸與減震、絲桿機(jī)構(gòu)的配合設(shè)計(jì)有效解決了地形限制問題,提高配送機(jī)器人的工作穩(wěn)定性并使其具備一定的爬樓梯能力。通過激光雷達(dá)與體感攝像頭的組合,在路徑規(guī)劃過程中有效提高避障精度,室內(nèi)藍(lán)牙定位技術(shù)可實(shí)現(xiàn)機(jī)器人的精準(zhǔn)配送,真正滿足客戶送貨到手的需求。
配送機(jī)器人整體工作流程圖如圖1 所示。每一個(gè)配送機(jī)器人都具有獨(dú)立的IP 地址,客戶通過手機(jī)App 預(yù)約機(jī)器人的IP,機(jī)器人通過北斗導(dǎo)航系統(tǒng)進(jìn)行線路規(guī)劃,并將工作線路圖顯示在顯示屏上。配送機(jī)器人通過上位機(jī)與客戶的手機(jī)保持處在同一WiFi 網(wǎng)絡(luò)下,以保證配送機(jī)器人與客戶手機(jī)傳遞實(shí)時(shí)位置信息。該機(jī)器人在配送過程中通過激光雷達(dá)、視覺導(dǎo)航技術(shù)以提高機(jī)器人在地圖上的位置精度[2]。通過減震、絲桿等機(jī)械機(jī)構(gòu)有效提高了其對復(fù)雜地形的通過能力。到達(dá)指定樓層后,通過室內(nèi)藍(lán)牙定位技術(shù)確定客戶的具體位置坐標(biāo),借助爬樓梯機(jī)構(gòu)以實(shí)現(xiàn)將快件送到客戶手中的目的。
圖1 配送機(jī)器人工作流程圖
配送機(jī)器人包括機(jī)械結(jié)構(gòu)設(shè)計(jì)部分、硬件電路設(shè)計(jì)部分、軟件設(shè)計(jì)部分,以此來實(shí)現(xiàn)工作過程中的需求。
機(jī)器人整體三維設(shè)計(jì)圖如圖2 所示。儲(chǔ)物空間分為上下兩層,存儲(chǔ)箱與機(jī)架之間通過滑道相連接,固定銷進(jìn)行鎖定,方便對儲(chǔ)物箱的大小與型號進(jìn)行更換和維修。機(jī)器人結(jié)構(gòu)簡圖如圖3 所示。
圖2 機(jī)器人整體三維設(shè)計(jì)圖
圖3 機(jī)器人結(jié)構(gòu)簡圖
配送機(jī)器人整體包括橫向伸展機(jī)構(gòu)、縱向收縮機(jī)構(gòu)、減震系統(tǒng)三個(gè)部分。中間一對車輪與車架固定,通過電缸實(shí)現(xiàn)垂直方向的伸縮。而前部懸空的車輪與后方車輪不僅可以實(shí)現(xiàn)垂直方向,還可以通過橫向伸展機(jī)構(gòu),以中間部分的腿為基準(zhǔn)進(jìn)行收縮,從而調(diào)節(jié)三腿之間的橫向距離。通過爬樓梯過程對機(jī)械結(jié)構(gòu)分析:
機(jī)器人運(yùn)動(dòng)到樓梯處,軟件系統(tǒng)會(huì)進(jìn)行數(shù)據(jù)采集,深度相機(jī)識(shí)別將應(yīng)用在樓梯運(yùn)行階段,開始執(zhí)行上樓梯過程,如圖4 所示。
圖4 爬樓梯過程簡圖
中間懸空腿進(jìn)行收縮,直到中間車輪與第一階臺(tái)階持平,在此期間由前腿與后腿進(jìn)行支撐作用,如圖5 所示。
圖5 爬樓梯過程簡圖
后腿電機(jī)驅(qū)動(dòng)車體前進(jìn),直至中間腿到達(dá)第一臺(tái)階末。后腿收縮裝置進(jìn)行收縮,直至后部車輪與第一階臺(tái)階持平,后部伸展裝置收縮,直至后部車輪踏上第一節(jié)臺(tái)階,如圖6 所示。
圖6 爬樓梯過程簡圖
最后經(jīng)過以上3 步,車體恢復(fù)到初始狀態(tài),進(jìn)而達(dá)到平穩(wěn)通過樓梯結(jié)構(gòu)的目的,如圖7 所示。
圖7 爬樓梯過程簡圖
2.2.1 適應(yīng)于多種道路條件
獨(dú)特的機(jī)械結(jié)構(gòu)賦予了其豐富的調(diào)整能力,絲桿與電缸的搭配使用,適用于絕大多數(shù)的樓梯樣式。
2.2.2 配送的絕對平穩(wěn)性
配送機(jī)器人打破傳統(tǒng)的車載式配送結(jié)構(gòu),就算是在上樓梯過程中,依舊保持著車身的絕對水平,這得益于電缸與減震系統(tǒng)的支撐。
2.2.3 模塊化機(jī)構(gòu)設(shè)計(jì)
模塊化的設(shè)計(jì)理念與特殊的滑槽設(shè)計(jì),方便產(chǎn)品結(jié)構(gòu)的組裝與維護(hù),降低產(chǎn)品成本。同時(shí)儲(chǔ)物箱可更換不同型號與結(jié)構(gòu),增強(qiáng)運(yùn)輸物品種類的多樣性。
使用proteus 軟件對控制電路進(jìn)行設(shè)計(jì)與程序仿真,以分析硬件電路可行性。原理圖如圖8 所示。
圖8 機(jī)器人原理圖(局部)
驅(qū)動(dòng)系統(tǒng)的動(dòng)力由無刷電機(jī)和電缸提供。電缸是小車上升動(dòng)力的來源,通過控制電磁閥進(jìn)而控制電缸桿的伸縮以實(shí)現(xiàn)小車爬樓功能。在電缸壓力作用下電缸桿交替伸縮實(shí)現(xiàn)了平穩(wěn)上樓。選用電機(jī)與電缸的參數(shù)如表1、表2 所示。
表1 M3508 無刷電機(jī)
表2 DDA140 電缸
直流無刷電機(jī)采用了內(nèi)置uln2003A 芯片的控制板進(jìn)行控制,電路原理圖如圖9 所示;伺服電缸控制方式采用與伺服電動(dòng)機(jī)相同的控制方式,采用的伺服驅(qū)動(dòng)芯片,對輸入01 編碼進(jìn)行匹配后并輸出對應(yīng)的電壓脈沖波形,通過控制輸出的單片機(jī)輸出的脈沖,可有效控制電動(dòng)機(jī)與電缸的工作行程??刂圃韴D如圖10 所示。
圖9 直流無刷電機(jī)控制電路圖
圖10 伺服電機(jī)控制電路圖
避障系統(tǒng)主要由激光雷達(dá)和體感攝像頭組成。機(jī)器人采用slamtec-mapper 激光雷達(dá)與kinect-v1 深度攝像頭。其具體參數(shù)對比如表3 所示。
表3 攝像頭和雷達(dá)的參數(shù)對比
為彌補(bǔ)北斗導(dǎo)航樓層內(nèi)難以精確導(dǎo)航的缺點(diǎn),采用了導(dǎo)航與室內(nèi)藍(lán)牙定位技術(shù)相結(jié)合的設(shè)計(jì),藍(lán)牙模塊在機(jī)器人進(jìn)入房間內(nèi)始終與用戶手機(jī)連接,源源不斷地向單片機(jī)發(fā)送位置坐標(biāo)。如圖11 所示。
圖11 藍(lán)牙模塊控制電路圖
配送機(jī)器人的軟件設(shè)計(jì)主要包含三個(gè)部分[3]:上位機(jī)程序設(shè)計(jì)、下位機(jī)程序設(shè)計(jì)、上下位機(jī)通信程序設(shè)計(jì)。軟件設(shè)計(jì)框圖如圖12 所示。
圖12 機(jī)器人控制系統(tǒng)框架
上位機(jī)主要功能是實(shí)現(xiàn)機(jī)器人的自主導(dǎo)航[4]。
ROS 系統(tǒng)是個(gè)強(qiáng)大的機(jī)器人操作系統(tǒng),依照ubuntu本身的驅(qū)動(dòng)程序與激光雷達(dá)、體感攝像頭、GPS 相結(jié)合,可實(shí)現(xiàn)slam,進(jìn)而可實(shí)現(xiàn)局部路徑規(guī)劃、物體識(shí)別與追蹤。將地圖導(dǎo)航與周身傳感局部路徑規(guī)劃結(jié)合,共同組成了機(jī)器人導(dǎo)航算法。
4.1.1 激光雷達(dá)salm 路徑規(guī)劃
激光雷達(dá)借助點(diǎn)云匹配,即迭代最近點(diǎn)算法對機(jī)器人進(jìn)行定位。在ROS 系統(tǒng)中,Gmapping 算法是基于濾波slam 框架的常用開源slam 算法。Gmapping 基于RBpf 粒子濾波算法[5],將定位和建圖過程分離,先進(jìn)行定位再進(jìn)行建圖。從消息流向的角度來看Gmapping 算法的結(jié)構(gòu),如圖13 所示。
圖13 Gmapping 算法的結(jié)構(gòu)框架
ROS 內(nèi)置了slam 功能包,Gmapping 包提供基于激光slam 的一個(gè)名為slam_gmapping 的ROS 節(jié)點(diǎn),調(diào)用功能包并設(shè)置訂閱與節(jié)點(diǎn)便可建模。以實(shí)驗(yàn)室為例,搭建好的室內(nèi)地圖如圖14 所示。
圖14 雷達(dá)室內(nèi)slam 建圖
機(jī)器人自動(dòng)導(dǎo)航基于已經(jīng)建立完成的地圖模型。以此為判斷基礎(chǔ),與檢測的地圖模型進(jìn)行匹配對比,若兩個(gè)地圖存在不同點(diǎn)則判斷有障礙。
4.1.2 體感攝像頭物體識(shí)別程序
在配送機(jī)器人工作場景下,如果只用激光雷達(dá)傳感器進(jìn)行位置標(biāo)定的話,對于移動(dòng)較快的物體,雷達(dá)的反饋會(huì)比較慢。還應(yīng)配合kinetc-RGB 攝像頭來對周圍三維物體進(jìn)行感知。
kinetc-RGB 在Linux 下有幾種開源的驅(qū)動(dòng)包,并且ROS 針對驅(qū)動(dòng)也有相應(yīng)的功能包。本文使用freenect_camera 來驅(qū)動(dòng)Kinect 攝像頭。
在RasPi 上安裝freenect_camera 驅(qū)動(dòng)包,在PC 端使用rviz 可視化軟件就可以看到三維點(diǎn)云數(shù)據(jù),實(shí)驗(yàn)室中采集的點(diǎn)云圖如圖15 所示。
圖15 kinect 獲得的點(diǎn)云信息
4.1.3 Kinect 與Lidar 的融合導(dǎo)航
在靜態(tài)環(huán)境中多個(gè)傳感器采集數(shù)據(jù)且融合利用的方法是以概率分布體現(xiàn)的,以適應(yīng)高斯噪聲分布的不確定性[6]。具體理論思想是通過已知的向量x 估計(jì)出未知狀態(tài)下的n 維向量x1,進(jìn)而可做出二維的柵格地圖。具體的傳感器融合流程圖如圖16 所示。
圖16 傳感器融合導(dǎo)航流程圖
下位機(jī)為以arduino 為核心板的控制板,通過設(shè)計(jì)原理圖與打印焊接,自主設(shè)計(jì)出集成電機(jī)控制模塊、九軸姿態(tài)傳感器、穩(wěn)壓電路、降噪電路于一體的集成板。
4.2.1 電機(jī)PID 算法控制設(shè)計(jì)
PID 算法是結(jié)合比例、微分、積分環(huán)節(jié)于一體的控制算法[7]。本文采用PID 對電機(jī)進(jìn)行控制。在arduino 程序設(shè)計(jì)中,表示初始誤差命令的程序?yàn)椋簄error=setpoint-input;代表總輸出程序命令行為:output=kp*nerror+ki*serror+kd*(lerror -nerror)。
4.2.2 arduino 的傳感器驅(qū)動(dòng)程序
圖17 藍(lán)牙室內(nèi)定位圖
Arduino 內(nèi)置了許多硬件的底層驅(qū)動(dòng)程序,配送機(jī)器人用到的超聲波模塊、姿態(tài)傳感器、漫反射紅外測距都可以找到相應(yīng)的驅(qū)動(dòng)程序。各函數(shù)聲明為:void ultrasound();//超聲波模塊void sensors();//姿態(tài)傳感器void diff_infr_rang();//漫反射紅外測距。
4.2.3 IBeacon 藍(lán)牙室內(nèi)定位技術(shù)
IBeacon 是一款室內(nèi)定位技術(shù),通過軟硬件的結(jié)合,可將室內(nèi)定位精度提到1m 以內(nèi),解決了配送機(jī)器人最后室內(nèi)配送精度的問題。借助移動(dòng)端App,可實(shí)現(xiàn)手機(jī)與iBeacon 的實(shí)時(shí)坐標(biāo)標(biāo)定,從而實(shí)現(xiàn)精準(zhǔn)送貨。
ROS 可通過arduino-ROS 接口與arduino 進(jìn)行數(shù)據(jù)傳送,是使用UART 通信協(xié)議在arduino 板與PC 間通信的標(biāo)準(zhǔn)方法。這樣,RasPi 在接收到傳感器傳遞的信息后,便可通過串口將調(diào)整程序發(fā)送給arduino 單片機(jī),以實(shí)現(xiàn)對配送機(jī)器人運(yùn)動(dòng)狀態(tài)的調(diào)整。通過設(shè)置不同的publisher(發(fā)布者)與subscribers(訂閱者),可實(shí)現(xiàn)數(shù)據(jù)在上、下位機(jī)的雙向傳遞。
本文對所設(shè)計(jì)的基于ROS 的藍(lán)牙定位快遞配送機(jī)器人進(jìn)行了概述說明。設(shè)計(jì)的目的在于實(shí)現(xiàn)快件配送行業(yè)的全自動(dòng)化,并以低廉的成本滿足大眾對于優(yōu)質(zhì)生活的需要。對機(jī)器人的機(jī)械結(jié)構(gòu)、硬件設(shè)計(jì)、軟件設(shè)計(jì)進(jìn)行分析,從理論與仿真分析上證明了設(shè)計(jì)的可行性,并具備較大的優(yōu)勢與創(chuàng)新性。本設(shè)計(jì)旨在滿足電子商務(wù)產(chǎn)業(yè)日益增長的需求量,節(jié)約人力配送的成本,以達(dá)到服務(wù)社會(huì),服務(wù)校園的初衷。