Conversions
Converting data across libraries.
The data source/sink is:
Eigen
To go to/from messages, use eigen_conversions (or minkindr_conversions below).
Example:
#include <eigen_conversions/eigen_msg.h>
Eigen::Vector3d my_super_cool_vector(1.0, 2.0, 3.0);
geometry_msgs::Point point_msg;
tf::pointEigenToMsg(my_super_cool_vector, point_msg);
super_cool_publisher_.publish(point_msg);TF
To go to/from TF, use tf_conversions (or also minkindr_conversions below).
Example:
#include <tf_conversions/tf_eigen.h>
Eigen::Vector3d my_super_cool_vector(1.0, 2.0, 3.0);
tf::Vector3 my_super_cool_vector_tf;
tf::vectorEigenToTF(my_super_cool_vector, my_super_cool_vector_tf);
tf::Transform transform;
transform.setOrigin(my_super_cool_vector_tf);
transform_broadcaster_.sendTransform(
tf::StampedTransform(transform, ros::Time::now(), "map", "world"));minkindr (aslam::Transformation)
Please use the minkindr_conversions package in the minkindr_ros repo. This also wraps some of the Eigen/TF conversions for common datatypes (Eigen::Quaterniond, Eigen::Vector3d), so it is a viable alternative to {tf,eigen}_conversions in most cases. It also transforms minkindr Transformations back and forth to both messages and TF.
Example:
OpenCV Image
Please use cv_bridge. This allows very easy conversions to/from ROS messages.
Example:
Last updated
Was this helpful?