Commit Graph

934 Commits (ce9c567e3cb7d7fce4e3f04c4703cd9bb4d039cf)

Author SHA1 Message Date
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
Christoph Schütte ded778cd34
Implementation of Add/FinishTrajectoryHandler. (#732) 2017-12-05 16:36:54 +01:00
Christoph Schütte 697be9a77b
Add MappingServer skeleton. (#730) 2017-12-05 14:46:25 +01:00
gaschler 49d55d97c1 Test MapBuilder (#731) 2017-12-05 14:04:10 +01:00
gaschler b77a1f2178
Remove implementation from TrajectoryBuilder. (#728)
To simplify the implementation of a gRPC-based trajectory builder,
this moves the existing implementation to CollatedTrajectoryBuilder
and organizes the interface by sensor type.
2017-12-05 11:05:05 +01:00
gaschler ee9c61a736 Move LocalSlamResultCallback to AddTrajectory (#724) 2017-12-04 22:41:38 +01:00
Christoph Schütte 0315acf050
Add Slides for Cartographer open house X (#725) 2017-12-04 20:08:31 +01:00
Christoph Schütte e950062367
Add Cartographer service proto. (#723) 2017-12-04 17:30:42 +01:00
Christoph Schütte 32a8364b98
Implement bi-directional streaming RPCs. (#720)
[RFC=0002](https://github.com/googlecartographer/rfcs/blob/master/text/0002-cloud-based-mapping-1.md)
2017-12-04 15:28:19 +01:00
gaschler 1ff8243802
Test RotationDeltaCostFunctor (#721) 2017-12-01 09:25:15 +01:00
gaschler 63e901d276
Create AutoDiffCostFunction in cost functions. (#718)
Creating a ceres::AutoDiffCostFunction requires specifying numbers
of residuals and variables, so it is safer to implement this within
the cost functions, which know best.
2017-11-30 15:41:57 +01:00
gaschler 85bfb888eb
Interface for MapBuilder (#715)
Defines an interface for MapBuilder that can be used to implement a gRPC stub.
[RFC=0002](https://github.com/googlecartographer/rfcs/blob/master/text/0002-cloud-based-mapping-1.md)
2017-11-30 14:41:48 +01:00
Christoph Schütte 5147af9763
Implement unary gRPC calls. (#719)
[RFC=0002](https://github.com/googlecartographer/rfcs/blob/master/text/0002-cloud-based-mapping-1.md)
2017-11-30 13:18:16 +01:00
gaschler 24f253a2aa Remove GetBlockingTrajectoryId (#714) 2017-11-30 12:04:14 +01:00
Christoph Schütte 999820d845 Implement shared ExecutionContext for handlers. (#716)
[RFC=0002](https://github.com/googlecartographer/rfcs/blob/master/text/0002-cloud-based-mapping-1.md)
2017-11-29 14:05:31 +01:00
Christoph Schütte 3a46804393 Implement end-to-end client streaming RPC. (#713)
[RFC=0002](https://github.com/googlecartographer/rfcs/blob/master/text/0002-cloud-based-mapping-1.md)
2017-11-29 10:40:26 +01:00
Christoph Schütte 02359a98ae Implement connection establishment and server startup and shutdown. (#712)
[RFC=0002](https://github.com/googlecartographer/rfcs/blob/master/text/0002-cloud-based-mapping-1.md)
2017-11-28 10:50:30 +01:00
Jihoon Lee 88805a301d Trim all submaps when pure localization trajectory is finished. (#563)
Fixes #560 
based on #562
2017-11-28 10:21:55 +01:00
Juraj Oršulić bebe021b04 Serialize fixed frame pose data. (#689)
Similar to #666 and #548.
2017-11-28 09:44:35 +01:00
gaschler 1c7183d5c4 VoxelFilter for TimedPointCloud, Filter method. (#710)
This makes the VoxelFilter ready for TimedPointCloud and
per-point unwarping.
2017-11-27 15:12:07 +01:00
gaschler c292d76f86 Test ImuTracker (#711)
Adds unit tests for ImuTracker to cover filtering of the gravity
vector and tracking angular velocity.
2017-11-27 14:46:32 +01:00
Christoph Schütte cd289bbcee Introduce RPC class and start wiring up in Service (#701)
[RFC=0002](https://github.com/googlecartographer/rfcs/blob/master/text/0002-cloud-based-mapping-1.md)
2017-11-24 23:41:58 +01:00
Christoph Schütte f6a7dfd07b Update Travis Docker file for Trusty to build gRPC code (#709)
[RFC=0002](https://github.com/googlecartographer/rfcs/blob/master/text/0002-cloud-based-mapping-1.md)
2017-11-24 22:08:51 +01:00
Wolfgang Hess 7e82ac3bbf Make IMU cost functions internal. (#708)
[RFC=0003](https://github.com/googlecartographer/rfcs/blob/master/text/0003-internal-headers.md)
2017-11-24 15:29:48 +01:00
Wolfgang Hess 79b83b92b2 Make the MotionFilter internal. (#707)
Also moves it from mapping_3d to mapping since it is used
in both 2D and 3D SLAM.

[RFC=0003](https://github.com/googlecartographer/rfcs/blob/master/text/0003-internal-headers.md)
2017-11-24 14:01:07 +01:00
gaschler 0084f14c1c CeresScanMatcher target_translation (#702)
For its translation cost function, CeresScanMatcher now takes
a target translation as an argument instead of a pose, which 
was confusing.
2017-11-24 12:26:14 +01:00
Wolfgang Hess 0819e52a9c Make the LocalTrajectoryBuilders internal. (#704)
[RFC=0003](https://github.com/googlecartographer/rfcs/blob/master/text/0003-internal-headers.md)
2017-11-24 10:39:12 +01:00
Wolfgang Hess 8e6101de5c Make the OccupiedSpaceCostFunction internal. (#703)
[RFC=0003](https://github.com/googlecartographer/rfcs/blob/master/text/0003-internal-headers.md)
2017-11-23 18:04:36 +01:00
Wolfgang Hess 70a0f41364 Remove unused code. (#699) 2017-11-23 16:39:55 +01:00
gaschler 9bfc52d878 Rename arguments of CostFunctors to target_ (#700)
Rename constant targets of cost functors to target_*.
Pass only translation to Translation cost functors.
2017-11-23 16:04:49 +01:00
Christoph Schütte 38eeb17164 Introduce gRPC server, service and rpc handlers (#692) 2017-11-23 15:37:30 +01:00
Wolfgang Hess ec034b13bc Do not install global_trajectory_builder.h. (#698)
This moves the global_trajectory_builder.h header under
cartographer/internal and changes the CMakeLists.txt to
not install internal headers.

[RFC=0003](https://github.com/googlecartographer/rfcs/blob/master/text/0003-internal-headers.md)
2017-11-23 14:47:29 +01:00
Juraj Oršulić 8f9f1cf44e Fix debug build (#697)
Similar to #418.
2017-11-23 14:20:01 +01:00
gaschler 147c8166b6 ImuTracker uses conjugate. (#693)
Normalized quaternions can be inverted with conjugate, which is faster.
The motivation for optimizing ImuTracker::Advance is that
per-point unwarping will call this for every point.
2017-11-23 13:50:44 +01:00
gaschler a8bd98680e ExtrapolatePose uses fewer transforms. (#694)
ExtrapolatePose avoids conversion to Rigid3d and computes translation
and rotation directly, which is faster.
Per-point unwarping will call this function for every point, so we
optimize it.
2017-11-23 12:27:26 +01:00
Christoph Schütte 41bb8be0fb Prepare 0.3.0 release (#696) 2017-11-23 10:27:08 +01:00
Christoph Schütte c233aaaac8 Update CMakeLists.txt to preprare for gRPC deps. (#691) 2017-11-22 16:29:01 +01:00
Juraj Oršulić 31f28b5097 Remove PoseEstimate. (#670)
Replaces #620.

Depends on switching `cartographer_ros` to use the new callback API for handling the last scan and pose estimate (googlecartographer/cartographer_ros#594).
2017-11-17 16:47:06 +01:00