Eigen::Isometry3d变换矩阵的常用方法

文章目录

  • Eigen::Isometry3d变换矩阵的常用方法
    • 一、基本定义
    • 二、操作方法
    • 三、与四元数和平移向量的转换
    • 四、左乘与右乘

Eigen::Isometry3d变换矩阵的常用方法

一、基本定义

变换矩阵本质是一个4*4的矩阵


Eigen::Isometry3d T_imu_to_lidar = Eigen::Isometry3d::Identity()

二、操作方法

  • .translation():无参数,返回当前变换平移部分的向量表示(可修改),可以索引[]获取各分量

  • .rotation():无参数,返回(只读的)当前变换的旋转部分,以旋转矩阵表示;

  • .matrix():返回变换对应的矩阵(可修改),包括平移部分和旋转部分;

  • .linear():返回变换的线性部分,对于Isometry而言就是旋转对应的旋转矩阵,Eigen::Block类型;

  • .Identity()函数的作用:在定义变量时使用Eigen::Matrix4f x =
    Eigen::Matrix4f::Identity();即用单位矩阵对x变量进行了初始化

  • .inverse():求变换矩阵的逆

三、与四元数和平移向量的转换


// Eigen::Isometry3d  --> Eigen::Quaterniond
Eigen::Matrix4d M_lidar_to_imu;
Eigen::Isometry3d T_lidar_to_imu(M_lidar_to_imu); 
Eigen::Vector3d enu_position = T_lidar_to_imu.translation();
//rotation()的结果是3*3的Matrix3d矩阵.  rotation:旋转
Eigen::Quaterniond enu_attitude =Eigen::Quaterniond(T_lidar_to_imu.rotation());// Eigen::Quaterniond  -->  Eigen::Isometry3d
Eigen::Quaterniond q_delta; 
Eigen::Vector3d p_delta;  
Eigen::Isometry3d T_delta;
T_delta.linear() = q_delta.toRotationMatrix();
T_delta.translation() = p_delta;

四、左乘与右乘

旋转矩阵左乘是相对固定坐标系,右乘是相对当前坐标系。

1、求取变换矩阵的相对关系

//求取雷达坐标系到enu世界坐标系的转换矩阵,以enu坐标系为基准
Eigen::Isometry3d T_lidar_to_enu = T_imu_to_enu * system_config.T_lidar_to_imu;

2、求取点的坐标从坐标系A转到坐标系B

 Eigen::Vector3d position_ecef;// 得到当前时刻雷达在地心地固坐标系的位置position_ecef = system_config.T_enu_to_ecef * position_enu;  

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/854230.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

分数限制下,选好专业还是选好学校?

1.专业解析 探讨不同专业的优势和未来挑战(课程学习、就业等维度)。结合个人专业选择的经验和思考过程,自定义实际场景并给出不同场景下的“专业VS学校”选择方案。 当探讨不同专业的优势和未来挑战时,需要根据具体的专业领域和市…

手把手教你使用OpenCV和KNN算法进行手写数字识别

手把手教你使用OpenCV和KNN算法进行手写数字识别 在这篇博客中,我将向大家介绍如何使用OpenCV和KNN算法编写一个手写数字识别程序。我们将一步一步地解释每个步骤,确保大家能理解代码的每个细节。我们将通过一个具体的实例来演示,如何从图像…

【Python】 Stacking: 强大的集成学习方法

我们都找到天使了 说好了 心事不能偷藏着 什么都 一起做 幸福得 没话说 把坏脾气变成了好沟通 我们都找到天使了 约好了 负责对方的快乐 阳光下 的山坡 你素描 的以后 怎么抄袭我脑袋 想的 🎵 薛凯琪《找到天使了》 在机器学习中,单…

vscode 终端无法正常执行脚本命令如何解决

我们经常需要在vscode的中安装第三方依赖包,npm是前端目前最大的Node.js模块化管理系统,它能帮助开发者管理和发布Node.js模块。但很多时候我们在vscode的终端中执行npm install命令时经常会报以下错误: 但是在Windows的cmd命令提示符中执行n…

JavaScript妙笔生花:打造沉浸式中国象棋游戏体验

前言 随着信息技术的飞速发展,Web开发领域也出现了翻天覆地的变化。JavaScript作为前端开发中不可或缺的编程语言,其重要性不言而喻。而当我们谈论到利用JavaScript打造一款沉浸式的中国象棋游戏体验时,我们不仅仅是在开发一个游戏&#xff0…

在 Linux/Debian/Ubuntu 上安装 LAMP: Linux、Apache、MySQL 和 PHP

在 Linux/Debian/Ubuntu 上安装 LAMP LAMP 代表 Linux、Apache、MySQL 和 PHP,是一种流行的开源 Web 开发平台,可以提供强大的服务器环境来运行动态网站和 Web 应用程序。本文将详细介绍如何在 Ubuntu 系统上安装和配置 LAMP。 步骤 1: 更新系统 在开…

微信分销商城小程序源码系统在线搭建 前后端分离 带完整的安装代码包以及搭建教程

系统概述 本微信分销商城小程序源码系统采用先进的前后端分离架构设计,前端使用Vue.js框架开发,后端则基于Spring Boot构建,确保了系统的高可维护性、扩展性和性能。系统集商品展示、在线交易、会员管理、分销推广、订单处理、数据统计等功能…

AIoT设备新一代高性能处理器瑞芯微RK3576,东胜物联RK3588等核心板定制开发

随着物联网、人工智能和嵌入式技术的不断发展,智能设备应用对芯片处理器的性能需求越来越高,以满足复杂的数据处理需求、实时性要求、复杂的算法运算和多任务处理能力。高性能的芯片可以为智能设备提供更强大的计算能力和更快速的响应速度,从…

Camtasia Studio 2024软件下载附加详细安装教程

amtasia Studio 2024是一款功能强大的屏幕录制和视频编辑软件,由TechSmith公司开发。这款软件不仅能够帮助用户轻松地记录电脑屏幕上的任何操作,还可以将录制的视频进行专业的编辑和制作,最终输出高质量的视频教程、演示文稿、培训课程等。 …

【Android】RecyclerView纵向倾斜滑动,触发ViewPage2横向滑动而导致的滑动冲突问题

问题描述 场景ViewPage2FragmentRecyclerView(我的项目里RecycleView外层还套了一层SmartRefreshLayout) 因ViewPage2滑动太灵敏,RecyclerView纵向倾斜滑动,触发ViewPage2横向滑动而导致的滑动冲突问题 解决方案: …

Google Earth Engine(GEE)——导出影像video到自己的Google硬盘当中

函数: Export.video.toDrive(collection, description, folder, fileNamePrefix, framesPerSecond, dimensions, region, scale, crs, crsTransform, maxPixels, maxFrames) Creates a batch task to export an ImageCollection as a video to Drive. The collection must on…

极简opencv操作xml文件

目标 修改xml文件&#xff0c;先产生一个临时文件&#xff0c;拷贝&#xff0c;修改&#xff0c;改名&#xff0c;使用opencv 非常简单地就可以搞定配置xml文件 code #include <opencv2/opencv.hpp> #include <iostream> #include <opencv2/core/utils/files…

2 程序的灵魂—算法-2.4 怎样表示一个算法-2.4.2 用流程图表示算法-【例 2.9】

将例 2.4 求 1-1/21/3-1/41/99-1/100 的算用流程图表示。 一个流程图包括&#xff1a; 1. 表示相应操作的框&#xff1b; 2. 带箭头的流程线&#xff1b; 3. 框内外必要的文字说明。

Transformer模型探索:Hugging Face库实战篇二——模型与分词器解析

注&#xff1a;本系列教程仅供学习使用, 由原作者授权, 均转载自小昇的 博客 。 文章目录 前言模型 加载模型 保存模型 分词器 分词策略 加载与保存分词器编码与解码文本 处理多段文本 Padding 操作 Attention masks直接使用分词器编码句子对 前言 在上一篇文章 《开箱即…

网络工程师的工具箱:这些软件你用过吗?(非常详细)零基础入门到精通,收藏这一篇就够了

今天&#xff0c;我想和大家聊一聊那些能够大大提升工作效率、简化复杂任务的必备软件工具。无论你是刚入行的新手&#xff0c;还是经验丰富的老手&#xff0c;这些工具都是你的工作利器&#xff0c;能够帮助你轻松应对各种网络挑战。 让我们一起来看看这些软件&#xff0c;看…

SSL证书加私钥会影响网速吗?

当谈及SSL证书和私钥对网速的影响时&#xff0c;我们首先需要了解SSL协议的作用和工作原理。SSL证书和私钥是SSL协议的核心组成部分&#xff0c;用于加密数据传输和确保网络安全。在讨论这个问题之前&#xff0c;我们先来简要了解一下SSL协议以及SSL证书和私钥的作用。 SSL协议…

上海市计算机学会竞赛平台2024年1月月赛丙组星号三角阵(三)

题目描述 给定一个整数 &#x1d45b;n&#xff0c;输出一个 &#x1d45b;n 行 &#x1d45b;n 列的星号三角阵&#xff0c;直角位于图形的右上角。 例如当 &#x1d45b;4n4 时&#xff0c;输出 **********输入格式 单个整数表示 &#x1d45b;n。 输出格式 共 &#x…

python-不定方程求解

[题目描述] 给定正整数 a&#xff0c;b&#xff0c;c。求不定方程axbyc 关于未知数 x 和 y 的所有非负整数解组数。输入&#xff1a; 一行&#xff0c;包含三个正整数 a&#xff0c;b&#xff0c;c&#xff0c;两个整数之间用单个空格隔开。每个数均不大于 1000。输出&#xff…

IDEA创建web项目

IDEA创建web项目 第一步&#xff1a;创建一个空项目 第二步&#xff1a;在刚刚创建的项目下创建一个子模块 第三步&#xff1a;在子模块中引入web 创建结果如下&#xff1a; 这里我们需要把这个目录移到main目录下&#xff0c;并改名为webapp&#xff0c;结果如下 将pom文件…

一文读懂HC-05蓝牙模块

在当今通信模式多种多样的情况下&#xff0c;无线传输越来越受到广大开发者的欢迎。其中蓝牙技术更是在现代社会中扮演着至关重要的角色&#xff0c;而其中蓝牙透传模块是目前最简单也是最普遍的一种蓝牙通信模块。HC-05蓝牙模块作为其中一种最常见的蓝牙模块&#xff0c;在各个…