IMU的加速度补偿、祛除向心力

目录

  • 1. 简介
  • 2. 仅有XY偏移的修正过程
  • 3. 3D修正过程

1. 简介

  1. 一般,我们期望用IMU测量某个Target坐标系的加速度、角速度信息,然而IMU的坐标系Target 坐标系一般存在位姿关系,此时IMU测量的加速度不能直接代表Target左坐标系的加速度。比如Target 坐标系绕Z轴自转动,Target的XY轴的加速度应该为0;然而IMU的加速度,包含了向心力,XY的加速度发生变化,不能直接用于Target坐标系。
  2. 基于上述问题,如果需要Target坐标系的加速度,需要对IMU的加速度进行向心力的补偿。
  3. 参考:CSND-浅谈加速度计旋转补偿【3D个人觉得不合理】

2. 仅有XY偏移的修正过程

  1. 简介:假如IMU的坐标系Target坐标系只有平移关系,没有旋转关系,也就是坐标系对齐,且只考虑XY
    在这里插入图片描述

  2. 向心力 F 向 = m a 向 = m w 2 r F_{向}=ma_{向}=mw^2r F=ma=mw2r,其中 w w wTarget坐标系自转角速度(弧度)。可以得到在Target坐标系下,IMU的向心加速度
    a 向心 = w 2 ⋅ r = w 2 ⋅ △ x 2 + △ y 2 a_{向心}=w^2\cdot r=w^2 \cdot \sqrt {\triangle x^2 + \triangle y^2} a向心=w2r=w2x2+y2

  3. IMU的X轴上,向心力叠加量为,这一部分需要IMU的X轴加速度减去
    X a = a 向心 ⋅ c o s θ = a 向心 ⋅ △ x r = w 2 ⋅ △ x X_a=a_{向心} \cdot cos\theta=a_{向心} \cdot \frac{\triangle x}{r}=w^2\cdot \triangle x Xa=a向心cosθ=a向心rx=w2x

  4. IMU的Y轴上,向心力叠加量为,这一部分需要IMU的Y轴加速度减去
    Y a = a 向心 ⋅ s i n θ = a 向心 ⋅ △ y r = w 2 ⋅ △ y Y_a=a_{向心} \cdot sin\theta=a_{向心} \cdot \frac{\triangle y}{r}=w^2\cdot \triangle y Ya=a向心sinθ=a向心ry=w2y

3. 3D修正过程

  1. 首先将IMU的坐标系与Target坐标系的先旋转修正,此时IMU坐标系与Target的坐标系朝向对齐,问题就可以简化问题

  2. 对IMU的数据进行旋转

    • 设IMU坐标系在Target坐标系朝向的旋转关系为 R ,即Target到IMU的过渡旋转,或者叫在Target坐标系下,IMU的姿态为R
      T a r g e t ⋅ R = I M U Target \cdot R= IMU TargetR=IMU
    • 那么对齐后的IMU数据为
      a c c = R ⋅ a c c i m u g y r o = R ⋅ g y r o i m u acc=R \cdot acc_{imu} \\ gyro=R\cdot gyro_{imu} acc=Raccimugyro=Rgyroimu
  3. 此时问题和第2节中类似,不过此时我们区别是,需要考虑Z轴的偏移影响

    • 在第2节可以看到,Z轴旋转 只会 增加X轴、Y轴的向心力,不会增加Z轴。同理,X轴旋转也会增加Y轴、Z轴向心力,Y轴旋转会增加X轴、Z轴向心力。
    • 所以,每个轴的向心力会受到另外两个轴的旋转影响。这里角速度为Target坐标轴角速度,不过它和旋转后的IMU角速度一致。
    • 那么向心力在每个轴的分量为,需要注意的是,这是原始测量值需要减去的值
      a x = w z ⋅ △ x + w y ⋅ △ x a y = w z ⋅ △ y + w x ⋅ △ y a z = w y ⋅ △ z + w x ⋅ △ z a_x=w_z\cdot \triangle x + w_y \cdot \triangle x \\ a_y=w_z\cdot \triangle y + w_x \cdot \triangle y \\ a_z=w_y\cdot \triangle z + w_x \cdot \triangle z \\ ax=wzx+wyxay=wzy+wxyaz=wyz+wxz
  4. 代码实现

    def IMU_Centripetal_force_correction(self, imu_acc, imu_gyro, rotation, position):'''Target坐标系作为参考坐标系,IMU的姿态为rotation、position,进行向心力去除imu_acc、imu_gyro 为IMU的测量值'''# 0. 得到偏移量delta_x, delta_y, delta_z = position[0], position[1], position[2]# 1. 将IMU的坐标系朝向与Target坐标系对齐acc  =  np.asarray(rotation,dtype=np.float32) @ np.asarray(imu_acc, dtype=np.float32)gyro =  np.asarray(rotation,dtype=np.float32) @ np.asarray(imu_gyro, dtype=np.float32)# 2. 向心力的叠加量计算wx, wy, wz = gyro[0], gyro[1], gyro[2]delta_ax = wz*delta_x + wy*delta_xdelta_ay = wz*delta_y + wx*delta_ydelta_az = wy*delta_z + wx*delta_z# 3. 修正加速度,陀螺仪不需要再修正acc[0] = acc[0] - delta_axacc[1] = acc[1] - delta_ayacc[2] = acc[2] - delta_az return acc, gyro
    

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

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

相关文章

python库(10):SpaCy库实现NLP处理

1 SpaCy简介 自然语言处理(NLP)是人工智能领域中一个重要的分支。它旨在使计算机能够理解、解释和生成人类语言。Python中的SpaCy库提供了丰富的功能和工具,SpaCy是一个开源的软件库,用于处理和操作自然语言文本,可以…

BM42:混合搜索的新基准 - Qdrant

在过去的 40 年里,BM25 一直是搜索引擎的标准。它是一种简单但功能强大的算法,已被许多搜索引擎使用,包括 Google、Bing 和 Yahoo。 虽然看起来向量搜索的出现会削弱其影响力,但效果并不明显。目前最先进的检索方法试图将 BM25 与…

python库(11):Box库简化字典和对象之间的转换

1Box库简介 Box是一个Python库,它提供了一种将数据封装在字典和列表中的方式,同时提供了一些额外的功能,比如数据验证、默认值设置等。这使得Box库非常适合用于配置管理、数据传输对象(DTO)的创建,以及任何…

sqlmap使用之-post注入、head注入(ua、cookie、referer)

1、post注入 1.1、方法一,通过保存数据包文件进行注入 bp抓包获取post数据 将数据保存到post.txt文件 加上-r指定数据文件 1.2、方法二、通过URL注入 D:\Python3.8.6\SQLmap>python sqlmap.py -u "http://localhost/login.php" --data "userna…

替换:show-overflow-tooltip=“true“ ,使用插槽tooltip,达到内容可复制

原生的show-overflow-tooltip“true” 不能满足条件&#xff0c;使用插槽自定义编辑&#xff1b; 旧code <el-table-column prop"reason" label"原因" align"center" :show-overflow-tooltip"true" /> <el-table-column pro…

压缩文件的解析方式

Java中我们用ZipInputStream和ZipOutputStream来完成对zip文件和rar文件的读写 I /O流&#xff1a; Input:输入&#xff0c;通过“输入流”进行文件的读取操作 output:输出&#xff0c;通过“输出流”进行文件的写入操作 一、将压缩包解压缩 1.解压缩.zip格式文件&#xf…

微信小程序毕业设计-汽车维修项目管理系统项目开发实战(附源码+论文)

大家好&#xff01;我是程序猿老A&#xff0c;感谢您阅读本文&#xff0c;欢迎一键三连哦。 &#x1f49e;当前专栏&#xff1a;微信小程序毕业设计 精彩专栏推荐&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb; &#x1f380; Python毕业设计…

NoSQL 之Redis集群模式

一&#xff1a;Redis集群方式 Redis有三种模式&#xff1a;分别是主从复制、哨兵模式、Cluster 1&#xff1a;主从模式: 主从复制是高可用Redis的基础&#xff0c;哨兵和群集都是在主从复制基础上实现高可用的。主从复制主要实现了数据的多机备份&#xff0c;以及对于读操作的…

netscaler LDAP+RADIUS传统的双因素认证方式(之一)

如果使用传统的双因素认证方式&#xff0c;可以通过在Citrix ADC (NetScaler) 13.1上配置Gateway Virtual Server来实现LDAP和RADIUS的双因素认证。当前配置方式&#xff0c;采用Cateway vServer两个Basic Authtication Policy方式实现&#xff0c;以下是详细步骤&#xff1a; …

【码题集】习题

目录 史莱姆融合 松鼠接松果 新月轩就餐 史莱姆融合 根据题意就是一道集合合并的题&#xff0c;所以要用并查集&#xff0c;不过最后我们要输出整个序列&#xff0c;所以要在合并的时候维护一个链表&#xff0c;以便最终合并成一个大集合的时候&#xff0c;输出整个链表就是…

Kotlin Misk Web框架

Kotlin Misk Web框架 1 添加依赖1.1 build.gradle.kts1.2 settings.gradle.kts1.3 gradle.properties 2 请求接口3 程序模块4 主服务类5 测试结果 Misk 是由 Square 公司开发的一个开源的多语言服务器框架&#xff0c;主要用于构建微服务。它主要使用 Kotlin 语言&#xff0c;但…

UGC与AI引领的下一个10年,丝芭传媒已经准备好

丝芭传媒最近传来的消息&#xff0c;都跟技术相关。 基于自研AI大模型“Paro&#xff08;心乐舞河&#xff09;”的AIGPT及AIGC生成工具APP“鹦鹉人”开启用户内测。2023年3月技术测试的图形化智能社交基座“美踏元宇宙”&#xff0c;也将开放首轮用户内测。 此外&#xff0c…

Studying-代码随想录训练营day31| 56.合并区间、738.单调递增的数字、968.监控二叉树、贪心算法总结

第31天&#xff0c;贪心最后一节(ง •_•)ง&#x1f4aa;&#xff0c;编程语言&#xff1a;C 目录 56.合并区间 738.单调递增的数字 968.监控二叉树 贪心算法总结 56.合并区间 文档讲解&#xff1a;代码随想录合并区间 视频讲解&#xff1a;手撕合并区间 题目&#xf…

高效图纸管理:彩虹图纸管理软件助您一臂之力

高效图纸管理&#xff1a;彩虹图纸管理软件助您一臂之力 在制造业的激烈竞争中&#xff0c;高效图纸管理是企业提升竞争力和降低成本的关键。然而&#xff0c;传统的图纸管理方式往往存在效率低下、信息混乱等问题。此时&#xff0c;彩虹图纸管理软件凭借其卓越的性能和丰富的功…

一个vue页面复用方案

前言 问大家一个问题&#xff0c;曾经的你是否也遇到过&#xff0c;一个项目中有好几个页面长得基本相同&#xff0c;但又差那么一点&#xff0c;想用 vue extends 继承它又不能按需继承html模板部分&#xff0c;恰好 B 页面需要用的 A 页面 80% 的模板&#xff0c;剩下的 20%…

【验收支撑】软件系统验收计划书(直接套用原件doc)

编写软件验收计划是软件开发过程中的一个关键步骤&#xff0c;其重要性体现在以下几个方面&#xff1a; 明确验收标准&#xff1a;软件验收计划详细列出了验收的标准、测试方法、测试环境等&#xff0c;确保所有相关人员对验收的期望和要求有清晰的认识。这有助于避免在验收阶段…

triton需要cuda11.8版本--so 安装个11.8的cuda

1.安装一个11.8的cuda 查看ubunto版本 lsb_release -a查看cpu架构 uname -m到官网得到相应的命令&#xff1a;CUDA Toolkit Archive | NVIDIA Developer 依次输入两条命令。如果没有没有sudo权限就将cuda安装路径修改在自己目录下&#xff1a; sh cuda_11.8.0_520.61.05_li…

论文AIGC率超标?一键降重快速搞定

如何有效降低AIGC论文的重复率&#xff0c;也就是我们说的aigc如何降重&#xff1f;AIGC疑似度过高确实是个比较愁人的问题。如果你用AI帮忙写了论文&#xff0c;就一定要在交稿之前做一下AIGC降重的检查。一般来说&#xff0c;如果论文的AIGC超过30%&#xff0c;很可能会被判定…

【EI征稿】第四届机器人、自动化与智能控制国际会议

【快速通道】 参会方式&#xff1a;担任会议committee成员、组建workshop 、参会报告、参会交流、审稿专家、投稿参会。 会议地点&#xff1a; 湖南 长沙 会议时间&#xff1a;12月6日-9日 会议检索&#xff1a;EI检索 会议官网&#xff1a;https://www.icraic.org/ 投稿链接&a…

华为910b推理Qwen1.5-72b

前情提要&#xff1a;华为910b部署训练推理大模型&#xff0c;本人之前并没有接触过&#xff0c;所以&#xff0c;写此文档进行记录。 &#xff08;注意&#xff1a;版本适配很重要&#xff01;&#xff01;不然就像我一样走了好多坑~~~&#xff09; 首先&#xff0c;看一张图…