Skip to content
koide3 edited this page Oct 17, 2019 · 4 revisions

Odometry directory structure

Odometry directory contains a sequence of odometry frames (pairs of point cloud and odometry data). There should be a corresponding odometry data for each point cloud. Each filename represents the timestamp of a corresponding point cloud. (i.e., "%d_%d.pcd" % sec % nsec)

odometry_directory
├── 1570513628_110666000.pcd
├── 1570513628_110666000.odom
├── 1570513628_161063000.pcd
├── 1570513628_161063000.odom
├── 1570513628_211459000.pcd
├── 1570513628_211459000.odom
...

Odometry data file contains a matrix which describes the sensor pose at a frame.

1570513628_261838000.odom

 -0.228915  -0.971698 -0.0583246    41.5334
  0.973279  -0.229575 0.00479223    13.3015
-0.0180465 -0.0556691   0.998286    7.29953
         0          0          0          1

Graph directory structure

graph_directory
├── 000000
│   ├── cloud.pcd
│   └── data
├── 000001
│   ├── cloud.pcd
│   └── data
├── 000002
...
├── graph.g2o
└── graph.g2o.kernels

graph.g2o

VERTEX_SE3:QUAT 0 0 0 0 0 0 0 1 
FIX 0
VERTEX_SE3:QUAT 1 2.00822 0.0116456 0.00558243 0.00167023 -0.00158634 0.00325778 0.999992 
VERTEX_SE3:QUAT 2 4.03316 0.0179549 0.0342677 0.00148645 -0.00159074 0.00448917 0.999988 
VERTEX_SE3:QUAT 3 6.05854 0.0343354 0.0408672 0.000215033 -0.00238403 0.00275989 0.999993 
...

graph.g2o.kernel

2 0 1 Cauchy 0.01
2 1 2 Cauchy 0.01
2 2 3 Cauchy 0.01
2 3 4 Cauchy 0.01
...
  • "%d %d %d %s %f" % num_vertices % vertex1_id % vertex2_id % kernel_type % kernel_delta

keyframe point cloud ("%06/cloud.pcd" % keyframe_id)

The point cloud file corresponding to a keyframe. So far, only the PCD format is supported.

keyframe data file ("%06/data" % keyframe_id)

stamp 1570513265 296298000
estimate
 -0.210581  -0.975015 -0.0707132    133.496
  0.976609  -0.213038  0.0291261   -55.6173
 -0.043463 -0.0629258    0.99707    5.30258
         0          0          0          1
odom
 -0.191028  -0.975412   -0.10991    135.776
  0.980692  -0.194429  0.0210012   -53.1594
-0.0418546  -0.103776    0.99372     13.978
         0          0          0          1
accum_distance -1
id 506
  • stamp: timestamp of the corresponding odometry frame
  • estimate: the keyframe pose estimated by graph optimization
  • odom: the keyframe pose estimated by odometry (may have drift)
  • accum_distance: trajectory distance between the very beginning frame and the current frame (used for only back compatibility)
  • id: the ID of the corresponding pose node in graph.g2o