Commit Graph

694 Commits (afa3ba5336361b611703ed0bd73ecce724dbd0af)

Author SHA1 Message Date
gaschler 4278dbb7ea Speed up slow tests (#1077)
Same checks, half the time.
2018-04-17 15:41:09 +02:00
Kevin Daun ed0a8846f1 Allow execution of Submap2D::ToResponseProto without a grid (#1078)
- related to https://github.com/googlecartographer/cartographer_ros/issues/819
2018-04-17 14:27:09 +02:00
Alexander Belyaev 74970be757
Add overlapping trimmer params to TrajectoryBuilderOptions. (#1076) 2018-04-17 13:00:04 +02:00
Alexander Belyaev e215c170e7 Remove redundant function declaration. (#1075)
Makes clang happy again.
2018-04-17 10:22:00 +02:00
Kevin Daun a82a62f8a0 Replace Submap2D grid member by unique_ptr (#1073)
- replace the `ProbabilityGrid` member of `Submap2D` by  `unique_ptr<ProbabilityGrid>`
- allow `Submap2D` to handle `proto::Submap2D` without a defined grid field
- resolve https://github.com/googlecartographer/cartographer/issues/1071
2018-04-16 18:19:59 +02:00
Christoph Schütte ce71273737 Add error messages for gRPC connection failures (#1072)
Fixes https://github.com/googlecartographer/cartographer_ros/issues/825.
2018-04-16 16:40:03 +02:00
Alexander Belyaev 7b68844937
Add a gRPC version of SetLandmarkPose(). (#1068) 2018-04-16 15:49:08 +02:00
Alexander Belyaev 75f899117a Move to testing/. (#1067) 2018-04-16 12:47:11 +02:00
gaschler 663e135426 add check (#1063) 2018-04-16 12:01:09 +02:00
Alexander Belyaev 74f74c4b61 Deserialize landmark poses. (#1064) 2018-04-13 16:38:45 +02:00
Kevin Daun 46d3a9443a Introduce Grid2D as base class for 2D grids (#1046)
This is a first step towards generalizing submaps (see [ongoing RFC discussion](https://github.com/googlecartographer/rfcs/pull/30)).
Although this PR already introduces a correspondence cost grid, the grid is still used as probability grid.
2018-04-13 13:43:09 +02:00
Christoph Schütte b4c4ae6ea9 Update unfinished submap list on SLAM thread (#1061)
Fixes #1052
2018-04-13 12:15:26 +02:00
Michael Grupp d2f29d04b9 Improve pose terminology of 2D optimization problem. (#1053)
Removes the confusing term `initial_pose` from global 2D optimization.
It makes sense in other areas like scan matching, but has a completely
different meaning there. Also matches the 3D equivalents better.

- `local_pose_2d` replaces `initial_pose` as the name for the
   non-gravity-aligned, local 2D pose in the submap
- `global_pose_2d` replaces `pose` as the name for the
   non-gravity-aligned, global 2D pose that is optimized

See the comment in the PR for how this improves readability.
2018-04-12 16:00:56 +02:00
Christoph Schütte 14465aa23e Refactor MapBuilderContext to reduce code duplication. (#1059) 2018-04-12 15:27:24 +02:00
Alexander Belyaev a4346337bc
Address the comments for the overlapping submaps trimmer. (#1060) 2018-04-12 14:28:33 +02:00
Christoph Schütte f83d0a6ed6 Implement IsTrajectory{Finished,Frozen} in cloud mapping (#1057) 2018-04-12 12:37:04 +02:00
Alexander Belyaev 771336b3c9
Add overlapping submaps trimmer. (#1027)
Trims submaps that have less than 'min_covered_cells_count' cells not overlapped by at least 'fresh_submaps_count` submaps.
2018-04-12 11:53:56 +02:00
Alexander Belyaev 7286415e27 Remove unused variable. (#1049) 2018-04-11 13:15:09 +02:00
jie d1161b5f8e Internal cleanup (#1051)
Fix lint errors.
2018-04-11 09:56:22 +02:00
Alexander Belyaev 7b0963216f
Move FakeTrimmable implementation to internal/testing. (#1050)
* Move FakeTrimmable implementation to internal/testing.

* Address the comments.
2018-04-10 18:05:03 +02:00
Michael Grupp 4351bdb3c8 Separate global optimization constraints for local SLAM and odometry (#1029)
Implements [RFC-0018](https://github.com/googlecartographer/rfcs/blob/master/text/0018-odometry-use-in-optimization-problem.md)
2018-04-10 14:44:43 +02:00
jie cf358e7640 Internal cleanup (#1045)
Clean up the lint errors.
2018-04-10 09:43:36 +02:00
jie 74b35caf6e Internal clean up. (#1042)
Add necessary headers to convenient the import to google.
Require holding mutex for some function that access the variables that guard by mutex.
2018-04-09 19:18:58 +02:00
gaschler e89625d36a Correctly use PrecomputationGridStack for 2D and 3D (#1040)
FIXES=#1038
2018-04-09 14:29:45 +02:00
Alexander Belyaev b1dcb0cc5e Remove unused 'freeze_landmarks_' field. (#1039) 2018-04-05 18:40:48 +02:00
gaschler e26e9f172b RangeDataCollator handles empty range data. (#1036)
FIXES=#1019
2018-04-04 15:20:10 +02:00
Alexander Belyaev abb2661b76
Allow trimmer to get nodes/constraints. (#1034)
* Allow trimmer to get nodes/constraints.

* Mark the methods const.
2018-04-04 12:50:12 +02:00
Alexander Belyaev 41fc7e38cc Rename the setters according to style-guide. (#1032)
just a nit
2018-04-03 18:56:44 +02:00
Alexander Belyaev 8c6c584524
Allow trimmers fetch submap data. (#1024) 2018-03-28 12:07:28 +02:00
Alexander Belyaev 962393074a New fixes for Jets. (#1023)
Issue #1015
2018-03-27 14:26:21 +02:00
gaschler 94f564d871
Test trimming within trajectory (#1020) 2018-03-27 12:50:35 +02:00
Alexander Belyaev e0e1c081e7
Do not use operator*= with Jets. (#1018) 2018-03-26 15:55:50 +02:00
Christoph Schütte 915ebb19a6
Use async_grpc (#1013)
Use async_grpc
2018-03-23 10:52:48 +01:00
Alexander Belyaev e48e21849a
Acquire mutex before copying landmark poses. (#1007) 2018-03-19 16:16:46 +01:00
Alexander Belyaev 4cc758e830
Serialize landmark observations. (#1006) 2018-03-19 15:12:47 +01:00
gaschler 7a7908ebb9 Test PureLocalizationTrimmer with actual pose graph (#1004) 2018-03-19 11:43:19 +01:00
gaschler b23ec8ce4e
Fix PureLocalizationTrimmer (#1002)
Remove the wrong assumption that submap index is sequential from 0.
2018-03-19 10:35:35 +01:00
Juraj Oršulić ee530d2423 Purge some additional jets (#1000) 2018-03-16 19:12:56 +01:00
Alexander Belyaev 1f9c78a82b
Remove float-to-jet casts where possible. (#998) 2018-03-16 14:53:10 +01:00
Alexander Belyaev 06a9d3544d
Interpolate trajectory node to compute starting point for landmarks. (#997)
[Landmarks RFC](https://github.com/googlecartographer/rfcs/blob/master/text/0011-landmarks.md)
2018-03-16 12:01:55 +01:00
gaschler 37a68cd7f4 LocalTrajectoryBuilder uses RangeDataCollator (#996)
Local SLAM accepts and unwarps time-overlapping range data from multiple sensors.

[RFC=0017](https://github.com/googlecartographer/rfcs/blob/master/text/0017-synchronize-points.md)
FIXES=#910
2018-03-15 16:34:51 +01:00
gaschler 55065a2108 Mockable optimization (#994) 2018-03-15 14:13:59 +01:00
gaschler bd7d7202bf Filter RangeMeasurement (#995)
[RFC=0017](https://github.com/googlecartographer/rfcs/blob/master/text/0017-synchronize-points.md)
2018-03-15 12:31:08 +01:00
gaschler 067d01a364 Test PoseGraph3D (#990) 2018-03-15 11:44:47 +01:00
gaschler ed47f9d8f8 OptimizationProblemInterface (#991)
Derive optimization problems from a new OptimizationProblemInterface.
Move fix_z into OptimizationProblemOptions.
Move trivial getters to header files.
This will allow mocking the optimization problems.
2018-03-15 11:12:26 +01:00
Alexander Belyaev e6c4ee4b8b Move interpolation of poses to 'cost_helpers'. (#992) 2018-03-15 10:33:02 +01:00
Alexander Belyaev 1e4d558ac4
Add landmarks to the state and deserialize them. (#988) 2018-03-14 21:36:15 +01:00
gaschler 36df3eec19
Instrument metrics in GlobalTrajectoryBuilder. (#945)
RFC=[0014](https://github.com/googlecartographer/rfcs/blob/master/text/0014-monitoring.md)
2018-03-14 14:51:40 +01:00
Alexander Belyaev 0190e7cd99 Clean-up dependencies of map_builder and put getters to the header. (#989) 2018-03-14 13:33:44 +01:00
Alexander Belyaev c060a15670
Remove dead code: fast_global_localizer. (#987) 2018-03-13 16:23:27 +01:00
Alexander Belyaev 4d52c46629
Clean-up dependencies and move real_time_correlative_scan_matcher. (#986)
[Internal headers RFC](https://github.com/googlecartographer/rfcs/blob/master/text/0003-internal-headers.md)
2018-03-13 15:18:05 +01:00
Wolfgang Hess c09b643d8d Synchronize correctly in FinishTrajectory(). (#980)
PoseGraph{2D,3D}::FinishTrajectory() calls AddWorkItem() which
requires the mutex to be held. This adds code to do this.
2018-03-13 14:10:51 +01:00
Alexander Belyaev 525f7afe7e
Move sensor-related stuff to internal/. (#985)
[Internal headers RFC](https://github.com/googlecartographer/rfcs/blob/master/text/0003-internal-headers.md)
2018-03-13 13:36:45 +01:00
gaschler 1187480fe6 Introduce RangeDataCollator (#975)
Synchronizes and merge-sorts TimedPointCloudData by per-point timestamps from
multiple sensors.

[RFC=0017](https://github.com/googlecartographer/rfcs/blob/master/text/0017-synchronize-points.md)
2018-03-13 11:08:01 +01:00
Alexander Belyaev 976736051c
Move scan matchers to internal/. (#983) 2018-03-13 10:21:27 +01:00
Alexander Belyaev 70c7660348
Move even more stuff to internal/. (#982)
[Internal headers RFC](https://github.com/googlecartographer/rfcs/blob/master/text/0003-internal-headers.md)
2018-03-12 17:46:31 +01:00
Alexander Belyaev bfbf29dcd6
Move mapping/pose_graph/ to internal/. (#979)
[Internal headers RFC](https://github.com/googlecartographer/rfcs/blob/master/text/0003-internal-headers.md)
2018-03-12 14:00:18 +01:00
Alexander Belyaev 418e0964bf
Move pose_graph_*d related files to internal/. (#976)
[Internal headers RFC](https://github.com/googlecartographer/rfcs/blob/master/text/0003-internal-headers.md)
2018-03-12 12:42:52 +01:00
Juraj Oršulić 091a4f852d Update descriptions in pose_graph.h (#977)
Remove "frozen", since deserialized trajectories can be unfrozen since #891.
2018-03-10 23:50:31 +01:00
Alexander Belyaev 2fe1867221
Fix writing the pbstream via gRPC. (#973) 2018-03-09 16:26:03 +01:00
Alexander Belyaev daa35d3bc8
Move in_memory_proto_stream.* to internal. (#969)
Internal Headers RFC
2018-03-09 15:24:07 +01:00
Alexander Belyaev bb4ba8b319
Split local_slam_result_data.h into base and 2d/3d parts. (#967) 2018-03-08 15:17:31 +01:00
Alexander Belyaev b29986f297
Remove the pointers to the derived PoseGraph*D classes from map_builder. (#966) 2018-03-08 14:49:41 +01:00
Alexander Belyaev 20a980aade
Remove 'pose_graph_*d.h' from local_slam_result_data.h. (#965) 2018-03-08 13:09:43 +01:00
Alexander Belyaev 256b5a6ff0
Remove '2d/probability_grid.h' include from 'submaps.h'. (#964) 2018-03-08 11:56:42 +01:00
Kevin Daun 82a491181d Add IsTrajectoryFrozen to PoseGraph (#962)
Adds IsTrajectoryFrozen to the PoseGraph interface
2018-03-08 11:18:08 +01:00
Alexander Belyaev f34df22a24
Update header guards. (#959) 2018-03-05 14:55:51 +01:00
Alexander Belyaev cf180a0b19
Move mapping:: related mocks to cartographer/internal/testing. (#960) 2018-03-05 14:09:04 +01:00
Alexander Belyaev f76d8a8a0d
Move cartographer_grpc/ to cartographer/cloud. (#958)
[Code structure RFC](https://github.com/googlecartographer/rfcs/blob/master/text/0016-code-structure.md)
2018-03-05 12:41:38 +01:00
gaschler a2219cb2fc
Correct comment (#948) 2018-03-02 10:25:23 +01:00
gaschler 0156e6b8ce Instrument metrics in local trajectory builders. (#946)
RFC=[0014](https://github.com/googlecartographer/rfcs/blob/master/text/0014-monitoring.md)
2018-02-28 16:32:40 +01:00
gaschler df1ee4bb29 Fix metric label. (#944)
This makes metrics_test in debug mode happy.
2018-02-28 14:46:26 +01:00
gaschler 363a337e67 Re-implement VoxelFilter with unordered_set (#938)
Use hashing to filter voxels.
Handles arbitrary grid coordinates up to sizeof(int).

FIXES=#937
2018-02-28 11:12:18 +01:00
Juraj Oršulić 32b8bd3581 Enable loading unfrozen state (#891)
Enable loading unfrozen state
2018-02-27 20:38:57 +01:00
Alexander Belyaev 29875117b3
Move internal/mapping to mapping/internal. (#941) 2018-02-27 16:25:53 +01:00
gaschler 63fd497e0f Document HybridGrid limits. (#939)
Adds documentation to avoid issue #937.
2018-02-27 15:28:35 +01:00
gaschler f606d4b91c Gracefully handle time-overlapping point clouds. (#936)
Per-point relative times are usually computed by multiplying
a per-point time increment by the number of points.
So it is not uncommon for consecutive point clouds of a single
sensor to overlap in time.
When this happens, we act as if no backward jump in time happened
and warn once per input point cloud.

FIXES=#912
2018-02-26 18:38:00 +01:00
Alexander Belyaev 3ebfa757ef
Move mapping_*d to mapping/*d. (#935)
[Code structure RFC](https://github.com/googlecartographer/rfcs/blob/master/text/0016-code-structure.md)
2018-02-26 17:40:29 +01:00
Alexander Belyaev e75e023ce2
Purge 'mapping_3d::'. (#927) (#928)
[Code structure RFC](https://github.com/googlecartographer/rfcs/blob/master/text/0016-code-structure.md)
2018-02-26 14:26:41 +01:00
danielsievers 258aa715ba Move GetTrajectoryData() down to PoseGraphInterface (#932) 2018-02-26 12:45:53 +01:00
Michael Grupp 90994464a5 Check ifstream::good() in proto_stream.cc (#929)
Check for basic stream errors before doing more involved read actions.
The log message in this case is also more descriptive than
`Check failed: reader->ReadProto(&pose_graph)`.
2018-02-22 16:21:15 +01:00
Alexander Belyaev 94fce13f62
Purge 'mapping_2d::'. (#927)
[Code structure RFC](e11bca586f/text/0000-code-structure.md)
2018-02-21 19:44:53 +01:00
gaschler 30114e364a Instrument metrics in constraint builders. (#921)
RFC=[0014](https://github.com/googlecartographer/rfcs/blob/master/text/0014-monitoring.md)
2018-02-21 17:31:11 +01:00
gaschler 2711f4492f Test PoseExtrapolator (#926) 2018-02-21 16:43:58 +01:00
Alexander Belyaev 7d13383dec
Remove 'mapping_3d' namespace. (#922) (#925)
Remove 'mapping_3d' namespace. (#922)

It is removed from everywhere but 'scan_matching', 'pose_graph'
subfolders of 'mapping_3d'.

[Code structure RFC](e11bca586f/text/0000-code-structure.md)
2018-02-21 14:24:12 +01:00
Alexander Belyaev f8dc89d8ff
Remove 'mapping_2d' namespace. (#922)
It is removed from everywhere but 'scan_matching', 'pose_graph'
subfolders of 'mapping_2d'.

[Code structure RFC](e11bca586f/text/0000-code-structure.md)
2018-02-21 12:41:14 +01:00
Alexander Belyaev 96d5e2819c
Move implementation of ProbabilityGrid to .cc file. (#924) 2018-02-21 09:55:40 +01:00
gaschler ab05459f1c Move GlobalTrajectoryBuilder to cc file (#923)
* Move GlobalTrajectoryBuilder to cc file.

This allows to instrument file-level static metrics.
Also, it is a cleaner interface.

* two create functions

* drop superfluous typename
2018-02-21 08:53:09 +01:00
Alexander Belyaev a58866cb38
Rename mapping_3d::PoseGraph to mapping::PoseGraph3D. (#918)
[Code structure RFC](e11bca586f/text/0000-code-structure.md)
2018-02-20 15:28:21 +01:00
Alexander Belyaev 43544f0fbc
Rename mapping_2d::PoseGraph to mapping::PoseGraph2D. (#917)
[rCode structure RFC](e11bca586f/text/0000-code-structure.md)
2018-02-19 20:01:29 +01:00
danielsievers c38bb60407 (De)serialize trajectory data from the optimization problem (#915)
* Write/Read the trajectory data (gravity, imu calibration, and fixed frame origin) into the serialized state proto
2018-02-19 16:30:32 +01:00
gaschler 64bc194609 Introduce interfaces for metrics (#907)
Adds interfaces for metrics and metrics families.
Adds creation of null (noop) metrics.
Declares global register function.

RFC=[0014](https://github.com/googlecartographer/rfcs/blob/master/text/0014-monitoring.md)
2018-02-19 14:02:54 +01:00
Juraj Oršulić fb631ac9e6 Landmark improvements (#901) 2018-02-14 15:39:43 +01:00
gaschler cf01184114 Fix leak in LandmarkCostFunctionTest. (#902) 2018-02-14 12:38:01 +01:00
gaschler 9793542957 Add 3D global SLAM grpc test. (#904) 2018-02-14 12:04:52 +01:00
gaschler 244cf615f5 Make clang compile without warnings. (#903)
Rule out accidental usage of integer-only ::abs.
Correct static, override and protected annotations.
2018-02-14 11:06:46 +01:00
gaschler b2581b0d58 Make comparison operator const. (#898) 2018-02-13 13:03:26 +01:00
gaschler 7448f93b50 Avoid auto for Eigen expressions. (#899)
While harmless in most cases, auto can delay evaluation
of expressions in unexpected ways.
So it is better to avoid auto for Eigen expressions.
https://eigen.tuxfamily.org/dox/TopicPitfalls.html
2018-02-13 12:34:43 +01:00
Alexander Belyaev ac79f0c034
Save landmark poses after optimization run. (#896)
[RFC=0011](https://github.com/googlecartographer/rfcs/blob/master/text/0011-landmarks.md)
2018-02-12 13:15:16 +01:00
Alexander Belyaev b72bbb20c3
Fix the size of residuals, add test for jacobians. (#895)
[RFC=0011](https://github.com/googlecartographer/rfcs/blob/master/text/0011-landmarks.md)
2018-02-09 13:13:17 +01:00
Alexander Belyaev 95dbcfdf9e Serialize landmarks. (#889)
[RFC=0011](https://github.com/googlecartographer/rfcs/blob/master/text/0011-landmarks.md)
2018-02-07 10:47:39 +01:00
Alexander Belyaev 58bc1ced68
Implement GetLandmarkPoses method. (#888)
[RFC=0011](https://github.com/googlecartographer/rfcs/blob/master/text/0011-landmarks.md)
2018-02-06 18:13:31 +01:00
Alexander Belyaev 28993a8963
Use landmarks in optimization (both 2D & 3D). (#884)
[RFC=0011](https://github.com/googlecartographer/rfcs/blob/master/text/0011-landmarks.md)
2018-02-05 13:23:00 +01:00
Juraj Oršulić 9bebeea742 Serialize and deserialize trajectory builder options (#859) 2018-02-05 09:45:43 +01:00
Holger Rapp c212bbb698 Hand through intensities into the generated PLY - if they exist. (#885) 2018-02-02 18:29:18 +01:00
gaschler 9eaf960936 Configure remaining tests in bazel (#879) 2018-02-01 21:58:59 +01:00
Alexander Belyaev eed51b8bb6 Cleaning up dependencies for constraint builder & optimization problem. (#877) 2018-02-01 20:59:22 +01:00
Alexander Belyaev 8ea46857ac
Move cerec_pose.* to mapping/pose_graph. (#874) 2018-02-01 15:16:50 +01:00
Alexander Belyaev d195c77ebc
Add a 2D landmark cost function. (#868)
[RFC=0011](https://github.com/googlecartographer/rfcs/blob/master/text/0011-landmarks.md)
2018-02-01 13:39:24 +01:00
Christoph Schütte 60e9fa59fe
Implement AddImuDataHandlerTest (#872)
This PR introduces first gRPC handler test that takes advantage of new RpcHandlerTestServer.
2018-02-01 13:05:08 +01:00
Alexander Belyaev e735203a05
Extend MapById::lower_bound() to support structs with 'time' field. (#871)
[RFC=0011](https://github.com/googlecartographer/rfcs/blob/master/text/0011-landmarks.md)
2018-02-01 11:58:13 +01:00
Alexander Belyaev ab890a8e15
Move 3D landmark cost function to mapping_3d/. (#870)
[RFC=0011](https://github.com/googlecartographer/rfcs/blob/master/text/0011-landmarks.md)
2018-01-31 18:40:10 +01:00
Alexander Belyaev 0440761474
Move slerp and scaling of error to 'cost_helpers'. (#864)
[RFC=0011](https://github.com/googlecartographer/rfcs/blob/master/text/0011-landmarks.md)
2018-01-31 17:06:49 +01:00
Rodrigo Queiro ad4dc3c4d3 Bazel: build with -Wno-sign-compare (#863)
This avoids warnings for code like:

```
  CHECK_EQ(local_to_cloud_trajectory_id_map_.count(local_trajectory_id), 0);
```
2018-01-31 15:19:36 +01:00
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
Alexander Belyaev 8316444319
Store landmark observations as LandmarkNodes in PoseGraph. (#850) 2018-01-29 10:17:05 +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
Christoph Schütte edb18231b6 Add ProtoStreamWriterInterface and implement forwarding writer. (#849) 2018-01-25 15:27:50 +01:00
Alexander Belyaev 894bad397d
Rename Landmark->LandmarkObservation. (#847) 2018-01-25 12:10:30 +01:00
Alexander Belyaev aee1bc46dc
Introduce InMemoryProtoStreamReader. (#844)
* Introduce InMemoryProtoStreamReader.

* Move inmemory*.* to in_memory*.*.
2018-01-24 13:58:15 +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 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
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 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
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 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