Using common API with Eigen point cloud points

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

Using common API with Eigen point cloud points

Iason Sarantopoulos
Hi all,

I was trying to use the PCL common API with a point cloud having Eigen vectors as points. In overall, PCL supports sufficient abstraction for using Eigen and it is also useful to have Eigen Vectors because it enables calculations without the need of extra mappings.

The problem is that in the common library I get a compilation error and as I can see some functions use member variables of the point cloud's point (x, y, z) assuming that this is implemented by the type*, which is not the case of regular Eigen vectors.

Is this a limitation in the abstraction of PCL or I am not using the PCL API correctly?

* E.g: https://github.com/PointCloudLibrary/pcl/blob/f980937662770a0f5499c8cbaf2f94ff4078c5cd/common/include/pcl/common/impl/common.hpp#L100

Thank you in advance,
- Iason Sarantopoulos

--
Iason Sarantopoulos
Electrical and Computer Engineer

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

Re: Using common API with Eigen point cloud points

Sérgio Agostinho
PCL can support point type abstractions up to a certain level, but there are certain assumptions which take place and you just bumped into the most fundamental one. We assume that a point type which stores coordinates, defines members x, y and z. For more of these assumptions I recommend having a detailed look at  

https://github.com/PointCloudLibrary/pcl/blob/master/common/include/pcl/impl/point_types.hpp

In order to fully exploit a good interaction between Eigen and PCL, Eigen::Map is your goto tool and it will be required constantly.  

Cheers



--

On Monday, Feb 05, 2018 at 12:55 PM, Iason Sarantopoulos <[hidden email]> wrote:
Hi all,

I was trying to use the PCL common API with a point cloud having Eigen vectors as points. In overall, PCL supports sufficient abstraction for using Eigen and it is also useful to have Eigen Vectors because it enables calculations without the need of extra mappings.

The problem is that in the common library I get a compilation error and as I can see some functions use member variables of the point cloud's point (x, y, z) assuming that this is implemented by the type*, which is not the case of regular Eigen vectors.

Is this a limitation in the abstraction of PCL or I am not using the PCL API correctly?

* E.g: https://github.com/PointCloudLibrary/pcl/blob/f980937662770a0f5499c8cbaf2f94ff4078c5cd/common/include/pcl/common/impl/common.hpp#L100

Thank you in advance,
- Iason Sarantopoulos

--
Iason Sarantopoulos
Electrical and Computer Engineer
_______________________________________________
[hidden email] / http://pointclouds.org
http://pointclouds.org/mailman/listinfo/pcl-users

_______________________________________________
[hidden email] / http://pointclouds.org
http://pointclouds.org/mailman/listinfo/pcl-users

signature.asc (882 bytes) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: Using common API with Eigen point cloud points

Iason Sarantopoulos
Hi Sergio,

Thank you for the prompt reply, it is sufficiently clear.

Regards.

On Mon, Feb 5, 2018 at 2:25 PM, Sérgio Agostinho <[hidden email]> wrote:
PCL can support point type abstractions up to a certain level, but there are certain assumptions which take place and you just bumped into the most fundamental one. We assume that a point type which stores coordinates, defines members x, y and z. For more of these assumptions I recommend having a detailed look at  


In order to fully exploit a good interaction between Eigen and PCL, Eigen::Map is your goto tool and it will be required constantly.  

Cheers



--

On Monday, Feb 05, 2018 at 12:55 PM, Iason Sarantopoulos <[hidden email]> wrote:
Hi all,

I was trying to use the PCL common API with a point cloud having Eigen vectors as points. In overall, PCL supports sufficient abstraction for using Eigen and it is also useful to have Eigen Vectors because it enables calculations without the need of extra mappings.

The problem is that in the common library I get a compilation error and as I can see some functions use member variables of the point cloud's point (x, y, z) assuming that this is implemented by the type*, which is not the case of regular Eigen vectors.

Is this a limitation in the abstraction of PCL or I am not using the PCL API correctly?

* E.g: https://github.com/PointCloudLibrary/pcl/blob/f980937662770a0f5499c8cbaf2f94ff4078c5cd/common/include/pcl/common/impl/common.hpp#L100

Thank you in advance,
- Iason Sarantopoulos

--
Iason Sarantopoulos
Electrical and Computer Engineer
_______________________________________________
[hidden email] / http://pointclouds.org
http://pointclouds.org/mailman/listinfo/pcl-users

_______________________________________________
[hidden email] / http://pointclouds.org
http://pointclouds.org/mailman/listinfo/pcl-users




--
Iason Sarantopoulos
Electrical and Computer Engineer
Research Assistant @ CERTH

_______________________________________________
[hidden email] / http://pointclouds.org
http://pointclouds.org/mailman/listinfo/pcl-users