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 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.