Commit Graph

1157 Commits (605838855fe84c30b788c884a419aaa509493cad)

Author SHA1 Message Date
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
Juraj Oršulić 7964211fef Deserialize SPG constraints () 2017-11-02 22:01:01 +01:00
Juraj Oršulić 3c5a7aa2d8 Refactoring of LocalTrajectoryBuilder::AddAccumulatedRangeData ()
- introduce InsertIntoSubmap for 2D
- clarify some variable names in 3D
- move rotational_scan_matcher_histogram calculation
  to InsertIntoSubmap for 3D
- refactor last version of range data before insertion into
  range_data_in_local (filtered_range_data_in_local for 3D)
2017-11-02 16:01:23 +01:00
Juraj Oršulić c57641f917 Make SPG::AddScan return the inserted node id. () 2017-11-02 10:28:13 +01:00
Christoph Schütte e10650910e
Pull out time-based transformation interpolation. () 2017-10-30 15:41:02 +01:00
Wolfgang Hess c011177bfd
Fix the origin of accumulated range data. ()
This changes the origin of accumulated range data from the
zero vector (which could be far off) to the origin of the
first range data in the accumulation.
2017-10-30 11:32:06 +01:00
Wolfgang Hess 82a4b2f171 Follow terminology in 3D optimization. () 2017-10-27 15:48:51 +02:00
Christoph Schütte dacc962399 Adds lower_bound() to MapById. () 2017-10-27 14:50:14 +02:00
gaschler d4db1e79a6 Add TimedPointCloud and TimedRangeData. ()
Adds a type TimedPointCloud that holds 4-dimensional vectors where measurement time of individual points are stored in the fourth entry.
Uses TimedRangeData to pass TimedPointCloud of incoming measurements to LocalTrajectoryBuilder.

Fixes .
2017-10-24 11:47:35 +02:00
Holger Rapp 638aee7c2a Fix slow point deletion in RemovePoints. ()
This speeds up the asset writer significantly:

For the 3D sample bag:

~~~
/usr/bin/time roslaunch cartographer_ros assets_writer_backpack_3d.launch \
   bag_filenames:=${HOME}/Downloads/b3-2016-04-05-14-14-00.bag \
   pose_graph_filename:=${HOME}/Downloads/b3-2016-04-05-14-14-00.bag.pbstream

master:
2100.96user 26.79system 35:43.60elapsed 99%CPU (0avgtext+0avgdata 3657028maxresident)k
17682632inputs+32080outputs (0major+20021051minor)pagefaults 0swaps

this CL:
1937.46user 11.77system 32:22.49elapsed 100%CPU (0avgtext+0avgdata 3659412maxresident)k
1352inputs+32088outputs (0major+7042032minor)pagefaults 0swaps
~~~

So ~10%. For pipelines that do less this can be even 30% or more.
2017-10-23 10:56:55 +02:00
Juraj Oršulić f179bd942c Support multiple trajectories in LoadMap. () 2017-10-20 16:13:18 +02:00
Damon Kohler 0cd0148577 Update the high level overview and provide a link to a copyable Google Sketch. () 2017-10-20 14:56:29 +02:00
Wolfgang Hess a96511464e Add map trajectory without a trajectory builder. () 2017-10-19 16:59:04 +02:00
Christoph Schütte 7c03467a78 Change GetTrajectoryNodes() to MapById. () 2017-10-19 14:50:58 +02:00
Holger Rapp 49ead6055c Towards a ROS map writing PointsProcessor. ()
- Refactor ProbabilityGridPointsProcessor for code reuse.
- Adds Image::width and height.
- Adds GetFilename for FileWriter.

Related to .
2017-10-19 12:30:19 +02:00
Holger Rapp 0c9f2c4f65 Remove unused concept of CompressedRangeData. () 2017-10-19 11:19:56 +02:00
Wolfgang Hess e479382ecc Change GetAllSubmapData() to MapById. () 2017-10-17 16:03:16 +02:00
Christoph Schütte 3d4650d675 Remove trimmed() from TrajectoryNode () 2017-10-17 15:36:07 +02:00
Wolfgang Hess e5f9815f67 Change submap_data_ in pose graph to MapById. ()
* 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. () 2017-10-17 11:48:23 +02:00
Wolfgang Hess bcd1be92b1 Adds a bit of terminology documentation. ()
Changes code to match the new documentation.
2017-10-17 10:07:54 +02:00