Wolfgang Hess
b2175f0d93
Remove covariance from the 3D Ceres scan matcher. ( #200 )
...
Instead of passing around fake covariances generated by the scan matcher,
we introduce appropriate values where they are needed.
2017-02-08 15:22:28 +01:00
Wolfgang Hess
b4a1021538
Formatting changes. ( #199 )
2017-02-08 14:30:38 +01:00
Holger Rapp
ddb3c890a6
Actually check that all points are colored or none. ( #192 )
2017-01-26 16:49:25 +01:00
Wolfgang Hess
97bb74157f
Remove redundant "virtual". ( #191 )
2017-01-26 13:37:02 +01:00
Holger Rapp
2dd912f5e7
Always take std::function<> by value. ( #188 )
...
Taking it by reference increases the chance of dangling references
without a significant performance gain.
2017-01-26 11:35:09 +01:00
Holger Rapp
965caf7470
Make intensities a separate channel in PointsBatch. ( #187 )
...
And add a PointsProcessor that translates from intensities to RGB.
Fixes #171 .
2017-01-24 15:08:41 +01:00
Holger Rapp
0fe51185be
Color X-Rays using the color of points. ( #185 )
...
Colorless points are considered to be black. Creating assets with
intensities will give now brighter X-Rays. I plan to fix this by adding
intensities besides colors into PointBatch and having a PointsProcessor
that converts intensities into colors.
2017-01-23 14:18:08 +01:00
Holger Rapp
92b89d12c8
Adds a PointCloudProcessor that colors points by frame_id. ( #184 )
2017-01-17 17:21:05 +01:00
Holger Rapp
99f79e3f69
Adds a FileWriter abstraction ( #182 )
2017-01-17 12:29:11 +01:00
Wolfgang Hess
1c433e6f3a
Refactor the documentation update script. ( #179 )
2017-01-10 10:43:16 +01:00
Wolfgang Hess
1477a81bfa
Tiny sparse pose graph cleanup. ( #169 )
2016-12-20 16:43:58 +01:00
Holger Rapp
628b9da6d2
Extract intensities for 2D lasers on conversion. ( #167 )
2016-12-20 16:20:00 +01:00
Damon Kohler
4e9c3d69b5
Build all our source files into a single library. ( #164 )
2016-12-20 11:24:08 +01:00
Wolfgang Hess
71c951b370
Remove the 'log_residual_histograms' option. ( #166 )
...
This option only existed in 2D. Also other refactoring to make the 2D
sparse pose graph optimization more similar to 3D.
2016-12-19 17:57:12 +01:00
Wolfgang Hess
5af133c0dd
Improve the sparse pose graph optimization. ( #165 )
...
Removes the loss function for intra-submap constraints in 3D SLAM,
as it is already done in 2D. Also removes a duplicate call to the
solver in 2D, and code cleanup.
2016-12-19 17:02:05 +01:00
Wolfgang Hess
0937f4f515
Support fixing z during 3D sparse pose adjustment. ( #161 )
...
This is in preparation of using the 3D sparse pose graph
optimization for 2D SLAM.
2016-12-14 15:32:23 +01:00
Wolfgang Hess
5bbb124b0b
Tiny namespace comment fix. ( #155 )
2016-12-06 17:53:06 +01:00
Wolfgang Hess
db45c4ef78
Determine the trajectory that is blocking progress. ( #154 )
...
When processing offline data determining which trajectory needs more
data before processing can continue is surprisingly tricky. We thus
expose this information at the map builder to avoid duplicating this
logic.
2016-12-06 17:04:45 +01:00
Wolfgang Hess
ead4d03b16
Compute the common start time per trajectory. ( #153 )
...
In the multi-trajectory case, other trajectories should not influence which
data gets dropped. This is especially the case if all trajectories are
added before any of their data. In this case, data before the start of the
last trajectory was dropped.
2016-12-06 15:22:16 +01:00
Wolfgang Hess
f3526bd252
Move the OrderedMultiQueue implementation out of the header. ( #152 )
2016-12-06 14:09:44 +01:00
Wolfgang Hess
0e826377c4
Add tool to compare to ground truth. ( #148 )
...
This computes metrics based on a SLAM result and a relations
file containing ground truth data.
2016-11-30 15:18:26 +01:00
Wolfgang Hess
51a0ec06a1
Add support for multi-trajectory to 3D SLAM. ( #146 )
2016-11-28 12:52:45 +01:00
Wolfgang Hess
318607ccd1
Add full submap scan matching in 3D. ( #145 )
2016-11-28 11:09:53 +01:00
Wolfgang Hess
88e4ea2866
Prepare 3D precomputation grid for full submap matches. ( #144 )
...
Removes an optimization to improve the bounds computed
via the precomputation grid in 3D that takes the limited
search window into account.
This is to allow reusing the same precomputation grids
for full submap matches.
2016-11-25 15:45:26 +01:00
scturtle
17a3393694
Fix `to_remove`. ( #143 )
2016-11-24 15:16:35 +01:00
Wolfgang Hess
4c9c77034b
Remove UKF-related debug output. ( #142 )
2016-11-23 14:27:36 +01:00
Wolfgang Hess
574a56bbbc
Remove the UKF from local 2D SLAM. ( #140 )
...
Changes default configuration to log loop closure matches.
2016-11-23 12:37:55 +01:00
Damon Kohler
015519cf23
Adds support for inverted LaserScan messages. ( #138 )
2016-11-21 17:28:50 +01:00
Damon Kohler
a39bbff70c
Removes odometer covariance from public API. ( #137 )
2016-11-21 12:34:52 +01:00
Damon Kohler
5136a3a81e
Removes LaserFan from public API. ( #136 )
2016-11-21 10:30:57 +01:00
Damon Kohler
c386bf050d
Renames Odometry to Odometer. ( #135 )
2016-11-21 08:27:19 +01:00
Wolfgang Hess
7dc3ab1e9e
Change dropping data before start to be idempotent. ( #133 )
...
We drop as much data from each queue as possible without changing the
start time that would be determined if we only saw the dispatched
data, i.e. we retain one piece of data not beyond the common start time.
This makes the process idempotent.
2016-11-18 12:49:33 +01:00
Wolfgang Hess
e703b1cea3
Fix multi-trajectory loop closure attempts. ( #131 )
...
Before, old scans with new submaps were always matched as if they
belong to connected trajectories.
2016-11-18 10:36:30 +01:00
Damon Kohler
3f0eeec429
Adds configuration files test. ( #129 )
2016-11-18 09:48:54 +01:00
Holger Rapp
4522fc49ad
Simplify LuaParameterDictionary. ( #132 )
2016-11-17 17:58:51 +01:00
Wolfgang Hess
8f58efe79b
Formatting fixes. ( #130 )
2016-11-17 15:46:29 +01:00
Holger Rapp
ac92dd8cbf
Support by-floor XRay generation. ( #126 )
2016-11-17 01:49:17 -08:00
Damon Kohler
c8f33ee853
Drop sensor data until progress can be made. ( #124 )
...
The sensor collator now finds a common starting time for all sensor
data. For example, this prevents us from processing arbitrarily many IMU
packets before our first scan match and makes it possible to auto pause
and resume a trajectory in the event of sensor data interruption.
2016-11-17 09:11:00 +01:00
Holger Rapp
6777654202
Adds a heuristic to detect floors in a trajectory. ( #125 )
2016-11-16 05:16:40 -08:00
Damon Kohler
a74319cf1a
Pulls out collator.cc. ( #123 )
2016-11-15 14:17:23 +01:00
Damon Kohler
8cd3178c69
Moves 2D laser options into 2D trajectory builder. ( #114 )
2016-11-15 13:24:58 +01:00
Wolfgang Hess
1de387cba9
Improvement of 2D/3D consistency and cleanup. ( #122 )
2016-11-11 14:33:06 +01:00
Wolfgang Hess
97d5cb2a8b
Remove unused Imu proto message. ( #121 )
2016-11-11 12:22:41 +01:00
Wolfgang Hess
a6aacd0647
Fix and add CHECKs when writing X-ray output. ( #120 )
...
Before the allocation was too large which resulted in excessive memory
consumption. Also adds CHECKs for the stride size and the success of the Cairo
writer function.
2016-11-08 16:14:35 +01:00
Wolfgang Hess
c80c2eaa40
Unify 2D/3D constraints. ( #119 )
...
This removes Constraint2D and instead embeds 2D constraints in a
Constraint3D which is renamed to Constraint.
2016-11-08 14:47:03 +01:00
Wolfgang Hess
3e64a803a4
Consistently name weight parameter. ( #116 )
...
All parameters scaling optimization residuals to determine relative
importance are now consistently named.
2016-10-28 16:39:45 +02:00
Damon Kohler
32b5beb225
Move single caller function to call site. ( #113 )
2016-10-28 16:27:06 +02:00
Damon Kohler
b94880c56e
Improves parameter names. ( #111 )
2016-10-28 13:26:13 +02:00
Wolfgang Hess
404bbfcc2b
Add SubmapToProto to the map builder. ( #110 )
2016-10-27 16:20:58 +02:00
Wolfgang Hess
a5b81ff159
Allow continuing after running a "final" optimization. ( #109 )
...
And a tiny cleanup of the submap visualization query.
2016-10-27 15:25:57 +02:00
Damon Kohler
a33bddd4cd
Removes unneccessary num_available_packets() API. ( #108 )
2016-10-27 13:06:49 +02:00
Damon Kohler
224b068fe9
CHECKs that all queues are finished on destruction. ( #106 )
2016-10-27 11:45:27 +02:00
Damon Kohler
15f9244577
Removes sensor packet period histogram. ( #104 )
2016-10-26 15:23:37 +02:00
Wolfgang Hess
651a7a23e7
Rename trajectory and submap visualization protos. ( #101 )
2016-10-26 08:45:52 +02:00
Wolfgang Hess
4917dd65ce
Add serialization of the sparse pose graph. ( #97 )
2016-10-25 16:56:26 +02:00
Holger Rapp
a3157239b7
Adds a voxel filtering and moving objects removing points processor. ( #99 )
2016-10-25 16:36:56 +02:00
Holger Rapp
915dbd1894
Adds a CountingPointsProcessor. ( #98 )
...
It outputs the number of points processed at its stage in the pipeline
and is useful for understanding how many points a filter removed.
2016-10-25 16:09:47 +02:00
Holger Rapp
2f42c990f6
Adds a fixed sampling points processor. ( #96 )
2016-10-25 15:37:47 +02:00
Holger Rapp
46f8883d6a
Make all 'PointProcessor's registerable with the PipelineBuilder. ( #95 )
...
Also the default instance has now knowledge of all of Cartographer's
'PointsProcessor's by default.
2016-10-25 15:18:32 +02:00
Holger Rapp
188dcb57e5
Adds a class that can build a points processing pipeline out of a Lua configuration. ( #94 )
2016-10-25 12:27:58 +02:00
Atsushi Watanabe
90e2f02e9d
Add a PCD writing points processor. ( #92 )
2016-10-25 12:11:44 +02:00
Damon Kohler
05adba7c51
Improves sensor data queue logging. ( #93 )
2016-10-25 11:09:08 +02:00
Holger Rapp
3986ad5328
Moving a temporary prevents copy elision. ( #91 )
2016-10-20 19:11:29 +02:00
Holger Rapp
695c303c56
Fix layering check for headers. ( #90 )
2016-10-20 18:48:52 +02:00
Wolfgang Hess
4d81b58a39
Remove unused code. ( #89 )
2016-10-20 13:54:12 +02:00
Wolfgang Hess
5b16f4bcb6
Simplify 3D visualization code. ( #88 )
...
Removes the non-const Submaps accessor.
Adds -Werror=missing-braces.
2016-10-20 11:29:12 +02:00
Holger Rapp
4b7e2efbd9
Add code to serialize a trajectory to proto. ( #87 )
2016-10-20 10:53:43 +02:00
Holger Rapp
f2916143ef
Adds a PointProcessor that writes ASCII files. ( #86 )
...
The files will just contain XYZ points in a file of their own. This is
useful for example as interop with AutoCAD.
2016-10-20 09:28:18 +02:00
Wolfgang Hess
3cf59a0266
Collate sensor data in the MapBuilder. ( #85 )
2016-10-19 17:25:44 +02:00
Wolfgang Hess
e566bb73f5
Adds CollatedTrajectoryBuilder. ( #82 )
2016-10-19 16:29:26 +02:00
Wolfgang Hess
d4e04a3cda
Unify to AddLaserFan for both 2D and 3D. ( #81 )
2016-10-19 15:02:31 +02:00
Holger Rapp
9031f0533a
Adds a PLY writing points processor. ( #80 )
2016-10-19 14:03:05 +02:00
Holger Rapp
4a9116a58e
PointsProcessor can now ask for another pass over the data. ( #69 )
...
* PointsProcessor can now ask for another pass.
* Added MinMaxFilteringPointsProcessor to have a user for RemovePoints.
2016-10-19 13:11:13 +02:00
Damon Kohler
a7663f6c15
Pulls sensor ID out of sensor::Data. ( #77 )
2016-10-18 17:37:40 +02:00
Damon Kohler
fddb1e32a0
Moves time into sensor::Data. ( #76 )
2016-10-18 16:07:18 +02:00
Damon Kohler
653ce1706a
Detemplatize OrderedMultiQueue. ( #75 )
2016-10-18 15:09:29 +02:00
Atsushi Watanabe
ccc26a7f4f
Add missing <vector> include. ( #74 )
2016-10-18 14:35:45 +02:00
Wolfgang Hess
4d361abe41
Extract SpaCostFunctions into their own files. ( #71 )
2016-10-17 16:14:24 +02:00
Damon Kohler
f798805c4f
Removes templating on data type. ( #68 )
2016-10-17 14:47:48 +02:00
Damon Kohler
2eca021003
Moves SensorCollator into sensor package. ( #58 )
2016-10-17 10:18:17 +02:00
Holger Rapp
c2aed53ce8
Adds a points processing pipeline and a XRay creator. ( #66 )
...
- Adds cairo as required dependency.
- Adds an 'io' module.
2016-10-14 15:14:46 +02:00
Wolfgang Hess
098349f67e
Rename LaserFan3D to LaserFan. ( #64 )
2016-10-14 12:06:54 +02:00
Wolfgang Hess
9020f71605
Remove LaserFan in favor of LaserFan3D. ( #62 )
...
LaserFan3D will be renamed in the next PR.
2016-10-14 11:26:53 +02:00
Wolfgang Hess
cac501cdb1
Always use the 3D voxel filter. ( #61 )
2016-10-13 18:56:41 +02:00
Wolfgang Hess
5aad2d6feb
Change 2D scan matching to use 3D point clouds. ( #60 )
2016-10-13 17:52:05 +02:00
Wolfgang Hess
9006fb6fb1
Show the unprojected point cloud in 2D SLAM. ( #59 )
...
We now project to 2D later in 2D SLAM, so that the roll and pitch
applied to the laser fan in visible in the visualization.
2016-10-13 17:16:32 +02:00
Wolfgang Hess
7d93ac3302
Simplify the conversion of LaserScan to LaserFan3D. ( #57 )
2016-10-13 15:09:36 +02:00
Damon Kohler
518850999f
Moves SensorData struct into Cartographer. ( #55 )
2016-10-13 14:17:28 +02:00
Wolfgang Hess
cc7cc6f72b
Move the ImuTracker and OdometryStateTracker to mapping. ( #50 )
...
Both are useful without a UKF.
2016-10-13 10:51:12 +02:00
Holger Rapp
eeb17bf055
Adds google_binary to create installable binaries. ( #43 )
...
- Do not link in Ceres if gflags or glog is used, but still rely on ceres
to find those libraries for us.
- Update CMakeLists with new settings.
2016-10-11 15:18:59 +02:00
Damon Kohler
8f5fc98188
Improves logging, fixes #94 . ( #41 )
2016-10-11 11:22:33 +02:00
catskul
045f6a7522
Pass Eigen arguments by const reference ( #38 )
...
Fixes #35 .
2016-10-11 09:57:41 +02:00
Wolfgang Hess
d2962c004f
Remove the 'also_match_to_new_submaps' option. ( #29 )
...
Instead, using a different constraint_builder.sampling_ratio is preferred.
2016-09-30 16:00:10 +02:00
Wolfgang Hess
e526a7022f
Remove covariance computation from branch-and-bound. ( #27 )
...
These covariances were only used in 2D and are only an estimate.
Following 3D, we change 2D to use the (local) covariance computed
using Ceres.
2016-09-23 14:27:19 +02:00
Wolfgang Hess
14355a91a1
Remove dead code. ( #26 )
2016-09-22 17:53:32 +02:00
Wolfgang Hess
0796d50b00
Removes max_covariance_trace option. ( #25 )
...
This option is no longer really useful to predict outliers.
It is removed and other parameters scaled to minimize the change
in behavior. And related cleanup.
2016-09-22 11:35:47 +02:00
Damon Kohler
83a29df102
Renames expect_imu to use_imu. ( #24 )
2016-09-08 16:36:05 +02:00
Damon Kohler
fc166fdefa
Adds MapBuilder and cleans up some configurations. ( #23 )
2016-09-08 16:21:25 +02:00
Wolfgang Hess
5b20df7fcb
Fix a bug introduced in the recent clean up. ( #13 )
2016-08-26 17:40:37 +02:00
Wolfgang Hess
817dc884d5
Clean up and simplify MapLimits. ( #12 )
...
MapLimits no longer keeps redundant data.
2016-08-25 15:40:05 +02:00
Wolfgang Hess
4c6a2fcb28
Clean up of XYIndexRangeIterator and MapLimits. ( #10 )
2016-08-24 18:01:14 +02:00
Damon Kohler
b50f1a6e96
Adds rate timer. ( #8 )
2016-08-24 15:37:30 +02:00
Wolfgang Hess
afa0cef31d
Clean up xy_index.h. ( #9 )
...
Removes and simplifies code from free standing functions in xy_index.h.
2016-08-24 15:33:13 +02:00
Damon Kohler
cf9e365bc2
Improved logging for loading Lua configurations. ( #4 )
2016-08-23 01:31:36 -07:00
Wolfgang Hess
6e56578394
Rename to local/global map frame. ( #2 )
...
Changes the confusingly named GetOdometryToMapTransform() function
to GetLocalToGlobalTransform(), since it is transforming from the
local SLAM map frame to the global SLAM map frame.
2016-08-10 12:09:52 +02:00
Damon Kohler
269c28cb0c
Moves the contents of the cartographer subdirectory up one level.
2016-08-03 12:48:29 +02:00
Damon Kohler
166f2568bc
Initial import of Cartographer codebase.
2016-08-02 09:12:42 +02:00