gitextract_tv5cnj3x/ ├── .gitignore ├── CMakeLists.txt ├── Examples/ │ ├── Monocular/ │ │ ├── EuRoC.yaml │ │ ├── EuRoC_TimeStamps/ │ │ │ ├── MH01.txt │ │ │ ├── MH02.txt │ │ │ ├── MH03.txt │ │ │ ├── MH04.txt │ │ │ ├── MH05.txt │ │ │ ├── V101.txt │ │ │ ├── V102.txt │ │ │ ├── V103.txt │ │ │ ├── V201.txt │ │ │ ├── V202.txt │ │ │ └── V203.txt │ │ ├── KITTI00-02.yaml │ │ ├── KITTI03.yaml │ │ ├── KITTI04-12.yaml │ │ ├── TUM1.yaml │ │ ├── TUM2.yaml │ │ ├── TUM3.yaml │ │ ├── mono_euroc │ │ ├── mono_euroc.cpp │ │ ├── mono_kitti │ │ ├── mono_kitti.cpp │ │ ├── mono_live │ │ ├── mono_live.cpp │ │ ├── mono_tum │ │ └── mono_tum.cpp │ ├── RGB-D/ │ │ ├── TUM1.yaml │ │ ├── TUM1_GPU.yaml │ │ ├── TUM2.yaml │ │ ├── TUM3.yaml │ │ ├── associations/ │ │ │ ├── fr1_desk.txt │ │ │ ├── fr1_desk2.txt │ │ │ ├── fr1_room.txt │ │ │ ├── fr1_xyz.txt │ │ │ ├── fr2_desk.txt │ │ │ ├── fr2_xyz.txt │ │ │ ├── fr3_nstr_tex_near.txt │ │ │ ├── fr3_office.txt │ │ │ ├── fr3_office_val.txt │ │ │ ├── fr3_str_tex_far.txt │ │ │ └── fr3_str_tex_near.txt │ │ ├── kinect.yaml │ │ ├── rgbd_live │ │ ├── rgbd_live.cpp │ │ ├── rgbd_live.yaml │ │ ├── rgbd_tum │ │ └── rgbd_tum.cpp │ └── Stereo/ │ ├── EuRoC.yaml │ ├── EuRoC_TimeStamps/ │ │ ├── MH01.txt │ │ ├── MH02.txt │ │ ├── MH03.txt │ │ ├── MH04.txt │ │ ├── MH05.txt │ │ ├── V101.txt │ │ ├── V102.txt │ │ ├── V103.txt │ │ ├── V201.txt │ │ ├── V202.txt │ │ └── V203.txt │ ├── KITTI00-02.yaml │ ├── KITTI00-02_custom.yaml │ ├── KITTI03.yaml │ ├── KITTI04-12.yaml │ ├── euroc_old/ │ │ ├── CameraTrajectory_MH01.txt │ │ ├── CameraTrajectory_MH02.txt │ │ ├── CameraTrajectory_MH03.txt │ │ ├── CameraTrajectory_MH04.txt │ │ └── CameraTrajectory_MH05.txt │ ├── kaist_vio_dataset.yaml │ ├── stereo_euroc │ ├── stereo_euroc.cpp │ ├── stereo_kitti │ ├── stereo_kitti.cpp │ ├── stereo_live │ ├── stereo_live.cpp │ └── stereo_rig_realsense.yaml ├── README.md ├── Thirdparty/ │ ├── DBoW2/ │ │ ├── CMakeLists.txt │ │ ├── DBoW2/ │ │ │ ├── BowVector.cpp │ │ │ ├── BowVector.h │ │ │ ├── FClass.h │ │ │ ├── FORB.cpp │ │ │ ├── FORB.h │ │ │ ├── FeatureVector.cpp │ │ │ ├── FeatureVector.h │ │ │ ├── ScoringObject.cpp │ │ │ ├── ScoringObject.h │ │ │ └── TemplatedVocabulary.h │ │ ├── DUtils/ │ │ │ ├── Random.cpp │ │ │ ├── Random.h │ │ │ ├── Timestamp.cpp │ │ │ └── Timestamp.h │ │ ├── LICENSE.txt │ │ └── README.txt │ ├── g2o/ │ │ ├── CMakeLists.txt │ │ ├── README.txt │ │ ├── cmake_modules/ │ │ │ ├── FindBLAS.cmake │ │ │ ├── FindEigen3.cmake │ │ │ └── FindLAPACK.cmake │ │ ├── config.h │ │ ├── config.h.in │ │ ├── g2o/ │ │ │ ├── core/ │ │ │ │ ├── base_binary_edge.h │ │ │ │ ├── base_binary_edge.hpp │ │ │ │ ├── base_edge.h │ │ │ │ ├── base_multi_edge.h │ │ │ │ ├── base_multi_edge.hpp │ │ │ │ ├── base_unary_edge.h │ │ │ │ ├── base_unary_edge.hpp │ │ │ │ ├── base_vertex.h │ │ │ │ ├── base_vertex.hpp │ │ │ │ ├── batch_stats.cpp │ │ │ │ ├── batch_stats.h │ │ │ │ ├── block_solver.h │ │ │ │ ├── block_solver.hpp │ │ │ │ ├── cache.cpp │ │ │ │ ├── cache.h │ │ │ │ ├── creators.h │ │ │ │ ├── eigen_types.h │ │ │ │ ├── estimate_propagator.cpp │ │ │ │ ├── estimate_propagator.h │ │ │ │ ├── factory.cpp │ │ │ │ ├── factory.h │ │ │ │ ├── hyper_dijkstra.cpp │ │ │ │ ├── hyper_dijkstra.h │ │ │ │ ├── hyper_graph.cpp │ │ │ │ ├── hyper_graph.h │ │ │ │ ├── hyper_graph_action.cpp │ │ │ │ ├── hyper_graph_action.h │ │ │ │ ├── jacobian_workspace.cpp │ │ │ │ ├── jacobian_workspace.h │ │ │ │ ├── linear_solver.h │ │ │ │ ├── marginal_covariance_cholesky.cpp │ │ │ │ ├── marginal_covariance_cholesky.h │ │ │ │ ├── matrix_operations.h │ │ │ │ ├── matrix_structure.cpp │ │ │ │ ├── matrix_structure.h │ │ │ │ ├── openmp_mutex.h │ │ │ │ ├── optimizable_graph.cpp │ │ │ │ ├── optimizable_graph.h │ │ │ │ ├── optimization_algorithm.cpp │ │ │ │ ├── optimization_algorithm.h │ │ │ │ ├── optimization_algorithm_dogleg.cpp │ │ │ │ ├── optimization_algorithm_dogleg.h │ │ │ │ ├── optimization_algorithm_factory.cpp │ │ │ │ ├── optimization_algorithm_factory.h │ │ │ │ ├── optimization_algorithm_gauss_newton.cpp │ │ │ │ ├── optimization_algorithm_gauss_newton.h │ │ │ │ ├── optimization_algorithm_levenberg.cpp │ │ │ │ ├── optimization_algorithm_levenberg.h │ │ │ │ ├── optimization_algorithm_property.h │ │ │ │ ├── optimization_algorithm_with_hessian.cpp │ │ │ │ ├── optimization_algorithm_with_hessian.h │ │ │ │ ├── parameter.cpp │ │ │ │ ├── parameter.h │ │ │ │ ├── parameter_container.cpp │ │ │ │ ├── parameter_container.h │ │ │ │ ├── robust_kernel.cpp │ │ │ │ ├── robust_kernel.h │ │ │ │ ├── robust_kernel_factory.cpp │ │ │ │ ├── robust_kernel_factory.h │ │ │ │ ├── robust_kernel_impl.cpp │ │ │ │ ├── robust_kernel_impl.h │ │ │ │ ├── solver.cpp │ │ │ │ ├── solver.h │ │ │ │ ├── sparse_block_matrix.h │ │ │ │ ├── sparse_block_matrix.hpp │ │ │ │ ├── sparse_block_matrix_ccs.h │ │ │ │ ├── sparse_block_matrix_diagonal.h │ │ │ │ ├── sparse_block_matrix_test.cpp │ │ │ │ ├── sparse_optimizer.cpp │ │ │ │ └── sparse_optimizer.h │ │ │ ├── solvers/ │ │ │ │ ├── linear_solver_dense.h │ │ │ │ └── linear_solver_eigen.h │ │ │ ├── stuff/ │ │ │ │ ├── color_macros.h │ │ │ │ ├── macros.h │ │ │ │ ├── misc.h │ │ │ │ ├── os_specific.c │ │ │ │ ├── os_specific.h │ │ │ │ ├── property.cpp │ │ │ │ ├── property.h │ │ │ │ ├── string_tools.cpp │ │ │ │ ├── string_tools.h │ │ │ │ ├── timeutil.cpp │ │ │ │ └── timeutil.h │ │ │ └── types/ │ │ │ ├── se3_ops.h │ │ │ ├── se3_ops.hpp │ │ │ ├── se3quat.h │ │ │ ├── sim3.h │ │ │ ├── types_sba.cpp │ │ │ ├── types_sba.h │ │ │ ├── types_seven_dof_expmap.cpp │ │ │ ├── types_seven_dof_expmap.h │ │ │ ├── types_six_dof_expmap.cpp │ │ │ └── types_six_dof_expmap.h │ │ └── license-bsd.txt │ └── g2o_new/ │ ├── CMakeLists.txt │ ├── Makefile │ ├── README.md │ ├── benchmarks/ │ │ ├── CMakeLists.txt │ │ └── jacobian_timing_tests.cpp │ ├── cmake_modules/ │ │ ├── CheckIfUnderscorePrefixedBesselFunctionsExist.cmake │ │ ├── Config.cmake.in │ │ ├── FindCSparse.cmake │ │ ├── FindEigen3.cmake │ │ ├── FindG2O.cmake │ │ ├── FindMETIS.cmake │ │ ├── FindQGLViewer.cmake │ │ └── FindSuiteSparse.cmake │ ├── codecov.yml │ ├── config.h │ ├── config.h.in │ ├── doc/ │ │ ├── .gitignore │ │ ├── Makefile │ │ ├── README_IF_IT_WAS_WORKING_AND_IT_DOES_NOT.txt │ │ ├── doxygen/ │ │ │ ├── doxy.config │ │ │ └── readme.txt │ │ ├── g2o.tex │ │ ├── license-bsd.txt │ │ ├── license-gpl.txt │ │ ├── license-lgpl.txt │ │ ├── pics/ │ │ │ ├── classes.fig │ │ │ ├── hgraph.fig │ │ │ └── slam.fig │ │ └── robots.bib │ ├── g2o/ │ │ ├── .gitignore │ │ ├── CMakeLists.txt │ │ ├── EXTERNAL/ │ │ │ ├── CMakeLists.txt │ │ │ └── freeglut/ │ │ │ ├── CMakeLists.txt │ │ │ ├── COPYING │ │ │ ├── freeglut_font.cpp │ │ │ ├── freeglut_minimal.h │ │ │ ├── freeglut_stroke_mono_roman.cpp │ │ │ └── freeglut_stroke_roman.cpp │ │ ├── apps/ │ │ │ ├── CMakeLists.txt │ │ │ ├── g2o_cli/ │ │ │ │ ├── CMakeLists.txt │ │ │ │ ├── dl_wrapper.cpp │ │ │ │ ├── dl_wrapper.h │ │ │ │ ├── g2o.cpp │ │ │ │ ├── g2o_cli_api.h │ │ │ │ ├── g2o_common.cpp │ │ │ │ ├── g2o_common.h │ │ │ │ ├── output_helper.cpp │ │ │ │ └── output_helper.h │ │ │ ├── g2o_simulator/ │ │ │ │ ├── CMakeLists.txt │ │ │ │ ├── g2o_simulator_api.h │ │ │ │ ├── pointsensorparameters.cpp │ │ │ │ ├── pointsensorparameters.h │ │ │ │ ├── sensor_line3d.cpp │ │ │ │ ├── sensor_line3d.h │ │ │ │ ├── sensor_odometry.h │ │ │ │ ├── sensor_odometry2d.cpp │ │ │ │ ├── sensor_odometry2d.h │ │ │ │ ├── sensor_odometry3d.cpp │ │ │ │ ├── sensor_odometry3d.h │ │ │ │ ├── sensor_pointxy.cpp │ │ │ │ ├── sensor_pointxy.h │ │ │ │ ├── sensor_pointxy_bearing.cpp │ │ │ │ ├── sensor_pointxy_bearing.h │ │ │ │ ├── sensor_pointxy_offset.cpp │ │ │ │ ├── sensor_pointxy_offset.h │ │ │ │ ├── sensor_pointxyz.cpp │ │ │ │ ├── sensor_pointxyz.h │ │ │ │ ├── sensor_pointxyz_depth.cpp │ │ │ │ ├── sensor_pointxyz_depth.h │ │ │ │ ├── sensor_pointxyz_disparity.cpp │ │ │ │ ├── sensor_pointxyz_disparity.h │ │ │ │ ├── sensor_pose2d.cpp │ │ │ │ ├── sensor_pose2d.h │ │ │ │ ├── sensor_pose3d.cpp │ │ │ │ ├── sensor_pose3d.h │ │ │ │ ├── sensor_pose3d_offset.cpp │ │ │ │ ├── sensor_pose3d_offset.h │ │ │ │ ├── sensor_se3_prior.cpp │ │ │ │ ├── sensor_se3_prior.h │ │ │ │ ├── sensor_segment2d.cpp │ │ │ │ ├── sensor_segment2d.h │ │ │ │ ├── sensor_segment2d_line.cpp │ │ │ │ ├── sensor_segment2d_line.h │ │ │ │ ├── sensor_segment2d_pointline.cpp │ │ │ │ ├── sensor_segment2d_pointline.h │ │ │ │ ├── simulator.cpp │ │ │ │ ├── simulator.h │ │ │ │ ├── simulator2d.h │ │ │ │ ├── simulator2d_base.h │ │ │ │ ├── simulator2d_segment.cpp │ │ │ │ ├── simulator3d.h │ │ │ │ ├── simulator3d_base.h │ │ │ │ ├── simutils.cpp │ │ │ │ ├── simutils.h │ │ │ │ ├── test_simulator2d.cpp │ │ │ │ └── test_simulator3d.cpp │ │ │ ├── g2o_viewer/ │ │ │ │ ├── CMakeLists.txt │ │ │ │ ├── base_main_window.ui │ │ │ │ ├── base_properties_widget.ui │ │ │ │ ├── g2o_qglviewer.cpp │ │ │ │ ├── g2o_qglviewer.h │ │ │ │ ├── g2o_viewer.cpp │ │ │ │ ├── g2o_viewer_api.h │ │ │ │ ├── gui_hyper_graph_action.cpp │ │ │ │ ├── gui_hyper_graph_action.h │ │ │ │ ├── main_window.cpp │ │ │ │ ├── main_window.h │ │ │ │ ├── properties_widget.cpp │ │ │ │ ├── properties_widget.h │ │ │ │ ├── run_g2o_viewer.cpp │ │ │ │ ├── run_g2o_viewer.h │ │ │ │ ├── stream_redirect.cpp │ │ │ │ ├── stream_redirect.h │ │ │ │ ├── viewer_properties_widget.cpp │ │ │ │ └── viewer_properties_widget.h │ │ │ └── linked_binaries/ │ │ │ └── CMakeLists.txt │ │ ├── autodiff/ │ │ │ ├── CMakeLists.txt │ │ │ ├── LICENSE │ │ │ ├── array_selector.h │ │ │ ├── autodiff.h │ │ │ ├── disable_warnings.h │ │ │ ├── eigen.h │ │ │ ├── fixed_array.h │ │ │ ├── integer_sequence_algorithm.h │ │ │ ├── jet.h │ │ │ ├── memory.h │ │ │ ├── parameter_dims.h │ │ │ ├── reenable_warnings.h │ │ │ ├── types.h │ │ │ └── variadic_evaluate.h │ │ ├── core/ │ │ │ ├── CMakeLists.txt │ │ │ ├── auto_differentiation.h │ │ │ ├── base_binary_edge.h │ │ │ ├── base_dynamic_vertex.h │ │ │ ├── base_edge.h │ │ │ ├── base_fixed_sized_edge.h │ │ │ ├── base_fixed_sized_edge.hpp │ │ │ ├── base_multi_edge.h │ │ │ ├── base_unary_edge.h │ │ │ ├── base_variable_sized_edge.h │ │ │ ├── base_variable_sized_edge.hpp │ │ │ ├── base_vertex.h │ │ │ ├── base_vertex.hpp │ │ │ ├── batch_stats.cpp │ │ │ ├── batch_stats.h │ │ │ ├── block_solver.h │ │ │ ├── block_solver.hpp │ │ │ ├── cache.cpp │ │ │ ├── cache.h │ │ │ ├── creators.h │ │ │ ├── dynamic_aligned_buffer.hpp │ │ │ ├── eigen_types.h │ │ │ ├── estimate_propagator.cpp │ │ │ ├── estimate_propagator.h │ │ │ ├── factory.cpp │ │ │ ├── factory.h │ │ │ ├── g2o_core_api.h │ │ │ ├── hyper_dijkstra.cpp │ │ │ ├── hyper_dijkstra.h │ │ │ ├── hyper_graph.cpp │ │ │ ├── hyper_graph.h │ │ │ ├── hyper_graph_action.cpp │ │ │ ├── hyper_graph_action.h │ │ │ ├── io_helper.h │ │ │ ├── jacobian_workspace.cpp │ │ │ ├── jacobian_workspace.h │ │ │ ├── linear_solver.h │ │ │ ├── marginal_covariance_cholesky.cpp │ │ │ ├── marginal_covariance_cholesky.h │ │ │ ├── matrix_operations.h │ │ │ ├── matrix_structure.cpp │ │ │ ├── matrix_structure.h │ │ │ ├── openmp_mutex.h │ │ │ ├── optimizable_graph.cpp │ │ │ ├── optimizable_graph.h │ │ │ ├── optimization_algorithm.cpp │ │ │ ├── optimization_algorithm.h │ │ │ ├── optimization_algorithm_dogleg.cpp │ │ │ ├── optimization_algorithm_dogleg.h │ │ │ ├── optimization_algorithm_factory.cpp │ │ │ ├── optimization_algorithm_factory.h │ │ │ ├── optimization_algorithm_gauss_newton.cpp │ │ │ ├── optimization_algorithm_gauss_newton.h │ │ │ ├── optimization_algorithm_levenberg.cpp │ │ │ ├── optimization_algorithm_levenberg.h │ │ │ ├── optimization_algorithm_property.h │ │ │ ├── optimization_algorithm_with_hessian.cpp │ │ │ ├── optimization_algorithm_with_hessian.h │ │ │ ├── ownership.h │ │ │ ├── parameter.cpp │ │ │ ├── parameter.h │ │ │ ├── parameter_container.cpp │ │ │ ├── parameter_container.h │ │ │ ├── robust_kernel.cpp │ │ │ ├── robust_kernel.h │ │ │ ├── robust_kernel_factory.cpp │ │ │ ├── robust_kernel_factory.h │ │ │ ├── robust_kernel_impl.cpp │ │ │ ├── robust_kernel_impl.h │ │ │ ├── solver.cpp │ │ │ ├── solver.h │ │ │ ├── sparse_block_matrix.h │ │ │ ├── sparse_block_matrix.hpp │ │ │ ├── sparse_block_matrix_ccs.h │ │ │ ├── sparse_block_matrix_diagonal.h │ │ │ ├── sparse_optimizer.cpp │ │ │ ├── sparse_optimizer.h │ │ │ ├── sparse_optimizer_terminate_action.cpp │ │ │ └── sparse_optimizer_terminate_action.h │ │ ├── examples/ │ │ │ ├── CMakeLists.txt │ │ │ ├── anonymize_observations/ │ │ │ │ ├── CMakeLists.txt │ │ │ │ └── g2o_anonymize_observations.cpp │ │ │ ├── ba/ │ │ │ │ ├── CMakeLists.txt │ │ │ │ └── ba_demo.cpp │ │ │ ├── ba_anchored_inverse_depth/ │ │ │ │ ├── CMakeLists.txt │ │ │ │ └── ba_anchored_inverse_depth_demo.cpp │ │ │ ├── bal/ │ │ │ │ ├── CMakeLists.txt │ │ │ │ └── bal_example.cpp │ │ │ ├── calibration_odom_laser/ │ │ │ │ ├── CMakeLists.txt │ │ │ │ ├── closed_form_calibration.cpp │ │ │ │ ├── closed_form_calibration.h │ │ │ │ ├── edge_se2_pure_calib.cpp │ │ │ │ ├── edge_se2_pure_calib.h │ │ │ │ ├── g2o_calibration_odom_laser_api.h │ │ │ │ ├── gm2dl_io.cpp │ │ │ │ ├── gm2dl_io.h │ │ │ │ ├── motion_information.h │ │ │ │ ├── sclam_helpers.cpp │ │ │ │ ├── sclam_helpers.h │ │ │ │ ├── sclam_laser_calib.cpp │ │ │ │ ├── sclam_odom_laser.cpp │ │ │ │ └── sclam_pure_calibration.cpp │ │ │ ├── convert_segment_line/ │ │ │ │ ├── CMakeLists.txt │ │ │ │ └── convertSegmentLine.cpp │ │ │ ├── data_convert/ │ │ │ │ ├── CMakeLists.txt │ │ │ │ └── convert_sba_slam3d.cpp │ │ │ ├── data_fitting/ │ │ │ │ ├── CMakeLists.txt │ │ │ │ ├── circle_fit.cpp │ │ │ │ └── curve_fit.cpp │ │ │ ├── dynamic_vertex/ │ │ │ │ ├── CMakeLists.txt │ │ │ │ ├── polynomial_fit.cpp │ │ │ │ └── static_dynamic_function_fit.cpp │ │ │ ├── g2o_hierarchical/ │ │ │ │ ├── CMakeLists.txt │ │ │ │ ├── backbone_tree_action.cpp │ │ │ │ ├── backbone_tree_action.h │ │ │ │ ├── edge_creator.cpp │ │ │ │ ├── edge_creator.h │ │ │ │ ├── edge_labeler.cpp │ │ │ │ ├── edge_labeler.h │ │ │ │ ├── edge_types_cost_function.cpp │ │ │ │ ├── edge_types_cost_function.h │ │ │ │ ├── g2o_hierarchical.cpp │ │ │ │ ├── g2o_hierarchical_api.h │ │ │ │ ├── simple_star_ops.cpp │ │ │ │ ├── simple_star_ops.h │ │ │ │ ├── star.cpp │ │ │ │ └── star.h │ │ │ ├── icp/ │ │ │ │ ├── CMakeLists.txt │ │ │ │ ├── gicp_demo.cpp │ │ │ │ └── gicp_sba_demo.cpp │ │ │ ├── interactive_slam/ │ │ │ │ ├── CMakeLists.txt │ │ │ │ ├── README.txt │ │ │ │ ├── g2o_incremental/ │ │ │ │ │ ├── CMakeLists.txt │ │ │ │ │ ├── README.txt │ │ │ │ │ ├── g2o_incremental.cpp │ │ │ │ │ ├── g2o_incremental_api.h │ │ │ │ │ ├── graph_optimizer_sparse_incremental.cpp │ │ │ │ │ ├── graph_optimizer_sparse_incremental.h │ │ │ │ │ ├── linear_solver_cholmod_online.h │ │ │ │ │ └── protocol.txt │ │ │ │ ├── g2o_interactive/ │ │ │ │ │ ├── CMakeLists.txt │ │ │ │ │ ├── fast_output.h │ │ │ │ │ ├── g2o_interactive_api.h │ │ │ │ │ ├── g2o_online.cpp │ │ │ │ │ ├── g2o_slam_interface.cpp │ │ │ │ │ ├── g2o_slam_interface.h │ │ │ │ │ ├── generate_commands.cpp │ │ │ │ │ ├── graph_optimizer_sparse_online.cpp │ │ │ │ │ ├── graph_optimizer_sparse_online.h │ │ │ │ │ ├── protocol.txt │ │ │ │ │ ├── types_online.cpp │ │ │ │ │ ├── types_slam2d_online.h │ │ │ │ │ └── types_slam3d_online.h │ │ │ │ └── slam_parser/ │ │ │ │ ├── CMakeLists.txt │ │ │ │ ├── example/ │ │ │ │ │ ├── CMakeLists.txt │ │ │ │ │ ├── example_slam_interface.cpp │ │ │ │ │ ├── example_slam_interface.h │ │ │ │ │ └── test_slam_interface.cpp │ │ │ │ ├── interface/ │ │ │ │ │ ├── CMakeLists.txt │ │ │ │ │ ├── abstract_slam_interface.h │ │ │ │ │ ├── parser_interface.cpp │ │ │ │ │ ├── parser_interface.h │ │ │ │ │ ├── slam_context_interface.cpp │ │ │ │ │ └── slam_context_interface.h │ │ │ │ └── parser/ │ │ │ │ ├── CMakeLists.txt │ │ │ │ ├── FlexLexer.h │ │ │ │ ├── bison_parser.cpp │ │ │ │ ├── bison_parser.h │ │ │ │ ├── commands.h │ │ │ │ ├── driver.cpp │ │ │ │ ├── driver.h │ │ │ │ ├── flex_scanner.cpp │ │ │ │ ├── grammar.sh │ │ │ │ ├── location.hh │ │ │ │ ├── parser.yy │ │ │ │ ├── position.hh │ │ │ │ ├── scanner.h │ │ │ │ ├── scanner.l │ │ │ │ ├── slam_context.cpp │ │ │ │ ├── slam_context.h │ │ │ │ └── test_slam_parser.cpp │ │ │ ├── line_slam/ │ │ │ │ ├── CMakeLists.txt │ │ │ │ ├── line_test.cpp │ │ │ │ └── simulator_3d_line.cpp │ │ │ ├── logging/ │ │ │ │ ├── CMakeLists.txt │ │ │ │ └── logging.cpp │ │ │ ├── plane_slam/ │ │ │ │ ├── CMakeLists.txt │ │ │ │ ├── plane_test.cpp │ │ │ │ └── simulator_3d_plane.cpp │ │ │ ├── sba/ │ │ │ │ ├── CMakeLists.txt │ │ │ │ └── sba_demo.cpp │ │ │ ├── sim3/ │ │ │ │ ├── CMakeLists.txt │ │ │ │ └── optimize_sphere_by_sim3.cpp │ │ │ ├── simple_optimize/ │ │ │ │ ├── CMakeLists.txt │ │ │ │ └── simple_optimize.cpp │ │ │ ├── slam2d/ │ │ │ │ ├── CMakeLists.txt │ │ │ │ ├── base_main_window.ui │ │ │ │ ├── main_window.cpp │ │ │ │ ├── main_window.h │ │ │ │ ├── slam2d_g2o.cpp │ │ │ │ ├── slam2d_viewer.cpp │ │ │ │ └── slam2d_viewer.h │ │ │ ├── sphere/ │ │ │ │ ├── CMakeLists.txt │ │ │ │ └── create_sphere.cpp │ │ │ ├── target/ │ │ │ │ ├── CMakeLists.txt │ │ │ │ ├── constant_velocity_target.cpp │ │ │ │ ├── continuous_to_discrete.h │ │ │ │ ├── static_target.cpp │ │ │ │ ├── targetTypes3D.hpp │ │ │ │ └── targetTypes6D.hpp │ │ │ └── tutorial_slam2d/ │ │ │ ├── CMakeLists.txt │ │ │ ├── edge_se2.cpp │ │ │ ├── edge_se2.h │ │ │ ├── edge_se2_pointxy.cpp │ │ │ ├── edge_se2_pointxy.h │ │ │ ├── g2o_tutorial_slam2d_api.h │ │ │ ├── parameter_se2_offset.cpp │ │ │ ├── parameter_se2_offset.h │ │ │ ├── se2.h │ │ │ ├── simulator.cpp │ │ │ ├── simulator.h │ │ │ ├── tutorial_slam2d.cpp │ │ │ ├── types_tutorial_slam2d.cpp │ │ │ ├── types_tutorial_slam2d.h │ │ │ ├── vertex_point_xy.cpp │ │ │ ├── vertex_point_xy.h │ │ │ ├── vertex_se2.cpp │ │ │ └── vertex_se2.h │ │ ├── solvers/ │ │ │ ├── CMakeLists.txt │ │ │ ├── cholmod/ │ │ │ │ ├── CMakeLists.txt │ │ │ │ ├── cholmod_ext.h │ │ │ │ ├── cholmod_wrapper.cpp │ │ │ │ ├── cholmod_wrapper.h │ │ │ │ ├── linear_solver_cholmod.h │ │ │ │ └── solver_cholmod.cpp │ │ │ ├── csparse/ │ │ │ │ ├── CMakeLists.txt │ │ │ │ ├── csparse_extension.cpp │ │ │ │ ├── csparse_extension.h │ │ │ │ ├── csparse_helper.cpp │ │ │ │ ├── csparse_helper.h │ │ │ │ ├── csparse_wrapper.cpp │ │ │ │ ├── csparse_wrapper.h │ │ │ │ ├── g2o_csparse_api.h │ │ │ │ ├── g2o_csparse_extension_api.h │ │ │ │ ├── linear_solver_csparse.h │ │ │ │ └── solver_csparse.cpp │ │ │ ├── dense/ │ │ │ │ ├── CMakeLists.txt │ │ │ │ ├── linear_solver_dense.h │ │ │ │ └── solver_dense.cpp │ │ │ ├── eigen/ │ │ │ │ ├── CMakeLists.txt │ │ │ │ ├── linear_solver_eigen.h │ │ │ │ └── solver_eigen.cpp │ │ │ ├── pcg/ │ │ │ │ ├── CMakeLists.txt │ │ │ │ ├── linear_solver_pcg.h │ │ │ │ ├── linear_solver_pcg.hpp │ │ │ │ └── solver_pcg.cpp │ │ │ ├── slam2d_linear/ │ │ │ │ ├── CMakeLists.txt │ │ │ │ ├── g2o_slam2d_linear_api.h │ │ │ │ ├── slam2d_linear.cpp │ │ │ │ ├── solver_slam2d_linear.cpp │ │ │ │ └── solver_slam2d_linear.h │ │ │ └── structure_only/ │ │ │ ├── CMakeLists.txt │ │ │ ├── structure_only.cpp │ │ │ └── structure_only_solver.h │ │ ├── stuff/ │ │ │ ├── CMakeLists.txt │ │ │ ├── color_macros.h │ │ │ ├── command_args.cpp │ │ │ ├── command_args.h │ │ │ ├── filesys_tools.cpp │ │ │ ├── filesys_tools.h │ │ │ ├── g2o_stuff_api.h │ │ │ ├── logger.cpp │ │ │ ├── logger.h │ │ │ ├── logger_format.h │ │ │ ├── macros.h │ │ │ ├── misc.h │ │ │ ├── opengl_primitives.cpp │ │ │ ├── opengl_primitives.h │ │ │ ├── opengl_wrapper.h │ │ │ ├── property.cpp │ │ │ ├── property.h │ │ │ ├── sampler.cpp │ │ │ ├── sampler.h │ │ │ ├── sparse_helper.cpp │ │ │ ├── sparse_helper.h │ │ │ ├── string_tools.cpp │ │ │ ├── string_tools.h │ │ │ ├── tictoc.cpp │ │ │ ├── tictoc.h │ │ │ ├── timeutil.cpp │ │ │ ├── timeutil.h │ │ │ ├── tuple_tools.h │ │ │ └── unscented.h │ │ ├── types/ │ │ │ ├── CMakeLists.txt │ │ │ ├── data/ │ │ │ │ ├── CMakeLists.txt │ │ │ │ ├── data_queue.cpp │ │ │ │ ├── data_queue.h │ │ │ │ ├── g2o_types_data_api.h │ │ │ │ ├── laser_parameters.cpp │ │ │ │ ├── laser_parameters.h │ │ │ │ ├── raw_laser.cpp │ │ │ │ ├── raw_laser.h │ │ │ │ ├── robot_data.cpp │ │ │ │ ├── robot_data.h │ │ │ │ ├── robot_laser.cpp │ │ │ │ ├── robot_laser.h │ │ │ │ ├── types_data.cpp │ │ │ │ ├── types_data.h │ │ │ │ ├── vertex_ellipse.cpp │ │ │ │ ├── vertex_ellipse.h │ │ │ │ ├── vertex_tag.cpp │ │ │ │ └── vertex_tag.h │ │ │ ├── icp/ │ │ │ │ ├── CMakeLists.txt │ │ │ │ ├── g2o_types_icp_api.h │ │ │ │ ├── types_icp.cpp │ │ │ │ └── types_icp.h │ │ │ ├── sba/ │ │ │ │ ├── CMakeLists.txt │ │ │ │ ├── edge_project_p2mc.cpp │ │ │ │ ├── edge_project_p2mc.h │ │ │ │ ├── edge_project_p2sc.cpp │ │ │ │ ├── edge_project_p2sc.h │ │ │ │ ├── edge_project_psi2uv.cpp │ │ │ │ ├── edge_project_psi2uv.h │ │ │ │ ├── edge_project_stereo_xyz.cpp │ │ │ │ ├── edge_project_stereo_xyz.h │ │ │ │ ├── edge_project_stereo_xyz_onlypose.cpp │ │ │ │ ├── edge_project_stereo_xyz_onlypose.h │ │ │ │ ├── edge_project_xyz.cpp │ │ │ │ ├── edge_project_xyz.h │ │ │ │ ├── edge_project_xyz2uv.cpp │ │ │ │ ├── edge_project_xyz2uv.h │ │ │ │ ├── edge_project_xyz2uvu.cpp │ │ │ │ ├── edge_project_xyz2uvu.h │ │ │ │ ├── edge_project_xyz_onlypose.cpp │ │ │ │ ├── edge_project_xyz_onlypose.h │ │ │ │ ├── edge_sba_cam.cpp │ │ │ │ ├── edge_sba_cam.h │ │ │ │ ├── edge_sba_scale.cpp │ │ │ │ ├── edge_sba_scale.h │ │ │ │ ├── edge_se3_expmap.cpp │ │ │ │ ├── edge_se3_expmap.h │ │ │ │ ├── g2o_types_sba_api.h │ │ │ │ ├── parameter_cameraparameters.cpp │ │ │ │ ├── parameter_cameraparameters.h │ │ │ │ ├── sba_utils.h │ │ │ │ ├── sbacam.cpp │ │ │ │ ├── sbacam.h │ │ │ │ ├── types_sba.cpp │ │ │ │ ├── types_sba.h │ │ │ │ ├── types_six_dof_expmap.cpp │ │ │ │ ├── types_six_dof_expmap.h │ │ │ │ ├── vertex_cam.cpp │ │ │ │ ├── vertex_cam.h │ │ │ │ ├── vertex_intrinsics.cpp │ │ │ │ ├── vertex_intrinsics.h │ │ │ │ ├── vertex_se3_expmap.cpp │ │ │ │ └── vertex_se3_expmap.h │ │ │ ├── sclam2d/ │ │ │ │ ├── CMakeLists.txt │ │ │ │ ├── edge_se2_odom_differential_calib.cpp │ │ │ │ ├── edge_se2_odom_differential_calib.h │ │ │ │ ├── edge_se2_sensor_calib.cpp │ │ │ │ ├── edge_se2_sensor_calib.h │ │ │ │ ├── g2o_types_sclam2d_api.h │ │ │ │ ├── odometry_measurement.cpp │ │ │ │ ├── odometry_measurement.h │ │ │ │ ├── types_sclam2d.cpp │ │ │ │ ├── types_sclam2d.h │ │ │ │ ├── vertex_odom_differential_params.cpp │ │ │ │ └── vertex_odom_differential_params.h │ │ │ ├── sim3/ │ │ │ │ ├── CMakeLists.txt │ │ │ │ ├── sim3.h │ │ │ │ ├── types_seven_dof_expmap.cpp │ │ │ │ └── types_seven_dof_expmap.h │ │ │ ├── slam2d/ │ │ │ │ ├── CMakeLists.txt │ │ │ │ ├── edge_pointxy.cpp │ │ │ │ ├── edge_pointxy.h │ │ │ │ ├── edge_se2.cpp │ │ │ │ ├── edge_se2.h │ │ │ │ ├── edge_se2_lotsofxy.cpp │ │ │ │ ├── edge_se2_lotsofxy.h │ │ │ │ ├── edge_se2_offset.cpp │ │ │ │ ├── edge_se2_offset.h │ │ │ │ ├── edge_se2_pointxy.cpp │ │ │ │ ├── edge_se2_pointxy.h │ │ │ │ ├── edge_se2_pointxy_bearing.cpp │ │ │ │ ├── edge_se2_pointxy_bearing.h │ │ │ │ ├── edge_se2_pointxy_calib.cpp │ │ │ │ ├── edge_se2_pointxy_calib.h │ │ │ │ ├── edge_se2_pointxy_offset.cpp │ │ │ │ ├── edge_se2_pointxy_offset.h │ │ │ │ ├── edge_se2_prior.cpp │ │ │ │ ├── edge_se2_prior.h │ │ │ │ ├── edge_se2_twopointsxy.cpp │ │ │ │ ├── edge_se2_twopointsxy.h │ │ │ │ ├── edge_se2_xyprior.cpp │ │ │ │ ├── edge_se2_xyprior.h │ │ │ │ ├── edge_xy_prior.cpp │ │ │ │ ├── edge_xy_prior.h │ │ │ │ ├── g2o_types_slam2d_api.h │ │ │ │ ├── parameter_se2_offset.cpp │ │ │ │ ├── parameter_se2_offset.h │ │ │ │ ├── se2.h │ │ │ │ ├── types_slam2d.cpp │ │ │ │ ├── types_slam2d.h │ │ │ │ ├── vertex_point_xy.cpp │ │ │ │ ├── vertex_point_xy.h │ │ │ │ ├── vertex_se2.cpp │ │ │ │ └── vertex_se2.h │ │ │ ├── slam2d_addons/ │ │ │ │ ├── CMakeLists.txt │ │ │ │ ├── edge_line2d.cpp │ │ │ │ ├── edge_line2d.h │ │ │ │ ├── edge_line2d_pointxy.cpp │ │ │ │ ├── edge_line2d_pointxy.h │ │ │ │ ├── edge_se2_line2d.cpp │ │ │ │ ├── edge_se2_line2d.h │ │ │ │ ├── edge_se2_segment2d.cpp │ │ │ │ ├── edge_se2_segment2d.h │ │ │ │ ├── edge_se2_segment2d_line.cpp │ │ │ │ ├── edge_se2_segment2d_line.h │ │ │ │ ├── edge_se2_segment2d_pointLine.cpp │ │ │ │ ├── edge_se2_segment2d_pointLine.h │ │ │ │ ├── g2o_types_slam2d_addons_api.h │ │ │ │ ├── line_2d.h │ │ │ │ ├── types_slam2d_addons.cpp │ │ │ │ ├── types_slam2d_addons.h │ │ │ │ ├── vertex_line2d.cpp │ │ │ │ ├── vertex_line2d.h │ │ │ │ ├── vertex_segment2d.cpp │ │ │ │ └── vertex_segment2d.h │ │ │ ├── slam3d/ │ │ │ │ ├── CMakeLists.txt │ │ │ │ ├── dquat2mat.cpp │ │ │ │ ├── dquat2mat.h │ │ │ │ ├── dquat2mat.wxm │ │ │ │ ├── dquat2mat_maxima_generated.cpp │ │ │ │ ├── edge_pointxyz.cpp │ │ │ │ ├── edge_pointxyz.h │ │ │ │ ├── edge_se3.cpp │ │ │ │ ├── edge_se3.h │ │ │ │ ├── edge_se3_lotsofxyz.cpp │ │ │ │ ├── edge_se3_lotsofxyz.h │ │ │ │ ├── edge_se3_offset.cpp │ │ │ │ ├── edge_se3_offset.h │ │ │ │ ├── edge_se3_pointxyz.cpp │ │ │ │ ├── edge_se3_pointxyz.h │ │ │ │ ├── edge_se3_pointxyz_depth.cpp │ │ │ │ ├── edge_se3_pointxyz_depth.h │ │ │ │ ├── edge_se3_pointxyz_disparity.cpp │ │ │ │ ├── edge_se3_pointxyz_disparity.h │ │ │ │ ├── edge_se3_prior.cpp │ │ │ │ ├── edge_se3_prior.h │ │ │ │ ├── edge_se3_xyzprior.cpp │ │ │ │ ├── edge_se3_xyzprior.h │ │ │ │ ├── edge_xyz_prior.cpp │ │ │ │ ├── edge_xyz_prior.h │ │ │ │ ├── g2o_types_slam3d_api.h │ │ │ │ ├── isometry3d_gradients.cpp │ │ │ │ ├── isometry3d_gradients.h │ │ │ │ ├── isometry3d_mappings.cpp │ │ │ │ ├── isometry3d_mappings.h │ │ │ │ ├── parameter_camera.cpp │ │ │ │ ├── parameter_camera.h │ │ │ │ ├── parameter_se3_offset.cpp │ │ │ │ ├── parameter_se3_offset.h │ │ │ │ ├── parameter_stereo_camera.cpp │ │ │ │ ├── parameter_stereo_camera.h │ │ │ │ ├── se3_ops.h │ │ │ │ ├── se3_ops.hpp │ │ │ │ ├── se3quat.h │ │ │ │ ├── types_slam3d.cpp │ │ │ │ ├── types_slam3d.h │ │ │ │ ├── vertex_pointxyz.cpp │ │ │ │ ├── vertex_pointxyz.h │ │ │ │ ├── vertex_se3.cpp │ │ │ │ └── vertex_se3.h │ │ │ └── slam3d_addons/ │ │ │ ├── CMakeLists.txt │ │ │ ├── edge_plane.cpp │ │ │ ├── edge_plane.h │ │ │ ├── edge_se3_calib.cpp │ │ │ ├── edge_se3_calib.h │ │ │ ├── edge_se3_euler.cpp │ │ │ ├── edge_se3_euler.h │ │ │ ├── edge_se3_line.cpp │ │ │ ├── edge_se3_line.h │ │ │ ├── edge_se3_plane_calib.cpp │ │ │ ├── edge_se3_plane_calib.h │ │ │ ├── g2o_types_slam3d_addons_api.h │ │ │ ├── line3d.cpp │ │ │ ├── line3d.h │ │ │ ├── plane3d.h │ │ │ ├── types_slam3d_addons.cpp │ │ │ ├── types_slam3d_addons.h │ │ │ ├── vertex_line3d.cpp │ │ │ ├── vertex_line3d.h │ │ │ ├── vertex_plane.cpp │ │ │ ├── vertex_plane.h │ │ │ ├── vertex_se3_euler.cpp │ │ │ └── vertex_se3_euler.h │ │ └── what_is_in_these_directories.txt │ ├── script/ │ │ ├── android.toolchain.cmake │ │ ├── install-additional-deps-windows.bat │ │ ├── install-deps-linux.sh │ │ ├── install-deps-osx.sh │ │ └── install-deps-windows.bat │ └── unit_test/ │ ├── CMakeLists.txt │ ├── data/ │ │ ├── CMakeLists.txt │ │ ├── data_queue_tests.cpp │ │ └── io_data.cpp │ ├── general/ │ │ ├── CMakeLists.txt │ │ ├── allocate_optimizer.cpp │ │ ├── allocate_optimizer.h │ │ ├── auto_diff.cpp │ │ ├── base_fixed_sized_edge.cpp │ │ ├── batch_statistics.cpp │ │ ├── clear_and_redo.cpp │ │ ├── graph_operations.cpp │ │ ├── robust_kernel_tests.cpp │ │ └── sparse_block_matrix.cpp │ ├── sba/ │ │ ├── CMakeLists.txt │ │ ├── io_sba.cpp │ │ └── io_six_dof_expmap.cpp │ ├── sclam2d/ │ │ ├── CMakeLists.txt │ │ ├── io_sclam2d.cpp │ │ └── odom_convert_sclam2d.cpp │ ├── sim3/ │ │ ├── CMakeLists.txt │ │ ├── allocate_sim3.cpp │ │ ├── io_sim3.cpp │ │ └── jacobians_sim3.cpp │ ├── slam2d/ │ │ ├── CMakeLists.txt │ │ ├── io_slam2d.cpp │ │ ├── jacobians_slam2d.cpp │ │ └── mappings_se2.cpp │ ├── slam2d_addons/ │ │ ├── CMakeLists.txt │ │ └── io_slam2d_addons.cpp │ ├── slam3d/ │ │ ├── CMakeLists.txt │ │ ├── io_slam3d.cpp │ │ ├── jacobians_slam3d.cpp │ │ ├── mappings_slam3d.cpp │ │ ├── optimization_slam3d.cpp │ │ └── orthogonal_matrix.cpp │ ├── slam3d_addons/ │ │ ├── CMakeLists.txt │ │ └── io_slam3d_addons.cpp │ ├── solver/ │ │ ├── CMakeLists.txt │ │ ├── allocate_algorithm_test.cpp │ │ ├── linear_solver_test.cpp │ │ ├── sparse_system_helper.cpp │ │ └── sparse_system_helper.h │ ├── stuff/ │ │ ├── CMakeLists.txt │ │ ├── command_args_tests.cpp │ │ ├── filesys_tools_tests.cpp │ │ ├── misc_tests.cpp │ │ ├── property_tests.cpp │ │ ├── string_tools_tests.cpp │ │ ├── tuple_tools_tests.cpp │ │ └── unscented_tests.cpp │ └── test_helper/ │ ├── eigen_matcher.h │ ├── evaluate_jacobian.h │ ├── io.h │ ├── random_state.h │ └── test_main.cpp ├── build.sh ├── cmake_modules/ │ └── FindEigen3.cmake ├── include/ │ ├── Converter.h │ ├── Frame.h │ ├── FrameDrawer.h │ ├── Initializer.h │ ├── KeyFrame.h │ ├── KeyFrameDatabase.h │ ├── LocalMapping.h │ ├── LoopClosing.h │ ├── Map.h │ ├── MapDrawer.h │ ├── MapPoint.h │ ├── ORBVocabulary.h │ ├── ORBextractor.h │ ├── ORBmatcher.h │ ├── Optimizer.h │ ├── PnPsolver.h │ ├── Sim3Solver.h │ ├── System.h │ ├── Tracking.h │ ├── Viewer.h │ ├── cuda/ │ │ ├── orb_gpu.hpp │ │ ├── orb_matcher.hpp │ │ ├── synced_mem_holder.hpp │ │ └── tracking_gpu.hpp │ ├── tictoc.hpp │ └── tictoc_cuda.hpp └── src/ ├── Converter.cpp ├── Frame.cpp ├── FrameDrawer.cpp ├── Initializer.cpp ├── KeyFrame.cpp ├── KeyFrameDatabase.cpp ├── LocalMapping.cpp ├── LoopClosing.cpp ├── Map.cpp ├── MapDrawer.cpp ├── MapPoint.cpp ├── ORBextractor.cpp ├── ORBmatcher.cpp ├── Optimizer.cpp ├── PnPsolver.cpp ├── Sim3Solver.cpp ├── System.cpp ├── Tracking.cpp ├── Viewer.cpp └── cuda/ ├── orb_FAST_apply_NMS_G.cu ├── orb_FAST_apply_NMS_L.cu ├── orb_FAST_apply_NMS_MS.cpp ├── orb_FAST_apply_NMS_MS.cu ├── orb_FAST_compute_score.cu ├── orb_FAST_obtain_keypoints.cpp ├── orb_FAST_orientation.cu ├── orb_bitpattern.cpp ├── orb_copy_output.cu ├── orb_descriptor.cu ├── orb_gaussian.cu ├── orb_gpu.cpp ├── orb_matcher.cu ├── orb_pyramid.cu ├── orb_stereo_match.cu ├── synced_mem_holder.cpp └── tracking_isinfrustum.cu