Pose Graph 3D
----------------
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.
The example also illustrates how to use Eigen's geometry module with Ceres'
automatic differentiation functionality. To represent the orientation, we will
use Eigen's quaternion which uses the Hamiltonian convention but has different
element ordering as compared with Ceres's rotation representation. Specifically
they differ by whether the scalar component q_w is first or last; the element
order for Ceres's quaternion is [q_w, q_x, q_y, q_z] where as Eigen's quaternion
is [q_x, q_y, q_z, q_w].
This package defines the necessary Ceres cost functions needed to model the
3-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_3d` that will read a problem
definition file. This executable can work with any 3D problem definition that
uses the g2o format with quaternions used for the orientation representation. It
would be relatively straightforward to implement a new reader for a different
format such as TORO or others. `pose_graph_3d` 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 z q_x q_y q_z q_w
pose_id x y z q_x q_y q_z q_w
pose_id x y z q_x q_y q_z q_w
...
```
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_3d` has one flag `--input` which is the path to the
problem definition. To run the executable,
```
/path/to/bin/pose_graph_3d --input /path/to/dataset/dataset.g2o
```
A script is provided to visualize the resulting output files. There is also an
option to enable equal axes using ```--axes_equal```.
```
/path/to/repo/examples/slam/pose_graph_3d/plot_results.py --optimized_poses ./poses_optimized.txt --initial_poses ./poses_original.txt
```
没有合适的资源?快使用搜索试试~ 我知道了~
ceres-solver-2.0.0.tar.gz
需积分: 9 9 下载量 152 浏览量
2022-01-13
14:51:12
上传
评论
收藏 3.54MB GZ 举报
温馨提示
共678个文件
cc:348个
h:192个
dat:27个
Ceres库
资源详情
资源评论
资源推荐
收起资源包目录
ceres-solver-2.0.0.tar.gz (678个子文件)
problem_02.bin 285KB
problem_03.bin 123KB
problem_01.bin 102KB
BUILD 7KB
BUILD 4KB
ceres.bzl 7KB
curve_fitting.c 6KB
gmock_gtest_all.cc 491KB
problem_test.cc 79KB
covariance_test.cc 44KB
line_search.cc 38KB
problem_impl.cc 36KB
rotation_test.cc 36KB
solver.cc 35KB
covariance_impl.cc 34KB
local_parameterization_test.cc 33KB
trust_region_minimizer.cc 31KB
libmv_bundle_adjuster.cc 29KB
dogleg_strategy.cc 26KB
more_garbow_hillstrom.cc 26KB
fixed_array_test.cc 26KB
nist.cc 25KB
dynamic_autodiff_cost_function_test.cc 25KB
jet_test.cc 24KB
compressed_row_sparse_matrix.cc 24KB
visibility_based_preconditioner.cc 23KB
reorder_program.cc 23KB
evaluator_test.cc 22KB
gradient_checker_test.cc 22KB
program.cc 20KB
autodiff_test.cc 19KB
line_search_minimizer.cc 19KB
compressed_row_sparse_matrix_test.cc 19KB
numeric_diff_cost_function_test.cc 19KB
small_blas_test.cc 18KB
linear_least_squares_problems.cc 17KB
solver_test.cc 17KB
dynamic_numeric_diff_cost_function_test.cc 16KB
gradient_checking_cost_function_test.cc 16KB
cubic_interpolation_test.cc 16KB
autodiff_benchmarks.cc 16KB
trust_region_preprocessor.cc 15KB
line_search_direction.cc 15KB
evaluation_callback_test.cc 15KB
ellipse_approximation.cc 15KB
block_sparse_matrix.cc 15KB
polynomial_test.cc 15KB
dynamic_sparsity_test.cc 15KB
trust_region_minimizer_test.cc 15KB
bundle_adjuster.cc 15KB
schur_complement_solver.cc 15KB
libmv_homography.cc 14KB
suitesparse.cc 14KB
cost_function_to_functor_test.cc 14KB
program_test.cc 14KB
sparse_cholesky_test.cc 14KB
robot_pose_mle.cc 14KB
inner_product_computer.cc 13KB
visibility_based_preconditioner_test.cc 13KB
schur_eliminator_test.cc 13KB
polynomial.cc 13KB
trust_region_preprocessor_test.cc 13KB
local_parameterization.cc 12KB
gradient_problem_solver.cc 11KB
denoising.cc 11KB
gradient_checking_cost_function.cc 11KB
residual_block_test.cc 11KB
gradient_checker.cc 11KB
accelerate_sparse.cc 11KB
bal_problem.cc 11KB
dogleg_strategy_test.cc 11KB
reorder_program_test.cc 11KB
inner_product_computer_test.cc 10KB
coordinate_descent_minimizer.cc 10KB
types.cc 10KB
loss_function_test.cc 10KB
compressed_row_jacobian_writer.cc 10KB
dynamic_sparse_normal_cholesky_solver.cc 10KB
schur_complement_solver_test.cc 10KB
triplet_sparse_matrix.cc 9KB
triplet_sparse_matrix_test.cc 9KB
parameter_block_test.cc 9KB
cxsparse.cc 9KB
parallel_for_cxx.cc 9KB
corrector_test.cc 9KB
numeric_diff_test_utils.cc 8KB
residual_block.cc 8KB
block_jacobian_writer.cc 8KB
compressed_col_sparse_matrix_utils_test.cc 8KB
canonical_views_clustering.cc 8KB
conjugate_gradients_solver.cc 8KB
schur_eliminator_benchmark.cc 8KB
system_test.cc 8KB
subset_preconditioner_test.cc 8KB
problem.cc 8KB
low_rank_inverse_hessian.cc 8KB
detect_structure_test.cc 8KB
implicit_schur_complement.cc 8KB
partitioned_matrix_view.cc 8KB
simple_bundle_adjuster.cc 8KB
共 678 条
- 1
- 2
- 3
- 4
- 5
- 6
- 7
不甘平凡的平凡之人
- 粉丝: 22
- 资源: 4
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0