thoughts on CGAL point processing?

classic Classic list List threaded Threaded
4 messages Options
Reply | Threaded
Open this post in threaded view
|

thoughts on CGAL point processing?

Rosen Diankov
Hi guys,

First, I want to congratulate Radu on the excellent job he's done this
year in developing PCL and maintaining a vibrant community. I really
like the stand-alone direction PCL is taking, which allows development
to focus on the core functionality.

Anyway, I've started using the Computational Geometry Algorithms
Library ( www.cgal.org ) for more robust algebra and geometry
computations. It is amazing how rigorous development is in
guaranteeing exactness of operations. Even a simple operations like
plane tests can get complicated ;0)

Anyway, I just noticed today that they also offer some point set processing.

http://www.cgal.org/Manual/latest/doc_html/cgal_manual/Point_set_processing_3/Chapter_main.html

Although they don't offer that much functionality compared to pcl, the
fact that all their computations are backed up by interval arithmetic
and multi-precision libraries like mpfr and gmp makes it very
attractive. They've really worked out the cascading logic so the user
only sees 15% slow down compared to regular double arithmetic.

From what I've heard, CGAL is used in industrial robotics where
precision requirements are extremely high.

What are your guys' thoughts on this? Should I think of PCL as being a
faster version with no strict accuracy guarantees?

Obviously there's usage cases for both sides of the spectrum here, so
this is not a feature request as much as trying to figure out where
CGAL/PCL fit in all this.

thanks and happy holidays!
rosen,
_______________________________________________
[hidden email] / http://pointclouds.org
https://code.ros.org/mailman/listinfo/pcl-users
Reply | Threaded
Open this post in threaded view
|

Re: thoughts on CGAL point processing?

Brian Gerkey
On Thu, Dec 30, 2010 at 8:46 PM, Rosen Diankov <[hidden email]> wrote:
> First, I want to congratulate Radu on the excellent job he's done this
> year in developing PCL and maintaining a vibrant community. I really
> like the stand-alone direction PCL is taking, which allows development
> to focus on the core functionality.

Hear, hear!

> Anyway, I've started using the Computational Geometry Algorithms
> Library ( www.cgal.org ) for more robust algebra and geometry
> computations. It is amazing how rigorous development is in
> guaranteeing exactness of operations. Even a simple operations like
> plane tests can get complicated ;0)
>
> Anyway, I just noticed today that they also offer some point set processing.

A few years back, I used CGAL pretty extensively and was very happy
with it.  My application was a fairly traditional computational
geometry problem involving manipulation of planar arrangements of
curves (where the curves represented robot sensor fields of view), and
it was offline, not in a control loop.  So I can't comment on the
point set processing, nor on efficiency.  But I can say that I was
impressed with the level of professionalism and attention to detail in
the library, as well as the responsiveness of the community (e.g., I
needed exact curve-curve intersections, and they worked with me to add
it).  Once you wrap your head around the template madness, it's a nice
system.

        brian.
_______________________________________________
[hidden email] / http://pointclouds.org
https://code.ros.org/mailman/listinfo/pcl-users
Reply | Threaded
Open this post in threaded view
|

Re: thoughts on CGAL point processing?

nizar sallem
In reply to this post by Rosen Diankov
At Fri, 31 Dec 2010 13:46:40 +0900,
Rosen Diankov wrote:

>
> Hi guys,
>
> First, I want to congratulate Radu on the excellent job he's done this
> year in developing PCL and maintaining a vibrant community. I really
> like the stand-alone direction PCL is taking, which allows development
> to focus on the core functionality.
>
> Anyway, I've started using the Computational Geometry Algorithms
> Library ( www.cgal.org ) for more robust algebra and geometry
> computations. It is amazing how rigorous development is in
> guaranteeing exactness of operations. Even a simple operations like
> plane tests can get complicated ;0)
>
> Anyway, I just noticed today that they also offer some point set processing.
>
> http://www.cgal.org/Manual/latest/doc_html/cgal_manual/Point_set_processing_3/Chapter_main.html
>
> Although they don't offer that much functionality compared to pcl, the
> fact that all their computations are backed up by interval arithmetic
> and multi-precision libraries like mpfr and gmp makes it very
> attractive. They've really worked out the cascading logic so the user
> only sees 15% slow down compared to regular double arithmetic.
>
> From what I've heard, CGAL is used in industrial robotics where
> precision requirements are extremely high.
>
> What are your guys' thoughts on this? Should I think of PCL as being a
> faster version with no strict accuracy guarantees?
>
> Obviously there's usage cases for both sides of the spectrum here, so
> this is not a feature request as much as trying to figure out where
> CGAL/PCL fit in all this.
>
> thanks and happy holidays!
> rosen,
> _______________________________________________
> [hidden email] / http://pointclouds.org
> https://code.ros.org/mailman/listinfo/pcl-users
Hi and Happy New Year first,

From my own experience,
CGAL is great as far as you stick to the manual and don't try to have
excessive user data or intend to plug your data in vertices or edges
(they don't exist anyway) directly.
Another point is that it has a lot of havy dependencies and it is a
nightmare to compile from sources for a lot of them.
Another thing that I don't like is that the templatization is a bit
weird and not really straight forward to understand. I personnaly used
a non released library called VCG
http://vcg.sourceforge.net/index.php/Main_Page which doesn't
offer as much as CGAL but it is really lighter and a lot more
customizable.
For my self I agree that we have to think on adding several points
sets processing that already exist but would be very convenient to
have in PCL instead of external linkage and I suggest those ones:
- a good points based geometrical kernel for d-dimension polygons and
polyhedra
- some efficient meshing algorithm: BPA, Poisson, Delaunay and
Marching Cubes would be nice
- primitives intersection based on points to stick with PCL aim.

That was my opinion and hope it helps.

Best,
--
Nizar
_______________________________________________
[hidden email] / http://pointclouds.org
https://code.ros.org/mailman/listinfo/pcl-users
Reply | Threaded
Open this post in threaded view
|

Re: thoughts on CGAL point processing?

Radu B. Rusu
Administrator
Hi all,

Happy New Year!

I also used CGAL (and tried to used VTK for more than just visualization) a while back. Everytime we give PCL talks,
there's someone asking us whether it would make sense to reuse more of the CGAL functionality in PCL, and everytime we
say "yes, it would". :)

CGAL is pretty great, but as everyone already noticed, it serves a different purpose. We would love to brainstorm more
on how to integrate the two, so that our user communities benefit.

Right now, PCL is looking more at the 3D perception/robotics communities, and CGAL is more computational
geometry/computer graphics. PCL is designed to be modular, flexible, and fast (we tend to overuse floats for their SSE
advantages), but I see how we could benefit from double precision and gmp in the future.


On 01/01/2011 03:12 PM, Nizar Khalifa Sallem wrote:
>> What are your guys' thoughts on this? Should I think of PCL as being a
>> faster version with no strict accuracy guarantees?

We haven't thought too much about accuracy guarantees, but it could become important later.

>  From my own experience,
> CGAL is great as far as you stick to the manual and don't try to have
> excessive user data or intend to plug your data in vertices or edges
> (they don't exist anyway) directly.
> Another point is that it has a lot of havy dependencies and it is a
> nightmare to compile from sources for a lot of them.

I agree with the latter assessment... I too had big issues compiling CGAL from source.

> For my self I agree that we have to think on adding several points
> sets processing that already exist but would be very convenient to
> have in PCL instead of external linkage and I suggest those ones:
> - a good points based geometrical kernel for d-dimension polygons and
> polyhedra

That sounds interesting. I think we'll tackle them on a need by need basis, unless someone is willing to put more effort
into that.

> - some efficient meshing algorithm: BPA, Poisson, Delaunay and
> Marching Cubes would be nice

We have two meshing algorithms that we're finalizing right now, and I suppose we could incorporate a third based on
Poisson. Contributions for marching cubes or anything else, are welcome! In fact, we might need to search for more
developers to contribute and maintain the Surface Reconstruction library within PCL, as Zoli and myself are kind of
neglecting it at the moment. :-/

> - primitives intersection based on points to stick with PCL aim.

Yes. This should definitely be on the todo list for the near future.

Cheers,
Radu.
_______________________________________________
[hidden email] / http://pointclouds.org
https://code.ros.org/mailman/listinfo/pcl-users