David

A couple of days ago I checked in a BSP tree locator which was written originally for fast ray/cell intersections within VTK. (I used it coincidentally with Lidar data many years ago, except that we were given lidar data of buildings and trees which we used to reconstruct 3D models of towns for radio propagation analysis). Anyway, the BSP tree may give you a significant speed up over the Oct tree locator. If you try it, please let me know if it does make a difference - and also if you get any discrepancies. I made some optimization tweaks a while back which may have introduced errors under certain conditions and I wrote the original code so long ago, I forgot some of the secret twiddle factors so it would be good to test it on a hard problem which might expose any bugs.

JB
Dave,

My implementation is simply a collection of ray/mesh intersections. There is no attempt at modeling the waveform of the return that the hardware would see - the output is simply a 3d coordinate along each ray. The idea is not to simulate the scanner, but rather treat is a black box and get the point cloud that would be at the output of the real scanning process. To simulate the absorption, scattering, etc you would have to have a very detailed model with these parameters available at each point - where I just work with simple points and triangles.

I'm still looking into the VTK filter style implementation that Pat recommended, when it gets to a reasonable state (which shouldn't be too long, as it already uses mostly VTK classes) I'll post it so you can try it out.

Thanks,

David


On Sun, Aug 9, 2009 at 5:09 PM, <[email protected]> wrote:

Hi David,
Our group is just starting to get into lidar scanning of forests so your proposed contribution does sound very interesting to us. Just a few days back we were discussing the idea of simulating a lidar scan of a detailed polygonal model of a single tree. This idea is to understand from first principles what lidar returns from such a complex target look like, and in a controlled environment where we could play around with various parameters and see what the effect on return data is. For that exercise we were thinking of simulating just the direct 'first order' reflections. But longer term we are very interested in full waveform lidar data. Would your implementation allow simulation of this? I'm guessing not as this would require complex and slow calculations of secondary stuff like transmission, absorbtion, re-emission and scattering.
Having a lidar simulator in Paraview would make things very convenient for us, but if there is no other support for this we may be keen to talk to you about what you have implemented in C++.
Actually our first problem is to get / create detailed 3D polygonal models of trees - right down to the individual leaves - gulp - this could keep us busy for a while yet.

regards (or should that be "many happy returns"), Dave Pont

Inactive hide details for David Doria ---08/08/2009 06:51:47 a.m.---On Thu, Jul 30, 2009 at 12:21 PM, David Doria <David Doria ---08/08/2009 06:51:47 a.m.---On Thu, Jul 30, 2009 at 12:21 PM, David Doria <


From:


David Doria <[email protected]>

To:

ParaView <[email protected]>, [email protected]

Date:

08/08/2009 06:51 a.m.

Subject:

Re: [vtkusers] Adding a synthetic LiDAR scanner to VTK/Paraview





On Thu, Jul 30, 2009 at 12:21 PM, David Doria <[email protected]> wrote:
    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.

    The inputs are:

    Scanner position (3D coordinate)
    Min/Max phi angle (how far "up and down" the scanner should scan)
    Min/Max theta angle (how far "left and right" the scanner should scan)
    Scanner "forward" (the phi=0, theta=0 direction)
    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)

    The outputs are:
    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.
    A .vtp file that is simply an unorganized point cloud of the scan returns.

    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.

    Can I get some feedback on if this is an acceptable extension to vtk/paraview capabilities?

    Thanks,


    David

I didn't get any responses from this - would anyone mind responding (negative responses are just as helpful as positive ones :) ) so I can put this to rest or move forward, which ever the community vote turns out :).

Thanks,

David
_______________________________________________
Powered by
www.kitware.com


Visit other Kitware open-source projects at
http://www.kitware.com/opensource/opensource.html


Please keep messages on-topic and check the VTK FAQ at:
http://www.vtk.org/Wiki/VTK_FAQ


Follow this link to subscribe/unsubscribe:
http://www.vtk.org/mailman/listinfo/vtkusers




_______________________________________________ Powered by www.kitware.com

Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html

Please keep messages on-topic and check the ParaView Wiki at: http://paraview.org/Wiki/ParaView

Follow this link to subscribe/unsubscribe:
http://www.paraview.org/mailman/listinfo/paraview
  


-- 
John Biddiscombe,                            email:biddisco @ cscs.ch
http://www.cscs.ch/
CSCS, Swiss National Supercomputing Centre  | Tel:  +41 (91) 610.82.07
Via Cantonale, 6928 Manno, Switzerland      | Fax:  +41 (91) 610.82.82
_______________________________________________
Powered by www.kitware.com

Visit other Kitware open-source projects at 
http://www.kitware.com/opensource/opensource.html

Please keep messages on-topic and check the ParaView Wiki at: 
http://paraview.org/Wiki/ParaView

Follow this link to subscribe/unsubscribe:
http://www.paraview.org/mailman/listinfo/paraview

Reply via email to