geometry.hpp
Go to the documentation of this file.
00001 
00004 /*****************************************************************************
00005 ** Ifdefs
00006 *****************************************************************************/
00007 
00008 #ifndef sophus_ros_conversions_GEOMETRY_HPP_
00009 #define sophus_ros_conversions_GEOMETRY_HPP_
00010 
00011 /*****************************************************************************
00012 ** Includes
00013 *****************************************************************************/
00014 
00015 #include <geometry_msgs/Pose.h>
00016 #include <geometry_msgs/Transform.h>
00017 #include <geometry_msgs/Vector3.h>
00018 #include <sophus/se3.hpp>
00019 #include <tf/transform_listener.h>
00020 /*****************************************************************************
00021 ** Namespaces
00022 *****************************************************************************/
00023 
00024 namespace sophus_ros_conversions {
00025 
00026 /*****************************************************************************
00027 ** Interfaces
00028 *****************************************************************************/
00029 
00036 void poseMsgToSophus(const geometry_msgs::Pose &p, Sophus::SE3f &s);
00037 
00043 geometry_msgs::Pose sophusToPoseMsg(const Sophus::SE3f& s);
00044 
00050 void vector3MsgToSophus(const geometry_msgs::Vector3 &v, Sophus::SE3f::Point &translation);
00051 
00057 void transformMsgToSophus(const geometry_msgs::Transform &transform, Sophus::SE3f &se3);
00058 
00059 
00065 template<typename T>
00066 void stampedTransformToSophus( const tf::StampedTransform & transform, Sophus::SE3Group<T> & se3 )
00067 {
00068         Eigen::Quaternion<T> q;
00069         Eigen::Matrix<T,3,1> t;
00070         
00071         q.x() = transform.getRotation().getX();
00072         q.y() = transform.getRotation().getY();
00073         q.z() = transform.getRotation().getZ();
00074         q.w() = transform.getRotation().getW();
00075         t.x() = transform.getOrigin().getX();
00076         t.y() = transform.getOrigin().getY();
00077         t.z() = transform.getOrigin().getZ();
00078         se3 = Sophus::SE3Group<T>(q,t);
00079 }
00080 
00087 Sophus::SE3f transformMsgToSophus(const geometry_msgs::Transform &transform);
00088 
00094 geometry_msgs::Transform sophusToTransformMsg(const Sophus::SE3f& se3);
00095 
00096 
00097 /*****************************************************************************
00098 ** Trailers
00099 *****************************************************************************/
00100 
00101 } // namespace sophus_ros_conversions
00102 
00103 #endif /* sophus_ros_conversions_GEOMETRY_HPP_ */


sophus_ros_conversions
Author(s): Daniel Stonier
autogenerated on Thu Jun 6 2019 17:47:06