Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Multi scan #35

Merged
merged 2 commits into from
Dec 10, 2017
Merged

Multi scan #35

merged 2 commits into from
Dec 10, 2017

Conversation

StefanGlaser
Copy link
Contributor

Replaced VelodyneScanRegistration with more generic MultiScanRegistration (it's basically doing the same, but a bit more generic) and extracted some further constants.

…tion.

* The VedyneScanRegistration was using a mapping from vertical point angles to scan rings. This is a rather generic approach of mapping points to scan rings and thus applicapbe on arbitrary multi-laser lidars. The new MultiScanRegistration component reflects this generic approach in its name and allows a flexible configuration of the mapping interval via a MultiScanMapper instance.
* Renamed input cloud topic for MultiScanRegistration component to "\multi_scan_points" and added default mapping to launch files.
* Added MultiScanMapper class providing a linear mapping from vertical point angles to scan rings.
* Moved scanPeriod from ScanRegistration to RegistrationParams (configurable via the "scanPeriod" parameter).
* Added imuHistorySize to RegistrationParams (configurable via the "imuHistorySize" parameter).
* Added "lidar", respectively "minVerticalAngle", "maxVerticalAngle" and "nScanRings" parameters to MultiScanRegistration component. Possible options for "lidar" parameter: "VLP-16", "HDL-32" and "HDL-64E". Alternatively, the linear mapping can be specified via the vertical range ("min/maxVerticalAngle") and the number of scan rings ("nScanRings"). The min/max vertical angles together with the number of scan rings is only evaluated if no "lidar" parameter is present.
* Renamed the "scanRegistration" node to "multiScanRegistration" and adapted launch files.

Changes to the logic:
* The mapping of the scan rings for the VLP-16 lidar is now linear from -15 to 15. The old mapping was alternating scan rings based on positive and negative vertical angles. However, the algorithm IMHO requires scans to be next to each other, as it searches the neighbouring scans for corresponding points.

New features:
* Simple support for arbitrary multi laser lidar systems. Some calculations like the reference system transformation need some further work to be truely generic, but it should at least work for all Velodyne lidars.
* Added variable for the maximum number of iterations in LaserOdometry and LaserMapping (configurable via the "maxIterations" parameter).
* Added abort thresholds for deltaT and deltaR to LaserOdometry and LaserMapping (configurable via the "deltaTAbort" and "deltaRAbort" parameter).
* Added parsing of scanPeriod from parameters to LaserOdometry and LaserMapping (configurable via the "scanPeriod" parameter).
* Added parsing of ioRatio to LaserOdometry (configurable via the "ioRatio" parameter).
* Added parsing of filter sizes to LaserMapping (configurable via the "cornerFilterSize", "surfaceFilterSize" and "mapFilterSize" parameters).
* Added scanPeriod argument to launch files and hand it over to all relevant components.
@laboshinl laboshinl merged commit b8784a8 into laboshinl:master Dec 10, 2017
@StefanGlaser StefanGlaser deleted the multi_scan branch December 11, 2017 14:49
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants