Dave,<br><br>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.<br>
<br>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.<br>
<br clear="all">Thanks,<br><br>David<br>
<br><br><div class="gmail_quote">On Sun, Aug 9, 2009 at 5:09 PM, <span dir="ltr"><<a href="mailto:David.Pont@scionresearch.com" target="_blank">David.Pont@scionresearch.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<div>
<p>Hi David,<br>
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.<br>
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++. <br>
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.<br>
<br>
regards (or should that be "many happy returns"), Dave Pont<br>
<br>
<img src="?ui=2&ik=93801aabdc&view=att&th=12304ce87882bd30&attid=0.2&disp=emb&realattid=0.1&zw" alt="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 <" width="16" height="16" border="0"><font color="#424282">David Doria ---08/08/2009 06:51:47 a.m.---On Thu, Jul 30, 2009 at 12:21 PM, David Doria <</font><br>
<br>
</p><table width="100%" cellpadding="0" cellspacing="0" border="0">
<tbody><tr valign="top"><td width="1%"><img src="?ui=2&ik=93801aabdc&view=att&th=12304ce87882bd30&attid=0.1&disp=emb&realattid=0.2&zw" alt="" width="96" height="1" border="0"><br>
<font size="2" color="#5f5f5f">From:</font></td><td><div></div></td><td width="100%"><img src="?ui=2&ik=93801aabdc&view=att&th=12304ce87882bd30&attid=0.1&disp=emb&realattid=0.2&zw" alt="" width="1" height="1" border="0"><br>
<font size="2">David Doria <<a href="mailto:daviddoria%2Bvtk@gmail.com" target="_blank">daviddoria+vtk@gmail.com</a>></font></td></tr>
<tr valign="top"><td width="1%"><img src="?ui=2&ik=93801aabdc&view=att&th=12304ce87882bd30&attid=0.1&disp=emb&realattid=0.2&zw" alt="" width="96" height="1" border="0"><br>
<font size="2" color="#5f5f5f">To:</font></td><td width="100%"><img src="?ui=2&ik=93801aabdc&view=att&th=12304ce87882bd30&attid=0.1&disp=emb&realattid=0.2&zw" alt="" width="1" height="1" border="0"><br>
<font size="2">ParaView <<a href="mailto:paraview@paraview.org" target="_blank">paraview@paraview.org</a>>, <a href="mailto:vtkusers@vtk.org" target="_blank">vtkusers@vtk.org</a></font></td></tr>
<tr valign="top"><td width="1%"><img src="?ui=2&ik=93801aabdc&view=att&th=12304ce87882bd30&attid=0.1&disp=emb&realattid=0.2&zw" alt="" width="96" height="1" border="0"><br>
<font size="2" color="#5f5f5f">Date:</font></td><td width="100%"><img src="?ui=2&ik=93801aabdc&view=att&th=12304ce87882bd30&attid=0.1&disp=emb&realattid=0.2&zw" alt="" width="1" height="1" border="0"><br>
<font size="2">08/08/2009 06:51 a.m.</font></td></tr>
<tr valign="top"><td width="1%"><img src="?ui=2&ik=93801aabdc&view=att&th=12304ce87882bd30&attid=0.1&disp=emb&realattid=0.2&zw" alt="" width="96" height="1" border="0"><br>
<font size="2" color="#5f5f5f">Subject:</font></td><td width="100%"><img src="?ui=2&ik=93801aabdc&view=att&th=12304ce87882bd30&attid=0.1&disp=emb&realattid=0.2&zw" alt="" width="1" height="1" border="0"><br>
<font size="2">Re: [vtkusers] Adding a synthetic LiDAR scanner to VTK/Paraview</font></td></tr>
</tbody></table>
<hr style="color: rgb(128, 145, 165);" width="100%" noshade size="2" align="left"><div><div></div><div><br>
<br>
<br>
<br>
<font size="4">On Thu, Jul 30, 2009 at 12:21 PM, David Doria <</font><a href="mailto:daviddoria%2Bvtk@gmail.com" target="_blank"><u><font size="4" color="#0000ff">daviddoria+vtk@gmail.com</font></u></a><font size="4">> wrote:</font>
<ul><font size="4">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,</font><font size="4" color="#888888"><br>
<br>
David</font></ul>
</div></div><font size="4"><div><div></div><div><br>
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 :).<br>
<br>
Thanks,<br>
<br></div></div>
David</font><tt>_______________________________________________<br>
Powered by </tt><tt><a href="http://www.kitware.com" target="_blank">www.kitware.com</a></tt><div><tt><br>
<br>
Visit other Kitware open-source projects at </tt><tt><a href="http://www.kitware.com/opensource/opensource.html" target="_blank">http://www.kitware.com/opensource/opensource.html</a></tt></div><tt><br>
<br>
Please keep messages on-topic and check the VTK FAQ at: </tt><tt><a href="http://www.vtk.org/Wiki/VTK_FAQ" target="_blank">http://www.vtk.org/Wiki/VTK_FAQ</a></tt><div><tt><br>
<br>
Follow this link to subscribe/unsubscribe:<br>
</tt></div><tt><a href="http://www.vtk.org/mailman/listinfo/vtkusers" target="_blank">http://www.vtk.org/mailman/listinfo/vtkusers</a></tt><tt><br>
</tt><br>
<br>
</div>
</blockquote></div><br>