Commit Graph

1127 Commits (1c8c1d144ecf0a78b1f26b13d37d110ff0d1a8e0)

Author SHA1 Message Date
Alexander Belyaev 708e7fc57d
Add a 'cost_helpers' library. (#862)
* Add a 'cost_helpers' library.

* Change naming and add comments.
2018-01-30 22:12:25 +01:00
Alexander Belyaev 93568641f9
Implement LandmarkCostFunction 3D. (#860) 2018-01-30 15:18:13 +01:00
gaschler a7ed7e224f Upload LocalSlamResultData (#858)
[RFC=0002](https://github.com/googlecartographer/rfcs/blob/master/text/0002-cloud-based-mapping-1.md)
PAIR=cschuet
2018-01-29 14:02:33 +01:00
Christoph Schütte 7d2e39af4b gRPC handler testing (#857) 2018-01-29 12:01:17 +01:00
Alexander Belyaev 8316444319
Store landmark observations as LandmarkNodes in PoseGraph. (#850) 2018-01-29 10:17:05 +01:00
Christoph Schütte 49d89d0759 Move mocks out of client_test.cc into testing/ folder. (#854) 2018-01-26 17:56:36 +01:00
gaschler dab69e0ca0 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.
2018-01-26 15:07:49 +01:00
Alexander Belyaev 1d2613c8e2 Add gRPC version of RunFinalOptimization(). (#852) 2018-01-25 17:31:03 +01:00
Christoph Schütte edb18231b6 Add ProtoStreamWriterInterface and implement forwarding writer. (#849) 2018-01-25 15:27:50 +01:00
Rodrigo Queiro 65889f14a0 Bazel: use cartographer_grpc_server as in CMakeLists.txt (#848) 2018-01-25 13:28:31 +01:00
Alexander Belyaev 894bad397d
Rename Landmark->LandmarkObservation. (#847) 2018-01-25 12:10:30 +01:00
Alexander Belyaev 37ddf9e550 Add gRPC version of LoadMap(). (#842)
Later they will be used in map_builder_stub and load_map_handler.
2018-01-25 09:27:42 +01:00
Alexander Belyaev a103e8f93a Implement 'num_trajectory_builders' in map_builder_stub. (#845)
A huuuuuge PR.
2018-01-25 08:59:52 +01:00
Alexander Belyaev aee1bc46dc
Introduce InMemoryProtoStreamReader. (#844)
* Introduce InMemoryProtoStreamReader.

* Move inmemory*.* to in_memory*.*.
2018-01-24 13:58:15 +01:00
Rodrigo Queiro 52527ec6d4 Add licenses() declarations to BUILD files (#843)
These were in some, but not all, of the existing BUILD files. They make
it easier to vendor cartographer, as Bazel complains if a BUILD file in
//third_party is missing a licenses() declaration.
2018-01-24 13:16:25 +01:00
Rodrigo Queiro 1ff4c00d70 Fix the Bazel build when used as an external repo (#840)
Specifically, the cartographer_repositories() macro must refer to the
BUILD files contained in the cartographer workspace.
2018-01-23 22:00:12 +01:00
Rodrigo Queiro 8e2a017612 Build cartographer_grpc with Bazel (#841)
This doesn't work when cartographer is an external workspace, due to a
limitation in cc_grpc_library. However, the //cartographer target will
still work it is external, and cartographer_grpc users can vendor the
repository.
2018-01-23 21:29:41 +01:00
Christoph Schütte f1616e16ec Introduce bazel docker file (#838) 2018-01-23 10:50:51 +01:00
Alexander Belyaev 43008d391d
Introduce a ProtoStreamReaderInterface. (#837)
* Introduce a ProtoStreamReaderInterface.

* Remove the comments from interface def.
2018-01-23 09:09:37 +01:00
Alexander Belyaev 986ac28ff8
Rename 'tranform' to 'landmark_to_tracking_transform'. (#836) 2018-01-22 18:30:14 +01:00
Alexander Belyaev 6d4649857a
Move implementation of ReadProto/WriteProto to .cc (#835) 2018-01-22 17:53:31 +01:00
Rodrigo Queiro 0c227097e7 Add a Bazel build for cartographer (#834)
This does not include cartographer_grpc, nor any of the binaries
(*_main.cc). It has been tested with Bazel 0.9.0 on Ubuntu 14.04 with
the latest (at time of writing) dazel/dazel container, by running:

```
bazel build //...
bazel test //...
```

While this is a large CL, the files under third_party are not new - they have been through internal review, and this is their open-source release. The other files come to 212 lines of code.
2018-01-22 16:47:07 +01:00
Alexander Belyaev 67850d25a0 Replace templates in io/proto_stream.h with upcasting. (#833) 2018-01-22 14:12:14 +01:00
Alexander Belyaev 9e30c1e0cd
Send LandmarkData via gRPC. (#831)
* Send LandmarkData via gRPC.

[RFC PR](https://github.com/googlecartographer/rfcs/pull/18)

* Fix the nits.
2018-01-19 17:24:30 +01:00
Alexander Belyaev 746c9c83c8
Propagate LandmarksData to the PoseGraph. (#830)
Propagate LandmarkData to the PoseGraph.
2018-01-19 09:41:24 +01:00
gaschler de5937856d 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)
2018-01-17 21:15:15 +01:00
gaschler d92040d0e6 Test Collator for multiple trajectories (#829) 2018-01-17 20:43:20 +01:00
gaschler 70e378b7c5 TrajectoryCollator (#827)
Introduces TrajectorCollator, which collates sensor data ignoring
other trajectories.
Tests the same.

[RFC=0008](https://github.com/googlecartographer/rfcs/blob/master/text/0008-collator-interface.md)
2018-01-17 17:48:20 +01:00
Wolfgang Hess ffdbf1c161 Fix debug output for 3D loop closure error. (#826)
PAIR=spielawa
2018-01-17 13:09:48 +01:00
Christoph Schütte 35a9c3d63b Implement sensor data uploading in LocalTrajectoryUploader. (#822) 2018-01-17 12:01:29 +01:00
gaschler f64eef876a Optional GetBlockingTrajectoryId (#820)
[RFC=0008](https://github.com/googlecartographer/rfcs/blob/master/text/0008-collator-interface.md)
2018-01-16 16:21:22 +01:00
Alexander Belyaev 53c2a6b58f
Move 'finished' getter to the base class. (#803)
* Move 'finished' getter to the base class.

* Ran clang-format.

* Ran clang-format.
2018-01-16 14:20:33 +01:00
Christoph Schütte 712c7e3e39 Fix namespace of serialization functions. (#825) 2018-01-16 12:20:15 +01:00
Christoph Schütte 31ec89614c Add parameter to Submap::ToProto() to determine whether to include loop (#821) 2018-01-16 11:23:29 +01:00
Christoph Schütte 3660408ae6 Forward declare unique_ptr<LocalSlamResultData> (#824) 2018-01-16 10:20:51 +01:00
Christoph Schütte c053fc7a2f Implement sensor data forwarding. (#818) 2018-01-15 15:31:33 +01:00
Christoph Schütte 903e6432b9 Add slides from Cartographer Open House. (#819) 2018-01-15 12:11: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 057bd8ce6a Public SpaCostFunction::Compute* (#814) 2018-01-12 21:46:47 +01:00
Wolfgang Hess 19ff047a79 Allow FixedRatioSampler to drop all data. (#817)
This is useful to disable loop closure by setting
constraint_builder.sampling_ratio = 0.
2018-01-12 18:54:41 +01:00
Christoph Schütte 1de696d45f Introduce PoseGraphInterface::ToProto() (#813) 2018-01-12 13:55:14 +01:00
Christoph Schütte fee77c8a99 Add LocalSlamResultData retrieval and submap management (#810)
[RFC=0002](https://github.com/googlecartographer/rfcs/blob/master/text/0002-cloud-based-mapping-1.md)
2018-01-12 13:00:25 +01:00
gaschler 51ccee3e74 CollatorInterface (#808)
[RFC=0008](https://github.com/googlecartographer/rfcs/blob/master/text/0008-collator-interface.md)
2018-01-11 16:02:03 +01:00
Christoph Schütte 8fc64fdbb5 Wrap HybridGrid in unique_ptr to make Submap updatable (#809) 2018-01-11 14:34:56 +01:00
Christoph Schütte e1a182d1fa Implement LocalSlamResult data adding to PoseGraph. (#804) 2018-01-11 10:19:37 +01:00
Christoph Schütte d313af8674
Add InsertionResult to LocalSlamResult. (#801) 2018-01-10 17:26:04 +01:00
Susanne Pielawa c7a8c5fda9 Keep fixed frame across optimizations. (#807)
PAIR=wohe
2018-01-10 16:01:27 +01:00
Susanne Pielawa 286d16238e In optimization_problem, use a map instead of vector for trajectory data. (#805)
PAIR=wohe
2018-01-10 14:30:51 +01:00
Susanne Pielawa 67d26747cc Implement assignment operator for common::optional. (#800)
Implement assignment operator for common::optional.
2018-01-09 17:54:53 +01:00
Christoph Schütte 8c7c4e3d2a Make LocalTrajectoryBuilder optional. (#799)
This is to prepare for the cloud-based mapping case where the robot is running cartographer in pure-localization mode and the cloud instance only solves the global problem. In that case a `LocalTrajectoryBuilder` need to be instantiated in for the cloud instance.
2018-01-09 16:54:30 +01:00