东北天(ENU)和北东地(NED)

2023-05-16

文章目录

  • 一、坐标系定义
    • 1.东北天坐标系(ENU)
    • 2.北东地坐标系(NED)
  • 二、在ENU坐标系向量变换到NED坐标系向量
  • 三、将载体相对ENU的姿态和位置,变换为载体相对NED的姿态和位置
    • 1、外旋和内旋
    • 2、各个轴旋转矩阵
    • 3、ENU和右前上载体坐标系的姿态
    • 3、NED和前右下载体坐标系的姿态
    • 3、转换


一、坐标系定义

1.东北天坐标系(ENU)

请添加图片描述
1)x轴指向东, y轴指向北, z轴指向天
2)绕x轴转动,称为pitch角
绕y轴转动,称为roll角
绕z轴转动,成为yaw角
注意:这里和常规定义不太一样,主要是为了配合保证前向角是roll角。如果你不想这么定义,后续的旋转矩阵和旋转顺序进行一个改变。

3)对应的IMU载体坐标系是右前上

4)欧拉角旋转顺序:z-x-y

2.北东地坐标系(NED)

请添加图片描述
1)x轴指向北, y轴指向地, z轴指向地
2)绕x轴转动,称为roll角
绕y轴转动,称为pitch角
绕z轴转动,成为yaw角
3)对应的IMU载体坐标系是前右下

4)欧拉角旋转顺序:z-y-x


二、在ENU坐标系向量变换到NED坐标系向量

从坐标系定义中,可以看出,ENU和NED的坐标变换关系是:
X(ENU) = Y(NED)
Y(ENU) = X(NED)
Z(ENU) = -Z(NED)
Yaw(ENU) = -Yaw(NED)+ 90

注意:虽然ENU和NED旋转顺序不同,但是都是根据yaw-pitch-roll顺序进行旋转的。

三、将载体相对ENU的姿态和位置,变换为载体相对NED的姿态和位置

1、外旋和内旋

旋转轴分绕固定坐标系旋转和绕动坐标系旋转,前者称为外旋,后者称为内旋。 - Fixed Angles 外旋 - Euler Angles 内旋

1)外旋(Fixed Angles)
外旋为绕静止坐标系旋转,也就是每次旋转都绕参考的静止坐标系进行三轴旋转。外旋为旋转矩阵按照先后依次左乘。

2)内旋(Euler Angles)
外旋为动坐标系旋转,也就是每次旋转后绕变化后的坐标系进行三轴旋转。内旋为旋转矩阵按照先后依次右乘。

在外旋和内旋中有一个特性很重要,这里先提一下:X-Y-Z的外旋等价于Z-Y-X内旋

2、各个轴旋转矩阵

请添加图片描述

默认情况下的旋转,参考系为n系(ENU,或者NED),载体系为b系,旋转的时候,参考系不动,载体系进行旋转

3、ENU和右前上载体坐标系的姿态

参考系(导航系):(ENU)东北天
载体系(机体系):(XYZ)右前上
旋转顺序:Z-X-Y
姿态顺序:(Yaw-Pitch-Roll)偏航-俯仰-横滚
旋转轴:内旋
要计算内旋的Z-X-Y,我们只需要计算外旋的Y-X-Z即可,也就是计算出ENU_Y-X-Z_Fixed_Angles:
在这里插入图片描述
但是内旋的右乘就是从左到右乘了,从这里也可以看出左乘的Y-X-Z等于右乘的Z-X-Y了。

下面的旋转矩阵是从载体系到参考系的旋转矩阵R_b2n,左上角标有F表示是外旋下的DCM:

注意:内旋是按照旋转顺序右乘,外旋是按照旋转顺序左乘,所以内旋的Z-X-Y等于外旋的Y-X-Z。

在这里插入图片描述
根据外旋内旋规则那么得到内旋的旋转矩阵R_b2n:从载体系到参考系:

在这里插入图片描述

求转置可得到从参考系到载体系的旋转矩阵:
在这里插入图片描述

3、NED和前右下载体坐标系的姿态

参考系(导航系):(NED)北东地
载体系(机体系):(XYZ)前右下
旋转顺序:Z-Y-X
姿态顺序:(Yaw-Pitch-Roll)偏航-俯仰-横滚
旋转轴:内旋 前面我们说了,旋转矩阵和坐标系无关,所以NED下的ZYX和ENU下的ZYX是一样的哦,唯一不同的就是,姿态的命名和正负方向不一样了,绕X轴变成了横滚,绕Y轴变成了俯仰,Z轴还是偏航。

在这里插入图片描述
这个旋转矩阵是从载体系到参考系:
在这里插入图片描述

求转置可得到从参考系到载体系的旋转矩阵:
在这里插入图片描述

注意:
我们说的姿态角是载体相对参考坐标系的旋转欧拉角

3、转换

请添加图片描述

参考:
https://zhuanlan.zhihu.com/p/336357646

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

东北天(ENU)和北东地(NED) 的相关文章

  • ∏这个是什么符号?

    是各项连乘的运算符号 读大写的 xff08 pai xff09 例如 xff1a i 61 1 xff08 符号下面 xff09 n xff08 符号上面 xff09 ai 符号右面 表示a1 a2 an 符号下面表示右面式子可变参量的下限
  • python获取图片的颜色信息

    span class pun style font family none font size 14px span h1 style font family none font size 24px padding 5px margin 5p
  • Python:TypeError: 'int' object is not callable

    一个函数的部分代码如下 xff1a python view plain copy def loadData len 61 dataSet len trainingSet extend dataSet len 3 4 testSet exte
  • FreeRTOS — 消息队列

    以下内容转载自安富莱电子 xff1a http forum armfly com forum php FreeRTOS 的一个重要的通信机制 消息队列 xff0c 消息队列在实际项目中应用较多 1 消息队列 1 1 消息队列的概念及其作用
  • 学校人力资源管理系统——物理结构设计

    新 建学校人力资源管理系统 数据库 1 创建相关表 1 1 创建部门信息表 部门信息表的创建代码如下 xff0c 部门信息表在SQL中的信息显示如图6 1所示 create table 部门信息表 部门编号 char 6 not null
  • python 安装serial模块

    想用Python来实现对串口的控制 xff0c 写好了脚本 xff0c 现在将这个脚本拿到另外一个电脑上去运行 xff1b 运行时提示错误 xff0c 说是没有安装serial模块 xff0c 于是乎安装 pip install seria
  • Doxygen使用教程(个人总结)

    简介Doxygen 一 xff0e 什么是Doxygen Doxygen 是一个程序的文件产生工具 xff0c 可将程序中的特定批注转换成为说明文件 通常我们在写程序时 xff0c 或多或少都会写上批注 xff0c 但是对于其它人而言 xf
  • STM32F401 I2S(full duplex)全双工示例代码

    USER CODE BEGIN Header 64 file main c 64 brief Main program body This notice applies to any and all portions of this fil
  • 一、认识与学习Linux中的BASH 之 1.1 什么是bash

    1 1 什么是bash 1 1 1 什么是bash bash全称为The Bourne Again shell xff0c 是Bourne Shell的扩展 xff0c 是基于GUN构架发展出来的语言 xff0c 有很灵活和强大的编程接口
  • 阿里云ECS服务器环境搭建(1) —— ubuntu 16.04 图形界面的安装

    阿里云ECS服务器环境搭建 xff08 1 xff09 ubuntu 16 04 图形界面的安装 1 背景 在我们购买阿里云ECS服务器之后 xff0c 默认的系统环境是很干净的 xff0c 我购买的是ubuntu16 04 xff0c 远
  • Python+pandas+每天股票涨了多少

    第一步 xff1a 得到某支股票历年来的交易数据 方法见 xff1a https blog csdn net zwy 0309 article details 108217342 在此 xff0c 我使用以下脚本得到股票 xff08 代码
  • 2021-06-02

    在ROS中仿真模型中添加gps传感器 获取gps传感器模型包为自己的机器人添加gps传感器将gps之中的经度纬度坐标转化为自己地图中的坐标 1 获取gps传感器模型包 link http wiki ros org hector gazebo
  • Dockerfile如何编写(指令详解)

    本文个人博客地址 xff1a https www leafage top posts detail 21525V8AP Dockerfile Dockerfile 描述了组装镜像的步骤 xff0c 其中每条指令都是单独执行的 除了FROM指
  • 关于Home Lab的搭建——硬件选择篇(迷你主机)(一)

    关于Home Lab 这个名词出自哪里 xff0c 我也不清楚 不过 xff0c 可以这样来理解Home Lab xff0c Home Lab是一台作为实验使用的电脑 xff0c 试验的内容多数是关于计算机网络的搭建 系统安装 测试 xff
  • Adaboost基本二分类算法

    最早类型的Adaboost是由Yoav Freund和Robert E Schapire提出的 xff0c 一种用于二分类的boosting集成学习方法 也是李航 统计学习方法 中所介绍的Adaboost 它将一系列弱分类器的线性组合 xf
  • Springboot 项目金蝶中间件AAS-9.0启动报错 javax.persistence.Table.indexes()[Ljavax/persistence/Index 问题解决

    Springboot 项目金蝶中间件AAS 9 0启动报错 java lang NoSuchMethodError javax persistence Table indexes Ljavax persistence Index问题解决方法
  • CMakeLists配置(常用的)

    一 xff1a 最小组成 cmake 最小版本需求 cmake minimum required VERSION 2 8 project 名字 project MyEsp32AllCode 可执行文件生成 add executable PR
  • SLAM学习笔记(四)定位

    原创博客 xff1a http blog csdn net renshengrumenglibing viewmode 61 contents 机器人定位的目的是为了知道 自己在什么地方 xff0c 目前 xff0c 机器人定位的方法可以分
  • SLAM实习岗位面经

    一 地平线 一面主要是在问关于SLAM岗位的技术问题 xff0c 然后还问了一些比较简单的C 43 43 基础知识 其实总体而言 xff0c 面试的问题都比较基础 xff0c 比较考验SLAM基本功 xff0c 如果只知道一些SLAM皮毛的

随机推荐

  • Canal数据库监听

    1 什么是canal canal是用java开发的基于数据库增量日志解析 xff0c 提供增量数据订阅 amp 消费的中间件 目前 xff0c canal主要支持了MySQL的binlog解析 xff0c 解析完成后才利用canal cli
  • linux下安裝mitmproxy 详解傻瓜式文档

    前言 xff1a mitmproxy 就是用于 MITM 的 proxy xff0c MITM 即中间人攻击 xff08 Man in the middle attack xff09 用于中间人攻击的代理首先会向正常的代理一样转发请求 xf
  • ROS学习笔记(2)——ROS架构

    ROS学习笔记 xff08 2 xff09 ROS架构 0 学习来源1 ROS架构2 文件系统级2 1 工作空间 3 计算图级4 ROS开源社区级4 1 发行版 xff08 Distribution xff09 4 2 软件库 xff08
  • STM32_中断

    STM32 中断 一 介绍 1 1解释 打断CPU执行正常的程序 xff0c 转而处理紧急程序 xff0c 然后返回原暂停的程序继续运行 xff0c 就叫中断 1 2作用和意义 作用 xff1a 实时控制 xff1a 在确定时间内对相应事件
  • Oracle创建用户并授权

    很多时候 xff0c 我们不需要用系统原始的sys xff0c sysdba等系统账户 xff0c 需要创建个性化的用户并授权 xff0c 那就需要我们首先登录到dba账户 xff0c 然后通过dba账户进行用户创建并授权 1 用dba权限
  • 【Linux】vim 中批量添加注释

    本期主题 xff1a vim 中批量添加注释博客主页 xff1a 小峰同学分享小编的在Linux中学习到的知识和遇到的问题小编的能力有限 xff0c 出现错误希望大家不吝赐 此文主要介绍两种方法 xff1a 方法一 xff1a 块选择模式
  • 对gazebo启动后黑屏或者没有模型的解决

    1 问题 卡在加载模型界面 xff1b 加载太慢或者黑屏 xff1a 报错信息如下 xff1a 图1 打开界面 xff1a 图2 2 解决办法 直接下载所有模型到用户的根目录下的 gazebo models 下 xff1a 方法1 xff1
  • 【Python与机器学习】5.K-Means聚类

    聚类 xff08 clustering xff09 什么是聚类 聚类属于无监督学习 xff08 unsupervised learning xff09 xff0c 即无类别标记 是数据挖掘经典算法之一 算法接收参数k xff1b 然后将样本
  • 穿过已知点画平滑曲线(3次贝塞尔曲线)

    为了把一串点连成光滑的曲线 xff0c 先研究贝塞尔曲线 xff0c 又搞B样条插值 都没有成功 数学没那么强 后来在 翻译 AGG 之贝塞尔插值 http liyiwen javaeye com blog 705489 看到一种比较好的方
  • 二值信号量和互斥锁到底有什么区别?

    原文链接 xff1a https www cnblogs com codescrew p 8970514 html 在说明之前我先抛出结论 xff1a 互斥锁和二值信号量在使用上非常相似 xff0c 但是互斥锁解决了优先级翻转的问题 假定我
  • 使用stm32CubeMX自动配置的工程文件,进行串口的不定长接收(非DMA方式)

    方法描述 xff1a 使用stm32CubeMX自动配置的工程文件 xff0c 进行串口的不定长接收 xff08 非DMA方式 xff09 实际问题解决尝试 xff1a 1 HAL库函数只有接收定长数据HAL UART Receive xf
  • 基于STM32平台的BMP180测试(模拟IIC)

    1 测试描述 xff1a 使用模拟IIC xff0c 从BMP180中获取ID号 温度值 气压值以及计算海拔高度 2 测试准备 xff1a 硬件平台 xff1a 原子战舰V3开发板 测试工具 xff1a 逻辑分析仪 串口调试工具 3 数据手
  • gitee 添加ssh公钥

    首先需要安装git 打开 Git Bash 在Bash中输入 ssh keygen t rsa C 34 xxxx 64 yyy com 34 用你的邮件地址进行替换 连着按三次回车 xff0c 第一次提示 34 Enter file in
  • ROS中使用<serial/serial.h>头文件

    ROS中使用 lt serial serial h gt 头文件 问题描述 编译后出现fatal error serial serial h 没有那个文件或目录 include lt serial serial h gt 解决办法 缺少se
  • realsenseD435i使用IMU出错

    realsense 使用IMU出错 已经参照blogs xff1a https blog csdn net weixin 46363611 article details 114643088 将 realsense ws src reals
  • 对极几何,PNP,ICP求解位姿的方法原理、优缺点

    文章目录 一 对极几何估计位姿1 本质矩阵或基础矩阵估计2 单应矩阵估计3 2D 2D时 xff0c 空间点位置计算 二 PNP估计位姿1 P3P方法估计位姿2 DLT方法估计位姿3 EPnP方法估计位姿3 BA方法估计位姿 三 ICP方法
  • 顺序表查找与散列表(哈希表)

    文章目录 一 数据结构二 平均查找长度 xff08 ASL xff09 三 顺序表查找1 顺序查找2 折半查找3 分块查找4 顺序表查找的对比 四 散列表1 散列表构造2 开放地址散列表构造3 散列表查找效率分析 一 数据结构 二 平均查找
  • You‘ll have to kill the Xtightvnc process manually

    You 39 ll have to kill the Xtightvnc process manually 然后 pkill u user
  • ubuntu Linux多个内核选择

    一 问题 ununtu经常自动升级 xff0c 或者是我们在update时 xff0c 系统自动升级内核 此时会导致较高版本的内核与系统相互矛盾 xff0c 而导致卡机等问题 此时需要对多余内核进行设置为默认内核或者将不正确内核删除 两种方
  • 东北天(ENU)和北东地(NED)

    文章目录 一 坐标系定义1 东北天坐标系 xff08 ENU xff09 2 北东地坐标系 xff08 NED xff09 二 在ENU坐标系向量变换到NED坐标系向量三 将载体相对ENU的姿态和位置 xff0c 变换为载体相对NED的姿态