undefined reference to tf::poseMsgToEigen
I'm on Ubuntu 14.04 with ROS Indigo.
Inside a service callback, I want to convert a geometry_msgs::Pose
to Eigen::Affine3d
. I'm trying to use tf::poseMsgToEigen
.
My includes are as follows:
#include <tf/tf.h>
#include <tf_conversions/tf_eigen.h>
#include <eigen_conversions/eigen_msg.h>
#include <geometry_msgs/Pose.h>
The relevant part of code is:
geometry_msgs::Pose pose;
Eigen::Affine3d transform;
tf::poseMsgToEigen(pose, transform);
I get the following error:
undefined reference to `tf::poseMsgToEigen(geometry_msgs::Pose_<std::allocator<void> > const&, Eigen::Transform<double, 3, 2, 0>&)'
collect2: error: ld returned 1 exit status
Inside my CMakeLists.txt
I have
find_package(catkin REQUIRED COMPONENTS
std_msgs
geometry_msgs
tf
tf_conversions
)
and in the package.xml
I have added the build and exec_depends for the same.
Thanks a lot in advance for your help.
Are you maybe missing
eigen conversion
?@destogl I already included it:
#include <eigen_conversions/eigen_msg.h>
. Do I have to include it anywhere else?I was missing tf_conversions and had similar error.