對自動駕駛感興趣的感興趣的學者,不妨來體驗一下Autoware呀,它是世界上第一個用於自動駕駛汽車的“多合一”開源軟件,挺不錯的。本章包括框架分析、要點總結、開發環境搭建、動手實踐等方面。
目錄
大家先看看Autoware的炫酷效果啦;
激光雷達感知周圍環境
在圖片中我們能看到它感知到行人(紅色的),一圈一圈類似於水紋的是激光雷達發出的光波。
Autoware 的NDT算法建圖
這裏能看到三維建模的立體效果,3D的效果還是不錯的;這裏如何激光雷達的線數比較高,那麼做出來的圖會更細膩。
真實道路上行駛
這裏使用Autoware軟件模擬出來的,綠色的線是規劃車輛行駛的軌跡,如果大家覺得不錯的,可以嘗試動手實現呀。
Autoware軟件模擬
看到這麼有趣的,衝呀親自動手搭建環境實現它呀😁
Autoware介紹
Autoware是用於城市自主駕駛的開源平臺,界面很有科技感,功能也很強大,支持以下功能:
路徑規劃、路徑跟隨、加速/制動/轉向控制、數據記錄、汽車/行人/物體檢測、3D本地化、3D映射
交通信號檢測、交通燈識別、車道檢測、對象跟蹤、傳感器校準、傳感器融合、面向雲的地圖
連接自動化、智能手機導航、軟件仿真、虛擬現實
開源代碼地址:官方放到了GitLab
本來是放在GitHub的,後來改變了。
Autoware官網:https://www.autoware.ai/
論文地址:https://ieeexplore.ieee.org/document/7368032
使用Autoware需要什麼?
- 需要3D地圖數據和LiDAR傳感器。它們用於大多數主要功能模塊,例如定位,檢測,跟蹤,預測和計劃。(這個必要哈)
- 相機使Autoware能夠結合3D地圖數據識別交通信號燈,還可以增強檢測能力。(非必要)
- GNSS和IMU對補充本地化結果也很有用。(非必要)
- 最後需要一輛具有Autoware的汽車;考慮到大家可能沒有,可以使用ROSBAG和模擬器實現😀
什麼是激光雷達嗎?
簡介
激光雷達系統按照光速映射周圍環境,獲取周圍環境的形狀、位置信息。
組成
發射激光脈衝的發射器,攔截脈衝回波的接收器,用於處理輸入數據的光學分析系統
工作原理
在LiDAR系統中,快速發射的激光,這種光傳播到地面(周圍物體),並反射出建築物和樹枝等物體;然後反射的光能返回到LiDAR傳感器,並在那裏進行記錄。LiDAR系統測量發射的光到達地面(周圍物體)並返回所需的時間,該時間用於計算行進距離;然後將行進的距離轉換爲高程。
從激光雷達到檢測到樹木之間的距離等於所述脈衝乘以的發送和接收之間的時間的一半的光速度 d = 1 / 2t c
那激光雷達發出的光,然後反射回去,怎麼能模擬出物體的形狀呢?(比如一棵樹的形狀)
光能是光子的集合。當組成光的光子移向地面時,它們撞擊樹上的樹枝等物體。一些光從那些物體反射回來並返回到傳感器。如果物體很小,並且周圍有空隙可以讓光線通過,則有些光線會繼續向下射向地面。由於某些光子從分支之類的物體反射而其他光子則繼續向下反射至地面,因此從一個光脈衝中可能會記錄多次反射。
返回到傳感器的能量分佈產生了我們所謂的波形,返回到LiDAR傳感器的能量稱爲“強度”。更多光子或更多光能返回到傳感器的區域會在能量分佈中產生峯值。波形中的這些峯值通常代表地面上的物體-樹枝,樹葉或建築物。
上圖是從兩棵樹和地面返回的一個示例性LiDAR波形
效果
如何創建3D地圖數據?
- 用Autoware提供的NDT映射節點方法(開源免費的)
- 或使用Autoware Tools(付費服務)來創建用於私有區域測試的小規模3D地圖數據。
以上兩種方法是在封閉環境設計的(比如教室內、辦公室內等),不適合創建大規模3D地圖數據。
看一下Autoware的開發框架
大家可以去看看參考論文
1)S.Kato,S.Tokunaga,Y.Maruyama,S.Maeda,M.Hirabayashi,Y.Kitsukawa,A.Monrroy,T.Ando,Y.Fujii和T.Azumi,``車載軟件:支持自動駕駛汽車嵌入式系統,''在第9屆ACM / IEEE網絡物理系統國際會議論文集(ICCPS2018),第287-296頁,2018年。https://dl.acm.org/doi/10.1109/ICCPS.2018.00035
2)加藤(S. Kato),竹內(E. Takeuchi),石黑(Y.Isguro),二宮Y. ``開放式自動駕駛汽車方法'',IEEE Micro,Vol。35,第6號,第60-69頁,2015年。https://ieeexplore.ieee.org/document/7368032/
其實Autoware在線上有體驗測試,最近好像在維護中
搭建開發環境
官方推薦系統規格
CPU核心數:8
內存大小:32GB
儲存空間:64GB以上
這個配置還是挺高的😂,如果是體驗的朋友可以相應降低,如果是真實開發的建議符合官方配置。
這裏參考官方最新的信息,在ubuntu18系統搭建,採用docker容器把Autoware相關的開放軟件和依賴放在裏面;相對之前的ubuntu14,ubuntu16使用的源碼安裝會更便捷,適合大家入門體驗。
沒有安裝ubuntu18的朋友可以在windows用個虛擬機(比如:VMware),如果配置更不上可能影響體驗。😂
首先安裝docker
爲ubnutu18系統安裝docker;docker相當與一個容器,裏面可以存放一些資料,安裝一些軟件,並且在docker的操作不會影響原本系統的。大家可以想象docker使用獨立的容器,能裝下整個Autoware開發環境,進入這個容器會進入Autoware開發環境。
1)準備工作
刪除較舊或不兼容的Docker版本(如果之前沒有安裝docker的朋友,請跳過此步)
sudo apt-get remove docker docker-engine docker.io
接下來安裝docker
更新apt-get
軟件包列表。
sudo apt-get update
允許apt-get訪問使用HTTPS的存儲庫。
sudo apt-get install apt-transport-https ca-certificates curl software-properties-common
添加Docker的官方GPG密鑰。
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
2)正式安裝
apt-get
使用新的存儲庫更新軟件包列表。
sudo apt-get update
安裝最新版本的Docker CE。
sudo apt-get install docker-ce
3)後續完善工作
把我們當前的用戶加到docker用戶組中
sudo gpasswd -a myusername docker
myusername是指你的用戶名,比如用戶名叫zhangsan ;命令:sudo gpasswd -a zhangsan docker
然後重啓電腦會生效的。
恭喜呀安裝好docker了!!
安裝Autoware相關軟件
這裏考慮到是入門體驗體驗篇,先不安裝NVIDIA、CUDA之類的顯卡。後續如果大家有需要GPU加速的,會專門寫一篇介紹的。
1)下載包含Autoware安裝的資料
git clone https://gitlab.com/autowarefoundation/autoware.ai/docker.git
cd docker/generic
下載到本地的是一個名爲docker的一個文件夾。大約10M以內,還是要等一下。
圖片這裏是 docker文件夾中的內容。往後主要用的:generic這個目錄
2) 配置Docker 國內加速器
這一步是爲下一步作準備的,很有必要的。博主開始使用原配的docker去下載,(幾十k的網速)等了幾個小時,最後還中斷了,心態瞬間不好了。反思過後,於是有了下面的方法:
新建 /etc/docker/daemon.json 文件,執行命令:
sudo vi /etc/docker/daemon.json
具體內容:
{
"registry-mirrors": ["https://docker.mirrors.ustc.edu.cn","https://kfwkfulq.mirror.aliyuncs.com","https://registry.docker-cn.com","http://hub-mirror.c.163.com","https://6tgttyn9.mirror.aliyuncs.com"]
}
這裏是做了了6-7實驗,測試那個加速器最快,加速器如何之間如何相互結合作用最大的最終產物,不容易啊。
3)下載Autoware的開發軟件和依賴包,並整合到docker中
./run.sh -c off
這裏由於沒有CUDA(顯卡)的支持,需要指定不是用CUDA加速。詳細的run.sh參數可以用:./run.sh -h
這裏需要等待比較久。有時候還會卡在不動或,被中斷,太難了。堅持住就會勝利的,衝呀。
體驗Autoware
1)進入Autoware的docker中 cd docker/generic
./run.sh -c off
成功進入了,大家可以看一下用戶名那裏顏色變了,滑稽。目錄下的文件也改變了,之前的文件不見了呀。
其實沒事的,這是Autoware的docker中獨立的空間,有獨立的文件,看不到原本系統的文件。
2)探索體驗
我們來啓動Autoware:
cd Autoware
source install/setup.bash
roslaunch runtime_manager runtime_manager.launch
然後大家可以看到如下界面:
點擊一下右下方那個的 RViz按鈕
看到RViz的初始化界面:
看到下面的界面是否會有激動的感覺呢:
說明,我這裏在虛擬機安裝的,配置是2核,4G內存,發現跑不起模擬數據包😭;於是找一下教程視頻給大家學習。
視頻我本來放在了網上的,發現審覈太慢了,難受;如果在這裏網頁看不到的朋友,再網盤也放了一份:
鏈接:https://pan.baidu.com/s/1gMbL6tp1l184XQbaLFOaEw 提取碼:yz89
網頁這裏也上傳了一份視頻:https://v.qq.com/x/page/h0935tqd612.html
autoware-自動駕駛-模擬測試展示
模擬測試展示
下載好模擬數據包後,就可以實現文章開頭的炫酷效果啦。
進入共享目錄 shared_dir,下載到這裏的資料,是會長期保存的;如果在進入autoware的docker開發環境中的其他目錄下,退出時會下載資料會刪除的。
下載示例3D Pointcloud /矢量地圖數據
wget https://autoware-ai.s3.us-east-2.amazonaws.com/sample_moriyama_data.tar.gz
下載示例數據(LiDAR:VELODYNE HDL-32E,GNSS:JAVAD GPS RTK Delta 3)
wget https://autoware-ai.s3.us-east-2.amazonaws.com/sample_moriyama_150324.tar.gz
解壓數據包
tar zxfv sample_moriyama_150324.tar.gz
tar zxfv sample_moriyama_data.tar.gz
我們來啓動Autoware:
cd Autoware
source install/setup.bash
roslaunch runtime_manager runtime_manager.launch
然後根據上面的視頻,就可以實現啦。
這裏說一下視頻教程中選擇文件的路徑可能不一樣,版本更新迭代了,是正常的哈。
1)選擇map、planning、localization、sensing等文件的路徑
2)選擇剛纔下載,解壓好的數據包:
選擇後會有bag數據包的加載信息出來的
模擬數據包效果:
選擇好數據包、map文件,點擊Play來播放bag數據包:
選擇好planning(規劃路徑文件):
完成體驗,愉快退出
在命令行中輸入exit
官方展示視頻:https://gitlab.com/autowarefoundation/autoware.ai/autoware/-/wikis/Videos
如果大家對Autoware-自動駕駛感興趣,發現有個不錯網址學習:https://www.ncnynl.com/category/autoware/
官網學習:https://gitlab.com/autowarefoundation/autoware.ai/autoware
彩蛋(自動駕駛、無人駕駛資料)
分享一下自動駕駛、無人駕駛的資料給感興趣的學者
鏈接:https://pan.baidu.com/s/16H9LW2hGUKg0dPsvb6EiyQ 提取碼:cr7e
學習課程:激光SLAM (深藍學院)
鏈接:https://pan.baidu.com/s/18u_3Gip2I3FRIywkt1sokQ 提取碼:b1kw
ROS Kinetic (深藍學院)
鏈接:https://pan.baidu.com/s/1p1iIPdU7liBqqINloUEoPw 提取碼:un6c
大家加油啦。😁