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.
-
ORBextractor.cc. This is a modified version of orb.cpp of OpenCV library. The original code is BSD licensed.
-
PnPsolver.h, PnPsolver.cc. This is a modified version of the epnp.h and epnp.cc of Vincent Lepetit. This code can be found in popular BSD-licensed computer vision libraries, such as OpenCV and OpenGV. The original code is FreeBSD.
-
MLPnPsolver.h, MLPnPsolver.cc. This is a modified version of the MLPnP of Steffen Urban from here. The original code is BSD licensed.
-
Function ORBmatcher::DescriptorDistance in ORBmatcher.cc. The code is from: http://graphics.stanford.edu/~seander/bithacks.html#CountBitsSetParallel. The code is in the public domain.
-
All code in DBoW2 folder. This is a modified version of DBoW2 and DLib library. All files included are BSD licensed.
-
All code in g2o folder. This is a modified version of g2o. All files included are BSD licensed.
-
All code in Sophus folder. This is a modified version of Sophus. MIT license.
-
Pangolin (visualization and user interface). MIT license.
-
OpenCV. BSD license.
-
Eigen3. For versions greater than 3.1.1 is MPL2, earlier versions are LGPLv3.
-
ROS (Optional, only if you build Examples/ROS). BSD license. In the manifest.xml the only declared package dependencies are roscpp, tf, sensor_msgs, image_transport, cv_bridge, which are all BSD licensed.