0

I am currently conducting a small research project in my engineering school. Its objective is to be able, using a sensor on a car like an IBEO Lux, to scan the environment, to store the coordinates of the points found by the sensor in a .csv file (using 3 columns, each for X, Y and Z), then use this .csv file to reconstruct the environment that was scanned, so that it can be viewed in a software like Blender afterwards, for example.

I have written a simulator using Unity 5 that can do the features described above, except for the reconstruction part. I asked my teacher where I should look since I have never done this kind of things, and he suggested me to look into the work of Delaunay and Voronoï. Problem is I am supposed to study these subjects next year. Even if I will obviously do it anyway, it is kinda blurry at the moment, since I don't exactly know where and what to look for.

The objective here would be to "convert" a .csv file containing 3D coordinates (using the world coordinates of a Unity scene) to a .obj file containing the needed vertex, so that it can viewed and used easily.

This is not meant to be in real-time by the way, it could be ran on closure of the simulation in Unity (using C#), or even using another language (a .py script in Blender would be a nice alternative solution).

What are the different methods and ways to achieve this objective ?

Bart
  • 9,925
  • 7
  • 47
  • 64
  • This question is probably too broad for SO in it's current form, but take a look at [Marching cubes](https://en.wikipedia.org/wiki/Marching_cubes). – PM 2Ring Nov 08 '15 at 17:09
  • I think reading the answers to this question will help you: http://stackoverflow.com/questions/838761/robust-algorithm-for-surface-reconstruction-from-3d-point-cloud – TheInnerLight Nov 08 '15 at 17:20
  • If you want to play around without programming, take a look at paraview (http://www.paraview.org/). That Viewer can build structured grids and export to various formats. See this answer on how to import a CSV: http://stackoverflow.com/questions/12809758/displaying-an-elevation-grid-in-paraview Furthermore, you also have a python-interface for advanced tasks. – Dietrich Nov 08 '15 at 18:51
  • Depends what you need from the model.. If it's only viewing, you could just create a small billboard at each point. Depending on how many points you have, that might be a lot so take a fraction of them. On the other hand, if you want to resolve points to surfaces and then solid objects, it's going to be pretty tricky. – Basic Nov 08 '15 at 19:28
  • Thanks for the answer, I learned a few things here. What I need to do with the model could be anything, it can be viewing and texturing in Blender, import it in Unity and use it as an environment... It needs to be a set of vertices that will give me a whole 3D model. I looked into the various links, ParaView and Meshlab show me the right point cloud set in the view, but once I try to convert into a mesh using differents methods, it becomes a complete mess (lack of normal maybe ?) What I actually truly need is a practical example (C#, C++...) so I can understand the many concepts behind it. – Joshua Senouf Nov 08 '15 at 21:37

0 Answers0