Commit Graph

852 Commits (3f0bb0eec5ba8a8c7c55d258483f015c044e7afa)

Author SHA1 Message Date
sotnik-github 3f0bb0eec5 Fixing 846 without tests. (#1183)
Fixing "Optimizing: -nan%... #846" https://github.com/googlecartographer/cartographer/issues/846.
The issue was triggered in a multithreaded execution, when all nodes were processed, but the working queue was still non empty (having other kind of jobs).
Unfortunately I failed to reproduce the bug in tests, so no new tests were added.
2018-06-06 15:38:10 +02:00
Alexander Belyaev 4ef38497a9
Skip the Collator for the landmark data. (#1184) 2018-06-06 14:14:01 +02:00
Alexander Belyaev 5bda2a567c
Release 1.0 (#1177) 2018-06-05 12:54:07 +02:00
Christoph Schütte f83ba3db2f Fix LoadState gRPC (#1179) 2018-06-04 11:11:28 +02:00
Sebastian Klose 5b0fe666ee Adding short description of pbstream migration tool (#1181)
Adding a section to the docs, describing the existence and usage of the serialization migration tool.
2018-06-04 10:39:27 +02:00
Sebastian Klose 000b967c79 adding LOG output to migration tool (#1180)
Adding some log-feedback to the serialization migration tool.
2018-06-04 09:35:37 +02:00
Sebastian Klose 73d18e5fc5 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.
2018-05-30 13:31:33 +02:00
Alexander Belyaev 87370371ec
Making a test nicer: procrastination and nits. (#1175) 2018-05-30 12:56:59 +02:00
Christoph Schütte 876a41f06f
Provide local poses via GetTrajectoryNodePoses() (#1172) 2018-05-30 07:34:49 +02:00
Sebastian Klose a35092c20f Mapping state deserializer (#1171)
class for de-serializing mapping state stored in the new serialization format [RFC 0021](https://github.com/sebastianklose/rfcs/blob/serialization_format/text/0021-serialization-format.md).

Not used yet. Will be hooked up in a separate PR that switches all logic to the new serialization format at once.
2018-05-29 22:10:11 +02:00
Christoph Schütte fbb2835525
Implement receive_global_slam_optimizations_handler (#1169) 2018-05-29 19:26:33 +02:00
Sebastian Klose a9c90da1a8
Migration tool for serialization format (#1167)
* New serialization protos

 * Moved old definition to legacy_serialized_data.proto
 * defining new serialization format as oneof.

* Changing to legacy datatype

* adding serialization migration

* moving to io

* adding serialization migration

* moving to io

* adding file for test

* adding test

* test for order or migrated serialized data

* test for order or migrated serialized data

* renaming tool

* addressing comments

* addressing more comments

* minor polishing
2018-05-29 16:56:18 +02:00
Christoph Schütte cd7df83e1c Add maintainers and authors to package.xml (#1170) 2018-05-29 14:25:58 +02:00
Sebastian Klose 1d050ede3f Mapping state serialization (#1166)
[Serialization RFC](https://github.com/googlecartographer/rfcs/blob/master/text/0021-serialization-format.md)
2018-05-28 23:49:21 +02:00
Sebastian Klose 405c0e17e8 Defining new serialization proto (#1165)
[Serialization RFC](https://github.com/googlecartographer/rfcs/blob/master/text/0021-serialization-format.md)
2018-05-28 15:11:29 +02:00
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