玩双足、做平衡车、调机器狗的朋友,基本都绕不开一个问题:机器人的"小脑"选哪块。这里说的小脑就是IMU惯性测量单元,它负责告诉主控,机身现在歪了多少、转得多快。选错了,轻则姿态角漂到没法看,重则整机原地摔倒。我自己这几年焊过用过的IMU里,有三块绕不开的经典:十块钱的MPU6050、自带融合算法的BNO055、还有无人机圈常见的BMI088。三块价格差了十几倍,差别到底在哪,这篇一次说清楚。
MPU6050:十元级的入门老黄牛

MPU6050是InvenSense的老牌六轴,这家厂商后来并入了TDK。芯片里是一个3轴陀螺仪加一个3轴加速度计,都是16位输出:陀螺量程±250到±2000度每秒分四档可调,加速度±2g到±16g也是四档,通信只走I2C,最高400kHz。
它最大的卖点是便宜、资料多。淘宝上最常见的GY-521蓝色小板,我10月24日查的价格是7到11块钱,还送一排针。片内有个DMP数字运动处理器,可以直接吐出融合后的四元数,不用自己写滤波——不过用过的都知道,官方DMP库又大又老,很多人宁可自己在主控上跑Mahony互补滤波。
缺点也要摆到台面上:零偏和温漂都不小,静止放着,角度会慢慢爬;官方数据手册里加速度噪声密度标的是400μg/√Hz,放在今天只能算入门水平。拿来做桌面摆件、入门平衡车练手完全没问题,想上高动态就吃力了。
BNO055:把姿态融合烧进芯片里

如果你不想碰融合算法,博世的BNO055是另一条路。它是一颗9轴SiP系统级封装:14位加速度计,量程±2/4/8/16g;16位陀螺仪,量程±125到±2000度每秒;再加一个地磁计,X/Y轴±1300微特斯拉、Z轴±2500微特斯拉。封装里还塞了一颗Cortex-M0+,专门跑博世自家的BSX3.0融合算法。
也就是说,你发一条I2C读数命令,它直接把欧拉角、四元数、线性加速度、重力矢量都给你,连校准状态寄存器都能读。我最早做云台的时候用它,半天就出了稳定的航向角,那种省心,是自己拿MPU6050调参给不了的。代价是功耗,九轴全开100Hz输出时电流约12.3mA。
有件要紧事必须说清楚:博世官网现在给BNO055标了"不建议用于新设计",得捷的元器件页面上也挂着同样的提示。意思是官方后续主推BNO085等新系列,老型号的供货和支持会慢慢收缩。手里已有的模块照样用,新项目立项前建议多想一步。模块价格方面,GY-BNO055我10月24日在淘宝查到的是35到100元之间,分店铺和版本。
BMI088:无人机血统的高性能六轴

第三块是博世BMI088,官方定位写得很直白:为无人机和机器人优化。它还是六轴组合,但每项指标都往上抬了一档:加速度计量程±3/6/12/24g,陀螺±125到±2000度每秒,同样16位。真正拉开差距的是噪声和温漂——加速度噪声密度175μg/√Hz,陀螺0.014°/s/√Hz;温度系数分别是±0.2mg/K和±0.015°/s/K,陀螺零偏不稳定性压到了每小时2度以内。
翻译成人话:MPU6050转一小时可能漂出去几十度,BMI088能稳在几度量级。它还给了SPI接口,I2C也保留,采样吞吐比纯I2C高一截,满负荷电流5.15mA,供电2.4到3.6V,工作温度-40到+85℃。穿越机飞控、对姿态要求苛刻的双足平台,很多都选它。代价就是价格:带恒温解算的达妙那块BMI088板子淘宝59元,普通转接模块79元上下——都是10月24日查的价,比GY-521贵了快十倍。
三块放一起比一比
| 项目 | MPU6050 | BNO055 | BMI088 |
|---|---|---|---|
| 厂商 | InvenSense(现属TDK) | 博世 | 博世 |
| 轴数 | 6轴 | 9轴,含地磁 | 6轴 |
| 陀螺量程 | ±250~2000°/s | ±125~2000°/s | ±125~2000°/s |
| 加速度量程 | ±2~16g | ±2~16g | ±3~24g |
| 姿态融合 | 片内DMP出四元数 | 直接出欧拉角和四元数 | 无,需主控自己融合 |
| 接口 | I2C | I2C/UART | SPI/I2C |
| 加速度噪声密度 | 400μg/√Hz | 官方未标该项 | 175μg/√Hz |
| 模块参考价(10月24日查) | 7~11元 | 35~100元 | 59~79元 |
到底怎么选,按场景说
静态平衡、入门练手、预算卡死,选MPU6050。它的资料最多,坑都被前人踩平了,烧一块也不心疼。不想写融合、要直接出角度、做云台或机器人头部姿态这类应用,BNO055仍然是最省事的选择,但记住它头上那个"不建议用于新设计"的标签,全新项目可以顺手看看BNO085。高动态、要跑自己的EKF、做穿越机或者剧烈运动平台,直接上BMI088,多花的钱买的是噪声和温漂,这两个指标到后期调参时,是拿钱都难换回来的。
最后提醒一句:不管选哪块,上机先做静态零偏标定,再谈滤波算法。传感器选得再好,标定偷懒,姿态照样飘。
本文由"硅基部落"小编整理,转载请注明出处。











价格对比很实用,7块和79块差了十倍,怪不得穿越机飞控清一色都用088
之前做平衡车用的就是6050,静止放着角度确实会慢慢爬,看了这篇才知道是温漂的锅,我还以为是自己滤波代码写错了
BNO055不建议用于新设计这条太关键了,上个月差点直接在新项目里定它,看来得先去翻翻BNO085的规格书
问一下,BMI088配STM32自己跑融合的话,SPI采样率一般设多少比较合适,500Hz够用吗