Commit Graph

823 Commits (913b1b5856e2a38c0e707125020e9451d91a4746)

Author SHA1 Message Date
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
Mac Mason 4f1914b2b4 Remove extraneous Eigen/Geometry include (#232) 2017-03-31 08:46:48 +02:00
Juraj Oršulić 2854c485ef Enable building in Debug mode if the user really wants this (#230)
Also inform the user about slow performance if they do this.
2017-03-30 17:00:50 +02:00
Juraj Oršulić cb0d1a6d5a Remove inclination warning (#231)
Resolves #194.
2017-03-30 16:39:53 +02:00
Juraj Oršulić 28da207c4d Sphinx build fix (#229)
This was missed in #203, where uses of absolute CMAKE_BINARY_DIR were
changed to PROJECT_BINARY_DIR.
2017-03-30 16:23:19 +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
William Woodall c78f29fdac Adds #include <array> in files that use std::array (#222) 2017-03-20 08:37:47 +01:00
Mac Mason 76868b7edb Adds HybridGrid proto serialization (#220) 2017-03-14 11:44:19 +01:00
Mac Mason 8bf6f101c5 Adds probability grid serialization to proto (#208) 2017-03-09 09:01:10 +01:00
Mac Mason 30b9fcce34 Claim an old TODO. (#209) 2017-03-01 10:26:48 +01:00
Juraj Oršulić 370e1e52df Enable adding as a CMake subproject (#203)
This is done by replacing CMAKE_*_DIR variables with PROJECT_*_ variables so
that CMake uses correct paths when libcartographer is a subproject

Move AllFiles.cmake into the project binary dir instead of the root CMake binary dir,
use a project-dependent detect_changes target name

This makes overriding it from an upper level CMakeLists.txt possible, which is required
when doing a super-build which doesn't require installing libcartographer.
2017-02-09 15:57:54 +01:00
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
Juraj Oršulić f047ad35c1 Add Ceres sparse linear algebra library dependency (#189)
Ceres can be built without linking against a sparse linear algebra library
such as SuiteSparse or Eigen-sparse. This can happen if the user does not
have all the dependencies, which normally get installed when following
the Cartographer installation guide. In this case, Cartographer will
work, but without loop closures, because Ceres is not working fast enough
(the loop closure optimization without a sparse linear algebra library
is a few orders of magnitude slower). Another bad side effect of this is
that Cartographer will hang when finalizing the trajectory or on exit,
because all loop closing optimizations will be waiting in a queue which
can take hours to process.

When Ceres is regularly built against a sparse linear algebra library, as it
is supposed to be, it declares a component named SparseLinearAlgebraLibrary.
Because normal functioning of Cartographer seemingly depends on this being
present, it is introduced here in Cartographer as a required Ceres component
dependency.
2017-01-26 11:14:58 +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 1f27268664 Add resolution of option types to the documentation script. (#180) 2017-01-10 12:23:10 +01:00
Wolfgang Hess 1c433e6f3a Refactor the documentation update script. (#179) 2017-01-10 10:43:16 +01:00
Damon Kohler 99f449543f CMake fixes. (#178)
* Export/import targets.
* Stop linking GMock main into everything.
2017-01-09 13:49:21 +01:00
Holger Rapp 22a344b946 More linking dependencies fixing 2016-12-22 15:02:28 +01:00
Wolfgang Hess cd0ebbf536 Add the configuration doc and an update script. (#172) 2016-12-21 16:21:43 +01:00
Damon Kohler 5d56b3190e Rerun CMake when files are added/removed. (#170) 2016-12-21 12:05:15 +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
Holger Rapp d4687db730 Add License badge. (#163) 2016-12-19 09:19:15 +01:00
Wolfgang Hess 3caf5a4b52 Fix the target_include_directories. (#162)
The Boost include directory was not correctly added, and the
headers of the project where always looked up at the source or
build directory, not where they are installed.
2016-12-14 17:54:53 +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 ae490c540d Revert to workaround #158. (#160)
Currently, on xenial/kinetic the transitive dependencies on
libcartographer and its dependencies are not duplicated after
each library that depends on it in the linker command.
2016-12-13 13:57:05 +01:00
Wolfgang Hess efe700a9f3 Fix link dependencies. (#159)
Add dependencies via target_link_libraries as PUBLIC.
It seems the new behavior which defaults to PRIVATE was
used implicitly causing transitive dependencies to be
omitted.
2016-12-12 14:56:54 +01:00
Damon Kohler 78f5e2f088 Reorder dependency linking to fix Kintetic. (#158) 2016-12-09 14:45:52 +01:00
Damon Kohler 78747eda62 Fix documentation and Docker cache. (#157) 2016-12-09 13:08:43 +01:00
Damon Kohler 0ac570b69f Add Xenial to build matrix. (#156) 2016-12-09 10:57:41 +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