Commit Graph

253 Commits (63fd497e0f61d0523380045c7b62d90ff3401d6d)

Author SHA1 Message Date
Wolfgang Hess e479382ecc Change GetAllSubmapData() to MapById. (#597) 2017-10-17 16:03:16 +02:00
Christoph Schütte 3d4650d675 Remove trimmed() from TrajectoryNode (#596) 2017-10-17 15:36:07 +02:00
Wolfgang Hess e5f9815f67 Change submap_data_ in pose graph to MapById. (#593)
* Change submap_data_ in pose graph to MapById.
2017-10-17 13:13:37 +02:00
Christoph Schütte fdda1dd091 Switch trajectory_nodes in SPG2D to MapById. (#592) 2017-10-17 11:48:23 +02:00
Wolfgang Hess bcd1be92b1 Adds a bit of terminology documentation. (#591)
Changes code to match the new documentation.
2017-10-17 10:07:54 +02:00
Wolfgang Hess 76ed37768f Validate odometry and fixed frame poses. (#588) 2017-10-16 15:59:56 +02:00
Christoph Schütte 6b447c4577 Add FindChecked to MapById. (#586)
* Add FindChecked to MapById.
2017-10-16 14:15:53 +02:00
Christoph Schütte 5ed19c15ab Introduce proxy object for iteration over trajectory ids. (#585)
* Introduce proxy object for iteration over trajecotry ids.
2017-10-16 12:52:53 +02:00
Christoph Schütte 006db45910 Introduce proxy object for range based loops over nodes of trajectory. (#583) 2017-10-13 16:44:31 +02:00
Wolfgang Hess 4ab4817104 Add MapById<>::ConstIterator::operator->(). (#580) 2017-10-12 16:15:12 +02:00
Wolfgang Hess cb41777b9e Introduces mapping::MapById in the 2D pose graph for submaps. (#578)
PAIR=cschuet
2017-10-12 11:58:59 +02:00
Wolfgang Hess ea55e837d2 Introduces mapping::MapById in the 2D optimization problem. (#577)
PAIR=cschuet
2017-10-09 17:33:12 +02:00
Wolfgang Hess 2434e7e40e Fix crashing bug in localization. (#575)
Now that we deserialize trajectory nodes, we need to make sure
that the global matcher sampler is added for the map trajectory.
2017-10-06 17:01:04 +02:00
Juraj Oršulić 2f332eca28 Deserialize trajectory nodes. (#569) 2017-10-06 16:16:25 +02:00
Juraj Oršulić bd8a2e6a92 Store node initial pose in constant data. (#568) 2017-10-05 16:10:12 +02:00
Wolfgang Hess 51f5a18462 Fix formatting. (#561) 2017-10-04 15:58:48 +02:00
Juraj Oršulić aaaf5ac546 Rename serialization NodeData proto for consistency. (#540)
node_data should be a member of a node, not the other way around.
2017-10-04 14:13:18 +02:00
Wolfgang Hess 7d0e72dac2 Fix some nits. (#536)
Most importantly makes mapping_2d::SparsePoseGraph::GetLatestScanTime()
private.
2017-09-28 09:21:07 +02:00
Jihoon Lee 259e22a5fc Use oldest and newest instead of last two odometry data. (#530) 2017-09-14 16:10:03 +02:00
Christoph Schütte 5896ead32e Introduce timeout for global constraints. (#517)
This PR introduces a new option that specifies the number of seconds
after which global matcher searches are performed if no recent global
constraints have been found between the submap's and the node's
trajectory.
2017-09-14 12:11:54 +02:00
gaschler 31b5a6f1a9 Allow multiple SubmapTextures. (#519)
This changes submap_visualization.proto that multiple textures can be provided.
As of now, the first texture is generated from the high resolution
grid, which is the same as before.
The second texture is generated from the low resolution grid.
2017-09-13 15:47:02 +02:00
Wolfgang Hess 57d53b6d53 Remove unused code. (#522)
Removes FindConnectedComponent() from a proto message.
2017-09-12 18:07:18 +02:00
Christoph Schütte 24c2b499dd Introduce TrajectoryConnectivityState. (#513)
* Introduce TrajectoryConnectivityState.

This class will be used to track the connectivity state (including the
last connection time) between pairs of trajectories.
2017-09-11 14:43:55 +02:00
Christoph Schütte 1a367f0549 Rename TrajectoryConnectivity ConnectedComponents. (#510)
* Rename TrajectoryConnectivity ConnectedComponents.
2017-09-07 17:11:06 +02:00
Christoph Schütte fa306d03ec Remove reverse_connected_components. (#507)
Remove reverse_connected_components from SparsePoseGraphs and update
TrajectoryConnectivity to return "connected" for the reflexive case even
if trajectories are unknown.
2017-09-07 15:58:30 +02:00
Wolfgang Hess 476d156f66 Serialize trajectory node data. (#504)
Related to #253.
2017-09-07 15:29:12 +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
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 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
jie e2c67a7bde Fix Lint and ClangTidy warnings. (#485) 2017-08-31 13:39:47 +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 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
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
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 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
zjwoody ac693f3e04 Use separate voxel filter options for 3D loop closure. (#465) 2017-08-21 18:01:23 +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 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 6ebfa50291 Use odometry to extrapolate linear motion. (#443) 2017-08-08 16:30:53 +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
Wolfgang Hess 5369c3ced1 Use the ImuTracker in the PoseExtrapolator. (#436) 2017-08-01 10:44:32 +02:00
Wolfgang Hess b28bc3bc9e Extract velocity estimation from poses into a function. (#435) 2017-07-31 12:31:28 +02:00
Wolfgang Hess a6d94c07cf Use IMU data when extrapolating poses if available. (#434) 2017-07-28 17:12:12 +02:00
Wolfgang Hess 6035f63860 Add a extrapolator for poses. (#430)
This will be used in Cartographer ROS to extrapolate poses for tf.

PAIR=damonkohler
2017-07-26 15:21:05 +02:00
Jihoon Lee 30f7de1a32 fix num submaps in trimmer_test (#424) 2017-07-26 11:14:22 +02:00
Wolfgang Hess 167047173c Tiny improvement of HybridGrid::ToProto(). (#401)
Makes it a member function and adds a check for left over
update markers.
2017-07-11 09:26:07 +02:00
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
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 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
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
Holger Rapp 9464b38320 Consistency fix: trajectory_index -> trajectory_id. (#360) 2017-06-26 10:02:51 +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
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 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 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
Wolfgang Hess 12c3795134 Remove direct access to Submaps from the outside. (#339)
PAIR=SirVer
2017-06-16 10:47:11 +02:00
Wolfgang Hess c1e1d03636 Support extrapolating a single submap transform. (#338) 2017-06-14 15:10:36 +02:00
Holger Rapp cff0c73857 Converted Submap from struct to class. (#333) 2017-06-12 17:28:38 +02:00
Holger Rapp 2d75f4ef56 Move SubmapToProto from Submaps -> Submap. (#332)
PAIR=wohe
2017-06-12 16:27:51 +02:00
Holger Rapp 521666ce55 Trim node data. (#331)
Also, remove trimmed nodes from proto serialization.

PAIR=wohe
2017-06-12 15:20:49 +02:00
Holger Rapp f68da37c6e Drop trajectory_id from TrajectoryNode. (#330)
PAIR=wohe
2017-06-12 14:28:16 +02:00
Wolfgang Hess f07f888dab Remove the deque for constant node data. (#326)
This is needed in preparation of deleting nodes.
Related to #283.
2017-06-09 16:53:49 +02:00
Holger Rapp c1d4d08a1d Move AddProbabilityGridToResponse to the Submap object. (#318)
Working towards a thread-safe Submap object. Related to #283.

PAIR=wohe
2017-06-07 15:13:56 +02:00
Wolfgang Hess b3b9735a4b Remove trimmed constraints. (#317)
Still missing marking submaps and nodes as trimmed.

PAIR=SirVer
2017-06-07 14:23:58 +02:00
Wolfgang Hess a66147f131 Adds a PureLocalizationTrimmer. (#316)
Related to #315.
2017-06-07 12:39:04 +02:00
Wolfgang Hess c90b887bfb Adds API to add trimmers. (#314)
This is related to #283. First to be implemented for
pure localization and 2D SLAM.

PAIR=SirVer
2017-06-06 17:07:30 +02:00
Wolfgang Hess 56529e5968 Tiny cleanup of the MapBuilder. (#313)
GetTrajectoryConnectivity() was a convenience function.
Instead, sparse_pose_graph() should be used to get access to
GetConnectedTrajectories().
2017-06-06 15:20:10 +02:00
Wolfgang Hess 565e9c3eff Simplify the handling of weights in the optimization problem. (#309)
This replaces the 3x3 (2D) or 6x6 (3D) matrix by the weights
for the translational and rotational component. The matrices
only contain these values now anyway, so this simplifies
the code and increases performance.

Also removes 2D from the UKF implementation which has not been
used for quite some time now.
2017-06-01 17:03:49 +02:00
Wolfgang Hess 92f154f561 Also use fixed covariances in 3D SLAM. (#308)
This follows #307.
2017-06-01 15:04:07 +02:00
Wolfgang Hess a2e52f81cf Remove 2D scan matcher covariances. (#307)
This replaces the scaled covariances derived from the Ceres
scan matcher by directly configurable weights. Using covariances
did not provide the expected benefit, and replacing the scaling
matrix by two values will allow a faster evaluation of the cost
function in the future.
2017-05-31 11:56:32 +02:00
Wolfgang Hess 515db3b4a9 Minor fixes. (#303)
Extract mapping_2d::CreateLocalTrajectoryBuilderOptions() into its own file.
Loop initialization fix in the trajectory_connectivity_test.
Thread safety fixes in sparse_pose_graph.
2017-05-22 14:55:05 +02:00
Wolfgang Hess 2d416589a7 Adds a NestedVectorsById<> class template. (#300) 2017-05-19 16:58:21 +02:00
Wolfgang Hess 56fc2a9a92 Fix 3D SLAM loop closure issues. (#296)
3D submaps are now oriented approximately gravity aligned.
This is so that accumulating error in the local SLAM frame is
no longer a problem for finding loop closures. It also ensures
that the z search window size is approximately in the gravity
direction.

We now also pass an estimate of gravity orientation when doing
multi-trajectory matches. Otherwise trajectories starting with
different orientation relative to gravity could not be connected.

The gravity alignment is currently derived from the ImuTracker.
It might be possible to further improve on this by using the
latest gravity direction from the optimized poses.
2017-05-18 16:55:11 +02:00
Holger Rapp 5aa968748e Sparse pose graph no longer uses Submaps* for trajectory identification. (#290)
Related to #256.

PAIR=wohe
2017-05-16 14:24:49 +02:00
Holger Rapp 8612f5e6e5 ConstantData now has a trajectory_id. (#289)
Related to #256.

PAIR=wohe
2017-05-16 11:42:18 +02:00
Wolfgang Hess 5effc4dac7 Remove flat indices from SparsePoseGraph::GetTrajectoryNodes(). (#288)
Related to #256.

Also removes ComputeMapLimits with is moved to Cartographer ROS.

PAIR=SirVer
2017-05-16 10:51:08 +02:00
Wolfgang Hess 690d1893a7 Remove unused code. (#287) 2017-05-15 16:57:02 +02:00
Jihoon Lee f26e4366c9 Make SparsePoseGraph::constraints() public. (#284) 2017-05-15 16:06:20 +02:00
Wolfgang Hess fde9272533 Adds mapping:NodeId for Constraint. (#279)
Also extracted mapping::SubmapId into an id.h file.

Related to #256.

PAIR=SirVer
2017-05-11 17:17:12 +02:00
Holger Rapp 7b1915b906 Fix bug in ToProto introduced in #275. 2017-05-11 14:02:04 +02:00
Holger Rapp e6a6bab351 Make TrajectoryConnectivity use trajectory IDs. (#275)
Related to #256.
2017-05-11 13:36:12 +02:00
Holger Rapp 95f0d013c6 Rename Constraint::i -> submap_id. (#274)
Related to #256.
2017-05-11 11:43:47 +02:00
Holger Rapp 94e8eec41d Use (trajectory_id, submap_index) as submap IDs in places. (#271)
Replace flat submap index through (trajectory_id, submap_index) in Constraints.
Related to #256.

PAIR=wohe
2017-05-10 12:26:58 +02:00
Holger Rapp 45de59b116 Move trajectory id mapping into the SparsePoseGraph. (#270) 2017-05-10 08:23:57 +02:00
Holger Rapp 20e9cde53d Fix race condition in extrapolation of submap poses. (#268)
PAIR=wohe
2017-05-09 15:21:30 +02:00
Holger Rapp 772d02c00e Move ConstantData into the SPG (#263) 2017-05-08 17:10:07 +02:00
Wolfgang Hess 9194c8679b Clean up. (#266)
Move trajectory builder options.
Remove the barely used Interval template.
Inline the remaining CMakeLists.txt subdirectories.
2017-05-08 15:29:13 +02:00
Yutaka Takaoka 522b37979a Enable multiple configuration for multi-trajectory (#248) 2017-05-08 11:58:53 +02:00
Holger Rapp e2de27cded Remove dead code. (#262) 2017-05-08 11:06:33 +02:00
Wolfgang Hess 79dc1f848f Remove 'laser' references from parameter names. (#259)
Related to #250.
2017-05-04 15:38:41 +02:00
Wolfgang Hess 6d2feaa8c7 Build and run all tests found by the glob. (#258) 2017-05-03 16:55:13 +02:00
Wolfgang Hess af22dc6fe1 Simplify submap versions. (#235)
We now only keep track of the number of inserted range data.
2017-04-21 14:12:08 +02:00
Mac Mason 92d360a8f2 Multi-trajectory SparsePoseGraph::ToProto. (#227)
Multi-trajectory SparsePoseGraph::ToProto.
Remove obsolete TrajectoryNode::ToProto.
Add GetSubmapStates.
2017-04-19 17:01:03 +02:00
William Woodall bda68c33d9 Fix warning about struct being redefined as class (#228) 2017-03-28 08:57:13 +02:00
Mac Mason 1e5b49ce62 Minor sparse_pose_graph.proto improvement (#226) 2017-03-24 09:03:36 +01:00
Wolfgang Hess 4fa190d316 Rename LaserFan to RangeData. (#224)
LaserFan is misleading since range data can come from
various sensor types.
2017-03-23 14:56:18 +01:00
Wolfgang Hess a2abe45542 Rename CompressedLaserFan to CompressedRangeData. (#223)
CompressedLaserFan is misleading since data can come from a
different type of sensor, e.g. a depth camera.
2017-03-22 13:06:41 +01:00
Mac Mason 30b9fcce34 Claim an old TODO. (#209) 2017-03-01 10:26:48 +01:00
Wolfgang Hess b4a1021538 Formatting changes. (#199) 2017-02-08 14:30:38 +01:00
Wolfgang Hess 1c433e6f3a Refactor the documentation update script. (#179) 2017-01-10 10:43:16 +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 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 f3526bd252 Move the OrderedMultiQueue implementation out of the header. (#152) 2016-12-06 14:09:44 +01:00
Wolfgang Hess 4c9c77034b Remove UKF-related debug output. (#142) 2016-11-23 14:27:36 +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
Holger Rapp 6777654202 Adds a heuristic to detect floors in a trajectory. (#125) 2016-11-16 05:16:40 -08: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
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
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
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
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
Damon Kohler 2eca021003 Moves SensorCollator into sensor package. (#58) 2016-10-17 10:18:17 +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 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
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 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 fc166fdefa Adds MapBuilder and cleans up some configurations. (#23) 2016-09-08 16:21:25 +02:00