I am fairly new to ROS but have written a package called find_moving_objects. It does what its name suggests, from either a laser scan or point cloud 2 data stream. The wiki page is found here (sources are linked to from the wiki):
There is no classification, only detection, of objects. I have tried to write the package with performance computing in mind. The biggest bottleneck is mapping the points of the clouds onto a 2D plane, like in the laser scan case, which is used internally for the detection algorithm. Any suggestions on how to improve this are welcome!
Two message types are defined which are used to provide information about the detected objects’ positions and velocities in the
- sensor’s frame, as well as a
- fixed (typically odom) and
- base (typically base_link) frame.
Visualization messages are also published so that RViz can be used for debugging etc.
I hope that this can be helpful to someone!