The first milestone of the PCL Spectrolab Code Sprint has been completed. I received the Spectroscan 3D two weeks ago and I have used it to write a driver for the camera. In addition, I have created a simple 3D viewer for the camera which streams the data to a PCLVisualizer. All of the code for the driver (and the rest of the code sprint) can be found here. There are no Spectroscan3D units commericially available right now, but by the time I am done there will be a good set of open source tools to visualize and manipulate the data.
Here is an example scan from the camera.
The Spectroscan3D driver is split into two components. The first component encapsulates the communication with the lidar camera. It speaks the lidar’s UDP protocol and handles receiving the raw range/amplitude images from the scanner. This component is meant to be independent of PCL. This way future developers can use it with other software systems as well. The second layer wraps the driver in pcl grabber interface and transforms the range image into a point cloud. You can register for either PointXYZ or PointXYZI point cloud events from the scanner.
The next stage of the code sprint will be writing a visualizer capable of controlling the camera like a video camera. It will be able to watch a live stream, record the stream, or play back an old stream from disk. Stay tuned for more updates!