Commit Graph

95 Commits (63fd497e0f61d0523380045c7b62d90ff3401d6d)

Author SHA1 Message Date
Alexander Belyaev 3ebfa757ef
Move mapping_*d to mapping/*d. (#935)
[Code structure RFC](https://github.com/googlecartographer/rfcs/blob/master/text/0016-code-structure.md)
2018-02-26 17:40:29 +01:00
Alexander Belyaev 7d13383dec
Remove 'mapping_3d' namespace. (#922) (#925)
Remove 'mapping_3d' namespace. (#922)

It is removed from everywhere but 'scan_matching', 'pose_graph'
subfolders of 'mapping_3d'.

[Code structure RFC](e11bca586f/text/0000-code-structure.md)
2018-02-21 14:24:12 +01:00
gaschler 7448f93b50 Avoid auto for Eigen expressions. (#899)
While harmless in most cases, auto can delay evaluation
of expressions in unexpected ways.
So it is better to avoid auto for Eigen expressions.
https://eigen.tuxfamily.org/dox/TopicPitfalls.html
2018-02-13 12:34:43 +01:00
Christoph Schütte 60e9fa59fe
Implement AddImuDataHandlerTest (#872)
This PR introduces first gRPC handler test that takes advantage of new RpcHandlerTestServer.
2018-02-01 13:05:08 +01:00
Alexander Belyaev 894bad397d
Rename Landmark->LandmarkObservation. (#847) 2018-01-25 12:10:30 +01:00
Alexander Belyaev 986ac28ff8
Rename 'tranform' to 'landmark_to_tracking_transform'. (#836) 2018-01-22 18:30:14 +01:00
gaschler d92040d0e6 Test Collator for multiple trajectories (#829) 2018-01-17 20:43:20 +01:00
gaschler 70e378b7c5 TrajectoryCollator (#827)
Introduces TrajectorCollator, which collates sensor data ignoring
other trajectories.
Tests the same.

[RFC=0008](https://github.com/googlecartographer/rfcs/blob/master/text/0008-collator-interface.md)
2018-01-17 17:48:20 +01:00
gaschler f64eef876a Optional GetBlockingTrajectoryId (#820)
[RFC=0008](https://github.com/googlecartographer/rfcs/blob/master/text/0008-collator-interface.md)
2018-01-16 16:21:22 +01:00
gaschler 51ccee3e74 CollatorInterface (#808)
[RFC=0008](https://github.com/googlecartographer/rfcs/blob/master/text/0008-collator-interface.md)
2018-01-11 16:02:03 +01:00
Christoph Schütte e1a182d1fa Implement LocalSlamResult data adding to PoseGraph. (#804) 2018-01-11 10:19:37 +01:00
Susanne Pielawa 91034eaf58 Making pose in FixedFramePoseData optional. (#792)
This is for the case that the GPS signal is not available.
2018-01-08 11:37:07 +01:00
Christoph Schütte 02734c296d Implement ReceiveLocalSlamResultsHandler. (#772) 2017-12-19 15:11:29 +01:00
Christoph Schütte c5ec086968 Introduce TimedPointCloudData. (#748)
This data structure is needed to forward RangeFinderData over gRPC.

[RFC=0002](https://github.com/googlecartographer/rfcs/blob/master/text/0002-cloud-based-mapping-1.md)
2017-12-08 19:28:47 +01:00
Christoph Schütte 3ae78563c6 Introduce TrajectoryBuilderInterface. (#736)
[RFC=0004](https://github.com/googlecartographer/rfcs/blob/master/text/0004-trajectory-builder-interface.md)
2017-12-08 11:52:29 +01:00
Christoph Schütte 2a7a6ef934
Make sensor::Data dispatchable to TrajectoryBuilder. (#738)
This change allows to dispatch sensor::Data to implementations of mapping::TrajectoryBuilder, i.e. CollatedTrajectoryBuilder. We need this for cartographer_grpc as the incoming sensor data is inserted into a queue by the gRPC threads and dequeued by a SLAM threads that inserts them into a CollatedTrajectoryBuilder.
2017-12-06 16:36:36 +01:00
gaschler 1c7183d5c4 VoxelFilter for TimedPointCloud, Filter method. (#710)
This makes the VoxelFilter ready for TimedPointCloud and
per-point unwarping.
2017-11-27 15:12:07 +01:00
Wolfgang Hess 055728af93 Rename options for consistency. (#686)
"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
catskul f6192e4735 replace implicit use of cartographer::string with explicit use of std::string (#673)
Fixes #622.
2017-11-15 10:17:59 +01:00
Wolfgang Hess 3ec583a327 Change fixed_frame_pose_data_ to MapByTime. (#662) 2017-11-13 17:41:04 +01:00
Wolfgang Hess 4a8607810e Change odometry_data_ to MapByTime. (#655) 2017-11-13 13:21:53 +01:00
Christoph Schütte 6e274766f2 Remove unnecessary [packed=true] annotation (#660)
[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. (#653)
[RFC=0000](https://github.com/googlecartographer/rfcs/blob/master/text/0000-proto3-transition.md)
2017-11-13 08:26:35 +01:00
Juraj Oršulić 8186316d77 Range loop over trajectories for MapByTime (#633) 2017-11-06 17:14:01 +01:00
Alexander Belyaev 0d2bc8b938 Adds a 'LandmarkData' struct and proto. (#628) 2017-11-06 15:35:21 +01:00
Wolfgang Hess 77fb50fd76
Introduce sensor::MapByTime<>. (#631)
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
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 0c9f2c4f65 Remove unused concept of CompressedRangeData. (#604) 2017-10-19 11:19:56 +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
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
Wolfgang Hess 094b5a4d93 Template dispatching of sensor data. (#484)
This reduces the amount of code that needs to be written when a
new type of sensor data is introduced by a tiny bit.

Rangefinder data is not yet following this pattern.
2017-08-28 15:43:26 +02:00
Wolfgang Hess a239b71a6e Dynamic dispatch of sensor::Data. (#475)
This ensures at compile time that all types of data are handled,
and only keeps the data needed for each individual type.
2017-08-24 14:17:51 +02:00
jie 0671e8835e Add interface to process fixed frame pose, e.g. GPS. (#471) 2017-08-24 12:49:03 +02:00
zjwoody ba6f782949 Fix ClangTidy warnings. (#455) 2017-08-16 15:21:04 +02:00
Wolfgang Hess 8732e43f16 Add sensor::OdometryData. (#442) 2017-08-08 14:52:47 +02:00
Wolfgang Hess b0b4f30007 Cleanup of cell index conversion in 2D. (#399)
This makes 2D more similar to 3D. GetProbability() only takes
cell indices which are computed using GetCellIndex().
2017-07-10 15:01:13 +02:00
Wolfgang Hess 78bd37ec26 Unify 2D/3D range data in trajectory nodes. (#396)
Since we only convert compressed range data to protos, we remove the
unused code to serialize (non-compressed) range data which should also
not be used in the future.
2017-07-07 17:07:04 +02:00
Brandon D. Northcutt f7af7ae238 Add serialization of compressed range data. (#334) 2017-07-07 12:26:36 +02:00
Wolfgang Hess 3819dd3806 Use an Eigen::AlignedBox to track known cells. (#388)
PAIR=SirVer
2017-07-05 15:05:46 +02:00
Jihoon Lee 1e6723e214 Move ImuData to sensor, add ImuData proto. (#381) 2017-07-05 12:28:40 +02:00
Holger Rapp 9b48ba5ff4 Remove unused code. (#384) 2017-07-05 12:16:29 +02:00
Wolfgang Hess 565e9c3eff Simplify the handling of weights in the optimization problem. (#309)
This replaces the 3x3 (2D) or 6x6 (3D) matrix by the weights
for the translational and rotational component. The matrices
only contain these values now anyway, so this simplifies
the code and increases performance.

Also removes 2D from the UKF implementation which has not been
used for quite some time now.
2017-06-01 17:03:49 +02:00
Wolfgang Hess 3d0d1e46b5 Remove unused code. (#304) 2017-05-23 14:17:20 +02:00
Wolfgang Hess 9033fad1ab Always use the origin as the origin for grids. (#294)
Also removes convenience functions from mapping_3d::Submap.

PAIR=SirVer
2017-05-18 12:00:45 +02:00
Wolfgang Hess 79dc1f848f Remove 'laser' references from parameter names. (#259)
Related to #250.
2017-05-04 15:38:41 +02:00
Wolfgang Hess 6d2feaa8c7 Build and run all tests found by the glob. (#258) 2017-05-03 16:55:13 +02:00
Wolfgang Hess ff06e37579 Remove the LaserScan proto. (#257) 2017-05-03 16:20:04 +02:00
Holger Rapp cdd366bab4 Remove intensities - they are unused in SLAM. (#247) 2017-05-03 13:44:15 +02:00
Mac Mason 4f1914b2b4 Remove extraneous Eigen/Geometry include (#232) 2017-03-31 08:46:48 +02:00
Wolfgang Hess 4fa190d316 Rename LaserFan to RangeData. (#224)
LaserFan is misleading since range data can come from
various sensor types.
2017-03-23 14:56:18 +01:00