Commit Graph

340 Commits (2fd2e8635126dab092315192f426246cab423cfc)

Author SHA1 Message Date
Wolfgang Hess 78bd37ec26 Unify 2D/3D range data in trajectory nodes. (#396)
Since we only convert compressed range data to protos, we remove the
unused code to serialize (non-compressed) range data which should also
not be used in the future.
2017-07-07 17:07:04 +02:00
Wolfgang Hess 5378ee2adc Serialize range data. (#395)
We compress 2D range data before serialization to reduce
output size.

Related to #253.
2017-07-07 15:39:55 +02:00
Wolfgang Hess 94a848cd46 Rename ScanId to NodeId in the serialization. (#394)
This is consistent with the naming in the C++ structs.
2017-07-07 13:58:23 +02:00
Holger Rapp 00e3d33e43 Add slides from yesterday and next date. (#393) 2017-07-07 13:28:22 +02:00
Brandon D. Northcutt f7af7ae238 Add serialization of compressed range data. (#334) 2017-07-07 12:26:36 +02:00
Jihoon Lee 75d5b7a453 Check imu_data array size before access (#392) 2017-07-06 14:32:45 +02:00
Moritz Münst 3f4d795c3e Add pure localization parameter to trajectory builder options. (#389) 2017-07-05 16:55:06 +02:00
Wolfgang Hess 9042450aaf Fix initial pose of loaded submaps. (#391)
PAIR=SirVer
2017-07-05 16:24:02 +02:00
Wolfgang Hess 3819dd3806 Use an Eigen::AlignedBox to track known cells. (#388)
PAIR=SirVer
2017-07-05 15:05:46 +02:00
Holger Rapp 3346474963 Grow the ProbabilityGrid as needed instead of preconfiguring its size. (#387)
This removes the 'half_length' option.

PAIR=wohe
2017-07-05 14:17:04 +02:00
Holger Rapp a313448bf0 Change CastRays to directly take the ProbabilityGrid. (#386)
PAIR=wohe
2017-07-05 13:39:44 +02:00
Holger Rapp 611f244d7a Remove HybridGrid slicing into a ProbabilityGrid. (#385)
This code is currently unused. The feature of slicing a HybridGrid into a Probability grid could be useful to for example collect a map in 3D, then slice the 3D data to create a 2D map. There are simpler ways to implement this, especially in the context of the assets_writer_main.

PAIR=wohe
2017-07-05 13:17:20 +02:00
Jihoon Lee 1e6723e214 Move ImuData to sensor, add ImuData proto. (#381) 2017-07-05 12:28:40 +02:00
Holger Rapp 9b48ba5ff4 Remove unused code. (#384) 2017-07-05 12:16:29 +02:00
Wolfgang Hess 7434e96369 First rough implementation of loading a map. (#382)
This implements loading of serialized maps in 2D:
We insert all submaps at the serialized optimized pose into
the pose graph and remove their poses from the optimization.

Related to #197 and #315.
2017-07-04 17:20:13 +02:00
Wolfgang Hess 31f77a01d2 Serialize submaps. (#380) 2017-07-04 12:11:54 +02:00
Brandon D. Northcutt 5396156968 Submap serialization support. (#376) 2017-07-03 17:59:55 +02:00
Wolfgang Hess 03b9285034 Add support for serializing to a proto stream. (#379)
Also changes the ground truth tools to read from such a file.

This resolves #335. Related to #253.
2017-07-03 15:23:15 +02:00
Wolfgang Hess 54bd81a78b Remove UKF related code and configuration. (#378) 2017-06-30 13:19:13 +02:00
Wolfgang Hess 17a22edebc Change local 3D SLAM to not use a UKF. (#375)
This follows the 2D local SLAM in implementing a simple
constant velocity model and allows integrating odometry and
rotation information from an IMU.
2017-06-30 11:49:22 +02:00
Damon Kohler f765e55ea9 Use multi-res scan matching for loop closures too. (#374)
Improves loop closure scan matcher refinement.
2017-06-30 09:30:09 +02:00
Wolfgang Hess 955e190166 Add IMU orientation correction to the pose graph optimization. (#361)
Orientation of the IMU, most importantly pitch, is crucial to correctly
track changes in altitude. Each trajectory gets optimization variables
to correct for small errors in the IMU orientation.

Also adds separate gravity constants for each trajectory. The idea is
that different trajectories might use different hardware and slightly
disagree about the strength of gravity.

PAIR=damonkohler
2017-06-28 18:12:24 +02:00
Wolfgang Hess 19da0ab7c8 Gravity align in local 3D SLAM. (#373) 2017-06-28 16:17:18 +02:00
Wolfgang Hess ffc939706d Rename the KalmanLocalTrajectoryBuilder. (#372) 2017-06-28 15:32:43 +02:00
Wolfgang Hess e4e22e9f26 Remove the LocalTrajectoryBuilderInterface in 3D. (#371) 2017-06-28 14:57:37 +02:00
Holger Rapp 471bcb6207 Delete SubmapData from trimmed submaps in the OptimizationProblem. (#366)
Related to #283.
2017-06-28 12:51:09 +02:00
Wolfgang Hess f88fcec851 Remove the unused OptimizingLocalTrajectoryBuilder. (#368)
It has not been used for a long time and has to be replaced by
a better implementation.
2017-06-27 15:44:46 +02:00
Wolfgang Hess 010fefc204 Fixes the previous pose in local 3D SLAM. (#367)
This bug was introduced in #294.

PAIR=damonkohler
2017-06-27 11:53:57 +02:00
Holger Rapp d8eb94b4a9 Delete NodeData and ImuData from trimmed submaps in the OptimizationProblem (#364)
Related to #283.
PAIR=wohe
2017-06-26 16:38:08 +02:00
Moritz Münst 4c3059e088 Improve code comments. (#243) 2017-06-26 14:32:44 +02:00
Wolfgang Hess 2df8bcde61 Remove unused 'imu_gravity_variance' option. (#363) 2017-06-26 13:23:58 +02:00
Holger Rapp 9464b38320 Consistency fix: trajectory_index -> trajectory_id. (#360) 2017-06-26 10:02:51 +02:00
Holger Rapp 7f4f78e451 Fix README formatting. (#359) 2017-06-23 15:48:44 +02:00
Holger Rapp ff37b0bb7d Remove output_debug_images. (#358)
This is now better done by RViz. This also gets rid of the dependency on webp.
2017-06-23 14:53:04 +02:00
Holger Rapp 10318d920e Add slides from yesterday and next date. (#357)
Closes #356.
2017-06-23 13:58:43 +02:00
Wolfgang Hess 9fbb65084b Exclude trimmed submaps from the pose graph serialization. (#354)
Related to #283.
2017-06-21 17:57:08 +02:00
Wolfgang Hess 432cd5dcd3 Delete data of trimmed submaps. (#353)
This is related to #283.

PAIR=SirVer
2017-06-21 16:36:54 +02:00
Juraj Oršulić 0c7b3ee596 Mitigate googlecartographer/cartographer_ros#385 (#351)
Move set_and_check before finding Ceres, because on Ubuntu Zesty,
during finding Ceres, PACKAGE_PREFIX_DIR is overwritten by Eigen.
2017-06-21 15:06:51 +02:00
Holger Rapp 9646b31145 Move GetSubmapData from GlobalTrajectoryBuilder into SparsePoseGraph. (#352)
- Adds a function to query all SubmapData from the SparsePoseGraph.
- Changes MapBuilder::SubmapToProto to take a SubmapId.
- Remove num_submaps().
2017-06-21 14:21:23 +02:00
Holger Rapp 16636cd4e1 Remove friends declaration in Submap. (#350) 2017-06-21 12:49:44 +02:00
Wolfgang Hess 0fbdf6d0ec Add ground truth proto support for trajectory evaluation. (#349)
This adds support of GroundTruth protos in addition to
text files.

Fixes the ground truth generation code to skip outliers.

Improves the ground truth generation to use expected
relative poses instead of the solution.

Writes constraints including the roll and pitch from the
node for 2D SLAM, so that constraints correctly capture
the expected transform between the 3D poses of scan and
submap in 2D SLAM.

Related to #239.
Related to #310.
2017-06-21 11:33:30 +02:00
Holger Rapp 58bb70f53a Change Submaps to only track the two active Submaps. (#348) 2017-06-20 18:21:42 +02:00
Holger Rapp f242b5242a Use shared_ptr<> for Submap objects. (#347)
Also remove `finished_submap` and `matching_submaps`. These are now
implicit.

Related to #283.

PAIR=wohe
2017-06-19 17:23:48 +02:00
Holger Rapp c8f02264a4 Removes GetSubmapId from SparsePoseGraph. (#346)
PAIR=wohe
2017-06-19 15:46:47 +02:00
Holger Rapp 5c389cdf4a Remove mapping::Submaps. (#345)
PAIR=wohe
2017-06-19 15:24:06 +02:00
Holger Rapp b944b19159 Make use of Submap in 2D similar to 3D. (#343)
Use mapping_2d::Submap instead of mapping::Submap in 2D.
Use `finished()` instead of `finished_probability_grid()` in 2D.

PAIR=wohe
2017-06-19 14:43:10 +02:00
Damon Kohler 8d94fe85e9 Prepare 0.2.0 release (#344) 2017-06-19 13:22:57 +02:00
Damon Kohler 1c1776a967 Add instructions for releasing. (#342) 2017-06-19 12:00:12 +02:00
Wolfgang Hess 5fa6abe84b Adds a tool to generate ground truth data. (#340)
Fixes #310. Not yet tested.
2017-06-16 17:38:13 +02:00
Wolfgang Hess 12c3795134 Remove direct access to Submaps from the outside. (#339)
PAIR=SirVer
2017-06-16 10:47:11 +02:00