Proto commits in cartographer-project/cartographer

These commits are when the Protocol Buffers files have changed: (only the last 100 relevant commits are shown)

Commit:6715afe
Author:Michael Grupp
Committer:GitHub

Optional motion-filter for adding odometry data to the pose graph. (#1757) This introduces an option to control the amount of odometry data that enters the pose graph by motion-filtering it. This is very useful to bound memory when standing still for longer periods of time. If the new option is not configured, all odometry data goes unfiltered into the pose graph as usual. Signed-off-by: Michael Grupp <grupp@magazino.eu>

The documentation is generated from this commit.

Commit:e7f98f3
Author:Wolfgang Hess
Committer:GitHub

Add intensities to LocalTrajectoryBuilder3D. (#1766) Disabled by default. Signed-off-by: Wolfgang Hess <whess@lyft.com>

Commit:a9ad813
Author:Wolfgang Hess
Committer:GitHub

Use intensities in `Submap3D` and `RangeDataInserter3D`. (#1765) `Submap3D` now also stores a pointer to `IntensityHybridGrid`. Adapted `RangeDataInserter3D` to also insert intensities. Signed-off-by: Wolfgang Hess <whess@lyft.com>

Commit:81d34ef
Author:Wolfgang Hess
Committer:GitHub

Add intensity cost function to the Ceres scan matcher. (#1761) Not yet used. Signed-off-by: Wolfgang Hess <whess@lyft.com>

Commit:c541606
Author:Wolfgang Hess
Committer:GitHub

Move proto files out of 2d/3d directories. (#1749) This is to make it possible to use the proto definitions from Python where the directory structure otherwise prevents them from being imported in the usual way. Signed-off-by: Wolfgang Hess <whess@lyft.com>

Commit:a20db75
Author:Wolfgang Hess
Committer:GitHub

Add intensity data to TimedPointCloudData. (#1742) Adds a new field intensities to TimedPointCloudData. RangeDataCollator now also takes intensities into account. AddRangeData now takes a point cloud by value instead of const reference as we would later make a copy of it anyway. Signed-off-by: Wolfgang Hess <whess@lyft.com>

Commit:98d957a
Author:Michael Grupp
Committer:GitHub

Remove legacy compatibility proto files. (#1736) Not needed anymore after the recent removal of that feature, see #1709. Signed-off-by: Michael Grupp <grupp@magazino.eu>

Commit:6c88949
Author:Martin Schwörer
Committer:GitHub

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>

Commit:efc6493
Author:Martin Schwörer
Committer:GitHub

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>

Commit:23351be
Author:Martin Schwörer
Committer:GitHub

added imu based extrapolator impl (#1728) This adds an alternative implementation for pose extrapolation which uses imu integration as well as past local SLAM results (and odometry data) to predict a pose. This allows to perform motion compensation and initialize scan matching afterwards. Using imu data for pose extrapolation and motion compensation is more accurate, because it does not make a constant velocity assumption like the PoseExtrapolator implementation. Next steps are the integration into local trajectory builder as well as tuning the parameters for existing datasets. This PR is quite large but was already reviewed in smaller chunks internally and combines contributions from @danielsievers, @wohe and @schwoere. Signed-off-by: mschworer <mschworer@lyft.com>

Commit:340a9ac
Author:Martin Schwörer
Committer:GitHub

add pose extrapolator interface and extrapolator options (#1726) This adds an interface around the extrapolator without further integration into any call sides. Currently there is only a constant-velocity extrapolator implementation. The next step is to add an extrapolator implementation which integrates imu measurements for pose extrapolation. Signed-off-by: mschworer <mschworer@lyft.com>

Commit:b38b1ce
Author:Susanne Pielawa
Committer:GitHub

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.

Commit:ea2bf3b
Author:Alexander Belyaev
Committer:Andre Gaschler

Remove GenericPoseGraph. (#1540) Remove GenericPoseGraph implementation not to confuse the users. It will come back one day.

Commit:07b9207
Author:Wolfgang Hess
Committer:Wally B. Feed

Add serialization for TimestampedTransform. (#1495)

Commit:5182dd1
Author:Andre Gaschler
Committer:GitHub

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.

Commit:8285673
Author:Alexander Belyaev
Committer:Wally B. Feed

[GenericPoseGraph] Add 'group_id' field to NodeId. (#1438)

Commit:607de03
Author:Alexander Belyaev
Committer:GitHub

[GenericPoseGraph] Proto for pose graph solver config. (#1436)

Commit:ba859a6
Author:Michael Grupp
Committer:Wally B. Feed

Add WriteStateToFileResponse. (#1428) Changes the public map builder API, but is required to not break the ROS API. See also https://github.com/googlecartographer/cartographer_ros/pull/1014 and #1422

Commit:f995744
Author:Christoph Schütte
Committer:gaschler

Implement MapBuilderService.WriteStateToFile() (#1424)

Commit:a21ecf9
Author:Michael Grupp
Committer:Wally B. Feed

Add load_frozen_state also to LoadStateFromFile gRPC requests. (#1423)

Commit:d6772cf
Author:Steve Wolter
Committer:Wally B. Feed

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.

Commit:153952d
Author:Christoph Schütte
Committer:Wally B. Feed

Move OverlappingSubmapTrimmerOptions to PoseGraphOptions (#1408)

Commit:a4ff055
Author:Martin Schwörer
Committer:Wally B. Feed

Store histogram in submaps: prepare for backward compatiblity (#1405) This makes the map builder backwards compatible to the current map pbstream (version 1). The PR prepares for #1277, where pbstream version 2 will be introduced. Backwards compatibility was discussed in #1277. When a map with pbstream version 1 is loaded, a rotational scan matcher histogram is generated for each submap using the histograms of all nodes that were inserted to the submap during local SLAM. Once this backwards compatibility is in place, I would like to introduce the new format with #1277.

Commit:4c21044
Author:Michael Grupp
Committer:Christoph Schütte

Support gRPC requests for loading unfrozen states. (#1379)

Commit:5261c90
Author:Alexander Belyaev
Committer:Wally B. Feed

[GenericPoseGraph] Add parameterization. (#1385)

Commit:73c3d47
Author:Juraj Oršulić
Committer:Alexander Belyaev

Introduce [Timed]RangefinderPoint. (#1357)

Commit:77886cb
Author:Kevin Daun
Committer:Wally B. Feed

Integrate TSDF components into SLAM pipeline. (#1361) [RFC=0019](https://github.com/googlecartographer/rfcs/blob/master/text/0019-probability-grid-and-submap2d-restructuring.md)

Commit:3c5f2cd
Author:Alexander Belyaev
Committer:GitHub

[GenericPoseGraph] Add PoseGraphController. (#1335)

Commit:c2c3413
Author:Alexander Belyaev
Committer:Wally B. Feed

[GenericPoseGraph] Add InterpolatedRelativePose2D constraint. (#1337)

Commit:4ba9d91
Author:Michael Grupp
Committer:Alexander Belyaev

Migrate pbstream files with old probability grid format. (#1314)

Commit:f7b3d34
Author:Martin Bokeloh
Committer:GitHub

[GenericPoseGraph] Add interpolated constraint/cost 3d. (#1325) * [GenericPoseGraph] Add interpolated rotation constraint/cost 3d. * Rename tests * Update include paths.

Commit:d4193d4
Author:Alexander Belyaev
Committer:GitHub

[GenericPoseGraph] Add acceleration constraint. (#1319)

Commit:33fcc1a
Author:gaschler
Committer:GitHub

Set client_id in LoadState(FromFile) (#1320)

Commit:681cff0
Author:Alexander Belyaev
Committer:GitHub

[GenericPoseGraph] Add proto defs for landmark cost functions. (#1312)

Commit:3a9d1bc
Author:Martin Bokeloh
Committer:GitHub

[GenericPoseGraph] Added rotation cost 3d. (#1313)

Commit:5fdb705
Author:Martin Bokeloh
Committer:GitHub

[GenericPoseGraph] Added relative pose cost 3d. (#1303) * [GenericPoseGraph] Added relative pose cost 3d. * Added another case to the test. * Removed ceres function from cost function. * Ran clang-format. * Minor renaming.

Commit:0ab591a
Author:Alexander Belyaev
Committer:Wally B. Feed

[GenericPoseGraph] Add RelativePoseCost2D. (#1295) This is the implementation of the ceres::CostFunction that uses the new proto definition. It is tested using the Autodiff version.

Commit:31d0a6a
Author:Alexander Belyaev
Committer:Wally B. Feed

[GenericPoseGraph] Add IMU Calibration and Pose3D node types. (#1278)

Commit:1b88fb8
Author:Christoph Schütte
Committer:Wally B. Feed

Introduce client_id in SensorMetadata (#1257)

Commit:288328e
Author:Alexander Belyaev
Committer:Wally B. Feed

[GenericPoseGraph] Add protos for nodes/constraints. (#1258) Does not cover all constraints yet.

Commit:35abfcc
Author:Christoph Schütte
Committer:Wally B. Feed

Introduce client_id in cartographer grpc (#1241)

Commit:7dfe404
Author:Kevin Daun
Committer:Wally B. Feed

Add TSDF RangeDataInserter (#1236) Adds TSDF RangeDataInserter, tests and integrates the configuration files.

Commit:bad8c96
Author:Christoph Schütte
Committer:GitHub

Add token_file_path parameter and enable auth (#1235)

Commit:ddce76d
Author:Alexander Belyaev
Committer:Wally B. Feed

Make old pbstreams compatible with the new pure_localization_trimmer options. (#1230)

Commit:3540996
Author:Alexander Belyaev
Committer:GitHub

Add options to (not)collate fixed-frame/landmarks data. (#1224)

Commit:0981620
Author:Alexander Reimann
Committer:Wally B. Feed

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

Commit:7fcc457
Author:Arno Fleck
Committer:Wally B. Feed

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.

Commit:b4594bc
Author:Kevin Daun
Committer:Wally B. Feed

Add Normal Estimation (#1213) Adds Normal Estimation needed for TSDF RangeDataInserter.

Commit:15ecb88
Author:Kevin Daun
Committer:Wally B. Feed

Add TSDF2D Grid (#1209) - Adds TSDF2D Grid - Adds tests for TSDF2D Grid - Introduces Grid2D::GrowLimits(...) for multiple grids to reduce code duplication between TSDF2D and Grid2D

Commit:5e96bfa
Author:gaschler
Committer:GitHub

Endpoints for GetTrajectoryStates (#1206) [RFC=0023](https://github.com/googlecartographer/rfcs/blob/master/text/0023-delete-load.md)

Commit:984553e
Author:gaschler
Committer:Wally B. Feed

LoadState(FromFile) endpoints (#1203) [RFC=0023](https://github.com/googlecartographer/rfcs/blob/master/text/0023-delete-load.md)

Commit:c249a99
Author:gaschler
Committer:Wally B. Feed

Endpoints for DeleteTrajectory (#1207) [RFC=0023](https://github.com/googlecartographer/rfcs/blob/master/text/0023-delete-load.md)

Commit:f83ba3d
Author:Christoph Schütte
Committer:Wally B. Feed

Fix LoadState gRPC (#1179)

Commit:73d18e5
Author:Sebastian Klose
Committer:Wally B. Feed

Using new serialization format. (#1174) Updates everyone to use the new serialization format. A corresponding PR will be made in cartographer_ros for the various tools.

Commit:876a41f
Author:Christoph Schütte
Committer:GitHub

Provide local poses via GetTrajectoryNodePoses() (#1172)

Commit:fbb2835
Author:Christoph Schütte
Committer:GitHub

Implement receive_global_slam_optimizations_handler (#1169)

Commit:405c0e1
Author:Sebastian Klose
Committer:Alexander Belyaev

Defining new serialization proto (#1165) [Serialization RFC](https://github.com/googlecartographer/rfcs/blob/master/text/0021-serialization-format.md)

Commit:f4c4d2a
Author:Kevin Daun
Committer:Wally B. Feed

Add CSV export to the evaluation tool (#1159) - adds `covered_distance` to the ground truth relations - the flags `write_relation_metrics` and `relation_metrics_filename` control whether and where to write the relations metrics as comma-separated values

Commit:c2f54b8
Author:Sebastian Klose
Committer:GitHub

Organize all protos in mapping in a single folder. (#1147)

Commit:41f17e5
Author:Kevin Daun
Committer:Wally B. Feed

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)

Commit:3dd37da
Author:Alexander Belyaev
Committer:GitHub

Move constraint_builders together. (#1103)

Commit:4aa2af2
Author:Alexander Belyaev
Committer:Christoph Schütte

Move files related to optimization to optimization/. (#1102)

Commit:8816d57
Author:Alexander Belyaev
Committer:GitHub

Invoke trimmer only when there are enough added submaps. (#1095)

Commit:20c8006
Author:Kevin Daun
Committer:Wally B. Feed

Base ConstraintBuilder2D on correspondence cost function (#1088) - Base `ConstraintBuilder2D` and `FastCorrelativeScanMatcher2D` on correspondence cost function instead of probabilities - No changes in the options of `ConstraintBuilder2D` and `FastCorrelativeScanMatcher2D` - Add properties `min/max_correspondence_cost` to `Grid2D` and `proto::Grid2D` - Provide backwards compatibility for `proto::Grid2D` - Step towards [RFC 0019](https://github.com/googlecartographer/rfcs/blob/master/text/0019-probability-grid-and-submap2d-restructuring.md)

Commit:337e594
Author:Christoph Schütte
Committer:Wally B. Feed

Introduce option to enable SSL encryption for LocalTrajectoryUploader (#1084)

Commit:2146064
Author:Christoph Schütte
Committer:Wally B. Feed

Switch to batch uploading for cloud based mapping and add retries (#1070)

Commit:23f6de4
Author:Alexander Belyaev
Committer:Wally B. Feed

Use area instead of cells count for overlapping trimmer options. (#1080)

Commit:74970be
Author:Alexander Belyaev
Committer:GitHub

Add overlapping trimmer params to TrajectoryBuilderOptions. (#1076)

Commit:7b68844
Author:Alexander Belyaev
Committer:GitHub

Add a gRPC version of SetLandmarkPose(). (#1068)

Commit:46d3a94
Author:Kevin Daun
Committer:Wally B. Feed

Introduce Grid2D as base class for 2D grids (#1046) This is a first step towards generalizing submaps (see [ongoing RFC discussion](https://github.com/googlecartographer/rfcs/pull/30)). Although this PR already introduces a correspondence cost grid, the grid is still used as probability grid.

Commit:f83d0a6
Author:Christoph Schütte
Committer:Wally B. Feed

Implement IsTrajectory{Finished,Frozen} in cloud mapping (#1057)

Commit:4351bdb
Author:Michael Grupp
Committer:Wally B. Feed

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)

Commit:915ebb1
Author:Christoph Schütte
Committer:GitHub

Use async_grpc (#1013) Use async_grpc

Commit:ed47f9d
Author:gaschler
Committer:Wally B. Feed

OptimizationProblemInterface (#991) Derive optimization problems from a new OptimizationProblemInterface. Move fix_z into OptimizationProblemOptions. Move trivial getters to header files. This will allow mocking the optimization problems.

Commit:1e4d558
Author:Alexander Belyaev
Committer:GitHub

Add landmarks to the state and deserialize them. (#988)

Commit:f76d8a8
Author:Alexander Belyaev
Committer:GitHub

Move cartographer_grpc/ to cartographer/cloud. (#958) [Code structure RFC](https://github.com/googlecartographer/rfcs/blob/master/text/0016-code-structure.md)

Commit:6155231
Author:Alexander Belyaev
Committer:GitHub

Rename cartographer_grpc:: namespace as cartographer::cloud::. (#955) [Code structure RFC](https://github.com/pifon2a/rfcs/blob/e11bca586f8cc733063ea9c94bdade71086ed9ea/text/0000-code-structure.md) also `cartographer_grpc::mapping::` -> `cartographer::cloud::`. `cartographer_grpc::sensor::` -> `cartographer::cloud::`.

Commit:b79e5b8
Author:Alexander Belyaev
Committer:GitHub

Move framework/, sensor/, testing/ to internal/. (#954) [Internal hdrs RFC](https://github.com/googlecartographer/rfcs/blob/master/text/0003-internal-headers.md) Added `map_builder_server_interface.h/cc` to hide `framework/*.h`.

Commit:32b8bd3
Author:Juraj Oršulić
Committer:Christoph Schütte

Enable loading unfrozen state (#891) Enable loading unfrozen state

Commit:3ebfa75
Author:Alexander Belyaev
Committer:GitHub

Move mapping_*d to mapping/*d. (#935) [Code structure RFC](https://github.com/googlecartographer/rfcs/blob/master/text/0016-code-structure.md)

Commit:e75e023
Author:Alexander Belyaev
Committer:GitHub

Purge 'mapping_3d::'. (#927) (#928) [Code structure RFC](https://github.com/googlecartographer/rfcs/blob/master/text/0016-code-structure.md)

Commit:94fce13
Author:Alexander Belyaev
Committer:GitHub

Purge 'mapping_2d::'. (#927) [Code structure RFC](https://github.com/pifon2a/rfcs/blob/e11bca586f8cc733063ea9c94bdade71086ed9ea/text/0000-code-structure.md)

Commit:7d13383
Author:Alexander Belyaev
Committer:GitHub

Remove 'mapping_3d' namespace. (#922) (#925) Remove 'mapping_3d' namespace. (#922) It is removed from everywhere but 'scan_matching', 'pose_graph' subfolders of 'mapping_3d'. [Code structure RFC](https://github.com/pifon2a/rfcs/blob/e11bca586f8cc733063ea9c94bdade71086ed9ea/text/0000-code-structure.md)

Commit:f8dc89d
Author:Alexander Belyaev
Committer:GitHub

Remove 'mapping_2d' namespace. (#922) It is removed from everywhere but 'scan_matching', 'pose_graph' subfolders of 'mapping_2d'. [Code structure RFC](https://github.com/pifon2a/rfcs/blob/e11bca586f8cc733063ea9c94bdade71086ed9ea/text/0000-code-structure.md)

Commit:c38bb60
Author:danielsievers
Committer:Wally B. Feed

(De)serialize trajectory data from the optimization problem (#915) * Write/Read the trajectory data (gravity, imu calibration, and fixed frame origin) into the serialized state proto

Commit:39f140d
Author:Christoph Schütte
Committer:Wally B. Feed

Follow googlecartographer/cartographer#859 (#892)

Commit:95dbcfd
Author:Alexander Belyaev
Committer:Wally B. Feed

Serialize landmarks. (#889) [RFC=0011](https://github.com/googlecartographer/rfcs/blob/master/text/0011-landmarks.md)

Commit:58bc1ce
Author:Alexander Belyaev
Committer:GitHub

Implement GetLandmarkPoses method. (#888) [RFC=0011](https://github.com/googlecartographer/rfcs/blob/master/text/0011-landmarks.md)

Commit:9bebeea
Author:Juraj Oršulić
Committer:Christoph Schütte

Serialize and deserialize trajectory builder options (#859)

Commit:eb3e63b
Author:Christoph Schütte
Committer:Wally B. Feed

Implement WriteMapHandler. (#851)

Commit:dab69e0
Author:gaschler
Committer:Alexander Belyaev

Struct SensorId (#839) * WIP, started unordered_set<SensorId> * struct SensorId. Works for cartographer without grpc. * correct test * SensorId in cartographer_grpc/ * clean up * try to fix for trusty * SensorId::operator== * Ran clang-format.

Commit:1d2613c
Author:Alexander Belyaev
Committer:Wally B. Feed

Add gRPC version of RunFinalOptimization(). (#852)

Commit:894bad3
Author:Alexander Belyaev
Committer:GitHub

Rename Landmark->LandmarkObservation. (#847)

Commit:37ddf9e
Author:Alexander Belyaev
Committer:Wally B. Feed

Add gRPC version of LoadMap(). (#842) Later they will be used in map_builder_stub and load_map_handler.

Commit:986ac28
Author:Alexander Belyaev
Committer:GitHub

Rename 'tranform' to 'landmark_to_tracking_transform'. (#836)

Commit:9e30c1e
Author:Alexander Belyaev
Committer:GitHub

Send LandmarkData via gRPC. (#831) * Send LandmarkData via gRPC. [RFC PR](https://github.com/googlecartographer/rfcs/pull/18) * Fix the nits.

Commit:de59378
Author:gaschler
Committer:Wally B. Feed

Collate_by_trajectory option (#828) Adds an option to create a MapBuilder using TrajectoryCollator (instead of Collator). [RFC=0008](https://github.com/googlecartographer/rfcs/blob/master/text/0008-collator-interface.md)

Commit:f49e798
Author:Christoph Schütte
Committer:Wally B. Feed

Start DataUploader implementation, implement Add/FinishTrajectory (#811) [RFC=0002](https://github.com/googlecartographer/rfcs/blob/master/text/0002-cloud-based-mapping-1.md)

Commit:fee77c8
Author:Christoph Schütte
Committer:Wally B. Feed

Add LocalSlamResultData retrieval and submap management (#810) [RFC=0002](https://github.com/googlecartographer/rfcs/blob/master/text/0002-cloud-based-mapping-1.md)

Commit:d313af8
Author:Christoph Schütte
Committer:GitHub

Add InsertionResult to LocalSlamResult. (#801)