Skip to content

Support for lidar dual returns (and multiple?) #594

@peci1

Description

@peci1

Desired behavior

The lidar sensor supports returning dual (or multiple) returns.

Alternatives considered

There are no good alternatives.

Implementation suggestion

Does anybody have an idea how this could be implemented? Have you seen any implementations?

For GPU lidar, I think it would need some quite advanced work with the depth buffer.

For raycasting lidars (once they're merged here), it could be a bit easier, but still some work.

It would also mean that the output of the lidar sensor would either be two (or multiple) pointcloud topics, or that the pointcloud being published would have to have the additional returns encoded into extra channels (this is preferable I think).

Additional context

E.g. Ouster OS-X Rev 6+ support dual returns. They offer multiple ordering options: STRONGEST_TO_WEAKEST, FURTHEST_TO_NEAREST, NEAREST_TO_FURTHEST. I think this ordering is just a minor implementation effort compared to the rendering part.

Even the old 2D lidar Sick LMS-151 can return dual returns. In our ancient fork https://github.com/peci1/LMS1xx/blob/c999ab90e059dc51dddd6f5ff578bb15e8de7733/src/LMS1xx_nodelet.cpp#L67 we published the second return as a separate LaserScan message, but I don't think that's necessary.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    Status

    Inbox

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions