Commit Graph

837 Commits (ce18ec72950974cf9ed7e818ee0693ed4ed05308)

Author SHA1 Message Date
Christoph Schütte ce18ec7295 Add SetGlobalSlamOptimizationCallback() (#1164)
to allow setting the GlobalSlamOptimizationCallback after MapBuilder and PoseGraph
creation. Also removes the GlobalSlamOptimizationCallback from the Constructor
since it is not used.

Prerequisite for implementing ReceiveGlobalSlamOptimizations() in gRPC MapBuilderInterface.
2018-05-25 12:29:52 +02:00
Alexander Belyaev 207979f209
Add relative transform error 2d documentation. (#1163) 2018-05-23 13:22:26 +02:00
Alexander Belyaev 2f9ee597d0
Add analytical 2d cost function for pose graph (not used yet). (#1161) 2018-05-23 12:07:27 +02:00
Kevin Daun f4c4d2ad40 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
2018-05-17 12:14:03 +02:00
Sebastian Klose d419fe8fd7
More const PoseGraph interface (#1156)
Making getters and non-modifying methods  in PoseGraph* const.

Before most getters where marked non-const because of the need to acquire the mutex for thread safety. This forces all code using the PoseGraph to pass it around as a non-const object even if the consumer is not altering the object.
By making the mutexes mutable we can make getters and methods that do not change the PoseGraph const and thus enable consumer APIs to express how they are going to use the PoseGraph as well.

fixes #1021
2018-05-17 09:30:40 +02:00
Robert Milijaš a0ec8046bd Allow easier access to CeresPose's data_ (#1149)
Introduce a FromPose function which transforms a Ridig3d pose into the
CeresPose's Data format.
2018-05-15 22:32:03 +02:00
Christoph Schütte d2453bce50 Update README.rst (#1144) 2018-05-15 09:38:44 +02:00
Christoph Schütte ee8e2fa4d6 Introduces a lockless queue for multiple producers and a single consumer (#1152) 2018-05-11 21:14:18 +02:00
Christoph Schütte ce67d684ba
Introduce a GlobalSlamResultCallback (#1143) 2018-05-10 11:25:00 +02:00
Sebastian Klose c2f54b8df2
Organize all protos in mapping in a single folder. (#1147) 2018-05-09 11:22:07 +02:00
gaschler 697d6091cd Test ThreadPool more (#1136)
These tests previously helped to reproduce Mutex issue #1124.
2018-05-03 21:50:50 +02:00
gaschler 3ca6506bc7 Remove old ThreadPool::Schedule (#1139) 2018-05-03 20:58:51 +02:00
Martin Schwörer 21c428b1bf installing test library headers, so they are available for cartographer_ros (#1140)
Installing the header files of test_helpers, fake- and mock-classes.

This will fix the build failure of cartographer_ros.
2018-05-02 16:39:55 +02:00
Christoph Schütte e080df5ea3 Register MapBuilderServer metrics (#1133)
I am not adding these registration calls to `cartographer/metrics/register.cc` because they are specific to cloud based mapping.
2018-05-01 17:18:34 +02:00
Martin Schwörer 913b1b5856 Added cartographer test library to CMake project (#1129)
Fake, mock and test helpers are now compiled into a test library.

This should resolve #1128. The bazel build file was updated in #1101.
2018-04-30 18:02:54 +02:00
Martin Schwörer 13d9754155 fixed that tests not getting linked against prometheus-cc (#1131)
Fixed typo in the CMakeLists file: tests were not linked against prometheus-cc
2018-04-30 16:57:08 +02:00
Alexander Belyaev ff18bae528 Transform submap cells to global frame correctly. (#1130) 2018-04-30 12:12:48 +02:00
gaschler a3b746ff67 Use Task in ConstraintBuilder3D (#1119) 2018-04-27 22:14:19 +02:00
gaschler a32cfd247b Pessimist ~Locker (#1125)
FIXES=#1124
2018-04-27 20:41:13 +02:00
Martin Schwörer fe7aaf4d94 Added a fake file writer (writes to string instead of file) (#1101)
Added fake filer writer which writes the output to a string instead of a file.

This will help writing tests for classes that use the file writer interface to write data.
2018-04-27 13:45:54 +02:00
gaschler c46fe073b4 Use Task in ConstraintBuilder2D (#1118) 2018-04-26 12:33:36 +02:00
Christoph Schütte 666095cb41 Introduce metric to measure the length of the SLAM queue (#1117) 2018-04-25 22:09:56 +02:00
Christoph Schütte 5356bdf9a8 Rename metrics since slashes are not allowed in Prometheus (#1115) 2018-04-25 17:34:30 +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
gaschler 91fda93757 Schedule Task in ThreadPool (#1113)
This introduces scheduling of tasks with dependencies to ThreadPool.
Contrary to work items, tasks are only queued for execution after all
their dependencies have completed.
2018-04-25 16:12:30 +02:00
gaschler 89ac5cbabf
Test GlobalSlam3D (#1114) 2018-04-25 15:00:13 +02:00
gaschler 0118531659
correct bazel define (#1112)
This is required by map_builder_server_main.cc
2018-04-25 13:56:34 +02:00
Michael Grupp 3d2ca564b6 Fix some Clang warnings. (#1109)
task.cc: -Wparentheses
task_test.cc: -Winconsistent-missing-override
2018-04-25 12:22:11 +02:00
Martin Schwörer d9ada58710 Removed check for existence of first submap of first trajectory in pose graph optimization (#1099)
Removed check for existence of first submap of first trajectory.

This check is equivalent to the original implementation which got changed in [#584](https://github.com/googlecartographer/cartographer/pull/584/files)
2018-04-24 16:32:31 +02:00
Christoph Schütte f51e4f4f05 Introduce Task (#1066)
This introduces the new class common::Task. A Task can have dependencies to other tasks, notify ThreadPoolInterface when all its dependencies are fulfilled, and can be executed in the background.
2018-04-24 15:57:44 +02:00
Alexander Belyaev 3dd37da51b
Move constraint_builders together. (#1103) 2018-04-23 13:49:25 +02:00
gaschler 3b5830745e Test ConstraintBuilder2D/3D (#1100) 2018-04-23 12:52:20 +02:00
Kevin Daun d29153a744 Replace ProbabilityGrid in Submap2D by Grid2D (#1097) 2018-04-20 22:58:46 +02:00
Alexander Belyaev e2623991da Return only optimized & finished submaps for trimmer. (#1104) 2018-04-20 22:19:16 +02:00
Alexander Belyaev 4aa2af23de Move files related to optimization to optimization/. (#1102) 2018-04-20 20:52:17 +02:00
Alexander Belyaev eebced5e16
Clean-up colliding 'SubmapData' names. (#1096) 2018-04-20 18:15:37 +02:00
gaschler 643bc825e9 ThreadPoolForTesting (#1098)
Necessary to test ConstraintBuilder.
2018-04-20 13:12:52 +02:00
Alexander Belyaev 8816d5710c
Invoke trimmer only when there are enough added submaps. (#1095) 2018-04-20 09:05:05 +02:00
Holger Rapp 29c3e056ed Next Open house and switch CET to CEST. (#1092) 2018-04-20 00:30:12 +02:00
Rodrigo Queiro 7f67f074a1 Limit `bazel test` parallelism more precisely (#1094)
Since it is only the tests in cartographer/cloud that cannot run
concurrently with each other, use `tags = ["exclusive"]` to say that
they should not be run at the same time as other tests.

This works locally, not just in CI, and should speed up the CI job by
2-3 minutes.
2018-04-19 18:51:20 +02:00
Alexander Belyaev ab7402ffbb Use references for constraints & nodes in TrimmingHandle. (#1091) 2018-04-19 17:09:16 +02:00
Kevin Daun 20c80068b2 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)
2018-04-19 11:59:28 +02:00
Kevin Daun f4937b5cc6 Base ceres scan matcher on correspondence cost function (#1085)
- Base ceres scan matcher on correspondence cost function instead of probabilities
 - Step towards [RFC 0019](https://github.com/googlecartographer/rfcs/blob/master/text/0019-probability-grid-and-submap2d-restructuring.md)
2018-04-19 10:24:16 +02:00
Rodrigo Queiro 9b3606b7c0 Fix glog warning (#1082)
by updating to a version that properly enables __attribute__. This is
the last warning in the Bazel build.
2018-04-18 21:04:11 +02:00
Christoph Schütte 337e594662 Introduce option to enable SSL encryption for LocalTrajectoryUploader (#1084) 2018-04-18 16:47:03 +02:00
Rodrigo Queiro 3383643627 Add configuration for Bazel CI (#1083)
This builds and tests on Ubuntu 16.
2018-04-18 15:43:39 +02:00
Kevin Daun 03d56871c1 Correspondence cost based probability grid (#1081)
- Store probabilities as correspondence costs
- Add conversion functions for correspondence cost values
- Step towards [RFC 0019](https://github.com/googlecartographer/rfcs/blob/master/text/0019-probability-grid-and-submap2d-restructuring.md)
2018-04-18 14:46:38 +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
Alexander Belyaev 23f6de46b0 Use area instead of cells count for overlapping trimmer options. (#1080) 2018-04-17 18:22:38 +02:00
Julius Kammerl 26e8ce63ba Add async_grpc dependency to cartographer_grpc (#1079)
The map_builder_server target requires async_grpc.
2018-04-17 17:25:18 +02:00