关于pixhawk硬件IMU和compass那点事儿

2023-05-16

文章目录

  • 前言
  • 一、IMU和compass是什么?
  • 二、导航坐标系与机体坐标系
  • 三、安装IMU,compasss
  • 四、hwdef中设置IMU,compass朝向
  • 总结


前言

继上一篇讲解了pixhawk的硬件组成,上上篇讲了飞控固件的移植。基本都是与硬件密切相关的。今天,我还是继续记录与硬件相关的内容。如题目所示,主要写一下pixhawk的IMU和compass的一些安装细节内容。


一、IMU和compass是什么?

IMU全称是inertial measurement unit即惯性测量单元,它可以测量出物体的加速度和角速度。目前在小型飞控上我们采用的都是体积小、重量轻、价格较低的MEMS IMU原件。compass即磁罗盘,它可以测量出物体与地磁场的夹角。这两个元件的具体测量原理请大家移步B站获得更好体验 原理讲解与基本使用

二、导航坐标系与机体坐标系

  • 对于导航而言,目前最常用的导航坐标系应该是东北天坐标系,即x轴指向东方,y轴指向北方,z轴指向天空,如下图所示:
    在这里插入图片描述

  • 对于机体坐标系而言,在飞行力学里我们基本都惯用前右下左标系,即x轴指向机体前方,y轴指向机体右方,z轴指向机体下方,如下图所示:
    在这里插入图片描述
    这样一来两个坐标系就不一致了,这样用起来岂不是不方便。确实,不过机体系还有另外一种那就是右前上坐标系。该坐标系与东北天坐标系是相对应的。

下面对常用的导航坐标系和对应的机体坐标系做出总结

东北天导航坐标系右前上机体坐标系北东地导航坐标系前右下机体坐标系
xEN
yNE
zUD

三、安装IMU,compasss

根据第二部分所述,一般IMU和compass安装时,应该将IC的坐标系与机体的右前上机体坐标系(对应东北天坐标系)相对齐。如果真的是这样那么世界就美好了。很不幸的是,实际并非完全如此。

  • IMU
    1.先说好消息,目前我看过的InvenSense出品的IMU,例如:MPU6000, ICM-20689, ICM-20602。都可以按上面的所述原则来进行。也就是IMU的坐标系与机体右前上坐标系完全对齐。
    2.现在来说坏消息,博士出品的IMU,例如BMI055, BMI088,却不能按照上述原则进行。而是其x轴方向与飞机机头方向一致,y轴指向飞机右侧,z轴指向飞机下方,也就是与机体的前右下坐标系相重合。不要问我为什么,我也没搞清楚,反正分析了hwdef文件和相应硬件,我确定事实就是这样的。
  • compass
    相比与IMU,compass更让人摸不着头脑。比如IST8310。这是怎么回事儿?它自身的坐标轴系居然都不是右手坐标系?啊?不是吧不是吧!
    在这里插入图片描述
    最后我还是硬着头皮摸出了规律,虽然我完全不知道为啥?但是管他的能用就行!规律如下:将其坐标系按原有的x轴和与Z轴定义为右手坐标系,然后将该坐标系与飞机机体的前右下坐标系重合。

以上说描述的IMU,compass应对准的机体坐标系,我们这里称之为标准坐标系。也就是说,如果想要不做任何额外设置就使用该传感器的话,PCB设计时就要将该IC焊接设计成如上所述的位置。

四、hwdef中设置IMU,compass朝向

正如上上篇内容所讲,在实际硬件中我们其实可以随意摆放IMU和compass,因为hwdef文件中我们可以定义这些IC的实际朝向相对于姿态解算需要标准坐标朝向的关系。(即IC实际坐标系相对于其标准坐标系的关系)然后有了这些信息飞控获取数据时就不会有问题了。这里就细致地说一下这个朝向是如何设置的,我自己不是很确定我说的是否完全正确,但是经过硬件推敲,这个规律至少是可用的。

这里我还是拿出怒飞老师的NFCYv5来举例:
在这里插入图片描述
图中白色箭头所指是为飞控的机头朝向,该面也为上面。

首先,我们来看ICM-20689,根据第三部分我们所述的规律,它与机体的右前上坐标系的z轴重合,但是y轴方向与机体右前上坐标系y轴相反。所以从IC的标准坐标系旋转到实际的坐标系我们需要的操作是偏航角方向旋转180°:

# second is icm20689
IMU Invensense SPI:icm20689 ROTATION_YAW_180

而对于BMI088,根据第三部分内容,它与机体前右下坐标系的x轴重合,而z轴和y轴方向都相反,所以需要:

IMU BMI088 SPI:BMI088_a SPI:BMI088_g ROTATION_ROLL_180

最后对于IST8310来说,它的Z轴与机体前右下坐标系重合,而x轴和y轴方向都相反,所以需要:

COMPASS IST8310 I2C:ALL_INTERNAL:0x0E false ROTATION_YAW_180

由于NFCYv5的传感器布置的还是很规整了,需要定义的旋转变化比较简单,所以这里我在选择一个例子说明:

# 3rd could be BMMI055 or BMI088
IMU BMI055 SPI:bmi055_a SPI:bmi055_g ROTATION_ROLL_180_YAW_90
IMU BMI088 SPI:bmi055_a SPI:bmi055_g ROTATION_ROLL_180_YAW_90

比如这个是CUAV nona的BMI系列IMU的hwdef定义。这里就表示将IMU标准坐标系旋转到实际坐标系,我们需要先绕IC坐标系yaw90°,然后再绕当前IC坐标系roll180°即可和的机体坐标系重合。

总结

嗯,好了。写到这里,又水完了一期博客。这部分其实没啥好总结的,我自己也还有有点懵,只是根据实际例子摸出了规律仅此而已,希望以后看代码能看出具体原因,不过不知道也行,能用就OK^_*。

补充:自己的硬件按照这个规律来写hwdef已经实测没有问题。

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

关于pixhawk硬件IMU和compass那点事儿 的相关文章

  • F450机架 Pixhawk飞控实现自动避障(2019.11.29)

    之前进行无人机项目 xff0c 实现避障 巡航 定点 航拍等功能 xff0c 项目结束 xff0c 在这里进行分享经验 xff0c 项目所用器件为自己使用的 xff0c 仅供参考 xff0c 实际实现须结合自己实际情况 1 传感器选择 权盛
  • pixhawk接口图以及引脚说明

    pixhawk接口图和引脚如下 pixhawk可以同时使用2个GPS xff0c 这只能使用其中一个罗盘 xff0c 实际中飞控挑选其中信号好的一个GPS进行定位 硬件部分 xff1a 第二个GPS插在serial 4 5接口上 xff0c
  • Pixhawk-信息流浅解析

    根深方能叶茂 在等待的日子里 xff0c 刻苦读书 xff0c 谦卑做人 xff0c 养得深根 xff0c 日后才能枝叶茂盛 Better 根爷 之前我们已经谈到系统框架 xff0c 之前谈到了定制自己功能的两部 xff1a 添加模块和修改
  • [pixhawk笔记]6-uORB流程及关键函数解析

    本文中将结合代码 文档及注释 xff0c 给出uORB执行流程及关键函数的解析 xff0c 由于uORB的机制实现较为复杂 xff0c 所以本文主要学习如何使用uORB的接口来实现通信 回到上一篇笔记中的代码 xff1a include l
  • 【SLAM】VINS-MONO解析——IMU预积分

    4 IMU预积分 IMU预积分主要干了2件事 xff0c 第一个是IMU预积分获得 值 xff0c 另一个是误差传递函数的获取 本部分的流程图如下图所示 各个部分的讲解如下链接 xff1a SLAM VINS MONO解析 综述 SLAM
  • 无人车传感器 IMU与GPS数据融合进行定位机制

    前言 上一次的分享里 xff0c 我介绍了GPS的原理 xff08 三角定位 xff09 及特性 xff08 精度 频率 xff09 xff0c 同时也从无人车控制的角度 xff0c 讨论了为什么仅有GPS无法满足无人车的定位要求 为了能让
  • RealSenseD345I —— imu + camera标定

    目录 1 标定目的 2 标定准备 3 标定步骤 nbsp nbsp nbsp nbsp 1 IMU标定 nbsp nbsp nbsp
  • 关于docker那点事儿——Dockerfile编写

    Dockerfile编写 前言一 Dockerfile创建镜像二 Dockerfile常用指令三 示例1 Dockerfile构建nginx镜像2 Dockerfile构建微服务 四 CMD与ENTRYPOINT比较 前言 Dockerfi
  • 教程:使用树莓派连接Pixhawk飞控

    教程 xff1a 使用树莓派连接Pixhawk飞控 树莓派可以与Pixhawk飞控相连 xff0c 读取飞控中的状态信息 xff0c 同时对飞控发送指令 树莓派作为一个更高性能的计算平台 xff0c 可以运行图像识别 机器学习 实时路径规划
  • 常见IMU的性能比较

    型号gyr零偏稳定性gyr量程acc零偏稳定性acc量程HZ价格其他说明 EG320N xff08 epson xff09 http www canalgeomatics com wp content uploads 2020 06 oem
  • TI CC265x的IIC通讯读取IMU BMI08x数据

    SmartLink CC265x是TI公司出的无线MCU平台器件 最近玩了个小项目用TI的CC265x平板IIC接口通讯 xff0c 获取博世BMI08x陀螺仪 加速度计传感器的数据 本篇博客亦是对博客 树莓派IIC通讯获取BMI08x I
  • vins中imu融合_VINS代码解读

    VINS estimator 摘抄 我们初始化的原因是单目惯性紧耦合系统是一个非线性程度很高的系统 xff0c 首先单目是无法获得空间中的绝对尺度 xff0c 而IMU又必然存在偏置 xff0c 在后面进行求解的时候还需要用到重力加速度 包
  • vins-fusion代码解读[五] imu在vins里的理解

    SLAM新手 xff0c 欢迎讨论 IMU作用 vins中 xff0c IMU只读取IMU六轴的信息 xff0c 3轴线加速度 xff08 加速度计 xff09 和3轴角速度 xff08 陀螺仪 xff09 通过对陀螺仪的一次积分 xff0
  • 树莓派3B使用mavlink串口连接PIXHAWK_V5

    参考网址 xff1a http ardupilot org dev docs raspberry pi via mavlink html https dev px4 io en robotics dronekit html https do
  • 【深蓝学院】手写VIO第2章--IMU传感器--笔记

    0 内容 1 旋转运动学 角速度的推导 xff1a 左 61 omega wedge xff0c 而
  • IMU+摄像头实现无标记运动捕捉

    惯性传感和计算机视觉的进步为在临床和自然环境中获得精准数据带来了新可能 然而在临床应用时需要仔细地将传感器与身体对齐 这减慢了数据收集过程 随着无标记运动捕捉的发展 研究者们提出了一个新的深度学习模型 利用来自视觉 惯性传感器及其噪声数据来
  • mission planner SITL仿真系统配置

    背景 主要参考ArduPilot的官网 作者还拥有个人公众号 会写一些感悟文章 知圈 二维码如下 欢迎扫描关注 关注后有作者微信 欢迎添加交流 链路图 图源 Cygwin 下载 去官网下载Cygwin 作者电脑windows 10 64位
  • 无人机姿态融合——EKF

    联系方式 860122112 qq com 一 实验目的 使用惯性测量单元IMU和磁场传感器 磁力计 的信息 通过EKF对四旋翼无人机进行姿态融合 二 实验环境 ROS机器人操作系统 三 实验步骤 1 安装hector quadrotor
  • 四元素与旋转矩阵

    如何描述三维空间中刚体的旋转 是个有趣的问题 具体地说 就是刚体上的任意一个点P x y z 围绕过原点的轴 i j k 旋转 求旋转后的点P x y z 旋转矩阵 旋转矩阵乘以点P的齐次坐标 得到旋转后的点P 因此旋转矩阵可以描述旋转 x
  • 如何显示MapKit指南针?

    目前 指南针仅在以下情况下才会显示用户应用旋转手势 否则指南针将被隐藏 不过如果能实现我下面的两个愿望就好了 是否可以一直显示指南针 如何使用 Swift 显示 隐藏指南针视图 您可以在 iOS 11 中使用新功能轻松完成此操作MKComp

随机推荐

  • 如何配置 QEMU 虚拟机网络

    关于 QEMU 的网络策略 QEMU 提供 4 种网络通信方法 xff0c 它们分别是 xff1a User mode stack xff1a 用户协议栈方式 xff0c 这种方式的大概原理是在 QEMU 进程中实现一个协议栈 xff0c
  • Pygame库的使用-1 初识Pygame

    本文参考链接如下 xff1a 1 https zhuanlan zhihu com p 1366649502 https www bilibili com video BV1bE411p7Ue from 61 search amp seid
  • 电机知识入门 有刷 | 无刷

    一 总述 直流电动机按结构及工作原理可划分为无刷直流电机 BLDC电机 和有刷直流电机 BDC电机 二 差异 BDC是Brushed DC Motor的缩写 xff0c BLDC是Brushless DC Motor的缩写BLDC电机 直流
  • PCB设计1 模块间的隔离

    想要给板子的各个部分进行电气隔离 xff0c 比如电源转压之后的各个电压12V 5V 3 3V 和用电的设备之间进行隔离 xff0c 本来的想法是用2pin的跳线帽 xff0c 但是在参考了一些资料之后 xff0c 对2pin跳线帽有了一个
  • Ubuntu18.04 更改apt-get 的时候会访问的软件源列表

    像这样 xff0c 每次在sudo apt get update的时候会有很多访问的软件源列表 xff0c 但是有的时候自己安装了一些软件比如说nordvpn xff0c 这样的时候就会自动的为我们增加apt get的源 xff0c 但是往
  • 安装油猴插件解决chatgpt报错问题

    转载自Github Daily公众号 Something went wrong If this issue persists please contact usthrough our help center at help openai c
  • Ubuntu18.04安装Elevation_Map并测试

    参考 elevation mapping at master ANYbotics elevation mapping GitHub 安装elevation mapping与traversability estimation elevatio
  • Vue:button按钮的点击

    调用 xff1a lt button class 61 34 toast 34 v on click 61 34 addEvent 34 gt toast gt lt button gt script lt script gt export
  • Vslam方案+源码,轻松搞定视觉slam

    原创 xff1a 涛涛CV 涛涛CV 今天 关注涛涛CV xff0c 设为星标 xff0c 更新不错过 VSLAM方案 目前基于视觉的SLAM技术有多种组合形式 xff08 见下表 xff09 方案 特点 TOF 成本高 xff0c 分辨率
  • 图解字节序大小端、比特序大小端

    先建立几个常识 xff1a 一般机器的字节序大小端和比特序大小端是一致的 人类阅读时 xff0c 从左向右进行阅读 xff0c 所以先看到数字的高位 xff0c 最后才能看到数字的低位 所以 xff0c 人类的阅读顺序 xff0c 天然是大
  • C++为什么要学习STL和Boost库

    最近一年我电话面试了数十位 C 43 43 应聘者 xff0c 惯用的暖场问题是 工作中使用过 STL 的哪些组件 xff1f 使用过 Boost 的哪些组件 xff1f 得到的答案大多集中在 vector map 和 shared ptr
  • 树莓派raspberry bullseye扩大虚拟内存

    之前用Ubuntu20 04的时候遇到很多bug xff0c 比如sudo apt update能用但图形界面却提示wifi不可用 xff0c 图形界面卡顿刷新黑屏 xff0c 图形界面没法使用硬件加速 xff0c 以及进入图形界面后无法使
  • 查看新增串口、USB设备

    注意 xff1a 虚拟机环境下的ubuntu默认情况下是不能自动识别的 xff0c 需要在虚拟机窗口右下角点击 34 Prolific USB Serial Controller 34 xff0c 然后选择 34 Connect Disco
  • ROS入门保姆级教程:7-ROS话题通信实现2:自定义消息类型(msg)

    ROS入门往期 xff1a ROS入门保姆级教程 xff1a 1 hello world初体验 ROS入门保姆级教程 xff1a 2 VScode中使用ROS ROS入门保姆级教程 xff1a 3 ROS文件系统 ROS入门保姆级教程 xf
  • Proteus仿真时报错:[SPICE] Too many iterations without convergence

    一 问题 xff1a 在利用Proteus仿真时 xff0c 经常会遇到 SPICE Too many iterations without convergence xff08 太多没有收敛的迭代 xff09 这个提示 xff0c 致使仿真
  • Android.bp编译提示ninja: error: unknown target ‘MODULES-IN-xxx‘终极指南

    Android bp编译提示ninja error unknown target 39 MODULES IN xxx 终极指南 Android bp系列博客 Android bp你真的了解吗 Android bp入门指南之Android m
  • 转折点----------我的IT梦

    干IT这一行快6年了 从来没有留下任何属于自己的一些所谓的阅历 时常去逛逛同行前辈们的空间 总能看到他们留下的心得体会 实则令人羡慕 xff0c 或者自己的卑微 xff0c 或者实在没什么体会 xff0c 写出来会丢人现眼 只是默默的去感受
  • 有了这份程序员面试指南,你离大厂Offer还远吗?| 附推荐书籍

    点击上方蓝色字体 xff0c 关注我 一个在阿里云打工的清华学渣 图by 石头 64 长白山 关于作者 xff1a 程序猿石头 ID tangleithu xff0c 现任阿里巴巴技术专家 xff0c 清华学渣 xff0c 前大疆后端 Le
  • 记录一次harbor的镜像扫描和更新

    前提 已经部署好harbor 192 168 14 16 项目名称 harbor 1 在harbor服务器拉取centos源镜像 root localhost docker pull centos Using default tag lat
  • 关于pixhawk硬件IMU和compass那点事儿

    文章目录 前言一 IMU和compass是什么 xff1f 二 导航坐标系与机体坐标系三 安装IMU xff0c compasss四 hwdef中设置IMU xff0c compass朝向总结 前言 继上一篇讲解了pixhawk的硬件组成