Wolfgang Hess
9fbb65084b
Exclude trimmed submaps from the pose graph serialization. ( #354 )
...
Related to #283 .
2017-06-21 17:57:08 +02:00
Wolfgang Hess
432cd5dcd3
Delete data of trimmed submaps. ( #353 )
...
This is related to #283 .
PAIR=SirVer
2017-06-21 16:36:54 +02:00
Holger Rapp
9646b31145
Move GetSubmapData from GlobalTrajectoryBuilder into SparsePoseGraph. ( #352 )
...
- Adds a function to query all SubmapData from the SparsePoseGraph.
- Changes MapBuilder::SubmapToProto to take a SubmapId.
- Remove num_submaps().
2017-06-21 14:21:23 +02:00
Holger Rapp
16636cd4e1
Remove friends declaration in Submap. ( #350 )
2017-06-21 12:49:44 +02:00
Wolfgang Hess
0fbdf6d0ec
Add ground truth proto support for trajectory evaluation. ( #349 )
...
This adds support of GroundTruth protos in addition to
text files.
Fixes the ground truth generation code to skip outliers.
Improves the ground truth generation to use expected
relative poses instead of the solution.
Writes constraints including the roll and pitch from the
node for 2D SLAM, so that constraints correctly capture
the expected transform between the 3D poses of scan and
submap in 2D SLAM.
Related to #239 .
Related to #310 .
2017-06-21 11:33:30 +02:00
Holger Rapp
f242b5242a
Use shared_ptr<> for Submap objects. ( #347 )
...
Also remove `finished_submap` and `matching_submaps`. These are now
implicit.
Related to #283 .
PAIR=wohe
2017-06-19 17:23:48 +02:00
Holger Rapp
5c389cdf4a
Remove mapping::Submaps. ( #345 )
...
PAIR=wohe
2017-06-19 15:24:06 +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
Wolfgang Hess
12c3795134
Remove direct access to Submaps from the outside. ( #339 )
...
PAIR=SirVer
2017-06-16 10:47:11 +02:00
Wolfgang Hess
c1e1d03636
Support extrapolating a single submap transform. ( #338 )
2017-06-14 15:10:36 +02:00
Holger Rapp
cff0c73857
Converted Submap from struct to class. ( #333 )
2017-06-12 17:28:38 +02:00
Holger Rapp
2d75f4ef56
Move SubmapToProto from Submaps -> Submap. ( #332 )
...
PAIR=wohe
2017-06-12 16:27:51 +02:00
Holger Rapp
521666ce55
Trim node data. ( #331 )
...
Also, remove trimmed nodes from proto serialization.
PAIR=wohe
2017-06-12 15:20:49 +02:00
Holger Rapp
f68da37c6e
Drop trajectory_id from TrajectoryNode. ( #330 )
...
PAIR=wohe
2017-06-12 14:28:16 +02:00
Wolfgang Hess
f07f888dab
Remove the deque for constant node data. ( #326 )
...
This is needed in preparation of deleting nodes.
Related to #283 .
2017-06-09 16:53:49 +02:00
Holger Rapp
c1d4d08a1d
Move AddProbabilityGridToResponse to the Submap object. ( #318 )
...
Working towards a thread-safe Submap object. Related to #283 .
PAIR=wohe
2017-06-07 15:13:56 +02:00
Wolfgang Hess
b3b9735a4b
Remove trimmed constraints. ( #317 )
...
Still missing marking submaps and nodes as trimmed.
PAIR=SirVer
2017-06-07 14:23:58 +02:00
Wolfgang Hess
a66147f131
Adds a PureLocalizationTrimmer. ( #316 )
...
Related to #315 .
2017-06-07 12:39:04 +02:00
Wolfgang Hess
c90b887bfb
Adds API to add trimmers. ( #314 )
...
This is related to #283 . First to be implemented for
pure localization and 2D SLAM.
PAIR=SirVer
2017-06-06 17:07:30 +02:00
Wolfgang Hess
56529e5968
Tiny cleanup of the MapBuilder. ( #313 )
...
GetTrajectoryConnectivity() was a convenience function.
Instead, sparse_pose_graph() should be used to get access to
GetConnectedTrajectories().
2017-06-06 15:20:10 +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
92f154f561
Also use fixed covariances in 3D SLAM. ( #308 )
...
This follows #307 .
2017-06-01 15:04:07 +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
515db3b4a9
Minor fixes. ( #303 )
...
Extract mapping_2d::CreateLocalTrajectoryBuilderOptions() into its own file.
Loop initialization fix in the trajectory_connectivity_test.
Thread safety fixes in sparse_pose_graph.
2017-05-22 14:55:05 +02:00
Wolfgang Hess
2d416589a7
Adds a NestedVectorsById<> class template. ( #300 )
2017-05-19 16:58:21 +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
Holger Rapp
5aa968748e
Sparse pose graph no longer uses Submaps* for trajectory identification. ( #290 )
...
Related to #256 .
PAIR=wohe
2017-05-16 14:24:49 +02:00
Holger Rapp
8612f5e6e5
ConstantData now has a trajectory_id. ( #289 )
...
Related to #256 .
PAIR=wohe
2017-05-16 11:42:18 +02:00
Wolfgang Hess
5effc4dac7
Remove flat indices from SparsePoseGraph::GetTrajectoryNodes(). ( #288 )
...
Related to #256 .
Also removes ComputeMapLimits with is moved to Cartographer ROS.
PAIR=SirVer
2017-05-16 10:51:08 +02:00
Wolfgang Hess
690d1893a7
Remove unused code. ( #287 )
2017-05-15 16:57:02 +02:00
Jihoon Lee
f26e4366c9
Make SparsePoseGraph::constraints() public. ( #284 )
2017-05-15 16:06:20 +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
7b1915b906
Fix bug in ToProto introduced in #275 .
2017-05-11 14:02:04 +02:00
Holger Rapp
e6a6bab351
Make TrajectoryConnectivity use trajectory IDs. ( #275 )
...
Related to #256 .
2017-05-11 13:36:12 +02:00
Holger Rapp
95f0d013c6
Rename Constraint::i -> submap_id. ( #274 )
...
Related to #256 .
2017-05-11 11:43:47 +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
Holger Rapp
45de59b116
Move trajectory id mapping into the SparsePoseGraph. ( #270 )
2017-05-10 08:23:57 +02:00
Holger Rapp
20e9cde53d
Fix race condition in extrapolation of submap poses. ( #268 )
...
PAIR=wohe
2017-05-09 15:21:30 +02:00
Holger Rapp
772d02c00e
Move ConstantData into the SPG ( #263 )
2017-05-08 17:10:07 +02:00
Wolfgang Hess
9194c8679b
Clean up. ( #266 )
...
Move trajectory builder options.
Remove the barely used Interval template.
Inline the remaining CMakeLists.txt subdirectories.
2017-05-08 15:29:13 +02:00
Yutaka Takaoka
522b37979a
Enable multiple configuration for multi-trajectory ( #248 )
2017-05-08 11:58:53 +02:00
Holger Rapp
e2de27cded
Remove dead code. ( #262 )
2017-05-08 11:06:33 +02:00
Wolfgang Hess
79dc1f848f
Remove 'laser' references from parameter names. ( #259 )
...
Related to #250 .
2017-05-04 15:38:41 +02:00
Wolfgang Hess
6d2feaa8c7
Build and run all tests found by the glob. ( #258 )
2017-05-03 16:55:13 +02:00
Wolfgang Hess
af22dc6fe1
Simplify submap versions. ( #235 )
...
We now only keep track of the number of inserted range data.
2017-04-21 14:12:08 +02:00
Mac Mason
92d360a8f2
Multi-trajectory SparsePoseGraph::ToProto. ( #227 )
...
Multi-trajectory SparsePoseGraph::ToProto.
Remove obsolete TrajectoryNode::ToProto.
Add GetSubmapStates.
2017-04-19 17:01:03 +02:00
William Woodall
bda68c33d9
Fix warning about struct being redefined as class ( #228 )
2017-03-28 08:57:13 +02:00
Mac Mason
1e5b49ce62
Minor sparse_pose_graph.proto improvement ( #226 )
2017-03-24 09:03:36 +01:00
Wolfgang Hess
4fa190d316
Rename LaserFan to RangeData. ( #224 )
...
LaserFan is misleading since range data can come from
various sensor types.
2017-03-23 14:56:18 +01:00
Wolfgang Hess
a2abe45542
Rename CompressedLaserFan to CompressedRangeData. ( #223 )
...
CompressedLaserFan is misleading since data can come from a
different type of sensor, e.g. a depth camera.
2017-03-22 13:06:41 +01:00
Mac Mason
30b9fcce34
Claim an old TODO. ( #209 )
2017-03-01 10:26:48 +01:00
Wolfgang Hess
b4a1021538
Formatting changes. ( #199 )
2017-02-08 14:30:38 +01:00
Wolfgang Hess
1c433e6f3a
Refactor the documentation update script. ( #179 )
2017-01-10 10:43:16 +01:00
Damon Kohler
4e9c3d69b5
Build all our source files into a single library. ( #164 )
2016-12-20 11:24:08 +01: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
db45c4ef78
Determine the trajectory that is blocking progress. ( #154 )
...
When processing offline data determining which trajectory needs more
data before processing can continue is surprisingly tricky. We thus
expose this information at the map builder to avoid duplicating this
logic.
2016-12-06 17:04:45 +01:00
Wolfgang Hess
f3526bd252
Move the OrderedMultiQueue implementation out of the header. ( #152 )
2016-12-06 14:09:44 +01:00
Wolfgang Hess
4c9c77034b
Remove UKF-related debug output. ( #142 )
2016-11-23 14:27:36 +01:00
Damon Kohler
a39bbff70c
Removes odometer covariance from public API. ( #137 )
2016-11-21 12:34:52 +01:00
Damon Kohler
5136a3a81e
Removes LaserFan from public API. ( #136 )
2016-11-21 10:30:57 +01:00
Damon Kohler
c386bf050d
Renames Odometry to Odometer. ( #135 )
2016-11-21 08:27:19 +01:00
Holger Rapp
6777654202
Adds a heuristic to detect floors in a trajectory. ( #125 )
2016-11-16 05:16:40 -08: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
3e64a803a4
Consistently name weight parameter. ( #116 )
...
All parameters scaling optimization residuals to determine relative
importance are now consistently named.
2016-10-28 16:39:45 +02:00
Wolfgang Hess
404bbfcc2b
Add SubmapToProto to the map builder. ( #110 )
2016-10-27 16:20:58 +02:00
Wolfgang Hess
a5b81ff159
Allow continuing after running a "final" optimization. ( #109 )
...
And a tiny cleanup of the submap visualization query.
2016-10-27 15:25:57 +02:00
Wolfgang Hess
651a7a23e7
Rename trajectory and submap visualization protos. ( #101 )
2016-10-26 08:45:52 +02:00
Wolfgang Hess
4917dd65ce
Add serialization of the sparse pose graph. ( #97 )
2016-10-25 16:56:26 +02:00
Wolfgang Hess
4d81b58a39
Remove unused code. ( #89 )
2016-10-20 13:54:12 +02:00
Wolfgang Hess
5b16f4bcb6
Simplify 3D visualization code. ( #88 )
...
Removes the non-const Submaps accessor.
Adds -Werror=missing-braces.
2016-10-20 11:29:12 +02:00
Holger Rapp
4b7e2efbd9
Add code to serialize a trajectory to proto. ( #87 )
2016-10-20 10:53:43 +02:00
Wolfgang Hess
3cf59a0266
Collate sensor data in the MapBuilder. ( #85 )
2016-10-19 17:25:44 +02:00
Wolfgang Hess
e566bb73f5
Adds CollatedTrajectoryBuilder. ( #82 )
2016-10-19 16:29:26 +02:00
Wolfgang Hess
d4e04a3cda
Unify to AddLaserFan for both 2D and 3D. ( #81 )
2016-10-19 15:02:31 +02:00
Damon Kohler
2eca021003
Moves SensorCollator into sensor package. ( #58 )
2016-10-17 10:18:17 +02:00
Wolfgang Hess
098349f67e
Rename LaserFan3D to LaserFan. ( #64 )
2016-10-14 12:06:54 +02: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
cc7cc6f72b
Move the ImuTracker and OdometryStateTracker to mapping. ( #50 )
...
Both are useful without a UKF.
2016-10-13 10:51:12 +02:00
Holger Rapp
eeb17bf055
Adds google_binary to create installable binaries. ( #43 )
...
- Do not link in Ceres if gflags or glog is used, but still rely on ceres
to find those libraries for us.
- Update CMakeLists with new settings.
2016-10-11 15:18:59 +02:00
Wolfgang Hess
d2962c004f
Remove the 'also_match_to_new_submaps' option. ( #29 )
...
Instead, using a different constraint_builder.sampling_ratio is preferred.
2016-09-30 16:00:10 +02:00
Wolfgang Hess
14355a91a1
Remove dead code. ( #26 )
2016-09-22 17:53:32 +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
fc166fdefa
Adds MapBuilder and cleans up some configurations. ( #23 )
2016-09-08 16:21:25 +02:00
Wolfgang Hess
817dc884d5
Clean up and simplify MapLimits. ( #12 )
...
MapLimits no longer keeps redundant data.
2016-08-25 15:40:05 +02:00
Wolfgang Hess
6e56578394
Rename to local/global map frame. ( #2 )
...
Changes the confusingly named GetOdometryToMapTransform() function
to GetLocalToGlobalTransform(), since it is transforming from the
local SLAM map frame to the global SLAM map frame.
2016-08-10 12:09:52 +02:00
Damon Kohler
269c28cb0c
Moves the contents of the cartographer subdirectory up one level.
2016-08-03 12:48:29 +02:00