Commit Graph

877 Commits (eed07d2f80743679e9d37f21d5051a6fbd9881ad)

Author SHA1 Message Date
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
Wolfgang Hess 088681f9ec
Add 3D localization support. ()
This adds information about which nodes are contained in which
deserialized submaps. This is necessary for the rotational scan
matcher.

Also skips frozen trajectories when tying together nodes of a
trajectory with IMU data which is unavailable in this case.
2017-11-07 11:26:41 +01:00
Juraj Oršulić 8186316d77 Range loop over trajectories for MapByTime () 2017-11-06 17:14:01 +01:00
Alexander Belyaev 0d2bc8b938 Adds a 'LandmarkData' struct and proto. () 2017-11-06 15:35:21 +01:00
Wolfgang Hess 77fb50fd76
Introduce sensor::MapByTime<>. ()
This data structure is used for keeping IMU data. This
allows trimming IMU data in the middle which is needed for
life-long mapping.
2017-11-06 13:36:59 +01:00
Wolfgang Hess 049f30d824
Generalize IntegrateImu(). ()
This is in preparation of changing the data structure
for IMU data away from a deque. Needed for localization
and life-long mapping.
2017-11-06 11:00:33 +01:00
Holger Rapp 7c31291b2b Add assets used for the Cartographer shirt. () 2017-11-06 10:36:38 +01:00
gaschler 8854aaae9e Extrapolator reuses result using additional IMU trackers. ()
This makes the extrapolator stricter that time arguments
must be monotonously increasing when calling the Extrapolate
methods.
2017-11-03 16:19:55 +01:00
Wolfgang Hess 978544eca4
Add submap and gravity-aligned frame terminology. () 2017-11-03 13:44:23 +01:00
gaschler 5a3bb14083 PoseExtrapolator::GetLastExtrapolatedTime ()
This prepares the API for  and .
2017-11-03 11:56:31 +01:00
Christoph Schütte 9be15466d3 Add slides and update next Open House date. () 2017-11-03 11:26:55 +01:00