Commit Graph

1176 Commits (ef00de2317dcf7895b09f18cc4d87f8b533a019b)

Author SHA1 Message Date
Juraj Oršulić 3c5a7aa2d8 Refactoring of LocalTrajectoryBuilder::AddAccumulatedRangeData (#618)
- 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. (#617) 2017-11-02 10:28:13 +01:00
Christoph Schütte e10650910e
Pull out time-based transformation interpolation. (#615) 2017-10-30 15:41:02 +01:00
Wolfgang Hess c011177bfd
Fix the origin of accumulated range data. (#613)
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 #591 terminology in 3D optimization. (#612) 2017-10-27 15:48:51 +02:00
Christoph Schütte dacc962399 Adds lower_bound() to MapById. (#610) 2017-10-27 14:50:14 +02:00
gaschler d4db1e79a6 Add TimedPointCloud and TimedRangeData. (#601)
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 #573.
2017-10-24 11:47:35 +02:00
Holger Rapp 638aee7c2a Fix slow point deletion in RemovePoints. (#608)
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. (#567) 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. (#607) 2017-10-20 14:56:29 +02:00
Wolfgang Hess a96511464e Add map trajectory without a trajectory builder. (#605) 2017-10-19 16:59:04 +02:00
Christoph Schütte 7c03467a78 Change GetTrajectoryNodes() to MapById. (#603) 2017-10-19 14:50:58 +02:00
Holger Rapp 49ead6055c Towards a ROS map writing PointsProcessor. (#598)
- Refactor ProbabilityGridPointsProcessor for code reuse.
- Adds Image::width and height.
- Adds GetFilename for FileWriter.

Related to googlecartographer/cartographer_ros#475.
2017-10-19 12:30:19 +02:00
Holger Rapp 0c9f2c4f65 Remove unused concept of CompressedRangeData. (#604) 2017-10-19 11:19:56 +02:00
Wolfgang Hess e479382ecc Change GetAllSubmapData() to MapById. (#597) 2017-10-17 16:03:16 +02:00
Christoph Schütte 3d4650d675 Remove trimmed() from TrajectoryNode (#596) 2017-10-17 15:36:07 +02:00
Wolfgang Hess e5f9815f67 Change submap_data_ in pose graph to MapById. (#593)
* 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. (#592) 2017-10-17 11:48:23 +02:00
Wolfgang Hess bcd1be92b1 Adds a bit of terminology documentation. (#591)
Changes code to match the new documentation.
2017-10-17 10:07:54 +02:00
Wolfgang Hess 76ed37768f Validate odometry and fixed frame poses. (#588) 2017-10-16 15:59:56 +02:00
Christoph Schütte 6b447c4577 Add FindChecked to MapById. (#586)
* Add FindChecked to MapById.
2017-10-16 14:15:53 +02:00
Wolfgang Hess d91afa4496 Introduces mapping::MapById for nodes in 3D. (#587) 2017-10-16 13:37:28 +02:00
Christoph Schütte 5ed19c15ab Introduce proxy object for iteration over trajectory ids. (#585)
* Introduce proxy object for iteration over trajecotry ids.
2017-10-16 12:52:53 +02:00
Wolfgang Hess 7e0cfc3f22 Introduces mapping::MapById for submaps in 3D. (#584) 2017-10-16 10:48:43 +02:00
Christoph Schütte 006db45910 Introduce proxy object for range based loops over nodes of trajectory. (#583) 2017-10-13 16:44:31 +02:00
Wolfgang Hess 464d770d48 Introduces mapping::MapById for nodes in 2D. (#581)
PAIR=cschuet
2017-10-13 14:41:54 +02:00
Christoph Schütte 2cca91d783 Add slides from yesterday and next date. (#572) 2017-10-13 13:55:04 +02:00
Wolfgang Hess 4ab4817104 Add MapById<>::ConstIterator::operator->(). (#580) 2017-10-12 16:15:12 +02:00
Wolfgang Hess cb41777b9e Introduces mapping::MapById in the 2D pose graph for submaps. (#578)
PAIR=cschuet
2017-10-12 11:58:59 +02:00
Wolfgang Hess ea55e837d2 Introduces mapping::MapById in the 2D optimization problem. (#577)
PAIR=cschuet
2017-10-09 17:33:12 +02:00
Wolfgang Hess 2434e7e40e Fix crashing bug in localization. (#575)
Now that we deserialize trajectory nodes, we need to make sure
that the global matcher sampler is added for the map trajectory.
2017-10-06 17:01:04 +02:00
Juraj Oršulić 2f332eca28 Deserialize trajectory nodes. (#569) 2017-10-06 16:16:25 +02:00
Holger Rapp 6708930bbf Adds 'offset_seconds' to PointCloudWithIntensities. (#571)
This is preparing using per-point-unwarping in the `assets_writer` in `cartographer_ros`.

Related to googlecartographer/cartographer_ros#521.

PAIR=@wohe
2017-10-06 13:21:02 +02:00
Christoph Schütte 2862e12506 Add FrameIdFilteringPointsProcessor (#566)
* Add FrameIdFilteringPointsProcessor

Implements a PointProcessor that filters PointBatches (either by
whitelisting or blacklisting) the frame_id.
2017-10-05 17:33:51 +02:00
Wolfgang Hess 0053b30cc8 Add support for odometry to the 3D pose graph optimization. (#570)
Not used yet. Intended to experiment with the 3D pose graph optimization
in 2D SLAM.
2017-10-05 16:56:31 +02:00
Juraj Oršulić bd8a2e6a92 Store node initial pose in constant data. (#568) 2017-10-05 16:10:12 +02:00
Wolfgang Hess cae9c02e05 Follow #547 for 3D. (#564)
And changes to 3D following 2D regarding trimmed data.
2017-10-04 16:47:26 +02:00
Wolfgang Hess 51f5a18462 Fix formatting. (#561) 2017-10-04 15:58:48 +02:00
Juraj Oršulić aaaf5ac546 Rename serialization NodeData proto for consistency. (#540)
node_data should be a member of a node, not the other way around.
2017-10-04 14:13:18 +02:00
Juraj Oršulić b1b0750e5b Check ratios in fixed rate sampler. (#502) 2017-10-04 13:15:35 +02:00
Christoph Schütte 9c81a01608 Add trajectory trimming support to 3d (#559)
* Adds DeleteScanMatcher() to 3D constraint builder
* Add possibility to remove submaps and scans from the 3D optimization
  problem.
* Implements TrimmingHandle in SPA.
2017-10-02 17:01:14 +02:00
Jihoon Lee 3c521eb573 Remove hooray. And prints remaining work items in queue (#547) 2017-09-29 01:04:28 -07:00
jie 3744988fd2 Fix trajectory count check bug for asset writer floor separation. (#542) 2017-09-28 10:43:47 +02:00
Wolfgang Hess 7d0e72dac2 Fix some nits. (#536)
Most importantly makes mapping_2d::SparsePoseGraph::GetLatestScanTime()
private.
2017-09-28 09:21:07 +02:00
jie 4fca78368d Add Cartographer high level structure diagram to documentation (#486) 2017-09-28 08:27:27 +02:00
Wolfgang Hess 0cbc420b02 Fix odometry in the 2D pose graph optimization. (#533)
Before, the relative change in pose due to odometry in the
2D pose graph optimization problem was incorrectly done in
the tracking frame. Instead, the gravity aligned frame in
which the 2D poses are stored must be used.

Fixes #515.

PAIR=cschuet
2017-09-15 14:11:37 +02:00
Wolfgang Hess 6b544628b6 Add slides from yesterday and next date. (#531) 2017-09-15 11:53:57 +02:00
Jihoon Lee 259e22a5fc Use oldest and newest instead of last two odometry data. (#530) 2017-09-14 16:10:03 +02:00
Christoph Schütte 5896ead32e Introduce timeout for global constraints. (#517)
This PR introduces a new option that specifies the number of seconds
after which global matcher searches are performed if no recent global
constraints have been found between the submap's and the node's
trajectory.
2017-09-14 12:11:54 +02:00
gaschler 31b5a6f1a9 Allow multiple SubmapTextures. (#519)
This changes submap_visualization.proto that multiple textures can be provided.
As of now, the first texture is generated from the high resolution
grid, which is the same as before.
The second texture is generated from the low resolution grid.
2017-09-13 15:47:02 +02:00