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:

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.

 

 四、軟體建置

安裝 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

 

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 .

 

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

 

bitbake imx-robot-agv

 

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

 

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

 

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

cd ORB_SLAM2

chmod a+x build.sh

./build.sh

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

 

  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