黃畫恒 ,李健 方士聞 徐一帆 馮晨曦 鄧茹心 薛萬利



摘要:該文以機器人操作系統(ROS) 作為整體框架展開設計一輛AGV智能搬運車(Automated Guided Vehicle) ,首先通過單片機編程實現搬運車的運動控制及硬件數據的傳輸,其次在jetson nano運算平臺上通過集成傳統視覺算法、同步定位與建圖算法(SLAM) 及A*算法實現車輛對周圍環境的感知和運輸路線的路徑規劃,最后通過Visual Studio開發搬運車控制系統軟件,在PC端上通過軟件實現操縱員遠程調度管理搬運車。該智能搬運車設計方案在以“智能物流”為主題的貨物搬運挑戰賽中完成了研究目標所設定的任務,證實了方案的可行性。
關鍵詞: ROS;AGV;SLAM;路徑規劃;智慧物流
中圖分類號:TP18? ? ? ? 文獻標識碼:A
文章編號:1009-3044(2023)01-0010-03
1 研究現狀
20世紀50年代,第一臺AGV智能搬運車(Automated Guided Vehicle,裝備有自動導航裝置,能夠沿規定的導航路徑行駛的運輸車)是由美國Barrett電子公司研發的[1],它的原理是在倉庫中規劃布置路線實現貨物運輸。到了20世紀60年代,AGV智能搬運車技術主要在歐洲得以推廣和發展,AGV也首次引入了電磁感應技術,但是仍無法解決AGV車行走范圍和軌跡受限的問題,并且維護成本高[2]。隨著技術的不斷發展,AGV搬運車開始裝備激光雷達,通過激光雷達進行定位[3],實現了無軌道運輸功能。
技術的發展使AGV智能搬運車的研發和應用得到進一步的提升。隨著慣性技術的發展,AGV搬運車上開始安裝慣導元件和編碼器,通過硬件采集偏差信號,進行積分運算得到搬運車行駛的速度和角度信息,確定出搬運車的位置和方向[4],使得AGV搬運車的定位更為準確。但長時間使用編碼器會產生累計誤差造成定位精度下降。為解決精度的問題,隨著機器學習等新技術發展,通過視覺定位導航的方案也被提出使用[5]。由趨勢可見,采用多傳感器融合的方法是未來AGV搬運車發展的趨勢,發揮各傳感器的長處,實現更精確的定位[6]。隨著多傳感融合導航技術的快速發展及復雜化,誕生了機器人操作系統ROS,ROS的應用使搬運車開發更為便捷[7]。隨著ROS版本更新,使得搬運車導航系統的時效性得到增強[8],較好地解決包括與下位機通信在內的各系統間結合的問題,極大簡化平臺下的復雜任務創建與穩定行為控制,在一定程度上保障AGV車在貨物搬運過程中的平穩有序。
2 研究目標
本研究的最終目標是通過軟硬件層次的緊密配合,完成一套可以通過上位機遠程調度并可以自行感知交通信息的車輛運輸系統,用于貨物運輸領域(如圖1所示)。
該研究的AGV智能搬運車系統的實現是以jeston nano為運算平臺、STM32單片機為運動控制平臺,配備了線性激光雷達、視覺攝像頭、imu慣導元件、編碼器等傳感器。該智能搬運車系統以ROS作為基礎框架,分為三個層次:運動控制層、ROS傳輸層、ROS決策層。在運動控制層中,通過底層單片機設計,實現無人智能搬運車的運動控制。在ROS傳輸層中,實現運算平臺與硬件、PC端應用程序的數據傳輸,提供ROS決策層執行所需數據。在ROS決策層中整合主流視覺算法完成AGV的視覺感知。
最終操縱員可以通過PC端的調度軟件,發送目標位置至搬運車,AGV智能搬運車能自主運行至目標位置。在車輛運行過程中實現交通信息識別、主動避障等環境感知功能。
3 主要研究內容
3.1 運動控制層
運動控制層主要負責控制車輛的行為(例如前行、轉向、駐車等),并通過串口發送車體信息至運算平臺上的ROS傳輸層。
搬運車采用前輪轉向、后輪直流減速有刷電機差速控制的阿克曼運動方式,在運動控制層中采用STM32單片機完成底盤的運動控制。用A4950電機驅動模塊驅動電機,采用脈沖寬度調制控制,通過改變占空比,進而得到不同的電機平均速度,從而達到調速的目。通過差速算法控制后輪轉向電機和前輪舵機,實現車輛前行、轉向、駐車等運動功能。
Stm32作為驅動板,用USB-mini接口與運算平臺進行串口通信,接收其發出的控制指令,并從IMU和電機編碼器上獲取到的信息反饋給運算平臺。
3.2 ROS傳輸層
ROS傳輸層主要功能為數據傳輸和處理,可分為四部分,分別是ROS系統和底層單片機控制的數據通信,激光雷達、攝像頭等傳感器與ROS系統的數據通信,遠程調度軟件與ROS系統的數據通信以及ROS系統內部的數據通信。
ROS和單片機的通信主要通過串口通信實現,ROS集成的串口模塊收集從底盤傳輸的左右輪實時速度值及imu模塊測量的數據,用航跡推演法將左右輪速度轉化為機器人的x軸方向速度和機器人的旋轉速度,然后發布/odom主題,好讓ROS的相應package收到這個消息,進行機器人位置的估計。
傳感器與ROS通信部分,使用USB數據線與工控機相連,通過在ROS系統中建立 ydlidar 雷達串口軟連接接收激光雷達上傳的數據。
遠程調度軟件與ROS系統的通信主要在局域網內,通過UDP/IP進行軟件與ROS系統之間的數據傳輸,將目的地位置數據上傳至ROS系統中,提供路徑規劃所需數據。
視覺部分的通信主要為ROS內部的通信。當攝像頭識別紅綠燈等信息后,傳輸對應的字符串,對應搬運車的前進或停止控制指令。
ROS系統將各傳感器傳來的數據交給決策層,為執行決策層提供數據,在決策層中進行數據融合處理,轉化為搬運車下一刻行駛的期望速度與轉向角度,然后通過串口傳給底層單片機,完成車輛的運動控制。
3.3 ROS決策層
ROS決策層主要功能為建立并執行ROS功能包,決策層的執行依賴于傳輸層傳輸的數據。以下為決策層所實現各部分的功能。
3.3.1 激光SLAM環境感知
SLAM(Simultaneous Localization And Mapping) ,即時定位與地圖構建,用于車輛在環境中的自身定位及記錄環境中特征的位置。
當搬運車需要實現導航時,可以參考一張全局性質的地圖,然后根據地圖來確定自身的位置、目的地位置,規劃一條大致的路線。通過SLAM可以建出一張全局性質的地圖。ROS中SLAM的實現方案較多,在該項目中的搬運車采用了gmapping算法進行建圖。通過訂閱傳輸層中用于雷達、底盤與里程計之間的坐標變換消息以及雷達消息,執行gmapping算法功能包,進而在ROS傳輸層中發布地圖數據柵格數據。
rviz是ROS系統中三維可視化平臺,能夠實現ROS傳輸信息的圖形化顯示,如圖2。在gmapping發布柵格數據后,操縱員可通過rviz訂閱該數據,從而實現SLAM環境感知的實時可視化監測。
3.3.2 導航任務
導航任務基于SLAM建出的圖,使車輛以最短或者最快路徑到達目的地。它的實現涉及全局地圖、自身定位、路徑規劃、運動控制、環境感知五點內容。導航任務整體框架如圖3所示。
全局地圖是指通過SLAM建出的地圖。自身定位就是推算搬運車在全局地圖里的位置,SLAM中也包含定位算法實現。搬運車按照規劃的路線運動,通過定位判斷搬運車的實際運動軌跡是否符合預期。在導航任務中采用ROS系統的amcl功能包,實現導航過
程中搬運車的定位。路徑規劃為自主導航的核心功能。方案采用ROS的導航功能包集navigation中提供的 move_base 功能包。在SLAM中建立好的地圖中指定導航的目標位置goal和方向后,move_base包根據搬運車傳輸層的傳感器信息,推算出的odometry信息,作出路徑規劃,輸出前進速度和轉向速度至運動控制層,控制機器人到達指定的目標位置。并且在搬運車運動過程中,連續反饋車體的自身姿態與目標點狀態信息。
3.3.3 面向交通信息的計算機視覺感知
在車輛運行過程中通過圖像處理識別紅綠燈、車道線的交通信息,并將識別信息發至傳輸層。
在ROS框架中創建基于opencv開發的視覺感知功能包,當攝像頭采集圖像經過數據處理后,采用平臺提供的api接口,檢測出交通燈信息及車道線信息。
在檢測交通燈信息部分,首先需要通過二維碼定位交通燈區域,劃定交通燈ROI,色域轉換后通過閾值篩選,識別高亮的區域,其次通過面積篩選和開閉運算去除干擾點,得到亮燈部分的輪廓。最后通過輪廓中心點的相對ROI的位置判斷交通燈的顏色,如圖4所示。
在檢測車道線部分,首先通過對攝像機標定畸變矯正并進行透視變換得到車道線的鳥瞰圖,通過sobel算子對圖像邊緣特征進行提取,對邊緣特征的角點進行提取,最后對角點進行膨脹操作還原車道線大體形狀從而實現對車道線的識別,如圖5所示。
視覺識別后的結果將通過ROS系統傳送至傳輸層,轉換為車輛行駛速度及偏向角度,通過串口通信發至底層單片機,完成車體遇紅黃燈停止前行,綠燈前行,在車道線范圍內行駛等感知反饋功能。
3.4 遠程調度層
遠程調度層主要為操作員提供便捷的方式遠程監控車輛的運轉狀態,便于車輛的調度與管理。
遠程調度層建立在上位機的Windows系統,使用Visual Studio作為開發工具,基于MFC庫,開發應用程序界面。通過UDP/IP協議socket編程完成搬運車傳輸層與應用程序之間的數據通信、指令通信。操作員可從應用程序連接搬運車,獲取搬運車的實時信息,并且通過應用程序發送目標位置goal指引車輛到達指定地點,實現遠程與搬運車的交互功能,遠程調度應用程序界面如圖6所示。
4 結束語
該文構建一輛基于ROS和主動視覺感知的智能搬運車,以ROS作為基礎框架,采用多傳感器融合的方法,整合主流視覺算法完成AGV的視覺感知,并通過上位機遠程調度、底層單片機控制,實現無人智能搬運車的自主運行。該設計研發將應用于智慧物流等產業發展方向,使貨物搬運行業向“現代化、智慧化、綠色化”的發展方向持續邁進。
參考文獻:
[1] 徐慶.基于嵌入式控制系統的AGV結構設計及控制方法研究[D].南京:南京航空航天大學,2018.
[2] 張世清.自動化工廠的多AGV系統路徑規劃及調度機制研究[D].西安:西京學院,2021.
[3] 暴海寧,宋科,黎原,等.激光導引AGV車載控制系統結構及其實現[J].起重運輸機械,2016(5):71-74.
[4] 胡海東,趙清杰.機器人的慣性/視覺組合定位方法[C]//2009年中國智能自動化會議論文集(第七分冊)[南京理工大學學報(增刊)].南京,2009:248-252.
[5] 儲江偉,郭克友,王榮本,李斌,馮炎.自動導向車導向技術分析與評價[J].起重運輸機械,2002(11):1-5.
[6] 張書亮.基于多傳感器融合的室內移動機器人定位與導航研究[D].北京:中國科學院大學(中國科學院長春光學精密機械與物理研究所),2021.
[7] 朱建軍,王明園,張博文.基于ROS的輪式機器人建模方法與仿真研究[J].吉林化工學院學報,2021,38(3):61-65.
[8] Macenski S,Martín F,White R,et al.The marathon 2:a navigation system[C]// IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS).Las Vegas,NV,USA.IEEE,2020:2718-27
【通聯編輯:代影】