磁力计椭球拟合使用篇 IMU 加速度、电子罗盘校准

2023-05-16

磁力计校准椭球拟合使用篇

!!下方蓝色函数链接!!

matlab 椭球拟合函数链接

串口打印磁力计数据,可以选择原始数据不进行任何缩放(前提是各轴向分辨率一致)。

	get_RM3100_data(&mx,&my,&mz);
	printf("%d,%d,%d\r\n",mx,my,mz);

各个位置方向旋转,进行数据采样,一定要保证数据各个角度都采集到,数据越多效果越好。
将数据保存未txt文档。
从上面matlab 的椭球拟合文档中将function copy一下,稍微修改:

clc;
clear all;
filename = 'mag_ellipsoid1.txt';
mag_data = load(filename);
x= mag_data(:,1);
y= mag_data(:,2);
z= mag_data(:,3);
%椭球拟合函数1
[ center, radii, evecs, v, chi2 ] = ellipsoid_fit_new( [ x y z ], '' );
fprintf( '椭球 圆心: %.5g %.5g %.5g\n', center );
fprintf( '椭球 半径: %.5g %.5g %.5g\n', radii );
fprintf( '椭球面:\n' );
fprintf( '%.5g %.5g %.5g\n%.5g %.5g %.5g\n%.5g %.5g %.5g\n', ...
    evecs(1), evecs(2), evecs(3), evecs(4), evecs(5), evecs(6), evecs(7), evecs(8), evecs(9) );
fprintf( 'Algebraic form:\n' );
fprintf( '%.5g ', v );
fprintf( '\n拟合的平均偏差: %.5f\n', sqrt( chi2 / size( x, 1 ) ) );
fprintf( '\n' );
% draw data
figure,
plot3( x, y, z, '.r' );
hold on;
%draw fit
mind = min( [ x y z ] );
maxd = max( [ x y z ] );
nsteps = 50;
step = ( maxd - mind ) / nsteps;
[ x, y, z ] = meshgrid( linspace( mind(1) - step(1), maxd(1) + step(1), nsteps ), linspace( mind(2) - step(2), maxd(2) + step(2), nsteps ), linspace( mind(3) - step(3), maxd(3) + step(3), nsteps ) );
Ellipsoid = v(1) *x.*x +   v(2) * y.*y + v(3) * z.*z + ...
          2*v(4) *x.*y + 2*v(5)*x.*z + 2*v(6) * y.*z + ...
          2*v(7) *x    + 2*v(8)*y    + 2*v(9) * z;
p = patch( isosurface( x, y, z, Ellipsoid, -v(10) ) );
hold off;
xlabel('X轴');
ylabel('Y轴');
zlabel('Z轴');
grid on;
set( p, 'FaceColor', 'g', 'EdgeColor', 'none' );
view( -70, 40 );
axis vis3d equal auto;
camlight;
lighting phong;
hold on;

得到拟合结果:拟合结果1
数值结果

如何使用得到的数值

		get_RM3100_data(&mx,&my,&mz);
		
		printf("%d,%d,%d\r\n",mx,my,mz);
		//椭球校准
		mx1 = mx-64.384;//椭圆圆心平移至0,0,0 
		my1 = (my+58.583)*  4269.5/ 3869;//平移轴圆心,并且将y轴按x轴缩放
		mz1 = (mz-31.555)*  4269.5/3783.7;//平移轴圆心,并且将z轴按x轴缩放

测试:

	//计算平面偏航角度
	angle=atan2(my1,mx1)*180/3.14159+180 ;

平面上计算偏航角度,找个桌子角旋转90°测试一下,看角度值是否可靠。

ps 简单一试,一切从简。大佬勿喷。基于MATLANB 的离线椭球校准窗户纸就在这了。其他方法大同小异。研究算法的去看matlab function。

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

磁力计椭球拟合使用篇 IMU 加速度、电子罗盘校准 的相关文章

  • Python:列表有趣挑战--斗地主扑克牌发牌

    目录 游戏描述 xff1a 题目分析与关键点 xff1a 代码参考 xff1a 游戏描述 xff1a 本题限定用以下方法打乱序列中的元素 random shuffle 几个人用一副扑克牌玩游戏 xff0c 游戏过程通常有洗牌 发牌 理牌等动
  • Python: 常用指令归纳(持续更新中)

    目录 复合赋值运算符 位运算符的运算规则 常用的转义符 常用字符串格式转换控制符 字符串处理函数 序列类型的常用操作符 复合赋值运算符 复合赋值运算符 运 算 符功 能 描 述 示 例 x 61 5 xff0c y 61 3 43 61 加
  • 无线远距离WiFi模块图传技术,无人机智能安防预警应用

    随着社会经济的快速发展 xff0c 交通工具日渐增多 xff0c 人员 车辆流动性大 xff0c 警车 警员在执法过程中对移动目标 突发场合的信息收集与现场预警 xff0c 当场发现嫌疑目标并进行抓捕已成为公安警务工作的紧迫需求 从警务执法
  • yolov5输出检测框的中心位置,框的长宽,框的位置,以及输出对应标签格式的输出

    yolov5输出检测框的中心位置 xff0c 框的长宽 xff0c 框的位置 xff0c 以及输出对应标签格式的输出 模型读取每个图片 xff0c 并将上述的信息依此输出到同名的txt文件中保存 xff0c 具体需要哪些坐标可以自己选 更改
  • 无人机远距离WiFi图传应用,CV5200无线WiFi模组,远程实时通信传输方案

    无线图传在实际应用中越来越受到追捧 xff0c 无线图传免布线 移动方便 安装简单 xff0c 大大节约了材料和人工成本 无线图传能够在远距离范围内实时视频无线传输 xff0c 满足了不同距离需要的需求 xff0c 也覆盖了不同规模的企业
  • antd表单赋值,回显表格数据

    使用 antd 做表格回显数据时 xff0c 会看到文档有写 xff1a 所以我们可以 1 定义hooks const form 61 Form useForm 2 在触发事件中使用 xff0c 以打开模态框赋值为例 const showM
  • jetson nano jacksdk4.6中cuda,cudnn,tensorrt的版本查看

    JetPack 4 6上已经预装了CUDA cuDNN and TensorRT VPI 1 1 可以直接从官网下载 xff08 jetson sdk xff09 使用拷贝到SD卡 JetPack 4 6 is the latest pro
  • 无人船毕设进展

    智能无人测量船设计进展 xff08 硬件系统 xff09 目录前言课题目的研究现状控制系统 xff08 Pixhawk xff09 动力系统供电系统通讯系统传感器系统pixhawk2 4 8接口分析控制系统详细分析技术路线参考文献 目录 前
  • OpenMV:20追踪其他物体的云台

    文章目录 追踪人脸的云台追踪AprilTags的云台追踪圆形的云台 和追踪小车的原理是一样的 首先获得目标物体的x y坐标 xff0c 然后通过目标物体的xy坐标来控制我们云台的两个舵机的pid运动 无论追踪什么物体 xff0c 都是通过物
  • 如何在Linux终端使用录屏工具Asciinema?

    安装asciinema apt get install asciinema 开始记录视频 asciinema rec first cast 以倍速重播 asciinema play s 2 first cast 分享或上传至网络 ascii
  • 初探进程和线程

    初探进程和线程 之前学习过RTOS xff0c 对线程有一些认识和理解 xff0c 但接触到Linux后还遇到了进程这个概念 xff0c 虽然两者之间名字很相像 xff0c 但其实是完全不同的两个概念 进程包含一个内存地址和执行的线程 xf
  • CENTOS7设置静态IP

    Centos7网卡配置配置永久ip xff1a 1 网卡目录 xff1a etc sysconfig network scripts ifcfg ens33 2 网卡重启命令 xff1a sudo ip addr flush dev ens
  • lsof命令

    一 lsof命令 lsof命令用于查看你进程开打的文件 xff0c 打开文件的进程 xff0c 进程打开的端口 TCP UDP 找回 恢复删除的文件 是十分方便的系统监视工具 xff0c 因为lsof命令需要访问核心内存和各种文件 xff0
  • 官网TimescaleDB 配置

    官网 xff1a https www zabbix com documentation current zh manual appendix install timescaledb TimescaleDB 配置 概述 Zabbix支持Tim
  • centos7-UBTUN配置单网卡多IP(子接口)

    文件位置 proc sys net ipv4 conf nbsp nbsp 查看适配器 网卡 名称 网卡目录 nbsp etc sysconfig network scripts 一 centos7 即Linux下配置网卡ip别名何谓ip别
  • centos7 and unbtun设置多网卡多IP + 单网卡多子接口(子ip)

    一 centos7 多网卡多IP 目录 proc sys net ipv4 conf nbsp nbsp nbsp nbsp nbsp nbsp nbsp 查看网卡 小注 vmare添加一块新的网络适配器之后查看新添加的网卡名称 基础环境配
  • centos7配置网卡bonding+(多网卡多IP单网卡单IP)

    目录 xff1a proc sys net ipv4 conf 查看网卡 watch n 1 cat proc net bonding bond0 监控 bond0 状态 xff0c 小注 xff1a vmare添加一块新的网络适配器之后查
  • 关于ubtun20.04的网卡设置(多网卡 多IP 单网卡 多IP(子ip) bond)

    目录 xff1a etc netplan 目录 xff1a proc sys net ipv4 conf 验证bond命令 xff1a watch n 1 cat proc net bonding bond0 一 单网卡 43 静态IP 1
  • zabbix优化(报警恢复慢,页面卡等)

    13条消息 zabbix优化 xff08 报警恢复慢 xff0c 页面卡等 xff09 AtlanSI的博客 CSDN博客 zabbix页面卡 https blog csdn net AtlanSI article details 8215
  • postgresql 清空数据表数据

    在 mysql中 xff0c 只需要执行 xff1a TRUNCATE table name 即可 xff0c 数据表会清空 xff0c 而且自增id也会变回0 xff1b 但在 postgresql 则稍有不同 xff0c 因为 post

随机推荐

  • ubuntu安装报错-安装aptitude报错E: 无法修正错误,因为您要求某些软件包保持现状,就是它们破坏了软件包间的依赖关系。

    原因镜像源的问题 解决 将源换为官方源并安装aptitude sudo apt get update See http help ubuntu com community UpgradeNotes for how to upgrade to
  • 修改ssh默认端口22

    平滑修改linux中的sshd端口 第一种 xff1a 1 假如要改SSH的默认端口 xff08 22 xff09 xff0c 那么你只要修改 xff1a 代码如下 etc ssh sshd config中Port 22 这里把22改成自己
  • docker and docker-compose安装

    docker 安装 curl sSL https get daocloud io docker sh docker compose 安装 1 curl L https get daocloud io docker compose relea
  • mysql远程登录

    MySQL5 7授权用户远程访问 做个记录 xff0c 每次弄环境的时候 xff0c 特别是弄mysql环境 xff0c 时不时都要用到下面的命令 命令如下 grant all privileges on to 39 root 39 64
  • zabbix5.0快速部署脚本

    bin bash 版本1 0 zabbix 43 nginx版本 welcome cat lt lt EOF 需要需改的配置文件有 xff1a 1 vi etc yum repos d zabbix repo zabbix源 2 vi et
  • openstack创建网络,路由等

    参考链接 xff1a https blog csdn net qq 28540443 article details 109184700 ops request misc 61 amp request id 61 amp biz id 61
  • shell脚本颜色

    https blog csdn net it chang article details 111084116
  • windows11 安装 vmare sphere client 无法启动问题

    被搞了两天特别记录一下 xff1a 现象 xff1a 安装什么都正常双击就是启动不了 解决 xff1a 控制面板 程序和功能
  • ceph delete pool

    参考 xff1a Pools Ceph Documentation 前言 xff1a 网上的写的乱七八糟不是你抄我就是我抄你 写的完全瞎扯 简直看不下去 官网截图 xff1a 准备 1 查看pool名称 ceph osd lspools 创
  • TODS:一款功能强大的多元时间序列异常检测工具

    TODS是一个全栈的自动化机器学习系统 xff0c 主要针对多变量时间序列数据的异常检测 该系统可以处理三种常见的时间序列异常检测场景 xff1a 点的异常检测 xff08 异常是时间点 xff09 模式的异常检测 xff08 异常是子序列
  • Linux防火墙firewalld安全设置

    背景描述 防火墙是具有很好的保护作用 攻击者必须首先穿越防火墙的安全防线 xff0c 才能接触目标计算机 在公司里数据安全是最重要的 xff0c 要求安全部门进行全公司进行服务器防火墙安全搭建 xff0c 在原有的基础上进行安全的防火墙设置
  • STM32F1--FreeRTOS系统学习(一):系统下载移植以及跑马灯测试

    以下内容皆是个人学习过程中的总结 xff0c 记录一下整个过程 xff0c 用于后期复习 xff0c 如有不对之处 xff0c 麻烦各位大佬指出 xff08 喜欢的朋友麻烦点个关注 后期还会进行持续更新 xff09 一 什么是FreeRTO
  • 如何准备国内一流互联网公司面试,如百度、阿里、腾讯、字节等

    入职新公司快半年了 xff0c 今天 xff0c 我就想和大家聊聊 xff0c 关于找工作 面试的一些心得与体会 说实话 xff0c 在这次找工作之前 xff0c 我面试找工作的经历并不丰富 xff0c 反而是当面试官的次数更多 所以呢 x
  • 基于 瑞芯微 RK1126 平台的项目总结(包含AI 画中画 RTSP OSD 录像 双路摄像头)

    其实这个项目结束一两个月了 中间过了个年 就把这事给忘记了 趁现在比较空记录一下 说下概况 项目是基于RK1126平台 硬件配置2个摄像头一个广角一个长焦 需要支持画中画在广角摄像头的画面中 显示长焦摄像头的大概位置 但是由于硬件还是驱动没
  • JavaScript小案例2-实现猜数游戏

    题目要求 xff1a 系统生成一个1 100的数 xff0c 然后让玩家猜数 如果玩家猜对该数 xff0c 则游戏结束 xff1b 如果没猜对 xff0c 则弹出警告框告告知玩家数字猜大了还是猜小了 xff0c 并提示玩家是否继续游戏 xf
  • 【Ubuntu】Linux文件系统简介

    Linux文件系统简介 Linux文件系统简介及类型1 Linux文件系统简介2 Linux文件系统类型 Linux文件系统结构文件操作指令创建新文件命令 touch创建文件夹命令 mkdir文件夹及目录删除命令 rm文件夹 目录 删除命令
  • 嵌入式实时操作系统(RTOS)

    一 项目准备工作 1 创建一个标准库项目 这里不用很麻烦 xff0c 项目能跑就行 xff0c 后面要以这个项目为基础移植 2 下载ucOS 源码 ucos 源码 百度网盘链接 xff1a 提取码 xff1a 1234 xff08 STM3
  • ROS环境安装与配置

    提示 xff1a 文章写完后 xff0c 目录可以自动生成 xff0c 如何生成可参考右边的帮助文档 文章目录 实验环境一 ROS话题二 ROS消息三 C 43 43 编码实现小海龟圆周运动 提示 xff1a 以下是本篇文章正文内容 xff
  • solvepnp参数获取

    1 上参数 xff1a solvePnP 具体参数 xff1a objectPoints xff1a 特征点的世界坐标 xff08 3d点 xff09 xff0c 坐标值需为float型 xff0c 不能为double型 xff0c 可以为
  • 磁力计椭球拟合使用篇 IMU 加速度、电子罗盘校准

    磁力计校准椭球拟合使用篇 xff01 xff01 下方蓝色函数链接 xff01 xff01 matlab 椭球拟合函数链接 串口打印磁力计数据 xff0c 可以选择原始数据不进行任何缩放 xff08 前提是各轴向分辨率一致 xff09 sp