From cd626b03f993eec83e5ea79a1469010e433fceff Mon Sep 17 00:00:00 2001
From: Samuel Leong
Date: Thu, 5 May 2022 00:52:50 -0400
Subject: [PATCH] Fix issues with documentation generation
---
Doxyfile | 6 +-
doc/html/annotated.html | 119 ++
doc/html/annotated_dup.js | 27 +
.../class_coord_1_1_cart_coord-members.html | 116 ++
doc/html/class_coord_1_1_cart_coord.html | 514 +++++++
doc/html/class_coord_1_1_cart_coord.js | 18 +
.../class_coord_1_1_polar_coord-members.html | 110 ++
doc/html/class_coord_1_1_polar_coord.html | 312 +++++
doc/html/class_coord_1_1_polar_coord.js | 12 +
.../class_mapping_1_1_keyframe-members.html | 115 ++
doc/html/class_mapping_1_1_keyframe.html | 470 +++++++
doc/html/class_mapping_1_1_keyframe.js | 17 +
doc/html/class_mapping_1_1_map-members.html | 113 ++
doc/html/class_mapping_1_1_map.html | 414 ++++++
doc/html/class_mapping_1_1_map.js | 15 +
...aph_lib_1_1_bundle_adjustment-members.html | 108 ++
..._pose_graph_lib_1_1_bundle_adjustment.html | 369 +++++
...ss_pose_graph_lib_1_1_bundle_adjustment.js | 10 +
...b_1_1_pose_graph_optimization-members.html | 106 ++
...graph_lib_1_1_pose_graph_optimization.html | 278 ++++
...e_graph_lib_1_1_pose_graph_optimization.js | 8 +
...system_1_1_raw_r_o_a_m_system-members.html | 119 ++
...r_o_a_m_system_1_1_raw_r_o_a_m_system.html | 667 +++++++++
...w_r_o_a_m_system_1_1_raw_r_o_a_m_system.js | 21 +
.../class_tracker_1_1_tracker-members.html | 113 ++
doc/html/class_tracker_1_1_tracker.html | 498 +++++++
doc/html/class_tracker_1_1_tracker.js | 15 +
doc/html/classes.html | 122 ++
..._1_1_motion_distortion_solver-members.html | 126 ++
...stortion_1_1_motion_distortion_solver.html | 824 ++++++++++++
...distortion_1_1_motion_distortion_solver.js | 26 +
...ctory_plotting_1_1_trajectory-members.html | 111 ++
...asstrajectory_plotting_1_1_trajectory.html | 421 ++++++
...classtrajectory_plotting_1_1_trajectory.js | 13 +
doc/html/functions.html | 275 ++++
doc/html/functions_func.html | 203 +++
doc/html/functions_vars.html | 195 +++
doc/html/hierarchy.html | 114 ++
doc/html/hierarchy.js | 17 +
doc/html/index.html | 8 +-
doc/html/md__r_e_a_d_m_e.html | 125 ++
doc/html/menudata.js | 124 +-
doc/html/namespace_a_n_m_s.html | 154 +++
doc/html/namespace_coord.html | 109 ++
doc/html/namespace_coord.js | 5 +
doc/html/namespace_f_m_t.html | 651 +++++++++
doc/html/namespace_mapping.html | 178 +++
doc/html/namespace_mapping.js | 9 +
doc/html/namespace_pose_graph_lib.html | 109 ++
doc/html/namespace_pose_graph_lib.js | 5 +
doc/html/namespace_raw_r_o_a_m_system.html | 283 ++++
doc/html/namespace_raw_r_o_a_m_system.js | 14 +
doc/html/namespace_tracker.html | 107 ++
doc/html/namespace_tracker.js | 4 +
doc/html/namespacegen_fake_data.html | 536 ++++++++
doc/html/namespaceget_features.html | 717 ++++++++++
doc/html/namespaceget_point_cloud.html | 378 ++++++
doc/html/namespaceget_transform_k_l_t.html | 1191 +++++++++++++++++
doc/html/namespacemembers.html | 105 ++
doc/html/namespacemembers_b.html | 107 ++
doc/html/namespacemembers_c.html | 125 ++
doc/html/namespacemembers_d.html | 111 ++
doc/html/namespacemembers_dup.js | 25 +
doc/html/namespacemembers_e.html | 109 ++
doc/html/namespacemembers_f.html | 113 ++
doc/html/namespacemembers_func.html | 215 +++
doc/html/namespacemembers_g.html | 125 ++
doc/html/namespacemembers_h.html | 102 ++
doc/html/namespacemembers_i.html | 109 ++
doc/html/namespacemembers_k.html | 100 ++
doc/html/namespacemembers_l.html | 100 ++
doc/html/namespacemembers_m.html | 102 ++
doc/html/namespacemembers_n.html | 115 ++
doc/html/namespacemembers_o.html | 101 ++
doc/html/namespacemembers_p.html | 120 ++
doc/html/namespacemembers_q.html | 100 ++
doc/html/namespacemembers_r.html | 112 ++
doc/html/namespacemembers_s.html | 117 ++
doc/html/namespacemembers_t.html | 120 ++
doc/html/namespacemembers_u.html | 101 ++
doc/html/namespacemembers_v.html | 103 ++
doc/html/namespacemembers_vars.html | 102 ++
doc/html/namespacemembers_vars.js | 24 +
doc/html/namespacemembers_vars_b.html | 107 ++
doc/html/namespacemembers_vars_c.html | 111 ++
doc/html/namespacemembers_vars_d.html | 109 ++
doc/html/namespacemembers_vars_e.html | 107 ++
doc/html/namespacemembers_vars_f.html | 111 ++
doc/html/namespacemembers_vars_g.html | 106 ++
doc/html/namespacemembers_vars_h.html | 101 ++
doc/html/namespacemembers_vars_i.html | 108 ++
doc/html/namespacemembers_vars_k.html | 100 ++
doc/html/namespacemembers_vars_l.html | 100 ++
doc/html/namespacemembers_vars_m.html | 102 ++
doc/html/namespacemembers_vars_n.html | 114 ++
doc/html/namespacemembers_vars_o.html | 101 ++
doc/html/namespacemembers_vars_p.html | 114 ++
doc/html/namespacemembers_vars_r.html | 109 ++
doc/html/namespacemembers_vars_s.html | 116 ++
doc/html/namespacemembers_vars_t.html | 117 ++
doc/html/namespacemembers_vars_u.html | 101 ++
doc/html/namespacemembers_vars_v.html | 102 ++
doc/html/namespacemembers_vars_w.html | 100 ++
doc/html/namespacemembers_w.html | 100 ++
doc/html/namespacemotion_distortion.html | 144 ++
doc/html/namespacemotion_distortion.js | 6 +
doc/html/namespaceoutlier_rejection.html | 481 +++++++
doc/html/namespaceparse_data.html | 678 ++++++++++
doc/html/namespaces.html | 130 ++
doc/html/namespaces_dup.js | 291 ++++
doc/html/namespacetest_motion_distortion.html | 766 +++++++++++
doc/html/namespacetest_transform.html | 460 +++++++
doc/html/namespacetrajectory_plotting.html | 404 ++++++
doc/html/namespacetrajectory_plotting.js | 17 +
doc/html/namespaceutils.html | 494 +++++++
doc/html/navtreedata.js | 33 +-
doc/html/navtreeindex0.js | 252 +++-
doc/html/navtreeindex1.js | 253 ++++
doc/html/navtreeindex2.js | 140 ++
doc/html/pages.html | 103 ++
doc/html/search/all_0.html | 37 +
doc/html/search/all_0.js | 5 +
doc/html/search/all_1.html | 37 +
doc/html/search/all_1.js | 21 +
doc/html/search/all_10.html | 37 +
doc/html/search/all_10.js | 37 +
doc/html/search/all_11.html | 37 +
doc/html/search/all_11.js | 4 +
doc/html/search/all_12.html | 37 +
doc/html/search/all_12.js | 21 +
doc/html/search/all_13.html | 37 +
doc/html/search/all_13.js | 27 +
doc/html/search/all_14.html | 37 +
doc/html/search/all_14.js | 37 +
doc/html/search/all_15.html | 37 +
doc/html/search/all_15.js | 13 +
doc/html/search/all_16.html | 37 +
doc/html/search/all_16.js | 8 +
doc/html/search/all_17.html | 37 +
doc/html/search/all_17.js | 4 +
doc/html/search/all_18.html | 37 +
doc/html/search/all_18.js | 4 +
doc/html/search/all_19.html | 37 +
doc/html/search/all_19.js | 4 +
doc/html/search/all_2.html | 37 +
doc/html/search/all_2.js | 12 +
doc/html/search/all_3.html | 37 +
doc/html/search/all_3.js | 34 +
doc/html/search/all_4.html | 37 +
doc/html/search/all_4.js | 17 +
doc/html/search/all_5.html | 37 +
doc/html/search/all_5.js | 16 +
doc/html/search/all_6.html | 37 +
doc/html/search/all_6.js | 22 +
doc/html/search/all_7.html | 37 +
doc/html/search/all_7.js | 44 +
doc/html/search/all_8.html | 37 +
doc/html/search/all_8.js | 7 +
doc/html/search/all_9.html | 37 +
doc/html/search/all_9.js | 17 +
doc/html/search/all_a.html | 37 +
doc/html/search/all_a.js | 5 +
doc/html/search/all_b.html | 37 +
doc/html/search/all_b.js | 6 +
doc/html/search/all_c.html | 37 +
doc/html/search/all_c.js | 4 +
doc/html/search/all_d.html | 37 +
doc/html/search/all_d.js | 12 +
doc/html/search/all_e.html | 37 +
doc/html/search/all_e.js | 19 +
doc/html/search/all_f.html | 37 +
doc/html/search/all_f.js | 8 +
doc/html/search/classes_0.html | 37 +
doc/html/search/classes_0.js | 4 +
doc/html/search/classes_1.html | 37 +
doc/html/search/classes_1.js | 4 +
doc/html/search/classes_2.html | 37 +
doc/html/search/classes_2.js | 4 +
doc/html/search/classes_3.html | 37 +
doc/html/search/classes_3.js | 5 +
doc/html/search/classes_4.html | 37 +
doc/html/search/classes_4.js | 5 +
doc/html/search/classes_5.html | 37 +
doc/html/search/classes_5.js | 4 +
doc/html/search/classes_6.html | 37 +
doc/html/search/classes_6.js | 5 +
doc/html/search/functions_0.html | 37 +
doc/html/search/functions_0.js | 5 +
doc/html/search/functions_1.html | 37 +
doc/html/search/functions_1.js | 17 +
doc/html/search/functions_10.html | 37 +
doc/html/search/functions_10.js | 8 +
doc/html/search/functions_11.html | 37 +
doc/html/search/functions_11.js | 10 +
doc/html/search/functions_12.html | 37 +
doc/html/search/functions_12.js | 4 +
doc/html/search/functions_2.html | 37 +
doc/html/search/functions_2.js | 20 +
doc/html/search/functions_3.html | 37 +
doc/html/search/functions_3.js | 5 +
doc/html/search/functions_4.html | 37 +
doc/html/search/functions_4.js | 8 +
doc/html/search/functions_5.html | 37 +
doc/html/search/functions_5.js | 5 +
doc/html/search/functions_6.html | 37 +
doc/html/search/functions_6.js | 34 +
doc/html/search/functions_7.html | 37 +
doc/html/search/functions_7.js | 4 +
doc/html/search/functions_8.html | 37 +
doc/html/search/functions_8.js | 7 +
doc/html/search/functions_9.html | 37 +
doc/html/search/functions_9.js | 5 +
doc/html/search/functions_a.html | 37 +
doc/html/search/functions_a.js | 4 +
doc/html/search/functions_b.html | 37 +
doc/html/search/functions_b.js | 5 +
doc/html/search/functions_c.html | 37 +
doc/html/search/functions_c.js | 12 +
doc/html/search/functions_d.html | 37 +
doc/html/search/functions_d.js | 4 +
doc/html/search/functions_e.html | 37 +
doc/html/search/functions_e.js | 7 +
doc/html/search/functions_f.html | 37 +
doc/html/search/functions_f.js | 9 +
doc/html/search/namespaces_0.html | 37 +
doc/html/search/namespaces_0.js | 4 +
doc/html/search/namespaces_1.html | 37 +
doc/html/search/namespaces_1.js | 4 +
doc/html/search/namespaces_2.html | 37 +
doc/html/search/namespaces_2.js | 4 +
doc/html/search/namespaces_3.html | 37 +
doc/html/search/namespaces_3.js | 7 +
doc/html/search/namespaces_4.html | 37 +
doc/html/search/namespaces_4.js | 5 +
doc/html/search/namespaces_5.html | 37 +
doc/html/search/namespaces_5.js | 4 +
doc/html/search/namespaces_6.html | 37 +
doc/html/search/namespaces_6.js | 5 +
doc/html/search/namespaces_7.html | 37 +
doc/html/search/namespaces_7.js | 4 +
doc/html/search/namespaces_8.html | 37 +
doc/html/search/namespaces_8.js | 7 +
doc/html/search/namespaces_9.html | 37 +
doc/html/search/namespaces_9.js | 4 +
doc/html/search/pages_0.html | 37 +
doc/html/search/pages_0.js | 4 +
doc/html/search/searchdata.js | 18 +
doc/html/search/variables_0.html | 37 +
doc/html/search/variables_0.js | 6 +
doc/html/search/variables_1.html | 37 +
doc/html/search/variables_1.js | 11 +
doc/html/search/variables_10.html | 37 +
doc/html/search/variables_10.js | 22 +
doc/html/search/variables_11.html | 37 +
doc/html/search/variables_11.js | 27 +
doc/html/search/variables_12.html | 37 +
doc/html/search/variables_12.js | 5 +
doc/html/search/variables_13.html | 37 +
doc/html/search/variables_13.js | 7 +
doc/html/search/variables_14.html | 37 +
doc/html/search/variables_14.js | 4 +
doc/html/search/variables_15.html | 37 +
doc/html/search/variables_15.js | 4 +
doc/html/search/variables_16.html | 37 +
doc/html/search/variables_16.js | 4 +
doc/html/search/variables_2.html | 37 +
doc/html/search/variables_2.js | 15 +
doc/html/search/variables_3.html | 37 +
doc/html/search/variables_3.js | 15 +
doc/html/search/variables_4.html | 37 +
doc/html/search/variables_4.js | 11 +
doc/html/search/variables_5.html | 37 +
doc/html/search/variables_5.js | 19 +
doc/html/search/variables_6.html | 37 +
doc/html/search/variables_6.js | 10 +
doc/html/search/variables_7.html | 37 +
doc/html/search/variables_7.js | 6 +
doc/html/search/variables_8.html | 37 +
doc/html/search/variables_8.js | 13 +
doc/html/search/variables_9.html | 37 +
doc/html/search/variables_9.js | 5 +
doc/html/search/variables_a.html | 37 +
doc/html/search/variables_a.js | 4 +
doc/html/search/variables_b.html | 37 +
doc/html/search/variables_b.js | 8 +
doc/html/search/variables_c.html | 37 +
doc/html/search/variables_c.js | 18 +
doc/html/search/variables_d.html | 37 +
doc/html/search/variables_d.js | 5 +
doc/html/search/variables_e.html | 37 +
doc/html/search/variables_e.js | 24 +
doc/html/search/variables_f.html | 37 +
doc/html/search/variables_f.js | 15 +
293 files changed, 25505 insertions(+), 12 deletions(-)
create mode 100644 doc/html/annotated.html
create mode 100644 doc/html/annotated_dup.js
create mode 100644 doc/html/class_coord_1_1_cart_coord-members.html
create mode 100644 doc/html/class_coord_1_1_cart_coord.html
create mode 100644 doc/html/class_coord_1_1_cart_coord.js
create mode 100644 doc/html/class_coord_1_1_polar_coord-members.html
create mode 100644 doc/html/class_coord_1_1_polar_coord.html
create mode 100644 doc/html/class_coord_1_1_polar_coord.js
create mode 100644 doc/html/class_mapping_1_1_keyframe-members.html
create mode 100644 doc/html/class_mapping_1_1_keyframe.html
create mode 100644 doc/html/class_mapping_1_1_keyframe.js
create mode 100644 doc/html/class_mapping_1_1_map-members.html
create mode 100644 doc/html/class_mapping_1_1_map.html
create mode 100644 doc/html/class_mapping_1_1_map.js
create mode 100644 doc/html/class_pose_graph_lib_1_1_bundle_adjustment-members.html
create mode 100644 doc/html/class_pose_graph_lib_1_1_bundle_adjustment.html
create mode 100644 doc/html/class_pose_graph_lib_1_1_bundle_adjustment.js
create mode 100644 doc/html/class_pose_graph_lib_1_1_pose_graph_optimization-members.html
create mode 100644 doc/html/class_pose_graph_lib_1_1_pose_graph_optimization.html
create mode 100644 doc/html/class_pose_graph_lib_1_1_pose_graph_optimization.js
create mode 100644 doc/html/class_raw_r_o_a_m_system_1_1_raw_r_o_a_m_system-members.html
create mode 100644 doc/html/class_raw_r_o_a_m_system_1_1_raw_r_o_a_m_system.html
create mode 100644 doc/html/class_raw_r_o_a_m_system_1_1_raw_r_o_a_m_system.js
create mode 100644 doc/html/class_tracker_1_1_tracker-members.html
create mode 100644 doc/html/class_tracker_1_1_tracker.html
create mode 100644 doc/html/class_tracker_1_1_tracker.js
create mode 100644 doc/html/classes.html
create mode 100644 doc/html/classmotion_distortion_1_1_motion_distortion_solver-members.html
create mode 100644 doc/html/classmotion_distortion_1_1_motion_distortion_solver.html
create mode 100644 doc/html/classmotion_distortion_1_1_motion_distortion_solver.js
create mode 100644 doc/html/classtrajectory_plotting_1_1_trajectory-members.html
create mode 100644 doc/html/classtrajectory_plotting_1_1_trajectory.html
create mode 100644 doc/html/classtrajectory_plotting_1_1_trajectory.js
create mode 100644 doc/html/functions.html
create mode 100644 doc/html/functions_func.html
create mode 100644 doc/html/functions_vars.html
create mode 100644 doc/html/hierarchy.html
create mode 100644 doc/html/hierarchy.js
create mode 100644 doc/html/md__r_e_a_d_m_e.html
create mode 100644 doc/html/namespace_a_n_m_s.html
create mode 100644 doc/html/namespace_coord.html
create mode 100644 doc/html/namespace_coord.js
create mode 100644 doc/html/namespace_f_m_t.html
create mode 100644 doc/html/namespace_mapping.html
create mode 100644 doc/html/namespace_mapping.js
create mode 100644 doc/html/namespace_pose_graph_lib.html
create mode 100644 doc/html/namespace_pose_graph_lib.js
create mode 100644 doc/html/namespace_raw_r_o_a_m_system.html
create mode 100644 doc/html/namespace_raw_r_o_a_m_system.js
create mode 100644 doc/html/namespace_tracker.html
create mode 100644 doc/html/namespace_tracker.js
create mode 100644 doc/html/namespacegen_fake_data.html
create mode 100644 doc/html/namespaceget_features.html
create mode 100644 doc/html/namespaceget_point_cloud.html
create mode 100644 doc/html/namespaceget_transform_k_l_t.html
create mode 100644 doc/html/namespacemembers.html
create mode 100644 doc/html/namespacemembers_b.html
create mode 100644 doc/html/namespacemembers_c.html
create mode 100644 doc/html/namespacemembers_d.html
create mode 100644 doc/html/namespacemembers_dup.js
create mode 100644 doc/html/namespacemembers_e.html
create mode 100644 doc/html/namespacemembers_f.html
create mode 100644 doc/html/namespacemembers_func.html
create mode 100644 doc/html/namespacemembers_g.html
create mode 100644 doc/html/namespacemembers_h.html
create mode 100644 doc/html/namespacemembers_i.html
create mode 100644 doc/html/namespacemembers_k.html
create mode 100644 doc/html/namespacemembers_l.html
create mode 100644 doc/html/namespacemembers_m.html
create mode 100644 doc/html/namespacemembers_n.html
create mode 100644 doc/html/namespacemembers_o.html
create mode 100644 doc/html/namespacemembers_p.html
create mode 100644 doc/html/namespacemembers_q.html
create mode 100644 doc/html/namespacemembers_r.html
create mode 100644 doc/html/namespacemembers_s.html
create mode 100644 doc/html/namespacemembers_t.html
create mode 100644 doc/html/namespacemembers_u.html
create mode 100644 doc/html/namespacemembers_v.html
create mode 100644 doc/html/namespacemembers_vars.html
create mode 100644 doc/html/namespacemembers_vars.js
create mode 100644 doc/html/namespacemembers_vars_b.html
create mode 100644 doc/html/namespacemembers_vars_c.html
create mode 100644 doc/html/namespacemembers_vars_d.html
create mode 100644 doc/html/namespacemembers_vars_e.html
create mode 100644 doc/html/namespacemembers_vars_f.html
create mode 100644 doc/html/namespacemembers_vars_g.html
create mode 100644 doc/html/namespacemembers_vars_h.html
create mode 100644 doc/html/namespacemembers_vars_i.html
create mode 100644 doc/html/namespacemembers_vars_k.html
create mode 100644 doc/html/namespacemembers_vars_l.html
create mode 100644 doc/html/namespacemembers_vars_m.html
create mode 100644 doc/html/namespacemembers_vars_n.html
create mode 100644 doc/html/namespacemembers_vars_o.html
create mode 100644 doc/html/namespacemembers_vars_p.html
create mode 100644 doc/html/namespacemembers_vars_r.html
create mode 100644 doc/html/namespacemembers_vars_s.html
create mode 100644 doc/html/namespacemembers_vars_t.html
create mode 100644 doc/html/namespacemembers_vars_u.html
create mode 100644 doc/html/namespacemembers_vars_v.html
create mode 100644 doc/html/namespacemembers_vars_w.html
create mode 100644 doc/html/namespacemembers_w.html
create mode 100644 doc/html/namespacemotion_distortion.html
create mode 100644 doc/html/namespacemotion_distortion.js
create mode 100644 doc/html/namespaceoutlier_rejection.html
create mode 100644 doc/html/namespaceparse_data.html
create mode 100644 doc/html/namespaces.html
create mode 100644 doc/html/namespaces_dup.js
create mode 100644 doc/html/namespacetest_motion_distortion.html
create mode 100644 doc/html/namespacetest_transform.html
create mode 100644 doc/html/namespacetrajectory_plotting.html
create mode 100644 doc/html/namespacetrajectory_plotting.js
create mode 100644 doc/html/namespaceutils.html
create mode 100644 doc/html/navtreeindex1.js
create mode 100644 doc/html/navtreeindex2.js
create mode 100644 doc/html/pages.html
create mode 100644 doc/html/search/all_0.html
create mode 100644 doc/html/search/all_0.js
create mode 100644 doc/html/search/all_1.html
create mode 100644 doc/html/search/all_1.js
create mode 100644 doc/html/search/all_10.html
create mode 100644 doc/html/search/all_10.js
create mode 100644 doc/html/search/all_11.html
create mode 100644 doc/html/search/all_11.js
create mode 100644 doc/html/search/all_12.html
create mode 100644 doc/html/search/all_12.js
create mode 100644 doc/html/search/all_13.html
create mode 100644 doc/html/search/all_13.js
create mode 100644 doc/html/search/all_14.html
create mode 100644 doc/html/search/all_14.js
create mode 100644 doc/html/search/all_15.html
create mode 100644 doc/html/search/all_15.js
create mode 100644 doc/html/search/all_16.html
create mode 100644 doc/html/search/all_16.js
create mode 100644 doc/html/search/all_17.html
create mode 100644 doc/html/search/all_17.js
create mode 100644 doc/html/search/all_18.html
create mode 100644 doc/html/search/all_18.js
create mode 100644 doc/html/search/all_19.html
create mode 100644 doc/html/search/all_19.js
create mode 100644 doc/html/search/all_2.html
create mode 100644 doc/html/search/all_2.js
create mode 100644 doc/html/search/all_3.html
create mode 100644 doc/html/search/all_3.js
create mode 100644 doc/html/search/all_4.html
create mode 100644 doc/html/search/all_4.js
create mode 100644 doc/html/search/all_5.html
create mode 100644 doc/html/search/all_5.js
create mode 100644 doc/html/search/all_6.html
create mode 100644 doc/html/search/all_6.js
create mode 100644 doc/html/search/all_7.html
create mode 100644 doc/html/search/all_7.js
create mode 100644 doc/html/search/all_8.html
create mode 100644 doc/html/search/all_8.js
create mode 100644 doc/html/search/all_9.html
create mode 100644 doc/html/search/all_9.js
create mode 100644 doc/html/search/all_a.html
create mode 100644 doc/html/search/all_a.js
create mode 100644 doc/html/search/all_b.html
create mode 100644 doc/html/search/all_b.js
create mode 100644 doc/html/search/all_c.html
create mode 100644 doc/html/search/all_c.js
create mode 100644 doc/html/search/all_d.html
create mode 100644 doc/html/search/all_d.js
create mode 100644 doc/html/search/all_e.html
create mode 100644 doc/html/search/all_e.js
create mode 100644 doc/html/search/all_f.html
create mode 100644 doc/html/search/all_f.js
create mode 100644 doc/html/search/classes_0.html
create mode 100644 doc/html/search/classes_0.js
create mode 100644 doc/html/search/classes_1.html
create mode 100644 doc/html/search/classes_1.js
create mode 100644 doc/html/search/classes_2.html
create mode 100644 doc/html/search/classes_2.js
create mode 100644 doc/html/search/classes_3.html
create mode 100644 doc/html/search/classes_3.js
create mode 100644 doc/html/search/classes_4.html
create mode 100644 doc/html/search/classes_4.js
create mode 100644 doc/html/search/classes_5.html
create mode 100644 doc/html/search/classes_5.js
create mode 100644 doc/html/search/classes_6.html
create mode 100644 doc/html/search/classes_6.js
create mode 100644 doc/html/search/functions_0.html
create mode 100644 doc/html/search/functions_0.js
create mode 100644 doc/html/search/functions_1.html
create mode 100644 doc/html/search/functions_1.js
create mode 100644 doc/html/search/functions_10.html
create mode 100644 doc/html/search/functions_10.js
create mode 100644 doc/html/search/functions_11.html
create mode 100644 doc/html/search/functions_11.js
create mode 100644 doc/html/search/functions_12.html
create mode 100644 doc/html/search/functions_12.js
create mode 100644 doc/html/search/functions_2.html
create mode 100644 doc/html/search/functions_2.js
create mode 100644 doc/html/search/functions_3.html
create mode 100644 doc/html/search/functions_3.js
create mode 100644 doc/html/search/functions_4.html
create mode 100644 doc/html/search/functions_4.js
create mode 100644 doc/html/search/functions_5.html
create mode 100644 doc/html/search/functions_5.js
create mode 100644 doc/html/search/functions_6.html
create mode 100644 doc/html/search/functions_6.js
create mode 100644 doc/html/search/functions_7.html
create mode 100644 doc/html/search/functions_7.js
create mode 100644 doc/html/search/functions_8.html
create mode 100644 doc/html/search/functions_8.js
create mode 100644 doc/html/search/functions_9.html
create mode 100644 doc/html/search/functions_9.js
create mode 100644 doc/html/search/functions_a.html
create mode 100644 doc/html/search/functions_a.js
create mode 100644 doc/html/search/functions_b.html
create mode 100644 doc/html/search/functions_b.js
create mode 100644 doc/html/search/functions_c.html
create mode 100644 doc/html/search/functions_c.js
create mode 100644 doc/html/search/functions_d.html
create mode 100644 doc/html/search/functions_d.js
create mode 100644 doc/html/search/functions_e.html
create mode 100644 doc/html/search/functions_e.js
create mode 100644 doc/html/search/functions_f.html
create mode 100644 doc/html/search/functions_f.js
create mode 100644 doc/html/search/namespaces_0.html
create mode 100644 doc/html/search/namespaces_0.js
create mode 100644 doc/html/search/namespaces_1.html
create mode 100644 doc/html/search/namespaces_1.js
create mode 100644 doc/html/search/namespaces_2.html
create mode 100644 doc/html/search/namespaces_2.js
create mode 100644 doc/html/search/namespaces_3.html
create mode 100644 doc/html/search/namespaces_3.js
create mode 100644 doc/html/search/namespaces_4.html
create mode 100644 doc/html/search/namespaces_4.js
create mode 100644 doc/html/search/namespaces_5.html
create mode 100644 doc/html/search/namespaces_5.js
create mode 100644 doc/html/search/namespaces_6.html
create mode 100644 doc/html/search/namespaces_6.js
create mode 100644 doc/html/search/namespaces_7.html
create mode 100644 doc/html/search/namespaces_7.js
create mode 100644 doc/html/search/namespaces_8.html
create mode 100644 doc/html/search/namespaces_8.js
create mode 100644 doc/html/search/namespaces_9.html
create mode 100644 doc/html/search/namespaces_9.js
create mode 100644 doc/html/search/pages_0.html
create mode 100644 doc/html/search/pages_0.js
create mode 100644 doc/html/search/variables_0.html
create mode 100644 doc/html/search/variables_0.js
create mode 100644 doc/html/search/variables_1.html
create mode 100644 doc/html/search/variables_1.js
create mode 100644 doc/html/search/variables_10.html
create mode 100644 doc/html/search/variables_10.js
create mode 100644 doc/html/search/variables_11.html
create mode 100644 doc/html/search/variables_11.js
create mode 100644 doc/html/search/variables_12.html
create mode 100644 doc/html/search/variables_12.js
create mode 100644 doc/html/search/variables_13.html
create mode 100644 doc/html/search/variables_13.js
create mode 100644 doc/html/search/variables_14.html
create mode 100644 doc/html/search/variables_14.js
create mode 100644 doc/html/search/variables_15.html
create mode 100644 doc/html/search/variables_15.js
create mode 100644 doc/html/search/variables_16.html
create mode 100644 doc/html/search/variables_16.js
create mode 100644 doc/html/search/variables_2.html
create mode 100644 doc/html/search/variables_2.js
create mode 100644 doc/html/search/variables_3.html
create mode 100644 doc/html/search/variables_3.js
create mode 100644 doc/html/search/variables_4.html
create mode 100644 doc/html/search/variables_4.js
create mode 100644 doc/html/search/variables_5.html
create mode 100644 doc/html/search/variables_5.js
create mode 100644 doc/html/search/variables_6.html
create mode 100644 doc/html/search/variables_6.js
create mode 100644 doc/html/search/variables_7.html
create mode 100644 doc/html/search/variables_7.js
create mode 100644 doc/html/search/variables_8.html
create mode 100644 doc/html/search/variables_8.js
create mode 100644 doc/html/search/variables_9.html
create mode 100644 doc/html/search/variables_9.js
create mode 100644 doc/html/search/variables_a.html
create mode 100644 doc/html/search/variables_a.js
create mode 100644 doc/html/search/variables_b.html
create mode 100644 doc/html/search/variables_b.js
create mode 100644 doc/html/search/variables_c.html
create mode 100644 doc/html/search/variables_c.js
create mode 100644 doc/html/search/variables_d.html
create mode 100644 doc/html/search/variables_d.js
create mode 100644 doc/html/search/variables_e.html
create mode 100644 doc/html/search/variables_e.js
create mode 100644 doc/html/search/variables_f.html
create mode 100644 doc/html/search/variables_f.js
diff --git a/Doxyfile b/Doxyfile
index 85ddfe5..bda8a42 100644
--- a/Doxyfile
+++ b/Doxyfile
@@ -743,7 +743,7 @@ WARN_LOGFILE =
# spaces.
# Note: If this tag is empty the current directory is searched.
-INPUT = ./doc/python/netconf.py
+INPUT =
# This tag can be used to specify the character encoding of the source files
# that doxygen parses. Internally doxygen uses the UTF-8 encoding. Doxygen uses
@@ -810,7 +810,7 @@ FILE_PATTERNS = *.c \
# be searched for input files as well.
# The default value is: NO.
-RECURSIVE = YES
+RECURSIVE = NO
# The EXCLUDE tag can be used to specify files and/or directories that should be
# excluded from the INPUT source files. This way you can easily exclude a
@@ -819,7 +819,7 @@ RECURSIVE = YES
# Note that relative paths are relative to the directory from which doxygen is
# run.
-EXCLUDE =
+EXCLUDE = g2o/*
# The EXCLUDE_SYMLINKS tag can be used to select whether or not files or
# directories that are symbolic links (a Unix file system feature) are excluded
diff --git a/doc/html/annotated.html b/doc/html/annotated.html
new file mode 100644
index 0000000..989f199
--- /dev/null
+++ b/doc/html/annotated.html
@@ -0,0 +1,119 @@
+
+
+
+
+
+
+
+RAW-ROAM: Class List
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ RAW-ROAM
+
+ Python Re-implementation of RadarSLAM's odometry and mapping (ROAM) components
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Here are the classes, structs, unions and interfaces with brief descriptions:
+
+
+
+
+
+
diff --git a/doc/html/annotated_dup.js b/doc/html/annotated_dup.js
new file mode 100644
index 0000000..b231a5b
--- /dev/null
+++ b/doc/html/annotated_dup.js
@@ -0,0 +1,27 @@
+var annotated_dup =
+[
+ [ "Coord", "namespace_coord.html", [
+ [ "CartCoord", "class_coord_1_1_cart_coord.html", "class_coord_1_1_cart_coord" ],
+ [ "PolarCoord", "class_coord_1_1_polar_coord.html", "class_coord_1_1_polar_coord" ]
+ ] ],
+ [ "Mapping", "namespace_mapping.html", [
+ [ "Keyframe", "class_mapping_1_1_keyframe.html", "class_mapping_1_1_keyframe" ],
+ [ "Map", "class_mapping_1_1_map.html", "class_mapping_1_1_map" ]
+ ] ],
+ [ "motionDistortion", "namespacemotion_distortion.html", [
+ [ "MotionDistortionSolver", "classmotion_distortion_1_1_motion_distortion_solver.html", "classmotion_distortion_1_1_motion_distortion_solver" ]
+ ] ],
+ [ "PoseGraphLib", "namespace_pose_graph_lib.html", [
+ [ "BundleAdjustment", "class_pose_graph_lib_1_1_bundle_adjustment.html", "class_pose_graph_lib_1_1_bundle_adjustment" ],
+ [ "PoseGraphOptimization", "class_pose_graph_lib_1_1_pose_graph_optimization.html", "class_pose_graph_lib_1_1_pose_graph_optimization" ]
+ ] ],
+ [ "RawROAMSystem", "namespace_raw_r_o_a_m_system.html", [
+ [ "RawROAMSystem", "class_raw_r_o_a_m_system_1_1_raw_r_o_a_m_system.html", "class_raw_r_o_a_m_system_1_1_raw_r_o_a_m_system" ]
+ ] ],
+ [ "Tracker", "namespace_tracker.html", [
+ [ "Tracker", "class_tracker_1_1_tracker.html", "class_tracker_1_1_tracker" ]
+ ] ],
+ [ "trajectoryPlotting", "namespacetrajectory_plotting.html", [
+ [ "Trajectory", "classtrajectory_plotting_1_1_trajectory.html", "classtrajectory_plotting_1_1_trajectory" ]
+ ] ]
+];
\ No newline at end of file
diff --git a/doc/html/class_coord_1_1_cart_coord-members.html b/doc/html/class_coord_1_1_cart_coord-members.html
new file mode 100644
index 0000000..2dea5e1
--- /dev/null
+++ b/doc/html/class_coord_1_1_cart_coord-members.html
@@ -0,0 +1,116 @@
+
+
+
+
+
+
+
+RAW-ROAM: Member List
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ RAW-ROAM
+
+ Python Re-implementation of RadarSLAM's odometry and mapping (ROAM) components
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
This is the complete list of members for CartCoord , including all inherited members.
+
+ __init__ (self, float x, float y)CartCoord
+ __str__ (self)CartCoord
+ add (self, float dx, float dy)CartCoord
+ addCoord (self, other)CartCoord
+ asTuple (self)CartCoord
+ getAngle (self, other)CartCoord
+ getDistance (self, other)CartCoord
+ getX (self)CartCoord
+ getY (self)CartCoord
+ scale (self, float scaleFactor)CartCoord
+ scaleX (self, float scaleFactor)CartCoord
+ scaleY (self, float scaleFactor)CartCoord
+ sub (self, float dx, float dy)CartCoord
+ x CartCoord
+ y CartCoord
+
+
+
+
+
+
diff --git a/doc/html/class_coord_1_1_cart_coord.html b/doc/html/class_coord_1_1_cart_coord.html
new file mode 100644
index 0000000..1377758
--- /dev/null
+++ b/doc/html/class_coord_1_1_cart_coord.html
@@ -0,0 +1,514 @@
+
+
+
+
+
+
+
+RAW-ROAM: CartCoord Class Reference
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ RAW-ROAM
+
+ Python Re-implementation of RadarSLAM's odometry and mapping (ROAM) components
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+def __init__ (self, float x , float y )
+
+def __str__ (self)
+
+None addCoord (self, other)
+
+None add (self, float dx, float dy)
+
+None sub (self, float dx, float dy)
+
+None scale (self, float scaleFactor)
+
+None scaleX (self, float scaleFactor)
+
+None scaleY (self, float scaleFactor)
+
+float getX (self)
+
+float getY (self)
+
+float getDistance (self, other)
+
+def getAngle (self, other)
+
+tuple asTuple (self)
+
+
+
+
Creates a point on a Cartesian coordinate plane with values x and y.
+
+
◆ __init__()
+
+
+
+
+
+ def __init__
+ (
+
+ self ,
+
+
+
+
+ float
+ x ,
+
+
+
+
+ float
+ y
+
+
+
+ )
+
+
+
+
+
Defines x and y variables
+
+
+
+
+
◆ __str__()
+
+
+
+
+
+ def __str__
+ (
+
+ self )
+
+
+
+
+
+
+
+
+
◆ add()
+
+
+
+
+
+ None add
+ (
+
+ self ,
+
+
+
+
+ float
+ dx ,
+
+
+
+
+ float
+ dy
+
+
+
+ )
+
+
+
+
+
+
+
+
+
◆ addCoord()
+
+
+
+
+
+ None addCoord
+ (
+
+ self ,
+
+
+
+
+
+ other
+
+
+
+ )
+
+
+
+
+
+
+
+
+
◆ asTuple()
+
+
+
+
+
+ tuple asTuple
+ (
+
+ self )
+
+
+
+
+
+
+
+
+
◆ getAngle()
+
+
+
+
+
+ def getAngle
+ (
+
+ self ,
+
+
+
+
+
+ other
+
+
+
+ )
+
+
+
+
+
+
+
+
+
◆ getDistance()
+
+
+
+
+
+ float getDistance
+ (
+
+ self ,
+
+
+
+
+
+ other
+
+
+
+ )
+
+
+
+
+
+
+
+
+
◆ getX()
+
+
+
+
+
+ float getX
+ (
+
+ self )
+
+
+
+
+
+
+
+
+
◆ getY()
+
+
+
+
+
+ float getY
+ (
+
+ self )
+
+
+
+
+
+
+
+
+
◆ scale()
+
+
+
+
+
+ None scale
+ (
+
+ self ,
+
+
+
+
+ float
+ scaleFactor
+
+
+
+ )
+
+
+
+
+
+
+
+
+
◆ scaleX()
+
+
+
+
+
+ None scaleX
+ (
+
+ self ,
+
+
+
+
+ float
+ scaleFactor
+
+
+
+ )
+
+
+
+
+
+
+
+
+
◆ scaleY()
+
+
+
+
+
+ None scaleY
+ (
+
+ self ,
+
+
+
+
+ float
+ scaleFactor
+
+
+
+ )
+
+
+
+
+
+
+
+
+
◆ sub()
+
+
+
+
+
+ None sub
+ (
+
+ self ,
+
+
+
+
+ float
+ dx ,
+
+
+
+
+ float
+ dy
+
+
+
+ )
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/doc/html/class_coord_1_1_cart_coord.js b/doc/html/class_coord_1_1_cart_coord.js
new file mode 100644
index 0000000..acd1bdd
--- /dev/null
+++ b/doc/html/class_coord_1_1_cart_coord.js
@@ -0,0 +1,18 @@
+var class_coord_1_1_cart_coord =
+[
+ [ "__init__", "class_coord_1_1_cart_coord.html#abccb4447212ff86e5d232682050b743c", null ],
+ [ "__str__", "class_coord_1_1_cart_coord.html#a23e8041ce1015febe4fdace3225714f9", null ],
+ [ "add", "class_coord_1_1_cart_coord.html#ac158a01135b092bd40f1f52f7ba606a0", null ],
+ [ "addCoord", "class_coord_1_1_cart_coord.html#abf0cffdf5d7c9541d7835543474cfb33", null ],
+ [ "asTuple", "class_coord_1_1_cart_coord.html#a089eb0274b6e3569800bc4df2c1856a5", null ],
+ [ "getAngle", "class_coord_1_1_cart_coord.html#a5116776fb71b488b73a26117a590e4f1", null ],
+ [ "getDistance", "class_coord_1_1_cart_coord.html#a52b0dfb6137418e667a29a3d6f38381f", null ],
+ [ "getX", "class_coord_1_1_cart_coord.html#ad53ca4fe02199dd659e4263dabedcbc2", null ],
+ [ "getY", "class_coord_1_1_cart_coord.html#aab0c980e953aa02722d5d985aeba649f", null ],
+ [ "scale", "class_coord_1_1_cart_coord.html#ab59c8af84ef521a147c726904703c8b0", null ],
+ [ "scaleX", "class_coord_1_1_cart_coord.html#af98adc2273ee467719863568b65d1294", null ],
+ [ "scaleY", "class_coord_1_1_cart_coord.html#a3eb779a8ba87a0bfcff18d97a54abed4", null ],
+ [ "sub", "class_coord_1_1_cart_coord.html#acc3259cd47f8262a8a3e65f59ee36acf", null ],
+ [ "x", "class_coord_1_1_cart_coord.html#a9336ebf25087d91c818ee6e9ec29f8c1", null ],
+ [ "y", "class_coord_1_1_cart_coord.html#a2fb1c5cf58867b5bbc9a1b145a86f3a0", null ]
+];
\ No newline at end of file
diff --git a/doc/html/class_coord_1_1_polar_coord-members.html b/doc/html/class_coord_1_1_polar_coord-members.html
new file mode 100644
index 0000000..d95f1fd
--- /dev/null
+++ b/doc/html/class_coord_1_1_polar_coord-members.html
@@ -0,0 +1,110 @@
+
+
+
+
+
+
+
+RAW-ROAM: Member List
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ RAW-ROAM
+
+ Python Re-implementation of RadarSLAM's odometry and mapping (ROAM) components
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
This is the complete list of members for PolarCoord , including all inherited members.
+
+
+
+
+
+
diff --git a/doc/html/class_coord_1_1_polar_coord.html b/doc/html/class_coord_1_1_polar_coord.html
new file mode 100644
index 0000000..5b3e77d
--- /dev/null
+++ b/doc/html/class_coord_1_1_polar_coord.html
@@ -0,0 +1,312 @@
+
+
+
+
+
+
+
+RAW-ROAM: PolarCoord Class Reference
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ RAW-ROAM
+
+ Python Re-implementation of RadarSLAM's odometry and mapping (ROAM) components
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Creates a point on a Cartesian coordinate plane with values x and y.
+
+
◆ __init__()
+
+
+
+
+
+ def __init__
+ (
+
+ self ,
+
+
+
+
+ float
+ r ,
+
+
+
+
+ float
+ theta
+
+
+
+ )
+
+
+
+
+
Defines x and y variables
+
+
+
+
+
◆ __str__()
+
+
+
+
+
+ def __str__
+ (
+
+ self )
+
+
+
+
+
+
+
+
+
◆ asTuple()
+
+
+
+
+
+ tuple asTuple
+ (
+
+ self )
+
+
+
+
+
+
+
+
+
◆ getR()
+
+
+
+
+
+ float getR
+ (
+
+ self )
+
+
+
+
+
+
+
+
+
◆ getTheta()
+
+
+
+
+
+ float getTheta
+ (
+
+ self )
+
+
+
+
+
+
+
+
+
◆ scaleR()
+
+
+
+
+
+ None scaleR
+ (
+
+ self ,
+
+
+
+
+
+ scaleFactor
+
+
+
+ )
+
+
+
+
+
+
+
+
+
◆ toCart()
+
+
+
+
+
+
+
+
+
◆ theta
+
+
+
+
+
+
+
+
diff --git a/doc/html/class_coord_1_1_polar_coord.js b/doc/html/class_coord_1_1_polar_coord.js
new file mode 100644
index 0000000..7d82098
--- /dev/null
+++ b/doc/html/class_coord_1_1_polar_coord.js
@@ -0,0 +1,12 @@
+var class_coord_1_1_polar_coord =
+[
+ [ "__init__", "class_coord_1_1_polar_coord.html#a0304e8d786206153c1e8280834562d07", null ],
+ [ "__str__", "class_coord_1_1_polar_coord.html#a23e8041ce1015febe4fdace3225714f9", null ],
+ [ "asTuple", "class_coord_1_1_polar_coord.html#a089eb0274b6e3569800bc4df2c1856a5", null ],
+ [ "getR", "class_coord_1_1_polar_coord.html#a825c5e22cef04b24de421e2aa38e783f", null ],
+ [ "getTheta", "class_coord_1_1_polar_coord.html#ad54274926ee132aa66a6a883d9bc15cf", null ],
+ [ "scaleR", "class_coord_1_1_polar_coord.html#a6c67b38af655d81a01450f9aa2575153", null ],
+ [ "toCart", "class_coord_1_1_polar_coord.html#a174b43f651e4e95e432fddb5b4183829", null ],
+ [ "r", "class_coord_1_1_polar_coord.html#a514f1b439f404f86f77090fa9edc96ce", null ],
+ [ "theta", "class_coord_1_1_polar_coord.html#aebf487f5d315cb61f0bd86455edff1fd", null ]
+];
\ No newline at end of file
diff --git a/doc/html/class_mapping_1_1_keyframe-members.html b/doc/html/class_mapping_1_1_keyframe-members.html
new file mode 100644
index 0000000..f1830e8
--- /dev/null
+++ b/doc/html/class_mapping_1_1_keyframe-members.html
@@ -0,0 +1,115 @@
+
+
+
+
+
+
+
+RAW-ROAM: Member List
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ RAW-ROAM
+
+ Python Re-implementation of RadarSLAM's odometry and mapping (ROAM) components
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
This is the complete list of members for Keyframe , including all inherited members.
+
+ __init__ (self, np.ndarray globalPose, np.ndarray featurePointsLocal, np.ndarray radarPolarImg, np.ndarray velocity)Keyframe
+ convertFeaturesLocalToGlobal (self, np.ndarray featurePointsLocal)Keyframe
+ copyFromOtherKeyframe (self, keyframe)Keyframe
+ featurePointsLocal Keyframe
+ featurePointsLocalUndistorted Keyframe
+ getPrunedFeaturesGlobalPosition (self)Keyframe
+ pointCloud Keyframe
+ pose Keyframe
+ prunedFeaturePoints Keyframe
+ prunedUndistortedLocals Keyframe
+ pruneFeaturePoints (self, np.ndarray corrStatus)Keyframe
+ radarPolarImg Keyframe
+ updateInfo (self, np.ndarray globalPose, np.ndarray featurePointsLocal, np.ndarray radarPolarImg, np.ndarray velocity)Keyframe
+ velocity Keyframe
+
+
+
+
+
+
diff --git a/doc/html/class_mapping_1_1_keyframe.html b/doc/html/class_mapping_1_1_keyframe.html
new file mode 100644
index 0000000..b101ae8
--- /dev/null
+++ b/doc/html/class_mapping_1_1_keyframe.html
@@ -0,0 +1,470 @@
+
+
+
+
+
+
+
+RAW-ROAM: Keyframe Class Reference
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ RAW-ROAM
+
+ Python Re-implementation of RadarSLAM's odometry and mapping (ROAM) components
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+None __init__ (self, np.ndarray globalPose, np.ndarray featurePointsLocal , np.ndarray radarPolarImg , np.ndarray velocity )
+
+None updateInfo (self, np.ndarray globalPose, np.ndarray featurePointsLocal , np.ndarray radarPolarImg , np.ndarray velocity )
+
+None copyFromOtherKeyframe (self, keyframe)
+
+np.ndarray convertFeaturesLocalToGlobal (self, np.ndarray featurePointsLocal )
+
+np.ndarray getPrunedFeaturesGlobalPosition (self)
+
+None pruneFeaturePoints (self, np.ndarray corrStatus)
+
+
+
+
+
◆ __init__()
+
+
+
+
+
+ None __init__
+ (
+
+ self ,
+
+
+
+
+ np.ndarray
+ globalPose ,
+
+
+
+
+ np.ndarray
+ featurePointsLocal ,
+
+
+
+
+ np.ndarray
+ radarPolarImg ,
+
+
+
+
+ np.ndarray
+ velocity
+
+
+
+ )
+
+
+
+
+
@brief Keyframe class. Contains pose, feature points and point cloud information
+@param[in] globalPose (3 x 1) Pose information [x, y, th] in global coordinates,
+ units of [m, m, rad] # TODO: Confirm these units
+@param[in] featurePointsLocal (K x 2) Tracked feature points from previous keyframe,
+ in local coordinates (pixels)
+@param[in] radarPolarImg (M x N) Radar polar (range-azimuth) image
+
+@see updateInfo()
+
+
+
+
+
+
◆ convertFeaturesLocalToGlobal()
+
+
+
+
+
+ np.ndarray convertFeaturesLocalToGlobal
+ (
+
+ self ,
+
+
+
+
+ np.ndarray
+ featurePointsLocal
+
+
+
+ )
+
+
+
+
+
@brief Local feature points to convert into global coordinates, given internal pose
+@param[in] featurePointsLocal (K x 2) Tracked feature points from previous keyframe,
+ in local coordinates (pixels)
+@return featurePointsGlobal (K x 2) Feature points in global coordinates, meters
+
+
+
+
+
◆ copyFromOtherKeyframe()
+
+
+
+
+
+ None copyFromOtherKeyframe
+ (
+
+ self ,
+
+
+
+
+
+ keyframe
+
+
+
+ )
+
+
+
+
+
+
+
+
+
◆ getPrunedFeaturesGlobalPosition()
+
+
+
+
+
+ np.ndarray getPrunedFeaturesGlobalPosition
+ (
+
+ self )
+
+
+
+
+
@brief Get global position of pruned features (stored internally)
+@return Global position of pruned features (K x 2)
+
+
+
+
+
◆ pruneFeaturePoints()
+
+
+
+
+
+ None pruneFeaturePoints
+ (
+
+ self ,
+
+
+
+
+ np.ndarray
+ corrStatus
+
+
+
+ )
+
+
+
+
+
@brief Prune feature points based on correspondence status
+@param[in] corrStatus
+@note In place changing of `self.prunedFeaturePoints` function, which aims to track and prune away the feature points that are part of this keyframe
+
+
+
+
+
◆ updateInfo()
+
+
+
+
+
+ None updateInfo
+ (
+
+ self ,
+
+
+
+
+ np.ndarray
+ globalPose ,
+
+
+
+
+ np.ndarray
+ featurePointsLocal ,
+
+
+
+
+ np.ndarray
+ radarPolarImg ,
+
+
+
+
+ np.ndarray
+ velocity
+
+
+
+ )
+
+
+
+
+
@brief Update internal information: pose, feature points and point cloud information
+@param[in] globalPose (3 x 1) Pose information [x, y, th] in global coordinates,
+ units of [m, m, rad] # TODO: Confirm these units
+@param[in] featurePointsLocal (K x 2) Tracked feature points from previous keyframe,
+ in local coordinates (pixels)
+@param[in] radarPolarImg (M x N) Radar polar (range-azimuth) image
+
+
+
+
+
+
◆ featurePointsLocal
+
+
+
+
+
+ featurePointsLocal
+
+
+
+
+
+
+
+
◆ featurePointsLocalUndistorted
+
+
+
+
+
+ featurePointsLocalUndistorted
+
+
+
+
+
+
+
+
◆ pointCloud
+
+
+
+
◆ pose
+
+
+
+
◆ prunedFeaturePoints
+
+
+
+
+
+ prunedFeaturePoints
+
+
+
+
+
+
+
+
◆ prunedUndistortedLocals
+
+
+
+
+
+ prunedUndistortedLocals
+
+
+
+
+
+
+
+
◆ radarPolarImg
+
+
+
+
◆ velocity
+
+
+
+
+
+
+
+
diff --git a/doc/html/class_mapping_1_1_keyframe.js b/doc/html/class_mapping_1_1_keyframe.js
new file mode 100644
index 0000000..d1b0678
--- /dev/null
+++ b/doc/html/class_mapping_1_1_keyframe.js
@@ -0,0 +1,17 @@
+var class_mapping_1_1_keyframe =
+[
+ [ "__init__", "class_mapping_1_1_keyframe.html#ab50c2d12f6ba6f7013e2e09dc7104cea", null ],
+ [ "convertFeaturesLocalToGlobal", "class_mapping_1_1_keyframe.html#a415d52be7be81fd08afe59b1f5d5f9d0", null ],
+ [ "copyFromOtherKeyframe", "class_mapping_1_1_keyframe.html#a90e0f7f754575a4561f5485033860a1d", null ],
+ [ "getPrunedFeaturesGlobalPosition", "class_mapping_1_1_keyframe.html#a303cd2587f0d363c0cb55441f9e300bd", null ],
+ [ "pruneFeaturePoints", "class_mapping_1_1_keyframe.html#a796d47daedb509f711f32670dcc56204", null ],
+ [ "updateInfo", "class_mapping_1_1_keyframe.html#ae98897aae59622e52c1e12f602c6893f", null ],
+ [ "featurePointsLocal", "class_mapping_1_1_keyframe.html#ae336e904e1abb473dc7527fd2e48d8bb", null ],
+ [ "featurePointsLocalUndistorted", "class_mapping_1_1_keyframe.html#a05e8255630d01c3245aee8388687031e", null ],
+ [ "pointCloud", "class_mapping_1_1_keyframe.html#aa8c7a28ed457095b58a6fc21c3beb218", null ],
+ [ "pose", "class_mapping_1_1_keyframe.html#a78b2a3e80010e80c618c3033d6d11547", null ],
+ [ "prunedFeaturePoints", "class_mapping_1_1_keyframe.html#a7555a7153bea157ba766d90f8a357ac7", null ],
+ [ "prunedUndistortedLocals", "class_mapping_1_1_keyframe.html#a2b11eb8819c3458601190586c033134c", null ],
+ [ "radarPolarImg", "class_mapping_1_1_keyframe.html#a4b406a56724e048b3fa039dd55390f9b", null ],
+ [ "velocity", "class_mapping_1_1_keyframe.html#aecfeca1289d00fbe5fc76a8dd5295913", null ]
+];
\ No newline at end of file
diff --git a/doc/html/class_mapping_1_1_map-members.html b/doc/html/class_mapping_1_1_map-members.html
new file mode 100644
index 0000000..e6ff8fd
--- /dev/null
+++ b/doc/html/class_mapping_1_1_map-members.html
@@ -0,0 +1,113 @@
+
+
+
+
+
+
+
+RAW-ROAM: Member List
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ RAW-ROAM
+
+ Python Re-implementation of RadarSLAM's odometry and mapping (ROAM) components
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
This is the complete list of members for Map , including all inherited members.
+
+ __init__ (self, str sequenceName, Trajectory estTraj, list[str] imgPathArr, dict[str] filePaths)Map
+ addKeyframe (self, Keyframe keyframe)Map
+ estTraj Map
+ filePaths Map
+ imgPathArr Map
+ isGoodKeyframe (self, Keyframe keyframe)Map
+ keyframes Map
+ mapPoints Map
+ plot (self, plt.figure fig, int subsampleFactor=5, bool show=False)Map
+ sequenceName Map
+ sequenceSize Map
+ updateInternalTraj (self, Trajectory traj)Map
+
+
+
+
+
+
diff --git a/doc/html/class_mapping_1_1_map.html b/doc/html/class_mapping_1_1_map.html
new file mode 100644
index 0000000..7f5bf82
--- /dev/null
+++ b/doc/html/class_mapping_1_1_map.html
@@ -0,0 +1,414 @@
+
+
+
+
+
+
+
+RAW-ROAM: Map Class Reference
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ RAW-ROAM
+
+ Python Re-implementation of RadarSLAM's odometry and mapping (ROAM) components
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+None __init__ (self, str sequenceName , Trajectory estTraj , list[str] imgPathArr , dict[str] filePaths )
+
+def updateInternalTraj (self, Trajectory traj)
+
+bool isGoodKeyframe (self, Keyframe keyframe)
+
+None addKeyframe (self, Keyframe keyframe)
+
+None plot (self, plt.figure fig, int subsampleFactor=5, bool show=False)
+
+
+
+
+
◆ __init__()
+
+
+
+
+
+ None __init__
+ (
+
+ self ,
+
+
+
+
+ str
+ sequenceName ,
+
+
+
+
+ Trajectory
+ estTraj ,
+
+
+
+
+ list[str]
+ imgPathArr ,
+
+
+
+
+ dict[str]
+ filePaths
+
+
+
+ )
+
+
+
+
+
+
+
+
+
+
◆ addKeyframe()
+
+
+
+
+
+ None addKeyframe
+ (
+
+ self ,
+
+
+
+
+ Keyframe
+ keyframe
+
+
+
+ )
+
+
+
+
+
@brief Add a keyframe to the running pose graph
+@param[in] keyframe Keyframe to add
+
+
+
+
+
◆ isGoodKeyframe()
+
+
+
+
+
+ bool isGoodKeyframe
+ (
+
+ self ,
+
+
+
+
+ Keyframe
+ keyframe
+
+
+
+ )
+
+
+
+
+
@brief Check if a keyframe is good for adding using information about relative rotation and translation
+@return If keyframe passes checks
+
+
+
+
+
◆ plot()
+
+
+
+
+
+ None plot
+ (
+
+ self ,
+
+
+
+
+ plt.figure
+ fig ,
+
+
+
+
+ int
+ subsampleFactor = 5
,
+
+
+
+
+ bool
+ show = False
+
+
+
+ )
+
+
+
+
+
@brief Plot map points on plt figure
+@param[in] fig plt figure to plot on @todo Currently unused
+@param[in] subsampleFactor Subsampling amount to do for feature points plotting
+ Controls density of plotted points. Higher = less dense
+@param[in] show Whether to plt.show()
+
+
+
+
+
◆ updateInternalTraj()
+
+
+
+
+
+ def updateInternalTraj
+ (
+
+ self ,
+
+
+
+
+ Trajectory
+ traj
+
+
+
+ )
+
+
+
+
+
+
+
+
+
+
◆ estTraj
+
+
+
+
◆ filePaths
+
+
+
+
◆ imgPathArr
+
+
+
+
◆ keyframes
+
+
+
+
◆ mapPoints
+
+
+
+
◆ sequenceName
+
+
+
+
◆ sequenceSize
+
+
+
+
+
+
+
+
diff --git a/doc/html/class_mapping_1_1_map.js b/doc/html/class_mapping_1_1_map.js
new file mode 100644
index 0000000..2ae65cb
--- /dev/null
+++ b/doc/html/class_mapping_1_1_map.js
@@ -0,0 +1,15 @@
+var class_mapping_1_1_map =
+[
+ [ "__init__", "class_mapping_1_1_map.html#a4badc56bb5b8b58a6014c37755298e21", null ],
+ [ "addKeyframe", "class_mapping_1_1_map.html#aab2cc502236200b5db10f3f1279c5f1f", null ],
+ [ "isGoodKeyframe", "class_mapping_1_1_map.html#a10ef9dd0d4ce2784093b0738c27081e4", null ],
+ [ "plot", "class_mapping_1_1_map.html#a2f4804050397d59933e98f778bbbfef6", null ],
+ [ "updateInternalTraj", "class_mapping_1_1_map.html#a71b2362e9de31ea699a730abaa8f3cd6", null ],
+ [ "estTraj", "class_mapping_1_1_map.html#a8d5e95f4d6054db64fd36facd315f2e6", null ],
+ [ "filePaths", "class_mapping_1_1_map.html#ac133126788d5db734ec6f70884178ea8", null ],
+ [ "imgPathArr", "class_mapping_1_1_map.html#a8d579ebe0582eed800eb106350236c4a", null ],
+ [ "keyframes", "class_mapping_1_1_map.html#a8ce2f0b893bb0be63c6e98aa3f2a0233", null ],
+ [ "mapPoints", "class_mapping_1_1_map.html#a2b1c4b0bf8907122b4696c04f05a72ce", null ],
+ [ "sequenceName", "class_mapping_1_1_map.html#ada038ff63190b4fbc01af8dace29ec1f", null ],
+ [ "sequenceSize", "class_mapping_1_1_map.html#a8ef2335bbb2c7c07c8e2b35959b03c52", null ]
+];
\ No newline at end of file
diff --git a/doc/html/class_pose_graph_lib_1_1_bundle_adjustment-members.html b/doc/html/class_pose_graph_lib_1_1_bundle_adjustment-members.html
new file mode 100644
index 0000000..0502dee
--- /dev/null
+++ b/doc/html/class_pose_graph_lib_1_1_bundle_adjustment-members.html
@@ -0,0 +1,108 @@
+
+
+
+
+
+
+
+RAW-ROAM: Member List
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ RAW-ROAM
+
+ Python Re-implementation of RadarSLAM's odometry and mapping (ROAM) components
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
This is the complete list of members for BundleAdjustment , including all inherited members.
+
+ __init__ (self)BundleAdjustment
+ add_edge (self, point_id, pose_id, measurement, information=np.eye(2), robust_kernel=g2o.RobustKernelHuber(np.sqrt(5.991)))BundleAdjustment
+ add_point (self, point_id, point, fixed=False, marginalized=True)BundleAdjustment
+ add_pose (self, pose_id, pose, cam, fixed=False)BundleAdjustment
+ get_point (self, point_id)BundleAdjustment
+ get_pose (self, pose_id)BundleAdjustment
+ optimize (self, max_iterations=10)BundleAdjustment
+
+
+
+
+
+
diff --git a/doc/html/class_pose_graph_lib_1_1_bundle_adjustment.html b/doc/html/class_pose_graph_lib_1_1_bundle_adjustment.html
new file mode 100644
index 0000000..d55596f
--- /dev/null
+++ b/doc/html/class_pose_graph_lib_1_1_bundle_adjustment.html
@@ -0,0 +1,369 @@
+
+
+
+
+
+
+
+RAW-ROAM: BundleAdjustment Class Reference
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ RAW-ROAM
+
+ Python Re-implementation of RadarSLAM's odometry and mapping (ROAM) components
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+def __init__ (self)
+
+def optimize (self, max_iterations=10)
+
+def add_pose (self, pose_id, pose, cam, fixed=False)
+
+def add_point (self, point_id, point, fixed=False, marginalized=True)
+
+def add_edge (self, point_id, pose_id, measurement, information=np.eye(2), robust_kernel=g2o.RobustKernelHuber(np.sqrt(5.991)))
+
+def get_pose (self, pose_id)
+
+def get_point (self, point_id)
+
+
+
+
+
◆ __init__()
+
+
+
+
+
+ def __init__
+ (
+
+ self )
+
+
+
+
+
+
+
+
+
+
◆ add_edge()
+
+
+
+
+
+ def add_edge
+ (
+
+ self ,
+
+
+
+
+
+ point_id ,
+
+
+
+
+
+ pose_id ,
+
+
+
+
+
+ measurement ,
+
+
+
+
+
+ information = np.eye(2)
,
+
+
+
+
+
+ robust_kernel = g2o.RobustKernelHuber(
+ np.sqrt(5.991))
+
+
+
+ )
+
+
+
+
+
+
+
+
+
◆ add_point()
+
+
+
+
+
+ def add_point
+ (
+
+ self ,
+
+
+
+
+
+ point_id ,
+
+
+
+
+
+ point ,
+
+
+
+
+
+ fixed = False
,
+
+
+
+
+
+ marginalized = True
+
+
+
+ )
+
+
+
+
+
+
+
+
+
◆ add_pose()
+
+
+
+
+
+ def add_pose
+ (
+
+ self ,
+
+
+
+
+
+ pose_id ,
+
+
+
+
+
+ pose ,
+
+
+
+
+
+ cam ,
+
+
+
+
+
+ fixed = False
+
+
+
+ )
+
+
+
+
+
+
+
+
+
◆ get_point()
+
+
+
+
+
+ def get_point
+ (
+
+ self ,
+
+
+
+
+
+ point_id
+
+
+
+ )
+
+
+
+
+
+
+
+
+
◆ get_pose()
+
+
+
+
+
+ def get_pose
+ (
+
+ self ,
+
+
+
+
+
+ pose_id
+
+
+
+ )
+
+
+
+
+
+
+
+
+
◆ optimize()
+
+
+
+
+
+ def optimize
+ (
+
+ self ,
+
+
+
+
+
+ max_iterations = 10
+
+
+
+ )
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/doc/html/class_pose_graph_lib_1_1_bundle_adjustment.js b/doc/html/class_pose_graph_lib_1_1_bundle_adjustment.js
new file mode 100644
index 0000000..8a90bf7
--- /dev/null
+++ b/doc/html/class_pose_graph_lib_1_1_bundle_adjustment.js
@@ -0,0 +1,10 @@
+var class_pose_graph_lib_1_1_bundle_adjustment =
+[
+ [ "__init__", "class_pose_graph_lib_1_1_bundle_adjustment.html#ae64f0875afe3067b97ba370b354b9213", null ],
+ [ "add_edge", "class_pose_graph_lib_1_1_bundle_adjustment.html#afd2f2f2c53ede9e8de84f631d89d0a4d", null ],
+ [ "add_point", "class_pose_graph_lib_1_1_bundle_adjustment.html#a6fd42378608542f13e1c2492cfb7dd74", null ],
+ [ "add_pose", "class_pose_graph_lib_1_1_bundle_adjustment.html#a9a15c780e8d512f3252c1a8f9764bfc2", null ],
+ [ "get_point", "class_pose_graph_lib_1_1_bundle_adjustment.html#adbdf5c885f53f5d357c6ef664aa0b1a7", null ],
+ [ "get_pose", "class_pose_graph_lib_1_1_bundle_adjustment.html#a9f3d0b5aea3681f1c07d7f88111f537e", null ],
+ [ "optimize", "class_pose_graph_lib_1_1_bundle_adjustment.html#acb41507945373592650a226a5c330e4e", null ]
+];
\ No newline at end of file
diff --git a/doc/html/class_pose_graph_lib_1_1_pose_graph_optimization-members.html b/doc/html/class_pose_graph_lib_1_1_pose_graph_optimization-members.html
new file mode 100644
index 0000000..d445079
--- /dev/null
+++ b/doc/html/class_pose_graph_lib_1_1_pose_graph_optimization-members.html
@@ -0,0 +1,106 @@
+
+
+
+
+
+
+
+RAW-ROAM: Member List
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ RAW-ROAM
+
+ Python Re-implementation of RadarSLAM's odometry and mapping (ROAM) components
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
This is the complete list of members for PoseGraphOptimization , including all inherited members.
+
+
+
+
+
+
diff --git a/doc/html/class_pose_graph_lib_1_1_pose_graph_optimization.html b/doc/html/class_pose_graph_lib_1_1_pose_graph_optimization.html
new file mode 100644
index 0000000..dd9d8ae
--- /dev/null
+++ b/doc/html/class_pose_graph_lib_1_1_pose_graph_optimization.html
@@ -0,0 +1,278 @@
+
+
+
+
+
+
+
+RAW-ROAM: PoseGraphOptimization Class Reference
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ RAW-ROAM
+
+ Python Re-implementation of RadarSLAM's odometry and mapping (ROAM) components
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+def __init__ (self)
+
+def optimize (self, max_iterations=20)
+
+def add_vertex (self, id, pose, fixed=False)
+
+def add_edge (self, vertices, measurement, information=np.eye(6), robust_kernel=None)
+
+def get_pose (self, id)
+
+
+
+
+
◆ __init__()
+
+
+
+
+
+ def __init__
+ (
+
+ self )
+
+
+
+
+
+
+
+
+
+
◆ add_edge()
+
+
+
+
+
+ def add_edge
+ (
+
+ self ,
+
+
+
+
+
+ vertices ,
+
+
+
+
+
+ measurement ,
+
+
+
+
+
+ information = np.eye(6)
,
+
+
+
+
+
+ robust_kernel = None
+
+
+
+ )
+
+
+
+
+
+
+
+
+
◆ add_vertex()
+
+
+
+
+
+ def add_vertex
+ (
+
+ self ,
+
+
+
+
+
+ id ,
+
+
+
+
+
+ pose ,
+
+
+
+
+
+ fixed = False
+
+
+
+ )
+
+
+
+
+
+
+
+
+
◆ get_pose()
+
+
+
+
+
+ def get_pose
+ (
+
+ self ,
+
+
+
+
+
+ id
+
+
+
+ )
+
+
+
+
+
+
+
+
+
◆ optimize()
+
+
+
+
+
+ def optimize
+ (
+
+ self ,
+
+
+
+
+
+ max_iterations = 20
+
+
+
+ )
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/doc/html/class_pose_graph_lib_1_1_pose_graph_optimization.js b/doc/html/class_pose_graph_lib_1_1_pose_graph_optimization.js
new file mode 100644
index 0000000..e2c4b1a
--- /dev/null
+++ b/doc/html/class_pose_graph_lib_1_1_pose_graph_optimization.js
@@ -0,0 +1,8 @@
+var class_pose_graph_lib_1_1_pose_graph_optimization =
+[
+ [ "__init__", "class_pose_graph_lib_1_1_pose_graph_optimization.html#ae64f0875afe3067b97ba370b354b9213", null ],
+ [ "add_edge", "class_pose_graph_lib_1_1_pose_graph_optimization.html#a6a199750c0620c6a47c7b455c27f3625", null ],
+ [ "add_vertex", "class_pose_graph_lib_1_1_pose_graph_optimization.html#a822c2871ea7b5f9131d36e4b7ebd239b", null ],
+ [ "get_pose", "class_pose_graph_lib_1_1_pose_graph_optimization.html#a8b1e208660dd8873de527e140998d048", null ],
+ [ "optimize", "class_pose_graph_lib_1_1_pose_graph_optimization.html#af7e7eb351601c9a4569e9bf1566035a5", null ]
+];
\ No newline at end of file
diff --git a/doc/html/class_raw_r_o_a_m_system_1_1_raw_r_o_a_m_system-members.html b/doc/html/class_raw_r_o_a_m_system_1_1_raw_r_o_a_m_system-members.html
new file mode 100644
index 0000000..8930f7d
--- /dev/null
+++ b/doc/html/class_raw_r_o_a_m_system_1_1_raw_r_o_a_m_system-members.html
@@ -0,0 +1,119 @@
+
+
+
+
+
+
+
+RAW-ROAM: Member List
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ RAW-ROAM
+
+ Python Re-implementation of RadarSLAM's odometry and mapping (ROAM) components
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
This is the complete list of members for RawROAMSystem , including all inherited members.
+
+ __init__ (self, str sequenceName, bool paramFlags=dict(), bool hasGroundTruth=True)RawROAMSystem
+ estTraj RawROAMSystem
+ fig RawROAMSystem
+ filePaths RawROAMSystem
+ gtTraj RawROAMSystem
+ hasGroundTruth RawROAMSystem
+ imgPathArr RawROAMSystem
+ map RawROAMSystem
+ paramFlags RawROAMSystem
+ plot (self, np.ndarray prevImg, np.ndarray currImg, np.ndarray good_old, np.ndarray good_new, np.ndarray R, np.ndarray h, np.ndarray seqInd, bool plotMapPoints=True, bool useArrow=False, bool save=True, bool show=False)RawROAMSystem
+ plotTraj (self, int seqInd, np.ndarray R, np.ndarray h, bool useArrow=False, bool save=False, bool show=False)RawROAMSystem
+ run (self, int startSeqInd=0, int endSeqInd=-1)RawROAMSystem
+ sequenceName RawROAMSystem
+ sequenceSize RawROAMSystem
+ tracker RawROAMSystem
+ updateTrajectory (self, np.ndarray R, np.ndarray h, np.ndarray seqInd)RawROAMSystem
+ updateTrajectoryAbsolute (self, np.ndarray pose_vector, int seqInd)RawROAMSystem
+ updateTrajFromTracker (self)RawROAMSystem
+
+
+
+
+
+
diff --git a/doc/html/class_raw_r_o_a_m_system_1_1_raw_r_o_a_m_system.html b/doc/html/class_raw_r_o_a_m_system_1_1_raw_r_o_a_m_system.html
new file mode 100644
index 0000000..ce3176d
--- /dev/null
+++ b/doc/html/class_raw_r_o_a_m_system_1_1_raw_r_o_a_m_system.html
@@ -0,0 +1,667 @@
+
+
+
+
+
+
+
+RAW-ROAM: RawROAMSystem Class Reference
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ RAW-ROAM
+
+ Python Re-implementation of RadarSLAM's odometry and mapping (ROAM) components
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+None __init__ (self, str sequenceName , bool paramFlags =dict(), bool hasGroundTruth =True)
+
+def updateTrajFromTracker (self)
+
+None run (self, int startSeqInd =0, int endSeqInd =-1)
+
+None updateTrajectory (self, np.ndarray R, np.ndarray h, np.ndarray seqInd)
+
+None updateTrajectoryAbsolute (self, np.ndarray pose_vector, int seqInd)
+
+None plot (self, np.ndarray prevImg, np.ndarray currImg, np.ndarray good_old, np.ndarray good_new, np.ndarray R, np.ndarray h, np.ndarray seqInd, bool plotMapPoints=True, bool useArrow=False, bool save=True, bool show=False)
+
+None plotTraj (self, int seqInd, np.ndarray R, np.ndarray h, bool useArrow=False, bool save=False, bool show=False)
+
+
+
+
+
◆ __init__()
+
+
+
+
+
+ None __init__
+ (
+
+ self ,
+
+
+
+
+ str
+ sequenceName ,
+
+
+
+
+ bool
+ paramFlags = dict()
,
+
+
+
+
+ bool
+ hasGroundTruth = True
+
+
+
+ )
+
+
+
+
+
@brief Initializer for ROAM system
+@param[in] sequenceName Name of sequence. Should be in ./data folder
+@param[in] pararmFlags Set of flags indicating turning on and off of certain algorithm features
+ - rejectOutliers: Whether to use graph-based outlier rejection
+ - useANMS: Whether to use ANMS
+ - useFMT: Whether to use FMT to correct things
+ - correctMotionDistortion: Whether to correct for motion distortion
+@param[in] hasGroundTruth Whether sequence has ground truth to be used for plotting @deprecated
+
+
+
+
+
+
◆ plot()
+
+
+
+
+
+ None plot
+ (
+
+ self ,
+
+
+
+
+ np.ndarray
+ prevImg ,
+
+
+
+
+ np.ndarray
+ currImg ,
+
+
+
+
+ np.ndarray
+ good_old ,
+
+
+
+
+ np.ndarray
+ good_new ,
+
+
+
+
+ np.ndarray
+ R ,
+
+
+
+
+ np.ndarray
+ h ,
+
+
+
+
+ np.ndarray
+ seqInd ,
+
+
+
+
+ bool
+ plotMapPoints = True
,
+
+
+
+
+ bool
+ useArrow = False
,
+
+
+
+
+ bool
+ save = True
,
+
+
+
+
+ bool
+ show = False
+
+
+
+ )
+
+
+
+
+
@brief Perform global plotting of everything, including trajectory and map points
+
+@param[in] prevImg (M x N) Previous Cartesian radar image to plot
+@param[in] currImg (M x N) Current Cartesian radar image to plot
+
+@param[in] good_old (K x 2) Good correspondence points from previous image in scan frame
+@param[in] good_new (K x 2) Good correspondence points from current image in scan frame
+
+@param[in] R (2 x 2) rotation matrix
+@param[in] h (2 x 1) translation vector
+@param[in] seqInd Sequence index
+
+@param[in] useArrow Whether to plot with arrows/triangles to indicate pose direction.
+ Otherwise uses plain lines.
+@param[in] save Whether to save image as png/jpg
+@param[in] show Whether to plt.show image
+
+
+
+
+
◆ plotTraj()
+
+
+
+
+
+ None plotTraj
+ (
+
+ self ,
+
+
+
+
+ int
+ seqInd ,
+
+
+
+
+ np.ndarray
+ R ,
+
+
+
+
+ np.ndarray
+ h ,
+
+
+
+
+ bool
+ useArrow = False
,
+
+
+
+
+ bool
+ save = False
,
+
+
+
+
+ bool
+ show = False
+
+
+
+ )
+
+
+
+
+
@brief Plot trajectory
+@param[in] seqInd Sequence index
+@param[in] R (2 x 2) rotation matrix
+@param[in] h (2 x 1) translation vector
+@param[in] useArrow Whether to plot with arrows/triangles to indicate pose direction.
+ Otherwise uses plain lines.
+@param[in] save Whether to save image as png/jpg
+@param[in] show Whether to plt.show image
+
+
+
+
+
◆ run()
+
+
+
+
+
+ None run
+ (
+
+ self ,
+
+
+
+
+ int
+ startSeqInd = 0
,
+
+
+
+
+ int
+ endSeqInd = -1
+
+
+
+ )
+
+
+
+
+
@brief Do a full run the ROAMing algorithm on sequence,
+ starting from and ending at specified indices,
+ incrementally calling the @see Tracker.track() function
+
+@param[in] startImgInd Starting index of sequence. Default 0.
+@param[in] startImgInd Ending index of sequence. Default -1.
+ Negative numbers to indicate end.
+
+
+
+
+
◆ updateTrajectory()
+
+
+
+
+
+ None updateTrajectory
+ (
+
+ self ,
+
+
+
+
+ np.ndarray
+ R ,
+
+
+
+
+ np.ndarray
+ h ,
+
+
+
+
+ np.ndarray
+ seqInd
+
+
+
+ )
+
+
+
+
+
@brief Update trajectory using R,h matrices
+
+@param[in] R (2 x 2) rotation matrix
+@param[in] h (2 x 1) translation vector
+@param[in] seqInd Sequence index, used for visualization/plotting
+
+@note Updates internal trajectory
+
+
+
+
+
◆ updateTrajectoryAbsolute()
+
+
+
+
+
+ None updateTrajectoryAbsolute
+ (
+
+ self ,
+
+
+
+
+ np.ndarray
+ pose_vector ,
+
+
+
+
+ int
+ seqInd
+
+
+
+ )
+
+
+
+
+
@brief Update trajectory using pose vector
+
+@param[in] pose_vector (3, ) pose vector
+@param[in] seqInd Sequence index, used for visualization/plotting
+
+@note Updates internal trajectory
+
+
+
+
+
◆ updateTrajFromTracker()
+
+
+
+
+
+ def updateTrajFromTracker
+ (
+
+ self )
+
+
+
+
+
+
+
+
+
+
◆ estTraj
+
+
+
+
◆ fig
+
+
+
+
◆ filePaths
+
+
+
+
◆ gtTraj
+
+
+
+
◆ hasGroundTruth
+
+
+
+
◆ imgPathArr
+
+
+
+
◆ map
+
+
+
+
◆ paramFlags
+
+
+
+
◆ sequenceName
+
+
+
+
◆ sequenceSize
+
+
+
+
◆ tracker
+
+
+
+
+
+
+
+
diff --git a/doc/html/class_raw_r_o_a_m_system_1_1_raw_r_o_a_m_system.js b/doc/html/class_raw_r_o_a_m_system_1_1_raw_r_o_a_m_system.js
new file mode 100644
index 0000000..c59c963
--- /dev/null
+++ b/doc/html/class_raw_r_o_a_m_system_1_1_raw_r_o_a_m_system.js
@@ -0,0 +1,21 @@
+var class_raw_r_o_a_m_system_1_1_raw_r_o_a_m_system =
+[
+ [ "__init__", "class_raw_r_o_a_m_system_1_1_raw_r_o_a_m_system.html#aaa625e533c1d594cffd5d8032dd3eb17", null ],
+ [ "plot", "class_raw_r_o_a_m_system_1_1_raw_r_o_a_m_system.html#a50adb4e1f5eaab2b5d1fa4f4b9b45652", null ],
+ [ "plotTraj", "class_raw_r_o_a_m_system_1_1_raw_r_o_a_m_system.html#ab609ee8f1ec2225e40bb4c519b7d8c76", null ],
+ [ "run", "class_raw_r_o_a_m_system_1_1_raw_r_o_a_m_system.html#aeb372a8b83527187620cda92e01fcdbd", null ],
+ [ "updateTrajectory", "class_raw_r_o_a_m_system_1_1_raw_r_o_a_m_system.html#a4bfd1fc8e3e6eb9a09ead0e93bc79cdb", null ],
+ [ "updateTrajectoryAbsolute", "class_raw_r_o_a_m_system_1_1_raw_r_o_a_m_system.html#aa3a95039e4a0987c355da8d8ac48eb26", null ],
+ [ "updateTrajFromTracker", "class_raw_r_o_a_m_system_1_1_raw_r_o_a_m_system.html#a01a780439bdd4eed44ec3dc476fcc7c8", null ],
+ [ "estTraj", "class_raw_r_o_a_m_system_1_1_raw_r_o_a_m_system.html#a8d5e95f4d6054db64fd36facd315f2e6", null ],
+ [ "fig", "class_raw_r_o_a_m_system_1_1_raw_r_o_a_m_system.html#a64aa603bc3c6c1587e7c6542452481ac", null ],
+ [ "filePaths", "class_raw_r_o_a_m_system_1_1_raw_r_o_a_m_system.html#ac133126788d5db734ec6f70884178ea8", null ],
+ [ "gtTraj", "class_raw_r_o_a_m_system_1_1_raw_r_o_a_m_system.html#a08c3a4c31d5817521dbdf24631e562c7", null ],
+ [ "hasGroundTruth", "class_raw_r_o_a_m_system_1_1_raw_r_o_a_m_system.html#a9b935ac3b117f5b7bb52024481ca6bde", null ],
+ [ "imgPathArr", "class_raw_r_o_a_m_system_1_1_raw_r_o_a_m_system.html#a8d579ebe0582eed800eb106350236c4a", null ],
+ [ "map", "class_raw_r_o_a_m_system_1_1_raw_r_o_a_m_system.html#a9ec9dda576db2a36c42c1c3af155d07c", null ],
+ [ "paramFlags", "class_raw_r_o_a_m_system_1_1_raw_r_o_a_m_system.html#a4eb076d8bfa712c536ede28c13d7ae7e", null ],
+ [ "sequenceName", "class_raw_r_o_a_m_system_1_1_raw_r_o_a_m_system.html#ada038ff63190b4fbc01af8dace29ec1f", null ],
+ [ "sequenceSize", "class_raw_r_o_a_m_system_1_1_raw_r_o_a_m_system.html#a8ef2335bbb2c7c07c8e2b35959b03c52", null ],
+ [ "tracker", "class_raw_r_o_a_m_system_1_1_raw_r_o_a_m_system.html#abec0b9ee4648af3b77db73e8070f1736", null ]
+];
\ No newline at end of file
diff --git a/doc/html/class_tracker_1_1_tracker-members.html b/doc/html/class_tracker_1_1_tracker-members.html
new file mode 100644
index 0000000..e89aa15
--- /dev/null
+++ b/doc/html/class_tracker_1_1_tracker-members.html
@@ -0,0 +1,113 @@
+
+
+
+
+
+
+
+RAW-ROAM: Member List
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ RAW-ROAM
+
+ Python Re-implementation of RadarSLAM's odometry and mapping (ROAM) components
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
This is the complete list of members for Tracker , including all inherited members.
+
+ __init__ (self, str sequenceName, list[str] imgPathArr, dict[str] filePaths, dict[bool] paramFlags)Tracker
+ estTraj Tracker
+ filePaths Tracker
+ getTransform (self, np.ndarray srcCoord, np.ndarray targetCoord, bool pixel)Tracker
+ gtTraj Tracker
+ imgPathArr Tracker
+ initTraj (self, Trajectory estTraj, Trajectory gtTraj=None)Tracker
+ paramFlags Tracker
+ plot (self, prevImg, currImg, good_old, good_new, seqInd, save=True, show=False)Tracker
+ sequenceName Tracker
+ sequenceSize Tracker
+ track (self, np.ndarray prevImgCart, np.ndarray currImgCart, np.ndarray prevImgPolar, np.ndarray currImgPolar, np.ndarray featureCoord, int seqInd)Tracker
+
+
+
+
+
+
diff --git a/doc/html/class_tracker_1_1_tracker.html b/doc/html/class_tracker_1_1_tracker.html
new file mode 100644
index 0000000..13554bf
--- /dev/null
+++ b/doc/html/class_tracker_1_1_tracker.html
@@ -0,0 +1,498 @@
+
+
+
+
+
+
+
+RAW-ROAM: Tracker Class Reference
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ RAW-ROAM
+
+ Python Re-implementation of RadarSLAM's odometry and mapping (ROAM) components
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+None __init__ (self, str sequenceName , list[str] imgPathArr , dict[str] filePaths , dict[bool] paramFlags )
+
+def initTraj (self, Trajectory estTraj , Trajectory gtTraj =None)
+
+Tuple[np.ndarray, np.ndarray, np.ndarray] track (self, np.ndarray prevImgCart, np.ndarray currImgCart, np.ndarray prevImgPolar, np.ndarray currImgPolar, np.ndarray featureCoord, int seqInd)
+
+Tuple[np.ndarray, np.ndarray] getTransform (self, np.ndarray srcCoord, np.ndarray targetCoord, bool pixel)
+
+def plot (self, prevImg, currImg, good_old, good_new, seqInd, save=True, show=False)
+
+
+
+
+
◆ __init__()
+
+
+
+
+
+ None __init__
+ (
+
+ self ,
+
+
+
+
+ str
+ sequenceName ,
+
+
+
+
+ list[str]
+ imgPathArr ,
+
+
+
+
+ dict[str]
+ filePaths ,
+
+
+
+
+ dict[bool]
+ paramFlags
+
+
+
+ )
+
+
+
+
+
+
+
+
+
+
◆ getTransform()
+
+
+
+
+
+ Tuple[np.ndarray, np.ndarray] getTransform
+ (
+
+ self ,
+
+
+
+
+ np.ndarray
+ srcCoord ,
+
+
+
+
+ np.ndarray
+ targetCoord ,
+
+
+
+
+ bool
+ pixel
+
+
+
+ )
+
+
+
+
+
@brief Obtain transform from coordinate correspondnces
+
+@param[in] srcCoord Coordinates of src feature points (K' x 2) in [x, y] format
+@param[in] targetCoord Coordinates of target feature points (K' x 2) in [x, y] format
+
+@note target = R @ src + h
+@return R rotation matrix (2 x 2)
+@return h translation matrix (2 x 1), units in meters [m]
+
+
+
+
+
◆ initTraj()
+
+
+
+
+
+ def initTraj
+ (
+
+ self ,
+
+
+
+
+ Trajectory
+ estTraj ,
+
+
+
+
+ Trajectory
+ gtTraj = None
+
+
+
+ )
+
+
+
+
+
+
+
+
+
◆ plot()
+
+
+
+
+
+ def plot
+ (
+
+ self ,
+
+
+
+
+
+ prevImg ,
+
+
+
+
+
+ currImg ,
+
+
+
+
+
+ good_old ,
+
+
+
+
+
+ good_new ,
+
+
+
+
+
+ seqInd ,
+
+
+
+
+
+ save = True
,
+
+
+
+
+
+ show = False
+
+
+
+ )
+
+
+
+
+
+
+
+
+
◆ track()
+
+
+
+
+
+ Tuple[np.ndarray, np.ndarray, np.ndarray] track
+ (
+
+ self ,
+
+
+
+
+ np.ndarray
+ prevImgCart ,
+
+
+
+
+ np.ndarray
+ currImgCart ,
+
+
+
+
+ np.ndarray
+ prevImgPolar ,
+
+
+
+
+ np.ndarray
+ currImgPolar ,
+
+
+
+
+ np.ndarray
+ featureCoord ,
+
+
+
+
+ int
+ seqInd
+
+
+
+ )
+
+
+
+
+
@brief Track based on previous and current image
+
+@param[in] prevImg Previous Cartesian radar image (N x N)
+@param[in] prevImg Current Cartesian radar image (N x N)
+@param[in] prevImg Previous polar radar image (? x ?)
+@param[in] prevImg Current polar radar image (? x ?)
+
+@param[in] blobCoord Coordinates of feature points (K x 2) in [x, y] format
+
+@return good_old Coordinates of old good feature points (K' x 2) in [x, y] format
+@return good_new Coordinates of new good feature points (K' x 2) in [x, y] format
+@return angleRotRad Angle used to rotate image
+@return corrStatus (K x 2) correspondence status @note Needed for mapping to track keyframe points
+
+
+
+
+
+
◆ estTraj
+
+
+
+
◆ filePaths
+
+
+
+
◆ gtTraj
+
+
+
+
◆ imgPathArr
+
+
+
+
◆ paramFlags
+
+
+
+
◆ sequenceName
+
+
+
+
◆ sequenceSize
+
+
+
+
+
+
+
+
diff --git a/doc/html/class_tracker_1_1_tracker.js b/doc/html/class_tracker_1_1_tracker.js
new file mode 100644
index 0000000..0754554
--- /dev/null
+++ b/doc/html/class_tracker_1_1_tracker.js
@@ -0,0 +1,15 @@
+var class_tracker_1_1_tracker =
+[
+ [ "__init__", "class_tracker_1_1_tracker.html#a50cd44879d0981e765b880213eb46692", null ],
+ [ "getTransform", "class_tracker_1_1_tracker.html#a8072a77a7c03adb53639fb97c7a04b5b", null ],
+ [ "initTraj", "class_tracker_1_1_tracker.html#a8d30f4090822251a3fea3db1e53ce83c", null ],
+ [ "plot", "class_tracker_1_1_tracker.html#a8038366cd3daf819bf43b24c7c4b3371", null ],
+ [ "track", "class_tracker_1_1_tracker.html#a5502aeee99457c25dc9237a16f102fd9", null ],
+ [ "estTraj", "class_tracker_1_1_tracker.html#a8d5e95f4d6054db64fd36facd315f2e6", null ],
+ [ "filePaths", "class_tracker_1_1_tracker.html#ac133126788d5db734ec6f70884178ea8", null ],
+ [ "gtTraj", "class_tracker_1_1_tracker.html#a08c3a4c31d5817521dbdf24631e562c7", null ],
+ [ "imgPathArr", "class_tracker_1_1_tracker.html#a8d579ebe0582eed800eb106350236c4a", null ],
+ [ "paramFlags", "class_tracker_1_1_tracker.html#a4eb076d8bfa712c536ede28c13d7ae7e", null ],
+ [ "sequenceName", "class_tracker_1_1_tracker.html#ada038ff63190b4fbc01af8dace29ec1f", null ],
+ [ "sequenceSize", "class_tracker_1_1_tracker.html#a8ef2335bbb2c7c07c8e2b35959b03c52", null ]
+];
\ No newline at end of file
diff --git a/doc/html/classes.html b/doc/html/classes.html
new file mode 100644
index 0000000..9600dc3
--- /dev/null
+++ b/doc/html/classes.html
@@ -0,0 +1,122 @@
+
+
+
+
+
+
+
+RAW-ROAM: Class Index
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ RAW-ROAM
+
+ Python Re-implementation of RadarSLAM's odometry and mapping (ROAM) components
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/doc/html/classmotion_distortion_1_1_motion_distortion_solver-members.html b/doc/html/classmotion_distortion_1_1_motion_distortion_solver-members.html
new file mode 100644
index 0000000..09dee01
--- /dev/null
+++ b/doc/html/classmotion_distortion_1_1_motion_distortion_solver-members.html
@@ -0,0 +1,126 @@
+
+
+
+
+
+
+
+RAW-ROAM: Member List
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ RAW-ROAM
+
+ Python Re-implementation of RadarSLAM's odometry and mapping (ROAM) components
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
This is the complete list of members for MotionDistortionSolver , including all inherited members.
+
+ __init__ (self, T_wj0, p_w, p_jt, T_wj, sigma_p, sigma_v, frequency=RADAR_SCAN_FREQUENCY)MotionDistortionSolver
+ __init__ (self, sigma_p, sigma_v, frequency=RADAR_SCAN_FREQUENCY)MotionDistortionSolver
+ compute_time_deltas (period, points)MotionDistortionSolver static
+ debug MotionDistortionSolver
+ dT MotionDistortionSolver
+ error (self, v_j, T_wj)MotionDistortionSolver
+ error_vector (self, params)MotionDistortionSolver
+ expected_observed_pts (self, T_wj)MotionDistortionSolver
+ infer_velocity (self, transform)MotionDistortionSolver
+ info_vector MotionDistortionSolver
+ jacobian (self, v_j, T_wj)MotionDistortionSolver
+ jacobian_vector (self, params)MotionDistortionSolver
+ optimize (self, max_iters=20)MotionDistortionSolver
+ optimize_library (self)MotionDistortionSolver
+ p_jt MotionDistortionSolver
+ p_w MotionDistortionSolver
+ sigma_p MotionDistortionSolver
+ sigma_v MotionDistortionSolver
+ T_wj0 MotionDistortionSolver
+ T_wj0_inv MotionDistortionSolver
+ T_wj_initial MotionDistortionSolver
+ total_scan_time MotionDistortionSolver
+ undistort (v_j, points, period=1/RADAR_SCAN_FREQUENCY, times=None)MotionDistortionSolver static
+ update_problem (self, T_wj0, p_w, p_jt, T_wj, debug=False)MotionDistortionSolver
+ v_j_initial MotionDistortionSolver
+
+
+
+
+
+
diff --git a/doc/html/classmotion_distortion_1_1_motion_distortion_solver.html b/doc/html/classmotion_distortion_1_1_motion_distortion_solver.html
new file mode 100644
index 0000000..044b31c
--- /dev/null
+++ b/doc/html/classmotion_distortion_1_1_motion_distortion_solver.html
@@ -0,0 +1,824 @@
+
+
+
+
+
+
+
+RAW-ROAM: MotionDistortionSolver Class Reference
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ RAW-ROAM
+
+ Python Re-implementation of RadarSLAM's odometry and mapping (ROAM) components
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+def __init__ (self, T_wj0 , p_w , p_jt , T_wj, sigma_p , sigma_v , frequency=RADAR_SCAN_FREQUENCY )
+
+def __init__ (self, sigma_p , sigma_v , frequency=RADAR_SCAN_FREQUENCY )
+
+def update_problem (self, T_wj0 , p_w , p_jt , T_wj, debug =False)
+
+def infer_velocity (self, transform)
+
+def expected_observed_pts (self, T_wj)
+
+def error_vector (self, params)
+
+def error (self, v_j, T_wj)
+
+def jacobian_vector (self, params)
+
+def jacobian (self, v_j, T_wj)
+
+def optimize (self, max_iters=20)
+
+def optimize_library (self)
+
+
+
+
+
◆ __init__() [1/2]
+
+
+
+
+
+ def __init__
+ (
+
+ self ,
+
+
+
+
+
+ T_wj0 ,
+
+
+
+
+
+ p_w ,
+
+
+
+
+
+ p_jt ,
+
+
+
+
+
+ T_wj ,
+
+
+
+
+
+ sigma_p ,
+
+
+
+
+
+ sigma_v ,
+
+
+
+
+
+ frequency = RADAR_SCAN_FREQUENCY
+
+
+
+ )
+
+
+
+
+
+
+
+
+
◆ __init__() [2/2]
+
+
+
+
+
+ def __init__
+ (
+
+ self ,
+
+
+
+
+
+ sigma_p ,
+
+
+
+
+
+ sigma_v ,
+
+
+
+
+
+ frequency = RADAR_SCAN_FREQUENCY
+
+
+
+ )
+
+
+
+
+
+
+
+
+
+
◆ compute_time_deltas()
+
+
+
+
+
+
+
+
+ def compute_time_deltas
+ (
+
+ period ,
+
+
+
+
+
+ points
+
+
+
+ )
+
+
+
+
+
+static
+
+
+
+
Get the time deltas for each point. This depends solely on where the
+points are in scan angle. The further away from center, the greater the
+time displacement, and therefore the higher time delta. We use this time
+delta to help us transform the points into an undistorted frame. Note
+that this is an estimate computed from distorted images. It is a good
+idea to re-run this function once an undistorted frame is obtained for
+better estimates.
+
+
+
+
+
◆ error()
+
+
+
+
+
+ def error
+ (
+
+ self ,
+
+
+
+
+
+ v_j ,
+
+
+
+
+
+ T_wj
+
+
+
+ )
+
+
+
+
+
Return the Cauchy robust error between the undistorted points and their
+estimated observed positions and the velocity error.
+
+
+
+
+
◆ error_vector()
+
+
+
+
+
+ def error_vector
+ (
+
+ self ,
+
+
+
+
+
+ params
+
+
+
+ )
+
+
+
+
+
Because we are optimizing over rotations, we choose to keep the rotation
+in a theta form, we have to do matrix exponential in here to convert
+into the SO(1) form, then augment to the rotation-translation transform
+
+
+
+
+
◆ expected_observed_pts()
+
+
+
+
+
+ def expected_observed_pts
+ (
+
+ self ,
+
+
+
+
+
+ T_wj
+
+
+
+ )
+
+
+
+
+
Returns the estimated positions of points based on their world location
+estimates and the current best fit transform
+
+
+
+
+
◆ infer_velocity()
+
+
+
+
+
+ def infer_velocity
+ (
+
+ self ,
+
+
+
+
+
+ transform
+
+
+
+ )
+
+
+
+
+
+
+
+
+
◆ jacobian()
+
+
+
+
+
+ def jacobian
+ (
+
+ self ,
+
+
+
+
+
+ v_j ,
+
+
+
+
+
+ T_wj
+
+
+
+ )
+
+
+
+
+
Compute the Jacobian. This has two parts, as defined by the RadarSLAM
+paper:
+J_p - gradient of point error and velocity error wrt pose terms Tx,
+ Ty, Ttheta
+J_v - gradient of point error and velocity error wrt velocity terms
+ vx, vy, vtheta
+
+
+
+
+
◆ jacobian_vector()
+
+
+
+
+
+ def jacobian_vector
+ (
+
+ self ,
+
+
+
+
+
+ params
+
+
+
+ )
+
+
+
+
+
+
+
+
+
◆ optimize()
+
+
+
+
+
+ def optimize
+ (
+
+ self ,
+
+
+
+
+
+ max_iters = 20
+
+
+
+ )
+
+
+
+
+
+
+
+
+
◆ optimize_library()
+
+
+
+
+
+ def optimize_library
+ (
+
+ self )
+
+
+
+
+
Optimize using the LM implementation in the scipy library.
+
+
+
+
+
◆ undistort()
+
+
+
+
+
+
+
+
+ def undistort
+ (
+
+ v_j ,
+
+
+
+
+
+ points ,
+
+
+
+
+
+ period = 1 / RADAR_SCAN_FREQUENCY
,
+
+
+
+
+
+ times = None
+
+
+
+ )
+
+
+
+
+
+static
+
+
+
+
Computes a new set of undistorted observed points, based on the current
+best estimate of v_T, T_wj, dT
+
+
+
+
+
◆ update_problem()
+
+
+
+
+
+ def update_problem
+ (
+
+ self ,
+
+
+
+
+
+ T_wj0 ,
+
+
+
+
+
+ p_w ,
+
+
+
+
+
+ p_jt ,
+
+
+
+
+
+ T_wj ,
+
+
+
+
+
+ debug = False
+
+
+
+ )
+
+
+
+
+
+
+
+
+
+
◆ debug
+
+
+
+
◆ dT
+
+
+
+
◆ info_vector
+
+
+
+
◆ p_jt
+
+
+
+
◆ p_w
+
+
+
+
◆ sigma_p
+
+
+
+
◆ sigma_v
+
+
+
+
◆ T_wj0
+
+
+
+
◆ T_wj0_inv
+
+
+
+
◆ T_wj_initial
+
+
+
+
◆ total_scan_time
+
+
+
+
◆ v_j_initial
+
+
+
+
+
+
+
+
diff --git a/doc/html/classmotion_distortion_1_1_motion_distortion_solver.js b/doc/html/classmotion_distortion_1_1_motion_distortion_solver.js
new file mode 100644
index 0000000..49ca975
--- /dev/null
+++ b/doc/html/classmotion_distortion_1_1_motion_distortion_solver.js
@@ -0,0 +1,26 @@
+var classmotion_distortion_1_1_motion_distortion_solver =
+[
+ [ "__init__", "classmotion_distortion_1_1_motion_distortion_solver.html#a3f22b34fa12c1f655ed25c4286a467ec", null ],
+ [ "__init__", "classmotion_distortion_1_1_motion_distortion_solver.html#a7f16413ad010eda322f733ea904fdbd3", null ],
+ [ "error", "classmotion_distortion_1_1_motion_distortion_solver.html#a0354ae991f4cc0144ce33e1fdb469a20", null ],
+ [ "error_vector", "classmotion_distortion_1_1_motion_distortion_solver.html#ab508478fa9741dac7d287ff768cc0788", null ],
+ [ "expected_observed_pts", "classmotion_distortion_1_1_motion_distortion_solver.html#a71b1396a9f04a79e3115d693419ccf45", null ],
+ [ "infer_velocity", "classmotion_distortion_1_1_motion_distortion_solver.html#a44ec490a2fa6ee1f2b5a971fa270541f", null ],
+ [ "jacobian", "classmotion_distortion_1_1_motion_distortion_solver.html#a2fc868177b0b6b3e920e4619aad77171", null ],
+ [ "jacobian_vector", "classmotion_distortion_1_1_motion_distortion_solver.html#a2d68bc205a33412b11c6dcb28fc17d67", null ],
+ [ "optimize", "classmotion_distortion_1_1_motion_distortion_solver.html#a771350ea3f844ac8fca4338337419242", null ],
+ [ "optimize_library", "classmotion_distortion_1_1_motion_distortion_solver.html#abac4fa4418ddc34ea1b8a6f28ac42c3d", null ],
+ [ "update_problem", "classmotion_distortion_1_1_motion_distortion_solver.html#a716b0a6bdc489d052e4243c840ed336f", null ],
+ [ "debug", "classmotion_distortion_1_1_motion_distortion_solver.html#a0514aabed091ee5e2f35766eb01eced6", null ],
+ [ "dT", "classmotion_distortion_1_1_motion_distortion_solver.html#af3c2f70b3a5027fce7c3161665b6b6af", null ],
+ [ "info_vector", "classmotion_distortion_1_1_motion_distortion_solver.html#a1d4048f86eeeda5fdd5ff70c2667fd8d", null ],
+ [ "p_jt", "classmotion_distortion_1_1_motion_distortion_solver.html#aa9fffd513bf2e2cbfe44da13aa4a69bf", null ],
+ [ "p_w", "classmotion_distortion_1_1_motion_distortion_solver.html#a0e515884ff3ebc059c605589aec689b7", null ],
+ [ "sigma_p", "classmotion_distortion_1_1_motion_distortion_solver.html#a7ae9c91f3c812a21666616d48fbe3ac8", null ],
+ [ "sigma_v", "classmotion_distortion_1_1_motion_distortion_solver.html#a0e071ef606c97ccac78bde51b78f6edf", null ],
+ [ "T_wj0", "classmotion_distortion_1_1_motion_distortion_solver.html#a0a395e89714f60150df6675faaa1f6cb", null ],
+ [ "T_wj0_inv", "classmotion_distortion_1_1_motion_distortion_solver.html#a071a910fd6194ba61a5d9cf24569b393", null ],
+ [ "T_wj_initial", "classmotion_distortion_1_1_motion_distortion_solver.html#a0937342a2f4d12c7784f942bfe386536", null ],
+ [ "total_scan_time", "classmotion_distortion_1_1_motion_distortion_solver.html#ad7beefc4bde186fd252b285986218942", null ],
+ [ "v_j_initial", "classmotion_distortion_1_1_motion_distortion_solver.html#a9f1d2973eab93bf4884920981c129781", null ]
+];
\ No newline at end of file
diff --git a/doc/html/classtrajectory_plotting_1_1_trajectory-members.html b/doc/html/classtrajectory_plotting_1_1_trajectory-members.html
new file mode 100644
index 0000000..ba69f77
--- /dev/null
+++ b/doc/html/classtrajectory_plotting_1_1_trajectory-members.html
@@ -0,0 +1,111 @@
+
+
+
+
+
+
+
+RAW-ROAM: Member List
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ RAW-ROAM
+
+ Python Re-implementation of RadarSLAM's odometry and mapping (ROAM) components
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
This is the complete list of members for Trajectory , including all inherited members.
+
+ __init__ (self, timestamps, poses)Trajectory
+ appendAbsoluteTransform (self, time, pose)Trajectory
+ appendRelativeDeltas (self, time, d_xyth)Trajectory
+ appendRelativeTransform (self, time, R, h)Trajectory
+ getGroundTruthDeltasAtTime (self, time)Trajectory
+ getPoseAtTimes (self, times)Trajectory
+ plot (self, title='My Trajectory', savePath=False)Trajectory
+ pose_transform Trajectory
+ poses Trajectory
+ timestamps Trajectory
+
+
+
+
+
+
diff --git a/doc/html/classtrajectory_plotting_1_1_trajectory.html b/doc/html/classtrajectory_plotting_1_1_trajectory.html
new file mode 100644
index 0000000..eca6e17
--- /dev/null
+++ b/doc/html/classtrajectory_plotting_1_1_trajectory.html
@@ -0,0 +1,421 @@
+
+
+
+
+
+
+
+RAW-ROAM: Trajectory Class Reference
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ RAW-ROAM
+
+ Python Re-implementation of RadarSLAM's odometry and mapping (ROAM) components
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+def __init__ (self, timestamps , poses )
+
+def getGroundTruthDeltasAtTime (self, time)
+
+def appendRelativeDeltas (self, time, d_xyth)
+
+def appendRelativeTransform (self, time, R, h)
+
+def appendAbsoluteTransform (self, time, pose)
+
+def getPoseAtTimes (self, times)
+
+def plot (self, title='My Trajectory ', savePath=False)
+
+
+
+
+
◆ __init__()
+
+
+
+
+
+ def __init__
+ (
+
+ self ,
+
+
+
+
+
+ timestamps ,
+
+
+
+
+
+ poses
+
+
+
+ )
+
+
+
+
+
@param[in] timestamps np.ndarray of sorted timestamps (N)
+@param[in] pose_matrices np.ndarray of poses (N x 3)
+
+
+
+
+
+
◆ appendAbsoluteTransform()
+
+
+
+
+
+ def appendAbsoluteTransform
+ (
+
+ self ,
+
+
+
+
+
+ time ,
+
+
+
+
+
+ pose
+
+
+
+ )
+
+
+
+
+
@brief Append a relative transform to the trajectory
+ h should already be scaled by radar resolution
+@param[in] time timestamp of the transform
+@param[in] pose pose vector (3, )
+
+
+
+
+
◆ appendRelativeDeltas()
+
+
+
+
+
+ def appendRelativeDeltas
+ (
+
+ self ,
+
+
+
+
+
+ time ,
+
+
+
+
+
+ d_xyth
+
+
+
+ )
+
+
+
+
+
+
+
+
+
◆ appendRelativeTransform()
+
+
+
+
+
+ def appendRelativeTransform
+ (
+
+ self ,
+
+
+
+
+
+ time ,
+
+
+
+
+
+ R ,
+
+
+
+
+
+ h
+
+
+
+ )
+
+
+
+
+
@brief Append a relative transform to the trajectory
+ h should already be scaled by radar resolution
+@param[in] time timestamp of the transform
+@param[in] R rotation matrix (2 x 2)
+@param[in] h translation vector (2 x 1)
+
+
+
+
+
◆ getGroundTruthDeltasAtTime()
+
+
+
+
+
+ def getGroundTruthDeltasAtTime
+ (
+
+ self ,
+
+
+
+
+
+ time
+
+
+
+ )
+
+
+
+
+
@brief Given a timestamp, return the ground truth deltas at that time in (dx, dy, dth) list for debugging
+
+
+
+
+
◆ getPoseAtTimes()
+
+
+
+
+
+ def getPoseAtTimes
+ (
+
+ self ,
+
+
+
+
+
+ times
+
+
+
+ )
+
+
+
+
+
@brief Given timestamps, return the pose at that time using cubic interpolation
+@param[in] times np.ndarray of sorted timestamps
+
+
+
+
+
◆ plot()
+
+
+
+
+
+ def plot
+ (
+
+ self ,
+
+
+
+
+
+ title = 'My Trajectory '
,
+
+
+
+
+
+ savePath = False
+
+
+
+ )
+
+
+
+
+
+
+
+
+
+
◆ pose_transform
+
+
+
+
◆ poses
+
+
+
+
◆ timestamps
+
+
+
+
+
+
+
+
diff --git a/doc/html/classtrajectory_plotting_1_1_trajectory.js b/doc/html/classtrajectory_plotting_1_1_trajectory.js
new file mode 100644
index 0000000..d0ce524
--- /dev/null
+++ b/doc/html/classtrajectory_plotting_1_1_trajectory.js
@@ -0,0 +1,13 @@
+var classtrajectory_plotting_1_1_trajectory =
+[
+ [ "__init__", "classtrajectory_plotting_1_1_trajectory.html#a71a1a749bd09d5ebf80433b59ec5bf4c", null ],
+ [ "appendAbsoluteTransform", "classtrajectory_plotting_1_1_trajectory.html#a08950a5574e6fa031de10f01899414a7", null ],
+ [ "appendRelativeDeltas", "classtrajectory_plotting_1_1_trajectory.html#a75e78dbec634ef9815d87f0a8fd101a4", null ],
+ [ "appendRelativeTransform", "classtrajectory_plotting_1_1_trajectory.html#a18b62f49e9be3d5913bfddf1409241a5", null ],
+ [ "getGroundTruthDeltasAtTime", "classtrajectory_plotting_1_1_trajectory.html#a7a7a8f886746f69fa22f688534e5eb41", null ],
+ [ "getPoseAtTimes", "classtrajectory_plotting_1_1_trajectory.html#af71c2208e017a99508ff89271af73f04", null ],
+ [ "plot", "classtrajectory_plotting_1_1_trajectory.html#ab6639608bd1c7a82abfd40ea1f53b904", null ],
+ [ "pose_transform", "classtrajectory_plotting_1_1_trajectory.html#ae295f4fa8996d01631c561ab3cb77670", null ],
+ [ "poses", "classtrajectory_plotting_1_1_trajectory.html#ad852f76f56388944f342af3b11bd2c31", null ],
+ [ "timestamps", "classtrajectory_plotting_1_1_trajectory.html#ada03328a9187736162c7277d89ef159e", null ]
+];
\ No newline at end of file
diff --git a/doc/html/functions.html b/doc/html/functions.html
new file mode 100644
index 0000000..c0d0152
--- /dev/null
+++ b/doc/html/functions.html
@@ -0,0 +1,275 @@
+
+
+
+
+
+
+
+RAW-ROAM: Class Members
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ RAW-ROAM
+
+ Python Re-implementation of RadarSLAM's odometry and mapping (ROAM) components
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Here is a list of all class members with links to the classes they belong to:
+
+
- _ -
+__init__() : CartCoord , PolarCoord , Keyframe , Map , MotionDistortionSolver , BundleAdjustment , PoseGraphOptimization , RawROAMSystem , Tracker , Trajectory
+__str__() : CartCoord , PolarCoord
+
+
+
+
- a -
+
+
+
- c -
+
+
+
- d -
+
+
+
- e -
+
+
+
- f -
+
+
+
- g -
+
+
+
- h -
+
+
+
- i -
+
+
+
- j -
+
+
+
- k -
+
+
+
- m -
+
+
+
- o -
+
+
+
- p -
+
+
+
- r -
+
+
+
- s -
+
+
+
- t -
+
+
+
- u -
+
+
+
- v -
+
+
+
- x -
+
+
+
- y -
+
+
+
+
+
+
diff --git a/doc/html/functions_func.html b/doc/html/functions_func.html
new file mode 100644
index 0000000..e2593ec
--- /dev/null
+++ b/doc/html/functions_func.html
@@ -0,0 +1,203 @@
+
+
+
+
+
+
+
+RAW-ROAM: Class Members - Functions
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ RAW-ROAM
+
+ Python Re-implementation of RadarSLAM's odometry and mapping (ROAM) components
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
- _ -
+__init__() : CartCoord , PolarCoord , Keyframe , Map , MotionDistortionSolver , BundleAdjustment , PoseGraphOptimization , RawROAMSystem , Tracker , Trajectory
+__str__() : CartCoord , PolarCoord
+
+
+
+
- a -
+
+
+
- c -
+
+
+
- e -
+
+
+
- g -
+
+
+
- i -
+
+
+
- j -
+
+
+
- o -
+
+
+
- p -
+
+
+
- r -
+
+
+
- s -
+
+
+
- t -
+
+
+
- u -
+
+
+
+
+
+
diff --git a/doc/html/functions_vars.html b/doc/html/functions_vars.html
new file mode 100644
index 0000000..06e3b8e
--- /dev/null
+++ b/doc/html/functions_vars.html
@@ -0,0 +1,195 @@
+
+
+
+
+
+
+
+RAW-ROAM: Class Members - Variables
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ RAW-ROAM
+
+ Python Re-implementation of RadarSLAM's odometry and mapping (ROAM) components
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
- d -
+
+
+
- e -
+
+
+
- f -
+
+
+
- g -
+
+
+
- h -
+
+
+
- i -
+
+
+
- k -
+
+
+
- m -
+
+
+
- p -
+
+
+
- r -
+
+
+
- s -
+
+
+
- t -
+
+
+
- v -
+
+
+
- x -
+
+
+
- y -
+
+
+
+
+
+
diff --git a/doc/html/hierarchy.html b/doc/html/hierarchy.html
new file mode 100644
index 0000000..37d61cc
--- /dev/null
+++ b/doc/html/hierarchy.html
@@ -0,0 +1,114 @@
+
+
+
+
+
+
+
+RAW-ROAM: Class Hierarchy
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ RAW-ROAM
+
+ Python Re-implementation of RadarSLAM's odometry and mapping (ROAM) components
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
This inheritance list is sorted roughly, but not completely, alphabetically:
+
+
+
+
+
+
diff --git a/doc/html/hierarchy.js b/doc/html/hierarchy.js
new file mode 100644
index 0000000..c423f8a
--- /dev/null
+++ b/doc/html/hierarchy.js
@@ -0,0 +1,17 @@
+var hierarchy =
+[
+ [ "Keyframe", "class_mapping_1_1_keyframe.html", null ],
+ [ "Map", "class_mapping_1_1_map.html", null ],
+ [ "MotionDistortionSolver", "classmotion_distortion_1_1_motion_distortion_solver.html", null ],
+ [ "object", null, [
+ [ "CartCoord", "class_coord_1_1_cart_coord.html", null ],
+ [ "PolarCoord", "class_coord_1_1_polar_coord.html", null ]
+ ] ],
+ [ "RawROAMSystem", "class_raw_r_o_a_m_system_1_1_raw_r_o_a_m_system.html", null ],
+ [ "SparseOptimizer", null, [
+ [ "BundleAdjustment", "class_pose_graph_lib_1_1_bundle_adjustment.html", null ],
+ [ "PoseGraphOptimization", "class_pose_graph_lib_1_1_pose_graph_optimization.html", null ]
+ ] ],
+ [ "Tracker", "class_tracker_1_1_tracker.html", null ],
+ [ "Trajectory", "classtrajectory_plotting_1_1_trajectory.html", null ]
+];
\ No newline at end of file
diff --git a/doc/html/index.html b/doc/html/index.html
index 5d0e127..582ee1f 100644
--- a/doc/html/index.html
+++ b/doc/html/index.html
@@ -5,7 +5,7 @@
-pynetconf: Main Page
+RAW-ROAM: Main Page
@@ -25,7 +25,7 @@
- pynetconf
+
RAW-ROAM
Python Re-implementation of RadarSLAM's odometry and mapping (ROAM) components
@@ -83,7 +83,7 @@
@@ -91,7 +91,7 @@
+
+
+
+
+
+
+ RAW-ROAM
+
+ Python Re-implementation of RadarSLAM's odometry and mapping (ROAM) components
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
A Python reimplementation of odometry and mapping component of RadarSLAM by Hong et al. [1,2].
+
Final Paper: RAW-ROAM: An Open-Source Implementation of Adverse Weather RadarSLAM
+
+Results (Odometry)
+
With Motion Compensation
+
+
Without Motion Compensation:
+
+
+Running Code
+
Requires Python. Tested on Python >= 3.9.
+
pip install -r requirements.txt
+
python3 RawROAMSystem.py <DATASET_NAME> [START_FRAME_IND [END_FRAME_IND]]
+
+Radar Sequences
+
Radar sequences can be obtained from Oxford Radar RobotCar Dataset and should be placed in the ./data
folder. The folder organization listed as full_seq_1
is an example of how the directory looks like, and is taken from the 10-11-46-21
sequence .
+
+Documentation
+
See the docs
+
+Relevant Papers
+
+RadarSLAM (2021)
+RadarSLAM (2020)
+PhaRaO
+
+
+
+
+
+
+
diff --git a/doc/html/md__r_e_a_d_m_e.html b/doc/html/md__r_e_a_d_m_e.html
new file mode 100644
index 0000000..59ddc3d
--- /dev/null
+++ b/doc/html/md__r_e_a_d_m_e.html
@@ -0,0 +1,125 @@
+
+
+