基于 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

 

  

场景应用图

sceneryUrl

展示版照片

frontUrl

方案方块图

funcUrl

核心技术优势

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