Skip to content

Commit

Permalink
Updated to V0.3beta
Browse files Browse the repository at this point in the history
- RGB-D compatibility, the RGB-D examples had been adapted to the new version.

- Kitti and TUM dataset compatibility, these examples had been adapted to the new version.

- ROS compatibility, It had been updated the old references in the code to work with this version.

- Config file parser, the YAML file contains the session configuration, a wrong parametrization may break the execution without any information to solve it. This version parses the file to read all the fields and give a proper answer if one of the fields have been wrong deffined or don't exist.

- Fixed minor bugs.
  • Loading branch information
richard-elvira committed Sep 7, 2020
1 parent 8ac600a commit ef97841
Show file tree
Hide file tree
Showing 29 changed files with 1,021 additions and 239 deletions.
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -46,3 +46,4 @@ cmake_modules/
cmake-build-debug/

*.pyc
*.osa
26 changes: 26 additions & 0 deletions Changelog.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
# ORB-SLAM3
Details of changes between the different versions.

### V0.3: Beta version, 4 Sep 2020

- RGB-D compatibility, the RGB-D examples had been adapted to the new version.

- Kitti and TUM dataset compatibility, these examples had been adapted to the new version.

- ROS compatibility, It had been updated the old references in the code to work with this version.

- Config file parser, the YAML file contains the session configuration, a wrong parametrization may break the execution without any information to solve it. This version parses the file to read all the fields and give a proper answer if one of the fields have been wrong deffined or don't exist.

- Fixed minor bugs.


### V0.2: Beta version, 7 Aug 2020
Initial release. It has these capabilities:

- Multiple-Maps capabilities, it is able to handle multiple maps in the same session and merge them when a common area is detected with a seamless fussion.

- Inertial sensor, the IMU initialization takes a 2 seconds to achieve a scale error less than 5\% and it is reffined in the next 10 seconds until is around 1\%. Inertial measures are integrated at frame rate to estimate the scale, gravity and velocity in order to improve the visual features detection and make the system robust to temporal occlusions.

- Fisheye sensor, the fisheye sensors are now fully supported in monocular and stereo.


2 changes: 1 addition & 1 deletion Dependencies.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
##List of Known Dependencies
###ORB-SLAM3 version 0.2
###ORB-SLAM3 version 0.3

In this document we list all the pieces of code included by ORB-SLAM3 and linked libraries which are not property of the authors of ORB-SLAM3.

Expand Down
3 changes: 3 additions & 0 deletions Examples/Monocular/EuRoC.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,9 @@ Camera.k2: 0.07395907
Camera.p1: 0.00019359
Camera.p2: 1.76187114e-05

Camera.width: 752
Camera.height: 480

# Camera frames per second
Camera.fps: 20.0

Expand Down
4 changes: 4 additions & 0 deletions Examples/Monocular/KITTI00-02.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,10 @@ Camera.fps: 10.0
# Color order of the images (0: BGR, 1: RGB. It is ignored if images are grayscale)
Camera.RGB: 1

# Camera resolution
Camera.width: 1241
Camera.height: 376

#--------------------------------------------------------------------------------------------
# ORB Parameters
#--------------------------------------------------------------------------------------------
Expand Down
4 changes: 4 additions & 0 deletions Examples/Monocular/KITTI03.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,10 @@ Camera.fps: 10.0
# Color order of the images (0: BGR, 1: RGB. It is ignored if images are grayscale)
Camera.RGB: 1

# Camera resolution
Camera.width: 1241
Camera.height: 376

#--------------------------------------------------------------------------------------------
# ORB Parameters
#--------------------------------------------------------------------------------------------
Expand Down
4 changes: 4 additions & 0 deletions Examples/Monocular/KITTI04-12.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,10 @@ Camera.fps: 10.0
# Color order of the images (0: BGR, 1: RGB. It is ignored if images are grayscale)
Camera.RGB: 1

# Camera resolution
Camera.width: 1241
Camera.height: 376

#--------------------------------------------------------------------------------------------
# ORB Parameters
#--------------------------------------------------------------------------------------------
Expand Down
4 changes: 4 additions & 0 deletions Examples/Monocular/TUM1.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,10 @@ Camera.fps: 30.0
# Color order of the images (0: BGR, 1: RGB. It is ignored if images are grayscale)
Camera.RGB: 1

# Camera resolution
Camera.width: 640
Camera.height: 480

#--------------------------------------------------------------------------------------------
# ORB Parameters
#--------------------------------------------------------------------------------------------
Expand Down
4 changes: 4 additions & 0 deletions Examples/Monocular/TUM2.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,10 @@ Camera.fps: 30.0
# Color order of the images (0: BGR, 1: RGB. It is ignored if images are grayscale)
Camera.RGB: 1

# Camera resolution
Camera.width: 640
Camera.height: 480

#--------------------------------------------------------------------------------------------
# ORB Parameters
#--------------------------------------------------------------------------------------------
Expand Down
4 changes: 4 additions & 0 deletions Examples/Monocular/TUM3.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,10 @@ Camera.fps: 30.0
# Color order of the images (0: BGR, 1: RGB. It is ignored if images are grayscale)
Camera.RGB: 1

# Camera resolution
Camera.width: 640
Camera.height: 480

#--------------------------------------------------------------------------------------------
# ORB Parameters
#--------------------------------------------------------------------------------------------
Expand Down
3 changes: 3 additions & 0 deletions Examples/RGB-D/TUM2.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,9 @@ ThDepth: 40.0
# Deptmap values factor
DepthMapFactor: 5208.0

Camera.width: 640
Camera.height: 480

#--------------------------------------------------------------------------------------------
# ORB Parameters
#--------------------------------------------------------------------------------------------
Expand Down
3 changes: 3 additions & 0 deletions Examples/RGB-D/TUM3.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,9 @@ ThDepth: 40.0
# Deptmap values factor
DepthMapFactor: 5000.0

Camera.width: 640
Camera.height: 480

#--------------------------------------------------------------------------------------------
# ORB Parameters
#--------------------------------------------------------------------------------------------
Expand Down
2 changes: 1 addition & 1 deletion Examples/Stereo-Inertial/EuRoC.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ Camera.bf: 47.90639384423901
Camera.RGB: 1

# Close/Far threshold. Baseline times.
ThDepth: 35 # 35
ThDepth: 35.0 # 35

# Transformation from camera 0 to body-frame (imu)
Tbc: !!opencv-matrix
Expand Down
9 changes: 6 additions & 3 deletions Examples/Stereo-Inertial/TUM_512.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -39,8 +39,11 @@ Tlr: !!opencv-matrix
-0.000656143613644, -0.046896036240590, 0.998899560146304, 0.001015350132563]

# Lapping area between images
Lapping.left: 0
Lapping.right: 511
Camera.lappingBegin: 0
Camera.lappingEnd: 511

Camera2.lappingBegin: 0
Camera2.lappingEnd: 511

# Camera resolution
Camera.width: 512
Expand All @@ -53,7 +56,7 @@ Camera.fps: 20.0
Camera.RGB: 1

# Close/Far threshold. Baseline times.
ThDepth: 40
ThDepth: 40.0
Camera.bf: 19.3079


Expand Down
9 changes: 6 additions & 3 deletions Examples/Stereo-Inertial/TUM_512_outdoors.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -39,8 +39,11 @@ Tlr: !!opencv-matrix
-0.000656143613644, -0.046896036240590, 0.998899560146304, 0.001015350132563]

# Lapping area between images
Lapping.left: 0
Lapping.right: 511
Camera.lappingBegin: 0
Camera.lappingEnd: 511

Camera2.lappingBegin: 0
Camera2.lappingEnd: 511

# Camera resolution
Camera.width: 512
Expand All @@ -53,7 +56,7 @@ Camera.fps: 20.0
Camera.RGB: 1

# Close/Far threshold. Baseline times.
ThDepth: 40
ThDepth: 40.0
Camera.bf: 19.3079


Expand Down
2 changes: 1 addition & 1 deletion Examples/Stereo/EuRoC.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ Camera.bf: 47.90639384423901
Camera.RGB: 1

# Close/Far threshold. Baseline times.
ThDepth: 35
ThDepth: 35.0

#--------------------------------------------------------------------------------------------
# Stereo Rectification. Only if you need to pre-rectify the images.
Expand Down
2 changes: 1 addition & 1 deletion Examples/Stereo/KITTI00-02.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ Camera.bf: 386.1448
Camera.RGB: 1

# Close/Far threshold. Baseline times.
ThDepth: 35
ThDepth: 35.0

#--------------------------------------------------------------------------------------------
# ORB Parameters
Expand Down
4 changes: 1 addition & 3 deletions Examples/Stereo/KITTI03.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,6 @@ Camera.k2: 0.0
Camera.p1: 0.0
Camera.p2: 0.0

Camera.bFishEye: 0

Camera.width: 1241
Camera.height: 376

Expand All @@ -31,7 +29,7 @@ Camera.bf: 387.5744
Camera.RGB: 1

# Close/Far threshold. Baseline times.
ThDepth: 40
ThDepth: 40.0

#--------------------------------------------------------------------------------------------
# ORB Parameters
Expand Down
2 changes: 1 addition & 1 deletion Examples/Stereo/KITTI04-12.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ Camera.bf: 379.8145
Camera.RGB: 1

# Close/Far threshold. Baseline times.
ThDepth: 40
ThDepth: 40.0

#--------------------------------------------------------------------------------------------
# ORB Parameters
Expand Down
12 changes: 9 additions & 3 deletions Examples/Stereo/TUM_512.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -46,10 +46,16 @@ Tlr: !!opencv-matrix
-0.000823363992158, 0.998899461915674, 0.046895490788700, 0.001946204678584,
-0.000656143613644, -0.046896036240590, 0.998899560146304, 0.001015350132563]

# Camera resolution
Camera.width: 512
Camera.height: 512

# Lapping area between images
Lapping.left: 0
Lapping.right: 511
Camera.lappingBegin: 0
Camera.lappingEnd: 511

Camera2.lappingBegin: 0
Camera2.lappingEnd: 511

# Camera frames per second
Camera.fps: 20.0
Expand All @@ -58,7 +64,7 @@ Camera.fps: 20.0
Camera.RGB: 1

# Close/Far threshold. Baseline times.
ThDepth: 40
ThDepth: 40.0

Camera.bf: 19.3079

Expand Down
4 changes: 3 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
@@ -1,8 +1,10 @@
# ORB-SLAM3

### V0.3: Beta version, 7 Aug 2020
### V0.3: Beta version, 4 Sep 2020
**Authors:** Carlos Campos, Richard Elvira, Juan J. Gómez Rodríguez, [José M. M. Montiel](http://webdiis.unizar.es/~josemari/), [Juan D. Tardos](http://webdiis.unizar.es/~jdtardos/).

The [Changelog](https://github.com/UZ-SLAMLab/ORB_SLAM3/Changelog.md) describes the features of each version.

ORB-SLAM3 is the first real-time SLAM library able to perform **Visual, Visual-Inertial and Multi-Map SLAM** with **monocular, stereo and RGB-D** cameras, using **pin-hole and fisheye** lens models. In all sensor configurations, ORB-SLAM3 is as robust as the best systems available in the literature, and significantly more accurate.

We provide examples to run ORB-SLAM3 in the [EuRoC dataset](http://projects.asl.ethz.ch/datasets/doku.php?id=kmavvisualinertialdatasets) using stereo or monocular, with or without IMU, and in the [TUM-VI dataset](https://vision.in.tum.de/data/datasets/visual-inertial-dataset) using fisheye stereo or monocular, with or without IMU. Videos of some example executions can be found at [ORB-SLAM3 channel](https://www.youtube.com/channel/UCXVt-kXG6T95Z4tVaYlU80Q).
Expand Down
2 changes: 2 additions & 0 deletions include/MapDrawer.h
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,8 @@ class MapDrawer

private:

bool ParseViewerParamFile(cv::FileStorage &fSettings);

float mKeyFrameSize;
float mKeyFrameLineWidth;
float mGraphLineWidth;
Expand Down
5 changes: 5 additions & 0 deletions include/Tracking.h
Original file line number Diff line number Diff line change
Expand Up @@ -62,6 +62,11 @@ class Tracking

~Tracking();

// Parse the config file
bool ParseCamParamFile(cv::FileStorage &fSettings);
bool ParseORBParamFile(cv::FileStorage &fSettings);
bool ParseIMUParamFile(cv::FileStorage &fSettings);

// Preprocess the input and call Track(). Extract features and performs stereo matching.
cv::Mat GrabImageStereo(const cv::Mat &imRectLeft,const cv::Mat &imRectRight, const double &timestamp, string filename);
cv::Mat GrabImageRGBD(const cv::Mat &imRGB,const cv::Mat &imD, const double &timestamp, string filename);
Expand Down
2 changes: 2 additions & 0 deletions include/Viewer.h
Original file line number Diff line number Diff line change
Expand Up @@ -61,6 +61,8 @@ class Viewer
bool both;
private:

bool ParseViewerParamFile(cv::FileStorage &fSettings);

bool Stop();

System* mpSystem;
Expand Down
4 changes: 2 additions & 2 deletions src/Frame.cc
Original file line number Diff line number Diff line change
Expand Up @@ -1047,8 +1047,8 @@ Frame::Frame(const cv::Mat &imLeft, const cv::Mat &imRight, const double &timeSt
mvInvLevelSigma2 = mpORBextractorLeft->GetInverseScaleSigmaSquares();

// ORB extraction
thread threadLeft(&Frame::ExtractORB,this,0,imLeft,0,511);
thread threadRight(&Frame::ExtractORB,this,1,imRight,0,511);
thread threadLeft(&Frame::ExtractORB,this,0,imLeft,static_cast<KannalaBrandt8*>(mpCamera)->mvLappingArea[0],static_cast<KannalaBrandt8*>(mpCamera)->mvLappingArea[1]);
thread threadRight(&Frame::ExtractORB,this,1,imRight,static_cast<KannalaBrandt8*>(mpCamera2)->mvLappingArea[0],static_cast<KannalaBrandt8*>(mpCamera2)->mvLappingArea[1]);
threadLeft.join();
threadRight.join();
std::chrono::steady_clock::time_point t2 = std::chrono::steady_clock::now();
Expand Down
Loading

0 comments on commit ef97841

Please sign in to comment.