Wolfgang Hess
5ade042520
Fix crash in localization. ( #526 )
...
Updating the connectivity needs the data of nodes for which
constraints were added, so we postpone trimming to after the
connectivity update.
Also makes sure the mutex is held as necessary.
2017-09-13 14:08:32 +02:00
Wolfgang Hess
57d53b6d53
Remove unused code. ( #522 )
...
Removes FindConnectedComponent() from a proto message.
2017-09-12 18:07:18 +02:00
Christoph Schütte
b383f18365
Fix crash in localization. ( #523 )
...
This PR fixes a crash when cartographer is run in localization mode due
to the map trajectory not having been properly added to the
ConnectedComponents.
2017-09-12 17:04:13 +02:00
Wolfgang Hess
4437d89dd5
Fix crashing bug during pure localization. ( #521 )
...
When loading a serialized state, no nodes are added for each
submap. This leads to crashes when loop closures are found.
2017-09-12 15:36:22 +02:00
Juraj Oršulić
23bf0fc0d4
Fix unsigned comparison warning in 2D SPG test. ( #518 )
2017-09-12 11:25:51 +02:00
Christoph Schütte
24c2b499dd
Introduce TrajectoryConnectivityState. ( #513 )
...
* Introduce TrajectoryConnectivityState.
This class will be used to track the connectivity state (including the
last connection time) between pairs of trajectories.
2017-09-11 14:43:55 +02:00
Wolfgang Hess
84da6d75bc
Also use vector<map<>> for node data in 3D. ( #516 )
...
This reduces the difference between 2D and 3D and moves
3D towards localization and trimming.
2017-09-11 13:46:49 +02:00
Wolfgang Hess
35aa38f73f
Also use vector<map<>> submaps in 3D. ( #512 )
...
This reduces the difference between 2D and 3D and moves
3D towards localization and trimming.
2017-09-08 15:54:28 +02:00
Christoph Schütte
1a367f0549
Rename TrajectoryConnectivity ConnectedComponents. ( #510 )
...
* Rename TrajectoryConnectivity ConnectedComponents.
2017-09-07 17:11:06 +02:00
Christoph Schütte
c65f7a97b6
Remove connected_components_ from SPG. ( #509 )
...
* Remove connected_components_ from SPG.
This PR removes connected_components_ from the SparsePoseGraph. Since
the connectivity structure is no longer updated by the
ConstraintBuilders it is no longer necessary for SPG to keep a copy of
the connected components for data consistency.
2017-09-07 16:35:49 +02:00
Christoph Schütte
fa306d03ec
Remove reverse_connected_components. ( #507 )
...
Remove reverse_connected_components from SparsePoseGraphs and update
TrajectoryConnectivity to return "connected" for the reflexive case even
if trajectories are unknown.
2017-09-07 15:58:30 +02:00
Wolfgang Hess
476d156f66
Serialize trajectory node data. ( #504 )
...
Related to #253 .
2017-09-07 15:29:12 +02:00
Christoph Schütte
a5dafcfde3
Update trajectory connection in WhenDone callback. ( #506 )
...
This modifies the ConstraintBuilder interface so that Maybe*Constraint
is not responsible anymore for updating the TrajectoryConnectivity
member of SparsePoseGraph and moves this responsibility into the
WhenDone callback.
2017-09-07 14:51:19 +02:00
Wolfgang Hess
333516d955
Rename the scan queue. ( #505 )
...
This queue does not only contain scans, but also other sensor data,
e.g. from an IMU.
2017-09-07 14:04:00 +02:00
Wolfgang Hess
22f41d8e37
Store rotational histogram as part of the node data. ( #503 )
...
The compressed point cloud is no longer stored as part of the
node data to reduce memory consumption.
2017-09-07 11:01:03 +02:00
Christoph Schütte
c2d9424342
Add Unittest for transform::RigidX. ( #497 )
2017-09-06 12:06:33 +02:00
Wolfgang Hess
4829ffee46
Allow rotating histograms in the rotational scan matcher. ( #501 )
...
This allows reusing histograms to match for different yaws.
Adds a unit test to test that rotated histograms match as expected.
2017-09-06 10:59:16 +02:00
Jihoon Lee
18d8ea75fa
Use vector<map<>> for node_data. ( #472 )
2017-09-04 18:01:44 +02:00
Wolfgang Hess
c8de50bd2b
Add 'gravity_alignment' rotation to each node. ( #500 )
...
In 2D this replaces the 'tracking_to_tracking_2d' transform.
Also changes the 2D SparsePoseGraph to get the full 3D pose.
2017-09-04 16:24:26 +02:00
Wolfgang Hess
3948943b64
Use EstimateGravityOrientation() in 2D SLAM. ( #499 )
2017-09-04 11:14:51 +02:00
Wolfgang Hess
e3b6f0afc5
Expose complete poses in 2D SLAM. ( #498 )
...
This changes the trajectory nodes to contain the complete 'pose'
including 'tracking_to_tracking_2d' applied already. Similar for
the 'zbar_ij' as it is returned by 'constraints()'. This allows
2D and 3D to be handled in the same way.
2017-09-01 15:40:21 +02:00
Wolfgang Hess
5673334f0e
Tiny improvement of the gravity estimation. ( #494 )
2017-09-01 10:22:13 +02:00
Wolfgang Hess
d3c49c8585
Pass odometry data to the 3D optimization problem. ( #495 )
...
Not yet used.
2017-09-01 09:58:24 +02:00
Wolfgang Hess
72bb24e362
Pass initial pose of nodes to the 3D optimization problem. ( #496 )
...
Also drops 'point_cloud' from the name since the pose is also
relevant to other sensor data.
2017-09-01 09:34:48 +02:00
Christoph Schütte
982f2bd2e0
Use TrajectoryNode::Data in FastCorrelativeMatcher. ( #493 )
...
* Use TrajectoryNode::Data in FastCorrelativeMatcher.
2017-08-31 15:10:48 +02:00
jie
e2c67a7bde
Fix Lint and ClangTidy warnings. ( #485 )
2017-08-31 13:39:47 +02:00
Wolfgang Hess
3215035c1c
Add thread annotation to LogResidualHistograms(). ( #492 )
2017-08-31 12:26:31 +02:00
Mac Mason
b54ca0cca6
Fix Rigid2 and Rigid3 to default to an identity transform. ( #491 )
2017-08-31 11:32:04 +02:00
Christoph Schütte
06e9112bc8
Unify GlobalTrajectoryBuilder across 2D and 3D ( #489 )
...
This PR unifies GlobalTrajectoryBuilder across 2D and 3D by templating
it with the LocalTrajectoryBuilder and the SparsePoseGraph. It thus
includes small changes to interfaces in LocalTrajectoryBuilder and
SparsePoseGraph.
2017-08-30 16:34:26 +02:00
Wolfgang Hess
3c22c8253a
Refactoring: Do not pass 'constant_data' in pieces. ( #488 )
...
Also removes the no longer used range data from trajectory nodes
in 2D.
2017-08-30 14:22:12 +02:00
Wolfgang Hess
094b5a4d93
Template dispatching of sensor data. ( #484 )
...
This reduces the amount of code that needs to be written when a
new type of sensor data is introduced by a tiny bit.
Rangefinder data is not yet following this pattern.
2017-08-28 15:43:26 +02:00
Wolfgang Hess
a7fe8bd2ab
Add filtered point cloud to TrajectoryNode::Data for 2D. ( #483 )
2017-08-28 11:17:53 +02:00
jie
42d8a8f005
Add filtered point clouds to TrajectoryNode::Data for 3D. ( #482 )
2017-08-25 16:56:50 +02:00
jie
0837d4b228
Add fixed frame pose constraints to 3D problem. ( #480 )
2017-08-25 15:26:19 +02:00
jie
449799719f
Extract rotation parameterization to a separate file. ( #479 )
2017-08-25 12:06:22 +02:00
Christoph Schütte
96b71e227f
Add histograms for pose residuals ( #478 )
...
* WIP Add histograms for pose residuals
* Address reviewers comments
* Address more comments.
2017-08-25 11:39:56 +02:00
jie
2fd2e86351
Add fixed frame pose weight into optimization problem options. ( #477 )
2017-08-24 15:40:48 +02:00
jie
14977f73f1
Add fixed frame pose data to the 3D optimization problem. ( #476 )
2017-08-24 15:02:23 +02:00
Wolfgang Hess
a239b71a6e
Dynamic dispatch of sensor::Data. ( #475 )
...
This ensures at compile time that all types of data are handled,
and only keeps the data needed for each individual type.
2017-08-24 14:17:51 +02:00
jie
0671e8835e
Add interface to process fixed frame pose, e.g. GPS. ( #471 )
2017-08-24 12:49:03 +02:00
Wolfgang Hess
e78e2cb5ad
Extract PoseEstimate into its own file. ( #474 )
...
This is to remove the dependency of GlobalTrajectoryBuilderInterface
on the TrajectoryBuilder.
2017-08-24 12:04:39 +02:00
Wolfgang Hess
f0e1dab031
Add a histogram of low resolution scores for 3D. ( #473 )
2017-08-24 09:28:12 +02:00
Wolfgang Hess
4d11a226ff
Expose low resolution matching scores. ( #470 )
...
This is needed in preparation of adding a low resolution score histogram.
2017-08-23 17:48:49 +02:00
Jihoon Lee
2dd2d6f448
Use vector<map<>> instead of vector<deque> for submap_data. ( #422 )
2017-08-23 12:16:42 +02:00
zjwoody
2e53586818
Also check low resolution match for 3D loop closure. ( #468 )
...
Related to #369 .
2017-08-22 17:29:20 +02:00
Wolfgang Hess
297e9cc02d
Remove unused argument. ( #466 )
2017-08-22 12:22:41 +02:00
zjwoody
ac693f3e04
Use separate voxel filter options for 3D loop closure. ( #465 )
2017-08-21 18:01:23 +02:00
Damon Kohler
edfd6ac8d7
Also log the IMU correction as a quaternion. ( #463 )
2017-08-21 17:26:48 +02:00
Moritz Münst
0ef372d584
Use odometry in 2D pose graph optimization. ( #456 )
2017-08-21 15:12:00 +02:00
Wolfgang Hess
bcde3b45b0
Tiny cleanup of TransformInterpolationBuffer. ( #462 )
2017-08-18 16:19:50 +02:00