Commit Graph

937 Commits (df337194e21f98f8c7b0b88dab33f878066d4b56)

Author SHA1 Message Date
Christoph Schütte 41bb8be0fb Prepare 0.3.0 release () 2017-11-23 10:27:08 +01:00
Christoph Schütte c233aaaac8 Update CMakeLists.txt to preprare for gRPC deps. () 2017-11-22 16:29:01 +01:00
Juraj Oršulić 31f28b5097 Remove PoseEstimate. ()
Replaces .

Depends on switching `cartographer_ros` to use the new callback API for handling the last scan and pose estimate ().
2017-11-17 16:47:06 +01:00
Wolfgang Hess aba4575d93 Rename 'submap_transforms' to follow terminology. ()
https://google-cartographer.readthedocs.io/en/latest/terminology.html

Related to .
2017-11-17 13:13:45 +01:00
Christoph Schütte b91ff8fe44 Extrapolate poses for ground truth relations. () 2017-11-17 12:27:31 +01:00
Wolfgang Hess 055728af93 Rename options for consistency. ()
"scan" is better named "node" if it refers to a node in global SLAM.

"penalty factor" is renamed "weight" for consistency with other similar options.

"scans_per_accumulation" is renamed "num_accumulated_range_data" to match the code and since the accumulated data is not called "scan".
2017-11-17 10:52:22 +01:00
Holger Rapp 5ee830e8cc Cleanup and new features in Image code. ()
- Removes stride_, since we know for a fact that it is always width * 4.
- Adds a constructor from a cairo surface.
- Adds a function that rotates the image by 90 degrees.

This is in preparation of adding a tool that can generate an image from a .pbstream.
2017-11-16 17:05:18 +01:00
Holger Rapp 0b4e7a9443 Refactor image related code. ()
- Take immutable parameter as const ref instead of pointer.
- make kCairoFormat a global constant, since it is defined in many places in cartographer and cartographer_ros, but we rely on it actually always being the same value.
2017-11-16 15:07:05 +01:00
gaschler b9015f33a7 Filter early in AddRangeData. ()
Filter earlier in 3D.
Combine two transforms to one in 2D.
2017-11-16 13:35:44 +01:00
Wolfgang Hess 16d62f45f0 Rename sparse_pose_graph options. ()
The default pose graph configuration is now included as "pose_graph.lua"
and available as POSE_GRAPH.

[RFC=0001](https://github.com/googlecartographer/rfcs/blob/master/text/0001-renaming-sparse-pose-graph.md)
2017-11-16 11:48:25 +01:00
jie a08a370ef3 Check if filtered point clouds are empty. ()
The point cloud will be filtered by MaxRangeFilter before doing scan matching. For some special cases, the filtered point cloud maybe empty, it will cause crash:
real_time_correlative_scan_matcher.cc:159 Check failed: candidate.score > 0.f (nan vs. 0) 
This PR fixed this bug, check the point cloud size before scan matching, return false for empty point cloud.
2017-11-16 09:56:01 +01:00
Tobias Ulvgård b2e948d8a2 Fix typo in CMake install script ()
Fixes a typo in CMake scripts when installing generated header files.
2017-11-16 09:16:34 +01:00
Wolfgang Hess bdca2095c0 Rename proto::SparsePoseGraph. ()
[RFC=0001](https://github.com/googlecartographer/rfcs/blob/master/text/0001-renaming-sparse-pose-graph.md)
2017-11-15 14:58:49 +01:00
Wolfgang Hess c866707013 Fix the configuration documentation script. ()
Fixes .
Now also includes documentation for one option that was "repeated"
and not "optional".
2017-11-15 14:17:33 +01:00
Wolfgang Hess c25379cd20 Rename mapping_{2,3}d::SparsePoseGraph. ()
[RFC=0001](https://github.com/googlecartographer/rfcs/blob/master/text/0001-renaming-sparse-pose-graph.md)
2017-11-15 13:50:18 +01:00
Wolfgang Hess 8c114d6eaf Rename mapping::SparsePoseGraph. ()
[RFC=0001](https://github.com/googlecartographer/rfcs/blob/master/text/0001-renaming-sparse-pose-graph.md)
2017-11-15 12:06:19 +01:00
Wolfgang Hess 36b9cf7f9a Move the mapping_3d/sparse_pose_graph directory. ()
[RFC=0001](https://github.com/googlecartographer/rfcs/blob/master/text/0001-renaming-sparse-pose-graph.md)
2017-11-15 11:30:35 +01:00
Wolfgang Hess 26db9d6210 Move the mapping_2d/sparse_pose_graph directory. ()
[RFC=0001](https://github.com/googlecartographer/rfcs/blob/master/text/0001-renaming-sparse-pose-graph.md)
2017-11-15 10:52:06 +01:00
catskul f6192e4735 replace implicit use of cartographer::string with explicit use of std::string ()
Fixes .
2017-11-15 10:17:59 +01:00
Wolfgang Hess 291c0f581b Move the mapping/sparse_pose_graph directory. ()
[RFC=0001](https://github.com/googlecartographer/rfcs/blob/master/text/0001-renaming-sparse-pose-graph.md)
2017-11-15 09:39:45 +01:00
gaschler 7904808d40 Reduce transforms in LocalTrajectoryBuilder. ()
This speeds up AddRangeData because we avoid one copy and loop over all points.
2017-11-15 09:15:02 +01:00
catskul 8c9fac4c69 switch ordering of args in find_package for Protobuf ()
per 
2017-11-15 08:49:33 +01:00
Juraj Oršulić 818e5e1a44 Add local SLAM result callback. ()
Depends on ~~#619~~ (merged) and ~~#617~~ (merged).
Related to .

Also, if cartographer_ros is going to use this, and we wish to serialize the saved range data, that will have to be handled in cartographer_ros, right?
2017-11-14 17:19:14 +01:00
Wolfgang Hess a4c0e4754e Rename scan to node. ()
Changes the naming from "scan" to "node" in the pose graph.
AddNode() adds a new node to the graph which might contain
data from multiple range sensors and not necessarily one scan.

Configuration and documentation changes might follow in a
separate PR.

Related to .
2017-11-14 16:53:31 +01:00
Juraj Oršulić 4b342eddd0 Miscellaneous: rename odometer->odometry ()
Since we're adding `sensor::OdometryData`, I think that the function should be called `AddOdometryData`.
2017-11-14 16:18:07 +01:00
Juraj Oršulić 5496cbdc0c Serialize odometry data ()
Replaces .
2017-11-14 15:18:39 +01:00
Holger Rapp a7680f60d4 Updated PR template taking wally into account. () 2017-11-14 14:41:48 +01:00
Juraj Oršulić 60c72cb445 Deserialize trajectory connectivity () 2017-11-14 13:26:53 +01:00
Wolfgang Hess 3ec583a327 Change fixed_frame_pose_data_ to MapByTime. () 2017-11-13 17:41:04 +01:00
gaschler fd5003b69b Omit odometry penalty within frozen trajectory. ()
In the case of pure localization, this reduces the size of the optimization problem by a large factor.
2017-11-13 14:19:15 +01:00
Wolfgang Hess 4a8607810e Change odometry_data_ to MapByTime. () 2017-11-13 13:21:53 +01:00
damienrg d183ab737a Fix mismatched tag warning for MapByIndex ()
- [ X] Keep your PR rebased to master.
- [ X] Keep your PR under 200 lines of code and address a single concern.
- [ X] Add unit test(s) and documentation (these do not count toward your 200 lines).
- [ X] Adhere to the [Google C++ Style Guide](https://google.github.io/styleguide/cppguide.html).
- [ X] Run `clang-format -style=Google` on your code (this alone is not enough to ensure you've followed the style guide).
- [ X] Run `ninja test` or `catkin_make_isolated --install --use-ninja --pkg cartographer --make-args test` as appropriate.
2017-11-13 10:18:58 +01:00
damienrg a9da74496a Fix unused lambda capture warning ()
- [ X] Keep your PR rebased to master.
- [ X] Keep your PR under 200 lines of code and address a single concern.
- [ X] Add unit test(s) and documentation (these do not count toward your 200 lines).
- [ X] Adhere to the [Google C++ Style Guide](https://google.github.io/styleguide/cppguide.html).
- [ X] Run `clang-format -style=Google` on your code (this alone is not enough to ensure you've followed the style guide).
- [ X] Run `ninja test` or `catkin_make_isolated --install --use-ninja --pkg cartographer --make-args test` as appropriate.
2017-11-13 09:44:12 +01:00
Christoph Schütte 6e274766f2 Remove unnecessary [packed=true] annotation ()
[RFC=0000](https://github.com/googlecartographer/rfcs/blob/master/text/0000-proto3-transition.md)
2017-11-13 09:18:53 +01:00
Christoph Schütte 53471359f8 Convert all .proto files to proto3 syntax. ()
[RFC=0000](https://github.com/googlecartographer/rfcs/blob/master/text/0000-proto3-transition.md)
2017-11-13 08:26:35 +01:00
jie ed71914805 Add MutexLocker to ConnectedComponents::GetComponent and SparsePoseGr… ()
…aph::TrimmingHandle::MarkSubmapAsTrimmed

To make them compile successfully in google.
2017-11-10 17:21:20 +01:00
Christoph Schütte 752a279035 Adds slides from Cartographer Open House IX () 2017-11-10 16:56:35 +01:00
Damon Kohler 0de177d207 Adds PR template text. () 2017-11-10 16:29:38 +01:00
Juraj Oršulić eb4415d17d Introduce MatchingResult for LocalTrajectoryBuilder::AddRangeData. ()
In preparation for . Depends on ~~#618~~ (merged) and ~~#617~~ (merged).
2017-11-10 14:49:41 +01:00
Holger Rapp 5363285b8f CMake bug fixes and performance improvements. ()
- Pin versions of Ceres and protobuf (Fixes ).
- Require Lua >= 5.2 (Fixes ).
- No longer run ceres tests in CI. We implicitly test Ceres through Cartographer's tests and this saves ~4 minutes on CI.
2017-11-10 12:55:43 +01:00
Holger Rapp e29fc9787a New proto compiler ()
Also change Dockerfiles to build proto3 from HEAD.

PAIR=@cschuet
2017-11-10 11:16:44 +01:00
Jihoon Lee 028391357d Add OccupancyGridState and SubmapState in cartographer/io ()
replaces  
related to 
2017-11-09 17:19:29 +01:00
Wolfgang Hess 418819a9ef Use 'global_pose' terminology for submaps. ()
Use 'global_pose' terminology for submaps.

This follows .
2017-11-09 16:40:21 +01:00
gaschler 6eaf0f344d FastCorrelativeScanMatcher outputs unique_ptr. () 2017-11-09 16:08:16 +01:00
Juraj Oršulić e21fc9f253 Serialize IMU data. () 2017-11-09 15:32:54 +01:00
Jihoon Lee 3bdee588bd Add FinishTrajectory() in SparsePosegraph. () 2017-11-09 14:29:26 +01:00
Wolfgang Hess 92f81aec8a
Make proto::ProbabilityGrid proto3 compatible. ()
Moves the optional 'known_cells_box' into a message field.
This way its existence can still be checked in proto3.
2017-11-09 11:47:33 +01:00
gaschler 386ee328d8
Fix 3D yaw rotation in GenerateDiscreteScans. ()
Correctly generates discrete scans rotating around yaw in the gravity-aligned global map frame.
Fixes .
PAIR=wohe
2017-11-08 17:37:36 +01:00
Christoph Schütte eb96c91473
Initial pose implementation. () 2017-11-08 14:01:38 +01:00
catskul 55e4338468 Start cleaning up Google specific types by making them cartographer private.
move string and size specific int/uint types into cartographer namespace as minimal change necessary to keep global namespace clean ()
2017-11-08 09:07:46 +01:00