1. 程式人生 > 其它 >多感測器融合定位1-環境搭建

多感測器融合定位1-環境搭建

正在學習深藍學院的《多感測器融合定位》第三期課程,留下相關學習記錄。

主要內容:

1.多感測器融合行業發展現狀介紹

2.本課程的學習要求

3.本課程的環境搭建要求

4.具體實驗步驟

----------------------------------------------------------------------------------------------------------------------------------------------

1.多感測器融合行業發展現狀介紹

(1)自動駕駛

(2)高精地圖

  高精地圖本屬於自動駕駛的一部分,但由於成本、複雜度以及技術積累等問題,給圖商帶來了很好的發展前景。

(3)機器人

  機器人已經有成熟的商業模式且盈利,目前多數處在探索新方案的階段。

多感測器融合定位的作用

2.本課程的學習要求

  希望通過本課程的學習,大家可以掌握融合定位與組合導航的框架以及知識。課程屬於進階課程,在課程製作過程中,團隊儘量用通俗易懂的案例以及語言降低難度,但部分章節公式仍然比較多。希望您在學習過程中,遇到不懂的問題,及時在群裡交流,保持耐心。衷心希望您享受這段學習之旅。

3. 本課程的環境搭建要求

  為了減少除錯的時間成本,課程提供docker環境,並搭配使用說明。 (不強制使用,不想用docker的也可以自己搭環境,前提是需要對ubuntu和ROS要熟)。 為了理解作業程式碼思路,請儘量在一週內閱讀完以下文章:(由於課程程式碼與文章中已經有差異, 只需要理解思路即可,不需要把裡面的程式碼跑完)

  從零開始做自動駕駛定位(文章彙總): https://zhuanlan.zhihu.com/p/113616755

  請搭好程式碼環境,下載資料集(在作業的附件裡提供了下載地址及說明),並播放資料集,在rviz 上顯示點雲。

  資料集:

    微雲檔案分享:kitti_lidar_only_2011_10_03_drive_0027_synced.zip
    下載地址:https://share.weiyun.com/QacEDADm
    檔案大小:4.8G

  評價標準: 截圖證明rviz顯示正常即給優秀。

4.具體實驗步驟

(1)ubuntu安裝

  可以選擇雙系統或者虛擬機器安裝,作者選擇的是虛擬機器安裝。

  安裝過程中遇到了兩個問題:一是版本相容問題,考慮到要在系統中執行Docker,所以要安裝ubuntu18以上的版本,作者選擇了ubuntu-18.04.5-desktop-amd64.iso這個版本,與之配套的虛擬機器版本使用了VMware15.5.1。之前嘗試安裝VMware12或者VMware14,都在安裝過程中或者安裝完後執行過程中出現藍屏現象。二是虛擬機器的配置,作者的配置如下:

考慮到後續執行的資料集很大,建議在條件允許情況下,加大硬碟容量到200GB。

(2)Docker配置

  a)基本概念

  引擎:建立和管理容器的工具,通過讀取映象來生成容器,並負責從倉庫拉取映象或提交映象到倉庫中;

  映象:類似於虛擬機器映象,一般由一個基本作業系統環境和多個應用程式打包而成,是建立容器的模板;

  容器:可看作一個簡易版的Linxu系統環境(包括root使用者許可權、程序空間、使用者空間和網路空間等) 以及執行在其中的應用程式打包而成的盒子;

  倉庫:集中存放映象檔案的場所,分為公共倉庫和私有倉庫,目前最大的公共倉庫是官方提供的 Docker Hub,此外國內的阿里雲、騰訊雲等也提供了公共倉庫;

  宿主機:執行引擎的作業系統所在伺服器。

  b) Docker引擎

  Docker引擎是用來執行和管理容器的核心軟體。通常人們會簡單地將其代指為Docker或 Docker平臺。 參考官方安裝引導,網址: https://docs.docker.com/engine/install/ubuntu/ 執行sudo docker run hello-world測試是否安裝成功。

  

注意:安裝完成後將當前使用者加入Docker Group以免在執行docker命令時加sudo,命令如下: sudo usermod -aG docker $USER 然後最好重啟生效。

  c)Docker映象

  Docker映象(Image)是一個特殊的檔案系統,除了提供容器執行時所需的程式、庫、資源、 配置等檔案外,還包含了一些配置引數(如匿名卷、環境變數、使用者等)。映象不包含任何動態資料,其內容在構建之後也不會被改變。 Docker映象是用於建立 Docker容器的模板。

   映象製作方法有兩種:1、通過正在執行的容器生成新映象;2、通過Dockerfile檔案來生 成新映象。 Dockerfile是一個定義了映象建立步驟的檔案,Docker引擎通過build命令讀取Dockerfile, 按定義的步驟來一步步構造映象。在研發和實施環境中,通過Dockerfile建立容器是主流做法。

  本實驗所使用映象由課程提供,登入倉庫拉取映象。

  登入倉庫:docker login [email protected] registry.cn-shanghai.aliyuncs.com

  拉取映象:docker pull registry.cn-shanghai.aliyuncs.com/shenlanxueyuan/sensor-fusionworkspace:bionic-cpu-vnc

  執行docker images可檢查是否下載成功。

  d)Docker容器

  Docker容器(Container)是獨立執行的一個或一組應用。映象和容器的關係,就像是面向物件程式設計中的類和例項一樣,映象是靜態的定義,容器是映象執行時的實體。

  執行docker ps -a可檢視容器列表。

  新建/啟動容器

  方法一:命令列 以下命令使用ubuntu映象啟動一個容器,-v表示資料夾掛載,/bin/bash表示以命令列模式進入:

   docker run -it -v /path/content:/var/lib/content ubuntu /bin/bash

  方法二:docker-compose 如果同時操作多個容器,或者希望使用配置檔案記錄容器啟動命令引數,推薦使用docker-compose。

  e)Docker-Compose

  Docker-Compose是用於定義和執行多容器Docker應用程式的工具,使用YML檔案即可配置應用程式需要的所有服務。 使用步驟: 1、使用Dockerfile定義應用程式的環境。 2、使用docker-compose.yml定義構成應用程式的服務。 3、執行docker-compose up命令來啟動並執行整個應用程式。 參考官方安裝引導,網址: https://docs.docker.com/compose/install/

  將課程中提到的環境程式碼01-introduction.zip 下載並解壓縮至ubuntu系統中,資料夾中包含如下內容:

  

進入docker-compose.yml檔案所在目錄,執行 docker-compose down && docker-compose up

在瀏覽器中, 輸入地址http://localhost:40080/,預設登入密碼為sensorfusion,即可通過VNC方式進行訪問。

登入成功如下圖所示:

  f)作業程式編譯與執行

  在上述介面中啟動Terminator,將路徑設定為 /workspace/assignments/01-introduction,如下圖所示:

  

  輸入catkin build命令進行編譯,如下圖所示:

  

  

  執行

  在當前路徑下輸入source devel/setup.bash,如下圖所示:

  

  再輸入roslaunch lidar_localization hello_kitti.launch,會開啟rviz環境介面:

  

  在ubuntu環境中下載kitti資料集到/workspace/data

  

  在VNC環境下再啟動一個Terminator,將路徑設定為 /workspace/data/kitti,如下圖所示:

    

  輸入命令rosbag play kitti_lidar_only_2011_10_03_drive_0027_synced.bag,在rviz中看到改資料集的執行效果: