孫義斐,韓宇光,趙楨淏,王庚辰,顧澤辰
(華東理工大學,上海,200237)
在21世紀智能化的發展或將成為未來的一大發展趨勢,近年來,隨著傳感器逐漸靈敏以及微型處理器即芯片技術的不斷提高,集成智能控制得到了前所未有的提高,越來越多的嵌入式控制以及智能化技術逐漸被大眾熟知。集體智能的產品能夠模仿人類的智能,具有一定的判斷力和智能,從技術上來說,它能夠取代人腦的一部分。汽車的發明距今已有100多年的歷史,從上個世紀80年代開始直至今天,在智能控制方面的應用也越來越廣泛,社會發展的越來越快,車輛的智能化也逐漸應用在人們生活的各個角落。
貨物搬運是快遞等行業的支柱核心之一,智能化貨物搬運在各個領域發揮著重要的作用。近年來,隨著國內經濟的迅猛發展,市場競爭日趨激烈。貨物搬運作為辦公場景之中重要的一環與企業經濟效益密不可分,是影響企業效益的重要因素,貨物搬運的智能化對企業的工作效率、經濟收益等有著至關重要的作用。貨物搬運的日趨復雜性使得基于傳統的人工搬運方法難以滿足需求。因此,亟需開發一款能夠智能化貨物搬運的產品,為企業創造更好的經濟效益。
智能車的硬件設計是整個系統設計的基礎, 只有在系統硬件設計可行、穩定、可靠的前提下, 其他控制方案才能得以繼續。根據設計需求,智能車應具有地圖構建與定位,路徑規劃與智能避障等功能,因此可以通過激光雷達(rplidar)構建地圖,USB(USB轉串口)與上位機互連通訊,運動解算及PID速度環都在下位控制器完成,只需要通過串口命令發送線速度與角速度即可驅動小車底盤,同時可以直接讀取小車的實時位置及實時速度信息。設計原則有:重心盡可能低、體積盡可能小、驅動盡可能大、結構盡可能簡單。

圖1 智能車整體構造
在上位機控制板中使用樹莓派(RaspberryPi4B)內嵌ROS系統作為主控模塊,是整個智能車的“大腦”,其主要作用是匯集雷達與攝像頭信號,對所處場景進行地圖建模,并且接收由PC端或者Android設備端通過局域網發來的位置信號,結合控制算法,控制智能車的行進。在樹莓派中裝有基于Linux開發環境的Ubuntu Mate系統,并且通過ROS機器人開發平臺實現各類數據的處理和算法的實現。
3.1.1 windows安裝ubuntu系統
目前ROS平臺的安裝首先依賴于linux操作系統。我們需要安裝以linux為內核的ubuntu桌面操作系統。為了使兼容性和工具的前沿性同時得到滿足,選擇下載Ubuntu18.04版本,在官網找到ubuntu18.04后進行下載。緊接著在Windows下安裝Vmware,這是一個虛擬機構造軟件。打開Vmware,創建新的虛擬機,導入下載好的Ubuntu鏡像。然后設置內存、分區、密碼等必要參數。
3.1.2 樹莓派安裝ubuntu系統鏡像文件
從官網上下載Ubuntu mate,使用工具Win32 Disk Manager,將ubuntu mate寫入樹莓派TF卡中,將錄好系統的TF卡插回樹莓派,給樹莓派供電,即可完成安裝。
官方給出ROS的定義:ROS=一套通信機制+一套開發工具+一系列應用功能+一個龐大的生態系統。ROS研發的目的是提高機器人研發中的軟件復用率。
(1)通信機制
ROS通信屬于松耦合分布式通信。Ros最常用的通信機制有:話題通信(接收方不必應答)、服務通信(接收方需應答)和共享參數通信。
(2)開發工具
Gazebo仿真工具、RViz機器人可視化工具、rqt可視化工具、RosBag記錄和會放ROS主題的工具、moveit移動操作軟件等。
(3)應用功能
底層驅動(傳感器、執行器的驅動)、上層功能(機器人導航、MoveIt機械臂控制等)、控制模塊(將豐富的上層功能落實到機器人上,控制框架——ros_control,及常用的控制器等)、常用組件(TF、URDF、Message 等)
ROS穩定版本目前使用率比較高的是kinetic kame和melodic morenia。推薦安裝最新版melodic,因為功能更加完善,但由于團隊前期準備工作大部分是基于kinetic,而kinetic支持停止日期是2021年4月,不影響項目的進行,故選擇kinetic作為安裝版本。
在樹莓派的Ubuntu系統中復制ros安裝的腳本文件至home文件夾下的install_ros_kinetic.sh,然后使用source命令執行install_ros_kinetic.sh。緊接著使用tar命令和catkin_make命令解壓和編譯項目所用貨物搬運平臺的驅動。最后運行roscore確認ros已經安裝成功。
ROS機器人的定位與地圖構建采用的是SLAM(simultaneous localization and mapping)算法,即及時定位與地圖構建,這種算法的優點是把兩方面的進程都捆綁在一個循環之中,通過這種方法能夠讓雙方在各自進程中都求得連續解,在不同進程中互相迭代的反饋對雙方的連續解對地圖建模有改進作用,以此獲得實時改進的效果。
Gammping是移動機器中使用最多的SLAM方法,gmapping包是包含在OpenSlam的Gmapping的一個ROS封裝,通過Rplida雷達收集的激光和位姿數據,創建二位柵格地圖。

圖2 智能車構圖效果
應用ROS導航包實現搬運機器人完成以下步驟:
(1)首先完成機器人相應的硬件設計后對機器人進行配置;
(2)創建導航功能包:此功能包主要用于存儲導航需要用到的所有配置文件以及lunch啟動文件,并添加機器人配置中使用到的功能包以及move_base包作為依賴;
(3)創建機器人啟動文件:導航功能包的創建開放了儲存關于路徑規劃的各種文件的工作空間,接下來創建機器人的啟動文件用來啟動機器人配置中用到的所有硬件(傳感器、里程計等),并發布相應的消息和變換關系;
(4)配置代價地圖:導航功能包使用兩種代價地圖存儲周圍環境的障礙信息,分別用于全局路徑規劃和本地路徑規劃和實時避障,完成對通用配置文件、全局規劃配置文件、本地規劃配置文件的配置;
(5)配置本地規劃器:本地規劃器的主要作用是根據規劃的全局路徑,計算發布給機器人的速度指令,需要根據機器人的規格,完成相應參數的配置;
(6)創建導航功能包的啟動文件。
在萬物智能化的現在,機器智能化已經成為發展的趨勢,本文以智能車為載體,結合了PID控制算法,差速轉向,雷達識別等技術,對智能車的地圖建模和路徑規劃問題進行分析,相信智能車將來將逐漸在居家,辦公等場景中得以應用,未來,智能機器將以巨大的實用價值和應用潛力改變我們的生活。