Commit Graph

54 Commits (de76ed9fdc1b32e5080c1c4c87730e1097020135)

Author SHA1 Message Date
Alexander Belyaev ade7605fac
Use installed Abseil. (#1570) 2020-06-24 10:53:03 +02:00
Juraj Oršulić cbc0a2ac9a Do not use native CMake config for Protobuf on Linux (#1529)
On Ubuntu 16.04, we have to install Protobuf 3. Unfortunately, `find_package()`ing Protobuf using native installed CMake `CONFIG` is problematic in case if there is a system Protobuf 2 installed, while the bundled CMake module works correctly and manages to avoid interference with system-installed Protobuf 2.
2019-03-08 11:43:07 +01:00
Michael Grupp aed6ee7b1d Add cartographer_print_configuration executable. (#1508)
* Add cartographer_configuration_dumper executable.

While Lua inheritance can be great, this small tool solves the
pain of asking yourself "But what actually is my final config?".

Usage: `cartographer_dump_configuration <directory/-ies> <basename>`

Also includes the option to print only a subdictionary with e.g.:
`--subdictionary_id trajectory_builder.trajectory_builder_3d`
2019-03-06 18:39:25 +01:00
Michael Grupp 2d698e70e8 Fix regression in Protobuf find_package logic. (#1491)
The introduced changes are not compatible with CMake < 3.6 if the
FindProtobuf.cmake bundled with CMake is used.
Since our minimum required version is 3.2, I consider this to be a bug.

- camel-case variables names weren't used before 3.6
  (upper-case is lowered in CMake > 3.6 for backwards compatibility)
- the `CONFIG` search for the Windows build logs a warning even if the
`REQUIRED` search succeeds, should be quiet
2019-01-03 09:19:00 +01:00
Christoph Schütte f73758e3a5
Upgrade all dependencies to new Starlark syntax. (#1483)
The update of the prometheus library requires some fixes in the test.
2018-12-18 14:19:29 +01:00
Juraj Oršulić c370d221d0 Windows build fixes & Azure CI (#1463)
This PR makes libcartographer build on Windows (including tests). Abseil was bumped to avoid a MSVC compiler bug.

I have observed two tests failing:
`MapBuilderTestByGridType/MapBuilderTestByGridType.GlobalSlam2D/1` and `MapBuilderTestByGridType/MapBuilderTestByGridType.LocalizationOnFrozenTrajectory2D/1`.
2018-12-16 17:04:23 +01:00
Alexander Belyaev e3a7f39889
Add absl to CMake and Bazel builds. (#1301) 2018-07-26 06:49:37 +02:00
Alexander Belyaev 926b8540f6
Use CMake 3.2. (#1332) 2018-07-25 21:40:06 +02:00
Sebastian Klose 2b042311d8
Unified pbstream tool (#1326)
Consolidating pbstream tools into a single tool

* adds two subcommands for now (info and migrate)
* removes commandline flags for filenames in favor of commandline args
* updates documentation for migration tool
2018-07-24 15:48:34 +02:00
gaschler d306eaddda Add pbstream_info executable (#1311)
This is useful to debug and inspect serialized files.
2018-07-23 11:34:37 +02:00
Juraj Oršulić 3bf9ba0a69 Ensure async_grpc is find_packaged() for Cartographer users (#1105) 2018-07-09 13:11:51 +02:00
Sebastian Klose a9c90da1a8
Migration tool for serialization format (#1167)
* New serialization protos

 * Moved old definition to legacy_serialized_data.proto
 * defining new serialization format as oneof.

* Changing to legacy datatype

* adding serialization migration

* moving to io

* adding serialization migration

* moving to io

* adding file for test

* adding test

* test for order or migrated serialized data

* test for order or migrated serialized data

* renaming tool

* addressing comments

* addressing more comments

* minor polishing
2018-05-29 16:56:18 +02:00
Martin Schwörer 21c428b1bf installing test library headers, so they are available for cartographer_ros (#1140)
Installing the header files of test_helpers, fake- and mock-classes.

This will fix the build failure of cartographer_ros.
2018-05-02 16:39:55 +02:00
Martin Schwörer 913b1b5856 Added cartographer test library to CMake project (#1129)
Fake, mock and test helpers are now compiled into a test library.

This should resolve #1128. The bazel build file was updated in #1101.
2018-04-30 18:02:54 +02:00
Martin Schwörer 13d9754155 fixed that tests not getting linked against prometheus-cc (#1131)
Fixed typo in the CMakeLists file: tests were not linked against prometheus-cc
2018-04-30 16:57:08 +02:00
gaschler 895f1d61b4 Glob only files in cartographer/ (#1048)
FIXES=#1044
2018-04-10 15:14:59 +02:00
Christoph Schütte 915ebb19a6
Use async_grpc (#1013)
Use async_grpc
2018-03-23 10:52:48 +01:00
Juraj Oršulić e1109356cf Require Ceres built against SuiteSparse (#972)
Fixes #971.
2018-03-09 10:24:19 +01:00
Michael Grupp 7e05daa8ca Remove dotfiles from build files in CMakeLists.txt (#897)
Avoids including unwanted files that could appear in a developer
workspace (e.g. auto-generated files in "dot" folders).
2018-03-06 18:39:46 +01:00
Alexander Belyaev f76d8a8a0d
Move cartographer_grpc/ to cartographer/cloud. (#958)
[Code structure RFC](https://github.com/googlecartographer/rfcs/blob/master/text/0016-code-structure.md)
2018-03-05 12:41:38 +01:00
Alexander Belyaev 29875117b3
Move internal/mapping to mapping/internal. (#941) 2018-02-27 16:25:53 +01:00
gaschler eabcab26ed Expose metrics as http page. (#920)
RFC=[0014](https://github.com/googlecartographer/rfcs/blob/master/text/0014-monitoring.md)
2018-02-21 18:52:57 +01:00
gaschler a338b2e339 Collect metrics with Prometheus C++ Client (#916)
RFC=[0014](https://github.com/googlecartographer/rfcs/blob/master/text/0014-monitoring.md)
2018-02-19 18:11:59 +01:00
gaschler 3211e75957
Link prometheus client for grpc builds (#906)
RFC=[0014](https://github.com/googlecartographer/rfcs/blob/master/text/0014-monitoring.md)
2018-02-19 15:54:10 +01:00
Christoph Schütte df518b80c8 Remove gRPC proto compiler invocation from CMakeLists.txt (#878) 2018-02-02 21:04:34 +01:00
Christoph Schütte 18cb9c324f Make CMakeLists.txt install gRPC service headers. (#779) 2017-12-20 14:40:33 +01:00
Christoph Schütte e596b75113 Add binary for cartographer_grpc_server. (#747)
[RFC=0002](https://github.com/googlecartographer/rfcs/blob/master/text/0002-cloud-based-mapping-1.md)
2017-12-11 19:09:52 +01:00
gaschler 5c694adf93 Correct cmake install (#739)
Simplify how file lists are collected depending on options.
Omits gRPC headers if they were not built.
2017-12-06 20:34:07 +01:00
Christoph Schütte 02359a98ae Implement connection establishment and server startup and shutdown. (#712)
[RFC=0002](https://github.com/googlecartographer/rfcs/blob/master/text/0002-cloud-based-mapping-1.md)
2017-11-28 10:50:30 +01:00
Wolfgang Hess ec034b13bc Do not install global_trajectory_builder.h. (#698)
This moves the global_trajectory_builder.h header under
cartographer/internal and changes the CMakeLists.txt to
not install internal headers.

[RFC=0003](https://github.com/googlecartographer/rfcs/blob/master/text/0003-internal-headers.md)
2017-11-23 14:47:29 +01:00
Christoph Schütte c233aaaac8 Update CMakeLists.txt to preprare for gRPC deps. (#691) 2017-11-22 16:29:01 +01:00
Tobias Ulvgård b2e948d8a2 Fix typo in CMake install script (#683)
Fixes a typo in CMake scripts when installing generated header files.
2017-11-16 09:16:34 +01:00
catskul 8c9fac4c69 #671 switch ordering of args in find_package for Protobuf (#672)
per #671
2017-11-15 08:49:33 +01:00
Holger Rapp e29fc9787a New proto compiler (#644)
Also change Dockerfiles to build proto3 from HEAD.

PAIR=@cschuet
2017-11-10 11:16:44 +01: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
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 c664d7b966 Comply to CMake's CMP0037. (#267)
Test target names are generated from the directory and
source filename. Now "/"s are replaced by "."s which are
allowed by CMP0037.
2017-05-08 18:09:39 +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
Wolfgang Hess 6d2feaa8c7 Build and run all tests found by the glob. (#258) 2017-05-03 16:55:13 +02: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
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
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
Damon Kohler 4e9c3d69b5 Build all our source files into a single library. (#164) 2016-12-20 11:24:08 +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
Holger Rapp 6e6d2decaa Fixes for Xenial. (#103)
- Remove use of get_property(LOCATION in cmake where this is easy. This
  reduces build warnings sufficiently to not drown out other important
  information.
- Mark cairo a dependency in package.xml so rosdep pulls it in.

Tested using docker -t ros:kinetic, which is based on Xenial.
2016-10-26 14:23:00 +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 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
Holger Rapp be813a06fe Prepare CMake files for testing support. (#47)
- Only build gmock if we really require testing.
- Adds a wrapper for generating catkin aware tests. This works around
  ros/catkin#830.
2016-10-12 15:38:12 +02:00