Commit Graph

864 Commits (a9045fa3755844db139c05d3b5797e5a28e10c7f)

Author SHA1 Message Date
Christoph Schütte a5dafcfde3 Update trajectory connection in WhenDone callback. (#506)
This modifies the ConstraintBuilder interface so that Maybe*Constraint
is not responsible anymore for updating the TrajectoryConnectivity
member of SparsePoseGraph and moves this responsibility into the
WhenDone callback.
2017-09-07 14:51:19 +02:00
Wolfgang Hess 333516d955 Rename the scan queue. (#505)
This queue does not only contain scans, but also other sensor data,
e.g. from an IMU.
2017-09-07 14:04:00 +02:00
Wolfgang Hess 22f41d8e37 Store rotational histogram as part of the node data. (#503)
The compressed point cloud is no longer stored as part of the
node data to reduce memory consumption.
2017-09-07 11:01:03 +02:00
Christoph Schütte c2d9424342 Add Unittest for transform::RigidX. (#497) 2017-09-06 12:06:33 +02:00
Wolfgang Hess 4829ffee46 Allow rotating histograms in the rotational scan matcher. (#501)
This allows reusing histograms to match for different yaws.
Adds a unit test to test that rotated histograms match as expected.
2017-09-06 10:59:16 +02:00
Jihoon Lee 18d8ea75fa Use vector<map<>> for node_data. (#472) 2017-09-04 18:01:44 +02:00
Wolfgang Hess c8de50bd2b Add 'gravity_alignment' rotation to each node. (#500)
In 2D this replaces the 'tracking_to_tracking_2d' transform.
Also changes the 2D SparsePoseGraph to get the full 3D pose.
2017-09-04 16:24:26 +02:00
Wolfgang Hess 3948943b64 Use EstimateGravityOrientation() in 2D SLAM. (#499) 2017-09-04 11:14:51 +02:00
Wolfgang Hess e3b6f0afc5 Expose complete poses in 2D SLAM. (#498)
This changes the trajectory nodes to contain the complete 'pose'
including 'tracking_to_tracking_2d' applied already. Similar for
the 'zbar_ij' as it is returned by 'constraints()'. This allows
2D and 3D to be handled in the same way.
2017-09-01 15:40:21 +02:00
Wolfgang Hess 5673334f0e Tiny improvement of the gravity estimation. (#494) 2017-09-01 10:22:13 +02:00
Wolfgang Hess d3c49c8585 Pass odometry data to the 3D optimization problem. (#495)
Not yet used.
2017-09-01 09:58:24 +02:00
Wolfgang Hess 72bb24e362 Pass initial pose of nodes to the 3D optimization problem. (#496)
Also drops 'point_cloud' from the name since the pose is also
relevant to other sensor data.
2017-09-01 09:34:48 +02:00
Christoph Schütte 982f2bd2e0 Use TrajectoryNode::Data in FastCorrelativeMatcher. (#493)
* Use TrajectoryNode::Data in FastCorrelativeMatcher.
2017-08-31 15:10:48 +02:00
jie e2c67a7bde Fix Lint and ClangTidy warnings. (#485) 2017-08-31 13:39:47 +02:00
Wolfgang Hess 3215035c1c Add thread annotation to LogResidualHistograms(). (#492) 2017-08-31 12:26:31 +02:00
Mac Mason b54ca0cca6 Fix Rigid2 and Rigid3 to default to an identity transform. (#491) 2017-08-31 11:32:04 +02:00
Christoph Schütte 06e9112bc8 Unify GlobalTrajectoryBuilder across 2D and 3D (#489)
This PR unifies GlobalTrajectoryBuilder across 2D and 3D by templating
it with the LocalTrajectoryBuilder and the SparsePoseGraph. It thus
includes small changes to interfaces in LocalTrajectoryBuilder and
SparsePoseGraph.
2017-08-30 16:34:26 +02:00
Wolfgang Hess 3c22c8253a Refactoring: Do not pass 'constant_data' in pieces. (#488)
Also removes the no longer used range data from trajectory nodes
in 2D.
2017-08-30 14:22:12 +02:00
Wolfgang Hess 094b5a4d93 Template dispatching of sensor data. (#484)
This reduces the amount of code that needs to be written when a
new type of sensor data is introduced by a tiny bit.

Rangefinder data is not yet following this pattern.
2017-08-28 15:43:26 +02:00
Wolfgang Hess a7fe8bd2ab Add filtered point cloud to TrajectoryNode::Data for 2D. (#483) 2017-08-28 11:17:53 +02:00
jie 42d8a8f005 Add filtered point clouds to TrajectoryNode::Data for 3D. (#482) 2017-08-25 16:56:50 +02:00
jie 0837d4b228 Add fixed frame pose constraints to 3D problem. (#480) 2017-08-25 15:26:19 +02:00
jie 449799719f Extract rotation parameterization to a separate file. (#479) 2017-08-25 12:06:22 +02:00
Christoph Schütte 96b71e227f Add histograms for pose residuals (#478)
* WIP Add histograms for pose residuals

* Address reviewers comments

* Address more comments.
2017-08-25 11:39:56 +02:00
jie 2fd2e86351 Add fixed frame pose weight into optimization problem options. (#477) 2017-08-24 15:40:48 +02:00
jie 14977f73f1 Add fixed frame pose data to the 3D optimization problem. (#476) 2017-08-24 15:02:23 +02:00
Wolfgang Hess a239b71a6e Dynamic dispatch of sensor::Data. (#475)
This ensures at compile time that all types of data are handled,
and only keeps the data needed for each individual type.
2017-08-24 14:17:51 +02:00
jie 0671e8835e Add interface to process fixed frame pose, e.g. GPS. (#471) 2017-08-24 12:49:03 +02:00
Wolfgang Hess e78e2cb5ad Extract PoseEstimate into its own file. (#474)
This is to remove the dependency of GlobalTrajectoryBuilderInterface
on the TrajectoryBuilder.
2017-08-24 12:04:39 +02:00
Wolfgang Hess f0e1dab031 Add a histogram of low resolution scores for 3D. (#473) 2017-08-24 09:28:12 +02:00
Wolfgang Hess 4d11a226ff Expose low resolution matching scores. (#470)
This is needed in preparation of adding a low resolution score histogram.
2017-08-23 17:48:49 +02:00
Jihoon Lee 2dd2d6f448 Use vector<map<>> instead of vector<deque> for submap_data. (#422) 2017-08-23 12:16:42 +02:00
zjwoody 2e53586818 Also check low resolution match for 3D loop closure. (#468)
Related to #369.
2017-08-22 17:29:20 +02:00
Wolfgang Hess 297e9cc02d Remove unused argument. (#466) 2017-08-22 12:22:41 +02:00
zjwoody ac693f3e04 Use separate voxel filter options for 3D loop closure. (#465) 2017-08-21 18:01:23 +02:00
Damon Kohler edfd6ac8d7 Also log the IMU correction as a quaternion. (#463) 2017-08-21 17:26:48 +02:00
Moritz Münst 0ef372d584 Use odometry in 2D pose graph optimization. (#456) 2017-08-21 15:12:00 +02:00
Wolfgang Hess bcde3b45b0 Tiny cleanup of TransformInterpolationBuffer. (#462) 2017-08-18 16:19:50 +02:00
Wolfgang Hess 14d868869f Add slides from yesterday and next date. (#461) 2017-08-18 12:06:53 +02:00
Wolfgang Hess c29fec3dd0 Fix colors in the X-ray points processor. (#460)
mean_..._in_column was broken in #423.
2017-08-17 18:07:33 +02:00
Wolfgang Hess 9498cc90ca Estimate angular velocities from odometry. (#458)
If no IMU is available we will now use odometry to estimate
angular velocities if available instead of the last poses.

Fixes #453.
2017-08-16 16:55:39 +02:00
Wolfgang Hess 0c6d6979c4 Fix header. (#457)
RegisterBuiltInPointsProcessors() declaration was broken in #455.
2017-08-16 16:22:42 +02:00
zjwoody ba6f782949 Fix ClangTidy warnings. (#455) 2017-08-16 15:21:04 +02:00
Wolfgang Hess 11dbdf91b9 Remove unused code and option for odometry states. (#451) 2017-08-11 17:38:48 +02:00
Wolfgang Hess e79a918989 Use PoseExtrapolator in the 3D trajectory builder. (#450)
This replaces the Predict() logic in the 3D trajectory builder.
2017-08-11 17:13:28 +02:00
Wolfgang Hess 73b0e5e20a Use PoseExtrapolator in the 2D trajectory builder. (#448)
This replaces the Predict() logic in the 2D trajectory builder.
2017-08-11 12:38:34 +02:00
Wolfgang Hess 6ebfa50291 Use odometry to extrapolate linear motion. (#443) 2017-08-08 16:30:53 +02:00
Wolfgang Hess 8732e43f16 Add sensor::OdometryData. (#442) 2017-08-08 14:52:47 +02:00
Wolfgang Hess f60b2cbb16 Pass IMU data as sensor::ImuData. (#441) 2017-08-08 14:27:08 +02:00
Wolfgang Hess eb53b70fec Towards localization in 3D. (#438)
Adds loading maps to 3D, deserializes submaps and supports trajectories
without any node. Still no trimming support.
2017-08-02 14:17:50 +02:00