Commit Graph

822 Commits (13d9754155f8da0b0d670c8f45d5d5f704c8e373)

Author SHA1 Message Date
Michael Grupp b5e5477f75 Fix Sphinx build warning. (#1055)
Removes 'WARNING: html_static_path entry [...] does not exist'.
2018-04-12 16:33:38 +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
gaschler e2966ca156 Do not install gmock (#1047)
Fixes the issue described in https://github.com/googlecartographer/cartographer/pull/1041.

The docker file is not to be merged, it is only here to help reproducing the issue and fix.
2018-04-11 13:48:03 +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
gaschler 895f1d61b4 Glob only files in cartographer/ (#1048)
FIXES=#1044
2018-04-10 15:14:59 +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
Christoph Schütte e8b0bfb285 Add last open house slides. (#1028) 2018-04-03 09:24:18 +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
Juraj Oršulić ae05658ff7 Work around FindGMock/Catkin target name clash (#1011)
Handle case with multiple invocations (avoid pasting ${CMAKE_THREAD_LIBS_INIT} multiple times).
Also check if target 'gmock' already exists before building GMock to avoid failures if GMock was already
find_packaged() from another subproject.

FIXES=https://github.com/googlecartographer/cartographer_ros/issues/776
2018-03-26 14:23:32 +02:00
Christoph Schütte 915ebb19a6
Use async_grpc (#1013)
Use async_grpc
2018-03-23 10:52:48 +01:00
Christoph Schütte ab1c99ab34 Update next Cartographer Open House date. (#1008) 2018-03-20 14:34:15 +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 6102f374b1
Build Ceres with C++11. (#999) 2018-03-16 13:03:57 +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