[Rock-dev] MulitlevelLaserScan base type integration

Sascha Arnold sascha.arnold at dfki.de
Tue Jan 21 11:32:14 CET 2014


Hi,
some time ago we already had a short discussion on that topic but didn't
finish and I'd like to catch up on this now.

The current version of the MulitlevelLaserScan needs to be improved, if
it should become a base type.
Basically this type should be a 3D version of the 2D Laserscan. As far
as I know the LaserScan itself should be improved on long term, mainly
because the units are not in meter and the range error should be a
separated state.

In my opinion there are three possible ways of doing that:

1. Using the current LaserScan in the MulitlevelLaserScan and change
them together in the future. That would look like this:
> struct MultilevelLaserScan
> {
>     MultilevelLaserScan() : time(base::Time::now()) {};
>
>     base::Time time;
>
>     std::vector< base::samples::LaserScan > scans;
>
>     std::vector< base::Angle > angles;
> };

2. Define and use a improved LaserScan inside the MulitlevelLaserScan
and change the current LaserScan with the new one later.

3. Discretize both angles: Define a distance image type that can be used
for laser scan data. This comes closest to a 3D version of the
Laserscan, but that would mean to filter the data already in the sample
type, since most 3D lidars are a combination of a 2D lidar with a (not
so accurate) servo or motor. This is also true in the Velodyne case.

Personally I would prefer the first option for now.
Instead of a single angle a quaternion could be used to be more
flexible. But I don't know if there are any practical cases for that.


best regards,
Sascha
-------------- nächster Teil --------------
Ein Dateianhang mit HTML-Daten wurde abgetrennt...
URL: http://www.dfki.de/pipermail/rock-dev/attachments/20140121/0752fe34/attachment.htm 


More information about the Rock-dev mailing list