基於 NXP i.MX8MP平台上的機器人三維地圖構建方案

ROS 簡介

ROS顧名思義,就是機器人操作系統(Robot Operating System)的英文縮寫,是用於編寫機器人軟件程序的一種可自由調配的軟件框架,它提供了操作系統應有的服務,包含底層硬件設備控制、大量的工具軟件、程式代碼和協議等,目的為簡化在於各種機器人平台上創建複雜而強大的機器人行為的任務。 

基本上可以理解為
ROS = Pluming(通道) + Tools(工具) + Capabilities (行為能力) + Ecosystem (生態系統)

 

目前發行版本如下列所示

版本名稱

發佈日期

版本生命週期

操作系統平台

ROS Noetic Ninjemys

2020年5月

2025年5月

Ubuntu 20.04

ROS Melodic Morenia

2018年5月23日

2023年5月

Ubuntu 18.04

       

 參考網站: http://wiki.ros.org/Distributions


ORB SLAM2簡介

這是用於單目、立體和 RGB-D 相機的 ORB-SLAM2 即時執行SLAM資料庫的 ROS實現,用於計算相機軌跡,它能夠即時檢測環路的軌線,並重新定位後生成場景的稀疏三維地圖重建結果。

基本結構如下.

  1. 完整的 ROS 兼容性
  2. 支持大量開箱即用的相機
  3. 加快 vocab 文件載入速度
  4. 完整的地圖保存和加載功能

代碼的主要結構如下:

  1. 跟蹤 (Tracking)
  2. 建圖 (Local Mapping)
  3. 閉環檢測 (Loop Closing)
  4. 完整優化 (Full BA/Bundle Adjustment)

 

三、硬件規格: 選用恩智浦的 i.MX8M Plus 的參考設計板 (i.MX8MP-EVK)

Quad Cortex®-A53 processors operation up to 1.8 GHz

Cortex®-M7 CPU operating up to 800 MHz

375 Mpixel/s HDR ISP supporting configurations

16/32-bit DRAM interfaces:

  • LPDDR4-4000
  • DDR4-3200
  • DDR3L-1600

Neutral Processing Unit (NPU)

LCDIF Display Controller:

Support up to 1080p60 display per LCDIF if no more than 2 instances used

simultaneously, or 1x 1080p60 + 2x 720p60 if all 3 instances used simultaneously.

  • One LCDIF drives MIPI DSI
  • One LCDIF drives LVDS Tx
  • One LCDIF drives HDMI Tx

 

 四、軟體建置

  • 架設編譯環境 Host PC:

安裝 Ubuntu 18.04LTS (基於GCC版本差異,建議使用 Ubuntu 18.04LTS),也可以安裝到 VMware 虛擬環境來執行編譯。

 

  • 下載源代碼並編譯

repo init -u https://source.codeaurora.org/external/imx/imx-manifest -b imx-linux-zeus -m imx-5.4.70-2.3.0.xml

repo sync

 

  • 下載 MX機器人源代碼

git clone https://gitee.com/zxd2021-imx/meta-robot-platform.git

cd meta-robot-platform

git checkout v1.1-L5.4.70-2.3.2

mv meta-robot-platform source/

cp meta-robot-platform/imx/meta-robot/tools/setup-imx-robot.sh .

 

  • 運行腳本並選定所要測試的 ROS 發行版本,以 Melodic Morenia 為例

DISTRO=imx-robot-xwayland MACHINE=imx8mpevk source setup-imx-robot.sh -r melodic -b imx8mp-melodic

 

  • 編譯即將執行於MX8MP-EVK 的 ROS

bitbake imx-robot-agv

 

  • 編譯完成後,開始執行燒錄 Image 到 eMMC,這次演練以透過 UUU 指令為例

sudo ./uuu -b emmc_all imx-boot-imx8mpevk-sd.bin-flash_evk imx-robot-agv-melodic-imx8mpevk.wic

 

執行到此步驟,已經可以在 恩智浦 i.MX8M Plus 開發板運行 ROS 的環境。

 

  • 建置 SLAM2 庫

git clone https://github.com/raulmur/ORB_SLAM2.git ORB_SLAM2

cd ORB_SLAM2

chmod a+x build.sh

./build.sh

  • 下載 EuRoC Dataset,此次演練是使用 Machine Hall

https://projects.asl.ethz.ch/datasets/doku.php?id=kmavvisualinertialdatasets

 

  • 執行 ORB_SLAM2 資料庫來加載 ROS dataset,並透過 HDMI 輸出的顯示畫面來查看執行結果,需先將 ORB_SLAM2 和 dataset 先透過 USB 來複製到檔案系統內
  1. source /opt/ros/melodic/setup.sh
  2. echo $LD_LIBRARY_PATH
  3. mono_euroc Vocabulary/ORBvoc.txt Examples/Monocular/EuRoC.yaml mav0/cam0/data Examples/Monocular/EuRoC_TimeStamps/MH01.txt

 

可以由此圖查看到機器人眼中的世界,並透過 ORB SLAM2 執行三維地圖構建

 

測試訊息如下:

 

i.MX Robot platform distribution 1.0 imx-robot-melodic ttymxc0

imx-robot-melodic login:

 

ORB-SLAM2 Copyright (C) 2014-2016 Raul Mur-Artal, University of Zaragoza.

This program comes with ABSOLUTELY NO WARRANTY;

This is free software, and you are welcome to redistribute it

under certain conditions. See LICENSE.txt.

 

Input sensor was set to: Monocular

 

Loading ORB Vocabulary. This could take a while...

Vocabulary loaded!

 

 

Camera Parameters:

- fx: 458.654

- fy: 457.296

- cx: 367.215

- cy: 248.375

- k1: -0.283408

- k2: 0.0739591

- p1: 0.00019359

- p2: 1.76187e-05

- fps: 20

- color order: RGB (ignored if grayscale)

 

ORB Extractor Parameters:

- Number of Features: 1000

- Scale Levels: 8

- Scale Factor: 1.2

- Initial Fast Threshold: 20

- Minimum Fast Threshold: 7

 

-------

Start processing sequence ...

Images in the sequence: 3682

 

Error: Wayland: Focusing a window requires user interaction

GL_VERSION  : OpenGL ES 3.1 V6.4.3.p1.305572

GL_RENDERER : Vivante GC7000UL

New Map created with 86 points

Wrong initialization, reseting...

System Reseting

Reseting Local Mapper... done

Reseting Loop Closing... done

Reseting Database... done

New Map created with 109 points

 

  

►場景應用圖

►展示板照片

►方案方塊圖

►核心技術優勢

1. 處理器最高可達1.8GHz 2. 嵌入式系統 3. AI人工智能數據分析 4. 邊緣計算應用程序。

►方案規格

1. 處理器: 四核Cortex-A53 1.8GHz 2. 記憶體: 6GB LPDDR4 3. 儲存裝置: 32 GB eMMC 5.1; 32 MB QSPI NOR 4. 顯示介面: LVDS x1; MIPI-DSI x1; HDMI 2.0a x1 5. 相機介面: 2x MIPI-CSI; USB 3.0x1 6. 網路介面: 2x1GbE

相關影片

基於NXP i.MX8MP平台上的機器人三維地圖構建方案視頻

大家好,我是品佳Apollo,本次視頻的展示是基於 恩智浦 i.MX8M plus的參考設計板,來運行的機器人操作系統。ROS它提供了操作系統應有的服務,包含底層硬件設備控制、大量的工具軟件、程式代碼等,目的是為簡化在於各種機器人平台上、能創建複雜而強大的機器人行為任務。

目前大家可以看到即時執行SLAM2資料庫的ROS實現,用於計算相機軌跡,將圖像幀、經由提取、即時檢測環路的軌線,並重新定位和追踨,其中是透過連續複雜排序、記算、融合之後,生成場景的稀疏三維地圖重建結果。大家可以想像成這是機器人眼中的世界,此次的介紹就到此,有興趣的朋友們可以一起來探討和研究,謝謝。