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
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
gaschler
6817d22788
Test global 2D SLAM. ( #751 )
2017-12-15 14:45:56 +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
Juraj Oršulić
29e4395a5a
Make WaitForAllComputation wait for work queue in 3D as well ( #758 )
...
Repeat the change in #754 by @gaschler for 3D as well.
2017-12-14 10:02:54 +01:00
gaschler
f8452821d7
WaitForAllComputation waits for work queue ( #754 )
2017-12-13 18:49:22 +01:00
gaschler
59d1b968bc
Unwarp by point in LocalTrajectoryBuilder. ( #636 )
2017-12-13 18:29:42 +01:00
Christoph Schütte
e16d1b1207
Heap-allocate RpcEvents. ( #756 )
...
Replace Rpc's RpcEvent members with heap-allocated RpcEvents.
[RFC=0002](https://github.com/googlecartographer/rfcs/blob/master/text/0002-cloud-based-mapping-1.md )
2017-12-13 18:01:01 +01:00
Christoph Schütte
69787f288f
Introduce skeletons for various stubs. ( #752 )
...
Adds skeletons for
* MapBuilderStub
* PoseGraphStub
* TrajectoryBuilderStub
[RFC=0002](https://github.com/googlecartographer/rfcs/blob/master/text/0002-cloud-based-mapping-1.md )
2017-12-13 15:53:47 +01:00
Christoph Schütte
636f3bbc2f
Add slides from 171207. ( #753 )
2017-12-13 14:51:50 +01:00
Christoph Schütte
bf77b11645
Implement gRPC data handlers and SLAM thread. ( #749 )
2017-12-12 22:36:44 +01:00
Christoph Schütte
e596b75113
Add binary for cartographer_grpc_server. ( #747 )
...
[RFC=0002](https://github.com/googlecartographer/rfcs/blob/master/text/0002-cloud-based-mapping-1.md )
2017-12-11 19:09:52 +01:00
Christoph Schütte
c5ec086968
Introduce TimedPointCloudData. ( #748 )
...
This data structure is needed to forward RangeFinderData over gRPC.
[RFC=0002](https://github.com/googlecartographer/rfcs/blob/master/text/0002-cloud-based-mapping-1.md )
2017-12-08 19:28:47 +01:00
Christoph Schütte
3ae78563c6
Introduce TrajectoryBuilderInterface. ( #736 )
...
[RFC=0004](https://github.com/googlecartographer/rfcs/blob/master/text/0004-trajectory-builder-interface.md )
2017-12-08 11:52:29 +01:00
Christoph Schütte
96cdbde5bf
Introduce PoseGraphInterface. ( #744 )
...
[RFC=0005](https://github.com/googlecartographer/rfcs/blob/master/text/0005-pose-graph-interface.md )
2017-12-08 11:13:48 +01:00
gaschler
549eef0000
Correct namespace ( #742 )
2017-12-07 21:17:30 +01:00
gaschler
3b5a72eebc
Script for address sanitizer tests ( #745 )
2017-12-07 15:26:10 +01:00
Michael Grupp
176fc42c3f
Remove empty leftover of pose_estimate.h ( #740 )
...
Follow-up of #670 .
2017-12-07 08:53:04 +01:00
gaschler
5c694adf93
Correct cmake install ( #739 )
...
Simplify how file lists are collected depending on options.
Omits gRPC headers if they were not built.
2017-12-06 20:34:07 +01:00
Christoph Schütte
2a7a6ef934
Make sensor::Data dispatchable to TrajectoryBuilder. ( #738 )
...
This change allows to dispatch sensor::Data to implementations of mapping::TrajectoryBuilder, i.e. CollatedTrajectoryBuilder. We need this for cartographer_grpc as the incoming sensor data is inserted into a queue by the gRPC threads and dequeued by a SLAM threads that inserts them into a CollatedTrajectoryBuilder.
2017-12-06 16:36:36 +01:00
gaschler
4c999037b4
Integration tests for local slam. ( #734 )
2017-12-06 15:58:16 +01:00