关于磁力计和加速度计的融合以及坐标系的对准

2023-05-16

1.关于磁力计的校准,我用了简单的方式,也就是拿着磁力计360度旋转,找到最大最小值,然后求得中心点。网上一堆的。



2.就是磁力计和加速度计的摆放问题。由于我当时的摆放和加速度计只有Y轴相同,X轴反向,当你用旋转矩阵右乘以后,发现不对。

目前网上并没有人说这个x,y,z的摆放会对磁力计的计算的影响。也可能是我没找到把大笑



第一种假设:绕X轴旋转20度,得到的姿态角是 pitch = -20.  roll = 0;同时得到Pitch = 0.roll = 0时刻的磁力计的值。如下。这个是我自己算出来的结果

mag.world_mx= mag.mx*fast_cos(angle.roll)+mag.my*fast_sin(-angle.pitch)*fast_sin(angle.roll)

+mag.mz*fast_sin(angle.roll)*fast_cos(-angle.pitch);
  mag.world_my=mag.my *fast_cos(-angle.pitch)-mag.mz*fast_sin(-angle.pitch);





结论,发现旋转后的值和水平放的值是差不多的。


第二种情况,旋转和情况一相同,从水平旋转到pitch = -20.roll = 0;  但是严格按照旋转矩阵来计算。代码如下。

mag.world_mx= mag.mx*fast_cos(angle.roll)+mag.my*fast_sin(angle.pitch)*fast_sin(angle.roll)

+mag.mz*fast_sin(angle.roll)*fast_cos(angle.pitch);
  mag.world_my=mag.my *fast_cos(angle.pitch)-mag.mz*fast_sin(angle.pitch);



可见,mx,my旋转到world_mx,world_my以后,这个值相差就挺大的了。




综上所述,关于坐标系的对其,是非常有必要的。


推荐参考《Implementing a Tilt-Compensated eCompass using Accelerometer and Magnetometer Sensors》










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

关于磁力计和加速度计的融合以及坐标系的对准 的相关文章

  • Android Audio代码分析 - Audio Strategy

    frameworks base services AudioFlinger cpp status t AudioFlinger PlaybackThread Track start status t status 61 NO ERROR L
  • mtk android 4.4 audio framework 代码分析(未完成)

    mtk android 4 4 audio framework 代码分析 未完成 xff0c 有需要的朋友可以参考下 mtk android 4 4 audio framework 代码分析 未完成 2 28 2015 3 01 24 PM
  • 关于codewarrior调试出现illegal BP的问题解决过程(转载)

    昨天两位工程师调试同时出现这个问题 xff0c 网上对于illegal BP的解决方法讲解的很模糊 xff0c 没有一个具体的指导方针 我试着阐述我们问题的解决过程 xff0c 希望对大家解决类似情况可以起到抛砖引玉的作用 两位工程师同时出
  • WGS84坐标系-地心地固坐标系-东北天坐标系

    目录 1 前言 2 转换过程 3 代码示例 4 参考资料 1 前言 工作中遇见个问题 xff0c 就是ue4中 xff0c 使用的坐标描述是使用东北天坐标系 xff0c 因为如果经纬度只能表达到小数点后6位 xff0c 这就造成有时间物体摆
  • jmp指令用法总结

    jmp指令用法总结 xff1a 1 直接用法 只能在Debug下使用的汇编指令 jmp 段地址 xff1a 偏移地址 功能 xff1a 修改CS IP的内容 例子 xff1a jmp 55BA 8 执行后 xff1a CS 61 55EAH
  • Robomaster云台,底盘,陀螺仪校准

    文章目录 前言一 云台校准二 底盘校准三 陀螺仪校准 前言 本文主要介绍了Robomaster云台 xff0c 底盘 xff0c 陀螺仪怎么校准 一 云台校准 1 将开关 S2 和开关 S1 都拨到最下面 2 将两侧拨杆打成内八字 xff0
  • 详解RTK、RTD、SBAS、WAAS、PPP、PPK广域差分等技术之间的关系与区别。

    RTK与RTD的区别 xff0c 一个是载波相位差分 一个是码差分 xff0c 并且RTK的定位精度要高一些 RTK与PPK的区别 xff0c 一个是实时提供数据信息 xff0c 一个是事后处理 WAAS是SBAS系统一个具体的实例 xff
  • 如何使用潘多拉连接千寻开发板开发高精度应用

    所需设备 xff1a 潘多拉开发板 xff08 淘宝链接 xff09 注意 xff1a 购买时请注意屏幕背面上方的版本号 xff0c 我购买的是V2 61版本 xff0c 其他版本的串口布局不一样 xff0c 在代码编写时需要注意 xff0
  • 树莓派3B+如何连接千寻开发板开发高精度应用

    所需设备 xff1a 树莓派3B 43 xff08 官网 xff09 千寻魔方120M开发板 xff1a xff08 官方链接 xff09 连接树莓派和千寻魔方开发板 xff0c 开发板接上天线 xff0c 并将串口线与树莓派进行连接 xf
  • 如何用手机实现高精度定位导航

    编者按 如果手机能够实现高精度定位 xff0c 导航再也不出错 位置共享更精确 xff0c 就连AR游戏都会变得更带感 xff01 在攻城狮们的不懈努力下 xff0c 这样的日子就快来了 3月2日 xff0c 武汉大学测绘学院博士陶贤露 x
  • 基于北斗高精度定位的运河航道安全导航解决方案

    编者按 你听说过 船联网 吗 xff1f 在我国 xff0c 以船舶为主体的内河航运 xff0c 每年完成运量大约40亿吨 xff0c 占全国货运总量的10 每天都有大量船舶 xff0c 在狭窄的内流河面上行驶 xff0c 因此用于实现航运
  • RTK与网络RTK技术的工作原理和区别对比

    一 RTK RTK是一种利用GPS载波相位观测值进行实时动态相对定位的技术 进行RTK测量时 xff0c 至少需配备2台GPS接收机 xff0c 一台安装在基准站上 xff0c 另一台在基准站附近进行实时相对定位 xff0c 进而根据基准站
  • 【GNSS高精度定位应用】

    GNSS定位技术具有全天候 高精度 覆盖全球 自动化程度高 实时服务能力强等优点 xff0c 已经广泛应用于交通 军事 农业等领域 xff0c 例如车辆自主导航 自然灾害监测 紧急事故安全救援 精确制导武器 精准农业 建筑物结构安全监测等
  • 高精度定位成就智能物联|高精度定位的“智能化”进化史

    智能化发展日益成熟 xff0c AI当道 xff0c 互联网基建2 0时代 AIoT时代来临 AIoT是AI IoT 空间三个要素的结合 AI是大脑 xff0c 是不断进阶的算法能力 xff0c IoT是躯壳和骨干 xff0c 是更多智能化
  • svn 分支(branch)和标签(tag)管理

    版本控制的一大功能是可以隔离变化在某个开发线上 xff0c 这个开发线就是分支 xff08 branch xff09 分支通常用于开发新功能 xff0c 而不会影响主干的开发 也就是说分支上的代码的编译错误 bug不会对主干 xff08 t
  • 【HTTP协议】---HTTP协议详解

    HTTP协议详解 一 HTTP简介 1 HTTP协议 xff0c 即超文本传输协议 Hypertext transfer protocol 是一种详细规定了浏览器和万维网 WWW 61 World Wide Web 服务器 之间互相通信的规
  • 智驾发展的前世今生|自动驾驶完好性解决方案,只在千寻FindAUTO

    7月6日消息称 xff0c 深圳经济特区智能网联汽车管理条例 将于8月1日起实施 这部国内首部关于智能网联汽车管理的法规 xff0c 对智能网联汽车自动驾驶的定义 市场准入规则 路权 权责认定等多方面进行了具体规定 该条例意味着深圳或成为国
  • 智驾发展的前世今生|为高阶自动驾驶而生的千寻FindAUTO NSSR解决方案

    众所周知 xff0c 定位技术作为智能驾驶的关键核心 xff0c 解决了 我在哪 的问题 xff0c 与感知 决策 执行一起 xff0c 构成了智能驾驶四大主体功能 在L3自动驾驶发展落地如火如荼之际 xff0c 对于定位服务的需求愈发细致
  • 记一次 php curl 访问 https站点遇到的问题

    问题描述 今天大壮的PHP项目上 xff0c 在后端要去从微信那边取用户手机端上传的图片文件 微信提供的获取文件资源地址是 xff1a https api weixin qq com cgi bin media get access tok
  • 从入门到入土:基于C语言采用UDP协议实现通信功能的程序

    此博客仅用于记录个人学习进度 xff0c 学识浅薄 xff0c 若有错误观点欢迎评论区指出 欢迎各位前来交流 xff08 部分材料来源网络 xff0c 若有侵权 xff0c 立即删除 xff09 本人博客所有文章纯属学习之用 xff0c 不

随机推荐

  • 【Linux】【Ubuntu 】Ubuntu下安装Chrome

    本文记录 Ubuntu 下安装 Chrome 的方法 文章目录 1 安装 Chrome 的两种方式1 1 通过下载 deb 包安装 推荐 1 2 通过 apt install 安装 2 使用 Chrome 1 安装 Chrome 的两种方式
  • Arduino实现压力传感器(使用HX711模块)

    span class token comment 以下为函数声明 span span class token keyword extern span span class token keyword unsigned span span c
  • Arduino操作MPU6050模块

    MPU6050是集成三轴陀螺仪 xff0c 三轴加速度计 xff0c 温度传感器于一体的模块 本文档基于Adafruit MPU6050实现MPU6050模块基本操作 Adafruit MPU6050库 xff1a https github
  • ROS小车研究笔记2/25/2023自动导航

    使用说明 xff1a 1 将小车手动放在地图起点或者通过rviz设置起点 2 运行导航launch文件 roslaunch turn on wheeltec robot navigation launch rviz 运行rviz终端 要在r
  • 倾斜摄影测量无人机炸机的八大原因及“炸机”预防措施

    引言 采用无人机航测的方式代替人工完成相应的测绘工作不仅效率高 xff0c 其精度也有保证 但飞行事故却是一个不容忽视的重要潜在危险源 航测设备的价格往往不低 xff0c 每一个事故的发生都会给客户造成巨大损失 有鉴于此 xff0c 睿铂根
  • 向量积的二维物理意义,二维向量叉乘几何意义

    1 自然语言 二维向量叉乘 xff1a x1 y1 x2 y2 61 x1y2 x2y1值的绝对值是两向量同起点 xff0c 构成平行四边形的面积值为正 xff0c x2 y2 在 x1 y1 逆时针方向值为负 xff0c x2 y2 在
  • Boost.Asio C++ 网络编程之十:基于TCP的异步服务端

    这个流程图是相当复杂的 xff1a 从Boost Asio出来你可以看到4个箭头指向on accept xff0c on read xff0c on write和on check ping 这也就意味着你永远不知道哪个异步调用是下一个完成的
  • 使用usrmod时报错user does not exist

    笔者在sudo usermod a G users whoami 时遇到这个问题使用vigr编辑 etc groups xff1a sudo vigr etc groups内容依次是 xff1a 组名 xff1a 密码 xff1a 组号 x
  • invalid conversion from ‘const char*’ to ‘char*’解决方法

    string类的c str函数返回的是const char类型 xff0c 如果将它用作实参传递给char的形参就会报这个错误解决方法 xff1a 在调用是加 char 转换一下 xff0c 比如 char cfgfile c str
  • undefined symbol的解决记录

    一 看这里说 xff0c 是链接顺序的问题 xff0c 于是在CMakeLists里加了这个 xff1a Wl start group PROJECT SOURCE DIR lib libngraph so PROJECT SOURCE D
  • C++多线程加速for循环

    引用传参需要使用std ref普通循环 span class token macro property span class token directive hash span span class token directive keyw
  • 极简版pytorch实现yolov3-tiny

    参考https github com bubbliiiing yolo3 pytorchtrain py流程 xff1a 加载数据dataloader py正向传播tiny py反向传播loss pydataloader py span c
  • pytorch保存一张图的所有特征图

    需要先了解所用网络的结构 span class token keyword import span torch span class token punctuation span nn span class token keyword as
  • docker问题集锦

    1 http server gave HTTP response to HTTPS client sudo vim etc docker daemon json 添加 insecure registries ip 端口 sudo servi
  • 利用opencv边缘提取矩形框集合覆盖的图像

    contourArea因为以边缘像素中心为边长计算 xff0c 所以面积会小于实际面积opencv python xff1a https docs opencv org 4 x d3 d05 tutorial py table of con
  • opencv中常用的C++轮廓函数

    提取轮廓 std vector lt std vectorcv Point gt contours cv Mat image 61 cv imread 34 34 只检索最外面的轮廓且用端点代替直线段 xff08 水平 xff0c 竖直 对
  • cmake中PROJECT_SOURCE_DIR的遐思

    PROJECT SOURCE DIR为包含PROJECT 的最近一个CMakeLists txt文件所在的文件夹 如以下文件结构 xff1a test 43 build 43 include 43 lib 43 src 43 main cp
  • curl 查看HTTP 响应头信息

    1 curl I 查看HTTP 响应头信息 curl I 34 http www taobao com 34 HTTP 1 1 200 OK HTTP协议 HTTP 返回码 Server Tengine Date Fri 01 Nov 20
  • cmake(7):find_package命令详解

    1 说明 cmake的find package命令对于构建软件提供了极大的便利 xff0c 虽然知道怎么使用已经能解决大部分问题 xff0c 但是cmake支持哪些包 xff1f 为什么它能找到需要的包 xff1f 如果是自己编写的库 xf
  • 关于磁力计和加速度计的融合以及坐标系的对准

    1 关于磁力计的校准 xff0c 我用了简单的方式 xff0c 也就是拿着磁力计360度旋转 xff0c 找到最大最小值 xff0c 然后求得中心点 网上一堆的 2 就是磁力计和加速度计的摆放问题 由于我当时的摆放和加速度计只有Y轴相同 x