【磕盐随记】IMU数据的运用——姿态R对时间t求导

2023-05-16

一、前言

IMU能够测量到三轴加速度和角速度,那么如何在slam中使用imu测量得到的数据呢?Fast-lio的论文中有很好的演示:
在这里插入图片描述
上述公式中,最让我不能理解的就是这个 d R d t = R [ ω ] × \frac{dR}{dt} = R \left[ \omega \right]_{\times} dtdR=R[ω]×,这个式子的推导需要矩阵微分的知识。我也在网上看到很多推导,但都让我很难理解,在我和GPT的交流中,意外获得了一些推导思路,在这里整理下来。推到过程不保证正确,但是很通顺流畅,欢迎批评指正!

二、推导

首先,我们可以将旋转矩阵 R R R 表示为旋转向量 ω \omega ω 的指数函数形式,即
R = e [ θ ] × R = e^{\left[ \theta\right]_{\times}} R=e[θ]×
然后,对 R R R 求导数,得到
d R d t = d d t ( e [ θ ] × ) \frac{dR}{dt} = \frac{d}{dt} \left( e^{\left[ \theta \right]_{\times}} \right) dtdR=dtd(e[θ]×)
根据矩阵微分与链式法则,可以将上式写成
d R d t = d ( e [ θ ] × ) d [ θ ] × d [ θ ] × d t = e [ θ ] × d [ θ ] × d t \frac{dR}{dt} = \frac{d \left( e^{\left[ \theta \right]_{\times}} \right)}{d \left[ \theta\right]_{\times}} \frac{d \left[ \theta\right]_{\times}}{dt}= e^{\left[ \theta \right]_{\times}} \frac{d \left[ \theta\right]_{\times}}{dt} dtdR=d[θ]×d(e[θ]×)dtd[θ]×=e[θ]×dtd[θ]×
对于 d [ θ ] × d t \frac{d \left[ \theta \right]_{\times}}{dt} dtd[θ]×,根据导数定义和反对称矩阵性质
d [ θ ] × d t = lim ⁡ Δ t → 0 [ θ ( t + Δ t ) ] × − [ θ ( t ) ] × Δ t + O ( Δ t ) = lim ⁡ Δ t → 0 [ θ ( t + Δ t ) − θ ( t ) ] × Δ t + O ( Δ t ) = [ ω ] × \frac{d \left[ \theta \right]_{\times}}{dt}= \lim_{\Delta t \to 0} \frac{\left[ \theta(t+\Delta t) \right]_{\times}- \left[\theta(t) \right]_{\times}}{\Delta t} + O(\Delta t) = \lim_{\Delta t \to 0} \frac{\left[ \theta(t+\Delta t) - \theta(t) \right]_{\times}}{\Delta t} + O(\Delta t)=\left[ \omega \right]_{\times} dtd[θ]×=Δt0limΔt[θ(t+Δt)]×[θ(t)]×+O(Δt)=Δt0limΔt[θ(t+Δt)θ(t)]×+O(Δt)=[ω]×
[ ω ] × \left[ \omega \right]_{\times} [ω]× 的定义代入上式,可以得到
d R d t = R [ ω ] × \frac{dR}{dt} = R \left[ \omega \right]_{\times} dtdR=R[ω]×
其中, R R R 表示旋转矩阵, [ ω ] × \left[ \omega \right]_{\times} [ω]× 表示的叉乘矩阵,具体形式为
[ ω ] × = [ 0 − ω z ω y ω z 0 − ω x − ω y ω x 0 ] \left[ \omega \right]_{\times} = \begin{bmatrix} 0 & -\omega_z & \omega_y \\ \omega_z & 0 & -\omega_x \\ -\omega_y & \omega_x & 0 \end{bmatrix} [ω]×= 0ωzωyωz0ωxωyωx0

三、提醒

需要注意的是,这里的 R \mathbf{R} R G R ˙ I \mathbf{^G}\dot{\mathbf{R}}_I GR˙I,即世界坐标系下 IMU 系的姿态R对时间t的导数,这里的 ω \mathbf{\omega} ω是imu传感器的三轴角速度测量值 b o d y ω ^{body}\omega bodyω

ps.第一次用markdown写东西,排版仍有很大提升空间 : )

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

【磕盐随记】IMU数据的运用——姿态R对时间t求导 的相关文章

  • TLS中ChangeCipherSpec为什么是个单独的协议类型【转】

    发表于 2020 03 14 22 27 更新于 2021 04 29 17 15 RFC5246中说 Note To help avoid pipeline stalls ChangeCipherSpec is an independen
  • linux下多线程获取互斥锁,多线程运行时机

    linux内核 CPU 调度决定的线程运行的时间是难以预见 若在复杂程序中发生这一不确定行为 xff0c 则意味着此类错误将偶尔发作 xff0c 难以重现 xff0c 因此也很难发现
  • 数字签名算法MD5和SHA-1的比较

    什么是MD5 xff0c 什么是SHA 1 xff0c 如何校验这些Hash 还有拿单个ISO文件的MD5 xff0c SHA 1讯问是不是原版的问题 xff0c 在这里 xff0c 对以上问题做一个终结解释 xff01 了解 hash H
  • JavaEE.sql.Delete删除语句

    DELETE 语法格式 DELETE FROM table name WHERE condition S1 常用用法 DELETE FROM test master WHERE bindNo 61 39 bn002 39 S2 清空表 DE
  • Docker 容器使用

    Docker 容器使用 可以通过命令 docker command help 更深入的了解指定的 Docker 命令使用方法 容器使用 获取镜像 如果我们本地没有 ubuntu 镜像 xff0c 我们可以使用 docker pull 命令来
  • 【ADRC】跟踪微分器

    在上一篇文章中 xff0c 分析了PID算法的基本数学原理 xff0c 从PID算法的原理与实际应用 xff0c 是可以看出其PID的优点与缺点的 xff0c ADRC算法 自抗扰控制 也可以说是针对PID算法的一些缺点 xff0c 或者说
  • 树莓派3B+安装系统(Raspbian)以及配置环境

    1 硬件准备 1 树莓派3B 43 xff08 E14 xff09 2 一张64G的闪迪存储卡 3 一个读卡器 4 普通电脑显示器 xff0c 键盘 xff0c 鼠标 5 一台可以正常工作的Window系统的电脑 2 安装系统 1 树莓派系
  • 微策略的笔试题

    觉得在收获Offer的季节应该为自己积累些人品了 xff0c 在这里将今天的情况向所有求Offer的童鞋分享下 从上个周末开始反应迟钝的我终于有了些求Offer的感觉 xff0c 几天参加了4场面试 xff0c 基本上没觉得有很大的挑战 x
  • 【无标题】嘉立创EDA,stm32F4控制板。

  • 使用docker-compose连接mysql以及8.0版本遇到的身份验证问题解决方案

    docker compose 使用Docker部署环境非常方便 xff0c Compose项目是 Docker 官方的开源项目 xff0c 负责实现对 Docker 容器集群的快速编排 它允许用户通过一个单独的docker compose
  • EKF—SLAM推导

    转自 http blog csdn net qq 30159351 article details 53408740 这是SLAM最传统的基础 xff0c 是SLAM最原始的方法 xff0c 虽然现在使用较少 xff0c 但是还是有必要了解
  • PX4原生固件源码分析(挖坑)--1、代码结构

    写在开头 最近开始学习PX4源码 xff0c 并进行二次开发 xff0c 苦于网上缺少有关PX4源码的分析 xff0c 于是在这开个坑 xff0c 记录自己学习PX4的过程 xff0c 以此自勉 xff0c 笔者第一次写博客 xff0c 若
  • PX4原生固件源码分析(开填)--2、uORB消息

    写在开头 众所周知 xff0c PX4是通过Mavlink协议进行通信 xff0c 但是Mavlink只是用于外部的通信 xff0c 也就是和QGC地面站进行通信 xff0c 那么PX4中各任务模块相对独立 xff0c 它们之间是怎么通信的
  • 【超详细】基于大疆RoboMaster开发板C型的BMI088数据读取

    超详细 基于大疆RoboMaster开发板C型的BMI088数据读取 这里以博世传感器公司产出的BMI088型号的IMU为例 xff0c 其里面有3轴高精度加速度计和3轴高精度陀螺仪 xff0c 其他的特性不再介绍 同时这里的IMU是安装在
  • IMU综述

    IMU xff08 Inertial measurement unit xff09 xff0c 惯性测量单元 其作用是测量本身的加速度以及角速度 xff0c 有时还通过磁力计来测量朝向 xff0c 当包含磁力计时 xff0c IMU一般被称
  • 【超详细】磁力计数据读取--以IST8310为例

    这里以iSentek公司产出的IST8310型号的磁力计为例 xff0c 尺寸为 3 0 3 0 1 0mm xff0c 支持快速 I2C 通信 xff0c 可达 400kHz xff0c 14 位磁场数据 xff0c 测量范围可达1600
  • 【ADRC】扩张状态观测器(ESO)

    扩张状态观测器是自抗扰控制中非常重要的一个环节 xff0c 在我学习这部分内容后 xff0c 在写本篇文章时 xff0c 大致可以按照三个步骤来做实验 xff0c 推导 xff0c 由这三个步骤来由浅入深地去理解扩张状态观测器 ESO xf
  • 冰冻三尺非一日之寒-自学篇 浅谈个人学习方法

    昨晚还在看比赛 xff08 war3 xff09 xff0c 小源跑过来问我明天1024 xff0c 不写篇文章么 xff0c 想想也是 xff0c 1024这也算个热点 xff0c 赶紧来蹭蹭 xff0c 哈 xff0c 开个玩笑 上次谈
  • 栈中存储什么?

    一条线程对应一个栈 xff0c 一个方法对应一个栈帧 栈中 xff0c 存储的是一个一个的栈帧 xff0c 栈帧存储的是什么呢 xff1f 局部变量表 xff1a 存储的局部变量 xff0c 0位置代表this 操作数栈 xff1a 作用是
  • pdf导入pcb

    分为下面几步 xff1a 1 Illustrator 打开pdf 文件 导出为dxf 2 autocad 打开 xff0c 看看比例对不对 xff0c 缩放比例正确以后 xff0c 保存 旋转命令为rotate 测量为di 放大为sc 3

随机推荐

  • 如何在raspiberry pi上运行x86程序

    如何在raspiberry pi上运行x86程序 第一步 xff1a 下载ExaGear 步骤 xff1a 首选项 gt Add Remove Software gt 搜索ExaGear gt 下载搜索出来的四个包 第二步 xff1a 下载
  • 基于TINY4412的Andorid开发-------简单的LED灯控制【转】

    基于TINY4412的Andorid开发 简单的LED灯控制 阅读目录 Content 一 编写驱动程序二 编写代码测试驱动程序三 编写HAL代码四 编写Framework代码五 编写JNI代码六 编写App 参考资料 xff1a Andr
  • 计算机视觉——opencv-python

    opencv xff1a question1 10 main contentoriginal materialtrouble shootingq1 通道交换q2 灰度化q3 二值化q3 大津二值化算法 xff08 Otsu 39 s Met
  • 数字一阶低通滤波器simulink仿真

    数字一阶低通滤波器simulink仿真 原理程序所用公式滤波系数计算方法 仿真根据公式搭建使用simulink自带模型 原理 程序所用公式 y n 61 q x n 43 1 q y n 1 其中 xff0c y n 表示当前的输出 xff
  • SDFormat

    http sdformat org
  • putty远程连接不上虚拟机里的linux

    昨天跟着阿铭的视频在虚拟机中搭建了centos6 xff0c 然后用putty远程连接成功 今天中午鼓弄putty 的时候 xff0c 连接就报错了 xff1a network error xff1a connection refuse 网
  • 【ADRC】根据ADRC的思想改进PID

    根据前面两篇关于ADRC的文章以及PID原理的文章 xff0c 我们可以利用ADRC的思想来对PID算法做一些改进来看看效果 xff0c 可以将改进的PID称之为非线性PID 主要可以利用跟踪微分器 xff0c 针对PID的两个缺陷来进行改
  • STM32F1 TCA9548A 驱动多个IIC器件

    TCA9548A的用途就是IIC扩展 xff0c 每个TCA9548A可以扩展出8路IIC TCA9548A芯片带有地址选择引脚A0 A1 A2 xff0c 根据高低电平不同 xff0c 从MCU的一路IIC最多可以接入8个TCA9548A
  • 无限 for 循环的实现【Python】

    for 循环怎么才能无限循环下去呢 xff1f 1 最 low 的方法 xff1a 一个无限的列表 理解 for 在干什么 xff0c 在遍历 xff0c 那我们给他一个无限长的东西 xff0c 不就无限循环了 list span clas
  • VirtualBox 安装增强功能时无工具栏

    最近在学Ros xff0c 老师虚拟机用的是VirtualBox xff0c 在安装增强功能时 xff0c 找不到窗口顶部的工具栏 xff0c 如图 1 1所示 查了不少解决方案 xff0c 总结如下 图 1 1 Virtu alBox虚拟
  • Eigen库中的Identity()函数作用

    今天学习Eigen库 xff0c 看到示例代码中有这样一行 xff1a Matrix3d rotation matrix 61 Matrix3d Identity Matrix3d xff1a Eigen库中typedef的数据类型 xff
  • SLAM十四讲-ch3-vistalizegeometry编译问题

    最近在学高翔博士的 SLAM十四讲 xff0c 在ch3中运行vistalizegeometry这个demo的时候 xff0c 出现如下报错信息 xff08 图片版报错看不清的话 xff0c 文末 附文字版的报错信息 xff09 xff1a
  • C++库fmt缺失导致编译失败的解决方案【SLAM十四讲/ch4】

    最近学习高翔博士的SLAM十四讲 xff0c 学到ch4的时候 xff0c 实际运行demo报错 查看CMakeLists txt xff0c 发现Ubuntu20 04需要额外安装fmt库才可以编译通过 解决方法 xff1a 直接去fmt
  • SLAM十四讲编译全过程记录与错误与解决方案汇总

    章节目录 ch2 ch3 ch4 ch5 ch7 ch8 ch9 ch10 ch11 ch2 编译正常 xff0c log如下 xff1a slambook2 master ch2 mkdir build amp amp cd build
  • ROS安装:一键解决人生烦恼

    首先 xff0c 这个方法不是我发明的 xff0c 详情请见文末链接 不管你是unbuntu 16 18 20 xff0c 不管你是新安装的系统 xff0c 还是ROS装了一部分进行不下去的烂摊子都适用 xff01 直接输入下面这一行代码
  • 【Eigen库使用】角轴、旋转矩阵、欧拉角、四元数转换

    零 前言 在slam中经常用到的四种描述机器人orientation的变量 xff0c 他们之间可以相互转化 xff0c 使用Eigen库可以很容易的做到这一点 xff0c 需要特别关注的是 xff1a 欧拉角与其余量之间的转换关系 xff
  • 【Gazebo/ROS】阿克曼小车仿真环境设置中的心得体会

    最近科研需要在gazebo中做一个阿克曼小车的仿真 xff0c 要求小车运动能够通过话题来控制 xff0c 小车上要安装激光雷达 imu 相机等传感器用于SLAM定位建图 由于是第一次接触gazebo仿真 xff0c 所以分享一下学习心得
  • 【ADRC】自抗扰控制

    在根据前面四篇文章的自抗扰控制各个功能部分的分解介绍以及对于PID算法原理的分析之后 xff0c 具体可以查看我的主页 之后我们可以画出自抗扰控制的框图 xff0c 并作出自抗扰的仿真了 自抗扰的组成部分 ADRC说得更直白一些 xff0c
  • 【磕盐随记】对两种机器人ROS代码结构的思考与总结

    本帖看似短小 xff0c 但是凝结了我这一个月的全部心得体会 xff0c 日后打算专门出一期视频专门说说ros机器人的代码结构和类设计 xff0c 今天先在这里简单记录一下 到目前我接触过两种架构 xff0c 根据多节点式和单节点式 自己发
  • 【磕盐随记】IMU数据的运用——姿态R对时间t求导

    一 前言 IMU能够测量到三轴加速度和角速度 xff0c 那么如何在slam中使用imu测量得到的数据呢 xff1f Fast lio的论文中有很好的演示 xff1a 上述公式中 xff0c 最让我不能理解的就是这个 d R d