ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange
Ask Your Question

Porting from Eigen 2 to Eigen 3

asked 2012-05-08 09:55:30 -0500

Dave Coleman gravatar image

I'm trying to get the turtlebot_kinect_arm_calibration package converted to work with Eigen 3 (new in Fuerte). I've resolved the dependency issues but still get errors with rosmake:

src/calibrate_kinect_checkerboard.cpp:67:41: error: conversion from ‘tf::Quaternion’ to non-scalar type ‘btQuaternion’ requested

src/calibrate_kinect_checkerboard.cpp:68:38: error: conversion from ‘tf::Vector3’ to non-scalar type ‘btVector3’ requested

src/calibrate_kinect_checkerboard.cpp: In member function ‘bool CalibrateKinectCheckerboard::calibrate(std::string)’: src/calibrate_kinect_checkerboard.cpp:317:5: error: ‘estimateRigidTransformationSVD’ is not a member of ‘pcl’not a member of ‘pcl’

I'd like to get the Eigen2 support modes enabled using the pre-processor #define EIGEN2_SUPPORT_STAGE10_FULL_EIGEN2_API but putting that at the top of my .cpp files is not working. Does that go somewhere in the CMake or manifest.xml files? Has anyone already gotten the Eigen->TF working with Eigen 3?


edit retag flag offensive close merge delete


Non of these errors appear to be Eigen related. I also suggest that you file a ticket for this so the maintainer will be notified.

tfoote gravatar image tfoote  ( 2012-05-10 08:32:26 -0500 )edit

1 Answer

Sort by » oldest newest most voted

answered 2012-05-08 12:57:51 -0500

Dave Coleman gravatar image

I was able to resolve the first two error messages with the following replacement:

On line 68 convert:

btQuaternion quat = trans.getRotation();
btVector3 origin = trans.getOrigin();


btQuaternion quat( trans.getRotation()[0], trans.getRotation()[1],                                                 
                   trans.getRotation()[2], trans.getRotation()[3] );                                                                                                                                                                                                       
btVector3 origin( trans.getOrigin()[0], trans.getOrigin()[1], trans.getOrigin()[2]);

But I still haven't resolved other issues, such that I have not been able to successfully compile the package yet.

edit flag offensive delete link more

Question Tools

1 follower


Asked: 2012-05-08 09:55:30 -0500

Seen: 548 times

Last updated: May 08 '12