gaschler
a3b746ff67
Use Task in ConstraintBuilder3D ( #1119 )
2018-04-27 22:14:19 +02:00
gaschler
c46fe073b4
Use Task in ConstraintBuilder2D ( #1118 )
2018-04-26 12:33:36 +02:00
Christoph Schütte
5356bdf9a8
Rename metrics since slashes are not allowed in Prometheus ( #1115 )
2018-04-25 17:34:30 +02:00
Kevin Daun
41f17e57cd
Introduce Grid and RangeDataInserter ( #1108 )
...
- Introduce `RangeDataInserterInterface` as common interface for all range data inserters
- Introduce a minimal `GridInterface` as a base for a common interface for 2D and 3D grids
- Rename `RangeDataInserter2D` to `ProbabilityGridRangeDataInserter2D`
- Move grid generation logic from `Submap2D` to `ActiveSubmaps2D`
- Update proto and configuration structure to mirror the code structure - backwards compatibility is maintained
- Step towards [RFC 0019](https://github.com/googlecartographer/rfcs/blob/master/text/0019-probability-grid-and-submap2d-restructuring.md )
2018-04-25 16:51:30 +02:00
gaschler
89ac5cbabf
Test GlobalSlam3D ( #1114 )
2018-04-25 15:00:13 +02:00
Martin Schwörer
d9ada58710
Removed check for existence of first submap of first trajectory in pose graph optimization ( #1099 )
...
Removed check for existence of first submap of first trajectory.
This check is equivalent to the original implementation which got changed in [#584 ](https://github.com/googlecartographer/cartographer/pull/584/files )
2018-04-24 16:32:31 +02:00
Alexander Belyaev
3dd37da51b
Move constraint_builders together. ( #1103 )
2018-04-23 13:49:25 +02:00
gaschler
3b5830745e
Test ConstraintBuilder2D/3D ( #1100 )
2018-04-23 12:52:20 +02:00
Kevin Daun
d29153a744
Replace ProbabilityGrid in Submap2D by Grid2D ( #1097 )
2018-04-20 22:58:46 +02:00
Alexander Belyaev
e2623991da
Return only optimized & finished submaps for trimmer. ( #1104 )
2018-04-20 22:19:16 +02:00
Alexander Belyaev
4aa2af23de
Move files related to optimization to optimization/. ( #1102 )
2018-04-20 20:52:17 +02:00
Alexander Belyaev
eebced5e16
Clean-up colliding 'SubmapData' names. ( #1096 )
2018-04-20 18:15:37 +02:00
Alexander Belyaev
8816d5710c
Invoke trimmer only when there are enough added submaps. ( #1095 )
2018-04-20 09:05:05 +02:00
Alexander Belyaev
ab7402ffbb
Use references for constraints & nodes in TrimmingHandle. ( #1091 )
2018-04-19 17:09:16 +02:00
Kevin Daun
20c80068b2
Base ConstraintBuilder2D on correspondence cost function ( #1088 )
...
- Base `ConstraintBuilder2D` and `FastCorrelativeScanMatcher2D` on correspondence cost function instead of probabilities
- No changes in the options of `ConstraintBuilder2D` and `FastCorrelativeScanMatcher2D`
- Add properties `min/max_correspondence_cost` to `Grid2D` and `proto::Grid2D`
- Provide backwards compatibility for `proto::Grid2D`
- Step towards [RFC 0019](https://github.com/googlecartographer/rfcs/blob/master/text/0019-probability-grid-and-submap2d-restructuring.md )
2018-04-19 11:59:28 +02:00
Kevin Daun
f4937b5cc6
Base ceres scan matcher on correspondence cost function ( #1085 )
...
- Base ceres scan matcher on correspondence cost function instead of probabilities
- Step towards [RFC 0019](https://github.com/googlecartographer/rfcs/blob/master/text/0019-probability-grid-and-submap2d-restructuring.md )
2018-04-19 10:24:16 +02:00
Kevin Daun
03d56871c1
Correspondence cost based probability grid ( #1081 )
...
- Store probabilities as correspondence costs
- Add conversion functions for correspondence cost values
- Step towards [RFC 0019](https://github.com/googlecartographer/rfcs/blob/master/text/0019-probability-grid-and-submap2d-restructuring.md )
2018-04-18 14:46:38 +02:00
Alexander Belyaev
23f6de46b0
Use area instead of cells count for overlapping trimmer options. ( #1080 )
2018-04-17 18:22:38 +02:00
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
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
Alexander Belyaev
a4346337bc
Address the comments for the overlapping submaps trimmer. ( #1060 )
2018-04-12 14:28:33 +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
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
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
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
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
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
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
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
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
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
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
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
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