Show EOL distros: 

laser_pipeline

Package Summary

Meta-package of libraries for processing laser data, including converting laser data into 3D representations.

laser_pipeline: laser_assembler | laser_filters | laser_geometry

Package Summary

Meta-package of libraries for processing laser data, including converting laser data into 3D representations.

laser_pipeline: laser_assembler | laser_filters | laser_geometry

Package Summary

Meta-package of libraries for processing laser data, including converting laser data into 3D representations.

laser_pipeline: laser_assembler | laser_filters | laser_geometry

Package Summary

Meta-package of libraries for processing laser data, including converting laser data into 3D representations.

laser_pipeline: laser_assembler | laser_filters | laser_geometry

Package Summary

Meta-package of libraries for processing laser data, including converting laser data into 3D representations.

laser_pipeline: laser_assembler | laser_filters | laser_geometry

Package Summary

Meta-package of libraries for processing laser data, including converting laser data into 3D representations.

laser_pipeline: laser_assembler | laser_filters | laser_geometry

Package Summary

Meta-package of libraries for processing laser data, including converting laser data into 3D representations.

laser_pipeline: laser_assembler | laser_filters | laser_geometry

Package Summary

Meta-package of libraries for processing laser data, including converting laser data into 3D representations.

Overview

The laser_pipeline stack is intended to do the necessary processing to get from the output of a scanning laser rangefinder to a more useful 3D representation of a point cloud. This processing takes three distinct steps:

  • Filtering: The raw measurements coming directly out of the laser scanners are often times noisy, or contain invalid measurements. We usually want to provide some amount of smoothing, remove spurious readings due to mixed-pixel or edge responses, or subtract points known to be inside the footprint of the robot. This filtering is done by the assorted filters in the laser_filters package.

  • Projection: Once the appropriate filtering has been done, we want to transform the measurements from a set of ranges and angles, into a set of 3D Cartesian points. Functions to do this transformation efficiently, while accounting for effects such as skew of a tilting laser, are defined in the laser_geometry package.

  • Assembly: Finally, we often move the laser scanner through 3D space to generate a fully 3D (or at least 2.5D cloud). The laser_assembler package efficiently aggregates scans over time and makes such clouds available to other nodes through a ROS service call.

For an end-user higher up the system, the laser_assembler is actually capable of performing all 3 of these steps, implementing an arbitrary filter chain on its input, performing a high-fidelity transformation to a point cloud internally, and then making clouds available via a ROS service call.

Lower-level users with specific needs, however, may want to write their own special-purpose filters, or custom laser processing nodes.

Point Clouds

Point clouds generated using the laser pipeline results in a sensor_msgs/PointCloud or (New in diamondback) sensor_msgs/PointCloud2 message. This point cloud can have the following channels attached to it:

  • "intensities" - Intensity of the return for each point

  • "index" - The index from the original array for each point

  • "distances" - The distance from the laser to each point

  • "stamps" - The specific timestamp at which each point was measured. This is represented as an offset (in seconds) from the timestamp of the point cloud

New in diamondback

  • `"vp_x","vp_y","vp_z" - Point in the cloud from which the point was observed.

Hardware Requirements

The laser_pipeline assumes that you have a scanning laser rangefinger. The most common examples of these are the Hokuyo UTM and the Sick LMS. The laser_drivers stack provides drivers for these particular models. However, any driver which outputs the sensor_msgs/LaserScan, including gazebo, can be used as the input to this pipeline.

Report a Bug

<<TracLink(ros-pkg laser_pipeline)>>

rviz_laser_sm.png

RViz screenshot of laser_scan messages from a tilting laser rangefinder data being projected into 3D.

Wiki: laser_pipeline (last edited 2011-03-11 05:37:36 by JasonYosinski)