Commit Graph

69 Commits (952f59d4999bf242dc58d48caf039bd5d2b0cb94)

Author SHA1 Message Date
Wolfgang Hess 1b31c017c4
Use adaptive IMU weights in the PGO. (#1755)
This weights IMU based on the time between nodes in the
pose graph optimization.

When moving slowly or stopping, IMU weights are reduced.
This improves quality in these cases. The parameters are
changed to approximately get the same behavior while
moving as before for the examples.

Signed-off-by: Wolfgang Hess <whess@lyft.com>
2020-10-07 10:49:08 +02:00
Martin Schwörer 6c889490e2
Integrate imu based extrapolator (#1732)
This integrates the imu based extrapolator implementation, adds lua configuration and conversions from lua to proto. Note that the parameters of the imu based extrapolator are not tuned yet and the default is still the constant-velocity extrapolator.

Signed-off-by: mschworer <mschworer@lyft.com>
2020-07-30 13:52:08 +02:00
Martin Schwörer efc64934d6
use extrapolator interface (#1730)
This integrates the extrapolator interface into the 3D trajectory builder. The construction is now done within the interface and local trajectory builder 3D just makes use of the interface. No functional changes.

Signed-off-by: mschworer <mschworer@lyft.com>
2020-07-29 19:15:15 +02:00
Susanne Pielawa b38b1cefa0
Allow using TolerantLoss for INS in pose graph optimization (#1700)
This PR adds the possibility to use the TolerantLoss function for INS in pose graph optimization. This is currently switched off, and so there's not functional change. 

The ceres TolerantLoss function (see [description](http://ceres-solver.org/nnls_modeling.html), and [implementation](https://github.com/ceres-solver/ceres-solver/blob/master/internal/ceres/loss_function.cc)) has the following property

- for large values of x it approaches a quadratic loss ("null loss") with the specified weight (fixed_frame_pose_translation_weight)
- for small values of x it approaches a quadratic loss with a smaller weight
- there's a crossover at some value x_c. The function is convex everywhere.
2020-06-15 10:56:23 +02:00
damienrg 99bc9e196d Use collate_by_trajectory lua option in server (#1537)
This removes the hardcoded value of `collate_by_trajectory` in the cloud
map builder server and permits to configure `collate_by_trajectory`
option with lua.
2019-03-08 16:36:53 +01:00
damienrg 3b941ee126 Add `collate_by_trajectory` support in lua config (#1334)
This commit add support of specifying the option to collate data by
trajectory introduced in #828 in the lua configuration files.
The value is set to false as when a boolean option is not specified it
is initialized to false.
2019-03-08 15:36:30 +01:00
Andre Gaschler 5182dd1bf9
Correct spelling to bandwidth (#1490)
Previously, two config values were spelled "bandwith".
The assumption is that these values are not used in other
repositories so the rename is harmless.
2019-01-02 13:12:26 +01:00
Kevin Daun de4886ea4e Read missing option fix_z_in_3d in OptimizationProblemOptions. (#1440) 2018-10-10 11:33:22 +02:00
Steve Wolter d6772cf274 Replace token file with Google auth in MapBuilder. (#1417)
This allows Cartographer to use normal Application Default Credentials
(ADC) instead of a hand-generated format.

Google-internally, we'll only use ADC going forward. At your option, I
can keep the old code for the token files around if you think it would
be generally useful. Many OSS programs follow the same approach.
2018-09-12 09:14:58 +02:00
Christoph Schütte 153952ddf0 Move OverlappingSubmapTrimmerOptions to PoseGraphOptions (#1408) 2018-09-04 10:12:19 +02:00
Kevin Daun 77886cb53b Integrate TSDF components into SLAM pipeline. (#1361)
[RFC=0019](https://github.com/googlecartographer/rfcs/blob/master/text/0019-probability-grid-and-submap2d-restructuring.md)
2018-08-03 11:56:35 +02:00
Kevin Daun 7dfe404278 Add TSDF RangeDataInserter (#1236)
Adds TSDF RangeDataInserter, tests and integrates the configuration files.
2018-07-09 13:46:46 +02:00
Christoph Schütte bad8c96bc6
Add token_file_path parameter and enable auth (#1235) 2018-07-05 13:14:11 +02:00
Alexander Belyaev 3540996e91
Add options to (not)collate fixed-frame/landmarks data. (#1224) 2018-07-02 21:49:00 +02:00
Alexander Reimann 0981620d8f Add max_submaps_with_pure_localization parameter (#1141)
Adds a parameter for the currently hard coded `kSubmapsToKeep` in `pure_localization` mode.

The new parameter `max_submaps_with_pure_localization` allows to specify the history size of submaps in `pure_localization` mode.

Closes #1116
2018-07-02 20:32:23 +02:00
Arno Fleck 7fcc4576a8 Add use_online_imu_extrinsics_in_3d parameter and set it to true by default. (#1217)
Add the parameter `OptimizationProblemOptions.use_online_imu_extrinsincs_in_3d`. Set it to true by default to not change existing behavior.

Using online IMU extrinsics is not always desirable, and particularly during localization, we have determined that it is preferable to turn this feature off.
2018-07-02 13:40:21 +02:00
Kevin Daun 41f17e57cd Introduce Grid and RangeDataInserter (#1108)
- Introduce `RangeDataInserterInterface` as common interface for all range data inserters
- Introduce a minimal `GridInterface` as a base for a common interface for 2D and 3D grids 
- Rename `RangeDataInserter2D` to `ProbabilityGridRangeDataInserter2D`
- Move grid generation logic from `Submap2D` to `ActiveSubmaps2D`
- Update proto and configuration structure to mirror the code structure - backwards compatibility is maintained 
 - Step towards [RFC 0019](https://github.com/googlecartographer/rfcs/blob/master/text/0019-probability-grid-and-submap2d-restructuring.md)
2018-04-25 16:51:30 +02:00
Christoph Schütte 337e594662 Introduce option to enable SSL encryption for LocalTrajectoryUploader (#1084) 2018-04-18 16:47:03 +02:00
Christoph Schütte 214606457c Switch to batch uploading for cloud based mapping and add retries (#1070) 2018-04-18 14:02:43 +02:00
Michael Grupp 4351bdb3c8 Separate global optimization constraints for local SLAM and odometry (#1029)
Implements [RFC-0018](https://github.com/googlecartographer/rfcs/blob/master/text/0018-odometry-use-in-optimization-problem.md)
2018-04-10 14:44:43 +02:00
Alexander Belyaev def4048e95
Make the cloud_uplink address empty by default. (#974) 2018-03-09 16:57:58 +01:00
Christoph Schütte f49e798ef9 Start DataUploader implementation, implement Add/FinishTrajectory (#811)
[RFC=0002](https://github.com/googlecartographer/rfcs/blob/master/text/0002-cloud-based-mapping-1.md)
2018-01-12 23:16:29 +01:00
gaschler 6125766c81 Define default num_event_threads config. (#785)
(This was not covered by tests because they manually set it to 1.)
2018-01-04 13:51:30 +01:00
Christoph Schütte e596b75113 Add binary for cartographer_grpc_server. (#747)
[RFC=0002](https://github.com/googlecartographer/rfcs/blob/master/text/0002-cloud-based-mapping-1.md)
2017-12-11 19:09:52 +01:00
Wolfgang Hess 055728af93 Rename options for consistency. (#686)
"scan" is better named "node" if it refers to a node in global SLAM.

"penalty factor" is renamed "weight" for consistency with other similar options.

"scans_per_accumulation" is renamed "num_accumulated_range_data" to match the code and since the accumulated data is not called "scan".
2017-11-17 10:52:22 +01:00
Wolfgang Hess 16d62f45f0 Rename sparse_pose_graph options. (#682)
The default pose graph configuration is now included as "pose_graph.lua"
and available as POSE_GRAPH.

[RFC=0001](https://github.com/googlecartographer/rfcs/blob/master/text/0001-renaming-sparse-pose-graph.md)
2017-11-16 11:48:25 +01:00
Christoph Schütte 5896ead32e Introduce timeout for global constraints. (#517)
This PR introduces a new option that specifies the number of seconds
after which global matcher searches are performed if no recent global
constraints have been found between the submap's and the node's
trajectory.
2017-09-14 12:11:54 +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
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
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
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
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 11dbdf91b9 Remove unused code and option for odometry states. (#451) 2017-08-11 17:38:48 +02:00
Holger Rapp 3859da7ea4 Better tuning for 2D. (#428) 2017-07-26 10:50:01 +02:00
Wolfgang Hess 1bce14b7b5 Adds accumulation of range data to 2D. (#408)
This mostly follows the implementation as done for 3D.

Towards googlecartographer/cartographer_ros#212.
2017-07-18 12:10:40 +02:00
Moritz Münst 3f4d795c3e Add pure localization parameter to trajectory builder options. (#389) 2017-07-05 16:55:06 +02:00
Holger Rapp 3346474963 Grow the ProbabilityGrid as needed instead of preconfiguring its size. (#387)
This removes the 'half_length' option.

PAIR=wohe
2017-07-05 14:17:04 +02:00
Wolfgang Hess 54bd81a78b Remove UKF related code and configuration. (#378) 2017-06-30 13:19:13 +02:00
Wolfgang Hess 17a22edebc Change local 3D SLAM to not use a UKF. (#375)
This follows the 2D local SLAM in implementing a simple
constant velocity model and allows integrating odometry and
rotation information from an IMU.
2017-06-30 11:49:22 +02:00
Damon Kohler f765e55ea9 Use multi-res scan matching for loop closures too. (#374)
Improves loop closure scan matcher refinement.
2017-06-30 09:30:09 +02:00
Wolfgang Hess 19da0ab7c8 Gravity align in local 3D SLAM. (#373) 2017-06-28 16:17:18 +02:00
Wolfgang Hess f88fcec851 Remove the unused OptimizingLocalTrajectoryBuilder. (#368)
It has not been used for a long time and has to be replaced by
a better implementation.
2017-06-27 15:44:46 +02:00
Wolfgang Hess 2df8bcde61 Remove unused 'imu_gravity_variance' option. (#363) 2017-06-26 13:23:58 +02:00
Holger Rapp ff37b0bb7d Remove output_debug_images. (#358)
This is now better done by RViz. This also gets rid of the dependency on webp.
2017-06-23 14:53:04 +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
Yutaka Takaoka 522b37979a Enable multiple configuration for multi-trajectory (#248) 2017-05-08 11:58:53 +02:00
Wolfgang Hess 79dc1f848f Remove 'laser' references from parameter names. (#259)
Related to #250.
2017-05-04 15:38:41 +02:00