You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
exercise_2/3rdparty/colmap-build/ceres-solver-1.14.0/examples/slam/pose_graph_2d
Aoi 82a5d8a216
Merge branch 'hexuesong' of https://bdgit.educoder.net/pbyhqr72x/exercise_2 into hexuesong
3 years ago
..
CMakeLists.txt Merge branch 'hexuesong' of https://bdgit.educoder.net/pbyhqr72x/exercise_2 into hexuesong 3 years ago
README.md Merge branch 'hexuesong' of https://bdgit.educoder.net/pbyhqr72x/exercise_2 into hexuesong 3 years ago
angle_local_parameterization.h Merge branch 'hexuesong' of https://bdgit.educoder.net/pbyhqr72x/exercise_2 into hexuesong 3 years ago
normalize_angle.h Merge branch 'hexuesong' of https://bdgit.educoder.net/pbyhqr72x/exercise_2 into hexuesong 3 years ago
plot_results.py Merge branch 'hexuesong' of https://bdgit.educoder.net/pbyhqr72x/exercise_2 into hexuesong 3 years ago
pose_graph_2d.cc Merge branch 'hexuesong' of https://bdgit.educoder.net/pbyhqr72x/exercise_2 into hexuesong 3 years ago
pose_graph_2d_error_term.h Merge branch 'hexuesong' of https://bdgit.educoder.net/pbyhqr72x/exercise_2 into hexuesong 3 years ago
types.h Merge branch 'hexuesong' of https://bdgit.educoder.net/pbyhqr72x/exercise_2 into hexuesong 3 years ago

README.md

Pose Graph 2D

The Simultaneous Localization and Mapping (SLAM) problem consists of building a map of an unknown environment while simultaneously localizing against this map. The main difficulty of this problem stems from not having any additional external aiding information such as GPS. SLAM has been considered one of the fundamental challenges of robotics. A pose graph optimization problem is one example of a SLAM problem.

This package defines the necessary Ceres cost functions needed to model the 2-dimensional pose graph optimization problem as well as a binary to build and solve the problem. The cost functions are shown for instruction purposes and can be speed up by using analytical derivatives which take longer to implement.

Running

This package includes an executable pose_graph_2d that will read a problem definition file. This executable can work with any 2D problem definition that uses the g2o format. It would be relatively straightforward to implement a new reader for a different format such as TORO or others. pose_graph_2d will print the Ceres solver full summary and then output to disk the original and optimized poses (poses_original.txt and poses_optimized.txt, respectively) of the robot in the following format:

pose_id x y yaw_radians
pose_id x y yaw_radians
pose_id x y yaw_radians
...

where pose_id is the corresponding integer ID from the file definition. Note, the file will be sorted in ascending order for the pose_id.

The executable pose_graph_2d has one flag --input which is the path to the problem definition. To run the executable,

/path/to/bin/pose_graph_2d --input /path/to/dataset/dataset.g2o

A python script is provided to visualize the resulting output files.

/path/to/repo/examples/slam/pose_graph_2d/plot_results.py --optimized_poses ./poses_optimized.txt --initial_poses ./poses_original.txt