dense_laser_assembler Aggregates laser data very similarly to the point cloud assembler. However, the output data structures are very different. Instead of defining each laser ray as an XYZ point with an intensity, the dense_laser_assembler instead uses multiarrays to store the scans in a dense representation.
Intensity and Range data are each stored in their own Float32 multiarray. Each row of the multiarray is a scan, and these rows are stacked (sorted by the tilting angle) to form the 'rasterized' dense representation.
Meta information is also stored along with the range and intensity data. The tilting angle of the hokuyo is published as another multiarray. And the laser's configuration params are also published. This then provides us enough information to fully determine the location and time of any laser ray in the dense representation.
laser_image_node converts the intensity and range multiarrays into uint8 ROS images that can be viewed with image_view. This can often be a very useful debugging tool to make sure that the dense scans look reasonable.