【tf的使用】【Eigen和tf中位姿表达方式转换】【tf::StampedTransform】【Eigen::Matrix4f】

  • 0 前言
  • 1 tf::StampedTransform<——>Eigen::Matrix4f
    • 1.1 实现代码
  • 2 tf::Quaternion和geometry_msgs/Quaternion的变换,变出roll, pitch, yaw
  • N 参考

0 前言

1 tf::StampedTransform<——>Eigen::Matrix4f

  • tf::StampedTransform:是ros里代表TF变换的数据类型,一般在机器人上读取雷达坐标系到机器人坐标系的信息就是通过读取tf信息.
  • Eigen::Matrix4f:是变换矩阵的位姿格式,4*4的矩阵,包括平移和旋转.

1.1 实现代码

  • 函数声明
bool TransformToMatrix(const tf::StampedTransform& transform, Eigen::Matrix4f& transform_matrix);
  • 函数实现
// transform是 child_frame 到 base_frame 的静态变换 tf
//  Eigen::Matrix4f 是4*4的变换矩阵,包括平移和旋转.bool TFListener::TransformToMatrix(const tf::StampedTransform& transform, Eigen::Matrix4f& transform_matrix) {//由transform获取位移矩阵 Eigen::Translation3f  (3 * 3)Eigen::Translation3f tl_btol(transform.getOrigin().getX(), transform.getOrigin().getY(), transform.getOrigin().getZ());// 旋转通过以下形式从TF获得:double roll, pitch, yaw;tf::Matrix3x3(transform.getRotation()).getEulerYPR(yaw, pitch, roll);Eigen::AngleAxisf rot_x_btol(roll, Eigen::Vector3f::UnitX()); //轴角表达形式Eigen::AngleAxisf rot_y_btol(pitch, Eigen::Vector3f::UnitY());Eigen::AngleAxisf rot_z_btol(yaw, Eigen::Vector3f::UnitZ());// 此矩阵为 child_frame 到 base_frame 的转换矩阵// child_frame 到 base_frame 的静态变换矩阵   平移*旋转 transform_matrix = (tl_btol * rot_z_btol * rot_y_btol * rot_x_btol).matrix();return true;
}

2 tf::Quaternion和geometry_msgs/Quaternion的变换,变出roll, pitch, yaw

const sensor_msgs::Imu::ConstPtr& imuIntf::Quaternion orientation;tf::quaternionMsgToTF(imuIn->orientation, orientation);tf::Matrix3x3(orientation).getRPY(roll, pitch, yaw);

N 参考

  • 几种位姿转换表示方式----tf::StampedTransform & Eigen::Matrix4f & Pose, 及其相互转换

【Eigen和tf中位姿表达方式转换】【tf::StampedTransform】【Eigen::Matrix4f】相关推荐

  1. 【转】tf中的padding方式SAME和VALID有什么区别?

    原文链接:tf中的padding方式SAME和VALID有什么区别? 转载于:https://www.cnblogs.com/exciting/p/11363489.html

  2. 求AVEDEV在极星量化中的表达方式

    C1=(TYP-talib.MA(TYP,10))/(0.03*AVEDEV(TYP,10))#求AVEDEV在极星的表达方式,python中可以引用MAE绝对平均偏差!在极星中无法引用!求教各位大神 ...

  3. 复数3+4i在python中的表达方式是_i(x+yi)=3+4i xy属于R,则复数x+yi的模是为什么xi-y=3+4......

    满意答案 口袋兔子耳朵长 2015.09.18 已帮助:3147万人 已回答:104万条 来自:阳光兔(北京)科技有限公司,是学大教育集团与奇虎360成立的合资公司,利用学大教育在内容和教育方面的资源 ...

  4. 第三篇:属性_第二节:控件属性在页面及源码中的表示方式

    一.属性在页面及源码中的表示方式 认真地看看页面中声明控件的代码,你会发现控件属性在页面中的表示千变万化.我们看看下面这些: <%@ Page Language="C#" A ...

  5. tensorflow tf.ConfigProto() (配置tf.Session的运算方式)(allow_soft_placement、inter_op_parallelism_threads等)

    tf.ConfigProto()主要的作用是配置tf.Session的运算方式,比如gpu运算或者cpu运算 log_device_placement=True 设置tf.ConfigProto()中 ...

  6. 几种位姿转换表示方式----tf::StampedTransform Eigen::Matrix4f Pose, 及其相互转换

    一.  tf::StampedTransform <-------------> Eigen::Matrix4f tf::StampedTransform是ros里代表TF变换的数据类型, ...

  7. python中字符串的几种表达方式(用什么方式表示字符串)

    今天在学习python的基础的内容,学习在python中如何操作字符串,在此记录下. 主要是python中字符串的几种表达,表示方式. python的几种表达方式 1 使用单引号扩起来字符串 > ...

  8. python字符串怎么表示_python中字符串的几种表达方式(用什么方式表示字符串)...

    原博文 2018-11-21 18:45 − 说明: 今天在学习python的基础的内容,学习在python中如何操作字符串,在此记录下. 主要是python中字符串的几种表达,表示方式. pytho ...

  9. 多媒体计算机技术英文,掌握多媒体计算机技术中各专业语句的英文表达方式.doc...

    掌握多媒体计算机技术中各专业语句的英文表达方式 PAGE PAGE 6 第九章教学辅导一.重难点解析㈠ 一般掌握多媒体计算机技术中各专业语句的英文表达方式1. Windows982. Microsof ...

最新文章

  1. prometheus--初见
  2. 看图说OpenGL之三:是什么在改变物体的颜色
  3. Spark UDAF用户自定义聚合函数
  4. python多元函数求极小值_使用遗传算法求二元函数的最小值
  5. matlab中float类型的_Java局部变量类型推断(Var类型)的26条细则
  6. 12款堪称神器的 Chrome 插件,Max 你的工作效率!
  7. Activiti工作流学习笔记01
  8. Redability
  9. 万亿级新基建战场,阿里云的安全“防线”
  10. for (var key in Obj)遍历JS对象/数组
  11. Python 获取 网卡 MAC 地址
  12. Zabbix添加网络设备
  13. Lync 2013持久聊天迁移至Skype for Business
  14. php百度知道小偷,随风百度知道(小偷采集) php版 v2.0.0X
  15. linux使用dwc串口,linux自带usb gadget设备驱动应用
  16. 使用Python实现搜索任意电影资源的磁力链接
  17. c# 操作word光标
  18. 编写Shell脚本实现用户管理
  19. 遗传算法锦标赛选择java实现_多目标遗传算法 ------ NSGA-II (部分源码解析)二元锦标赛选择 tourselect.c...
  20. 如果令 A B C D E F G H I J K L M N O P Q R S T U V W X Y Z 分别等于

热门文章

  1. D30:Color Tunnels(彩色隧道,翻译)
  2. java 原码 补码,Java中的原码、反码和补码
  3. 基于Linux的即时通信软件
  4. win10 启动出错0xc000000e
  5. 寻找开发技术合伙人- VC水平中等水平即可
  6. 【前端职业规划思考】
  7. html中的div怎么隐藏显示出来,HTML中多个DIV层如何隐藏和显示?
  8. linux中zip加密压缩
  9. Springboot毕设项目班费管理系统16me6(java+VUE+Mybatis+Maven+Mysql)
  10. Python+Vue计算机毕业设计张家口市防疫志愿者网站r6k13(源码+程序+LW+部署)