├── .appveyor.yml
├── .cproject
├── .devcontainer
├── android
│ └── devcontainer.json
├── bionic
│ └── devcontainer.json
├── focal
│ └── devcontainer.json
├── jammy
│ └── devcontainer.json
└── noble
│ └── devcontainer.json
├── .dockerignore
├── .github
└── workflows
│ ├── cmake-ros.yml
│ ├── cmake.yml
│ ├── docker.yml
│ └── scheduled-stats.yml
├── .gitignore
├── .project
├── .settings
├── org.eclipse.cdt.codan.core.prefs
└── org.eclipse.cdt.core.prefs
├── CMakeLists.txt
├── LICENSE
├── README.md
├── RTABMapConfig.cmake.in
├── Version.h.in
├── app
├── CMakeLists.txt
├── android
│ ├── .gitignore
│ ├── .settings
│ │ └── org.eclipse.jdt.core.prefs
│ ├── AndroidManifest.xml.in
│ ├── CMakeLists.txt
│ ├── CameraAvailability.h.in
│ ├── ant.properties.in
│ ├── custom_rules.xml
│ ├── ic_launcher-web.png
│ ├── info.txt.in
│ ├── jni
│ │ ├── .gitignore
│ │ ├── CMakeLists.txt
│ │ ├── CameraARCore.cpp
│ │ ├── CameraARCore.h
│ │ ├── CameraAREngine.cpp
│ │ ├── CameraAREngine.h
│ │ ├── CameraMobile.cpp
│ │ ├── CameraMobile.h
│ │ ├── CameraTango.cpp
│ │ ├── CameraTango.h
│ │ ├── Measure.h
│ │ ├── ProgressionStatus.h
│ │ ├── RTABMapApp.cpp
│ │ ├── RTABMapApp.h
│ │ ├── background_renderer.cc
│ │ ├── background_renderer.h
│ │ ├── bounding_box_drawable.h
│ │ ├── graph_drawable.cpp
│ │ ├── graph_drawable.h
│ │ ├── jni_interface.cpp
│ │ ├── point_cloud_drawable.cpp
│ │ ├── point_cloud_drawable.h
│ │ ├── quad_color.cpp
│ │ ├── quad_color.h
│ │ ├── resources
│ │ │ └── text_atlas.png
│ │ ├── scene.cpp
│ │ ├── scene.h
│ │ ├── tango-gl
│ │ │ ├── axis.cpp
│ │ │ ├── band.cpp
│ │ │ ├── bounding_box.cpp
│ │ │ ├── camera.cpp
│ │ │ ├── circle.cpp
│ │ │ ├── conversions.cpp
│ │ │ ├── cube.cpp
│ │ │ ├── drawable_object.cpp
│ │ │ ├── frustum.cpp
│ │ │ ├── gesture_camera.cpp
│ │ │ ├── goal_marker.cpp
│ │ │ ├── grid.cpp
│ │ │ ├── include
│ │ │ │ └── tango-gl
│ │ │ │ │ ├── axis.h
│ │ │ │ │ ├── band.h
│ │ │ │ │ ├── bounding_box.h
│ │ │ │ │ ├── camera.h
│ │ │ │ │ ├── circle.h
│ │ │ │ │ ├── color.h
│ │ │ │ │ ├── conversions.h
│ │ │ │ │ ├── cube.h
│ │ │ │ │ ├── drawable_object.h
│ │ │ │ │ ├── frustum.h
│ │ │ │ │ ├── gesture_camera.h
│ │ │ │ │ ├── goal_marker.h
│ │ │ │ │ ├── grid.h
│ │ │ │ │ ├── line.h
│ │ │ │ │ ├── mesh.h
│ │ │ │ │ ├── obj_loader.h
│ │ │ │ │ ├── quad.h
│ │ │ │ │ ├── segment.h
│ │ │ │ │ ├── segment_drawable.h
│ │ │ │ │ ├── shaders.h
│ │ │ │ │ ├── texture.h
│ │ │ │ │ ├── trace.h
│ │ │ │ │ ├── transform.h
│ │ │ │ │ ├── triangle.h
│ │ │ │ │ ├── util.h
│ │ │ │ │ └── video_overlay.h
│ │ │ ├── line.cpp
│ │ │ ├── mesh.cpp
│ │ │ ├── obj_loader.cpp
│ │ │ ├── quad.cpp
│ │ │ ├── segment_drawable.cpp
│ │ │ ├── shaders.cpp
│ │ │ ├── texture.cpp
│ │ │ ├── trace.cpp
│ │ │ ├── transform.cpp
│ │ │ ├── triangle.cpp
│ │ │ ├── util.cpp
│ │ │ └── video_overlay.cpp
│ │ ├── text_drawable.cpp
│ │ ├── text_drawable.h
│ │ ├── third-party
│ │ │ ├── include
│ │ │ │ └── glm
│ │ │ │ │ ├── common.hpp
│ │ │ │ │ ├── detail
│ │ │ │ │ ├── _features.hpp
│ │ │ │ │ ├── _fixes.hpp
│ │ │ │ │ ├── _literals.hpp
│ │ │ │ │ ├── _noise.hpp
│ │ │ │ │ ├── _swizzle.hpp
│ │ │ │ │ ├── _swizzle_func.hpp
│ │ │ │ │ ├── _vectorize.hpp
│ │ │ │ │ ├── dummy.cpp
│ │ │ │ │ ├── func_common.hpp
│ │ │ │ │ ├── func_common.inl
│ │ │ │ │ ├── func_exponential.hpp
│ │ │ │ │ ├── func_exponential.inl
│ │ │ │ │ ├── func_geometric.hpp
│ │ │ │ │ ├── func_geometric.inl
│ │ │ │ │ ├── func_integer.hpp
│ │ │ │ │ ├── func_integer.inl
│ │ │ │ │ ├── func_matrix.hpp
│ │ │ │ │ ├── func_matrix.inl
│ │ │ │ │ ├── func_noise.hpp
│ │ │ │ │ ├── func_noise.inl
│ │ │ │ │ ├── func_packing.hpp
│ │ │ │ │ ├── func_packing.inl
│ │ │ │ │ ├── func_trigonometric.hpp
│ │ │ │ │ ├── func_trigonometric.inl
│ │ │ │ │ ├── func_vector_relational.hpp
│ │ │ │ │ ├── func_vector_relational.inl
│ │ │ │ │ ├── glm.cpp
│ │ │ │ │ ├── hint.hpp
│ │ │ │ │ ├── intrinsic_common.hpp
│ │ │ │ │ ├── intrinsic_common.inl
│ │ │ │ │ ├── intrinsic_exponential.hpp
│ │ │ │ │ ├── intrinsic_exponential.inl
│ │ │ │ │ ├── intrinsic_geometric.hpp
│ │ │ │ │ ├── intrinsic_geometric.inl
│ │ │ │ │ ├── intrinsic_integer.hpp
│ │ │ │ │ ├── intrinsic_integer.inl
│ │ │ │ │ ├── intrinsic_matrix.hpp
│ │ │ │ │ ├── intrinsic_matrix.inl
│ │ │ │ │ ├── intrinsic_trigonometric.hpp
│ │ │ │ │ ├── intrinsic_trigonometric.inl
│ │ │ │ │ ├── intrinsic_vector_relational.hpp
│ │ │ │ │ ├── intrinsic_vector_relational.inl
│ │ │ │ │ ├── precision.hpp
│ │ │ │ │ ├── precision.inl
│ │ │ │ │ ├── setup.hpp
│ │ │ │ │ ├── type_float.hpp
│ │ │ │ │ ├── type_gentype.hpp
│ │ │ │ │ ├── type_gentype.inl
│ │ │ │ │ ├── type_half.hpp
│ │ │ │ │ ├── type_half.inl
│ │ │ │ │ ├── type_int.hpp
│ │ │ │ │ ├── type_mat.hpp
│ │ │ │ │ ├── type_mat.inl
│ │ │ │ │ ├── type_mat2x2.hpp
│ │ │ │ │ ├── type_mat2x2.inl
│ │ │ │ │ ├── type_mat2x3.hpp
│ │ │ │ │ ├── type_mat2x3.inl
│ │ │ │ │ ├── type_mat2x4.hpp
│ │ │ │ │ ├── type_mat2x4.inl
│ │ │ │ │ ├── type_mat3x2.hpp
│ │ │ │ │ ├── type_mat3x2.inl
│ │ │ │ │ ├── type_mat3x3.hpp
│ │ │ │ │ ├── type_mat3x3.inl
│ │ │ │ │ ├── type_mat3x4.hpp
│ │ │ │ │ ├── type_mat3x4.inl
│ │ │ │ │ ├── type_mat4x2.hpp
│ │ │ │ │ ├── type_mat4x2.inl
│ │ │ │ │ ├── type_mat4x3.hpp
│ │ │ │ │ ├── type_mat4x3.inl
│ │ │ │ │ ├── type_mat4x4.hpp
│ │ │ │ │ ├── type_mat4x4.inl
│ │ │ │ │ ├── type_vec.hpp
│ │ │ │ │ ├── type_vec.inl
│ │ │ │ │ ├── type_vec1.hpp
│ │ │ │ │ ├── type_vec1.inl
│ │ │ │ │ ├── type_vec2.hpp
│ │ │ │ │ ├── type_vec2.inl
│ │ │ │ │ ├── type_vec3.hpp
│ │ │ │ │ ├── type_vec3.inl
│ │ │ │ │ ├── type_vec4.hpp
│ │ │ │ │ └── type_vec4.inl
│ │ │ │ │ ├── exponential.hpp
│ │ │ │ │ ├── ext.hpp
│ │ │ │ │ ├── fwd.hpp
│ │ │ │ │ ├── geometric.hpp
│ │ │ │ │ ├── glm.hpp
│ │ │ │ │ ├── gtc
│ │ │ │ │ ├── constants.hpp
│ │ │ │ │ ├── constants.inl
│ │ │ │ │ ├── epsilon.hpp
│ │ │ │ │ ├── epsilon.inl
│ │ │ │ │ ├── matrix_access.hpp
│ │ │ │ │ ├── matrix_access.inl
│ │ │ │ │ ├── matrix_integer.hpp
│ │ │ │ │ ├── matrix_inverse.hpp
│ │ │ │ │ ├── matrix_inverse.inl
│ │ │ │ │ ├── matrix_transform.hpp
│ │ │ │ │ ├── matrix_transform.inl
│ │ │ │ │ ├── noise.hpp
│ │ │ │ │ ├── noise.inl
│ │ │ │ │ ├── packing.hpp
│ │ │ │ │ ├── packing.inl
│ │ │ │ │ ├── quaternion.hpp
│ │ │ │ │ ├── quaternion.inl
│ │ │ │ │ ├── random.hpp
│ │ │ │ │ ├── random.inl
│ │ │ │ │ ├── reciprocal.hpp
│ │ │ │ │ ├── reciprocal.inl
│ │ │ │ │ ├── type_precision.hpp
│ │ │ │ │ ├── type_precision.inl
│ │ │ │ │ ├── type_ptr.hpp
│ │ │ │ │ ├── type_ptr.inl
│ │ │ │ │ ├── ulp.hpp
│ │ │ │ │ ├── ulp.inl
│ │ │ │ │ └── user_defined_type.hpp
│ │ │ │ │ ├── gtx
│ │ │ │ │ ├── associated_min_max.hpp
│ │ │ │ │ ├── associated_min_max.inl
│ │ │ │ │ ├── bit.hpp
│ │ │ │ │ ├── bit.inl
│ │ │ │ │ ├── closest_point.hpp
│ │ │ │ │ ├── closest_point.inl
│ │ │ │ │ ├── color_space.hpp
│ │ │ │ │ ├── color_space.inl
│ │ │ │ │ ├── color_space_YCoCg.hpp
│ │ │ │ │ ├── color_space_YCoCg.inl
│ │ │ │ │ ├── common.hpp
│ │ │ │ │ ├── common.inl
│ │ │ │ │ ├── compatibility.hpp
│ │ │ │ │ ├── compatibility.inl
│ │ │ │ │ ├── component_wise.hpp
│ │ │ │ │ ├── component_wise.inl
│ │ │ │ │ ├── constants.hpp
│ │ │ │ │ ├── dual_quaternion.hpp
│ │ │ │ │ ├── dual_quaternion.inl
│ │ │ │ │ ├── epsilon.hpp
│ │ │ │ │ ├── euler_angles.hpp
│ │ │ │ │ ├── euler_angles.inl
│ │ │ │ │ ├── extend.hpp
│ │ │ │ │ ├── extend.inl
│ │ │ │ │ ├── extented_min_max.hpp
│ │ │ │ │ ├── extented_min_max.inl
│ │ │ │ │ ├── fast_exponential.hpp
│ │ │ │ │ ├── fast_exponential.inl
│ │ │ │ │ ├── fast_square_root.hpp
│ │ │ │ │ ├── fast_square_root.inl
│ │ │ │ │ ├── fast_trigonometry.hpp
│ │ │ │ │ ├── fast_trigonometry.inl
│ │ │ │ │ ├── gradient_paint.hpp
│ │ │ │ │ ├── gradient_paint.inl
│ │ │ │ │ ├── handed_coordinate_space.hpp
│ │ │ │ │ ├── handed_coordinate_space.inl
│ │ │ │ │ ├── inertia.hpp
│ │ │ │ │ ├── inertia.inl
│ │ │ │ │ ├── int_10_10_10_2.hpp
│ │ │ │ │ ├── int_10_10_10_2.inl
│ │ │ │ │ ├── integer.hpp
│ │ │ │ │ ├── integer.inl
│ │ │ │ │ ├── intersect.hpp
│ │ │ │ │ ├── intersect.inl
│ │ │ │ │ ├── io.hpp
│ │ │ │ │ ├── io.inl
│ │ │ │ │ ├── log_base.hpp
│ │ │ │ │ ├── log_base.inl
│ │ │ │ │ ├── matrix_cross_product.hpp
│ │ │ │ │ ├── matrix_cross_product.inl
│ │ │ │ │ ├── matrix_decompose.hpp
│ │ │ │ │ ├── matrix_decompose.inl
│ │ │ │ │ ├── matrix_interpolation.hpp
│ │ │ │ │ ├── matrix_interpolation.inl
│ │ │ │ │ ├── matrix_major_storage.hpp
│ │ │ │ │ ├── matrix_major_storage.inl
│ │ │ │ │ ├── matrix_operation.hpp
│ │ │ │ │ ├── matrix_operation.inl
│ │ │ │ │ ├── matrix_query.hpp
│ │ │ │ │ ├── matrix_query.inl
│ │ │ │ │ ├── matrix_transform_2d.hpp
│ │ │ │ │ ├── matrix_transform_2d.inl
│ │ │ │ │ ├── mixed_product.hpp
│ │ │ │ │ ├── mixed_product.inl
│ │ │ │ │ ├── multiple.hpp
│ │ │ │ │ ├── multiple.inl
│ │ │ │ │ ├── noise.hpp
│ │ │ │ │ ├── norm.hpp
│ │ │ │ │ ├── norm.inl
│ │ │ │ │ ├── normal.hpp
│ │ │ │ │ ├── normal.inl
│ │ │ │ │ ├── normalize_dot.hpp
│ │ │ │ │ ├── normalize_dot.inl
│ │ │ │ │ ├── number_precision.hpp
│ │ │ │ │ ├── number_precision.inl
│ │ │ │ │ ├── optimum_pow.hpp
│ │ │ │ │ ├── optimum_pow.inl
│ │ │ │ │ ├── orthonormalize.hpp
│ │ │ │ │ ├── orthonormalize.inl
│ │ │ │ │ ├── perpendicular.hpp
│ │ │ │ │ ├── perpendicular.inl
│ │ │ │ │ ├── polar_coordinates.hpp
│ │ │ │ │ ├── polar_coordinates.inl
│ │ │ │ │ ├── projection.hpp
│ │ │ │ │ ├── projection.inl
│ │ │ │ │ ├── quaternion.hpp
│ │ │ │ │ ├── quaternion.inl
│ │ │ │ │ ├── random.hpp
│ │ │ │ │ ├── raw_data.hpp
│ │ │ │ │ ├── raw_data.inl
│ │ │ │ │ ├── reciprocal.hpp
│ │ │ │ │ ├── rotate_normalized_axis.hpp
│ │ │ │ │ ├── rotate_normalized_axis.inl
│ │ │ │ │ ├── rotate_vector.hpp
│ │ │ │ │ ├── rotate_vector.inl
│ │ │ │ │ ├── scalar_relational.hpp
│ │ │ │ │ ├── scalar_relational.inl
│ │ │ │ │ ├── simd_mat4.hpp
│ │ │ │ │ ├── simd_mat4.inl
│ │ │ │ │ ├── simd_quat.hpp
│ │ │ │ │ ├── simd_quat.inl
│ │ │ │ │ ├── simd_vec4.hpp
│ │ │ │ │ ├── simd_vec4.inl
│ │ │ │ │ ├── spline.hpp
│ │ │ │ │ ├── spline.inl
│ │ │ │ │ ├── std_based_type.hpp
│ │ │ │ │ ├── std_based_type.inl
│ │ │ │ │ ├── string_cast.hpp
│ │ │ │ │ ├── string_cast.inl
│ │ │ │ │ ├── transform.hpp
│ │ │ │ │ ├── transform.inl
│ │ │ │ │ ├── transform2.hpp
│ │ │ │ │ ├── transform2.inl
│ │ │ │ │ ├── ulp.hpp
│ │ │ │ │ ├── unsigned_int.hpp
│ │ │ │ │ ├── unsigned_int.inl
│ │ │ │ │ ├── vec1.hpp
│ │ │ │ │ ├── vec1.inl
│ │ │ │ │ ├── vector_angle.hpp
│ │ │ │ │ ├── vector_angle.inl
│ │ │ │ │ ├── vector_query.hpp
│ │ │ │ │ ├── vector_query.inl
│ │ │ │ │ ├── wrap.hpp
│ │ │ │ │ └── wrap.inl
│ │ │ │ │ ├── integer.hpp
│ │ │ │ │ ├── mat2x2.hpp
│ │ │ │ │ ├── mat2x3.hpp
│ │ │ │ │ ├── mat2x4.hpp
│ │ │ │ │ ├── mat3x2.hpp
│ │ │ │ │ ├── mat3x3.hpp
│ │ │ │ │ ├── mat3x4.hpp
│ │ │ │ │ ├── mat4x2.hpp
│ │ │ │ │ ├── mat4x3.hpp
│ │ │ │ │ ├── mat4x4.hpp
│ │ │ │ │ ├── matrix.hpp
│ │ │ │ │ ├── packing.hpp
│ │ │ │ │ ├── trigonometric.hpp
│ │ │ │ │ ├── vec2.hpp
│ │ │ │ │ ├── vec3.hpp
│ │ │ │ │ ├── vec4.hpp
│ │ │ │ │ └── vector_relational.hpp
│ │ │ └── lib
│ │ │ │ └── .gitignore
│ │ └── util.h
│ ├── libs
│ │ ├── .gitignore
│ │ ├── android-support-v4.jar
│ │ └── httpclient-4.2.1.jar
│ ├── res
│ │ ├── drawable-hdpi
│ │ │ └── ic_launcher.png
│ │ ├── drawable-mdpi
│ │ │ └── ic_launcher.png
│ │ ├── drawable-xhdpi
│ │ │ ├── ic_launcher.png
│ │ │ ├── start96.png
│ │ │ └── stop96.png
│ │ ├── drawable-xxhdpi
│ │ │ └── ic_launcher.png
│ │ ├── drawable
│ │ │ └── custom_seekbar.xml
│ │ ├── layout
│ │ │ ├── about.xml
│ │ │ ├── activity_rtabmap.xml
│ │ │ ├── activity_settings.xml
│ │ │ ├── activity_sketchfab.xml
│ │ │ ├── auth_dialog.xml
│ │ │ └── database_list.xml
│ │ ├── menu
│ │ │ └── optionmenu.xml
│ │ ├── values
│ │ │ ├── arrays.xml
│ │ │ ├── dimens.xml
│ │ │ ├── strings.xml
│ │ │ └── styles.xml
│ │ └── xml
│ │ │ └── provider_paths.xml
│ └── src
│ │ └── com
│ │ └── introlab
│ │ └── rtabmap
│ │ ├── ARCoreSharedCamera.java
│ │ ├── AboutDialog.java
│ │ ├── CustomSwitchPreference.java
│ │ ├── DatabaseListArrayAdapter.java
│ │ ├── DisplayRotationHelper.java
│ │ ├── MultipartUtility.java
│ │ ├── NDSpinner.java
│ │ ├── PermissionHelper.java
│ │ ├── RTABMapActivity.java
│ │ ├── RTABMapLib.java
│ │ ├── Renderer.java
│ │ ├── SettingsActivity.java
│ │ ├── SketchfabActivity.java
│ │ ├── TOF_ImageReader.java
│ │ ├── TangoInitializationHelper.java
│ │ ├── TextManager.java
│ │ ├── TextObject.java
│ │ └── Util.java
├── ios
│ ├── .gitignore
│ ├── RTABMapApp.xcodeproj
│ │ ├── project.pbxproj
│ │ ├── project.xcworkspace
│ │ │ ├── contents.xcworkspacedata
│ │ │ └── xcshareddata
│ │ │ │ ├── IDEWorkspaceChecks.plist
│ │ │ │ └── swiftpm
│ │ │ │ └── Package.resolved
│ │ └── xcshareddata
│ │ │ └── xcschemes
│ │ │ └── RTABMapApp.xcscheme
│ ├── RTABMapApp
│ │ ├── .gitignore
│ │ ├── AppDelegate.swift
│ │ ├── Assets.xcassets
│ │ │ ├── AccentColor.colorset
│ │ │ │ └── Contents.json
│ │ │ ├── AppIcon.appiconset
│ │ │ │ ├── Contents.json
│ │ │ │ ├── RTAB-Map1024.png
│ │ │ │ ├── RTAB-Map120-1.png
│ │ │ │ ├── RTAB-Map120.png
│ │ │ │ ├── RTAB-Map152.png
│ │ │ │ ├── RTAB-Map167.png
│ │ │ │ ├── RTAB-Map180.png
│ │ │ │ ├── RTAB-Map20.png
│ │ │ │ ├── RTAB-Map29.png
│ │ │ │ ├── RTAB-Map40-1.png
│ │ │ │ ├── RTAB-Map40-2.png
│ │ │ │ ├── RTAB-Map40.png
│ │ │ │ ├── RTAB-Map58-1.png
│ │ │ │ ├── RTAB-Map58.png
│ │ │ │ ├── RTAB-Map60.png
│ │ │ │ ├── RTAB-Map76.png
│ │ │ │ ├── RTAB-Map80-1.png
│ │ │ │ ├── RTAB-Map80.png
│ │ │ │ └── RTAB-Map87.png
│ │ │ └── Contents.json
│ │ ├── Base.lproj
│ │ │ ├── LaunchScreen.storyboard
│ │ │ └── Main.storyboard
│ │ ├── DatabaseView.swift
│ │ ├── Images.xcassets
│ │ │ ├── Contents.json
│ │ │ └── RTAB-Map1024.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ └── RTAB-Map1024.png
│ │ ├── Info.plist
│ │ ├── NativeWrapper.cpp
│ │ ├── NativeWrapper.hpp
│ │ ├── PointCloud.swift
│ │ ├── PointCloudData.swift
│ │ ├── RTABMap.swift
│ │ ├── RTABMapApp-Bridging-Header.h
│ │ ├── RTABMapApp.entitlements
│ │ ├── SceneDelegate.swift
│ │ ├── VerticalScrollerView.swift
│ │ ├── ViewController.swift
│ │ ├── install_deps.sh
│ │ └── text_atlas_png.h
│ └── Settings.bundle
│ │ ├── Assembling.plist
│ │ ├── License.plist
│ │ ├── Mapping.plist
│ │ ├── Root.plist
│ │ └── en.lproj
│ │ └── Root.strings
└── src
│ ├── CMakeLists.txt
│ ├── RTABMap.icns
│ ├── RTABMap.ico
│ ├── RTABMap.rc
│ └── main.cpp
├── archive
├── 2010-LoopClosure
│ ├── Bayes
│ │ ├── RecursiveBayes.m
│ │ ├── adjustLikelihood.m
│ │ ├── computeLikelihood.m
│ │ ├── generatePrediction.m
│ │ ├── updateCommonSignature.m
│ │ └── updateDictionary.m
│ ├── ParticleFilter
│ │ ├── pf_filter.m
│ │ ├── pf_resample.m
│ │ ├── test_kinect.m
│ │ ├── test_kinect.m~
│ │ ├── test_kitti_datasets.m
│ │ ├── test_odometry.m
│ │ └── test_pf_filter.m
│ ├── README.md
│ ├── ShowLogs
│ │ ├── getPrecisionRecall.m
│ │ ├── importfile.m
│ │ ├── logaHeaders.txt
│ │ ├── precisionRecallAllDetectors.m
│ │ └── showlogs.m
│ ├── Tests
│ │ ├── 090306-3_db-Dictionary.txt
│ │ ├── 090306-3_db-Signatures.txt
│ │ ├── README.txt
│ │ ├── TestAdjustLikelihood.m
│ │ ├── TestBayesFilter.m
│ │ ├── TestComputeLikelihood.m
│ │ └── TestUpdateCommonSignature.m
│ ├── run_all_datasets.sh
│ ├── run_all_detectors.sh
│ └── run_bow.sh
└── 2022-IlluminationInvariant
│ ├── README.md
│ ├── images
│ ├── fig_map_merged_999.jpg
│ ├── fig_merged_percentage.jpg
│ ├── fig_overview.jpg
│ └── fig_single_percentage.jpg
│ ├── results_common.m
│ ├── results_loc_over_time.m
│ ├── results_loc_prob_by_dist.m
│ ├── scripts
│ ├── export_stats.sh
│ ├── reprocess_maps.sh
│ ├── reprocess_maps_all.sh
│ ├── rtabmap_latest.bash
│ ├── run_all.sh
│ ├── run_consecutive_localization.sh
│ ├── run_consecutive_localization_all.sh
│ ├── run_localization_accuracy.sh
│ ├── run_localization_single.sh
│ ├── run_localization_single_all.sh
│ ├── run_merge.sh
│ ├── trace.py
│ └── valgrind.sh
│ └── showLoopOverTime.m
├── build
└── .gitignore
├── cmake_modules
├── FindARCore.cmake
├── FindAREngine.cmake
├── FindDC1394.cmake
├── FindEigen3.cmake
├── FindFastCV.cmake
├── FindFlyCapture2.cmake
├── FindFreenect.cmake
├── FindG2O.cmake
├── FindHIDAPI.cmake
├── FindK4A.cmake
├── FindKinectSDK2.cmake
├── FindORB_SLAM.cmake
├── FindOpenNI2.cmake
├── FindPthreads.cmake
├── FindQVTK.cmake
├── FindRealSense.cmake
├── FindRealSense2.cmake
├── FindTango.cmake
├── FindZEDOC.cmake
├── MacOSXBundleInfo.plist.in
└── android.toolchain.cmake
├── cmake_uninstall.cmake.in
├── corelib
├── CMakeLists.txt
├── include
│ └── rtabmap
│ │ └── core
│ │ ├── BayesFilter.h
│ │ ├── Camera.h
│ │ ├── CameraEvent.h
│ │ ├── CameraInfo.h
│ │ ├── CameraModel.h
│ │ ├── CameraRGB.h
│ │ ├── CameraRGBD.h
│ │ ├── CameraStereo.h
│ │ ├── CameraThread.h
│ │ ├── Compression.h
│ │ ├── DBDriver.h
│ │ ├── DBDriverSqlite3.h
│ │ ├── DBReader.h
│ │ ├── EnvSensor.h
│ │ ├── EpipolarGeometry.h
│ │ ├── Features2d.h
│ │ ├── FlannIndex.h
│ │ ├── GPS.h
│ │ ├── GainCompensator.h
│ │ ├── GeodeticCoords.h
│ │ ├── GlobalDescriptor.h
│ │ ├── GlobalDescriptorExtractor.h
│ │ ├── GlobalMap.h
│ │ ├── Graph.h
│ │ ├── IMU.h
│ │ ├── IMUFilter.h
│ │ ├── IMUThread.h
│ │ ├── Image.h
│ │ ├── LASWriter.h
│ │ ├── Landmark.h
│ │ ├── LaserScan.h
│ │ ├── Lidar.h
│ │ ├── Link.h
│ │ ├── LocalGrid.h
│ │ ├── LocalGridMaker.h
│ │ ├── MarkerDetector.h
│ │ ├── Memory.h
│ │ ├── OccupancyGrid.h
│ │ ├── OctoMap.h
│ │ ├── Odometry.h
│ │ ├── OdometryEvent.h
│ │ ├── OdometryInfo.h
│ │ ├── OdometryThread.h
│ │ ├── Optimizer.h
│ │ ├── PDALWriter.h
│ │ ├── ParamEvent.h
│ │ ├── Parameters.h
│ │ ├── ParticleFilter.h
│ │ ├── ProgressState.h
│ │ ├── PythonInterface.h
│ │ ├── Recovery.h
│ │ ├── Registration.h
│ │ ├── RegistrationIcp.h
│ │ ├── RegistrationInfo.h
│ │ ├── RegistrationVis.h
│ │ ├── Rtabmap.h
│ │ ├── RtabmapEvent.h
│ │ ├── RtabmapThread.h
│ │ ├── SensorCapture.h
│ │ ├── SensorCaptureInfo.h
│ │ ├── SensorCaptureThread.h
│ │ ├── SensorData.h
│ │ ├── SensorEvent.h
│ │ ├── Signature.h
│ │ ├── Statistics.h
│ │ ├── Stereo.h
│ │ ├── StereoCameraModel.h
│ │ ├── StereoDense.h
│ │ ├── Transform.h
│ │ ├── UserDataEvent.h
│ │ ├── VWDictionary.h
│ │ ├── VisualWord.h
│ │ ├── camera
│ │ ├── CameraDepthAI.h
│ │ ├── CameraFreenect.h
│ │ ├── CameraFreenect2.h
│ │ ├── CameraImages.h
│ │ ├── CameraK4A.h
│ │ ├── CameraK4W2.h
│ │ ├── CameraMyntEye.h
│ │ ├── CameraOpenNI2.h
│ │ ├── CameraOpenNICV.h
│ │ ├── CameraOpenni.h
│ │ ├── CameraRGBDImages.h
│ │ ├── CameraRealSense.h
│ │ ├── CameraRealSense2.h
│ │ ├── CameraSeerSense.h
│ │ ├── CameraStereoDC1394.h
│ │ ├── CameraStereoFlyCapture2.h
│ │ ├── CameraStereoImages.h
│ │ ├── CameraStereoTara.h
│ │ ├── CameraStereoVideo.h
│ │ ├── CameraStereoZed.h
│ │ ├── CameraStereoZedOC.h
│ │ └── CameraVideo.h
│ │ ├── clams
│ │ ├── discrete_depth_distortion_model.h
│ │ ├── frame_projector.h
│ │ └── slam_calibrator.h
│ │ ├── global_map
│ │ ├── CloudMap.h
│ │ ├── GridMap.h
│ │ ├── OccupancyGrid.h
│ │ └── OctoMap.h
│ │ ├── impl
│ │ ├── LocalMapMaker.hpp
│ │ ├── util3d.hpp
│ │ ├── util3d_mapping.hpp
│ │ └── util3d_surface.hpp
│ │ ├── lidar
│ │ └── LidarVLP16.h
│ │ ├── odometry
│ │ ├── OdometryDVO.h
│ │ ├── OdometryF2F.h
│ │ ├── OdometryF2M.h
│ │ ├── OdometryFLOAM.h
│ │ ├── OdometryFovis.h
│ │ ├── OdometryLOAM.h
│ │ ├── OdometryMSCKF.h
│ │ ├── OdometryMono.h
│ │ ├── OdometryORBSLAM2.h
│ │ ├── OdometryORBSLAM3.h
│ │ ├── OdometryOkvis.h
│ │ ├── OdometryOpen3D.h
│ │ ├── OdometryOpenVINS.h
│ │ ├── OdometryVINS.h
│ │ └── OdometryViso2.h
│ │ ├── optimizer
│ │ ├── OptimizerCVSBA.h
│ │ ├── OptimizerCeres.h
│ │ ├── OptimizerG2O.h
│ │ ├── OptimizerGTSAM.h
│ │ └── OptimizerTORO.h
│ │ ├── rvl_codec.h
│ │ ├── stereo
│ │ ├── StereoBM.h
│ │ ├── StereoSGBM.h
│ │ └── stereoRectifyFisheye.h
│ │ ├── util2d.h
│ │ ├── util3d.h
│ │ ├── util3d_correspondences.h
│ │ ├── util3d_features.h
│ │ ├── util3d_filtering.h
│ │ ├── util3d_mapping.h
│ │ ├── util3d_motion_estimation.h
│ │ ├── util3d_registration.h
│ │ ├── util3d_surface.h
│ │ └── util3d_transforms.h
└── src
│ ├── BayesFilter.cpp
│ ├── CMakeLists.txt
│ ├── Camera.cpp
│ ├── CameraModel.cpp
│ ├── Compression.cpp
│ ├── ConvertUTF.c
│ ├── ConvertUTF.h
│ ├── DBDriver.cpp
│ ├── DBDriverSqlite3.cpp
│ ├── DBReader.cpp
│ ├── EpipolarGeometry.cpp
│ ├── Features2d.cpp
│ ├── FlannIndex.cpp
│ ├── GainCompensator.cpp
│ ├── GeodeticCoords.cpp
│ ├── GlobalDescriptorExtractor.cpp
│ ├── GlobalMap.cpp
│ ├── Graph.cpp
│ ├── IMU.cpp
│ ├── IMUFilter.cpp
│ ├── IMUThread.cpp
│ ├── LASWriter.cpp
│ ├── LaserScan.cpp
│ ├── Link.cpp
│ ├── LocalGrid.cpp
│ ├── LocalGridMaker.cpp
│ ├── MarkerDetector.cpp
│ ├── Memory.cpp
│ ├── Odometry.cpp
│ ├── OdometryInfo.cpp
│ ├── OdometryThread.cpp
│ ├── Optimizer.cpp
│ ├── PDALWriter.cpp
│ ├── Parameters.cpp
│ ├── Recovery.cpp
│ ├── Registration.cpp
│ ├── RegistrationIcp.cpp
│ ├── RegistrationVis.cpp
│ ├── Rtabmap.cpp
│ ├── RtabmapThread.cpp
│ ├── SensorCapture.cpp
│ ├── SensorCaptureThread.cpp
│ ├── SensorData.cpp
│ ├── Signature.cpp
│ ├── SimpleIni.h
│ ├── Statistics.cpp
│ ├── Stereo.cpp
│ ├── StereoCameraModel.cpp
│ ├── StereoDense.cpp
│ ├── Transform.cpp
│ ├── VWDictionary.cpp
│ ├── VisualWord.cpp
│ ├── camera
│ ├── CameraDepthAI.cpp
│ ├── CameraFreenect.cpp
│ ├── CameraFreenect2.cpp
│ ├── CameraImages.cpp
│ ├── CameraK4A.cpp
│ ├── CameraK4W2.cpp
│ ├── CameraMyntEye.cpp
│ ├── CameraOpenNI2.cpp
│ ├── CameraOpenNICV.cpp
│ ├── CameraOpenni.cpp
│ ├── CameraRGBDImages.cpp
│ ├── CameraRealSense.cpp
│ ├── CameraRealSense2.cpp
│ ├── CameraSeerSense.cpp
│ ├── CameraStereoDC1394.cpp
│ ├── CameraStereoFlyCapture2.cpp
│ ├── CameraStereoImages.cpp
│ ├── CameraStereoTara.cpp
│ ├── CameraStereoVideo.cpp
│ ├── CameraStereoZed.cpp
│ ├── CameraStereoZedOC.cpp
│ └── CameraVideo.cpp
│ ├── clams
│ ├── discrete_depth_distortion_model.cpp
│ ├── discrete_depth_distortion_model_helpers.cpp
│ ├── eigen_extensions
│ │ └── eigen_extensions.h
│ ├── frame_projector.cpp
│ └── slam_calibrator.cpp
│ ├── global_map
│ ├── CloudMap.cpp
│ ├── GridMap.cpp
│ ├── OccupancyGrid.cpp
│ └── OctoMap.cpp
│ ├── icp
│ ├── cccorelib.h
│ └── libpointmatcher.h
│ ├── imufilter
│ ├── ComplementaryFilter.cpp
│ ├── ComplementaryFilter.h
│ ├── MadgwickFilter.cpp
│ ├── MadgwickFilter.h
│ └── README.txt
│ ├── lidar
│ └── LidarVLP16.cpp
│ ├── odometry
│ ├── OdometryDVO.cpp
│ ├── OdometryF2F.cpp
│ ├── OdometryF2M.cpp
│ ├── OdometryFLOAM.cpp
│ ├── OdometryFovis.cpp
│ ├── OdometryLOAM.cpp
│ ├── OdometryMSCKF.cpp
│ ├── OdometryMono.cpp
│ ├── OdometryORBSLAM2.cpp
│ ├── OdometryORBSLAM3.cpp
│ ├── OdometryOkvis.cpp
│ ├── OdometryOpen3D.cpp
│ ├── OdometryOpenVINS.cpp
│ ├── OdometryVINS.cpp
│ └── OdometryViso2.cpp
│ ├── opencv
│ ├── ORBextractor.cc
│ ├── ORBextractor.h
│ ├── Orb.cpp
│ ├── Orb.h
│ ├── five-point.cpp
│ ├── five-point.h
│ ├── readme.txt
│ ├── solvepnp.cpp
│ └── solvepnp.h
│ ├── optimizer
│ ├── OptimizerCVSBA.cpp
│ ├── OptimizerCeres.cpp
│ ├── OptimizerG2O.cpp
│ ├── OptimizerGTSAM.cpp
│ ├── OptimizerTORO.cpp
│ ├── ceres
│ │ ├── bundle
│ │ │ ├── BAProblem.h
│ │ │ └── snavely_reprojection_error.h
│ │ ├── pose_graph_2d
│ │ │ ├── README.md
│ │ │ ├── angle_manifold.h
│ │ │ ├── normalize_angle.h
│ │ │ ├── pose_graph_2d_error_term.h
│ │ │ └── types.h
│ │ └── pose_graph_3d
│ │ │ ├── README.md
│ │ │ ├── eigen_quaternion_parameterization.h
│ │ │ ├── pose_graph_3d_error_term.h
│ │ │ └── types.h
│ ├── g2o
│ │ ├── edge_sbacam_gravity.h
│ │ ├── edge_se3_gravity.h
│ │ ├── edge_se3_xyzprior.h
│ │ ├── edge_xy_prior.h
│ │ └── edge_xyz_prior.h
│ ├── gtsam
│ │ ├── GravityFactor.cpp
│ │ ├── GravityFactor.h
│ │ ├── XYFactor.h
│ │ └── XYZFactor.h
│ ├── toro3d
│ │ ├── dmatrix.h
│ │ ├── dmatrix.hxx
│ │ ├── posegraph.h
│ │ ├── posegraph.hxx
│ │ ├── posegraph2.cpp
│ │ ├── posegraph2.h
│ │ ├── posegraph3.cpp
│ │ ├── posegraph3.h
│ │ ├── readme.txt
│ │ ├── transformation2.h
│ │ ├── transformation3.h
│ │ ├── transformation3.hxx
│ │ ├── treeoptimizer2.cpp
│ │ ├── treeoptimizer2.h
│ │ ├── treeoptimizer3.cpp
│ │ ├── treeoptimizer3.h
│ │ └── treeoptimizer3_iteration.cpp
│ └── vertigo
│ │ ├── g2o
│ │ ├── edge_se2MaxMixture.cpp
│ │ ├── edge_se2MaxMixture.h
│ │ ├── edge_se2Switchable.cpp
│ │ ├── edge_se2Switchable.h
│ │ ├── edge_se3Switchable.cpp
│ │ ├── edge_se3Switchable.h
│ │ ├── edge_switchPrior.cpp
│ │ ├── edge_switchPrior.h
│ │ ├── types_g2o_robust.cpp
│ │ ├── vertex_switchLinear.cpp
│ │ └── vertex_switchLinear.h
│ │ ├── gtsam
│ │ ├── DerivedValue.h
│ │ ├── betweenFactorMaxMix.h
│ │ ├── betweenFactorSwitchable.h
│ │ ├── switchVariableLinear.h
│ │ └── switchVariableSigmoid.h
│ │ └── readme.txt
│ ├── pcl18
│ ├── readme.txt
│ └── surface
│ │ ├── impl
│ │ ├── organized_fast_mesh.hpp
│ │ └── texture_mapping.hpp
│ │ ├── organized_fast_mesh.h
│ │ └── texture_mapping.h
│ ├── python
│ ├── PyDescriptor.cpp
│ ├── PyDescriptor.h
│ ├── PyDetector.cpp
│ ├── PyDetector.h
│ ├── PyMatcher.cpp
│ ├── PyMatcher.h
│ ├── PythonInterface.cpp
│ ├── rtabmap_netvlad.py
│ ├── rtabmap_oanet.py
│ ├── rtabmap_superglue.py
│ └── rtabmap_superpoint.py
│ ├── resources
│ ├── .gitignore
│ ├── DatabaseSchema.sql.in
│ └── backward_compatibility
│ │ ├── DatabaseSchema_0_16_0.sql
│ │ ├── DatabaseSchema_0_16_1.sql
│ │ ├── DatabaseSchema_0_16_2.sql
│ │ ├── DatabaseSchema_0_17_0.sql
│ │ ├── DatabaseSchema_0_18_0.sql
│ │ ├── DatabaseSchema_0_18_3.sql
│ │ └── DatabaseSchema_0_20_0.sql
│ ├── rtflann
│ ├── algorithms
│ │ ├── all_indices.h
│ │ ├── autotuned_index.h
│ │ ├── center_chooser.h
│ │ ├── composite_index.h
│ │ ├── dist.h
│ │ ├── hierarchical_clustering_index.h
│ │ ├── kdtree_index.h
│ │ ├── kdtree_single_index.h
│ │ ├── kmeans_index.h
│ │ ├── linear_index.h
│ │ ├── lsh_index.h
│ │ └── nn_index.h
│ ├── config.h
│ ├── defines.h
│ ├── ext
│ │ ├── lz4.c
│ │ ├── lz4.h
│ │ ├── lz4hc.c
│ │ └── lz4hc.h
│ ├── flann.hpp
│ ├── general.h
│ ├── nn
│ │ ├── ground_truth.h
│ │ ├── index_testing.h
│ │ └── simplex_downhill.h
│ ├── readme.txt
│ └── util
│ │ ├── allocator.h
│ │ ├── any.h
│ │ ├── dynamic_bitset.h
│ │ ├── heap.h
│ │ ├── logger.h
│ │ ├── lsh_table.h
│ │ ├── matrix.h
│ │ ├── object_factory.h
│ │ ├── params.h
│ │ ├── random.h
│ │ ├── result_set.h
│ │ ├── sampling.h
│ │ ├── saving.h
│ │ ├── serialization.h
│ │ └── timer.h
│ ├── rvl_codec.cpp
│ ├── sqlite3
│ ├── readme.txt
│ ├── sqlite3.c
│ ├── sqlite3.h
│ └── sqlite3ext.h
│ ├── stereo
│ ├── StereoBM.cpp
│ └── StereoSGBM.cpp
│ ├── superpoint_torch
│ ├── SuperPoint.cc
│ └── SuperPoint.h
│ ├── util2d.cpp
│ ├── util3d.cpp
│ ├── util3d_correspondences.cpp
│ ├── util3d_features.cpp
│ ├── util3d_filtering.cpp
│ ├── util3d_mapping.cpp
│ ├── util3d_motion_estimation.cpp
│ ├── util3d_registration.cpp
│ ├── util3d_surface.cpp
│ └── util3d_transforms.cpp
├── data
├── BoxImgs
│ ├── 1.png
│ └── 2.png
├── Dictionary49k.txt.zip
├── README
├── check-108.pdf
├── presets
│ ├── camera_tof_icp.ini
│ └── lidar3d_icp.ini
├── samples.zip
├── samples
│ ├── 1.jpg
│ ├── 10.jpg
│ ├── 11.jpg
│ ├── 12.jpg
│ ├── 13.jpg
│ ├── 14.jpg
│ ├── 15.jpg
│ ├── 16.jpg
│ ├── 17.jpg
│ ├── 18.jpg
│ ├── 19.jpg
│ ├── 2.jpg
│ ├── 20.jpg
│ ├── 21.jpg
│ ├── 22.jpg
│ ├── 23.jpg
│ ├── 24.jpg
│ ├── 25.jpg
│ ├── 26.jpg
│ ├── 27.jpg
│ ├── 28.jpg
│ ├── 29.jpg
│ ├── 3.jpg
│ ├── 30.jpg
│ ├── 31.jpg
│ ├── 32.jpg
│ ├── 33.jpg
│ ├── 34.jpg
│ ├── 35.jpg
│ ├── 36.jpg
│ ├── 37.jpg
│ ├── 38.jpg
│ ├── 39.jpg
│ ├── 4.jpg
│ ├── 40.jpg
│ ├── 41.jpg
│ ├── 42.jpg
│ ├── 43.jpg
│ ├── 44.jpg
│ ├── 45.jpg
│ ├── 46.jpg
│ ├── 47.jpg
│ ├── 48.jpg
│ ├── 49.jpg
│ ├── 5.jpg
│ ├── 50.jpg
│ ├── 51.jpg
│ ├── 52.jpg
│ ├── 53.jpg
│ ├── 54.jpg
│ ├── 55.jpg
│ ├── 56.jpg
│ ├── 57.jpg
│ ├── 58.jpg
│ ├── 59.jpg
│ ├── 6.jpg
│ ├── 60.jpg
│ ├── 61.jpg
│ ├── 62.jpg
│ ├── 63.jpg
│ ├── 64.jpg
│ ├── 65.jpg
│ ├── 66.jpg
│ ├── 67.jpg
│ ├── 68.jpg
│ ├── 69.jpg
│ ├── 7.jpg
│ ├── 70.jpg
│ ├── 71.jpg
│ ├── 72.jpg
│ ├── 73.jpg
│ ├── 74.jpg
│ ├── 75.jpg
│ ├── 76.jpg
│ ├── 77.jpg
│ ├── 78.jpg
│ ├── 79.jpg
│ ├── 8.jpg
│ ├── 80.jpg
│ ├── 81.jpg
│ ├── 82.jpg
│ ├── 83.jpg
│ ├── 84.jpg
│ └── 9.jpg
└── samples_GT.bmp
├── docker
├── README.md
├── bionic
│ ├── Dockerfile
│ ├── android
│ │ ├── Dockerfile
│ │ ├── deps.bash
│ │ └── rtabmap_apiXX
│ │ │ ├── Dockerfile
│ │ │ └── rtabmap.bash
│ └── hooks
│ │ ├── build
│ │ └── post_push
├── focal-foxy
│ ├── Dockerfile
│ └── deps
│ │ ├── Dockerfile
│ │ └── ros_entrypoint.sh
├── focal
│ ├── Dockerfile
│ └── deps
│ │ └── Dockerfile
├── frontiers2022
│ └── Dockerfile
├── jammy-iron
│ ├── Dockerfile
│ └── deps
│ │ ├── Dockerfile
│ │ └── ros_entrypoint.sh
├── jammy
│ ├── Dockerfile
│ └── deps
│ │ └── Dockerfile
├── jfr2018
│ ├── Dockerfile
│ ├── README.md
│ ├── latest
│ │ └── Dockerfile
│ ├── rtabmap_msckf_ubuntu_16_compatibility.patch
│ ├── rtabmap_opencv310_backward_compatibility.patch
│ ├── run_all.sh
│ ├── run_euroc_datasets.sh
│ ├── run_kitti_datasets.sh
│ └── run_tum_datasets.sh
├── latest_deps
│ └── Dockerfile
├── noble-kilted
│ ├── Dockerfile
│ └── deps
│ │ └── Dockerfile
├── noble
│ ├── Dockerfile
│ └── deps
│ │ └── Dockerfile
├── trusty
│ └── Dockerfile
└── xenial
│ ├── Dockerfile
│ ├── android
│ ├── Dockerfile
│ ├── install_deps.bash
│ ├── install_deps_host.bash
│ ├── setup_android_env.bash
│ └── tango
│ │ ├── Dockerfile
│ │ ├── build.bash
│ │ └── tango-dev
│ │ └── Dockerfile
│ └── hooks
│ ├── build
│ └── post_push
├── examples
├── BOWMapping
│ ├── CMakeLists.txt
│ └── main.cpp
├── CMakeLists.txt
├── LidarMapping
│ ├── CMakeLists.txt
│ ├── MapBuilder.h
│ └── main.cpp
├── NoEventsExample
│ ├── CMakeLists.txt
│ ├── MapBuilder.h
│ └── main.cpp
├── RGBDMapping
│ ├── CMakeLists.txt
│ ├── MapBuilder.h
│ └── main.cpp
└── WifiMapping
│ ├── CMakeLists.txt
│ ├── MapBuilder.h
│ ├── MapBuilderWifi.h
│ ├── WifiOSX.h
│ ├── WifiOSX.mm
│ ├── WifiThread.h
│ ├── main.cpp
│ └── screenshot.jpg
├── guilib
├── CMakeLists.txt
├── include
│ └── rtabmap
│ │ ├── gui
│ │ ├── AboutDialog.h
│ │ ├── CalibrationDialog.h
│ │ ├── CameraViewer.h
│ │ ├── CloudViewer.h
│ │ ├── CloudViewerCellPicker.h
│ │ ├── CloudViewerInteractorStyle.h
│ │ ├── ConsoleWidget.h
│ │ ├── CreateSimpleCalibrationDialog.h
│ │ ├── DataRecorder.h
│ │ ├── DatabaseViewer.h
│ │ ├── DepthCalibrationDialog.h
│ │ ├── EditConstraintDialog.h
│ │ ├── EditDepthArea.h
│ │ ├── EditMapArea.h
│ │ ├── ExportBundlerDialog.h
│ │ ├── ExportCloudsDialog.h
│ │ ├── ExportDialog.h
│ │ ├── GraphViewer.h
│ │ ├── ImageView.h
│ │ ├── KeypointItem.h
│ │ ├── LinkRefiningDialog.h
│ │ ├── LoopClosureViewer.h
│ │ ├── MainWindow.h
│ │ ├── MapVisibilityWidget.h
│ │ ├── MultiSessionLocSubView.h
│ │ ├── MultiSessionLocWidget.h
│ │ ├── OdometryViewer.h
│ │ ├── ParametersToolBox.h
│ │ ├── PdfPlot.h
│ │ ├── PostProcessingDialog.h
│ │ ├── PreferencesDialog.h
│ │ ├── ProgressDialog.h
│ │ ├── RecoveryState.h
│ │ ├── StatsToolBox.h
│ │ └── TexturingState.h
│ │ └── utilite
│ │ ├── UCv2Qt.h
│ │ ├── UImageView.h
│ │ └── UPlot.h
└── src
│ ├── 3rdParty
│ ├── QMultiComboBox.cpp
│ ├── QMultiComboBox.h
│ └── lgpl-2.1.txt
│ ├── AboutDialog.cpp
│ ├── CMakeLists.txt
│ ├── CalibrationDialog.cpp
│ ├── CameraViewer.cpp
│ ├── CloudViewer.cpp
│ ├── CloudViewerCellPicker.cpp
│ ├── CloudViewerInteractorStyle.cpp
│ ├── ConsoleWidget.cpp
│ ├── CreateSimpleCalibrationDialog.cpp
│ ├── DataRecorder.cpp
│ ├── DatabaseViewer.cpp
│ ├── DepthCalibrationDialog.cpp
│ ├── EditConstraintDialog.cpp
│ ├── EditDepthArea.cpp
│ ├── EditMapArea.cpp
│ ├── ExportBundlerDialog.cpp
│ ├── ExportCloudsDialog.cpp
│ ├── ExportDialog.cpp
│ ├── GraphViewer.cpp
│ ├── GuiLib.qrc
│ ├── ImageView.cpp
│ ├── KeypointItem.cpp
│ ├── LinkRefiningDialog.cpp
│ ├── LoopClosureViewer.cpp
│ ├── MainWindow.cpp
│ ├── MapVisibilityWidget.cpp
│ ├── MultiSessionLocSubView.cpp
│ ├── MultiSessionLocWidget.cpp
│ ├── OdometryViewer.cpp
│ ├── ParametersToolBox.cpp
│ ├── PdfPlot.cpp
│ ├── PostProcessingDialog.cpp
│ ├── PreferencesDialog.cpp
│ ├── ProgressDialog.cpp
│ ├── StatsToolBox.cpp
│ ├── chisel_conversions.h
│ ├── images
│ ├── IntRoLab.png
│ ├── IntRoLabSmall.png
│ ├── Pause.ico
│ ├── PauseLoopRejected.ico
│ ├── PauseNormal.png
│ ├── PauseNormalRed.png
│ ├── PauseOnLocalLoop.ico
│ ├── PauseOnLoop.ico
│ ├── Play1Normal.png
│ ├── Plot.ico
│ ├── Plot16.png
│ ├── Plot48.png
│ ├── RTAB-Map.ico
│ ├── RTAB-Map.png
│ ├── RTAB-Map100.png
│ ├── RTAB-Map2.png
│ ├── Stop1Normal.png
│ ├── Stop1NormalYellow.png
│ ├── astra.png
│ ├── bumblebee2.png
│ ├── crosshatch_metal_grille_9280154_150.JPG
│ ├── d415.png
│ ├── d435.png
│ ├── document-new.png
│ ├── document-open.png
│ ├── document-properties.png
│ ├── document-save.png
│ ├── k4a.png
│ ├── kinect_xbox_360.png
│ ├── kinect_xbox_one.png
│ ├── l515.png
│ ├── mag_glass.png
│ ├── metal_7280826_512.jpg
│ ├── mynteyes.png
│ ├── oakd.png
│ ├── oakd_lite.png
│ ├── oakdpro.png
│ ├── r200.png
│ ├── seer_sense_DS80.png
│ ├── sense.png
│ ├── sr300.png
│ ├── system-log-out.png
│ ├── t265.png
│ ├── tara.png
│ ├── view-refresh.png
│ ├── webcam.png
│ ├── xtion_pro_live.png
│ ├── zed.png
│ └── zr300.png
│ ├── opencv
│ ├── vtkImageMatSource.cpp
│ └── vtkImageMatSource.h
│ ├── qss
│ └── default.qss
│ ├── ui
│ ├── DatabaseViewer.ui
│ ├── aboutDialog.ui
│ ├── calibrationDialog.ui
│ ├── consoleWidget.ui
│ ├── createSimpleCalibrationDialog.ui
│ ├── depthCalibrationDialog.ui
│ ├── editConstraintDialog.ui
│ ├── exportBundlerDialog.ui
│ ├── exportCloudsDialog.ui
│ ├── exportDialog.ui
│ ├── linkRefiningDialog.ui
│ ├── loopClosureViewer.ui
│ ├── mainWindow.ui
│ ├── multiSessionLocSubView.ui
│ ├── postProcessingDialog.ui
│ └── preferencesDialog.ui
│ └── utilite
│ └── UPlot.cpp
├── mainpage.dox
├── package.xml
├── tools
├── CMakeLists.txt
├── Calibration
│ ├── CMakeLists.txt
│ └── main.cpp
├── Camera
│ ├── CMakeLists.txt
│ └── main.cpp
├── CameraRGBD
│ ├── CMakeLists.txt
│ └── main.cpp
├── CleanupLocalGrids
│ ├── CMakeLists.txt
│ └── main.cpp
├── ConsoleApp
│ ├── CMakeLists.txt
│ └── main.cpp
├── DataRecorder
│ ├── CMakeLists.txt
│ └── main.cpp
├── DatabaseViewer
│ ├── CMakeLists.txt
│ └── main.cpp
├── DetectMoreLoopClosures
│ ├── CMakeLists.txt
│ └── main.cpp
├── EpipolarGeometry
│ ├── CMakeLists.txt
│ └── main.cpp
├── EurocDataset
│ ├── CMakeLists.txt
│ └── main.cpp
├── Export
│ ├── CMakeLists.txt
│ └── main.cpp
├── ExtractObject
│ ├── CMakeLists.txt
│ └── main.cpp
├── GlobalBundleAdjustment
│ ├── CMakeLists.txt
│ └── main.cpp
├── ImagesJoiner
│ ├── CMakeLists.txt
│ └── main.cpp
├── Info
│ ├── CMakeLists.txt
│ └── main.cpp
├── KittiDataset
│ ├── CMakeLists.txt
│ └── main.cpp
├── LidarViewer
│ ├── CMakeLists.txt
│ └── main.cpp
├── Matcher
│ ├── CMakeLists.txt
│ └── main.cpp
├── OdometryViewer
│ ├── CMakeLists.txt
│ └── main.cpp
├── Recovery
│ ├── CMakeLists.txt
│ └── main.cpp
├── Report
│ ├── CMakeLists.txt
│ └── main.cpp
├── Reprocess
│ ├── CMakeLists.txt
│ └── main.cpp
├── RgbdDataset
│ ├── CMakeLists.txt
│ └── main.cpp
├── StereoEval
│ ├── CMakeLists.txt
│ ├── io.h
│ └── main.cpp
└── VocabularyComparison
│ ├── CMakeLists.txt
│ └── main.cpp
└── utilite
├── CMakeLists.txt
├── include
└── rtabmap
│ └── utilite
│ ├── Posix
│ └── UThreadC.h
│ ├── UConversion.h
│ ├── UDestroyer.h
│ ├── UDirectory.h
│ ├── UEvent.h
│ ├── UEventsHandler.h
│ ├── UEventsManager.h
│ ├── UEventsSender.h
│ ├── UException.h
│ ├── UFile.h
│ ├── ULogger.h
│ ├── UMath.h
│ ├── UMutex.h
│ ├── UObjDeletionThread.h
│ ├── UProcessInfo.h
│ ├── USemaphore.h
│ ├── UStl.h
│ ├── UThread.h
│ ├── UThreadC.h
│ ├── UThreadNode.h
│ ├── UTimer.h
│ ├── UVariant.h
│ ├── UtiLite.h
│ └── Win32
│ ├── UThreadC.h
│ └── UWin32.h
├── resource_generator
├── CMakeLists.txt
└── main.cpp
└── src
├── CMakeLists.txt
├── UConversion.cpp
├── UDirectory.cpp
├── UEventsHandler.cpp
├── UEventsManager.cpp
├── UEventsSender.cpp
├── UFile.cpp
├── ULogger.cpp
├── UProcessInfo.cpp
├── UThread.cpp
├── UTimer.cpp
└── UVariant.cpp
/.devcontainer/android/devcontainer.json:
--------------------------------------------------------------------------------
1 | {
2 | "image": "introlab3it/rtabmap:android-deps",
3 | "customizations": {
4 | "vscode": {
5 | "extensions": ["ms-vscode.cpptools-themes", "ms-vscode.cmake-tools", "vscjava.vscode-java-pack"]
6 | }
7 | },
8 | "runArgs": ["--privileged", "--network=host"]
9 | }
10 |
--------------------------------------------------------------------------------
/.devcontainer/bionic/devcontainer.json:
--------------------------------------------------------------------------------
1 | {
2 | "image": "introlab3it/rtabmap:18.04",
3 | "customizations": {
4 | "vscode": {
5 | "extensions": ["ms-vscode.cpptools-themes", "ms-vscode.cmake-tools"]
6 | }
7 | }
8 | }
9 |
--------------------------------------------------------------------------------
/.devcontainer/focal/devcontainer.json:
--------------------------------------------------------------------------------
1 | {
2 | "image": "introlab3it/rtabmap:20.04",
3 | "customizations": {
4 | "vscode": {
5 | "extensions": ["ms-vscode.cpptools-themes", "ms-vscode.cmake-tools"]
6 | }
7 | }
8 | }
9 |
--------------------------------------------------------------------------------
/.devcontainer/jammy/devcontainer.json:
--------------------------------------------------------------------------------
1 | {
2 | "image": "introlab3it/rtabmap:22.04",
3 | "customizations": {
4 | "vscode": {
5 | "extensions": ["ms-vscode.cpptools-themes", "ms-vscode.cmake-tools"]
6 | }
7 | }
8 | }
9 |
--------------------------------------------------------------------------------
/.devcontainer/noble/devcontainer.json:
--------------------------------------------------------------------------------
1 | {
2 | "image": "introlab3it/rtabmap:24.04",
3 | "customizations": {
4 | "vscode": {
5 | "extensions": ["ms-vscode.cpptools-themes", "ms-vscode.cmake-tools"]
6 | }
7 | }
8 | }
9 |
--------------------------------------------------------------------------------
/.dockerignore:
--------------------------------------------------------------------------------
1 | build/*
2 | build_*
3 |
--------------------------------------------------------------------------------
/.github/workflows/cmake.yml:
--------------------------------------------------------------------------------
1 | name: CMake
2 |
3 | on:
4 | push:
5 | branches:
6 | - master
7 | pull_request:
8 | branches:
9 | - '**'
10 |
11 | env:
12 | BUILD_TYPE: Release
13 |
14 | jobs:
15 | build:
16 | name: ${{ matrix.os }}
17 | runs-on: ${{ matrix.os }}
18 | strategy:
19 | fail-fast: false
20 | matrix:
21 | os: [ubuntu-24.04, ubuntu-22.04]
22 |
23 | steps:
24 | - name: Install dependencies
25 | run: |
26 | DEBIAN_FRONTEND=noninteractive
27 | sudo apt-get update
28 | sudo apt-get -y install libopencv-dev libpcl-dev git cmake software-properties-common libyaml-cpp-dev
29 |
30 | - uses: actions/checkout@v4
31 |
32 | - name: Configure CMake
33 | run: |
34 | cmake -B ${{github.workspace}}/build -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}}
35 |
36 | - name: Build
37 | run: cmake --build ${{github.workspace}}/build --config ${{env.BUILD_TYPE}}
38 |
39 | - name: Info
40 | working-directory: ${{github.workspace}}/build/bin
41 | run: |
42 | ./rtabmap-console --version
43 |
44 | # - name: Test
45 | # working-directory: ${{github.workspace}}/build
46 | # # Execute tests defined by the CMake configuration.
47 | # # See https://cmake.org/cmake/help/latest/manual/ctest.1.html for more detail
48 | # run: ctest -C ${{env.BUILD_TYPE}}
49 |
50 |
--------------------------------------------------------------------------------
/.github/workflows/scheduled-stats.yml:
--------------------------------------------------------------------------------
1 | name: RTAB-Map Scheduled Stats Extraction From GitHub
2 |
3 | on:
4 | workflow_dispatch:
5 | schedule:
6 | - cron: '0 5 * * *'
7 | jobs:
8 | get_stats:
9 | runs-on: ubuntu-latest
10 | steps:
11 | - name: Update Stats
12 | uses: introlab/github-stats-action@v1
13 | with:
14 | github-stats-token: ${{ secrets.STATS_TOKEN }}
15 | google-application-credentials: ${{ secrets.GOOGLE_APPLICATION_CREDENTIALS }}
16 | spreadsheet-id: ${{ secrets.SPREADSHEET_ID }}
17 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | /lib
2 | .DS_Store
3 | .settings/language.settings.xml
4 | .idea/
5 | .vscode
6 | cmake-build-debug/
7 | app/android/.classpath
8 | app/android/.project
9 | app/android/AndroidManifest.xml
10 | app/android/res/raw/
11 | compile_flags.txt
12 | tags
13 | build_*
14 | *.bak
15 |
--------------------------------------------------------------------------------
/.settings/org.eclipse.cdt.core.prefs:
--------------------------------------------------------------------------------
1 | eclipse.preferences.version=1
2 | environment/project/0.1790260204.1906025362.1064002412/append=true
3 | environment/project/0.1790260204.1906025362.1064002412/appendContributed=true
4 |
--------------------------------------------------------------------------------
/app/CMakeLists.txt:
--------------------------------------------------------------------------------
1 |
2 | IF(ANDROID)
3 | ADD_SUBDIRECTORY( android )
4 | ELSE()
5 | ADD_SUBDIRECTORY( src )
6 | ENDIF()
--------------------------------------------------------------------------------
/app/android/.gitignore:
--------------------------------------------------------------------------------
1 | /bin/
2 | /gen/
3 |
--------------------------------------------------------------------------------
/app/android/.settings/org.eclipse.jdt.core.prefs:
--------------------------------------------------------------------------------
1 | eclipse.preferences.version=1
2 | org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
3 | org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6
4 | org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
5 | org.eclipse.jdt.core.compiler.compliance=1.6
6 | org.eclipse.jdt.core.compiler.debug.lineNumber=generate
7 | org.eclipse.jdt.core.compiler.debug.localVariable=generate
8 | org.eclipse.jdt.core.compiler.debug.sourceFile=generate
9 | org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
10 | org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
11 | org.eclipse.jdt.core.compiler.source=1.6
12 |
--------------------------------------------------------------------------------
/app/android/ant.properties.in:
--------------------------------------------------------------------------------
1 | builddir=@CMAKE_CURRENT_BINARY_DIR@
2 | srcdir=@CMAKE_CURRENT_SOURCE_DIR@
3 | android.abi=@ANDROID_ABI@
4 |
5 | source.dir=${srcdir}/src
6 | gen.dir=${builddir}/gen
7 | out.dir=${builddir}/bin
8 | asset.dir=${builddir}/assets
9 | resource.absolute.dir=${srcdir}/res
10 |
11 | jar.libs.dir=${builddir}/libs
12 | external.libs.dir=${builddir}/libs
13 | native.libs.dir=${builddir}/libs
14 |
--------------------------------------------------------------------------------
/app/android/custom_rules.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
--------------------------------------------------------------------------------
/app/android/ic_launcher-web.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/introlab/rtabmap/e19b0c3dc4571a75f60823f6efb622769f764f31/app/android/ic_launcher-web.png
--------------------------------------------------------------------------------
/app/android/info.txt.in:
--------------------------------------------------------------------------------
1 |
Real-Time Appearance-Based Mapping
2 | Version @RTABMAP_VERSION@
3 | Author: Mathieu Labbé
4 | Copyright 2016-2020
5 | IntRoLab - Université de Sherbrooke
6 | http://introlab.github.io/rtabmap
7 |
8 |
--------------------------------------------------------------------------------
/app/android/jni/.gitignore:
--------------------------------------------------------------------------------
1 | CameraAvailability.h
2 |
--------------------------------------------------------------------------------
/app/android/jni/quad_color.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2014 Google Inc. All Rights Reserved.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | #ifndef TANGO_GL_QUADCOLOR_H_
18 | #define TANGO_GL_QUADCOLOR_H_
19 |
20 | #include "tango-gl/drawable_object.h"
21 |
22 | class QuadColor : public tango_gl::DrawableObject {
23 | public:
24 | QuadColor(float size);
25 | QuadColor(float widthLeft,
26 | float widthRight,
27 | float heightBottom,
28 | float heightTop);
29 | QuadColor(const QuadColor& other) = delete;
30 | QuadColor& operator=(const QuadColor&) = delete;
31 | virtual ~QuadColor() {}
32 |
33 | void Render(const glm::mat4& projection_mat, const glm::mat4& view_mat) const;
34 | };
35 | #endif // TANGO_GL_QUADCOLOR_H_
36 |
--------------------------------------------------------------------------------
/app/android/jni/resources/text_atlas.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/introlab/rtabmap/e19b0c3dc4571a75f60823f6efb622769f764f31/app/android/jni/resources/text_atlas.png
--------------------------------------------------------------------------------
/app/android/jni/tango-gl/circle.cpp:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2014 Google Inc. All Rights Reserved.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | #include "tango-gl/circle.h"
18 |
19 | namespace tango_gl {
20 | Circle::Circle(float radius, int resolution) : Mesh(GL_TRIANGLE_FAN){
21 | SetShader();
22 | std::vector vertices;
23 | vertices.reserve(3 * (resolution + 2));
24 | vertices.push_back(0);
25 | vertices.push_back(0);
26 | vertices.push_back(0);
27 | float delta_theta = M_PI * 2.0f / static_cast(resolution);
28 | for (int i = resolution; i >= 0; i--) {
29 | float theta = delta_theta * static_cast(i);
30 | vertices.push_back(cos(theta) * radius);
31 | vertices.push_back(sin(theta) * radius);
32 | vertices.push_back(0);
33 | }
34 | SetVertices(vertices);
35 | }
36 | } // namespace tango_gl
37 |
--------------------------------------------------------------------------------
/app/android/jni/tango-gl/include/tango-gl/axis.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2014 Google Inc. All Rights Reserved.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | #ifndef TANGO_GL_AXIS_H_
18 | #define TANGO_GL_AXIS_H_
19 |
20 | #include "tango-gl/line.h"
21 |
22 | namespace tango_gl {
23 | class Axis : public Line {
24 | public:
25 | Axis();
26 | void Render(const glm::mat4& projection_mat, const glm::mat4& view_mat) const;
27 | private:
28 | GLuint attrib_colors_;
29 | std::vector vec_colors_;
30 | };
31 | } // namespace tango_gl
32 | #endif // TANGO_GL_AXIS_H_
33 |
--------------------------------------------------------------------------------
/app/android/jni/tango-gl/include/tango-gl/circle.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2014 Google Inc. All Rights Reserved.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | #ifndef TANGO_GL_CIRCLE_H_
18 | #define TANGO_GL_CIRCLE_H_
19 |
20 | #include "tango-gl/mesh.h"
21 |
22 | namespace tango_gl {
23 | class Circle : public Mesh {
24 | public:
25 | Circle(float radius, int resolution);
26 | };
27 | } // namespace tango_gl
28 | #endif // TANGO_GL_CIRCLE_H_
29 |
--------------------------------------------------------------------------------
/app/android/jni/tango-gl/include/tango-gl/color.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2014 Google Inc. All Rights Reserved.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | #ifndef TANGO_GL_COLOR_H_
18 | #define TANGO_GL_COLOR_H_
19 |
20 | namespace tango_gl {
21 | class Color {
22 | public:
23 | Color() : r(0), g(0), b(0) {}
24 | Color(float red, float green, float blue) : r(red), g(green), b(blue) {}
25 | Color(const Color&) = default;
26 | Color& operator=(const Color&) = default;
27 |
28 | float r;
29 | float g;
30 | float b;
31 | };
32 | } // namespace tango_gl
33 | #endif // TANGO_GL_COLOR_H_
--------------------------------------------------------------------------------
/app/android/jni/tango-gl/include/tango-gl/cube.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2014 Google Inc. All Rights Reserved.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | #ifndef TANGO_GL_CUBE_H_
18 | #define TANGO_GL_CUBE_H_
19 |
20 | #include "tango-gl/mesh.h"
21 |
22 | namespace tango_gl {
23 | class Cube : public Mesh {
24 | public:
25 | Cube();
26 | };
27 | } // namespace tango_gl
28 | #endif // TANGO_GL_CUBE_H_
29 |
--------------------------------------------------------------------------------
/app/android/jni/tango-gl/include/tango-gl/frustum.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2014 Google Inc. All Rights Reserved.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | #ifndef TANGO_GL_FRUSTUM_H_
18 | #define TANGO_GL_FRUSTUM_H_
19 |
20 | #include "tango-gl/line.h"
21 |
22 | namespace tango_gl {
23 | class Frustum : public Line {
24 | public:
25 | Frustum();
26 | };
27 | } // namespace tango_gl
28 | #endif // TANGO_GL_FRUSTUM_H_
29 |
--------------------------------------------------------------------------------
/app/android/jni/tango-gl/include/tango-gl/goal_marker.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2014 Google Inc. All Rights Reserved.
3 | * Distributed under the Project Tango Preview Development Kit (PDK) Agreement.
4 | * CONFIDENTIAL. AUTHORIZED USE ONLY. DO NOT REDISTRIBUTE.
5 | */
6 |
7 | #ifndef TANGO_GL_GOAL_MARKER_H_
8 | #define TANGO_GL_GOAL_MARKER_H_
9 |
10 | #include
11 |
12 | namespace tango_gl {
13 | class GoalMarker : public Mesh {
14 | public:
15 | GoalMarker();
16 | };
17 | } // namespace tango_gl
18 | #endif // TANGO_GL_GOAL_MARKER_H_
19 |
--------------------------------------------------------------------------------
/app/android/jni/tango-gl/include/tango-gl/grid.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2014 Google Inc. All Rights Reserved.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | #ifndef TANGO_GL_GRID_H_
18 | #define TANGO_GL_GRID_H_
19 |
20 | #include "tango-gl/line.h"
21 |
22 | namespace tango_gl {
23 | class Grid : public Line {
24 | public:
25 | Grid(float density = 1.0f, int qx = 50, int qy = 50);
26 | };
27 | } // namespace tango_gl
28 | #endif // TANGO_GL_GRID_H_
29 |
--------------------------------------------------------------------------------
/app/android/jni/tango-gl/include/tango-gl/line.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2014 Google Inc. All Rights Reserved.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | #ifndef TANGO_GL_LINE_H_
18 | #define TANGO_GL_LINE_H_
19 |
20 | #include "tango-gl/drawable_object.h"
21 |
22 | namespace tango_gl {
23 | class Line : public DrawableObject {
24 | public:
25 | Line(float line_width, GLenum render_mode);
26 | void SetLineWidth(const float pixels);
27 | void Render(const glm::mat4& projection_mat, const glm::mat4& view_mat) const;
28 | void UpdateLineVertices(const std::vector& vec_vertices) {
29 | vec_vertices_ = vec_vertices;
30 | }
31 |
32 | protected:
33 | float line_width_;
34 | std::vector vec_vertices_;
35 | };
36 | } // namespace tango_gl
37 | #endif // TANGO_GL_LINE_H_
--------------------------------------------------------------------------------
/app/android/jni/tango-gl/include/tango-gl/quad.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2014 Google Inc. All Rights Reserved.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | #ifndef TANGO_GL_QUAD_H_
18 | #define TANGO_GL_QUAD_H_
19 |
20 | #include "tango-gl/drawable_object.h"
21 |
22 | namespace tango_gl {
23 | class Quad : public DrawableObject {
24 | public:
25 | Quad();
26 | Quad(const Quad& other) = delete;
27 | Quad& operator=(const Quad&) = delete;
28 | ~Quad();
29 |
30 | void Render(const glm::mat4& projection_mat, const glm::mat4& view_mat) const;
31 | void SetTextureId(GLuint texture_id);
32 |
33 | private:
34 | GLuint vertex_buffer_;
35 | GLuint shader_program_;
36 | GLuint attrib_vertices_;
37 | GLuint texture_coords_;
38 | GLuint texture_handle;
39 | GLuint uniform_mvp_mat_;
40 |
41 | GLuint texture_id_;
42 | };
43 | } // namespace tango_gl
44 | #endif // TANGO_GL_QUAD_H_
45 |
--------------------------------------------------------------------------------
/app/android/jni/tango-gl/include/tango-gl/segment.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2014 Google Inc. All Rights Reserved.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | #ifndef TANGO_GL_SEGMENT_H_
18 | #define TANGO_GL_SEGMENT_H_
19 |
20 | #include "glm/glm.hpp"
21 |
22 | namespace tango_gl {
23 | class Segment {
24 | public:
25 | Segment() : start(glm::vec3(0, 0, 0)), end(glm::vec3(0, 0, 0)) {}
26 | Segment(const glm::vec3& segment_start, const glm::vec3& segment_end)
27 | : start(segment_start), end(segment_end) {}
28 | Segment(const Segment&) = default;
29 | Segment& operator=(const Segment&) = default;
30 |
31 | glm::vec3 start;
32 | glm::vec3 end;
33 | };
34 | } // namespace tango_gl
35 | #endif // TANGO_GL_SEGMENT_H_
36 |
--------------------------------------------------------------------------------
/app/android/jni/tango-gl/include/tango-gl/segment_drawable.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2014 Google Inc. All Rights Reserved.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | #ifndef TANGO_GL_SEGMENT_DRAWABLE_H_
18 | #define TANGO_GL_SEGMENT_DRAWABLE_H_
19 |
20 | #include "tango-gl/line.h"
21 | #include "tango-gl/segment.h"
22 |
23 | namespace tango_gl {
24 | class SegmentDrawable : public Line {
25 | public:
26 | SegmentDrawable();
27 | void UpdateSegment(const Segment& segment);
28 | };
29 | } // namespace tango_gl
30 | #endif // TANGO_GL_SEGMENT_DRAWABLE_H_
31 |
--------------------------------------------------------------------------------
/app/android/jni/tango-gl/include/tango-gl/shaders.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2014 Google Inc. All Rights Reserved.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | #ifndef TANGO_GL_SHADERS_H_
18 | #define TANGO_GL_SHADERS_H_
19 |
20 | #include
21 |
22 | namespace tango_gl {
23 | namespace shaders {
24 | std::string GetBasicVertexShader();
25 | std::string GetBasicFragmentShader();
26 | std::string GetColorVertexShader();
27 | std::string GetVideoOverlayVertexShader();
28 | std::string GetVideoOverlayFragmentShader();
29 | std::string GetShadedVertexShader();
30 | } // namespace shaders
31 | } // namespace tango_gl
32 | #endif // TANGO_GL_SHADERS_H_
33 |
--------------------------------------------------------------------------------
/app/android/jni/tango-gl/include/tango-gl/texture.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2014 Google Inc. All Rights Reserved.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | #ifndef TANGO_GL_TEXTURE_H_
18 | #define TANGO_GL_TEXTURE_H_
19 |
20 | #include
21 |
22 | #ifdef __ANDROID__
23 | #include
24 | #endif
25 |
26 | #include "tango-gl/util.h"
27 |
28 | namespace tango_gl {
29 | class Texture {
30 | public:
31 | Texture(const char* file_path);
32 | Texture(const Texture& other) = delete;
33 | Texture& operator=(const Texture&) = delete;
34 | ~Texture();
35 |
36 | #ifdef __ANDROID__
37 | bool LoadFromPNG(const char* file_path);
38 | #endif
39 | GLuint GetTextureID() const;
40 |
41 | private:
42 | #ifdef __ANDROID__
43 | png_uint_32 width_, height_;
44 | #endif
45 | int bit_depth_, color_type_;
46 | char* byte_data_;
47 | GLuint texture_id_;
48 | };
49 | } // namespace tango_gl
50 | #endif // TANGO_GL_TEXTURE_H_
51 |
--------------------------------------------------------------------------------
/app/android/jni/tango-gl/include/tango-gl/trace.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2014 Google Inc. All Rights Reserved.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | #ifndef TANGO_GL_TRACE_H_
18 | #define TANGO_GL_TRACE_H_
19 |
20 | #include "tango-gl/line.h"
21 |
22 | namespace tango_gl {
23 | class Trace : public Line {
24 | public:
25 | Trace();
26 | void UpdateVertexArray(const glm::vec3& v);
27 | void ClearVertexArray();
28 | };
29 | } // namespace tango_gl
30 | #endif // TANGO_GL_TRACE_H_
31 |
--------------------------------------------------------------------------------
/app/android/jni/tango-gl/include/tango-gl/triangle.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2014 Google Inc. All Rights Reserved.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | #ifndef TANGO_GL_TRIANGLE_H_
18 | #define TANGO_GL_TRIANGLE_H_
19 |
20 | #include "tango-gl/mesh.h"
21 |
22 | namespace tango_gl {
23 | class Triangle : public Mesh {
24 | public:
25 | Triangle();
26 | };
27 | } // namespace tango_gl
28 | #endif // TANGO_GL_TRIANGLE_H_
29 |
--------------------------------------------------------------------------------
/app/android/jni/tango-gl/include/tango-gl/video_overlay.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2014 Google Inc. All Rights Reserved.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | #ifndef TANGO_GL_RENDERER_VIDEO_OVERLAY_H_
18 | #define TANGO_GL_RENDERER_VIDEO_OVERLAY_H_
19 |
20 | #include "tango-gl/drawable_object.h"
21 |
22 | namespace tango_gl {
23 | class VideoOverlay : public DrawableObject {
24 | public:
25 | VideoOverlay();
26 | void Render(const glm::mat4& projection_mat, const glm::mat4& view_mat) const;
27 | GLuint GetTextureId() const { return texture_id_; }
28 | void SetTextureId(GLuint texture_id) { texture_id_ = texture_id; }
29 |
30 | private:
31 | // This id is populated on construction, and is passed to the tango service.
32 | GLuint texture_id_;
33 |
34 | GLuint attrib_texture_coords_;
35 | GLuint uniform_texture_;
36 | GLuint vertex_buffers_[3];
37 | };
38 | } // namespace tango_gl
39 | #endif // TANGO_GL_RENDERER_VIDEO_OVERLAY_H_
40 |
--------------------------------------------------------------------------------
/app/android/jni/tango-gl/segment_drawable.cpp:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2014 Google Inc. All Rights Reserved.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | #include "tango-gl/segment_drawable.h"
18 |
19 | namespace tango_gl {
20 | SegmentDrawable::SegmentDrawable() : tango_gl::Line(5.0f, GL_LINES) {
21 | SetShader();
22 | vec_vertices_.push_back(glm::vec3(0, 0, 0));
23 | vec_vertices_.push_back(glm::vec3(1.f, 1.f, 1.f));
24 | }
25 | void SegmentDrawable::UpdateSegment(const Segment& segment) {
26 | vec_vertices_[0] = segment.start;
27 | vec_vertices_[1] = segment.end;
28 | }
29 | } // namespace tango_gl
30 |
--------------------------------------------------------------------------------
/app/android/jni/tango-gl/trace.cpp:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2014 Google Inc. All Rights Reserved.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | #include "tango-gl/trace.h"
18 |
19 | namespace tango_gl {
20 |
21 | static const int kMaxTraceLength = 5000;
22 | static const float kDistanceCheck = 0.05f;
23 |
24 | Trace::Trace() : Line(3.0f, GL_LINE_STRIP) { SetShader(); }
25 |
26 | void Trace::UpdateVertexArray(const glm::vec3& v) {
27 | if (vec_vertices_.size() == 0) {
28 | vec_vertices_.push_back(v);
29 | } else {
30 | float dist = glm::distance(vec_vertices_[vec_vertices_.size() - 1], v);
31 | if (dist >= kDistanceCheck) {
32 | vec_vertices_.push_back(v);
33 | }
34 | }
35 | }
36 |
37 | void Trace::ClearVertexArray() { vec_vertices_.clear(); }
38 | } // namespace tango_gl
39 |
--------------------------------------------------------------------------------
/app/android/jni/tango-gl/triangle.cpp:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2014 Google Inc. All Rights Reserved.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | #include "tango-gl/triangle.h"
18 |
19 | namespace tango_gl {
20 |
21 | static const GLfloat const_vertices[]
22 | = {-0.15f, 0.0f, 0.0f, 0.15f, 0.0f, 0.0f, 0.0f, 0.0f, -0.2f};
23 |
24 | static const GLushort const_indices[] = {0, 1, 2};
25 |
26 | Triangle::Triangle() {
27 | SetShader();
28 | std::vector vertices(
29 | const_vertices,
30 | const_vertices + sizeof(const_vertices) / sizeof(GLfloat));
31 | std::vector indices(
32 | const_indices, const_indices + sizeof(const_indices) / sizeof(GLushort));
33 | SetVertices(vertices, indices);
34 | }
35 | } // namespace tango_gl
36 |
--------------------------------------------------------------------------------
/app/android/jni/third-party/include/glm/detail/precision.inl:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/introlab/rtabmap/e19b0c3dc4571a75f60823f6efb622769f764f31/app/android/jni/third-party/include/glm/detail/precision.inl
--------------------------------------------------------------------------------
/app/android/jni/third-party/include/glm/gtx/closest_point.inl:
--------------------------------------------------------------------------------
1 | ///////////////////////////////////////////////////////////////////////////////////////////////////
2 | // OpenGL Mathematics Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net)
3 | ///////////////////////////////////////////////////////////////////////////////////////////////////
4 | // Created : 2005-12-30
5 | // Updated : 2008-10-05
6 | // Licence : This source is under MIT License
7 | // File : glm/gtx/closest_point.inl
8 | ///////////////////////////////////////////////////////////////////////////////////////////////////
9 |
10 | namespace glm
11 | {
12 | template
13 | GLM_FUNC_QUALIFIER detail::tvec3 closestPointOnLine
14 | (
15 | detail::tvec3 const & point,
16 | detail::tvec3 const & a,
17 | detail::tvec3 const & b
18 | )
19 | {
20 | T LineLength = distance(a, b);
21 | detail::tvec3 Vector = point - a;
22 | detail::tvec3 LineDirection = (b - a) / LineLength;
23 |
24 | // Project Vector to LineDirection to get the distance of point from a
25 | T Distance = dot(Vector, LineDirection);
26 |
27 | if(Distance <= T(0)) return a;
28 | if(Distance >= LineLength) return b;
29 | return a + LineDirection * Distance;
30 | }
31 | }//namespace glm
32 |
--------------------------------------------------------------------------------
/app/android/jni/third-party/include/glm/gtx/handed_coordinate_space.inl:
--------------------------------------------------------------------------------
1 | ///////////////////////////////////////////////////////////////////////////////////////////////////
2 | // OpenGL Mathematics Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net)
3 | ///////////////////////////////////////////////////////////////////////////////////////////////////
4 | // Created : 2005-12-21
5 | // Updated : 2009-02-19
6 | // Licence : This source is under MIT License
7 | // File : glm/gtx/handed_coordinate_space.inl
8 | ///////////////////////////////////////////////////////////////////////////////////////////////////
9 |
10 | namespace glm
11 | {
12 | template
13 | GLM_FUNC_QUALIFIER bool rightHanded
14 | (
15 | detail::tvec3 const & tangent,
16 | detail::tvec3 const & binormal,
17 | detail::tvec3 const & normal
18 | )
19 | {
20 | return dot(cross(normal, tangent), binormal) > T(0);
21 | }
22 |
23 | template
24 | GLM_FUNC_QUALIFIER bool leftHanded
25 | (
26 | detail::tvec3 const & tangent,
27 | detail::tvec3 const & binormal,
28 | detail::tvec3 const & normal
29 | )
30 | {
31 | return dot(cross(normal, tangent), binormal) < T(0);
32 | }
33 | }//namespace glm
34 |
--------------------------------------------------------------------------------
/app/android/jni/third-party/include/glm/gtx/log_base.inl:
--------------------------------------------------------------------------------
1 | ///////////////////////////////////////////////////////////////////////////////////////////////////
2 | // OpenGL Mathematics Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net)
3 | ///////////////////////////////////////////////////////////////////////////////////////////////////
4 | // Created : 2008-10-24
5 | // Updated : 2008-10-24
6 | // Licence : This source is under MIT License
7 | // File : glm/gtx/log_base.inl
8 | ///////////////////////////////////////////////////////////////////////////////////////////////////
9 |
10 | namespace glm
11 | {
12 | template
13 | GLM_FUNC_QUALIFIER genType log(
14 | genType const & x,
15 | genType const & base)
16 | {
17 | assert(x != genType(0));
18 |
19 | return glm::log(x) / glm::log(base);
20 | }
21 |
22 | VECTORIZE_VEC_SCA(log)
23 | VECTORIZE_VEC_VEC(log)
24 | }//namespace glm
25 |
--------------------------------------------------------------------------------
/app/android/jni/third-party/include/glm/gtx/matrix_cross_product.inl:
--------------------------------------------------------------------------------
1 | ///////////////////////////////////////////////////////////////////////////////////////////////////
2 | // OpenGL Mathematics Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net)
3 | ///////////////////////////////////////////////////////////////////////////////////////////////////
4 | // Created : 2005-12-21
5 | // Updated : 2005-12-21
6 | // Licence : This source is under MIT License
7 | // File : glm/gtx/matrix_cross_product.inl
8 | ///////////////////////////////////////////////////////////////////////////////////////////////////
9 |
10 | namespace glm
11 | {
12 | template
13 | GLM_FUNC_QUALIFIER detail::tmat3x3 matrixCross3
14 | (
15 | detail::tvec3 const & x
16 | )
17 | {
18 | detail::tmat3x3 Result(T(0));
19 | Result[0][1] = x.z;
20 | Result[1][0] = -x.z;
21 | Result[0][2] = -x.y;
22 | Result[2][0] = x.y;
23 | Result[1][2] = x.x;
24 | Result[2][1] = -x.x;
25 | return Result;
26 | }
27 |
28 | template
29 | GLM_FUNC_QUALIFIER detail::tmat4x4 matrixCross4
30 | (
31 | detail::tvec3 const & x
32 | )
33 | {
34 | detail::tmat4x4 Result(T(0));
35 | Result[0][1] = x.z;
36 | Result[1][0] = -x.z;
37 | Result[0][2] = -x.y;
38 | Result[2][0] = x.y;
39 | Result[1][2] = x.x;
40 | Result[2][1] = -x.x;
41 | return Result;
42 | }
43 |
44 | }//namespace glm
45 |
--------------------------------------------------------------------------------
/app/android/jni/third-party/include/glm/gtx/mixed_product.inl:
--------------------------------------------------------------------------------
1 | ///////////////////////////////////////////////////////////////////////////////////////////////////
2 | // OpenGL Mathematics Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net)
3 | ///////////////////////////////////////////////////////////////////////////////////////////////////
4 | // Created : 2007-04-03
5 | // Updated : 2008-09-17
6 | // Licence : This source is under MIT License
7 | // File : glm/gtx/mixed_product.inl
8 | ///////////////////////////////////////////////////////////////////////////////////////////////////
9 |
10 | namespace glm
11 | {
12 | template
13 | GLM_FUNC_QUALIFIER T mixedProduct
14 | (
15 | detail::tvec3 const & v1,
16 | detail::tvec3 const & v2,
17 | detail::tvec3 const & v3
18 | )
19 | {
20 | return dot(cross(v1, v2), v3);
21 | }
22 | }//namespace glm
23 |
--------------------------------------------------------------------------------
/app/android/jni/third-party/include/glm/gtx/normal.inl:
--------------------------------------------------------------------------------
1 | ///////////////////////////////////////////////////////////////////////////////////////////////////
2 | // OpenGL Mathematics Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net)
3 | ///////////////////////////////////////////////////////////////////////////////////////////////////
4 | // Created : 2005-12-21
5 | // Updated : 2011-06-07
6 | // Licence : This source is under MIT License
7 | // File : glm/gtx/normal.inl
8 | ///////////////////////////////////////////////////////////////////////////////////////////////////
9 |
10 | namespace glm
11 | {
12 | template
13 | GLM_FUNC_QUALIFIER detail::tvec3 triangleNormal
14 | (
15 | detail::tvec3 const & p1,
16 | detail::tvec3 const & p2,
17 | detail::tvec3 const & p3
18 | )
19 | {
20 | return normalize(cross(p1 - p2, p1 - p3));
21 | }
22 | }//namespace glm
23 |
--------------------------------------------------------------------------------
/app/android/jni/third-party/include/glm/gtx/number_precision.inl:
--------------------------------------------------------------------------------
1 | ///////////////////////////////////////////////////////////////////////////////////////////////////
2 | // OpenGL Mathematics Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net)
3 | ///////////////////////////////////////////////////////////////////////////////////////////////////
4 | // Created : 2007-05-10
5 | // Updated : 2007-05-10
6 | // Licence : This source is under MIT License
7 | // File : glm/gtx/number_precision.inl
8 | ///////////////////////////////////////////////////////////////////////////////////////////////////
9 |
10 | namespace glm
11 | {
12 |
13 | }
14 |
--------------------------------------------------------------------------------
/app/android/jni/third-party/include/glm/gtx/orthonormalize.inl:
--------------------------------------------------------------------------------
1 | ///////////////////////////////////////////////////////////////////////////////////////////////////
2 | // OpenGL Mathematics Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net)
3 | ///////////////////////////////////////////////////////////////////////////////////////////////////
4 | // Created : 2005-12-21
5 | // Updated : 2005-12-21
6 | // Licence : This source is under MIT License
7 | // File : glm/gtx/orthonormalize.inl
8 | ///////////////////////////////////////////////////////////////////////////////////////////////////
9 |
10 | namespace glm
11 | {
12 | template
13 | GLM_FUNC_QUALIFIER detail::tmat3x3 orthonormalize
14 | (
15 | const detail::tmat3x3& m
16 | )
17 | {
18 | detail::tmat3x3 r = m;
19 |
20 | r[0] = normalize(r[0]);
21 |
22 | float d0 = dot(r[0], r[1]);
23 | r[1] -= r[0] * d0;
24 | r[1] = normalize(r[1]);
25 |
26 | float d1 = dot(r[1], r[2]);
27 | d0 = dot(r[0], r[2]);
28 | r[2] -= r[0] * d0 + r[1] * d1;
29 | r[2] = normalize(r[2]);
30 |
31 | return r;
32 | }
33 |
34 | template
35 | GLM_FUNC_QUALIFIER detail::tvec3 orthonormalize
36 | (
37 | const detail::tvec3& x,
38 | const detail::tvec3& y
39 | )
40 | {
41 | return normalize(x - y * dot(y, x));
42 | }
43 | }//namespace glm
44 |
--------------------------------------------------------------------------------
/app/android/jni/third-party/include/glm/gtx/perpendicular.inl:
--------------------------------------------------------------------------------
1 | ///////////////////////////////////////////////////////////////////////////////////////////////////
2 | // OpenGL Mathematics Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net)
3 | ///////////////////////////////////////////////////////////////////////////////////////////////////
4 | // Created : 2005-12-21
5 | // Updated : 2009-03-06
6 | // Licence : This source is under MIT License
7 | // File : glm/gtx/perpendicular.inl
8 | ///////////////////////////////////////////////////////////////////////////////////////////////////
9 |
10 | namespace glm
11 | {
12 | template
13 | GLM_FUNC_QUALIFIER vecType perp
14 | (
15 | vecType const & x,
16 | vecType const & Normal
17 | )
18 | {
19 | return x - proj(x, Normal);
20 | }
21 | }//namespace glm
22 |
--------------------------------------------------------------------------------
/app/android/jni/third-party/include/glm/gtx/polar_coordinates.inl:
--------------------------------------------------------------------------------
1 | ///////////////////////////////////////////////////////////////////////////////////////////////////
2 | // OpenGL Mathematics Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net)
3 | ///////////////////////////////////////////////////////////////////////////////////////////////////
4 | // Created : 2007-03-06
5 | // Updated : 2009-05-01
6 | // Licence : This source is under MIT License
7 | // File : glm/gtx/polar_coordinates.inl
8 | ///////////////////////////////////////////////////////////////////////////////////////////////////
9 |
10 | namespace glm
11 | {
12 | template
13 | GLM_FUNC_QUALIFIER detail::tvec3 polar
14 | (
15 | detail::tvec3 const & euclidean
16 | )
17 | {
18 | T const Length(length(euclidean));
19 | detail::tvec3 const tmp(euclidean / Length);
20 | T const xz_dist(sqrt(tmp.x * tmp.x + tmp.z * tmp.z));
21 |
22 | return detail::tvec3(
23 | atan(xz_dist, tmp.y), // latitude
24 | atan(tmp.x, tmp.z), // longitude
25 | xz_dist); // xz distance
26 | }
27 |
28 | template
29 | GLM_FUNC_QUALIFIER detail::tvec3 euclidean
30 | (
31 | detail::tvec2 const & polar
32 | )
33 | {
34 | T const latitude(polar.x);
35 | T const longitude(polar.y);
36 |
37 | return detail::tvec3(
38 | cos(latitude) * sin(longitude),
39 | sin(latitude),
40 | cos(latitude) * cos(longitude));
41 | }
42 |
43 | }//namespace glm
44 |
--------------------------------------------------------------------------------
/app/android/jni/third-party/include/glm/gtx/projection.inl:
--------------------------------------------------------------------------------
1 | ///////////////////////////////////////////////////////////////////////////////////////////////////
2 | // OpenGL Mathematics Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net)
3 | ///////////////////////////////////////////////////////////////////////////////////////////////////
4 | // Created : 2005-12-21
5 | // Updated : 2009-03-06
6 | // Licence : This source is under MIT License
7 | // File : glm/gtx/projection.inl
8 | ///////////////////////////////////////////////////////////////////////////////////////////////////
9 |
10 | namespace glm
11 | {
12 | template
13 | GLM_FUNC_QUALIFIER vecType proj
14 | (
15 | vecType const & x,
16 | vecType const & Normal
17 | )
18 | {
19 | return glm::dot(x, Normal) / glm::dot(Normal, Normal) * Normal;
20 | }
21 | }//namespace glm
22 |
--------------------------------------------------------------------------------
/app/android/jni/third-party/include/glm/gtx/raw_data.inl:
--------------------------------------------------------------------------------
1 | ///////////////////////////////////////////////////////////////////////////////////////////////////
2 | // OpenGL Mathematics Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net)
3 | ///////////////////////////////////////////////////////////////////////////////////////////////////
4 | // Created : 2008-11-19
5 | // Updated : 2008-11-19
6 | // Licence : This source is under MIT License
7 | // File : glm/gtx/raw_data.inl
8 | ///////////////////////////////////////////////////////////////////////////////////////////////////
9 | // Dependency:
10 | // - GLM core
11 | ///////////////////////////////////////////////////////////////////////////////////////////////////
12 |
--------------------------------------------------------------------------------
/app/android/jni/third-party/include/glm/gtx/std_based_type.inl:
--------------------------------------------------------------------------------
1 | ///////////////////////////////////////////////////////////////////////////////////////////////////
2 | // OpenGL Mathematics Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net)
3 | ///////////////////////////////////////////////////////////////////////////////////////////////////
4 | // Created : 2008-06-08
5 | // Updated : 2008-06-08
6 | // Licence : This source is under MIT License
7 | // File : glm/gtx/std_based_type.inl
8 | ///////////////////////////////////////////////////////////////////////////////////////////////////
9 |
10 | namespace glm
11 | {
12 |
13 | }
14 |
--------------------------------------------------------------------------------
/app/android/jni/third-party/include/glm/gtx/transform.inl:
--------------------------------------------------------------------------------
1 | ///////////////////////////////////////////////////////////////////////////////////////////////////
2 | // OpenGL Mathematics Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net)
3 | ///////////////////////////////////////////////////////////////////////////////////////////////////
4 | // Created : 2005-12-21
5 | // Updated : 2009-04-29
6 | // Licence : This source is under MIT License
7 | // File : glm/gtx/transform.inl
8 | ///////////////////////////////////////////////////////////////////////////////////////////////////
9 |
10 | namespace glm
11 | {
12 | template
13 | GLM_FUNC_QUALIFIER detail::tmat4x4 translate(
14 | detail::tvec3 const & v)
15 | {
16 | return translate(
17 | detail::tmat4x4(1.0f), v);
18 | }
19 |
20 | template
21 | GLM_FUNC_QUALIFIER detail::tmat4x4 rotate(
22 | T angle,
23 | detail::tvec3 const & v)
24 | {
25 | return rotate(
26 | detail::tmat4x4(1), angle, v);
27 | }
28 |
29 | template
30 | GLM_FUNC_QUALIFIER detail::tmat4x4 scale(
31 | detail::tvec3 const & v)
32 | {
33 | return scale(
34 | detail::tmat4x4(1.0f), v);
35 | }
36 |
37 | }//namespace glm
38 |
--------------------------------------------------------------------------------
/app/android/jni/third-party/include/glm/gtx/unsigned_int.inl:
--------------------------------------------------------------------------------
1 | ///////////////////////////////////////////////////////////////////////////////////////////////////
2 | // OpenGL Mathematics Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net)
3 | ///////////////////////////////////////////////////////////////////////////////////////////////////
4 | // Created : 2005-12-24
5 | // Updated : 2008-10-07
6 | // Licence : This source is under MIT License
7 | // File : glm/gtx/unsigned_int.inl
8 | ///////////////////////////////////////////////////////////////////////////////////////////////////
9 |
10 | namespace glm
11 | {
12 |
13 | }//namespace glm
14 |
--------------------------------------------------------------------------------
/app/android/jni/third-party/lib/.gitignore:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/app/android/libs/.gitignore:
--------------------------------------------------------------------------------
1 | # Ignore everything in this directory
2 | *
3 | # Except this file
4 | !.gitignore
--------------------------------------------------------------------------------
/app/android/libs/android-support-v4.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/introlab/rtabmap/e19b0c3dc4571a75f60823f6efb622769f764f31/app/android/libs/android-support-v4.jar
--------------------------------------------------------------------------------
/app/android/libs/httpclient-4.2.1.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/introlab/rtabmap/e19b0c3dc4571a75f60823f6efb622769f764f31/app/android/libs/httpclient-4.2.1.jar
--------------------------------------------------------------------------------
/app/android/res/drawable-hdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/introlab/rtabmap/e19b0c3dc4571a75f60823f6efb622769f764f31/app/android/res/drawable-hdpi/ic_launcher.png
--------------------------------------------------------------------------------
/app/android/res/drawable-mdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/introlab/rtabmap/e19b0c3dc4571a75f60823f6efb622769f764f31/app/android/res/drawable-mdpi/ic_launcher.png
--------------------------------------------------------------------------------
/app/android/res/drawable-xhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/introlab/rtabmap/e19b0c3dc4571a75f60823f6efb622769f764f31/app/android/res/drawable-xhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/app/android/res/drawable-xhdpi/start96.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/introlab/rtabmap/e19b0c3dc4571a75f60823f6efb622769f764f31/app/android/res/drawable-xhdpi/start96.png
--------------------------------------------------------------------------------
/app/android/res/drawable-xhdpi/stop96.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/introlab/rtabmap/e19b0c3dc4571a75f60823f6efb622769f764f31/app/android/res/drawable-xhdpi/stop96.png
--------------------------------------------------------------------------------
/app/android/res/drawable-xxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/introlab/rtabmap/e19b0c3dc4571a75f60823f6efb622769f764f31/app/android/res/drawable-xxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/app/android/res/drawable/custom_seekbar.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | -
4 |
5 |
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/app/android/res/layout/about.xml:
--------------------------------------------------------------------------------
1 |
2 |
7 |
8 |
14 |
20 |
21 |
--------------------------------------------------------------------------------
/app/android/res/layout/auth_dialog.xml:
--------------------------------------------------------------------------------
1 |
2 |
6 |
10 |
11 |
--------------------------------------------------------------------------------
/app/android/res/layout/database_list.xml:
--------------------------------------------------------------------------------
1 |
2 |
6 |
7 |
14 |
15 |
22 |
--------------------------------------------------------------------------------
/app/android/res/values/arrays.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | - First View
5 | - Third-P. View
6 | - Top View
7 | - Ortho View
8 |
9 |
10 |
--------------------------------------------------------------------------------
/app/android/res/values/dimens.xml:
--------------------------------------------------------------------------------
1 |
2 | 150dp
3 |
4 |
--------------------------------------------------------------------------------
/app/android/res/values/styles.xml:
--------------------------------------------------------------------------------
1 |
2 |
5 |
6 |
10 |
--------------------------------------------------------------------------------
/app/android/res/xml/provider_paths.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/app/android/src/com/introlab/rtabmap/TextObject.java:
--------------------------------------------------------------------------------
1 | //package ri.blog.opengl008;
2 | package com.introlab.rtabmap;
3 |
4 | public class TextObject {
5 |
6 | public String text;
7 | public float x;
8 | public float y;
9 | public float[] color;
10 |
11 | public TextObject()
12 | {
13 | text = "default";
14 | x = 0f;
15 | y = 0f;
16 | color = new float[] {1f, 1f, 1f, 1.0f};
17 | }
18 |
19 | public TextObject(String txt, float xcoord, float ycoord)
20 | {
21 | text = txt;
22 | x = xcoord;
23 | y = ycoord;
24 | color = new float[] {1f, 1f, 1f, 1.0f};
25 | }
26 |
27 | /*public boolean validate()
28 | {
29 | if(text.compareTo("")==0) return false;
30 |
31 | return true;
32 | }*/
33 | }
34 |
--------------------------------------------------------------------------------
/app/ios/RTABMapApp.xcodeproj/project.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/app/ios/RTABMapApp.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | IDEDidComputeMac32BitWarning
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/app/ios/RTABMapApp.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved:
--------------------------------------------------------------------------------
1 | {
2 | "object": {
3 | "pins": [
4 | {
5 | "package": "Zip",
6 | "repositoryURL": "https://github.com/marmelroy/Zip.git",
7 | "state": {
8 | "branch": null,
9 | "revision": "bd19d974e8a38cc8d3a88c90c8a107386c3b8ccf",
10 | "version": "2.1.1"
11 | }
12 | }
13 | ]
14 | },
15 | "version": 1
16 | }
17 |
--------------------------------------------------------------------------------
/app/ios/RTABMapApp/.gitignore:
--------------------------------------------------------------------------------
1 | Libraries
2 |
--------------------------------------------------------------------------------
/app/ios/RTABMapApp/Assets.xcassets/AccentColor.colorset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "colors" : [
3 | {
4 | "idiom" : "universal"
5 | }
6 | ],
7 | "info" : {
8 | "author" : "xcode",
9 | "version" : 1
10 | }
11 | }
12 |
--------------------------------------------------------------------------------
/app/ios/RTABMapApp/Assets.xcassets/AppIcon.appiconset/RTAB-Map1024.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/introlab/rtabmap/e19b0c3dc4571a75f60823f6efb622769f764f31/app/ios/RTABMapApp/Assets.xcassets/AppIcon.appiconset/RTAB-Map1024.png
--------------------------------------------------------------------------------
/app/ios/RTABMapApp/Assets.xcassets/AppIcon.appiconset/RTAB-Map120-1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/introlab/rtabmap/e19b0c3dc4571a75f60823f6efb622769f764f31/app/ios/RTABMapApp/Assets.xcassets/AppIcon.appiconset/RTAB-Map120-1.png
--------------------------------------------------------------------------------
/app/ios/RTABMapApp/Assets.xcassets/AppIcon.appiconset/RTAB-Map120.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/introlab/rtabmap/e19b0c3dc4571a75f60823f6efb622769f764f31/app/ios/RTABMapApp/Assets.xcassets/AppIcon.appiconset/RTAB-Map120.png
--------------------------------------------------------------------------------
/app/ios/RTABMapApp/Assets.xcassets/AppIcon.appiconset/RTAB-Map152.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/introlab/rtabmap/e19b0c3dc4571a75f60823f6efb622769f764f31/app/ios/RTABMapApp/Assets.xcassets/AppIcon.appiconset/RTAB-Map152.png
--------------------------------------------------------------------------------
/app/ios/RTABMapApp/Assets.xcassets/AppIcon.appiconset/RTAB-Map167.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/introlab/rtabmap/e19b0c3dc4571a75f60823f6efb622769f764f31/app/ios/RTABMapApp/Assets.xcassets/AppIcon.appiconset/RTAB-Map167.png
--------------------------------------------------------------------------------
/app/ios/RTABMapApp/Assets.xcassets/AppIcon.appiconset/RTAB-Map180.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/introlab/rtabmap/e19b0c3dc4571a75f60823f6efb622769f764f31/app/ios/RTABMapApp/Assets.xcassets/AppIcon.appiconset/RTAB-Map180.png
--------------------------------------------------------------------------------
/app/ios/RTABMapApp/Assets.xcassets/AppIcon.appiconset/RTAB-Map20.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/introlab/rtabmap/e19b0c3dc4571a75f60823f6efb622769f764f31/app/ios/RTABMapApp/Assets.xcassets/AppIcon.appiconset/RTAB-Map20.png
--------------------------------------------------------------------------------
/app/ios/RTABMapApp/Assets.xcassets/AppIcon.appiconset/RTAB-Map29.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/introlab/rtabmap/e19b0c3dc4571a75f60823f6efb622769f764f31/app/ios/RTABMapApp/Assets.xcassets/AppIcon.appiconset/RTAB-Map29.png
--------------------------------------------------------------------------------
/app/ios/RTABMapApp/Assets.xcassets/AppIcon.appiconset/RTAB-Map40-1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/introlab/rtabmap/e19b0c3dc4571a75f60823f6efb622769f764f31/app/ios/RTABMapApp/Assets.xcassets/AppIcon.appiconset/RTAB-Map40-1.png
--------------------------------------------------------------------------------
/app/ios/RTABMapApp/Assets.xcassets/AppIcon.appiconset/RTAB-Map40-2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/introlab/rtabmap/e19b0c3dc4571a75f60823f6efb622769f764f31/app/ios/RTABMapApp/Assets.xcassets/AppIcon.appiconset/RTAB-Map40-2.png
--------------------------------------------------------------------------------
/app/ios/RTABMapApp/Assets.xcassets/AppIcon.appiconset/RTAB-Map40.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/introlab/rtabmap/e19b0c3dc4571a75f60823f6efb622769f764f31/app/ios/RTABMapApp/Assets.xcassets/AppIcon.appiconset/RTAB-Map40.png
--------------------------------------------------------------------------------
/app/ios/RTABMapApp/Assets.xcassets/AppIcon.appiconset/RTAB-Map58-1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/introlab/rtabmap/e19b0c3dc4571a75f60823f6efb622769f764f31/app/ios/RTABMapApp/Assets.xcassets/AppIcon.appiconset/RTAB-Map58-1.png
--------------------------------------------------------------------------------
/app/ios/RTABMapApp/Assets.xcassets/AppIcon.appiconset/RTAB-Map58.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/introlab/rtabmap/e19b0c3dc4571a75f60823f6efb622769f764f31/app/ios/RTABMapApp/Assets.xcassets/AppIcon.appiconset/RTAB-Map58.png
--------------------------------------------------------------------------------
/app/ios/RTABMapApp/Assets.xcassets/AppIcon.appiconset/RTAB-Map60.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/introlab/rtabmap/e19b0c3dc4571a75f60823f6efb622769f764f31/app/ios/RTABMapApp/Assets.xcassets/AppIcon.appiconset/RTAB-Map60.png
--------------------------------------------------------------------------------
/app/ios/RTABMapApp/Assets.xcassets/AppIcon.appiconset/RTAB-Map76.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/introlab/rtabmap/e19b0c3dc4571a75f60823f6efb622769f764f31/app/ios/RTABMapApp/Assets.xcassets/AppIcon.appiconset/RTAB-Map76.png
--------------------------------------------------------------------------------
/app/ios/RTABMapApp/Assets.xcassets/AppIcon.appiconset/RTAB-Map80-1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/introlab/rtabmap/e19b0c3dc4571a75f60823f6efb622769f764f31/app/ios/RTABMapApp/Assets.xcassets/AppIcon.appiconset/RTAB-Map80-1.png
--------------------------------------------------------------------------------
/app/ios/RTABMapApp/Assets.xcassets/AppIcon.appiconset/RTAB-Map80.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/introlab/rtabmap/e19b0c3dc4571a75f60823f6efb622769f764f31/app/ios/RTABMapApp/Assets.xcassets/AppIcon.appiconset/RTAB-Map80.png
--------------------------------------------------------------------------------
/app/ios/RTABMapApp/Assets.xcassets/AppIcon.appiconset/RTAB-Map87.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/introlab/rtabmap/e19b0c3dc4571a75f60823f6efb622769f764f31/app/ios/RTABMapApp/Assets.xcassets/AppIcon.appiconset/RTAB-Map87.png
--------------------------------------------------------------------------------
/app/ios/RTABMapApp/Assets.xcassets/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "info" : {
3 | "author" : "xcode",
4 | "version" : 1
5 | }
6 | }
7 |
--------------------------------------------------------------------------------
/app/ios/RTABMapApp/Images.xcassets/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "info" : {
3 | "author" : "xcode",
4 | "version" : 1
5 | }
6 | }
7 |
--------------------------------------------------------------------------------
/app/ios/RTABMapApp/Images.xcassets/RTAB-Map1024.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "filename" : "RTAB-Map1024.png",
5 | "idiom" : "universal",
6 | "scale" : "1x"
7 | },
8 | {
9 | "idiom" : "universal",
10 | "scale" : "2x"
11 | },
12 | {
13 | "idiom" : "universal",
14 | "scale" : "3x"
15 | }
16 | ],
17 | "info" : {
18 | "author" : "xcode",
19 | "version" : 1
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/app/ios/RTABMapApp/Images.xcassets/RTAB-Map1024.imageset/RTAB-Map1024.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/introlab/rtabmap/e19b0c3dc4571a75f60823f6efb622769f764f31/app/ios/RTABMapApp/Images.xcassets/RTAB-Map1024.imageset/RTAB-Map1024.png
--------------------------------------------------------------------------------
/app/ios/RTABMapApp/PointCloud.swift:
--------------------------------------------------------------------------------
1 | //
2 | // PointCloud.swift
3 | // ThreeDScanner
4 | //
5 | // Created by Steven Roach on 4/3/18.
6 | // Copyright © 2018 Steven Roach. All rights reserved.
7 | //
8 |
9 | import Foundation
10 | import SceneKit
11 |
12 | internal struct PointCloud {
13 | internal var points: [vector_float3] = []
14 | internal var framePointsSizes: [Int32] = []
15 | internal var frameViewpoints: [SCNVector3] = []
16 | }
17 |
--------------------------------------------------------------------------------
/app/ios/RTABMapApp/PointCloudData.swift:
--------------------------------------------------------------------------------
1 | //
2 | // PointCloudData.swift
3 | // ThreeDScanner
4 | //
5 | // Created by Steven Roach on 4/3/18.
6 | // Copyright © 2018 Steven Roach. All rights reserved.
7 | //
8 |
9 | import Foundation
10 | import SceneKit
11 |
12 | internal struct PointCloud {
13 | internal var points: [vector_float3] = []
14 | internal var pointCloudFrameSizes: [Int32] = []
15 | internal var pointCloudFrameViewpoints: [SCNVector3] = []
16 | }
17 |
--------------------------------------------------------------------------------
/app/ios/RTABMapApp/RTABMapApp-Bridging-Header.h:
--------------------------------------------------------------------------------
1 | //
2 | // Use this file to import your target's public headers that you would like to expose to Swift.
3 | //
4 |
5 | #include "NativeWrapper.hpp"
6 | #import
7 |
--------------------------------------------------------------------------------
/app/ios/RTABMapApp/RTABMapApp.entitlements:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | com.apple.developer.kernel.increased-memory-limit
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/app/ios/Settings.bundle/en.lproj/Root.strings:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/introlab/rtabmap/e19b0c3dc4571a75f60823f6efb622769f764f31/app/ios/Settings.bundle/en.lproj/Root.strings
--------------------------------------------------------------------------------
/app/src/RTABMap.icns:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/introlab/rtabmap/e19b0c3dc4571a75f60823f6efb622769f764f31/app/src/RTABMap.icns
--------------------------------------------------------------------------------
/app/src/RTABMap.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/introlab/rtabmap/e19b0c3dc4571a75f60823f6efb622769f764f31/app/src/RTABMap.ico
--------------------------------------------------------------------------------
/app/src/RTABMap.rc:
--------------------------------------------------------------------------------
1 | IDI_ICON1 ICON DISCARDABLE "RTABMap.ico"
2 |
--------------------------------------------------------------------------------
/archive/2010-LoopClosure/Bayes/adjustLikelihood.m:
--------------------------------------------------------------------------------
1 | function LN = adjustLikelihood(L)
2 | %ADJUSTLIKELIHOOD Adjust the likelihood with std dev and mean.
3 | % LN = adjustLikelihood(L)
4 | %
5 | % L the likelihood (m,1)
6 | % LN the likelihood normalized (m,1)
7 |
8 | m = mean(L); % Calcul mean
9 | s = std(L); % Calcul std dev
10 | LN = zeros(size(L));
11 | for i=1:length(L)
12 | if L(i) > m + s
13 | LN(i) = (L(i)-s)/m;
14 | else
15 | LN(i) = 1;
16 | end
17 | end
--------------------------------------------------------------------------------
/archive/2010-LoopClosure/Bayes/updateDictionary.m:
--------------------------------------------------------------------------------
1 | function DU = updateDictionary(Dict, Sign)
2 | %UPDATEDICTIONARY Update the dictionary with the new signature (place)
3 | % DU = updateDictionary(Dict, Sign)
4 | %
5 | % DU = dictionary updated
6 | % dictionary = [wordId1 SignRefIds...; wordId2 SignRefIds...; ...]
7 | % sign = [signId WordRefIds...]
8 |
9 | signId = Sign(1);
10 | Sign = Sign(Sign~=0);
11 | for i=2:length(Sign)
12 | indexWord = [];
13 | if isempty(Dict) ~= 1
14 | indexWord = find(Dict(:,1) == Sign(i),1);
15 | end
16 | if isempty(indexWord) == 1
17 | Dict(size(Dict,1)+1,1) = Sign(i); %Word id
18 | Dict(size(Dict,1),2) = signId; %Signature id ref
19 | else
20 | ii = 1:length(Dict(indexWord,1:end));
21 | indexesZero = ii(Dict(indexWord,1:end) == 0);
22 | if isempty(indexesZero)
23 | Dict(indexWord, size(Dict,2)+1) = signId;
24 | else
25 | Dict(indexWord, indexesZero(1)) = signId;
26 | end
27 | end
28 | end
29 | DU = Dict;
--------------------------------------------------------------------------------
/archive/2010-LoopClosure/ParticleFilter/pf_filter.m:
--------------------------------------------------------------------------------
1 |
2 | function filtered = pf_filter(x, nParticles, noise, lambda)
3 |
4 | particles = ones(nParticles,1)*x(1) ;
5 | weights = ones(nParticles,1);
6 | filtered=zeros(1,length(x));
7 | for i = 1:length(x);
8 | for j = 1:nParticles
9 | rn = sqrt(-2.0*log(rand))*cos(2*pi*rand); % randn c++
10 | noisyP = particles(j) + noise*rn ;
11 | dist = abs(noisyP - x(i));
12 | tmp = exp(-lambda*dist);
13 | if isfinite(tmp) && tmp > 0
14 | particles(j) = noisyP;
15 | weights(j) = tmp;
16 | end
17 | end
18 | if sum(weights(:)) > 0
19 | weights = weights ./sum(weights(:));
20 | end
21 |
22 | filtered(i) = weights'*particles;
23 | particles = pf_resample(particles, weights);
24 | end
--------------------------------------------------------------------------------
/archive/2010-LoopClosure/ParticleFilter/pf_resample.m:
--------------------------------------------------------------------------------
1 |
2 | function newParticles=pf_resample(particles,weights)
3 | pcum = zeros(length(weights),1);
4 | sum = 0;
5 | for i=1:length(weights)
6 | pcum(i) = weights(i) + sum;
7 | sum = sum + weights(i);
8 | end
9 | pcum = pcum./pcum(end);
10 | newParticles = 0.*particles;
11 |
12 | %
13 | for i = 1:length(newParticles)
14 | indexx = 1;
15 | randnum = rand;
16 | for j = 1:length(pcum)
17 | if(randnum < pcum(j))
18 | indexx = j;
19 | break;
20 | end
21 | end
22 | newParticles(i) = particles(indexx);
23 | end
24 |
--------------------------------------------------------------------------------
/archive/2010-LoopClosure/ParticleFilter/test_pf_filter.m:
--------------------------------------------------------------------------------
1 |
2 |
3 | clc
4 | %close all
5 |
6 | particles = 300;
7 | noiseXYZ = 0.02;
8 | lambdaXYZ = 1;
9 | noiseRPY = 0.005;
10 | lambdaRPY = 250;
11 | noise = [noiseXYZ noiseXYZ noiseXYZ noiseRPY noiseRPY noiseRPY];
12 | lambda = [lambdaXYZ lambdaXYZ lambdaXYZ lambdaRPY lambdaRPY lambdaRPY];
13 | axeNames = ['x' 'y' 'z' 'R' 'P' 'Y'];
14 |
15 | % P = [13 x t] (id, incremental odom, incremental ground truth)
16 | T = P(2:7,:);
17 | G = P(8:end,:);
18 |
19 | T(4:end,:) = T(4:end,:)*pi/180;
20 | G(4:end,:) = G(4:end,:)*pi/180;
21 |
22 |
23 | x_filtered = zeros(6, size(T, 2));
24 | for i=1:6
25 | x=T(i,:);
26 | x=x';
27 | x_filtered(i,:) = pf_filter([x(2:end); 0], particles, noise(i), lambda(i));
28 |
29 | end
30 |
31 | figure
32 | for i=1:6
33 | subplot(2,3,i)
34 | x=T(i,:);
35 | x_gt = G(i,:);
36 | plot(1:length(x),cumsum(x),'b', 1:length(x),cumsum(x_filtered(i,:)),'r', 1:length(x),cumsum(x_gt),'g');
37 | legend(axeNames(i), [axeNames(i) ' filtered'], [axeNames(i) ' gt'])
38 | end
39 |
40 | figure
41 | for i=1:6
42 | subplot(2,3,i)
43 | x=T(i,:);
44 | x_gt = G(i,:);
45 | plot(1:length(x),x,'b', 1:length(x),x_filtered(i,:),'r', 1:length(x),x_gt,'g');
46 | legend(axeNames(i), [axeNames(i) ' filtered'], [axeNames(i) ' gt'])
47 | end
48 |
--------------------------------------------------------------------------------
/archive/2010-LoopClosure/README.md:
--------------------------------------------------------------------------------
1 |
2 | To reproduce results (based on parameters of this [paper](https://www.arxiv.org/abs/2407.15304)):
3 |
4 | ```
5 | rtabmap-console \
6 | --Rtabmap/StatisticLogged true\
7 | --Rtabmap/StatisticLoggedHeaders false\
8 | --Kp/DetectorStrategy 0\
9 | --Rtabmap/MemoryThr 300\
10 | --Rtabmap/LoopRatio 0.9\
11 | --SURF/HessianThreshold 150\
12 | --Mem/STMSize 30\
13 | --Vis/MaxFeatures 400\
14 | --Kp/TfIdfLikelihoodUsed false\
15 | --Kp/MaxFeatures 400\
16 | --Kp/BadSignRatio 0.25\
17 | --Mem/BadSignaturesIgnored true\
18 | --Mem/RehearsalSimilarity 0.20\
19 | --Mem/RecentWmRatio 0.2\
20 | -gt "~/Downloads/UdeS_1Hz.png"\
21 | ~/Downloads/UdeS_1Hz
22 | ```
23 | Adding the ground truth file here is optional to show recall at 100% precision at the end of the process directly without using the octave/MATLAB script below. For NewCollege and CityCentre datasets, `rtabmap-imagesJoiner` can be used to assemble the left and right images together.
24 |
25 | To analyze with Octave/MATLAB, drop `LogF.txt` and `LogI.txt` generated files from command above in ShowLogs directly, then execute `showLogs.m`.
26 |
--------------------------------------------------------------------------------
/archive/2010-LoopClosure/ShowLogs/importfile.m:
--------------------------------------------------------------------------------
1 | function [Data] = importfile(fileToRead1)
2 | %IMPORTFILE(FILETOREAD1)
3 | % Imports data from the specified file
4 | % FILETOREAD1: file to read
5 |
6 | % Auto-generated by MATLAB on 07-Oct-2009 10:10:26
7 |
8 | % Import the file
9 | rawData1 = importdata(fileToRead1);
10 |
11 | if isstruct(rawData1)
12 | rawData1=rawData1.data;
13 | end
14 |
15 | % For some simple files (such as a CSV or JPEG files), IMPORTDATA might
16 | % return a simple array. If so, generate a structure so that the output
17 | % matches that from the Import Wizard.
18 | [unused,name] = fileparts(fileToRead1); %#ok
19 | newData1.(genvarname(name)) = rawData1;
20 |
21 | vars = fieldnames(newData1);
22 | if length(vars) > 0
23 | Data = newData1.(vars{1});
24 | end
25 |
26 |
--------------------------------------------------------------------------------
/archive/2010-LoopClosure/ShowLogs/logaHeaders.txt:
--------------------------------------------------------------------------------
1 | fprintf(_foutFloat, "%f %f %f %f %f %f %f %f %f\n",
2 | totalTime,
3 | timeMemoryUpdate,
4 | timeReactivations,
5 | timeLikelihoodCalculation,
6 | timePosteriorCalculation,
7 | timeHypothesesCreation,
8 | timeHypothesesValidation,
9 | timeRealTimeLimitReachedProcess,
10 | timeStatsCreation);
11 | fprintf(_foutInt, "%d %d %d %d\n",
12 | lcHypothesisId,
13 | mostLikelihoodId,
14 | signaturesRemoved,
15 | hessianThr,
16 | wordsNewSign,
17 | dictionarySize);
18 |
--------------------------------------------------------------------------------
/archive/2010-LoopClosure/Tests/README.txt:
--------------------------------------------------------------------------------
1 | This directory contains the same tests than the ones used in the c++ library corelib.
--------------------------------------------------------------------------------
/archive/2010-LoopClosure/Tests/TestAdjustLikelihood.m:
--------------------------------------------------------------------------------
1 | close all
2 | clear all
3 |
4 | % Test AvpdCore::BayesFilter::adjustLikelihood()
5 | likelihood = [0 0 0 0];
6 | adjustLikelihoodResult1 = adjustLikelihood(likelihood)
7 | likelihood = [0.3 0.4 0.2 0.9];
8 | theMean = mean(likelihood)
9 | theSdtDev = std(likelihood)
10 | adjustLikelihoodResult2 = floor(adjustLikelihood(likelihood)*1000)
--------------------------------------------------------------------------------
/archive/2010-LoopClosure/Tests/TestBayesFilter.m:
--------------------------------------------------------------------------------
1 | close all
2 | clear all
3 |
4 | % Test AvpdCore::BayesFilter::computePosterior()
5 | prior = 1;
6 | predictionNP = 0.9;
7 | predictionLC = [0.1 0.24 0.18 0.18 0.1 0.1 0.04 0.04 0.01 0.01];
8 | likelihood = [];
9 | nIter = 10;
10 |
11 | computePosteriorResult = zeros(nIter);
12 | for i=1:nIter
13 | likelihood = [likelihood; 1];
14 | prediction = generatePrediction(predictionNP, predictionLC, length(likelihood)-1)
15 | if i==1
16 | prior = 1;
17 | %elseif i>2
18 | % prior = [prior;prior(end)]; %use the same probability as the previous neighbor
19 | else
20 | prior = [prior;0];
21 | end
22 | prior = likelihood .* (prediction' * prior);
23 | prior = prior/sum(prior); %Normalize
24 | computePosteriorResult(1:length(prior),i) = prior;
25 | end
26 |
27 | %Adjust results (don't use float to compare)
28 | computePosteriorResult = floor(computePosteriorResult*1000)';
29 | disp('computePosteriorResult=');
30 | disp(computePosteriorResult);
31 | r = sum(sum((computePosteriorResult - [1000,0,0,0,0,0,0,0,0,0;900,99,0,0,0,0,0,0,0,0;820,117,62,0,0,0,0,0,0,0;756,111,82,50,0,0,0,0,0,0;704,103,84,67,40,0,0,0,0,0;663,96,82,69,54,32,0,0,0,0;631,90,79,69,58,44,26,0,0,0;604,84,76,68,58,48,36,21,0,0;583,79,73,66,58,49,40,30,17,0;567,74,69,64,58,50,41,33,25,14;]) ~= 0));
32 | if r ~= 0
33 | error('computePosteriorResult is not valid!')
34 | end
35 |
36 |
--------------------------------------------------------------------------------
/archive/2010-LoopClosure/run_all_datasets.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | DATASETS_FOLDER=""
4 | if [ $# -eq 1 ]
5 | then
6 | DATASETS_FOLDER=$1
7 | else
8 | echo "Usage: run_all_datasets.sh \"datasets folder\" "
9 | exit
10 | fi
11 |
12 | SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )"
13 |
14 | $SCRIPT_DIR/run_bow.sh $DATASETS_FOLDER/NewCollege $DATASETS_FOLDER/NewCollege.png
15 | if [ -s LogF.txt ]; then
16 | mv LogF.txt $DATASETS_FOLDER/NewCollege/LogF.txt
17 | mv LogI.txt $DATASETS_FOLDER/NewCollege/LogI.txt
18 | fi
19 | $SCRIPT_DIR/run_bow.sh $DATASETS_FOLDER/CityCentre $DATASETS_FOLDER/CityCentre.png
20 | if [ -s LogF.txt ]; then
21 | mv LogF.txt $DATASETS_FOLDER/CityCentre/LogF.txt
22 | mv LogI.txt $DATASETS_FOLDER/CityCentre/LogI.txt
23 | fi
24 | $SCRIPT_DIR/run_bow.sh $DATASETS_FOLDER/UdeS_1Hz $DATASETS_FOLDER/UdeS_1Hz.png
25 | if [ -s LogF.txt ]; then
26 | mv LogF.txt $DATASETS_FOLDER/UdeS_1Hz/LogF.txt
27 | mv LogI.txt $DATASETS_FOLDER/UdeS_1Hz/LogI.txt
28 | fi
29 |
30 |
--------------------------------------------------------------------------------
/archive/2010-LoopClosure/run_all_detectors.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | DATASET_FOLDER=""
4 | GT_FILE=""
5 | MEMORY_THR=0
6 | if [ $# -ge 2 ]
7 | then
8 | DATASET_FOLDER=$1
9 | GT_FILE=$2
10 | else
11 | echo "Usage: run_all_detectors.sh \"dataset folder\" \"ground truth file\" [\"Rtabmap/MemoryThr=0\"]"
12 | exit
13 | fi
14 |
15 | if [ $# -ge 3 ]
16 | then
17 | MEMORY_THR=$3
18 | fi
19 |
20 | SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )"
21 |
22 | $SCRIPT_DIR/run_bow.sh $DATASET_FOLDER $GT_FILE $MEMORY_THR 0 false
23 | mv LogF.txt $DATASET_FOLDER/SurfLogF.txt
24 | mv LogI.txt $DATASET_FOLDER/SurfLogI.txt
25 | $SCRIPT_DIR/run_bow.sh $DATASET_FOLDER $GT_FILE $MEMORY_THR 1 false
26 | mv LogF.txt $DATASET_FOLDER/SiftLogF.txt
27 | mv LogI.txt $DATASET_FOLDER/SiftLogI.txt
28 | $SCRIPT_DIR/run_bow.sh $DATASET_FOLDER $GT_FILE $MEMORY_THR 1 true
29 | mv LogF.txt $DATASET_FOLDER/CudaSiftLogF.txt
30 | mv LogI.txt $DATASET_FOLDER/CudaSiftLogI.txt
31 | $SCRIPT_DIR/run_bow.sh $DATASET_FOLDER $GT_FILE $MEMORY_THR 6 false
32 | mv LogF.txt $DATASET_FOLDER/GfttBriefLogF.txt
33 | mv LogI.txt $DATASET_FOLDER/GfttBriefLogI.txt
34 | #$SCRIPT_DIR/run_bow.sh $DATASET_FOLDER $GT_FILE $MEMORY_THR 11 false
35 | #mv LogF.txt $DATASET_FOLDER/SuperPointLogF.txt
36 | #mv LogI.txt $DATASET_FOLDER/SuperPointLogI.txt
37 |
38 |
--------------------------------------------------------------------------------
/archive/2010-LoopClosure/run_bow.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | DATASET_FOLDER=""
4 | GT_FILE=""
5 | MEMORY_THR=300
6 | DETECTOR=0
7 | GPU=false
8 | if [ $# -ge 2 ]
9 | then
10 | DATASET_FOLDER=$1
11 | GT_FILE=$2
12 | else
13 | echo "Usage: run_bow.sh \"dataset folder\" \"ground truth file\" [\"Rtabmap/MemoryThr=300\"] [\"Kp/DetectorStrategy=0\"] [\"GPU=false\"]"
14 | exit
15 | fi
16 |
17 | if [ $# -ge 3 ]
18 | then
19 | MEMORY_THR=$3
20 | fi
21 | if [ $# -ge 4 ]
22 | then
23 | DETECTOR=$4
24 | fi
25 | if [ $# -ge 5 ]
26 | then
27 | GPU=$5
28 | fi
29 |
30 | rtabmap-console \
31 | -quiet \
32 | --Rtabmap/StatisticLogged true\
33 | --Rtabmap/StatisticLoggedHeaders false\
34 | --Kp/DetectorStrategy $DETECTOR\
35 | --SURF/HessianThreshold 150\
36 | --Rtabmap/MemoryThr $MEMORY_THR\
37 | --Rtabmap/LoopRatio 0.9\
38 | --Mem/STMSize 30\
39 | --Vis/MaxFeatures 400\
40 | --Kp/TfIdfLikelihoodUsed false\
41 | --Kp/MaxFeatures 400\
42 | --Kp/BadSignRatio 0.25\
43 | --Mem/BadSignaturesIgnored true\
44 | --Mem/RehearsalSimilarity 0.20\
45 | --Mem/RecentWmRatio 0.20\
46 | --FAST/Gpu $GPU\
47 | --GFTT/Gpu $GPU\
48 | --ORB/Gpu $GPU\
49 | --SIFT/Gpu $GPU\
50 | --SURF/GpuVersion $GPU\
51 | -gt "$GT_FILE"\
52 | "$DATASET_FOLDER"
53 |
54 |
--------------------------------------------------------------------------------
/archive/2022-IlluminationInvariant/images/fig_map_merged_999.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/introlab/rtabmap/e19b0c3dc4571a75f60823f6efb622769f764f31/archive/2022-IlluminationInvariant/images/fig_map_merged_999.jpg
--------------------------------------------------------------------------------
/archive/2022-IlluminationInvariant/images/fig_merged_percentage.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/introlab/rtabmap/e19b0c3dc4571a75f60823f6efb622769f764f31/archive/2022-IlluminationInvariant/images/fig_merged_percentage.jpg
--------------------------------------------------------------------------------
/archive/2022-IlluminationInvariant/images/fig_overview.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/introlab/rtabmap/e19b0c3dc4571a75f60823f6efb622769f764f31/archive/2022-IlluminationInvariant/images/fig_overview.jpg
--------------------------------------------------------------------------------
/archive/2022-IlluminationInvariant/images/fig_single_percentage.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/introlab/rtabmap/e19b0c3dc4571a75f60823f6efb622769f764f31/archive/2022-IlluminationInvariant/images/fig_single_percentage.jpg
--------------------------------------------------------------------------------
/archive/2022-IlluminationInvariant/scripts/export_stats.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | if [ $# -lt 1 ]
4 | then
5 | echo "No arguments supplied. It should be the data directory (where the reprocessed map databases are saved)."
6 | exit
7 | fi
8 | DATA=$1
9 |
10 | DETECTOR=(0 1 6 7 9 14 11 111)
11 |
12 | source rtabmap_latest.bash
13 |
14 | for d in "${DETECTOR[@]}"
15 | do
16 | rtabmap-report --export --export_prefix "Stat$d" --loc 32 Loop/Odom_correction_norm/m Loop/Visual_inliers/ Timing/Total/ms Timing/Proximity_by_space_visual/ms Timing/Likelihood_computation/ms Timing/Posterior_computation/ms TimingMem/Keypoints_detection/ms TimingMem/Descriptors_extraction/ms TimingMem/Add_new_words/ms Loop/Map_id/ Keypoint/Current_frame/words Memory/RAM_usage/MB Memory/RAM_estimated/MB Memory/Distance_travelled/m Loop/Distance_since_last_loc/ Memory/Local_graph_size/ Keypoint/Dictionary_size/words "$DATA/$d/loc"
17 | rtabmap-report --export --export_prefix "Consecutive$d" --loc 32 Loop/Map_id/ Loop/Distance_since_last_loc/ "$DATA/$d/consecutive_loc"
18 | done
19 |
20 |
--------------------------------------------------------------------------------
/archive/2022-IlluminationInvariant/scripts/reprocess_maps_all.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | if [ $# -lt 2 ]
4 | then
5 | echo "No arguments supplied. They should be 2: the input directory (original maps) and the output data directory (where reprocessed map databases will be saved)."
6 | exit
7 | fi
8 | INPUT=$1
9 | OUTPUT=$2
10 |
11 | DETECTOR=(0 1 6 7 9 14 11 111)
12 |
13 | for d in "${DETECTOR[@]}"
14 | do
15 | ./reprocess_maps.sh $d $INPUT $OUTPUT
16 | ./run_merge.sh $d $OUTPUT
17 | done
18 |
19 |
--------------------------------------------------------------------------------
/archive/2022-IlluminationInvariant/scripts/rtabmap_latest.bash:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | export PATH=~/workspace/rtabmap/build/bin:$PATH
4 | export LD_LIBRARY_PATH=~/workspace/rtabmap/build/lib:$LD_LIBRARY_PATH
5 |
6 |
--------------------------------------------------------------------------------
/archive/2022-IlluminationInvariant/scripts/run_all.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | if [ $# -lt 2 ]
4 | then
5 | echo "No arguments supplied. They should be 2: the input directory (original maps) and the output data directory (where reprocessed map databases will be saved)."
6 | exit
7 | fi
8 | INPUT=$1
9 | OUTPUT=$2
10 |
11 | ./reprocess_maps_all.sh $INPUT $OUTPUT
12 | ./run_localization_single_all.sh $INPUT $OUTPUT
13 | ./run_consecutive_localization_all.sh $OUTPUT
14 |
15 |
--------------------------------------------------------------------------------
/archive/2022-IlluminationInvariant/scripts/run_consecutive_localization_all.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | if [ $# -lt 1 ]
4 | then
5 | echo "No arguments supplied. It should be the data directory (where the reprocessed map databases will be saved)."
6 | exit
7 | fi
8 | DATA=$1
9 |
10 | DETECTOR=(0 1 6 7 9 14 11 111)
11 |
12 | for d in "${DETECTOR[@]}"
13 | do
14 | ./run_consecutive_localization.sh $d $DATA
15 | done
16 |
17 |
--------------------------------------------------------------------------------
/archive/2022-IlluminationInvariant/scripts/run_localization_single_all.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | if [ $# -lt 2 ]
4 | then
5 | echo "No arguments supplied. They should be 2: the input directory (original maps) and the output data directory (where reprocessed map databases will be saved)."
6 | exit
7 | fi
8 | INPUT=$1
9 | OUTPUT=$2
10 |
11 | DETECTOR=(0 1 6 7 9 14 11 111)
12 |
13 | for d in "${DETECTOR[@]}"
14 | do
15 | ./run_localization_single.sh $d $INPUT $OUTPUT
16 | done
17 |
18 |
--------------------------------------------------------------------------------
/archive/2022-IlluminationInvariant/scripts/trace.py:
--------------------------------------------------------------------------------
1 | import torch
2 | import torchvision
3 | from demo_superpoint import SuperPointNet
4 | model = SuperPointNet()
5 | model.load_state_dict(torch.load("superpoint_v1.pth"))
6 | model.eval()
7 | example = torch.rand(1, 1, 640, 480)
8 | traced_script_module = torch.jit.trace(model, example)
9 | traced_script_module.save("superpoint_v1.pt")
10 |
--------------------------------------------------------------------------------
/archive/2022-IlluminationInvariant/scripts/valgrind.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | if [ $# -lt 2 ]
4 | then
5 | echo "No arguments supplied. They should be 2: the input directory (original maps) and the output data directory (where reprocessed map databases will be saved)."
6 | exit
7 | fi
8 | INPUT=$1
9 | OUTPUT=$2
10 |
11 | DETECTOR=(0 1 6 7 9 14 11 111)
12 |
13 | source rtabmap_latest.bash
14 |
15 | for d in "${DETECTOR[@]}"
16 | do
17 | valgrind --tool=massif --time-unit=ms --detailed-freq=1 --max-snapshots=100 rtabmap-reprocess --Mem/IncrementalMemory false --Kp/IncrementalFlann false "${OUTPUT}/${d}/map_190321-164651.db;${INPUT}/loc_190321-165128.db" output.db
18 | rm output.db
19 | done
20 |
21 |
--------------------------------------------------------------------------------
/build/.gitignore:
--------------------------------------------------------------------------------
1 | # Ignore everything in this directory
2 | *
3 | # Except this file
4 | !.gitignore
--------------------------------------------------------------------------------
/cmake_modules/FindARCore.cmake:
--------------------------------------------------------------------------------
1 | # - Find ARCore
2 | # This module finds an installed ARCore client C-API package.
3 | #
4 | # It sets the following variables:
5 | # ARCore_FOUND - Set to false, or undefined, if ARCore isn't found.
6 | # ARCore_INCLUDE_DIRS - The ARCore include directory.
7 | # ARCore_LIBRARIES - The ARCore library to link against.
8 |
9 | FIND_PATH(ARCore_INCLUDE_DIR arcore_c_api.h)
10 |
11 | FIND_LIBRARY(ARCore_c_LIBRARY NAMES arcore_sdk_c PATH_SUFFIXES ${ANDROID_ABI})
12 | FIND_LIBRARY(ARCore_jni_LIBRARY NAMES arcore_sdk_jni PATH_SUFFIXES ${ANDROID_ABI})
13 |
14 | IF (ARCore_INCLUDE_DIR AND ARCore_c_LIBRARY AND ARCore_jni_LIBRARY)
15 | SET(ARCore_FOUND TRUE)
16 | SET(ARCore_INCLUDE_DIRS ${ARCore_INCLUDE_DIR})
17 | SET(ARCore_LIBRARIES ${ARCore_c_LIBRARY} ${ARCore_jni_LIBRARY})
18 | ENDIF (ARCore_INCLUDE_DIR AND ARCore_c_LIBRARY AND ARCore_jni_LIBRARY)
19 |
20 | IF (ARCore_FOUND)
21 | # show which ARCore was found only if not quiet
22 | IF (NOT ARCore_FIND_QUIETLY)
23 | MESSAGE(STATUS "Found ARCore: ${ARCore_INCLUDE_DIRS}")
24 | ENDIF (NOT ARCore_FIND_QUIETLY)
25 | ELSE (ARCore_FOUND)
26 | # fatal error if ARCore is required but not found
27 | IF (ARCore_FIND_REQUIRED)
28 | MESSAGE(FATAL_ERROR "Could not find ARCore (client and/or support libraries)")
29 | ENDIF (ARCore_FIND_REQUIRED)
30 | ENDIF (ARCore_FOUND)
31 |
32 |
--------------------------------------------------------------------------------
/cmake_modules/FindDC1394.cmake:
--------------------------------------------------------------------------------
1 | # - Find DC1394 alias libdc1394
2 | # This module finds an installed DC1394 package.
3 | #
4 | # It sets the following variables:
5 | # DC1394_FOUND - Set to false, or undefined, if DC1394 isn't found.
6 | # DC1394_INCLUDE_DIRS - The DC1394 include directory.
7 | # DC1394_LIBRARIES - The DC1394 library to link against.
8 |
9 | find_path(DC1394_INCLUDE_DIRS NAMES dc1394.h PATH_SUFFIXES dc1394)
10 | find_library(DC1394_LIBRARIES NAMES dc1394)
11 |
12 | IF (DC1394_INCLUDE_DIRS AND DC1394_LIBRARIES)
13 | SET(DC1394_FOUND TRUE)
14 |
15 | #On Mac OS X
16 | #if(CMAKE_SYSTEM_NAME MATCHES "Darwin")
17 | # set(DC1394_LIBRARIES ${DC1394_LIBRARIES} "-framework CoreServices")
18 | #endif(CMAKE_SYSTEM_NAME MATCHES "Darwin")
19 |
20 | ENDIF (DC1394_INCLUDE_DIRS AND DC1394_LIBRARIES)
21 |
22 | IF (DC1394_FOUND)
23 | # show which DC1394 was found only if not quiet
24 | IF (NOT DC1394_FIND_QUIETLY)
25 | MESSAGE(STATUS "Found DC1394: ${DC1394_LIBRARIES}")
26 | ENDIF (NOT DC1394_FIND_QUIETLY)
27 | ELSE (DC1394_FOUND)
28 | # fatal error if DC1394 is required but not found
29 | IF (DC1394_FIND_REQUIRED)
30 | MESSAGE(FATAL_ERROR "Could not find DC1394 (libdc1394)")
31 | ENDIF (DC1394_FIND_REQUIRED)
32 | ENDIF (DC1394_FOUND)
33 |
34 |
--------------------------------------------------------------------------------
/cmake_modules/FindFastCV.cmake:
--------------------------------------------------------------------------------
1 | # - Find FastCV (https://developer.qualcomm.com/software/fastcv-sdk)
2 | #
3 | # It sets the following variables:
4 | # FastCV_FOUND - Set to false, or undefined, if FastCV isn't found.
5 | # FastCV_INCLUDE_DIRS - The FastCV include directory.
6 | # FastCV_LIBRARIES - The FastCV library to link against.
7 |
8 | IF(NOT WIN32 AND NOT APPLE)
9 |
10 | EXECUTE_PROCESS( COMMAND uname -m COMMAND tr -d '\n' OUTPUT_VARIABLE ARCHITECTURE )
11 | MESSAGE( STATUS "Architecture: ${ARCHITECTURE}" )
12 |
13 | # Currently only tested on aarch64!
14 | IF(${ARCHITECTURE} STREQUAL "aarch64")
15 | find_path(FastCV_INCLUDE_DIRS NAMES fastcv.h PATH_SUFFIXES fastcv)
16 | find_library(FastCV_LIBRARY NAMES fastcvopt fastcv)
17 | ENDIF(${ARCHITECTURE} STREQUAL "aarch64")
18 | ENDIF(NOT WIN32 AND NOT APPLE)
19 |
20 | IF (FastCV_INCLUDE_DIRS AND FastCV_LIBRARY)
21 | SET(FastCV_FOUND TRUE)
22 | ENDIF (FastCV_INCLUDE_DIRS AND FastCV_LIBRARY)
23 |
24 | IF (FastCV_FOUND)
25 | SET(FastCV_LIBRARIES ${FastCV_LIBRARY})
26 |
27 | # show which RealSense was found only if not quiet
28 | IF (NOT FastCV_FIND_QUIETLY)
29 | MESSAGE(STATUS "Found FastCV: ${FastCV_LIBRARIES}")
30 | ENDIF (NOT FastCV_FIND_QUIETLY)
31 | ELSE (FastCV_FOUND)
32 | # fatal error if RealSense is required but not found
33 | IF (FastCV_FIND_REQUIRED)
34 | MESSAGE(FATAL_ERROR "Could not find FastCV")
35 | ENDIF (FastCV_FIND_REQUIRED)
36 | ENDIF (FastCV_FOUND)
37 |
38 |
--------------------------------------------------------------------------------
/cmake_modules/FindK4A.cmake:
--------------------------------------------------------------------------------
1 | # - Find K4A
2 | # This module finds an kinect 4 azure SDK
3 | #
4 | # It sets the following variables:
5 | # K4A_FOUND - Set to false, or undefined, if K4A isn't found.
6 | # K4A_INCLUDE_DIRS - The K4A include directory.
7 | # K4A_LIBRARIES - The K4A library to link against.
8 |
9 | find_library(K4A_LIBRARY NAMES k4a NO_DEFAULT_PATH PATHS $ENV{K4A_ROOT_DIR}/sdk/windows-desktop/amd64/release/lib)
10 | find_library(K4ARECORD_LIBRARY NAMES k4arecord NO_DEFAULT_PATH PATHS $ENV{K4A_ROOT_DIR}/sdk/windows-desktop/amd64/release/lib)
11 | find_path(K4A_INCLUDE_DIR NAMES k4a/k4a.h PATHS $ENV{K4A_ROOT_DIR}/sdk/include)
12 |
13 | IF (K4A_INCLUDE_DIR AND K4A_LIBRARY AND K4ARECORD_LIBRARY)
14 | SET(K4A_FOUND TRUE)
15 | SET(K4A_INCLUDE_DIRS ${K4A_INCLUDE_DIR})
16 | SET(K4A_LIBRARIES ${K4A_LIBRARY} ${K4ARECORD_LIBRARY})
17 |
18 | # Compatibility with linux names
19 | SET(k4a_LIBRARIES ${K4A_LIBRARIES})
20 | SET(k4a_INCLUDE_DIRS ${K4A_INCLUDE_DIRS})
21 | SET(k4a_FOUND ${K4A_FOUND})
22 | ENDIF (K4A_INCLUDE_DIR AND K4A_LIBRARY AND K4ARECORD_LIBRARY)
23 |
24 | IF (K4A_FOUND)
25 | # show which K4A was found only if not quiet
26 | IF (NOT K4A_FIND_QUIETLY)
27 | MESSAGE(STATUS "Found K4A: ${K4A_LIBRARIES}")
28 | ENDIF (NOT K4A_FIND_QUIETLY)
29 | ELSE (K4A_FOUND)
30 | # fatal error if K4A is required but not found
31 | IF (K4A_FIND_REQUIRED)
32 | MESSAGE(FATAL_ERROR "Could not find K4A (Kinect for Azure SDK)")
33 | ENDIF (K4A_FIND_REQUIRED)
34 | ENDIF (K4A_FOUND)
35 |
--------------------------------------------------------------------------------
/cmake_modules/FindOpenNI2.cmake:
--------------------------------------------------------------------------------
1 | # - Find OpenNI2
2 | # This module finds an installed OpenNI2 package.
3 | #
4 | # It sets the following variables:
5 | # OpenNI2_FOUND - Set to false, or undefined, if OpenNI2 isn't found.
6 | # OpenNI2_INCLUDE_DIRS - The OpenNI2 include directory.
7 | # OpenNI2_LIBRARIES - The OpenNI2 libraries to link against.
8 | # OpenNI2_LIBRARY - The OpenNI2 library alone.
9 |
10 | FIND_PATH(OpenNI2_INCLUDE_DIRS OpenNI.h HINTS $ENV{OPENNI2_INCLUDE64} $ENV{OPENNI2_INCLUDE} PATH_SUFFIXES openni2)
11 |
12 | FIND_LIBRARY(OpenNI2_LIBRARY NAMES OpenNI2 HINTS $ENV{OPENNI2_LIB64} $ENV{OPENNI2_LIB} $ENV{OPENNI2_REDIST})
13 |
14 | IF (OpenNI2_INCLUDE_DIRS AND OpenNI2_LIBRARY)
15 | SET(OpenNI2_FOUND TRUE)
16 | ENDIF (OpenNI2_INCLUDE_DIRS AND OpenNI2_LIBRARY)
17 |
18 | IF (OpenNI2_FOUND)
19 | # show which OpenNI2 was found only if not quiet
20 | SET(OpenNI2_LIBRARIES ${OpenNI2_LIBRARY})
21 | IF (NOT OpenNI2_FIND_QUIETLY)
22 | MESSAGE(STATUS "Found OpenNI2: ${OpenNI2_LIBRARIES}")
23 | ENDIF (NOT OpenNI2_FIND_QUIETLY)
24 | ELSE (OpenNI2_FOUND)
25 | # fatal error if OpenNI2 is required but not found
26 | IF (OpenNI2_FIND_REQUIRED)
27 | MESSAGE(FATAL_ERROR "Could not find OpenNI2. Environment variables OPENNI2_INCLUDE (directory containing OpenNI.h) and OPENNI2_LIB (directory containing OpenNI2 library) could bet set.")
28 | ENDIF (OpenNI2_FIND_REQUIRED)
29 | ENDIF (OpenNI2_FOUND)
30 |
31 |
--------------------------------------------------------------------------------
/cmake_modules/FindQVTK.cmake:
--------------------------------------------------------------------------------
1 | ###############################################################################
2 | # Find QVTK
3 | #
4 | # This sets the following variables:
5 | # QVTK_FOUND - True if QVTK was found.
6 | # QVTK_INCLUDE_DIR - Directory containing the QVTK include files.
7 | # QVTK_LIBRARY - QVTK library.
8 | # if QVTK_FOUND then QVTK_INCLUDE_DIR is appended to VTK_INCLUDE_DIRS and
9 | # QVTK_LIBRARY is appended to QVTK_LIBRARY_DIR
10 |
11 | find_library (QVTK_LIBRARY QVTK HINTS ${VTK_DIR} ${VTK_DIR}/bin)
12 | find_path (QVTK_INCLUDE_DIR QVTKWidget.h HINT ${VTK_INCLUDE_DIRS})
13 | find_package_handle_standard_args(QVTK DEFAULT_MSG
14 | QVTK_LIBRARY QVTK_INCLUDE_DIR)
15 |
16 | if(NOT QVTK_FOUND)
17 | set (VTK_USE_QVTK OFF)
18 | else(NOT QVTK_FOUND)
19 | get_filename_component (QVTK_LIBRARY_DIR ${QVTK_LIBRARY} PATH)
20 | set (VTK_LIBRARY_DIRS ${VTK_LIBRARY_DIRS} ${QVTK_LIBRARY_DIR})
21 | set (VTK_INCLUDE_DIRS ${VTK_INCLUDE_DIRS} ${QVTK_INCLUDE_DIR})
22 | set (VTK_USE_QVTK ON)
23 | endif(NOT QVTK_FOUND)
24 |
--------------------------------------------------------------------------------
/cmake_modules/FindTango.cmake:
--------------------------------------------------------------------------------
1 | # - Find Tango
2 | # This module finds an installed Tango client C-API package.
3 | #
4 | # It sets the following variables:
5 | # Tango_FOUND - Set to false, or undefined, if Tango isn't found.
6 | # Tango_INCLUDE_DIRS - The Tango include directory.
7 | # Tango_LIBRARIES - The Tango library to link against.
8 |
9 | FIND_PATH(Tango_INCLUDE_DIR tango_client_api.h)
10 |
11 | FIND_LIBRARY(Tango_LIBRARY NAMES tango_client_api PATH_SUFFIXES ${ANDROID_ABI})
12 | FIND_LIBRARY(Tango_support_LIBRARY NAMES tango_support_api PATH_SUFFIXES ${ANDROID_ABI})
13 |
14 | IF (Tango_INCLUDE_DIR AND Tango_LIBRARY AND Tango_support_LIBRARY)
15 | SET(Tango_FOUND TRUE)
16 | SET(Tango_INCLUDE_DIRS ${Tango_INCLUDE_DIR})
17 | SET(Tango_LIBRARIES ${Tango_LIBRARY} ${Tango_support_LIBRARY})
18 | ENDIF (Tango_INCLUDE_DIR AND Tango_LIBRARY AND Tango_support_LIBRARY)
19 |
20 | IF (Tango_FOUND)
21 | # show which Tango was found only if not quiet
22 | IF (NOT Tango_FIND_QUIETLY)
23 | MESSAGE(STATUS "Found Tango: ${Tango_INCLUDE_DIRS}")
24 | ENDIF (NOT Tango_FIND_QUIETLY)
25 | ELSE (Tango_FOUND)
26 | # fatal error if Tango is required but not found
27 | IF (Tango_FIND_REQUIRED)
28 | MESSAGE(FATAL_ERROR "Could not find Tango (client and/or support libraries)")
29 | ENDIF (Tango_FIND_REQUIRED)
30 | ENDIF (Tango_FOUND)
31 |
32 |
--------------------------------------------------------------------------------
/cmake_modules/FindZEDOC.cmake:
--------------------------------------------------------------------------------
1 | # - Find ZED Open Capture
2 | # This module finds zed open capture library
3 | #
4 | # It sets the following variables:
5 | # ZEDOC_FOUND - Set to false, or undefined, if ZEDOC isn't found.
6 | # ZEDOC_INCLUDE_DIRS - The ZEDOC include directory.
7 | # ZEDOC_LIBRARIES - The ZEDOC library to link against.
8 |
9 | find_library(ZEDOC_LIBRARY NAMES zed_open_capture PATHS $ENV{ZEDOC_ROOT_DIR}/lib)
10 | find_path(ZEDOC_INCLUDE_DIR NAMES zed-open-capture/videocapture.hpp PATHS $ENV{ZEDOC_ROOT_DIR}/include)
11 |
12 | IF (ZEDOC_INCLUDE_DIR AND ZEDOC_LIBRARY)
13 | SET(ZEDOC_FOUND TRUE)
14 | SET(ZEDOC_INCLUDE_DIRS ${ZEDOC_INCLUDE_DIR})
15 | SET(ZEDOC_LIBRARIES ${ZEDOC_LIBRARY})
16 | ENDIF (ZEDOC_INCLUDE_DIR AND ZEDOC_LIBRARY)
17 |
18 | IF (ZEDOC_FOUND)
19 | # show which ZEDOC was found only if not quiet
20 | IF (NOT ZEDOC_FIND_QUIETLY)
21 | MESSAGE(STATUS "Found ZEDOC: ${ZEDOC_LIBRARIES}")
22 | ENDIF (NOT ZEDOC_FIND_QUIETLY)
23 | ELSE (ZEDOC_FOUND)
24 | # fatal error if ZEDOC is required but not found
25 | IF (ZEDOC_FIND_REQUIRED)
26 | MESSAGE(FATAL_ERROR "Could not find ZEDOC (Zed Open Capture)")
27 | ENDIF (ZEDOC_FIND_REQUIRED)
28 | ENDIF (ZEDOC_FOUND)
29 |
--------------------------------------------------------------------------------
/cmake_uninstall.cmake.in:
--------------------------------------------------------------------------------
1 | # -----------------------------------------------
2 | # File that provides "make uninstall" target
3 | # We use the file 'install_manifest.txt'
4 | # -----------------------------------------------
5 | IF(NOT EXISTS "@CMAKE_CURRENT_BINARY_DIR@/install_manifest.txt")
6 | MESSAGE(FATAL_ERROR "Cannot find install manifest: \"@CMAKE_CURRENT_BINARY_DIR@/install_manifest.txt\"")
7 | ENDIF(NOT EXISTS "@CMAKE_CURRENT_BINARY_DIR@/install_manifest.txt")
8 |
9 | FILE(READ "@CMAKE_CURRENT_BINARY_DIR@/install_manifest.txt" files)
10 | STRING(REGEX REPLACE "\n" ";" files "${files}")
11 | FOREACH(file ${files})
12 | MESSAGE(STATUS "Uninstalling \"$ENV{DESTDIR}${file}\"")
13 | IF(EXISTS "$ENV{DESTDIR}${file}")
14 | EXEC_PROGRAM(
15 | "@CMAKE_COMMAND@" ARGS "-E remove \"$ENV{DESTDIR}${file}\""
16 | OUTPUT_VARIABLE rm_out
17 | RETURN_VALUE rm_retval
18 | )
19 | IF(NOT "${rm_retval}" STREQUAL 0)
20 | MESSAGE(FATAL_ERROR "Problem when removing \"$ENV{DESTDIR}${file}\"")
21 | ENDIF(NOT "${rm_retval}" STREQUAL 0)
22 | ELSE(EXISTS "$ENV{DESTDIR}${file}")
23 | MESSAGE(STATUS "File \"$ENV{DESTDIR}${file}\" does not exist.")
24 | ENDIF(EXISTS "$ENV{DESTDIR}${file}")
25 | ENDFOREACH(file)
26 |
27 |
28 |
--------------------------------------------------------------------------------
/corelib/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | ADD_SUBDIRECTORY( src )
--------------------------------------------------------------------------------
/corelib/include/rtabmap/core/PythonInterface.h:
--------------------------------------------------------------------------------
1 | /*
2 | * PythonInterface.h
3 | *
4 | * Created on: Jan. 14, 2021
5 | * Author: mathieu
6 | */
7 |
8 | #ifndef CORELIB_SRC_PYTHON_PYTHONINTERFACE_H_
9 | #define CORELIB_SRC_PYTHON_PYTHONINTERFACE_H_
10 |
11 |
12 | #include
13 | #include
14 |
15 | namespace pybind11 {
16 | class scoped_interpreter;
17 | class gil_scoped_release;
18 | }
19 |
20 | namespace rtabmap {
21 |
22 | /**
23 | * Create a single PythonInterface on main thread at
24 | * global scope before any Python classes.
25 | */
26 | class PythonInterface
27 | {
28 | public:
29 | PythonInterface();
30 | virtual ~PythonInterface();
31 |
32 | private:
33 | pybind11::scoped_interpreter* guard_;
34 | pybind11::gil_scoped_release* release_;
35 | };
36 |
37 | std::string getPythonTraceback();
38 |
39 | }
40 |
41 | #endif /* CORELIB_SRC_PYTHON_PYTHONINTERFACE_H_ */
42 |
--------------------------------------------------------------------------------
/corelib/include/rtabmap/core/camera/CameraSeerSense.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 |
3 | #include "rtabmap/core/Camera.h"
4 | #include "rtabmap/core/Version.h"
5 | #include "rtabmap/utilite/USemaphore.h"
6 |
7 | #ifdef RTABMAP_XVSDK
8 | #include
9 | #endif
10 |
11 | namespace rtabmap
12 | {
13 |
14 | class RTABMAP_CORE_EXPORT CameraSeerSense :
15 | public Camera
16 | {
17 | public:
18 | static bool available();
19 |
20 | public:
21 | CameraSeerSense(
22 | bool computeOdometry = false,
23 | float imageRate = 0.0f,
24 | const Transform & localTransform = Transform::getIdentity()
25 | );
26 | virtual ~CameraSeerSense();
27 |
28 | virtual bool init(const std::string & calibrationFolder = ".", const std::string & cameraName = "");
29 | virtual bool isCalibrated() const;
30 | virtual std::string getSerial() const;
31 | virtual bool odomProvided() const;
32 | virtual bool getPose(double stamp, Transform & pose, cv::Mat & covariance, double maxWaitTime = 0.0);
33 |
34 | protected:
35 | virtual SensorData captureImage(SensorCaptureInfo * info = 0);
36 |
37 | private:
38 | #ifdef RTABMAP_XVSDK
39 | CameraModel cameraModel_;
40 | bool computeOdometry_;
41 | int imuId_;
42 | int tofId_;
43 | std::shared_ptr device_;
44 | std::map> imuBuffer_;
45 | std::pair> lastData_;
46 | UMutex imuMutex_;
47 | UMutex dataMutex_;
48 | USemaphore dataReady_;
49 | #endif
50 | };
51 |
52 | } // namespace rtabmap
53 |
--------------------------------------------------------------------------------
/corelib/include/rtabmap/core/rvl_codec.h:
--------------------------------------------------------------------------------
1 | // The following code is a C++ wrapper of the code presented by
2 | // Andrew D. Wilson in "Fast Lossless Depth Image Compression" at SIGCHI'17.
3 | // The original code is licensed under the MIT License.
4 |
5 | #ifndef RVL_CODEC_H_
6 | #define RVL_CODEC_H_
7 |
8 | #include
9 | #include "rtabmap/core/rtabmap_core_export.h"
10 |
11 | namespace rtabmap
12 | {
13 |
14 | class RTABMAP_CORE_EXPORT RvlCodec {
15 | public:
16 | RvlCodec();
17 | // Compress input data into output. The size of output can be equal to (1.5 * numPixels + 4) in the worst case.
18 | int CompressRVL(const uint16_t * input, unsigned char * output, int numPixels);
19 | // Decompress input data into output. The size of output must be equal to numPixels.
20 | void DecompressRVL(const unsigned char * input, uint16_t * output, int numPixels);
21 |
22 | private:
23 | RvlCodec(const RvlCodec &);
24 | RvlCodec & operator=(const RvlCodec &);
25 |
26 | void EncodeVLE(int value);
27 | int DecodeVLE();
28 |
29 | int *buffer_;
30 | int *pBuffer_;
31 | int word_;
32 | int nibblesWritten_;
33 | };
34 |
35 | } // namespace rtabmap
36 |
37 | #endif // RVL_CODEC_H_
38 |
--------------------------------------------------------------------------------
/corelib/src/imufilter/README.txt:
--------------------------------------------------------------------------------
1 | IMU filters taken from ROS imu_tools stack: https://github.com/ccny-ros-pkg/imu_tools, please look below for licensing. To avoid GPL license, MadgwickFilter can be disabled on compilation with "cmake -DWITH_MADGWICK=OFF ..".
2 | ===================================
3 |
4 | Overview
5 | -----------------------------------
6 |
7 | IMU-related filters:
8 |
9 | * `MadgwickFilter`: a filter which fuses angular velocities,
10 | accelerations, and (optionally) magnetic readings from a generic IMU
11 | device into an orientation. Based on the work of [1].
12 |
13 | * `ComplementaryFilter`: a filter which fuses angular velocities,
14 | accelerations, and (optionally) magnetic readings from a generic IMU
15 | device into an orientation quaternion using a novel approach based on a complementary fusion. Based on the work of [2].
16 |
17 | License
18 | -----------------------------------
19 |
20 | * `MadgwickFilter`: currently licensed as GPL, following the original implementation
21 |
22 | * `ComplementaryFilter`: BSD
23 |
24 | References
25 | -----------------------------------
26 | [1] http://www.x-io.co.uk/open-source-imu-and-ahrs-algorithms/
27 |
28 | [2] http://www.mdpi.com/1424-8220/15/8/19302
29 |
--------------------------------------------------------------------------------
/corelib/src/opencv/five-point.h:
--------------------------------------------------------------------------------
1 | /*
2 | * five-point.h
3 | *
4 | * Created on: May 18, 2020
5 | * Author: mathieu
6 | */
7 |
8 | #ifndef CORELIB_SRC_OPENCV_FIVE_POINT_H_
9 | #define CORELIB_SRC_OPENCV_FIVE_POINT_H_
10 |
11 | namespace cv3
12 | {
13 |
14 | cv::Mat findEssentialMat( cv::InputArray _points1, cv::InputArray _points2, cv::InputArray _cameraMatrix,
15 | int method, double prob, double threshold, cv::OutputArray _mask = cv::noArray());
16 |
17 | int recoverPose( cv::InputArray E, cv::InputArray _points1, cv::InputArray _points2,
18 | cv::InputArray _cameraMatrix, cv::OutputArray _R, cv::OutputArray _t, double distanceThresh,
19 | cv::InputOutputArray _mask, cv::OutputArray triangulatedPoints);
20 | }
21 |
22 |
23 | #endif /* CORELIB_SRC_OPENCV_FIVE_POINT_H_ */
24 |
--------------------------------------------------------------------------------
/corelib/src/opencv/readme.txt:
--------------------------------------------------------------------------------
1 |
2 | Used with OpenCV 2:
3 | * Orb.cpp is a modified version of OpenCV2 Orb with FAST object from rtabmap (FAST with Grid adaptor).
4 |
5 | Used for all OpenCV versions:
6 | * solvepnp.cpp is a copy of the OpenCV3 version of solvePnPRansac.
7 | * five-point.cpp is a copy of the same file in OpenCV (d2872afce0fcc84a52b5753960730595550e1b62) but with RANSAC estimator using 6 points instead of 5 points to avoid "DLT algorithm needs at least 6 points for pose estimation from 3D-2D point correspondences. (expected: 'count >= 6')" error on recent OpenCV versions using DLT by default.
--------------------------------------------------------------------------------
/corelib/src/optimizer/ceres/bundle/BAProblem.h:
--------------------------------------------------------------------------------
1 | /*
2 | * BAProblem.h
3 | *
4 | * Created on: Aug 16, 2019
5 | * Author: mathieu
6 | */
7 |
8 | #ifndef CORELIB_SRC_OPTIMIZER_CERES_BUNDLE_BAPROBLEM_H_
9 | #define CORELIB_SRC_OPTIMIZER_CERES_BUNDLE_BAPROBLEM_H_
10 |
11 | namespace ceres {
12 |
13 | class BAProblem {
14 | public:
15 | BAProblem() :
16 | num_cameras_(0),
17 | num_points_(0),
18 | num_observations_(0),
19 | point_index_(NULL),
20 | camera_index_(NULL),
21 | observations_(NULL),
22 | cameras_(NULL),
23 | points_(NULL)
24 | {}
25 | ~BAProblem() {
26 | delete[] point_index_;
27 | delete[] camera_index_;
28 | delete[] observations_;
29 | delete[] cameras_;
30 | delete[] points_;
31 | }
32 | int num_observations() const { return num_observations_;}
33 | const double* observations() const { return observations_;}
34 | double* mutable_camera_for_observation(int i) {
35 | return cameras_ + camera_index_[i] * 6;
36 | }
37 | double* mutable_point_for_observation(int i) {
38 | return points_ + point_index_[i] * 3;
39 | }
40 | int num_cameras_;
41 | int num_points_;
42 | int num_observations_;
43 | int* point_index_;
44 | int* camera_index_;
45 | double* observations_;
46 | double* cameras_;
47 | double* points_;
48 | };
49 |
50 | }
51 |
52 | #endif /* CORELIB_SRC_OPTIMIZER_CERES_BUNDLE_BAPROBLEM_H_ */
53 |
--------------------------------------------------------------------------------
/corelib/src/optimizer/toro3d/readme.txt:
--------------------------------------------------------------------------------
1 |
2 | Info: https://www.openslam.org/toro.html
3 | License: Creative Commons (Attribution-NonCommercial-ShareAlike)
--------------------------------------------------------------------------------
/corelib/src/optimizer/vertigo/g2o/edge_se2MaxMixture.h:
--------------------------------------------------------------------------------
1 | /*
2 | * edge_se2MaxMixture.h
3 | *
4 | * Created on: 12.06.2012
5 | * Author: niko
6 | */
7 |
8 | #ifndef EDGE_SE2MAXMIXTURE_H_
9 | #define EDGE_SE2MAXMIXTURE_H_
10 |
11 | #include "g2o/types/slam2d/vertex_se2.h"
12 | #include "g2o/types/slam2d/edge_se2.h"
13 |
14 |
15 | class EdgeSE2MaxMixture : public g2o::EdgeSE2
16 | {
17 | public:
18 | EdgeSE2MaxMixture();
19 |
20 | virtual bool read(std::istream& is);
21 | virtual bool write(std::ostream& os) const;
22 | void computeError();
23 | void linearizeOplus();
24 |
25 | double weight;
26 |
27 | bool nullHypothesisMoreLikely;
28 |
29 | InformationType information_nullHypothesis;
30 | double nu_nullHypothesis;
31 | InformationType information_constraint;
32 | double nu_constraint ;
33 | };
34 |
35 |
36 | #ifdef G2O_HAVE_OPENGL
37 | class EdgeSE2MaxMixtureDrawAction: public g2o::DrawAction{
38 | public:
39 | EdgeSE2MaxMixtureDrawAction();
40 | virtual g2o::HyperGraphElementAction* operator()(g2o::HyperGraph::HyperGraphElement* element,
41 | g2o::HyperGraphElementAction::Parameters* params_);
42 | };
43 | #endif
44 |
45 |
46 | #endif /* EDGE_SE2MAXMIXTURE_H_ */
47 |
--------------------------------------------------------------------------------
/corelib/src/optimizer/vertigo/g2o/edge_se2Switchable.h:
--------------------------------------------------------------------------------
1 | /*
2 | * edge_se2Switchable.h
3 | *
4 | * Created on: 13.07.2011
5 | * Author: niko
6 | *
7 | * Updated on: 14.01.2013
8 | * Author: Christian Kerl
9 | */
10 |
11 | #ifndef EDGE_SE2SWITCHABLE_H_
12 | #define EDGE_SE2SWITCHABLE_H_
13 |
14 | #include "g2o/types/slam2d/vertex_se2.h"
15 | #include "g2o/core/base_multi_edge.h"
16 | #include "g2o/core/hyper_graph_action.h"
17 |
18 | class EdgeSE2Switchable : public g2o::BaseMultiEdge<3, g2o::SE2>
19 | {
20 | public:
21 | EdgeSE2Switchable();
22 |
23 | virtual bool read(std::istream& is);
24 | virtual bool write(std::ostream& os) const;
25 | void computeError();
26 | void linearizeOplus();
27 |
28 |
29 | virtual void setMeasurement(const g2o::SE2& m){
30 | _measurement = m;
31 | _inverseMeasurement = m.inverse();
32 | }
33 |
34 | protected:
35 | g2o::SE2 _inverseMeasurement;
36 | };
37 |
38 |
39 | #ifdef G2O_HAVE_OPENGL
40 | class EdgeSE2SwitchableDrawAction: public g2o::DrawAction{
41 | public:
42 | EdgeSE2SwitchableDrawAction();
43 | virtual g2o::HyperGraphElementAction* operator()(g2o::HyperGraph::HyperGraphElement* element,
44 | g2o::HyperGraphElementAction::Parameters* params_);
45 | };
46 | #endif
47 |
48 |
49 |
50 | #endif /* EDGE_SE2SWITCHABLE_H_ */
51 |
--------------------------------------------------------------------------------
/corelib/src/optimizer/vertigo/g2o/edge_se3Switchable.h:
--------------------------------------------------------------------------------
1 | /*
2 | * edge_se3Switchable.h
3 | *
4 | * Created on: 17.10.2011
5 | * Author: niko
6 | *
7 | * Updated on: 14.01.2013
8 | * Author: Christian Kerl
9 | */
10 |
11 | #ifndef EDGE_SE3SWITCHABLE_H_
12 | #define EDGE_SE3SWITCHABLE_H_
13 |
14 | #include "g2o/types/slam3d/vertex_se3.h"
15 | #include "g2o/core/base_multi_edge.h"
16 | #include "g2o/core/hyper_graph_action.h"
17 |
18 | class EdgeSE3Switchable : public g2o::BaseMultiEdge<6, Eigen::Isometry3d>
19 | {
20 | public:
21 | EdgeSE3Switchable();
22 |
23 | virtual bool read(std::istream& is);
24 | virtual bool write(std::ostream& os) const;
25 | void computeError();
26 | void linearizeOplus();
27 |
28 | virtual void setMeasurement(const Eigen::Isometry3d& m){
29 | _measurement = m;
30 | _inverseMeasurement = m.inverse();
31 | }
32 |
33 | protected:
34 | Eigen::Isometry3d _inverseMeasurement;
35 | };
36 |
37 |
38 | #ifdef G2O_HAVE_OPENGL
39 | class EdgeSE3SwitchableDrawAction: public g2o::DrawAction{
40 | public:
41 | EdgeSE3SwitchableDrawAction();
42 | virtual g2o::HyperGraphElementAction* operator()(g2o::HyperGraph::HyperGraphElement* element,
43 | g2o::HyperGraphElementAction::Parameters* params_);
44 | };
45 | #endif
46 |
47 |
48 | #endif /* EDGE_SE3SWITCHABLE_H_ */
49 |
--------------------------------------------------------------------------------
/corelib/src/optimizer/vertigo/g2o/edge_switchPrior.cpp:
--------------------------------------------------------------------------------
1 | #include "edge_switchPrior.h"
2 | using namespace std;
3 |
4 | EdgeSwitchPrior::EdgeSwitchPrior()
5 | {
6 | setMeasurement(1.0);
7 | }
8 |
9 | bool EdgeSwitchPrior::read(std::istream &is)
10 | {
11 | double new_measurement;
12 | is >> new_measurement;
13 |
14 | setMeasurement(new_measurement);
15 |
16 | is >> information()(0,0);
17 | return true;
18 | }
19 |
20 | bool EdgeSwitchPrior::write(std::ostream &os) const
21 | {
22 | os << measurement() << " " << information()(0,0);
23 | return true;
24 | }
25 |
26 | void EdgeSwitchPrior::setMeasurement(const double & m)
27 | {
28 | g2o::BaseEdge<1, double>::setMeasurement(m);
29 | information()(0,0) = 1.0;
30 | }
31 |
32 | void EdgeSwitchPrior::linearizeOplus()
33 | {
34 | _jacobianOplusXi[0]=-1.0;
35 | }
36 |
37 | void EdgeSwitchPrior::computeError()
38 | {
39 | const VertexSwitchLinear* s = static_cast(_vertices[0]);
40 |
41 | _error[0] = measurement() - s->x();
42 |
43 | }
44 |
45 |
--------------------------------------------------------------------------------
/corelib/src/optimizer/vertigo/g2o/edge_switchPrior.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 |
3 |
4 | #include "vertex_switchLinear.h"
5 | #include "g2o/core/base_unary_edge.h"
6 |
7 |
8 |
9 | class EdgeSwitchPrior : public g2o::BaseUnaryEdge<1, double, VertexSwitchLinear>
10 | {
11 | public:
12 | EIGEN_MAKE_ALIGNED_OPERATOR_NEW
13 | EdgeSwitchPrior();
14 |
15 | virtual bool read(std::istream& is);
16 | virtual bool write(std::ostream& os) const;
17 |
18 | virtual void setMeasurement(const double & m);
19 |
20 | virtual void linearizeOplus();
21 | void computeError();
22 | };
23 |
--------------------------------------------------------------------------------
/corelib/src/optimizer/vertigo/g2o/types_g2o_robust.cpp:
--------------------------------------------------------------------------------
1 | #include "g2o/core/factory.h"
2 | #include "g2o/stuff/macros.h"
3 |
4 | #include "edge_switchPrior.h"
5 | #include "edge_se2Switchable.h"
6 | //#include "edge_se2MaxMixture.h"
7 | #include "edge_se3Switchable.h"
8 | #include "vertex_switchLinear.h"
9 |
10 |
11 | G2O_REGISTER_TYPE(EDGE_SWITCH_PRIOR, EdgeSwitchPrior);
12 | G2O_REGISTER_TYPE(EDGE_SE2_SWITCHABLE, EdgeSE2Switchable);
13 | //G2O_REGISTER_TYPE(EDGE_SE2_MAXMIX, EdgeSE2MaxMixture);
14 | G2O_REGISTER_TYPE(EDGE_SE3_SWITCHABLE, EdgeSE3Switchable);
15 | G2O_REGISTER_TYPE(VERTEX_SWITCH, VertexSwitchLinear);
16 |
17 | /*
18 | #ifdef G2O_HAVE_OPENGL
19 | G2O_REGISTER_ACTION(EdgeSE2SwitchableDrawAction);
20 | //G2O_REGISTER_ACTION(EdgeSE2MaxMixtureDrawAction);
21 | G2O_REGISTER_ACTION(EdgeSE3SwitchableDrawAction);
22 | #endif
23 | */
24 |
--------------------------------------------------------------------------------
/corelib/src/optimizer/vertigo/g2o/vertex_switchLinear.cpp:
--------------------------------------------------------------------------------
1 | /*
2 | * vertex_switchLinear.cpp
3 | *
4 | * Created on: 17.10.2011
5 | * Author: niko
6 | *
7 | * Updated on: 14.01.2013
8 | * Author: Christian Kerl
9 | */
10 |
11 | #include "vertex_switchLinear.h"
12 | #include
13 |
14 | using namespace std;
15 |
16 | VertexSwitchLinear::VertexSwitchLinear() :
17 | _x(0)
18 | {
19 | setToOrigin();
20 | setEstimate(1.0);
21 | }
22 |
23 | bool VertexSwitchLinear:: read(std::istream& is)
24 | {
25 | is >> _x;
26 | _estimate=_x;
27 |
28 | return true;
29 | }
30 |
31 | bool VertexSwitchLinear::write(std::ostream& os) const
32 | {
33 | os << _x;
34 | return os.good();
35 | }
36 |
37 | void VertexSwitchLinear::setToOriginImpl()
38 | {
39 | _x=0;
40 | _estimate=_x;
41 | }
42 |
43 |
44 | void VertexSwitchLinear::setEstimate(const double &et)
45 | {
46 | _x=et;
47 | _estimate=_x;
48 | }
49 |
50 |
51 | void VertexSwitchLinear::oplusImpl(const double* update)
52 | {
53 | _x += update[0];
54 |
55 | if (_x<0) _x=0;
56 | if (_x>1) _x=1;
57 |
58 | _estimate=_x;
59 | }
60 |
--------------------------------------------------------------------------------
/corelib/src/optimizer/vertigo/g2o/vertex_switchLinear.h:
--------------------------------------------------------------------------------
1 | /*
2 | * vertex_switchLinear.h
3 | *
4 | * Created on: 17.10.2011
5 | * Author: niko
6 | *
7 | * Updated on: 14.01.2013
8 | * Author: Christian Kerl
9 | */
10 |
11 |
12 | #pragma once
13 |
14 | #include "g2o/core/base_vertex.h"
15 | #include
16 |
17 |
18 |
19 | class VertexSwitchLinear : public g2o::BaseVertex<1, double>
20 | {
21 |
22 | public:
23 | VertexSwitchLinear();
24 |
25 | virtual void setToOriginImpl();
26 |
27 | virtual void oplusImpl(const double* update);
28 |
29 | virtual bool read(std::istream& is);
30 | virtual bool write(std::ostream& os) const;
31 | virtual void setEstimate(const double &et);
32 |
33 |
34 | double x() const { return _x; };
35 |
36 |
37 | //! The gradient at the current estimate is always 1;
38 | double gradient() const { return 1; } ;
39 |
40 | private:
41 | double _x;
42 |
43 | };
44 |
--------------------------------------------------------------------------------
/corelib/src/optimizer/vertigo/readme.txt:
--------------------------------------------------------------------------------
1 |
2 | Info: http://openslam.org/vertigo.html
3 | Source: https://github.com/christiankerl/vertigo/tree/master/trunk
4 | Commit: fbd438488a56cdba805fa2f75aa3e394e3eda7ff
5 | License: GPL v3
6 |
7 | Tested with g2o (ROS Indigo/2014.02.18)
8 | Tested with GTSAM commit c73b835
--------------------------------------------------------------------------------
/corelib/src/pcl18/readme.txt:
--------------------------------------------------------------------------------
1 | Copied pcl 1.8 functions to be used in older pcl versions. They are
2 | not included if 1.8 is detected (the originals are used directly).
--------------------------------------------------------------------------------
/corelib/src/python/PyDescriptor.h:
--------------------------------------------------------------------------------
1 | /**
2 | * Python interface for python descriptors like:
3 | * - NetVLAD: https://github.com/uzh-rpg/netvlad_tf_open
4 | */
5 |
6 | #ifndef PYDESCRIPTOR_H
7 | #define PYDESCRIPTOR_H
8 |
9 | #include
10 | #include "rtabmap/core/PythonInterface.h"
11 | #include
12 |
13 | namespace rtabmap
14 | {
15 |
16 | class PyDescriptor : public GlobalDescriptorExtractor
17 | {
18 | public:
19 | PyDescriptor(const ParametersMap & parameters = ParametersMap());
20 | virtual ~PyDescriptor();
21 |
22 | const std::string & path() const {return path_;}
23 | float dim() const {return dim_;}
24 |
25 | virtual void parseParameters(const ParametersMap & parameters);
26 | virtual GlobalDescriptor extract(const SensorData & data) const;
27 | virtual GlobalDescriptorExtractor::Type getType() const {return kPyDescriptor;}
28 |
29 | private:
30 | PyObject * pModule_;
31 | PyObject * pFunc_;
32 | std::string path_;
33 | int dim_;
34 | };
35 |
36 | }
37 |
38 | #endif
39 |
--------------------------------------------------------------------------------
/corelib/src/python/PyDetector.h:
--------------------------------------------------------------------------------
1 | /**
2 | * Python interface for python local feature detectors like:
3 | * - SuperPoint: https://github.com/magicleap/SuperPointPretrainedNetwork
4 | */
5 |
6 | #ifndef PYDETECTOR_H
7 | #define PYDETECTOR_H
8 |
9 | #include
10 | #include
11 | #include
12 | #include
13 |
14 | #include "rtabmap/core/PythonInterface.h"
15 | #include
16 |
17 | namespace rtabmap
18 | {
19 |
20 | class PyDetector : public Feature2D
21 | {
22 | public:
23 | PyDetector(const ParametersMap & parameters = ParametersMap());
24 | virtual ~PyDetector();
25 |
26 | virtual void parseParameters(const ParametersMap & parameters);
27 | virtual Feature2D::Type getType() const {return kFeaturePyDetector;}
28 |
29 | private:
30 | virtual std::vector generateKeypointsImpl(const cv::Mat & image, const cv::Rect & roi, const cv::Mat & mask = cv::Mat());
31 | virtual cv::Mat generateDescriptorsImpl(const cv::Mat & image, std::vector & keypoints) const;
32 |
33 | private:
34 | PyObject * pModule_;
35 | PyObject * pFunc_;
36 | std::string path_;
37 | bool cuda_;
38 | cv::Mat descriptors_;
39 | };
40 |
41 | }
42 |
43 | #endif
44 |
--------------------------------------------------------------------------------
/corelib/src/resources/.gitignore:
--------------------------------------------------------------------------------
1 | /DatabaseSchema.sql
2 |
--------------------------------------------------------------------------------
/corelib/src/rtflann/readme.txt:
--------------------------------------------------------------------------------
1 |
2 | flann is included in rtabmap for convenience, to have this commit needed for incremental flann index:
3 | https://github.com/mariusmuja/flann/commit/23051820b2314f07cf40ba633a4067782a982ff3
4 |
5 | Info: http://www.cs.ubc.ca/research/flann/
6 | Source: https://github.com/mariusmuja/flann
7 | Commit: 9a01507d2231b29eb688246a6e442054defa7460
8 | License: BSD
--------------------------------------------------------------------------------
/corelib/src/sqlite3/readme.txt:
--------------------------------------------------------------------------------
1 |
2 | Info: https://www.sqlite.org/
3 | License: Public domain (https://www.sqlite.org/copyright.html)
--------------------------------------------------------------------------------
/data/BoxImgs/1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/introlab/rtabmap/e19b0c3dc4571a75f60823f6efb622769f764f31/data/BoxImgs/1.png
--------------------------------------------------------------------------------
/data/BoxImgs/2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/introlab/rtabmap/e19b0c3dc4571a75f60823f6efb622769f764f31/data/BoxImgs/2.png
--------------------------------------------------------------------------------
/data/Dictionary49k.txt.zip:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/introlab/rtabmap/e19b0c3dc4571a75f60823f6efb622769f764f31/data/Dictionary49k.txt.zip
--------------------------------------------------------------------------------
/data/README:
--------------------------------------------------------------------------------
1 | This directory contains some data used when testing the lib.
--------------------------------------------------------------------------------
/data/check-108.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/introlab/rtabmap/e19b0c3dc4571a75f60823f6efb622769f764f31/data/check-108.pdf
--------------------------------------------------------------------------------
/data/presets/camera_tof_icp.ini:
--------------------------------------------------------------------------------
1 | # Could be used with TOF cameras like Kinect v2, Kinect For Azure or L515
2 |
3 | [Camera]
4 | Scan\downsampleStep = 4
5 | Scan\fromDepth = true
6 | Scan\normalsK = 20
7 | Scan\normalsRadius = 0
8 | Scan\normalsUp = false
9 | Scan\rangeMax = 0
10 | Scan\rangeMin = 0
11 | Scan\voxelSize = 0.05
12 |
13 | [Gui]
14 | General\showClouds0 = false
15 | General\showClouds1 = false
16 |
17 | [Core]
18 | Icp\CorrespondenceRatio = 0.2
19 | Icp\Epsilon = 0.005
20 | Icp\OutlierRatio = 0.65
21 | Icp\PointToPlaneMinComplexity = 0
22 | Icp\Strategy = 0
23 | Icp\VoxelSize = 0
24 | Odom\Deskewing = false
25 | Odom\ScanKeyFrameThr = 0.7
26 | OdomF2M\ScanMaxSize = 15000
27 | # match the input voxel size:
28 | OdomF2M\ScanSubtractRadius = 0.05
29 | RGBD\ProximityPathMaxNeighbors = 1
30 | # Make sure PM is used:
31 | Reg\Strategy = 1
32 |
--------------------------------------------------------------------------------
/data/presets/lidar3d_icp.ini:
--------------------------------------------------------------------------------
1 | # Could be used with LiDARs like Velodyne, RoboSense, Ouster
2 |
3 | [Camera]
4 | Scan\downsampleStep = 1
5 | Scan\fromDepth = false
6 | Scan\normalsK = 0
7 | Scan\normalsRadius = 0
8 | Scan\normalsUp = false
9 | Scan\rangeMax = 0
10 | Scan\rangeMin = 0
11 | Scan\voxelSize = 0
12 |
13 | [Gui]
14 | General\showClouds0 = false
15 | General\showClouds1 = false
16 |
17 | [Core]
18 | # Would be 0.01 for odom and 0.2 for mapping:
19 | Icp\CorrespondenceRatio = 0.1
20 | Icp\Epsilon = 0.001
21 | Icp\FiltersEnabled = 2
22 | Icp\Iterations = 10
23 | Icp\OutlierRatio = 0.7
24 | # ~10x the voxel size:
25 | Icp\MaxCorrespondenceDistance = 0.5
26 | Icp\MaxTranslation = 2
27 | # Uncomment if lidar can see ground most of the time (on a car or wheeled robot):
28 | #Icp\PointToPlaneGroundNormalsUp = 0.8
29 | Icp\PointToPlaneK = 20
30 | Icp\PointToPlaneMinComplexity = 0
31 | # Make sure PM is used:
32 | Icp\Strategy = 1
33 | Icp\VoxelSize = 0.05
34 | Mem\NotLinkedNodesKept = false
35 | Mem\STMSize = 30
36 | Odom\Deskewing = true
37 | Odom\GuessSmoothingDelay = 0.3
38 | Odom\ScanKeyFrameThr = 0.6
39 | OdomF2M\ScanMaxSize = 15000
40 | # Match voxel size:
41 | OdomF2M\ScanSubtractRadius = 0.05
42 | RGBD\AngularUpdate = 0.05
43 | RGBD\LinearUpdate = 0.05
44 | RGBD\ProximityMaxGraphDepth = 0
45 | RGBD\ProximityPathMaxNeighbors = 1
46 | Reg\Strategy = 1
47 |
--------------------------------------------------------------------------------
/data/samples.zip:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/introlab/rtabmap/e19b0c3dc4571a75f60823f6efb622769f764f31/data/samples.zip
--------------------------------------------------------------------------------
/data/samples/1.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/introlab/rtabmap/e19b0c3dc4571a75f60823f6efb622769f764f31/data/samples/1.jpg
--------------------------------------------------------------------------------
/data/samples/10.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/introlab/rtabmap/e19b0c3dc4571a75f60823f6efb622769f764f31/data/samples/10.jpg
--------------------------------------------------------------------------------
/data/samples/11.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/introlab/rtabmap/e19b0c3dc4571a75f60823f6efb622769f764f31/data/samples/11.jpg
--------------------------------------------------------------------------------
/data/samples/12.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/introlab/rtabmap/e19b0c3dc4571a75f60823f6efb622769f764f31/data/samples/12.jpg
--------------------------------------------------------------------------------
/data/samples/13.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/introlab/rtabmap/e19b0c3dc4571a75f60823f6efb622769f764f31/data/samples/13.jpg
--------------------------------------------------------------------------------
/data/samples/14.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/introlab/rtabmap/e19b0c3dc4571a75f60823f6efb622769f764f31/data/samples/14.jpg
--------------------------------------------------------------------------------
/data/samples/15.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/introlab/rtabmap/e19b0c3dc4571a75f60823f6efb622769f764f31/data/samples/15.jpg
--------------------------------------------------------------------------------
/data/samples/16.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/introlab/rtabmap/e19b0c3dc4571a75f60823f6efb622769f764f31/data/samples/16.jpg
--------------------------------------------------------------------------------
/data/samples/17.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/introlab/rtabmap/e19b0c3dc4571a75f60823f6efb622769f764f31/data/samples/17.jpg
--------------------------------------------------------------------------------
/data/samples/18.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/introlab/rtabmap/e19b0c3dc4571a75f60823f6efb622769f764f31/data/samples/18.jpg
--------------------------------------------------------------------------------
/data/samples/19.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/introlab/rtabmap/e19b0c3dc4571a75f60823f6efb622769f764f31/data/samples/19.jpg
--------------------------------------------------------------------------------
/data/samples/2.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/introlab/rtabmap/e19b0c3dc4571a75f60823f6efb622769f764f31/data/samples/2.jpg
--------------------------------------------------------------------------------
/data/samples/20.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/introlab/rtabmap/e19b0c3dc4571a75f60823f6efb622769f764f31/data/samples/20.jpg
--------------------------------------------------------------------------------
/data/samples/21.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/introlab/rtabmap/e19b0c3dc4571a75f60823f6efb622769f764f31/data/samples/21.jpg
--------------------------------------------------------------------------------
/data/samples/22.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/introlab/rtabmap/e19b0c3dc4571a75f60823f6efb622769f764f31/data/samples/22.jpg
--------------------------------------------------------------------------------
/data/samples/23.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/introlab/rtabmap/e19b0c3dc4571a75f60823f6efb622769f764f31/data/samples/23.jpg
--------------------------------------------------------------------------------
/data/samples/24.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/introlab/rtabmap/e19b0c3dc4571a75f60823f6efb622769f764f31/data/samples/24.jpg
--------------------------------------------------------------------------------
/data/samples/25.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/introlab/rtabmap/e19b0c3dc4571a75f60823f6efb622769f764f31/data/samples/25.jpg
--------------------------------------------------------------------------------
/data/samples/26.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/introlab/rtabmap/e19b0c3dc4571a75f60823f6efb622769f764f31/data/samples/26.jpg
--------------------------------------------------------------------------------
/data/samples/27.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/introlab/rtabmap/e19b0c3dc4571a75f60823f6efb622769f764f31/data/samples/27.jpg
--------------------------------------------------------------------------------
/data/samples/28.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/introlab/rtabmap/e19b0c3dc4571a75f60823f6efb622769f764f31/data/samples/28.jpg
--------------------------------------------------------------------------------
/data/samples/29.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/introlab/rtabmap/e19b0c3dc4571a75f60823f6efb622769f764f31/data/samples/29.jpg
--------------------------------------------------------------------------------
/data/samples/3.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/introlab/rtabmap/e19b0c3dc4571a75f60823f6efb622769f764f31/data/samples/3.jpg
--------------------------------------------------------------------------------
/data/samples/30.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/introlab/rtabmap/e19b0c3dc4571a75f60823f6efb622769f764f31/data/samples/30.jpg
--------------------------------------------------------------------------------
/data/samples/31.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/introlab/rtabmap/e19b0c3dc4571a75f60823f6efb622769f764f31/data/samples/31.jpg
--------------------------------------------------------------------------------
/data/samples/32.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/introlab/rtabmap/e19b0c3dc4571a75f60823f6efb622769f764f31/data/samples/32.jpg
--------------------------------------------------------------------------------
/data/samples/33.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/introlab/rtabmap/e19b0c3dc4571a75f60823f6efb622769f764f31/data/samples/33.jpg
--------------------------------------------------------------------------------
/data/samples/34.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/introlab/rtabmap/e19b0c3dc4571a75f60823f6efb622769f764f31/data/samples/34.jpg
--------------------------------------------------------------------------------
/data/samples/35.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/introlab/rtabmap/e19b0c3dc4571a75f60823f6efb622769f764f31/data/samples/35.jpg
--------------------------------------------------------------------------------
/data/samples/36.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/introlab/rtabmap/e19b0c3dc4571a75f60823f6efb622769f764f31/data/samples/36.jpg
--------------------------------------------------------------------------------
/data/samples/37.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/introlab/rtabmap/e19b0c3dc4571a75f60823f6efb622769f764f31/data/samples/37.jpg
--------------------------------------------------------------------------------
/data/samples/38.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/introlab/rtabmap/e19b0c3dc4571a75f60823f6efb622769f764f31/data/samples/38.jpg
--------------------------------------------------------------------------------
/data/samples/39.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/introlab/rtabmap/e19b0c3dc4571a75f60823f6efb622769f764f31/data/samples/39.jpg
--------------------------------------------------------------------------------
/data/samples/4.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/introlab/rtabmap/e19b0c3dc4571a75f60823f6efb622769f764f31/data/samples/4.jpg
--------------------------------------------------------------------------------
/data/samples/40.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/introlab/rtabmap/e19b0c3dc4571a75f60823f6efb622769f764f31/data/samples/40.jpg
--------------------------------------------------------------------------------
/data/samples/41.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/introlab/rtabmap/e19b0c3dc4571a75f60823f6efb622769f764f31/data/samples/41.jpg
--------------------------------------------------------------------------------
/data/samples/42.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/introlab/rtabmap/e19b0c3dc4571a75f60823f6efb622769f764f31/data/samples/42.jpg
--------------------------------------------------------------------------------
/data/samples/43.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/introlab/rtabmap/e19b0c3dc4571a75f60823f6efb622769f764f31/data/samples/43.jpg
--------------------------------------------------------------------------------
/data/samples/44.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/introlab/rtabmap/e19b0c3dc4571a75f60823f6efb622769f764f31/data/samples/44.jpg
--------------------------------------------------------------------------------
/data/samples/45.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/introlab/rtabmap/e19b0c3dc4571a75f60823f6efb622769f764f31/data/samples/45.jpg
--------------------------------------------------------------------------------
/data/samples/46.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/introlab/rtabmap/e19b0c3dc4571a75f60823f6efb622769f764f31/data/samples/46.jpg
--------------------------------------------------------------------------------
/data/samples/47.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/introlab/rtabmap/e19b0c3dc4571a75f60823f6efb622769f764f31/data/samples/47.jpg
--------------------------------------------------------------------------------
/data/samples/48.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/introlab/rtabmap/e19b0c3dc4571a75f60823f6efb622769f764f31/data/samples/48.jpg
--------------------------------------------------------------------------------
/data/samples/49.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/introlab/rtabmap/e19b0c3dc4571a75f60823f6efb622769f764f31/data/samples/49.jpg
--------------------------------------------------------------------------------
/data/samples/5.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/introlab/rtabmap/e19b0c3dc4571a75f60823f6efb622769f764f31/data/samples/5.jpg
--------------------------------------------------------------------------------
/data/samples/50.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/introlab/rtabmap/e19b0c3dc4571a75f60823f6efb622769f764f31/data/samples/50.jpg
--------------------------------------------------------------------------------
/data/samples/51.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/introlab/rtabmap/e19b0c3dc4571a75f60823f6efb622769f764f31/data/samples/51.jpg
--------------------------------------------------------------------------------
/data/samples/52.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/introlab/rtabmap/e19b0c3dc4571a75f60823f6efb622769f764f31/data/samples/52.jpg
--------------------------------------------------------------------------------
/data/samples/53.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/introlab/rtabmap/e19b0c3dc4571a75f60823f6efb622769f764f31/data/samples/53.jpg
--------------------------------------------------------------------------------
/data/samples/54.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/introlab/rtabmap/e19b0c3dc4571a75f60823f6efb622769f764f31/data/samples/54.jpg
--------------------------------------------------------------------------------
/data/samples/55.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/introlab/rtabmap/e19b0c3dc4571a75f60823f6efb622769f764f31/data/samples/55.jpg
--------------------------------------------------------------------------------
/data/samples/56.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/introlab/rtabmap/e19b0c3dc4571a75f60823f6efb622769f764f31/data/samples/56.jpg
--------------------------------------------------------------------------------
/data/samples/57.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/introlab/rtabmap/e19b0c3dc4571a75f60823f6efb622769f764f31/data/samples/57.jpg
--------------------------------------------------------------------------------
/data/samples/58.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/introlab/rtabmap/e19b0c3dc4571a75f60823f6efb622769f764f31/data/samples/58.jpg
--------------------------------------------------------------------------------
/data/samples/59.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/introlab/rtabmap/e19b0c3dc4571a75f60823f6efb622769f764f31/data/samples/59.jpg
--------------------------------------------------------------------------------
/data/samples/6.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/introlab/rtabmap/e19b0c3dc4571a75f60823f6efb622769f764f31/data/samples/6.jpg
--------------------------------------------------------------------------------
/data/samples/60.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/introlab/rtabmap/e19b0c3dc4571a75f60823f6efb622769f764f31/data/samples/60.jpg
--------------------------------------------------------------------------------
/data/samples/61.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/introlab/rtabmap/e19b0c3dc4571a75f60823f6efb622769f764f31/data/samples/61.jpg
--------------------------------------------------------------------------------
/data/samples/62.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/introlab/rtabmap/e19b0c3dc4571a75f60823f6efb622769f764f31/data/samples/62.jpg
--------------------------------------------------------------------------------
/data/samples/63.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/introlab/rtabmap/e19b0c3dc4571a75f60823f6efb622769f764f31/data/samples/63.jpg
--------------------------------------------------------------------------------
/data/samples/64.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/introlab/rtabmap/e19b0c3dc4571a75f60823f6efb622769f764f31/data/samples/64.jpg
--------------------------------------------------------------------------------
/data/samples/65.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/introlab/rtabmap/e19b0c3dc4571a75f60823f6efb622769f764f31/data/samples/65.jpg
--------------------------------------------------------------------------------
/data/samples/66.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/introlab/rtabmap/e19b0c3dc4571a75f60823f6efb622769f764f31/data/samples/66.jpg
--------------------------------------------------------------------------------
/data/samples/67.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/introlab/rtabmap/e19b0c3dc4571a75f60823f6efb622769f764f31/data/samples/67.jpg
--------------------------------------------------------------------------------
/data/samples/68.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/introlab/rtabmap/e19b0c3dc4571a75f60823f6efb622769f764f31/data/samples/68.jpg
--------------------------------------------------------------------------------
/data/samples/69.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/introlab/rtabmap/e19b0c3dc4571a75f60823f6efb622769f764f31/data/samples/69.jpg
--------------------------------------------------------------------------------
/data/samples/7.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/introlab/rtabmap/e19b0c3dc4571a75f60823f6efb622769f764f31/data/samples/7.jpg
--------------------------------------------------------------------------------
/data/samples/70.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/introlab/rtabmap/e19b0c3dc4571a75f60823f6efb622769f764f31/data/samples/70.jpg
--------------------------------------------------------------------------------
/data/samples/71.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/introlab/rtabmap/e19b0c3dc4571a75f60823f6efb622769f764f31/data/samples/71.jpg
--------------------------------------------------------------------------------
/data/samples/72.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/introlab/rtabmap/e19b0c3dc4571a75f60823f6efb622769f764f31/data/samples/72.jpg
--------------------------------------------------------------------------------
/data/samples/73.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/introlab/rtabmap/e19b0c3dc4571a75f60823f6efb622769f764f31/data/samples/73.jpg
--------------------------------------------------------------------------------
/data/samples/74.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/introlab/rtabmap/e19b0c3dc4571a75f60823f6efb622769f764f31/data/samples/74.jpg
--------------------------------------------------------------------------------
/data/samples/75.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/introlab/rtabmap/e19b0c3dc4571a75f60823f6efb622769f764f31/data/samples/75.jpg
--------------------------------------------------------------------------------
/data/samples/76.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/introlab/rtabmap/e19b0c3dc4571a75f60823f6efb622769f764f31/data/samples/76.jpg
--------------------------------------------------------------------------------
/data/samples/77.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/introlab/rtabmap/e19b0c3dc4571a75f60823f6efb622769f764f31/data/samples/77.jpg
--------------------------------------------------------------------------------
/data/samples/78.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/introlab/rtabmap/e19b0c3dc4571a75f60823f6efb622769f764f31/data/samples/78.jpg
--------------------------------------------------------------------------------
/data/samples/79.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/introlab/rtabmap/e19b0c3dc4571a75f60823f6efb622769f764f31/data/samples/79.jpg
--------------------------------------------------------------------------------
/data/samples/8.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/introlab/rtabmap/e19b0c3dc4571a75f60823f6efb622769f764f31/data/samples/8.jpg
--------------------------------------------------------------------------------
/data/samples/80.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/introlab/rtabmap/e19b0c3dc4571a75f60823f6efb622769f764f31/data/samples/80.jpg
--------------------------------------------------------------------------------
/data/samples/81.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/introlab/rtabmap/e19b0c3dc4571a75f60823f6efb622769f764f31/data/samples/81.jpg
--------------------------------------------------------------------------------
/data/samples/82.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/introlab/rtabmap/e19b0c3dc4571a75f60823f6efb622769f764f31/data/samples/82.jpg
--------------------------------------------------------------------------------
/data/samples/83.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/introlab/rtabmap/e19b0c3dc4571a75f60823f6efb622769f764f31/data/samples/83.jpg
--------------------------------------------------------------------------------
/data/samples/84.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/introlab/rtabmap/e19b0c3dc4571a75f60823f6efb622769f764f31/data/samples/84.jpg
--------------------------------------------------------------------------------
/data/samples/9.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/introlab/rtabmap/e19b0c3dc4571a75f60823f6efb622769f764f31/data/samples/9.jpg
--------------------------------------------------------------------------------
/data/samples_GT.bmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/introlab/rtabmap/e19b0c3dc4571a75f60823f6efb622769f764f31/data/samples_GT.bmp
--------------------------------------------------------------------------------
/docker/README.md:
--------------------------------------------------------------------------------
1 | ### Docker
2 |
3 | * Go to the [wiki](https://github.com/introlab/rtabmap/wiki/Installation#docker) for usage examples and how to build locally the images.
4 |
--------------------------------------------------------------------------------
/docker/bionic/android/rtabmap_apiXX/Dockerfile:
--------------------------------------------------------------------------------
1 | # Image: introlab3it/rtabmap:androidXX
2 |
3 | FROM introlab3it/rtabmap:android-deps
4 |
5 | ARG API_VERSION=23
6 |
7 | # Copy current source code
8 | COPY . /root/rtabmap-tango
9 |
10 | WORKDIR /root/rtabmap-tango
11 |
12 | RUN /bin/bash -c "./docker/bionic/android/rtabmap_apiXX/rtabmap.bash /opt/android $API_VERSION"
13 |
14 |
--------------------------------------------------------------------------------
/docker/bionic/hooks/build:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 | docker build --build-arg CACHE_DATE="$(date)" --cache-from $IMAGE_NAME -f $DOCKERFILE_PATH -t $IMAGE_NAME -t $DOCKER_REPO:18.04 .
3 |
--------------------------------------------------------------------------------
/docker/bionic/hooks/post_push:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 | docker push $DOCKER_REPO:18.04
3 |
--------------------------------------------------------------------------------
/docker/focal-foxy/Dockerfile:
--------------------------------------------------------------------------------
1 | # Image: introlab3it/rtabmap:focal-foxy
2 |
3 | FROM introlab3it/rtabmap:focal-foxy-deps
4 |
5 | # June 19 2023: moved opengv here so that focal-foxy-deps can be built on my computer. Not sure why but on my machine opengv arm64 fails, but not on CI.
6 | #commit Aug 6 2020
7 | RUN apt-get update && apt install -y wget && \
8 | apt-get clean && rm -rf /var/lib/apt/lists/
9 | RUN git clone https://github.com/laurentkneip/opengv.git && \
10 | cd opengv && \
11 | git checkout 91f4b19c73450833a40e463ad3648aae80b3a7f3 && \
12 | wget https://gist.githubusercontent.com/matlabbe/a412cf7c4627253874f81a00745a7fbb/raw/accc3acf465d1ffd0304a46b17741f62d4d354ef/opengv_disable_march_native.patch && \
13 | git apply opengv_disable_march_native.patch && \
14 | mkdir build && \
15 | cd build && \
16 | cmake -DCMAKE_BUILD_TYPE=Release .. && \
17 | make -j$(nproc) && \
18 | make install && \
19 | cd && \
20 | rm -r opengv
21 |
22 | # Will be used to read/store databases on host
23 | RUN mkdir -p /root/Documents/RTAB-Map && chmod 777 /root/Documents/RTAB-Map
24 |
25 | # Copy current source code
26 | COPY . /root/rtabmap
27 |
28 | # Build RTAB-Map project
29 | RUN source /ros_entrypoint.sh && \
30 | cd rtabmap/build && \
31 | cmake -DWITH_ALICE_VISION=ON -DWITH_OPENGV=ON .. && \
32 | make -j$(nproc) && \
33 | make install && \
34 | cd ../.. && \
35 | rm -rf rtabmap && \
36 | ldconfig
37 |
38 |
--------------------------------------------------------------------------------
/docker/focal-foxy/deps/ros_entrypoint.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 | set -e
3 |
4 | # setup ros2 environment
5 | source "/opt/ros/foxy/setup.bash" --
6 | exec "$@"
7 |
--------------------------------------------------------------------------------
/docker/focal/Dockerfile:
--------------------------------------------------------------------------------
1 | # Image: introlab3it/rtabmap:focal
2 |
3 | FROM introlab3it/rtabmap:focal-deps
4 |
5 | # June 19 2023: moved opengv here so that focal-deps can be built on my computer. Not sure why but on my machine opengv arm64 fails, but not on CI.
6 | #commit Aug 6 2020
7 | RUN apt-get update && apt install wget && apt-get clean && rm -rf /var/lib/apt/lists/
8 | RUN git clone https://github.com/laurentkneip/opengv.git && \
9 | cd opengv && \
10 | git checkout 91f4b19c73450833a40e463ad3648aae80b3a7f3 && \
11 | wget https://gist.githubusercontent.com/matlabbe/a412cf7c4627253874f81a00745a7fbb/raw/accc3acf465d1ffd0304a46b17741f62d4d354ef/opengv_disable_march_native.patch && \
12 | git apply opengv_disable_march_native.patch && \
13 | mkdir build && \
14 | cd build && \
15 | cmake -DCMAKE_BUILD_TYPE=Release .. && \
16 | make -j4 && \
17 | make install && \
18 | cd && \
19 | rm -r opengv
20 |
21 | # Will be used to read/store databases on host
22 | RUN mkdir -p /root/Documents/RTAB-Map && chmod 777 /root/Documents/RTAB-Map
23 |
24 | # Copy current source code
25 | COPY . /root/rtabmap
26 |
27 | # Build RTAB-Map project
28 | RUN source /ros_entrypoint.sh && \
29 | cd rtabmap/build && \
30 | cmake -DWITH_ALICE_VISION=ON -DWITH_OPENGV=ON .. && \
31 | make -j4 && \
32 | make install && \
33 | cd ../.. && \
34 | rm -rf rtabmap && \
35 | ldconfig
36 |
--------------------------------------------------------------------------------
/docker/jammy-iron/Dockerfile:
--------------------------------------------------------------------------------
1 | # Image: introlab3it/rtabmap:jammy-iron
2 |
3 | FROM introlab3it/rtabmap:jammy-iron-deps
4 |
5 | # June 19 2023: moved opengv here so that jammy-deps can be built on my computer. Not sure why but on my machine opengv arm64 fails, but not on CI.
6 | #commit Aug 6 2020
7 | RUN apt-get update && apt install -y wget && \
8 | apt-get clean && rm -rf /var/lib/apt/lists/
9 | RUN git clone https://github.com/laurentkneip/opengv.git && \
10 | cd opengv && \
11 | git checkout 91f4b19c73450833a40e463ad3648aae80b3a7f3 && \
12 | wget https://gist.githubusercontent.com/matlabbe/a412cf7c4627253874f81a00745a7fbb/raw/accc3acf465d1ffd0304a46b17741f62d4d354ef/opengv_disable_march_native.patch && \
13 | git apply opengv_disable_march_native.patch && \
14 | mkdir build && \
15 | cd build && \
16 | cmake -DCMAKE_BUILD_TYPE=Release .. && \
17 | make -j$(nproc) && \
18 | make install && \
19 | cd && \
20 | rm -r opengv
21 |
22 | # Will be used to read/store databases on host
23 | RUN mkdir -p /root/Documents/RTAB-Map && chmod 777 /root/Documents/RTAB-Map
24 |
25 | # Copy current source code
26 | COPY . /root/rtabmap
27 |
28 | # Build RTAB-Map project
29 | RUN source /ros_entrypoint.sh && \
30 | cd rtabmap/build && \
31 | cmake -DWITH_OPENGV=ON .. && \
32 | make -j$(nproc) && \
33 | make install && \
34 | cd ../.. && \
35 | rm -rf rtabmap && \
36 | ldconfig
37 |
38 |
--------------------------------------------------------------------------------
/docker/jammy-iron/deps/ros_entrypoint.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 | set -e
3 |
4 | # setup ros2 environment
5 | source "/opt/ros/iron/setup.bash" --
6 | exec "$@"
7 |
--------------------------------------------------------------------------------
/docker/jammy/Dockerfile:
--------------------------------------------------------------------------------
1 | # Image: introlab3it/rtabmap:jammy
2 |
3 | FROM introlab3it/rtabmap:jammy-deps
4 |
5 | # Will be used to read/store databases on host
6 | RUN mkdir -p /root/Documents/RTAB-Map && chmod 777 /root/Documents/RTAB-Map
7 |
8 | # Copy current source code
9 | COPY . /root/rtabmap
10 |
11 | # Build RTAB-Map project
12 | RUN source /ros_entrypoint.sh && \
13 | cd rtabmap/build && \
14 | cmake -DWITH_OPENGV=ON .. && \
15 | make -j4 && \
16 | make install && \
17 | cd ../.. && \
18 | rm -rf rtabmap && \
19 | ldconfig
20 |
21 |
--------------------------------------------------------------------------------
/docker/jfr2018/rtabmap_msckf_ubuntu_16_compatibility.patch:
--------------------------------------------------------------------------------
1 | diff --git a/CMakeLists.txt b/CMakeLists.txt
2 | index c14cb659..2c370200 100644
3 | --- a/CMakeLists.txt
4 | +++ b/CMakeLists.txt
5 | @@ -830,6 +830,8 @@ IF(NOT MSVC)
6 | ENDIF()
7 | ENDIF()
8 |
9 | +set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fext-numeric-literals")
10 | +
11 |
12 | ####### OSX BUNDLE CMAKE_INSTALL_PREFIX #######
13 | IF(APPLE AND BUILD_AS_BUNDLE)
14 |
--------------------------------------------------------------------------------
/docker/jfr2018/rtabmap_opencv310_backward_compatibility.patch:
--------------------------------------------------------------------------------
1 | diff --git a/CMakeLists.txt b/CMakeLists.txt
2 | index 9f2bfd83..65b03eef 100644
3 | --- a/CMakeLists.txt
4 | +++ b/CMakeLists.txt
5 | @@ -228,7 +228,7 @@ ENDIF()
6 | set(RTABMAP_QT_VERSION AUTO CACHE STRING "Force a specific Qt version.")
7 | set_property(CACHE RTABMAP_QT_VERSION PROPERTY STRINGS AUTO 4 5 6)
8 |
9 | -FIND_PACKAGE(OpenCV REQUIRED QUIET COMPONENTS core calib3d imgproc highgui stitching photo video videoio OPTIONAL_COMPONENTS aruco xfeatures2d nonfree gpu cudafeatures2d)
10 | +FIND_PACKAGE(OpenCV QUIET COMPONENTS core calib3d imgproc highgui stitching photo video videoio OPTIONAL_COMPONENTS aruco xfeatures2d nonfree gpu cudafeatures2d)
11 |
12 | IF(WITH_QT)
13 | FIND_PACKAGE(PCL 1.7 REQUIRED QUIET COMPONENTS common io kdtree search surface filters registration sample_consensus segmentation visualization)
14 |
--------------------------------------------------------------------------------
/docker/jfr2018/run_all.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | # docker pull introlab3it/rtabmap:jfr2018
4 |
5 | mkdir -p results/kitti
6 | ./run_kitti_datasets.sh f2m 0 0
7 | ./run_kitti_datasets.sh f2f 11 0
8 | ./run_kitti_datasets.sh s2m 0 1
9 | ./run_kitti_datasets.sh s2s 1 1
10 | ./run_kitti_datasets.sh fovis 2 0
11 | ./run_kitti_datasets.sh viso2 3 0
12 | ./run_kitti_datasets.sh os2 5 0
13 | ./run_kitti_datasets.sh loam 7 1
14 |
15 | mkdir -p results/tum
16 | ./run_tum_datasets.sh f2m 0
17 | ./run_tum_datasets.sh f2f 11
18 | ./run_tum_datasets.sh fovis 2
19 | ./run_tum_datasets.sh dvo 4
20 | ./run_tum_datasets.sh os2 5
21 |
22 | mkdir -p results/euroc
23 | ./run_euroc_datasets.sh f2m 0 0
24 | ./run_euroc_datasets.sh f2f 11 0
25 | ./run_euroc_datasets.sh os2 5 0
26 | ./run_euroc_datasets.sh msckf 88 0
27 | ./run_euroc_datasets.sh fovis 2 0
28 | ./run_euroc_datasets.sh viso2 3 0
29 | ./run_euroc_datasets.sh okvis 66 0
30 |
31 |
32 |
33 |
34 |
--------------------------------------------------------------------------------
/docker/noble-kilted/Dockerfile:
--------------------------------------------------------------------------------
1 | # Image: introlab3it/rtabmap:noble-kilted
2 |
3 | FROM introlab3it/rtabmap:noble-kilted-deps
4 |
5 | # OpenGV (issue seg fault on my computer, moved here from noble-deps to be built on ci)
6 | RUN git clone https://github.com/laurentkneip/opengv.git && \
7 | cd opengv && \
8 | git checkout 91f4b19c73450833a40e463ad3648aae80b3a7f3 && \
9 | wget https://gist.githubusercontent.com/matlabbe/a412cf7c4627253874f81a00745a7fbb/raw/accc3acf465d1ffd0304a46b17741f62d4d354ef/opengv_disable_march_native.patch && \
10 | git apply opengv_disable_march_native.patch && \
11 | mkdir build && \
12 | cd build && \
13 | cmake -DCMAKE_BUILD_TYPE=Release -DBUILD_TESTS=OFF .. && \
14 | make -j4 && \
15 | make install && \
16 | cd && \
17 | rm -r opengv
18 |
19 | # Will be used to read/store databases on host
20 | RUN mkdir -p /root/Documents/RTAB-Map && chmod 777 /root/Documents/RTAB-Map
21 |
22 | # Copy current source code
23 | COPY . /root/rtabmap
24 |
25 | # Build RTAB-Map project
26 | RUN source /ros_entrypoint.sh && \
27 | cd rtabmap/build && \
28 | cmake -DWITH_OPENGV=ON .. && \
29 | make -j4 && \
30 | make install && \
31 | cd ../.. && \
32 | rm -rf rtabmap && \
33 | ldconfig
34 |
35 |
--------------------------------------------------------------------------------
/docker/noble/Dockerfile:
--------------------------------------------------------------------------------
1 | # Image: introlab3it/rtabmap:noble
2 |
3 | FROM introlab3it/rtabmap:noble-deps
4 |
5 | # OpenGV (issue seg fault on my computer, moved here from noble-deps to be built on ci)
6 | RUN git clone https://github.com/laurentkneip/opengv.git && \
7 | cd opengv && \
8 | git checkout 91f4b19c73450833a40e463ad3648aae80b3a7f3 && \
9 | wget https://gist.githubusercontent.com/matlabbe/a412cf7c4627253874f81a00745a7fbb/raw/accc3acf465d1ffd0304a46b17741f62d4d354ef/opengv_disable_march_native.patch && \
10 | git apply opengv_disable_march_native.patch && \
11 | mkdir build && \
12 | cd build && \
13 | cmake -DCMAKE_BUILD_TYPE=Release -DBUILD_TESTS=OFF .. && \
14 | make -j4 && \
15 | make install && \
16 | cd && \
17 | rm -r opengv
18 |
19 | # Will be used to read/store databases on host
20 | RUN mkdir -p /root/Documents/RTAB-Map && chmod 777 /root/Documents/RTAB-Map
21 |
22 | # Copy current source code
23 | COPY . /root/rtabmap
24 |
25 | # Build RTAB-Map project
26 | RUN source /ros_entrypoint.sh && \
27 | cd rtabmap/build && \
28 | cmake -DWITH_OPENGV=ON .. && \
29 | make -j4 && \
30 | make install && \
31 | cd ../.. && \
32 | rm -rf rtabmap && \
33 | ldconfig
34 |
35 |
--------------------------------------------------------------------------------
/docker/trusty/Dockerfile:
--------------------------------------------------------------------------------
1 | # Image: introlab3it/rtabmap:trusty
2 |
3 | FROM ros:indigo-perception
4 |
5 | # Install/build dependencies
6 | RUN apt-get update && \
7 | apt-get install -y ros-indigo-rtabmap-ros && \
8 | apt-get remove -y ros-indigo-rtabmap && \
9 | rm -rf /var/lib/apt/lists/
10 |
11 | WORKDIR /root/
12 |
13 | # Copy current source code
14 | COPY . /root/rtabmap
15 |
16 | RUN rm /bin/sh && ln -s /bin/bash /bin/sh
17 |
18 | # Build RTAB-Map project
19 | RUN source /ros_entrypoint.sh && \
20 | cd rtabmap/build && \
21 | cmake .. && \
22 | make && \
23 | make install && \
24 | cd ../.. && \
25 | rm -rf rtabmap && \
26 | ldconfig
27 |
28 |
--------------------------------------------------------------------------------
/docker/xenial/android/Dockerfile:
--------------------------------------------------------------------------------
1 | # Image: introlab3it/rtabmap:android-deps-api19
2 |
3 | FROM ubuntu:16.04
4 |
5 | # Install build dependencies
6 | RUN apt-get update && apt-get install -y \
7 | git \
8 | cmake \
9 | g++ \
10 | software-properties-common \
11 | freeglut3-dev
12 |
13 | ENV ANDROID_HOME=/opt/android-sdk
14 | ENV ANDROID_NATIVE_API_LEVEL=android-19
15 | ENV ANDROID_NDK=/opt/android-ndk-r14
16 | ENV PATH=$PATH:/opt/android-sdk/tools:/opt/android-sdk/platform-tools:/opt/android-ndk-r14
17 |
18 | WORKDIR /root/
19 |
20 | ADD setup_android_env.bash /root/setup_android_env.bash
21 | RUN chmod +x setup_android_env.bash
22 | RUN /bin/bash -c "./setup_android_env.bash"
23 |
24 | ADD install_deps.bash /root/install_deps.bash
25 | RUN chmod +x install_deps.bash
26 | RUN /bin/bash -c "./install_deps.bash /opt/android"
27 |
--------------------------------------------------------------------------------
/docker/xenial/android/setup_android_env.bash:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | # Setup java 1.8
4 | apt-get update
5 | apt-get install -y --no-install-recommends apt-utils
6 | apt-get install -y unzip wget ant
7 | apt-get install -y default-jre default-jdk
8 | apt-get install -y lib32stdc++6 lib32z1
9 |
10 | # Setup android sdk
11 | echo "wget android-sdk..."
12 | wget -nv https://dl.google.com/android/repository/tools_r25.2.3-linux.zip
13 | unzip -qq tools_r25.2.3-linux.zip
14 | rm tools_r25.2.3-linux.zip
15 | mkdir $ANDROID_HOME
16 | mv tools $ANDROID_HOME/.
17 | #android list sdk --all --extended
18 | echo y | android update sdk --no-ui --all --filter platform-tools,android-19,build-tools-19.1.0,android-21,build-tools-21.1.0
19 |
20 | # Setup android ndk
21 | echo "wget android-ndk..."
22 | wget -nv https://dl.google.com/android/repository/android-ndk-r14-linux-x86_64.zip
23 | unzip -qq android-ndk-r14-linux-x86_64.zip
24 | rm android-ndk-r14-linux-x86_64.zip
25 | mv android-ndk-r14 $ANDROID_NDK
26 |
--------------------------------------------------------------------------------
/docker/xenial/android/tango/Dockerfile:
--------------------------------------------------------------------------------
1 | # Image: introlab3it/rtabmap:tango-api19
2 |
3 | FROM introlab3it/rtabmap:android-deps-api19
4 |
5 | WORKDIR /root/
6 |
7 | ADD build.bash /root/build.bash
8 | RUN chmod +x build.bash
9 | RUN /bin/bash -c "./build.bash /opt/android"
10 |
11 | WORKDIR /root/
12 |
--------------------------------------------------------------------------------
/docker/xenial/android/tango/tango-dev/Dockerfile:
--------------------------------------------------------------------------------
1 | # Image: introlab3it/rtabmap:tango-dev
2 |
3 | FROM introlab3it/rtabmap:tango
4 |
5 | WORKDIR /root/
6 |
7 | RUN apt-get update && apt-get install -y \
8 | vim \
9 | eclipse \
10 | eclipse-cdt \
11 | eclipse-cdt-jni
12 |
13 | RUN cp ~/rtabmap-tango/build/arm64-v8a/app/android/project.properties ~/rtabmap-tango/app/android/.
14 |
15 | # Manual steps:
16 | # - Install ADT plugin from Eclipse: https://stuff.mit.edu/afs/sipb/project/android/docs/sdk/installing/installing-adt.html
17 | # - Import rtabmap project, set build command: "make -C ${ProjDirPath}/build/arm64-v8a VERBOSE=true"
18 | # - Create Android project from source code and select rtabmap-tango/app/android directory.
--------------------------------------------------------------------------------
/docker/xenial/hooks/build:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 | docker build --build-arg CACHE_DATE="$(date)" --cache-from $IMAGE_NAME -f $DOCKERFILE_PATH -t $IMAGE_NAME -t $DOCKER_REPO:16.04 -t $DOCKER_REPO:latest .
3 |
--------------------------------------------------------------------------------
/docker/xenial/hooks/post_push:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 | docker push $DOCKER_REPO:16.04
3 | docker push $DOCKER_REPO:latest
4 |
--------------------------------------------------------------------------------
/examples/BOWMapping/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | cmake_minimum_required(VERSION 3.14)
2 |
3 | if(POLICY CMP0020)
4 | cmake_policy(SET CMP0020 NEW)
5 | endif()
6 |
7 | IF(DEFINED PROJECT_NAME)
8 | set(internal TRUE)
9 | ENDIF(DEFINED PROJECT_NAME)
10 |
11 | if(NOT internal)
12 | # external build
13 | PROJECT( MyProject )
14 |
15 | FIND_PACKAGE(RTABMap REQUIRED)
16 | endif()
17 |
18 | ADD_EXECUTABLE(bow_mapping main.cpp)
19 | TARGET_LINK_LIBRARIES(bow_mapping rtabmap::rtabmap)
20 |
21 | if(internal)
22 | SET_TARGET_PROPERTIES( bow_mapping
23 | PROPERTIES OUTPUT_NAME ${PROJECT_PREFIX}-bow_mapping)
24 | endif(internal)
25 |
--------------------------------------------------------------------------------
/examples/CMakeLists.txt:
--------------------------------------------------------------------------------
1 |
2 | ADD_SUBDIRECTORY( BOWMapping )
3 |
4 | IF(TARGET rtabmap_gui)
5 | ADD_SUBDIRECTORY( RGBDMapping )
6 | ADD_SUBDIRECTORY( WifiMapping )
7 | ADD_SUBDIRECTORY( NoEventsExample )
8 | IF(PCL_VERSION VERSION_GREATER_EQUAL "1.8")
9 | ADD_SUBDIRECTORY( LidarMapping )
10 | ENDIF()
11 | ELSE()
12 | MESSAGE(STATUS "RTAB-Map GUI lib is not built, the RGBDMapping and WifiMapping examples will not be built...")
13 | ENDIF()
14 |
15 |
16 |
--------------------------------------------------------------------------------
/examples/LidarMapping/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | cmake_minimum_required(VERSION 3.14)
2 |
3 | IF(DEFINED PROJECT_NAME)
4 | set(internal TRUE)
5 | ENDIF(DEFINED PROJECT_NAME)
6 |
7 | if(NOT internal)
8 | # external build
9 | PROJECT( MyProject )
10 |
11 | FIND_PACKAGE(RTABMap REQUIRED COMPONENTS gui)
12 |
13 | endif()
14 |
15 | IF(QT4_FOUND OR Qt5_FOUND OR Qt6_FOUND)
16 | SET(moc_srcs MapBuilder.h)
17 | ENDIF()
18 |
19 | ADD_EXECUTABLE(lidar_mapping main.cpp ${moc_srcs})
20 |
21 | TARGET_LINK_LIBRARIES(lidar_mapping rtabmap::gui)
22 |
23 | SET_TARGET_PROPERTIES(
24 | lidar_mapping
25 | PROPERTIES
26 | AUTOUIC ON
27 | AUTOMOC ON
28 | AUTORCC ON
29 | )
30 |
31 | if(internal)
32 | SET_TARGET_PROPERTIES( lidar_mapping
33 | PROPERTIES OUTPUT_NAME ${PROJECT_PREFIX}-lidar_mapping)
34 | endif(internal)
35 |
--------------------------------------------------------------------------------
/examples/NoEventsExample/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | cmake_minimum_required(VERSION 3.14)
2 |
3 | if(POLICY CMP0020)
4 | cmake_policy(SET CMP0020 NEW)
5 | endif()
6 |
7 | IF(DEFINED PROJECT_NAME)
8 | set(internal TRUE)
9 | ENDIF(DEFINED PROJECT_NAME)
10 |
11 | if(NOT internal)
12 | # external build
13 | PROJECT( MyProject )
14 |
15 | FIND_PACKAGE(RTABMap REQUIRED COMPONENTS gui)
16 | endif()
17 |
18 | IF(QT4_FOUND OR Qt5_FOUND OR Qt6_FOUND)
19 | SET(moc_srcs MapBuilder.h)
20 | ENDIF()
21 |
22 | ADD_EXECUTABLE(noEventsExample main.cpp ${moc_srcs})
23 |
24 | TARGET_LINK_LIBRARIES(noEventsExample rtabmap::gui)
25 |
26 | SET_TARGET_PROPERTIES(
27 | noEventsExample
28 | PROPERTIES
29 | AUTOUIC ON
30 | AUTOMOC ON
31 | AUTORCC ON
32 | )
33 |
34 | if(internal)
35 | SET_TARGET_PROPERTIES( noEventsExample
36 | PROPERTIES OUTPUT_NAME ${PROJECT_PREFIX}-noEventsExample)
37 | endif(internal)
38 |
39 |
40 |
41 |
42 |
--------------------------------------------------------------------------------
/examples/RGBDMapping/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | cmake_minimum_required(VERSION 3.14)
2 |
3 | if(POLICY CMP0020)
4 | cmake_policy(SET CMP0020 NEW)
5 | endif()
6 |
7 | IF(DEFINED PROJECT_NAME)
8 | set(internal TRUE)
9 | ENDIF(DEFINED PROJECT_NAME)
10 |
11 | if(NOT internal)
12 | # external build
13 | PROJECT( MyProject )
14 |
15 | FIND_PACKAGE(RTABMap REQUIRED COMPONENTS gui)
16 | endif()
17 |
18 | IF(QT4_FOUND OR Qt5_FOUND OR Qt6_FOUND)
19 | SET(moc_srcs MapBuilder.h)
20 | ENDIF()
21 |
22 | ADD_EXECUTABLE(rgbd_mapping main.cpp ${moc_srcs})
23 |
24 | TARGET_LINK_LIBRARIES(rgbd_mapping rtabmap::gui)
25 |
26 | SET_TARGET_PROPERTIES(
27 | rgbd_mapping
28 | PROPERTIES
29 | AUTOUIC ON
30 | AUTOMOC ON
31 | AUTORCC ON
32 | )
33 |
34 | if(internal)
35 | SET_TARGET_PROPERTIES( rgbd_mapping
36 | PROPERTIES OUTPUT_NAME ${PROJECT_PREFIX}-rgbd_mapping)
37 | endif(internal)
38 |
--------------------------------------------------------------------------------
/examples/WifiMapping/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | cmake_minimum_required(VERSION 3.14)
2 |
3 | if(POLICY CMP0020)
4 | cmake_policy(SET CMP0020 NEW)
5 | endif()
6 |
7 | IF(DEFINED PROJECT_NAME)
8 | set(internal TRUE)
9 | ENDIF(DEFINED PROJECT_NAME)
10 |
11 | if(NOT internal)
12 | # external build
13 | PROJECT( MyProject )
14 |
15 | FIND_PACKAGE(RTABMap REQUIRED)
16 | endif()
17 |
18 | IF(QT4_FOUND OR Qt5_FOUND OR Qt6_FOUND)
19 | SET(moc_srcs MapBuilder.h MapBuilderWifi.h)
20 | ENDIF()
21 |
22 | SET(srcs
23 | main.cpp)
24 |
25 | set(LIBRARIES "")
26 |
27 | IF(APPLE)
28 | FIND_LIBRARY(CoreWLAN_LIBRARY CoreWLAN)
29 | FIND_LIBRARY(Foundation_LIBRARY Foundation)
30 | MARK_AS_ADVANCED(CoreWLAN_LIBRARY Foundation_LIBRARY)
31 | SET(LIBRARIES
32 | ${LIBRARIES}
33 | ${CoreWLAN_LIBRARY}
34 | ${Foundation_LIBRARY}
35 | )
36 | SET(srcs
37 | ${srcs}
38 | WifiOSX.mm
39 | )
40 | ENDIF(APPLE)
41 |
42 | ADD_EXECUTABLE(wifi_mapping ${srcs} ${moc_srcs})
43 | TARGET_LINK_LIBRARIES(wifi_mapping rtabmap::gui ${LIBRARIES})
44 |
45 | SET_TARGET_PROPERTIES(
46 | wifi_mapping
47 | PROPERTIES
48 | AUTOUIC ON
49 | AUTOMOC ON
50 | AUTORCC ON
51 | )
52 |
53 | if(internal)
54 | SET_TARGET_PROPERTIES( wifi_mapping
55 | PROPERTIES OUTPUT_NAME ${PROJECT_PREFIX}-wifi_mapping)
56 | endif(internal)
57 |
--------------------------------------------------------------------------------
/examples/WifiMapping/WifiOSX.mm:
--------------------------------------------------------------------------------
1 | #import
2 | #include "WifiOSX.h"
3 |
4 | int getRssi(const std::string& interfaceName)
5 | {
6 | NSString* ifName = [NSString stringWithUTF8String:interfaceName.c_str()];
7 | CWInterface* interface = [CWInterface interfaceWithName:ifName];
8 | return interface.rssiValue;
9 | }
10 |
11 | std::vector scanAir(const std::string& interfaceName)
12 | {
13 | NSString* ifName = [NSString stringWithUTF8String:interfaceName.c_str()];
14 | CWInterface* interface = [CWInterface interfaceWithName:ifName];
15 |
16 | NSError* error = nil;
17 | NSArray* scanResult = [[interface scanForNetworksWithSSID:nil error:&error] allObjects];
18 | if (error)
19 | {
20 | NSLog(@"%@ (%ld)", [error localizedDescription], [error code]);
21 | }
22 |
23 | std::vector result;
24 | for (CWNetwork* network in scanResult)
25 | {
26 | AccessPoint ap;
27 | ap.ssid = std::string([[network ssid] UTF8String]);
28 | ap.bssid = std::string([[network bssid] UTF8String]);
29 | ap.rssi = [network rssiValue];
30 | result.push_back(ap);
31 | }
32 |
33 | return result;
34 | }
--------------------------------------------------------------------------------
/examples/WifiMapping/screenshot.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/introlab/rtabmap/e19b0c3dc4571a75f60823f6efb622769f764f31/examples/WifiMapping/screenshot.jpg
--------------------------------------------------------------------------------
/guilib/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | ADD_SUBDIRECTORY( src )
--------------------------------------------------------------------------------
/guilib/include/rtabmap/gui/CloudViewerCellPicker.h:
--------------------------------------------------------------------------------
1 | /*
2 | * CloudViewerCellPicker.h
3 | *
4 | * Created on: Aug 21, 2018
5 | * Author: mathieu
6 | */
7 |
8 | #ifndef GUILIB_SRC_CLOUDVIEWERCELLPICKER_H_
9 | #define GUILIB_SRC_CLOUDVIEWERCELLPICKER_H_
10 |
11 | #include "rtabmap/gui/rtabmap_gui_export.h" // DLL export/import defines
12 |
13 | #include
14 |
15 | namespace rtabmap {
16 |
17 | class RTABMAP_GUI_EXPORT CloudViewerCellPicker : public vtkCellPicker {
18 | public:
19 | public:
20 | static CloudViewerCellPicker *New ();
21 | vtkTypeMacro(CloudViewerCellPicker, vtkCellPicker);
22 | CloudViewerCellPicker();
23 | virtual ~CloudViewerCellPicker();
24 |
25 | protected:
26 | // overrided to ignore back faces
27 | virtual double IntersectActorWithLine(const double p1[3],
28 | const double p2[3],
29 | double t1, double t2,
30 | double tol,
31 | vtkProp3D *prop,
32 | vtkMapper *mapper);
33 |
34 | private:
35 | vtkGenericCell * cell_; //used to accelerate picking
36 | vtkIdList * pointIds_; // used to accelerate picking
37 | };
38 |
39 | } /* namespace rtabmap */
40 |
41 | #endif /* GUILIB_SRC_CLOUDVIEWERCELLPICKER_H_ */
42 |
--------------------------------------------------------------------------------
/guilib/src/images/IntRoLab.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/introlab/rtabmap/e19b0c3dc4571a75f60823f6efb622769f764f31/guilib/src/images/IntRoLab.png
--------------------------------------------------------------------------------
/guilib/src/images/IntRoLabSmall.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/introlab/rtabmap/e19b0c3dc4571a75f60823f6efb622769f764f31/guilib/src/images/IntRoLabSmall.png
--------------------------------------------------------------------------------
/guilib/src/images/Pause.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/introlab/rtabmap/e19b0c3dc4571a75f60823f6efb622769f764f31/guilib/src/images/Pause.ico
--------------------------------------------------------------------------------
/guilib/src/images/PauseLoopRejected.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/introlab/rtabmap/e19b0c3dc4571a75f60823f6efb622769f764f31/guilib/src/images/PauseLoopRejected.ico
--------------------------------------------------------------------------------
/guilib/src/images/PauseNormal.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/introlab/rtabmap/e19b0c3dc4571a75f60823f6efb622769f764f31/guilib/src/images/PauseNormal.png
--------------------------------------------------------------------------------
/guilib/src/images/PauseNormalRed.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/introlab/rtabmap/e19b0c3dc4571a75f60823f6efb622769f764f31/guilib/src/images/PauseNormalRed.png
--------------------------------------------------------------------------------
/guilib/src/images/PauseOnLocalLoop.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/introlab/rtabmap/e19b0c3dc4571a75f60823f6efb622769f764f31/guilib/src/images/PauseOnLocalLoop.ico
--------------------------------------------------------------------------------
/guilib/src/images/PauseOnLoop.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/introlab/rtabmap/e19b0c3dc4571a75f60823f6efb622769f764f31/guilib/src/images/PauseOnLoop.ico
--------------------------------------------------------------------------------
/guilib/src/images/Play1Normal.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/introlab/rtabmap/e19b0c3dc4571a75f60823f6efb622769f764f31/guilib/src/images/Play1Normal.png
--------------------------------------------------------------------------------
/guilib/src/images/Plot.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/introlab/rtabmap/e19b0c3dc4571a75f60823f6efb622769f764f31/guilib/src/images/Plot.ico
--------------------------------------------------------------------------------
/guilib/src/images/Plot16.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/introlab/rtabmap/e19b0c3dc4571a75f60823f6efb622769f764f31/guilib/src/images/Plot16.png
--------------------------------------------------------------------------------
/guilib/src/images/Plot48.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/introlab/rtabmap/e19b0c3dc4571a75f60823f6efb622769f764f31/guilib/src/images/Plot48.png
--------------------------------------------------------------------------------
/guilib/src/images/RTAB-Map.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/introlab/rtabmap/e19b0c3dc4571a75f60823f6efb622769f764f31/guilib/src/images/RTAB-Map.ico
--------------------------------------------------------------------------------
/guilib/src/images/RTAB-Map.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/introlab/rtabmap/e19b0c3dc4571a75f60823f6efb622769f764f31/guilib/src/images/RTAB-Map.png
--------------------------------------------------------------------------------
/guilib/src/images/RTAB-Map100.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/introlab/rtabmap/e19b0c3dc4571a75f60823f6efb622769f764f31/guilib/src/images/RTAB-Map100.png
--------------------------------------------------------------------------------
/guilib/src/images/RTAB-Map2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/introlab/rtabmap/e19b0c3dc4571a75f60823f6efb622769f764f31/guilib/src/images/RTAB-Map2.png
--------------------------------------------------------------------------------
/guilib/src/images/Stop1Normal.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/introlab/rtabmap/e19b0c3dc4571a75f60823f6efb622769f764f31/guilib/src/images/Stop1Normal.png
--------------------------------------------------------------------------------
/guilib/src/images/Stop1NormalYellow.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/introlab/rtabmap/e19b0c3dc4571a75f60823f6efb622769f764f31/guilib/src/images/Stop1NormalYellow.png
--------------------------------------------------------------------------------
/guilib/src/images/astra.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/introlab/rtabmap/e19b0c3dc4571a75f60823f6efb622769f764f31/guilib/src/images/astra.png
--------------------------------------------------------------------------------
/guilib/src/images/bumblebee2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/introlab/rtabmap/e19b0c3dc4571a75f60823f6efb622769f764f31/guilib/src/images/bumblebee2.png
--------------------------------------------------------------------------------
/guilib/src/images/crosshatch_metal_grille_9280154_150.JPG:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/introlab/rtabmap/e19b0c3dc4571a75f60823f6efb622769f764f31/guilib/src/images/crosshatch_metal_grille_9280154_150.JPG
--------------------------------------------------------------------------------
/guilib/src/images/d415.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/introlab/rtabmap/e19b0c3dc4571a75f60823f6efb622769f764f31/guilib/src/images/d415.png
--------------------------------------------------------------------------------
/guilib/src/images/d435.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/introlab/rtabmap/e19b0c3dc4571a75f60823f6efb622769f764f31/guilib/src/images/d435.png
--------------------------------------------------------------------------------
/guilib/src/images/document-new.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/introlab/rtabmap/e19b0c3dc4571a75f60823f6efb622769f764f31/guilib/src/images/document-new.png
--------------------------------------------------------------------------------
/guilib/src/images/document-open.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/introlab/rtabmap/e19b0c3dc4571a75f60823f6efb622769f764f31/guilib/src/images/document-open.png
--------------------------------------------------------------------------------
/guilib/src/images/document-properties.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/introlab/rtabmap/e19b0c3dc4571a75f60823f6efb622769f764f31/guilib/src/images/document-properties.png
--------------------------------------------------------------------------------
/guilib/src/images/document-save.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/introlab/rtabmap/e19b0c3dc4571a75f60823f6efb622769f764f31/guilib/src/images/document-save.png
--------------------------------------------------------------------------------
/guilib/src/images/k4a.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/introlab/rtabmap/e19b0c3dc4571a75f60823f6efb622769f764f31/guilib/src/images/k4a.png
--------------------------------------------------------------------------------
/guilib/src/images/kinect_xbox_360.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/introlab/rtabmap/e19b0c3dc4571a75f60823f6efb622769f764f31/guilib/src/images/kinect_xbox_360.png
--------------------------------------------------------------------------------
/guilib/src/images/kinect_xbox_one.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/introlab/rtabmap/e19b0c3dc4571a75f60823f6efb622769f764f31/guilib/src/images/kinect_xbox_one.png
--------------------------------------------------------------------------------
/guilib/src/images/l515.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/introlab/rtabmap/e19b0c3dc4571a75f60823f6efb622769f764f31/guilib/src/images/l515.png
--------------------------------------------------------------------------------
/guilib/src/images/mag_glass.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/introlab/rtabmap/e19b0c3dc4571a75f60823f6efb622769f764f31/guilib/src/images/mag_glass.png
--------------------------------------------------------------------------------
/guilib/src/images/metal_7280826_512.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/introlab/rtabmap/e19b0c3dc4571a75f60823f6efb622769f764f31/guilib/src/images/metal_7280826_512.jpg
--------------------------------------------------------------------------------
/guilib/src/images/mynteyes.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/introlab/rtabmap/e19b0c3dc4571a75f60823f6efb622769f764f31/guilib/src/images/mynteyes.png
--------------------------------------------------------------------------------
/guilib/src/images/oakd.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/introlab/rtabmap/e19b0c3dc4571a75f60823f6efb622769f764f31/guilib/src/images/oakd.png
--------------------------------------------------------------------------------
/guilib/src/images/oakd_lite.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/introlab/rtabmap/e19b0c3dc4571a75f60823f6efb622769f764f31/guilib/src/images/oakd_lite.png
--------------------------------------------------------------------------------
/guilib/src/images/oakdpro.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/introlab/rtabmap/e19b0c3dc4571a75f60823f6efb622769f764f31/guilib/src/images/oakdpro.png
--------------------------------------------------------------------------------
/guilib/src/images/r200.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/introlab/rtabmap/e19b0c3dc4571a75f60823f6efb622769f764f31/guilib/src/images/r200.png
--------------------------------------------------------------------------------
/guilib/src/images/seer_sense_DS80.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/introlab/rtabmap/e19b0c3dc4571a75f60823f6efb622769f764f31/guilib/src/images/seer_sense_DS80.png
--------------------------------------------------------------------------------
/guilib/src/images/sense.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/introlab/rtabmap/e19b0c3dc4571a75f60823f6efb622769f764f31/guilib/src/images/sense.png
--------------------------------------------------------------------------------
/guilib/src/images/sr300.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/introlab/rtabmap/e19b0c3dc4571a75f60823f6efb622769f764f31/guilib/src/images/sr300.png
--------------------------------------------------------------------------------
/guilib/src/images/system-log-out.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/introlab/rtabmap/e19b0c3dc4571a75f60823f6efb622769f764f31/guilib/src/images/system-log-out.png
--------------------------------------------------------------------------------
/guilib/src/images/t265.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/introlab/rtabmap/e19b0c3dc4571a75f60823f6efb622769f764f31/guilib/src/images/t265.png
--------------------------------------------------------------------------------
/guilib/src/images/tara.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/introlab/rtabmap/e19b0c3dc4571a75f60823f6efb622769f764f31/guilib/src/images/tara.png
--------------------------------------------------------------------------------
/guilib/src/images/view-refresh.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/introlab/rtabmap/e19b0c3dc4571a75f60823f6efb622769f764f31/guilib/src/images/view-refresh.png
--------------------------------------------------------------------------------
/guilib/src/images/webcam.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/introlab/rtabmap/e19b0c3dc4571a75f60823f6efb622769f764f31/guilib/src/images/webcam.png
--------------------------------------------------------------------------------
/guilib/src/images/xtion_pro_live.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/introlab/rtabmap/e19b0c3dc4571a75f60823f6efb622769f764f31/guilib/src/images/xtion_pro_live.png
--------------------------------------------------------------------------------
/guilib/src/images/zed.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/introlab/rtabmap/e19b0c3dc4571a75f60823f6efb622769f764f31/guilib/src/images/zed.png
--------------------------------------------------------------------------------
/guilib/src/images/zr300.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/introlab/rtabmap/e19b0c3dc4571a75f60823f6efb622769f764f31/guilib/src/images/zr300.png
--------------------------------------------------------------------------------
/guilib/src/qss/default.qss:
--------------------------------------------------------------------------------
1 |
2 | /*QGroupBox {
3 | background-color: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1,
4 | stop: 0 #E0E0E0, stop: 1 #FFFFFF);
5 | border: 2px solid gray;
6 | border-radius: 5px;
7 | margin-top: 1ex; /* leave space at the top for the title */
8 | }
9 |
10 | QGroupBox::title {
11 | subcontrol-origin: margin;
12 | subcontrol-position: top center;
13 | padding: 0 3px;
14 | background-color: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1,
15 | stop: 0 #FFOECE, stop: 1 #FFFFFF);
16 | }
17 | */
--------------------------------------------------------------------------------
/mainpage.dox:
--------------------------------------------------------------------------------
1 | /**
2 |
3 | @mainpage
4 |
5 | @htmlinclude manifest.html
6 |
7 | @b rtabmap contains RTAB-Map libraries and standalone application.
8 | See http://www.ros.org/wiki/rtabmap for documentation.
9 |
10 | Currently this package has no public code API.
11 |
12 | */
13 |
--------------------------------------------------------------------------------
/tools/CMakeLists.txt:
--------------------------------------------------------------------------------
1 |
2 | ADD_SUBDIRECTORY( ConsoleApp )
3 | ADD_SUBDIRECTORY( ImagesJoiner )
4 | ADD_SUBDIRECTORY( ExtractObject )
5 | ADD_SUBDIRECTORY( Camera )
6 | ADD_SUBDIRECTORY( StereoEval )
7 | ADD_SUBDIRECTORY( KittiDataset )
8 | ADD_SUBDIRECTORY( RgbdDataset )
9 | ADD_SUBDIRECTORY( EurocDataset )
10 | ADD_SUBDIRECTORY( Recovery )
11 | ADD_SUBDIRECTORY( Reprocess )
12 | ADD_SUBDIRECTORY( DetectMoreLoopClosures )
13 | ADD_SUBDIRECTORY( Export )
14 | ADD_SUBDIRECTORY( Report )
15 | ADD_SUBDIRECTORY( Info )
16 | ADD_SUBDIRECTORY( CleanupLocalGrids )
17 | ADD_SUBDIRECTORY( GlobalBundleAdjustment )
18 |
19 | IF(OPENCV_NONFREE_FOUND)
20 | ADD_SUBDIRECTORY( VocabularyComparison )
21 | ENDIF(OPENCV_NONFREE_FOUND)
22 |
23 | IF(TARGET rtabmap_gui)
24 | ADD_SUBDIRECTORY( CameraRGBD )
25 | IF(PCL_VERSION VERSION_GREATER_EQUAL "1.8")
26 | ADD_SUBDIRECTORY( LidarViewer )
27 | ENDIF()
28 | ADD_SUBDIRECTORY( DatabaseViewer )
29 | ADD_SUBDIRECTORY( EpipolarGeometry )
30 | ADD_SUBDIRECTORY( OdometryViewer )
31 | ADD_SUBDIRECTORY( DataRecorder )
32 | ADD_SUBDIRECTORY( Calibration )
33 | ADD_SUBDIRECTORY( Matcher )
34 | ELSE()
35 | MESSAGE(STATUS "RTAB-Map GUI lib is not built, some tools won't be built...")
36 | ENDIF()
37 |
38 |
39 |
--------------------------------------------------------------------------------
/tools/Calibration/CMakeLists.txt:
--------------------------------------------------------------------------------
1 |
2 | ADD_EXECUTABLE(calibration main.cpp)
3 | TARGET_LINK_LIBRARIES(calibration rtabmap_gui)
4 |
5 | SET_TARGET_PROPERTIES( calibration
6 | PROPERTIES OUTPUT_NAME ${PROJECT_PREFIX}-calibration)
7 |
8 | INSTALL(TARGETS calibration
9 | RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}" COMPONENT runtime
10 | BUNDLE DESTINATION "${CMAKE_BUNDLE_LOCATION}" COMPONENT runtime)
11 |
--------------------------------------------------------------------------------
/tools/Camera/CMakeLists.txt:
--------------------------------------------------------------------------------
1 |
2 | ADD_EXECUTABLE(camera main.cpp)
3 | TARGET_LINK_LIBRARIES(camera rtabmap_core)
4 |
5 | SET_TARGET_PROPERTIES( camera
6 | PROPERTIES OUTPUT_NAME ${PROJECT_PREFIX}-camera)
7 |
8 | INSTALL(TARGETS camera
9 | RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}" COMPONENT runtime
10 | BUNDLE DESTINATION "${CMAKE_BUNDLE_LOCATION}" COMPONENT runtime)
--------------------------------------------------------------------------------
/tools/CameraRGBD/CMakeLists.txt:
--------------------------------------------------------------------------------
1 |
2 | ADD_EXECUTABLE(rgbd_camera main.cpp)
3 | TARGET_LINK_LIBRARIES(rgbd_camera rtabmap_gui)
4 |
5 | SET_TARGET_PROPERTIES( rgbd_camera
6 | PROPERTIES OUTPUT_NAME ${PROJECT_PREFIX}-rgbd_camera)
7 |
8 | INSTALL(TARGETS rgbd_camera
9 | RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}" COMPONENT runtime
10 | BUNDLE DESTINATION "${CMAKE_BUNDLE_LOCATION}" COMPONENT runtime)
--------------------------------------------------------------------------------
/tools/CleanupLocalGrids/CMakeLists.txt:
--------------------------------------------------------------------------------
1 |
2 | ADD_EXECUTABLE(cleanupLocalGrids main.cpp)
3 |
4 | TARGET_LINK_LIBRARIES(cleanupLocalGrids rtabmap_core)
5 |
6 | SET_TARGET_PROPERTIES( cleanupLocalGrids
7 | PROPERTIES OUTPUT_NAME ${PROJECT_PREFIX}-cleanupLocalGrids)
8 |
9 | INSTALL(TARGETS cleanupLocalGrids
10 | RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}" COMPONENT runtime
11 | BUNDLE DESTINATION "${CMAKE_BUNDLE_LOCATION}" COMPONENT runtime)
12 |
13 |
14 |
--------------------------------------------------------------------------------
/tools/ConsoleApp/CMakeLists.txt:
--------------------------------------------------------------------------------
1 |
2 | # Add binary called "consoleApp" that is built from the source file "main.cpp".
3 | # The extension is automatically found.
4 | ADD_EXECUTABLE(consoleApp main.cpp)
5 | TARGET_LINK_LIBRARIES(consoleApp rtabmap_core)
6 |
7 | SET_TARGET_PROPERTIES( consoleApp
8 | PROPERTIES OUTPUT_NAME ${PROJECT_PREFIX}-console)
9 |
10 | INSTALL(TARGETS consoleApp
11 | RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}" COMPONENT runtime
12 | BUNDLE DESTINATION "${CMAKE_BUNDLE_LOCATION}" COMPONENT runtime)
13 |
14 |
--------------------------------------------------------------------------------
/tools/DataRecorder/CMakeLists.txt:
--------------------------------------------------------------------------------
1 |
2 | IF(MINGW)
3 | ADD_EXECUTABLE(dataRecorder WIN32 main.cpp)
4 | ELSE()
5 | ADD_EXECUTABLE(dataRecorder main.cpp)
6 | ENDIF()
7 | TARGET_LINK_LIBRARIES(dataRecorder rtabmap_gui)
8 |
9 | SET_TARGET_PROPERTIES( dataRecorder
10 | PROPERTIES OUTPUT_NAME ${PROJECT_PREFIX}-dataRecorder)
11 |
12 | INSTALL(TARGETS dataRecorder
13 | RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}" COMPONENT runtime
14 | BUNDLE DESTINATION "${CMAKE_BUNDLE_LOCATION}" COMPONENT runtime)
15 |
--------------------------------------------------------------------------------
/tools/DatabaseViewer/CMakeLists.txt:
--------------------------------------------------------------------------------
1 |
2 | IF(MINGW)
3 | ADD_EXECUTABLE(databaseViewer WIN32 main.cpp)
4 | ELSE()
5 | ADD_EXECUTABLE(databaseViewer main.cpp)
6 | ENDIF()
7 |
8 | TARGET_LINK_LIBRARIES(databaseViewer rtabmap_gui)
9 |
10 | SET_TARGET_PROPERTIES( databaseViewer
11 | PROPERTIES OUTPUT_NAME ${PROJECT_PREFIX}-databaseViewer)
12 |
13 | INSTALL(TARGETS databaseViewer
14 | RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}" COMPONENT runtime
15 | BUNDLE DESTINATION "${CMAKE_BUNDLE_LOCATION}" COMPONENT runtime)
16 |
--------------------------------------------------------------------------------
/tools/DetectMoreLoopClosures/CMakeLists.txt:
--------------------------------------------------------------------------------
1 |
2 | ADD_EXECUTABLE(detectMoreLoopClosures main.cpp)
3 |
4 | TARGET_LINK_LIBRARIES(detectMoreLoopClosures rtabmap_core)
5 |
6 | SET_TARGET_PROPERTIES( detectMoreLoopClosures
7 | PROPERTIES OUTPUT_NAME ${PROJECT_PREFIX}-detectMoreLoopClosures)
8 |
9 | INSTALL(TARGETS detectMoreLoopClosures
10 | RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}" COMPONENT runtime
11 | BUNDLE DESTINATION "${CMAKE_BUNDLE_LOCATION}" COMPONENT runtime)
12 |
13 |
14 |
--------------------------------------------------------------------------------
/tools/EpipolarGeometry/CMakeLists.txt:
--------------------------------------------------------------------------------
1 |
2 | IF(MINGW)
3 | ADD_EXECUTABLE(epipolar_geometry WIN32 main.cpp)
4 | ELSE()
5 | ADD_EXECUTABLE(epipolar_geometry main.cpp)
6 | ENDIF()
7 | TARGET_LINK_LIBRARIES(epipolar_geometry rtabmap_gui)
8 |
9 | SET_TARGET_PROPERTIES( epipolar_geometry
10 | PROPERTIES OUTPUT_NAME ${PROJECT_PREFIX}-epipolar_geometry)
11 |
12 |
--------------------------------------------------------------------------------
/tools/EurocDataset/CMakeLists.txt:
--------------------------------------------------------------------------------
1 |
2 | FIND_PACKAGE(yaml-cpp QUIET)
3 |
4 | IF(yaml-cpp_FOUND)
5 | IF (TARGET yaml-cpp::yaml-cpp)
6 | # yaml-cpp 0.8.0 uses target yaml-cpp::yaml-cpp.
7 | SET(YAML_CPP_LIBRARIES yaml-cpp::yaml-cpp)
8 | ELSEIF (TARGET yaml-cpp)
9 | # yaml-cpp 0.7.0 uses target yaml-cpp (VCPKG).
10 | SET(YAML_CPP_LIBRARIES yaml-cpp)
11 | ENDIF()
12 | ELSE()
13 | find_package(PkgConfig QUIET)
14 | IF(PKG_CONFIG_FOUND)
15 | pkg_check_modules(yaml_cpp QUIET yaml-cpp)
16 | IF(yaml_cpp_FOUND)
17 | SET(YAML_CPP_LIBRARIES ${yaml_cpp_LIBRARIES})
18 | SET(YAML_CPP_INCLUDE_DIR ${yaml_cpp_INCLUDEDIR})
19 | SET(yaml-cpp_FOUND ${yaml_cpp_FOUND})
20 | ENDIF(yaml_cpp_FOUND)
21 | ENDIF(PKG_CONFIG_FOUND)
22 | ENDIF(yaml-cpp_FOUND)
23 |
24 | IF(yaml-cpp_FOUND)
25 |
26 | SET(INCLUDE_DIRS
27 | ${YAML_CPP_INCLUDE_DIR}
28 | )
29 |
30 | SET(LIBRARIES
31 | ${YAML_CPP_LIBRARIES}
32 | )
33 |
34 | INCLUDE_DIRECTORIES(${INCLUDE_DIRS} yaml-cpp)
35 |
36 | ADD_EXECUTABLE(euroc_dataset main.cpp)
37 |
38 | TARGET_LINK_LIBRARIES(euroc_dataset rtabmap_core ${LIBRARIES})
39 |
40 | SET_TARGET_PROPERTIES( euroc_dataset
41 | PROPERTIES OUTPUT_NAME ${PROJECT_PREFIX}-euroc_dataset)
42 |
43 | INSTALL(TARGETS euroc_dataset
44 | RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}" COMPONENT runtime
45 | BUNDLE DESTINATION "${CMAKE_BUNDLE_LOCATION}" COMPONENT runtime)
46 |
47 | ELSE()
48 | MESSAGE(STATUS "yaml-cpp not found, euroc_dataset tool won't be built...")
49 | ENDIF()
50 |
--------------------------------------------------------------------------------
/tools/Export/CMakeLists.txt:
--------------------------------------------------------------------------------
1 |
2 | ADD_EXECUTABLE(export main.cpp)
3 |
4 | TARGET_LINK_LIBRARIES(export rtabmap_core)
5 |
6 | SET_TARGET_PROPERTIES( export
7 | PROPERTIES OUTPUT_NAME ${PROJECT_PREFIX}-export)
8 |
9 | INSTALL(TARGETS export
10 | RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}" COMPONENT runtime
11 | BUNDLE DESTINATION "${CMAKE_BUNDLE_LOCATION}" COMPONENT runtime)
12 |
13 |
14 |
--------------------------------------------------------------------------------
/tools/ExtractObject/CMakeLists.txt:
--------------------------------------------------------------------------------
1 |
2 |
3 | ADD_EXECUTABLE(extractObject main.cpp)
4 | TARGET_LINK_LIBRARIES(extractObject rtabmap_core)
5 |
6 | SET_TARGET_PROPERTIES( extractObject
7 | PROPERTIES OUTPUT_NAME ${PROJECT_PREFIX}-extractObject)
8 |
9 | INSTALL(TARGETS extractObject
10 | RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}" COMPONENT runtime
11 | BUNDLE DESTINATION "${CMAKE_BUNDLE_LOCATION}" COMPONENT runtime)
--------------------------------------------------------------------------------
/tools/GlobalBundleAdjustment/CMakeLists.txt:
--------------------------------------------------------------------------------
1 |
2 | ADD_EXECUTABLE(globalBundleAdjustment main.cpp)
3 |
4 | TARGET_LINK_LIBRARIES(globalBundleAdjustment rtabmap_core)
5 |
6 | SET_TARGET_PROPERTIES( globalBundleAdjustment
7 | PROPERTIES OUTPUT_NAME ${PROJECT_PREFIX}-globalBundleAdjustment)
8 |
9 | INSTALL(TARGETS globalBundleAdjustment
10 | RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}" COMPONENT runtime
11 | BUNDLE DESTINATION "${CMAKE_BUNDLE_LOCATION}" COMPONENT runtime)
12 |
13 |
14 |
--------------------------------------------------------------------------------
/tools/ImagesJoiner/CMakeLists.txt:
--------------------------------------------------------------------------------
1 |
2 | ADD_EXECUTABLE(imagesJoiner main.cpp)
3 | TARGET_LINK_LIBRARIES(imagesJoiner rtabmap_core)
4 |
5 | SET_TARGET_PROPERTIES( imagesJoiner
6 | PROPERTIES OUTPUT_NAME ${PROJECT_PREFIX}-imagesJoiner)
7 |
8 |
--------------------------------------------------------------------------------
/tools/Info/CMakeLists.txt:
--------------------------------------------------------------------------------
1 |
2 | ADD_EXECUTABLE(info main.cpp)
3 |
4 | TARGET_LINK_LIBRARIES(info rtabmap_core)
5 |
6 | SET_TARGET_PROPERTIES( info
7 | PROPERTIES OUTPUT_NAME ${PROJECT_PREFIX}-info)
8 |
9 | INSTALL(TARGETS info
10 | RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}" COMPONENT runtime
11 | BUNDLE DESTINATION "${CMAKE_BUNDLE_LOCATION}" COMPONENT runtime)
12 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/tools/KittiDataset/CMakeLists.txt:
--------------------------------------------------------------------------------
1 |
2 | ADD_EXECUTABLE(kitti_dataset main.cpp)
3 |
4 | TARGET_LINK_LIBRARIES(kitti_dataset rtabmap_core)
5 |
6 | SET_TARGET_PROPERTIES( kitti_dataset
7 | PROPERTIES OUTPUT_NAME ${PROJECT_PREFIX}-kitti_dataset)
8 |
9 | INSTALL(TARGETS kitti_dataset
10 | RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}" COMPONENT runtime
11 | BUNDLE DESTINATION "${CMAKE_BUNDLE_LOCATION}" COMPONENT runtime)
12 |
--------------------------------------------------------------------------------
/tools/LidarViewer/CMakeLists.txt:
--------------------------------------------------------------------------------
1 |
2 | IF(NOT WITH_QT)
3 | # visualization module required
4 | FIND_PACKAGE(PCL 1.7 REQUIRED QUIET COMPONENTS common io kdtree search surface filters registration sample_consensus segmentation visualization)
5 | ENDIF(NOT WITH_QT)
6 |
7 | SET(INCLUDE_DIRS
8 | ${PROJECT_BINARY_DIR}/corelib/include
9 | ${PROJECT_SOURCE_DIR}/corelib/include
10 | ${PROJECT_SOURCE_DIR}/utilite/include
11 | ${OpenCV_INCLUDE_DIRS}
12 | ${PCL_INCLUDE_DIRS}
13 | )
14 |
15 | SET(LIBRARIES
16 | ${OpenCV_LIBRARIES}
17 | ${PCL_LIBRARIES}
18 | )
19 |
20 | add_definitions(${PCL_DEFINITIONS})
21 |
22 | INCLUDE_DIRECTORIES(${INCLUDE_DIRS})
23 |
24 | ADD_EXECUTABLE(lidar_viewer main.cpp)
25 | TARGET_LINK_LIBRARIES(lidar_viewer rtabmap_core rtabmap_utilite ${LIBRARIES})
26 |
27 | SET_TARGET_PROPERTIES( lidar_viewer
28 | PROPERTIES OUTPUT_NAME ${PROJECT_PREFIX}-lidar_viewer)
29 |
30 | INSTALL(TARGETS lidar_viewer
31 | RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}" COMPONENT runtime
32 | BUNDLE DESTINATION "${CMAKE_BUNDLE_LOCATION}" COMPONENT runtime)
--------------------------------------------------------------------------------
/tools/Matcher/CMakeLists.txt:
--------------------------------------------------------------------------------
1 |
2 | ADD_EXECUTABLE(matcher main.cpp)
3 | TARGET_LINK_LIBRARIES(matcher rtabmap_gui)
4 |
5 | SET_TARGET_PROPERTIES( matcher
6 | PROPERTIES OUTPUT_NAME ${PROJECT_PREFIX}-matcher)
7 |
8 |
--------------------------------------------------------------------------------
/tools/OdometryViewer/CMakeLists.txt:
--------------------------------------------------------------------------------
1 |
2 | IF(MINGW)
3 | ADD_EXECUTABLE(odometryViewer WIN32 main.cpp)
4 | ELSE()
5 | ADD_EXECUTABLE(odometryViewer main.cpp)
6 | ENDIF()
7 | TARGET_LINK_LIBRARIES(odometryViewer rtabmap_gui)
8 |
9 | SET_TARGET_PROPERTIES( odometryViewer
10 | PROPERTIES OUTPUT_NAME ${PROJECT_PREFIX}-odometryViewer)
11 |
12 | INSTALL(TARGETS odometryViewer
13 | RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}" COMPONENT runtime
14 | BUNDLE DESTINATION "${CMAKE_BUNDLE_LOCATION}" COMPONENT runtime)
15 |
16 |
--------------------------------------------------------------------------------
/tools/Recovery/CMakeLists.txt:
--------------------------------------------------------------------------------
1 |
2 | ADD_EXECUTABLE(recovery main.cpp)
3 |
4 | TARGET_LINK_LIBRARIES(recovery rtabmap_core)
5 |
6 | SET_TARGET_PROPERTIES( recovery
7 | PROPERTIES OUTPUT_NAME ${PROJECT_PREFIX}-recovery)
8 |
9 | INSTALL(TARGETS recovery
10 | RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}" COMPONENT runtime
11 | BUNDLE DESTINATION "${CMAKE_BUNDLE_LOCATION}" COMPONENT runtime)
12 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/tools/Report/CMakeLists.txt:
--------------------------------------------------------------------------------
1 |
2 | set(LIBRARIES rtabmap_core)
3 |
4 | IF(WITH_QT AND (QT4_FOUND OR Qt5_FOUND))
5 | ADD_DEFINITIONS("-DWITH_QT")
6 | set(LIBRARIES ${LIBRARIES} rtabmap_gui)
7 | ENDIF(WITH_QT AND (QT4_FOUND OR Qt5_FOUND))
8 |
9 | ADD_EXECUTABLE(report main.cpp)
10 |
11 | TARGET_LINK_LIBRARIES(report ${LIBRARIES})
12 |
13 | SET_TARGET_PROPERTIES( report
14 | PROPERTIES OUTPUT_NAME ${PROJECT_PREFIX}-report)
15 |
16 | INSTALL(TARGETS report
17 | RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}" COMPONENT runtime
18 | BUNDLE DESTINATION "${CMAKE_BUNDLE_LOCATION}" COMPONENT runtime)
19 |
--------------------------------------------------------------------------------
/tools/Reprocess/CMakeLists.txt:
--------------------------------------------------------------------------------
1 |
2 | ADD_EXECUTABLE(reprocess main.cpp)
3 |
4 | TARGET_LINK_LIBRARIES(reprocess rtabmap_core)
5 |
6 | SET_TARGET_PROPERTIES( reprocess
7 | PROPERTIES OUTPUT_NAME ${PROJECT_PREFIX}-reprocess)
8 |
9 | INSTALL(TARGETS reprocess
10 | RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}" COMPONENT runtime
11 | BUNDLE DESTINATION "${CMAKE_BUNDLE_LOCATION}" COMPONENT runtime)
12 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/tools/RgbdDataset/CMakeLists.txt:
--------------------------------------------------------------------------------
1 |
2 | ADD_EXECUTABLE(rgbd_dataset main.cpp)
3 |
4 | TARGET_LINK_LIBRARIES(rgbd_dataset rtabmap_core)
5 |
6 | SET_TARGET_PROPERTIES( rgbd_dataset
7 | PROPERTIES OUTPUT_NAME ${PROJECT_PREFIX}-rgbd_dataset)
8 |
9 | INSTALL(TARGETS rgbd_dataset
10 | RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}" COMPONENT runtime
11 | BUNDLE DESTINATION "${CMAKE_BUNDLE_LOCATION}" COMPONENT runtime)
12 |
--------------------------------------------------------------------------------
/tools/StereoEval/CMakeLists.txt:
--------------------------------------------------------------------------------
1 |
2 | ADD_EXECUTABLE(stereoEval main.cpp)
3 | TARGET_LINK_LIBRARIES(stereoEval rtabmap_core)
4 |
5 | SET_TARGET_PROPERTIES( stereoEval
6 | PROPERTIES OUTPUT_NAME ${PROJECT_PREFIX}-stereoEval)
7 |
--------------------------------------------------------------------------------
/tools/VocabularyComparison/CMakeLists.txt:
--------------------------------------------------------------------------------
1 |
2 | ADD_EXECUTABLE(vocabularyComparison main.cpp)
3 | TARGET_LINK_LIBRARIES(vocabularyComparison rtabmap_core)
4 |
5 | SET_TARGET_PROPERTIES( vocabularyComparison
6 | PROPERTIES OUTPUT_NAME ${PROJECT_PREFIX}-vocabularyComparison)
7 |
8 |
--------------------------------------------------------------------------------
/utilite/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | SET(UTILITE_VERSION "0.3.0")
2 | ADD_DEFINITIONS(-DUTILITE_VERSION="${UTILITE_VERSION}")
3 |
4 | if(UNIX AND NOT ANDROID)
5 | FIND_PACKAGE(Pthreads REQUIRED)
6 | ENDIF(UNIX AND NOT ANDROID)
7 |
8 | ADD_SUBDIRECTORY( src )
9 |
10 | ADD_SUBDIRECTORY( resource_generator )
11 |
--------------------------------------------------------------------------------
/utilite/include/rtabmap/utilite/UEventsSender.h:
--------------------------------------------------------------------------------
1 | /*
2 | * UEventsSender.h
3 | *
4 | * Created on: 2013-10-14
5 | * Author: Mathieu
6 | */
7 |
8 | #ifndef UEVENTSSENDER_H_
9 | #define UEVENTSSENDER_H_
10 |
11 | #include "rtabmap/utilite/utilite_export.h" // DLL export/import defines
12 |
13 | class UEvent;
14 |
15 | class UTILITE_EXPORT UEventsSender
16 | {
17 | public:
18 | UEventsSender(){}
19 | virtual ~UEventsSender();
20 |
21 | protected:
22 |
23 | /**
24 | * For convenience to post an event. This is the same than calling UEventsManager::post()
25 | * with the sender reference.
26 | */
27 | void post(UEvent * event, bool async = true) const;
28 | };
29 |
30 |
31 | #endif /* UEVENTSSENDER_H_ */
32 |
--------------------------------------------------------------------------------
/utilite/include/rtabmap/utilite/UException.h:
--------------------------------------------------------------------------------
1 | /*
2 | * utilite is a cross-platform library with
3 | * useful utilities for fast and small developing.
4 | * Copyright (C) 2010 Mathieu Labbe
5 | *
6 | * utilite is free library: you can redistribute it and/or modify
7 | * it under the terms of the GNU Lesser General Public License as published by
8 | * the Free Software Foundation, either version 3 of the License, or
9 | * (at your option) any later version.
10 | *
11 | * utilite is distributed in the hope that it will be useful,
12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 | * GNU Lesser General Public License for more details.
15 | *
16 | * You should have received a copy of the GNU Lesser General Public License
17 | * along with this program. If not, see .
18 | */
19 |
20 | #ifndef UEXCEPTION_H_
21 | #define UEXCEPTION_H_
22 |
23 | #include
24 |
25 | class UException: public std::runtime_error {
26 | public:
27 |
28 | UException(const std::string & what) :
29 | std::runtime_error(what)
30 | {}
31 | };
32 |
33 | #endif /* UEXCEPTION_H_ */
34 |
--------------------------------------------------------------------------------
/utilite/include/rtabmap/utilite/UProcessInfo.h:
--------------------------------------------------------------------------------
1 | /*
2 | * utilite is a cross-platform library with
3 | * useful utilities for fast and small developing.
4 | * Copyright (C) 2010 Mathieu Labbe
5 | *
6 | * utilite is free library: you can redistribute it and/or modify
7 | * it under the terms of the GNU Lesser General Public License as published by
8 | * the Free Software Foundation, either version 3 of the License, or
9 | * (at your option) any later version.
10 | *
11 | * utilite is distributed in the hope that it will be useful,
12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 | * GNU Lesser General Public License for more details.
15 | *
16 | * You should have received a copy of the GNU Lesser General Public License
17 | * along with this program. If not, see .
18 | */
19 |
20 | #ifndef UPROCESSINFO_H
21 | #define UPROCESSINFO_H
22 |
23 | #include "rtabmap/utilite/utilite_export.h" // DLL export/import defines
24 |
25 | /**
26 | * This class is used to get some informations
27 | * about the current process.
28 | */
29 | class UTILITE_EXPORT UProcessInfo {
30 | public:
31 | UProcessInfo();
32 | virtual ~UProcessInfo();
33 |
34 | /**
35 | * Get the memory used by the current process.
36 | * @return the number of bytes used by the current process.
37 | */
38 | static long int getMemoryUsage();
39 | };
40 |
41 | #endif /* UPROCESSINFO_H */
42 |
--------------------------------------------------------------------------------
/utilite/include/rtabmap/utilite/UThreadC.h:
--------------------------------------------------------------------------------
1 | /*
2 | * utilite is a cross-platform library with
3 | * useful utilities for fast and small developing.
4 | * Copyright (C) 2010 Mathieu Labbe
5 | *
6 | * utilite is free library: you can redistribute it and/or modify
7 | * it under the terms of the GNU Lesser General Public License as published by
8 | * the Free Software Foundation, either version 3 of the License, or
9 | * (at your option) any later version.
10 | *
11 | * utilite is distributed in the hope that it will be useful,
12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 | * GNU Lesser General Public License for more details.
15 | *
16 | * You should have received a copy of the GNU Lesser General Public License
17 | * along with this program. If not, see .
18 | */
19 |
20 | #ifndef UTHREADC_H
21 | #define UTHREADC_H
22 |
23 | #include
24 |
25 | /*
26 | * Use of StateThread is safer. The Thread class in his
27 | * base form is not supported.
28 | * @see StateThread
29 | */
30 | #ifdef _WIN32
31 | #include "rtabmap/utilite/Win32/UThreadC.h"
32 | #else
33 | #include "rtabmap/utilite/Posix/UThreadC.h"
34 | #endif
35 |
36 | #endif // UTHREADC_H
37 |
--------------------------------------------------------------------------------
/utilite/include/rtabmap/utilite/UThreadNode.h:
--------------------------------------------------------------------------------
1 | /*
2 | * utilite is a cross-platform library with
3 | * useful utilities for fast and small developing.
4 | * Copyright (C) 2010 Mathieu Labbe
5 | *
6 | * utilite is free library: you can redistribute it and/or modify
7 | * it under the terms of the GNU Lesser General Public License as published by
8 | * the Free Software Foundation, either version 3 of the License, or
9 | * (at your option) any later version.
10 | *
11 | * utilite is distributed in the hope that it will be useful,
12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 | * GNU Lesser General Public License for more details.
15 | *
16 | * You should have received a copy of the GNU Lesser General Public License
17 | * along with this program. If not, see .
18 | */
19 |
20 | #ifndef UTHREADNODE_H_
21 | #define UTHREADNODE_H_
22 |
23 | #include "rtabmap/utilite/UThread.h"
24 |
25 | //For backward compatibility
26 | typedef UThread UThreadNode;
27 |
28 |
29 | #endif /* UTHREADNODE_H_ */
30 |
--------------------------------------------------------------------------------
/utilite/src/UEventsHandler.cpp:
--------------------------------------------------------------------------------
1 | /*
2 | * utilite is a cross-platform library with
3 | * useful utilities for fast and small developing.
4 | * Copyright (C) 2010 Mathieu Labbe
5 | *
6 | * utilite is free library: you can redistribute it and/or modify
7 | * it under the terms of the GNU Lesser General Public License as published by
8 | * the Free Software Foundation, either version 3 of the License, or
9 | * (at your option) any later version.
10 | *
11 | * utilite is distributed in the hope that it will be useful,
12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 | * GNU Lesser General Public License for more details.
15 | *
16 | * You should have received a copy of the GNU Lesser General Public License
17 | * along with this program. If not, see .
18 | */
19 |
20 | #include "rtabmap/utilite/UEventsHandler.h"
21 | #include "rtabmap/utilite/UEventsManager.h"
22 |
23 | UEventsHandler::~UEventsHandler()
24 | {
25 | unregisterFromEventsManager();
26 | }
27 |
28 |
29 | void UEventsHandler::registerToEventsManager()
30 | {
31 | UEventsManager::addHandler(this);
32 | }
33 | void UEventsHandler::unregisterFromEventsManager()
34 | {
35 | UEventsManager::removeHandler(this);
36 | }
37 |
--------------------------------------------------------------------------------
/utilite/src/UEventsSender.cpp:
--------------------------------------------------------------------------------
1 | /*
2 | * utilite is a cross-platform library with
3 | * useful utilities for fast and small developing.
4 | * Copyright (C) 2010 Mathieu Labbe
5 | *
6 | * utilite is free library: you can redistribute it and/or modify
7 | * it under the terms of the GNU Lesser General Public License as published by
8 | * the Free Software Foundation, either version 3 of the License, or
9 | * (at your option) any later version.
10 | *
11 | * utilite is distributed in the hope that it will be useful,
12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 | * GNU Lesser General Public License for more details.
15 | *
16 | * You should have received a copy of the GNU Lesser General Public License
17 | * along with this program. If not, see .
18 | */
19 |
20 | #include "rtabmap/utilite/UEventsSender.h"
21 | #include "rtabmap/utilite/UEventsManager.h"
22 |
23 | UEventsSender::~UEventsSender()
24 | {
25 | UEventsManager::removeAllPipes(this);
26 | }
27 |
28 | void UEventsSender::post(UEvent * event, bool async) const
29 | {
30 | UEventsManager::post(event, async, this);
31 | }
32 |
--------------------------------------------------------------------------------