Commit Graph

28 Commits (a4c0e4754e99e461e2497b05f234839b181fc3cc)

Author SHA1 Message Date
Wolfgang Hess a4c0e4754e Rename scan to node. (#667)
Changes the naming from "scan" to "node" in the pose graph.
AddNode() adds a new node to the graph which might contain
data from multiple range sensors and not necessarily one scan.

Configuration and documentation changes might follow in a
separate PR.

Related to #280.
2017-11-14 16:53:31 +01:00
Wolfgang Hess 51f5a18462 Fix formatting. (#561) 2017-10-04 15:58:48 +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 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 a7fe8bd2ab Add filtered point cloud to TrajectoryNode::Data for 2D. (#483) 2017-08-28 11:17:53 +02:00
zjwoody ba6f782949 Fix ClangTidy warnings. (#455) 2017-08-16 15:21:04 +02:00
Wolfgang Hess 78bd37ec26 Unify 2D/3D range data in trajectory nodes. (#396)
Since we only convert compressed range data to protos, we remove the
unused code to serialize (non-compressed) range data which should also
not be used in the future.
2017-07-07 17:07:04 +02:00
Moritz Münst 4c3059e088 Improve code comments. (#243) 2017-06-26 14:32:44 +02:00
Holger Rapp b944b19159 Make use of Submap in 2D similar to 3D. (#343)
Use mapping_2d::Submap instead of mapping::Submap in 2D.
Use `finished()` instead of `finished_probability_grid()` in 2D.

PAIR=wohe
2017-06-19 14:43:10 +02:00
Holger Rapp cff0c73857 Converted Submap from struct to class. (#333) 2017-06-12 17:28:38 +02:00
Holger Rapp b427259214 Mark trimmed Submaps and remove from scan matching. (#319)
Related to #283.

PAIR=wohe
2017-06-07 15:52:24 +02:00
Wolfgang Hess 565e9c3eff Simplify the handling of weights in the optimization problem. (#309)
This replaces the 3x3 (2D) or 6x6 (3D) matrix by the weights
for the translational and rotational component. The matrices
only contain these values now anyway, so this simplifies
the code and increases performance.

Also removes 2D from the UKF implementation which has not been
used for quite some time now.
2017-06-01 17:03:49 +02:00
Wolfgang Hess a2e52f81cf Remove 2D scan matcher covariances. (#307)
This replaces the scaled covariances derived from the Ceres
scan matcher by directly configurable weights. Using covariances
did not provide the expected benefit, and replacing the scaling
matrix by two values will allow a faster evaluation of the cost
function in the future.
2017-05-31 11:56:32 +02:00
Wolfgang Hess 56fc2a9a92 Fix 3D SLAM loop closure issues. (#296)
3D submaps are now oriented approximately gravity aligned.
This is so that accumulating error in the local SLAM frame is
no longer a problem for finding loop closures. It also ensures
that the z search window size is approximately in the gravity
direction.

We now also pass an estimate of gravity orientation when doing
multi-trajectory matches. Otherwise trajectories starting with
different orientation relative to gravity could not be connected.

The gravity alignment is currently derived from the ImuTracker.
It might be possible to further improve on this by using the
latest gravity direction from the optimized poses.
2017-05-18 16:55:11 +02:00
Wolfgang Hess 33ce5dee37 Improve debug output and tiny bug fix. (#293)
The full submap search window in 3D SLAM was
not calculated correctly.
2017-05-17 15:21:39 +02:00
Wolfgang Hess 6c9e24d7c5 Keep 'trajectory_nodes_' per trajectory. (#291)
Fixes #256.

PAIR=SirVer
2017-05-17 11:15:34 +02:00
Wolfgang Hess fde9272533 Adds mapping:NodeId for Constraint. (#279)
Also extracted mapping::SubmapId into an id.h file.

Related to #256.

PAIR=SirVer
2017-05-11 17:17:12 +02:00
Holger Rapp e6a6bab351 Make TrajectoryConnectivity use trajectory IDs. (#275)
Related to #256.
2017-05-11 13:36:12 +02:00
Holger Rapp 94e8eec41d Use (trajectory_id, submap_index) as submap IDs in places. (#271)
Replace flat submap index through (trajectory_id, submap_index) in Constraints.
Related to #256.

PAIR=wohe
2017-05-10 12:26:58 +02:00
Wolfgang Hess 71c951b370 Remove the 'log_residual_histograms' option. (#166)
This option only existed in 2D. Also other refactoring to make the 2D
sparse pose graph optimization more similar to 3D.
2016-12-19 17:57:12 +01:00
Wolfgang Hess e703b1cea3 Fix multi-trajectory loop closure attempts. (#131)
Before, old scans with new submaps were always matched as if they
belong to connected trajectories.
2016-11-18 10:36:30 +01:00
Wolfgang Hess c80c2eaa40 Unify 2D/3D constraints. (#119)
This removes Constraint2D and instead embeds 2D constraints in a
Constraint3D which is renamed to Constraint.
2016-11-08 14:47:03 +01:00
Wolfgang Hess 9020f71605 Remove LaserFan in favor of LaserFan3D. (#62)
LaserFan3D will be renamed in the next PR.
2016-10-14 11:26:53 +02:00
Wolfgang Hess cac501cdb1 Always use the 3D voxel filter. (#61) 2016-10-13 18:56:41 +02:00
Wolfgang Hess 5aad2d6feb Change 2D scan matching to use 3D point clouds. (#60) 2016-10-13 17:52:05 +02:00
Wolfgang Hess e526a7022f Remove covariance computation from branch-and-bound. (#27)
These covariances were only used in 2D and are only an estimate.
Following 3D, we change 2D to use the (local) covariance computed
using Ceres.
2016-09-23 14:27:19 +02:00
Wolfgang Hess 0796d50b00 Removes max_covariance_trace option. (#25)
This option is no longer really useful to predict outliers.
It is removed and other parameters scaled to minimize the change
in behavior. And related cleanup.
2016-09-22 11:35:47 +02:00
Damon Kohler 269c28cb0c Moves the contents of the cartographer subdirectory up one level. 2016-08-03 12:48:29 +02:00