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
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
Susanne Pielawa
91034eaf58
Making pose in FixedFramePoseData optional. ( #792 )
...
This is for the case that the GPS signal is not available.
2018-01-08 11:37:07 +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
Susanne Pielawa
63a80c9340
Adding a minimal implementation of std::optional. ( #783 )
...
We're using C++11, which doesn't have std::optional. We need a few
features of std::optional for improved GPS support. These are
implemented here.
2018-01-05 11:27:21 +01:00
Juraj Oršulić
58d94aaa68
Refactor calling optimization into DispatchOptimization. ( #729 )
...
I noticed that @jihoonl opened the PR #726 which performs a similar thing. As discussed in googlecartographer/cartographer_ros#613 (@cschuet has already taken a look), I pulled this out of #481 (a really old PR whose merging has been postponed), which is an example where re-running optimization is triggered from elsewhere as well (besides from `ComputeConstraintsForNode`). This refactoring makes libcartographer friendlier for use cases such as that one.
An important detail is that I have changed the condition in `WaitForAllComputations` to also check if the work queue is empty. If there are other things on the worker queue besides `ComputeConstraintsForNode`, currently we will wrongfully conclude that all computations are done. (This detail was merged in #754 , so it's no longer in the diff of this PR).
Also missing is the same thing for 3D. I can add that when we settle on this.
Also, I suggest that `run_loop_closure` gets renamed to `run_optimization`.
2018-01-05 10:43:56 +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
6125766c81
Define default num_event_threads config. ( #785 )
...
(This was not covered by tests because they manually set it to 1.)
2018-01-04 13:51:30 +01:00
Jihoon Lee
2ad83662f2
Migrate SubmapTexture and SubmapSlice logics from cartographer_ros ( #782 )
...
Towards [RFC06](https://github.com/googlecartographer/rfcs/blob/master/text/0006-serve-ros-map-from-pbstream.md ).
Migrates
* `FillSubmapSlice` from `pbstream_to_rosmap_main.cc`
* `SubmapTexture` logics from cartographer_ros
2018-01-04 10:52:05 +01:00
Juraj Oršulić
9ee65293d2
Pose graph: do not mark all submaps finished when finalizing a trajectory. ( #784 )
...
I think this was a mistake in #563 (@jihoonl). Not all submaps should be marked as finished, only those pertaining to the trajectory being finalized.
2018-01-04 10:11:28 +01:00
gaschler
dbb3f7cde4
Test TrajectoryBuilderStub ( #780 )
2018-01-03 14:56:56 +01:00
gaschler
269bf5b05a
Log output for failed tests ( #781 )
2017-12-20 16:08:27 +01:00
Christoph Schütte
18cb9c324f
Make CMakeLists.txt install gRPC service headers. ( #779 )
2017-12-20 14:40:33 +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
5b5b290e9f
Implement BlockingQueue::WaitUntilEmpty(). ( #775 )
...
PAIR=gaschler
2017-12-20 10:22:53 +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