yahboom
HomeLearn
Solution
Blog
Online Store
About Us
EN/中文
AI View Depth camera📖
01.Linux basic course
  • 1.Introduction to Linux system
  • 2.Ubuntu file system
  • 3.Ubuntu common commands
  • 4.Ubuntu common editors
  • 5.Ubuntu software operation commands
  • 6.Virtual machine installation
  • 7.SSH remote control
  • 8.VNC remote control
  • 9.Transfer files remotely
  • 10.Driver library and communication
  • 11.Static IP and hotspot mode
  • 12.Bind device ID
  • 13.Capacity expansion and resource allocation
  • 14.Update system software sources
  • 15.Set root user password
  • 16.sudo free password
  • 17.Connect to WiFi network
  • 18.View system version
  • 19.Customized service management
  • 20.Back up system image
02.ROS1-camera usage course
  • 1. Camera usage instructions
  • 2. Environment Construction
  • 3. Camera recording video
03.ROS1-OpenCV course
  • 1.Opencv Source CV Introduction
  • 2.Image reading and display
  • 3.Picture writing
  • 4.Picture Quality
  • 5.Pixel Operation
  • 6.Picture scaling
  • 7.Picture cutting
  • 8.Picture translation
  • 9.Picture mirroring
  • 10.Affine transformation
  • 11.Picture rotation
  • 12.Perspective transformation
  • 13.Grayscale processing
  • 14.Image binarization
  • 15.Edge detection
  • 16.Line segment drawing
  • 17.Rectangle and circle drawing
  • 18.Text and picture drawing
4.ROS1-basic course
  • 1.ROS introduction
  • 2.ROS installation
  • 3.ROS common command tools
  • 4.ROS workspace
  • 5.ROS function package
  • 6.ROS node
  • 7.ROS topic publisher
  • 8.ROS topic subscribers
  • 9.ROS service client
  • 10.ROS service server
  • 11.ROS action client
  • 12.ROS action server
  • 13.ROS custom message reception
  • 14.ROS-launch file
  • 15.ROS-TF transformation
  • 16.ROS parameter service
  • 17.ROS-rviz use
  • 18.ROS-rqt tool usage
  • 19.Topic message recording and playback
  • 20.urdf model introduction
  • 21.gazebo introduction
  • 22.ROS distributed communication
5.ROS1-Mediapipe course
  • 1.Hand detection
  • 2.Posture detection
  • 3.Overall detection
  • 4.Face detection
  • 5.Face recognition
  • 6.Face effects
  • 7.3D object recognition
  • 8.Brush
  • 9.Finger control
  • 10.Gesture recognition
6.ROS+Opencv application
  • 1.Camera calibration
  • 2.QR code
  • 3.Human body pose estimation
  • 4.Target detection
  • 5.ROS+Opencv basics
  • 6.Face recognition
  • 7.Harris corner detection
  • 8.Target tracking algorithm
  • 9.Contour moment
  • 10.Polygon outline
  • 11.Discrete Fourier transform algorithm
  • 12.Edge detection algorithm
  • 13.Face detection algorithm
  • 14.Optical flow detection algorithm
  • 15.Contour detection
  • 16.General contour detection
  • 17.Feature point tracking
  • 18.HLS color filtering
  • 19.Hough circle detection
  • 20.Hough line detection
  • 21.HSV color filtering
  • 22.LK optical flow algorithm
  • 23.Human body detection algorithm
  • 24.Phase-related displacement detection
  • 25.Image pyramid sampling algorithm
  • 26.RGB color filtering
  • 27.Clear background detection algorithm
  • 28.Simplified optical flow algorithm
  • 29.Simple filter
  • 30.Threshold image processing
  • 31.Watershed segmentation algorithm
  • 32.View point cloud data
  • 33.AR vision
  • 34.AR QR code tracking
  • 35.Color tracking
  • 36.Object tracking
07.ROS2-camera usage course
  • Instructions for using camera
08.ROS2-basic course
  • 1.Introduction to ROS2
  • 2.ROS2 install Humble
  • 3.ROS2 development environment
  • 4.ROS2 workspace
  • 5.ROS2 function package
  • 6.ROS2 node
  • 7.ROS2 topic communication
  • 8.ROS2 service communication
  • 9.ROS2 action communication
  • 10.ROS2 custom interface message
  • 11.ROS2 parameter service case
  • 12.ROS2 meta-function package
  • 13.ROS2 distributed communication
  • 14.ROS2 DDS
  • 15.ROS2 time related API
  • 16.ROS2 common command tools
  • 17.ROS2 rviz2 use
  • 18.ROS2 rqt toolbox
  • 19.ROS2 Launch startup file configuration
  • 20.ROS2 recording and playback tool
  • 21.ROS2 URDF model
  • 22.ROS2 Gazebo simulation platform
  • 23.ROS2 TF2 coordinate transformation
09.ROS2-OpenCV course
  • 1. ROS+opencv application
  • 2. QR code creation and recognition
  • 3. AR vision
10.ROS2-Mediapipe course
  • 1.Hand detection
  • 2.Posture detection
  • 3.Overall detection
  • 4.Face detection
  • 5.Personal insurance identification
11.ROS2-Depth camera course
  • 1. Use of depth camera
  • 2. Camera internal parameter calibration
  • 3. Color tracking
  • 4. KCF object tracking
  • 5. ORB_SLAM2 basics
  • 6. ORB_SLAM2 PCL mapping
  • 7. ORB_SLAM2 Octomap mapping
12.Bracket installation video
  • Bracket installation video
Download
  • VM_ROS1
  • VM_ROS2
  • Code-ROS1
  • Code-ROS2
  • 3D_File
  • ROS_Basic_VM
Download ZIP

Welcome to AI View Depth camera repository

5. ORB_SLAM2 basics

5. ORB_SLAM2 Basics

5. ORB_SLAM2 Basics5.1, Introduction5.2, Official Case5.2.1, Dataset Location5.2.2, Monocular Test5.2.4, Binocular Test5.2.5, RGBD test5.3, ORB_SLAM2 ROS2 camera test5.3.1, monocular test

Official website: http://webdiis.unizar.es/~raulmur/orbslam/

TUM Dataset: http://vision.in.tum.de/data/datasets/rgbd-dataset/download

KITTI Dataset: http://www.cvlibs.net/datasets/kitti/eval_odometry.php

EuRoC Dataset: http://projects.asl.ethz.ch/datasets/doku.php?id=kmavvisualinertialdatasets

orb_slam2_ros: http://wiki.ros.org/orb_slam2_ros

ORB-SLAM: https://github.com/raulmur/ORB_SLAM

ORB-SLAM2: https://github.com/raulmur/ORB_SLAM2

ORB-SLAM3: https://github.com/UZ-SLAMLab/ORB_SLAM3

5.1, Introduction

ORB-SLAM is mainly used for monocular SLAM;

ORB-SLAM2 version supports three interfaces: monocular, binocular and RGBD;

ORB-SLAM3 version adds IMU coupling and supports fisheye cameras.

All steps of ORB-SLAM use the ORB features of the image uniformly. ORB features are a very fast feature extraction method with rotation invariance and can be used to construct scale invariance using pyramids. Using unified ORB features helps SLAM algorithms to be consistent in feature extraction and tracking, keyframe selection, 3D reconstruction, loop closure detection and other steps. The system is also robust to violent motion and supports loop closure detection and relocalization of wide baselines, including fully automatic initialization. Since the ORB-SLAM system is a feature point-based SLAM system, it can calculate the trajectory of the camera in real time and generate sparse 3D reconstruction results of the scene.

Based on ORB-SLAM, ORB-SLAM2 contributes:

  1. The first open source SLAM system for monocular, stereo and RGBD cameras, including loop closure and relocalization and map reuse.

  2. RGBD results show that using BA can achieve more accuracy than ICP or minimization based on photometric and depth errors.

  3. By using far and near points in the stereo, as well as monocular observations, the stereo results are more accurate than direct stereo SLAM algorithms.

  4. The light positioning mode can effectively reuse maps.

ORB-SLAM2 includes modules common to all SLAM systems: tracking, mapping, relocalization, and loop closing. The following figure shows the process of ORB-SLAM2.

12.5.1

5.2, Official Case

5.2.1, Dataset Location

xxxxxxxxxx
/root/yahboomcar_ros2_ws/software/orbslam2/ORB_SLAM2-master/data

EuRoC's MH01 dataset and TUM's rgbd_dataset_freiburg1_xyz dataset were downloaded.

image-20230417111610512

If you need other datasets, you can download them from the following address:

xxxxxxxxxx
TUM Dataset: http://vision.in.tum.de/data/datasets/rgbd-dataset/download
KITTI Dataset: http://www.cvlibs.net/datasets/kitti/eval_odometry.php
EuRoC Dataset: http://projects.asl.ethz.ch/datasets/doku.php?id=kmavvisualinertialdatasets

5.2.2, Monocular Test

Here, take the EuRoC dataset as an example and enter the ORB_SLAM2 directory:

xxxxxxxxxx
cd /home/yahboom/orbslam2/ORB_SLAM2

Run the following command:

xxxxxxxxxx
Examples/Monocular/mono_euroc Vocabulary/ORBvoc.txt Examples/Monocular/EuRoC.yaml data/MH_01_easy/mav0/cam0/data Examples/Monocular/EuRoC_TimeStamps/MH01.txt

The successful operation interface is as shown below,

image-20231030153639673

The blue box is the key frame, the green box is the camera orientation, the black point is the saved point, and the red point is the point currently seen by the camera.

Click [Show Image] to view the image.

image-20231030153713905

After the test, the keyframe is saved to the KeyFrameTrajectory.txt file in the current directory:

xxxxxxxxxx
# Timestamp Position (x y z) + Posture (x y z w)
1341847980.722988 -0.0000464 0.0001060 0.0000110 -0.0000183 0.0001468 -0.0000286 1.0000000

5.2.4, Binocular Test

Here, take the EuRoC dataset as an example, enter the ORB_SLAM2 directory, and run the following command:

xxxxxxxxxx
cd /home/yahboom/orbslam2/ORB_SLAM2

Run the following command,

xxxxxxxxxx
Examples/Stereo/stereo_euroc Vocabulary/ORBvoc.txt Examples/Stereo/EuRoC.yaml data/MH_01_easy/mav0/cam0/data data/MH_01_easy/mav0/cam1/data Examples/Stereo/EuRoC_TimeStamps/MH01.txt

The successful operation interface is as follows:

image-20231030154344371

The blue box is the key frame, the green box is the camera orientation, the black point is the saved point, and the red point is the point currently seen by the camera.

Click [Show Image] to view the image.

image-20231030154418875

After the test, the keyframe is saved to the CameraTrajectory.txt file in the current directory

​x
# Timestamp Position (x y z) + Posture (x y z w)

1403636597.963556 -0.020445164 0.127641633 0.107868195 -0.136788622 -0.074876986 -0.044620439 0.986757994

5.2.5, RGBD test

Enter the ORB_SLAM2 directory and enter the following command:

xxxxxxxxxx
cd /home/yahboom/orbslam2/ORB_SLAM2

Run the following command,

xxxxxxxxxx
Examples/RGB-D/rgbd_tum Vocabulary/ORBvoc.txt Examples/RGB-D/TUM1.yaml data/rgbd_dataset_freiburg3_long_office_household data/rgbd_dataset_freiburg3_long_office_household/associations.txt

The successful operation interface is as follows:

image-20231030154811722

Click [Show Image] to view the image.

image-20231030154954526

CameraTrajectory.txt and KeyFrameTrajectory.txt will also be saved after the run

5.3, ORB_SLAM2 ROS2 camera test

5.3.1, monocular test

Start camera ORB_SLAM2 test

xxxxxxxxxx
# Start camera: only the RGB image of gemini camera is used here (equivalent to monocular)
ros2 launch astra_camera gemini.launch.xml
# Start orbslam node
ros2 launch yahboomcar_slam orbslam_ros_launch.py orb_slam_type:=mono

image-20231030151254075

When the command is executed, there is only a green box in the [ORB_SLAM2:Map Viewer] interface, and the [ORB_SLAM2:Current Frame] interface is trying to initialize. At this time, slowly move the camera up, down, left, and right to find feature points in the picture and initialize slam.

image-20231030151414056

Click [Show Image] to view the image.

image-20231030151438658

After the test, the keyframe is saved in the KeyFrameTrajectory.txt file in the following directory:

xxxxxxxxxx
~/orbbec_ws/src/ros2-ORB_SLAM2/src//monocular/KeyFrameTrajectory.txt

image-20230417160920005

As shown in the figure above, enter the [SLAM MODE] mode at this time. When running the monocular, each frame of the image must be continuously acquired to locate the camera. If the pure positioning mode [Localization Mode] in the upper left figure is selected, the camera will not be able to find its own position and must start acquiring keyframes again.

KCF object tracking
ORB_SLAM2 PCL mapping

COMPANY

  • About us
  • Team Style
  • Blog

LEARNING & EXPLORATION

  • Tutorials
  • Edge AI hardware
  • Educational robots
  • Embedded intelligent hardware

WHERE TO BUY

  • Yahboom Online Store
  • Amazon
  • Alibaba
  • AliExpress
  • Mercado

TECHNOLOGY SUPPORT

  • Email: support@yahboom.com

BE A DISTRIBUTOR

  • Email: sales@yahboom.com
QR Code

Copyright © 2017-2026 Yahboom. All Rights Reserved.

EN/中文