Commit Graph

66 Commits (49d89d07594428d377f9630f2990e99d0f24627a)

Author SHA1 Message Date
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 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
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 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
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 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
Christoph Schütte 35a9c3d63b Implement sensor data uploading in LocalTrajectoryUploader. (#822) 2018-01-17 12:01:29 +01:00
Christoph Schütte 712c7e3e39 Fix namespace of serialization functions. (#825) 2018-01-16 12:20:15 +01:00
Christoph Schütte c053fc7a2f Implement sensor data forwarding. (#818) 2018-01-15 15:31:33 +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
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
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
Christoph Schütte 8165da873f Add GetConstraints() to gRPC service. (#798) 2018-01-09 14:25:28 +01:00
Christoph Schütte bd2fbbf1a1 Implement GetLocalToGlobalTransform() in gRPC service (#797) 2018-01-08 16:28:41 +01:00
Christoph Schütte d240261701 Add GetAllSubmapPoses to gRPC interface. (#791) 2018-01-08 15:34:00 +01:00
Christoph Schütte 78d05bf745 Add GetTrajectoryNodePoses() to gRPC service (#796) 2018-01-08 14:19:39 +01:00
Christoph Schütte d57c2441b8 Implement gRPC submap query. (#794) 2018-01-08 13:52:14 +01:00
gaschler 920a34a938 Fix RpcEvent lifetime (#793)
Fixes #788.

Uses two different types of events whether the event goes through the CompletionQueue or not.
CompletionQueueRpcEvent is again a member of Rpc.
2018-01-08 12:42:19 +01:00
Christoph Schütte 196b4b891c Add PoseGraphInterface::GetTrajectoryNodePoses() (#795) 2018-01-08 09:13:51 +01:00
Christoph Schütte 1a837ef3ab Introduce PoseGraphInterface::GetAllSubmapPoses() (#790) 2018-01-05 14:19:08 +01:00
gaschler 923d643b86 Fix obvious asan warnings. (#787)
Adds a few missing overrides and removes a std::move that
prevented copy elision.
2018-01-05 10:18:08 +01:00
gaschler dbb3f7cde4 Test TrajectoryBuilderStub (#780) 2018-01-03 14:56:56 +01:00
gaschler c881fe90cf Stub receives LocalSlamResults. (#778)
[RFC=0002](https://github.com/googlecartographer/rfcs/blob/master/text/0002-cloud-based-mapping-1.md)
PAIR=cschuet
2017-12-20 12:42:27 +01:00
gaschler f5e99089a9 Notify LocalSlamResults subscription ends. (#777)
[RFC=0002](https://github.com/googlecartographer/rfcs/blob/master/text/0002-cloud-based-mapping-1.md)
PAIR=cschuet
2017-12-20 11:42:01 +01:00
Christoph Schütte e0faf7094e Change MapBuilderServer::LocalSlamSubscriptionCallback (#776)
PAIR=gaschler
2017-12-20 09:46:54 +01:00
gaschler 383b988548 TrajectoryBuilderStub sends WritesDone (#774)
This is required to close the connection, otherwise the server
cannot shutdown.
2017-12-19 15:49:56 +01:00
Christoph Schütte 02734c296d Implement ReceiveLocalSlamResultsHandler. (#772) 2017-12-19 15:11:29 +01:00
gaschler 5fbc4ca568 Test gRPC client/server (#773)
Adds an integration test and a test with a mock MapBuilderInterface to cover client/server communication.
2017-12-19 14:36:25 +01:00
Christoph Schütte dea6c3d7ce Implement server-streaming RPCs and add unittest (#768)
[RFC=0002](https://github.com/googlecartographer/rfcs/blob/master/text/0002-cloud-based-mapping-1.md)
2017-12-19 10:27:30 +01:00
Christoph Schütte c79425cbb0 Implement RpcHandler::GetWriter and add unittest (#767) 2017-12-18 21:27:03 +01:00
gaschler def442b9db Make MapBuilderServer testable (#771)
Pass MapBuilder to the constructor so the MapBuilder can be mocked.
2017-12-18 20:47:00 +01:00
gaschler 5bb81a9b4a correct MapBuilderStub (#770)
Context: The `::grpc::ClientContext` represents a single RPC on the client side. Therefore it is illegal to share the same context between two different RPC invocations.
2017-12-18 17:12:29 +01:00
Christoph Schütte 03751b3c9f Implement local SLAM subscriptions in MapBuilderServer (#766) 2017-12-18 16:32:34 +01:00
gaschler db0d5bc746 correct PoseGraphStub (#769) 2017-12-18 15:57:49 +01:00
Christoph Schütte ba7d375a25 Refactor Write()/Finish() and make thread-safe. (#760)
[RFC=0002](https://github.com/googlecartographer/rfcs/blob/master/text/0002-cloud-based-mapping-1.md)
2017-12-18 13:36:44 +01:00
gaschler c6decd5b7b Test MapBuilderServer (#762)
Test to start and stop the MapBuilderServer.
Moves test helper functions in common with MapBuilderTest
to internal/mapping.
2017-12-18 11:52:17 +01:00
gaschler 89b49dfefb TrajectoryBuilderStub implementation (#764) 2017-12-18 11:24:16 +01:00
gaschler 3fbc642a89 PopWithTimeout for sensor data queue (#763)
PopWithTimeout is necessary to ensure the SLAM thread
in the MapBuilderServer finishes when the server is
shut down.
2017-12-18 10:02:57 +01:00
gaschler d49706944f FixedFramePoseData in gRPC server (#761)
Defines the FixedFramePoseData RPC and implements
the handler for the gRPC server.
2017-12-15 15:26:58 +01:00
Christoph Schütte 69f74a11ba Implement EventQueues. (#759) 2017-12-15 12:21:44 +01:00
Christoph Schütte e023ec5ecc In RpcEvent use std::weak_ptr<Rpc> rather than Rpc* (#757)
[RFC=0002](https://github.com/googlecartographer/rfcs/blob/master/text/0002-cloud-based-mapping-1.md)
2017-12-14 16:30:01 +01:00