personalrobotics / OpenChisel

An open-source version of the Chisel chunked TSDF library.
463 stars 128 forks source link

Documentation for pointcloud format and API cycles #6

Closed stetro closed 8 years ago

stetro commented 8 years ago

Thanks for building this nice open source library!

I got a few questions about the input data and the API cycles which I haven't found in the README and in the ROS implementation. I'm currently trying to use open_chisel on project tango without the ros connection.

Thanks a lot!

Edit: Sorry, I've red the paper and took another look into the code:

mklingen commented 8 years ago

Sorry, somehow I haven't been getting any notifications on this repository.

Usually, I don't use the point clouds at all. If you have a depth image available I highly recommend using that instead. Its much faster.

That said, the meshes are only generated for chunks with new data. If you wanted to use the meshes in a graphical display, I would only generate meshes that a) are visible to the camera and b) have new data. On Tango, the depth image only refreshed at 3 hz, so it was sufficient for us to re-generate meshes at that rate.

stetro commented 8 years ago

Thanks for your reply! I'm actually working on using this library cross compiled on a Project Tango device (picture below). It is working but I'm still struggling with some configurations. Unfortunately the current Tango API doesn't deliver a depthmap, just a list of unordered points, caused by a not implemented ij array in XYZij. May I could project these points first to a depthmap before adding them to chisel.

I would venture the guess that there is a chisel implementation inside the client API, which is marked experimental. I've also tried this, but it crashes when I use TangoService_Experimental_extractMesh after a reconstruction phase. May you have any insights into this, since it is not documented at all?

Sorry for being kind of off topic to this issue. :see_no_evil:

mklingen commented 8 years ago

Actually it's a hardware limitation of current tango devices that they do not have depth maps. You can use the point cloud, or you can project the points back onto the image (but they will be very sparse).

The original 3D reconstruction technique we wrote for Tango is definitely in the API, but its closed source. I wrote some of those experimental API calls last year. I have no idea if they're maintained or being used at all anymore.

stetro commented 8 years ago

Thanks for your answer! I will use the projected pointcloud with a guided filter to test the reconstruction improvements. https://github.com/stetro/project-tango-poc#opencv-depthmap-generation-and-filtering

joseports commented 8 years ago

Hi. I am trying to build OpenChisel available on https://github.com/personalrobotics/OpenChisel on Windows 10, X64 with VS2015. However the build of ros fails due to not finding a cmake_modulesConfig.cmake. If anyone can advise I would really much appreciate it

mklingen commented 8 years ago

@joseports I've never tried building OpenChisel for Windows. My suspicion is that anything involving ros will not build, as ros is only supported on Ubuntu.

joseports commented 8 years ago

Thank you mklingen, I suspected it wasn't going to be that easy :-)

mklingen commented 8 years ago

However, I'm pretty sure the open_chisel package on its own will build on Windows with a few minor modifications.

joseports commented 8 years ago

I'll dig into it, I just wanted to make sure that it wasn't just me missing some easily available config file or the like. Thank you