I have written a synthetic LiDAR scanner in c++ using VTK and VXL. That is, rather than setting up a collection of objects in real life and actually sending lasers into the scene, one can simply create a scene out of 3d models and "scan" it by casting rays at the models. This seems like something that could be a huge help to any researchers that work with 3D model/surface/point data and LiDAR data. I'm sure many researchers have their own implementations - after all it is a very straightforward process (simply a bunch of ray triangle intersections - which I have sped up using VTK's octree) but I think it would be very useful to someone starting out in the field and to attempt to unify some datasets. I've used it to produce data sets for which a ground truth is known in order to ensure algorithms are behaving properly before moving to "real" LiDAR scans. Also, noise can be added to the points to attempt to simulate a real LiDAR scan for researchers who do not have access to the very expensive equipment required to obtain real scans.<br>
<br>The inputs are:<br><br>Scanner position (3D coordinate)<br>Min/Max phi angle (how far "up and down" the scanner should scan)<br>Min/Max theta angle (how far "left and right" the scanner should scan)<br>
Scanner "forward" (the phi=0, theta=0 direction)<br>Angular sample spacing or number of points to acquire in the theta and phi directions (so the "grid" is a total of (num_theta x num_phi) points)<br><br>
The outputs are:<br>A .ptx file that maintains implicitly the structure of the scan (points are ordered as they were taken in "strips"). This is the output given by a real Leica scanner.<br>A .vtp file that is simply an unorganized point cloud of the scan returns.<br>
<br>It seems like this could be a neat little thing to add to paraview - just a couple of text boxes and sliders to set the parameters, load the scene you want to scan using existing paraview I/O, visualize the scan frustrum using paraview line sources, and then click "Scan!" to create your ptx and/or vtp.<br>
<br>Can I get some feedback on if this is an acceptable extension to vtk/paraview capabilities?<br><br>Thanks,<br><br>David<br>