问题标签 [imu]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
845 浏览

3d - Madgwick IMU algorithm, how to get 360 degree freedom variables?

I'm implementing different IMU methods in a project of mine and I'm currently experimenting with the well known Madgwick's implementation of Mayhony's AHRS algorithm (MahonyAHRS.c)

So far it works around as good as my self implemented one which is based on Vector rotation and an running average sensor fusion (often called complementary).

However, I would like to get 360 degree of freedom out of it and I currently use this function:

However, that results in the 90 degree issues. What I would like is to receive pitch and roll in a form of 0-359 degrees.

0 投票
1 回答
1353 浏览

matlab - 3-axis IMU gravity compensation

I have acceleration (x,y,z) and roll, pitch, heading data from a 3-axis IMU. I want to compensate the acceleration data based on the angles (r,p,h) measured by the gyro. For example, when the IMU is flat and stationary (z-axis up), the accelerations read [ax,ay,az]=[0,0,-1]. When the IMU is flat and stationary (x-axis up), the accelerations read [ax,ay,az]=[-1,0,0]. And finally when the IMU is flat and stationary (y-axis up), the accelerations read [ax,ay,az]=[0,-1,0].

Since data was collected with the IMU not being perfectly flat and level, I need to remove g-components from my acceleration data.

Below is my first pass at removing the g-components. What is another approach I can use because I can already tell that this is computationally intensive as the size of my data file increase.

0 投票
2 回答
1833 浏览

orientation - IMU方向不断变化

我们有 XSENS MTi IMU-Device 并使用 ROS-Framework (Ubuntu / Fuerte)。我们订阅了 IMU-Data,所有数据看起来都不错,除了方向

在 Euler-Outputmode 中,就像在 Quaternion-Outputmode 中一样,值是不断变化的。不是随机的,它们以或多或少的恒定速率缓慢增加或减少,有时我观察到变化变平然后改变方向。

当第二个 X 的值可能是:

Z值在几秒钟内变化大约10(我认为是10-20秒)。

什么会导致这种行为?我们是否误解了数据或驱动程序有问题?奇怪的是,这也发生在另外 2 个驱动程序和另外一个 IMU 设备(我们有 2 个)上。每种组合的结果相同。

随时要求提供更精确的数据或任何您想知道的可以帮助我们的信息。我们将参加 11 月的 Spacebot-Cup,所以完成 IMU 会让人松一口气。:)

0 投票
1 回答
914 浏览

linux - MPU9250 IMU 加速度计和陀螺仪数据格式

从数据表中可以发现,6 个输出通道中的每一个都MPU9250具有 2 字节和 16 位分辨率。我想知道 16 位二进制值,它们是二进制补码的格式吗?或者当传感器静止时,假设沿 x 轴的加速度为零,那么 2 个字节的组合给出2^16/2,即最大可能数的一半?(假设没有偏移)

0 投票
1 回答
632 浏览

arduino - MPU9250 卡在使用 WOM 的 ESP8266 的复位循环中

我一直在试验 ESP8266 wifi 芯片和 MPU9250 IMU 的睡眠选项。ESP 有一个深度睡眠命令,除了实时时钟之外,它基本上会关闭芯片,直到 RESET 引脚被 ESP 的 GPIO16 或外部中断拉低。

MPU9250以其WOM(运动唤醒)功能的形式提供此中断,该功能使芯片达到最低限度的功能,直到它检测到内置加速度计上的运动,此时其INT引脚被拉高(我附上了这个引脚连接到 ESP 的 RESET 引脚和 GND 之间的 NMOS 晶体管的栅极,以反转中断)。

但是,当我设置并使用以下代码时,设置会进入重置循环;两个打印语句都执行,但我不确定 ESP 是否真的有时间执行 DeepSleep 命令,因为它会在“到达这里”打印后立即重置并且不等待动作。

但是,如果我在程序运行时从 NMOS 断开并重新连接 INT 连接,它会暂时工作并休眠,直到它检测到运动,此时复位循环再次开始(即使 MPU9250 在移动后完全保持静止)。这意味着 WOM 功能正在工作,但是某些原因导致 INT 引脚在不应该的情况下 ping 为高电平,我无法弄清楚问题出在哪里。有谁知道是什么问题?我可以单独用代码修复它吗?

主要代码(loop() 为空):

在一个单独的文件中:

0 投票
0 回答
558 浏览

quaternions - 如何使用 DMP MotionApps v4.1 纠正 MPU9250 IMU 中的漂移

我正在尝试使用 Qt 提供 3D 设备的视觉方向。为此,我为 MPU9250 集成了 DMP MotionApps v4.1,并从 MPU 的 FIFO 寄存器中获取了四元数值。这工作得很好。但是当设备在一段时间内保持稳定时(比如 20 分钟后),四元数值(主要是 Qz,有时是 Qx)开始变慢,并且我的视觉方向发生了变化。有没有办法在使用 DMP 时纠正这种漂移?有什么建议请..

0 投票
0 回答
263 浏览

kalman-filter - 找IMU仿真软件

如果我将其发布在错误的位置,请告诉我(我会将问题移到那里)。

我正在寻找一个可以生成 6 或 9 个自由度IMU数据及其实际路径的程序。

我正在实施Kalman过滤器并需要数据。要求是有相机C和物体XX并且C两者都IMU附在上面,并且都可以自由移动。相机具有提取3D位置的功能X

我需要一个可以模拟这种情况的模拟器。

谢谢你。

0 投票
0 回答
991 浏览

arduino - Madgwick 算法和 MPU9250 传感器的漂移?

对于我的项目,我需要一种方法来确定火箭的正确方向。

我从这里获取了 Madgwick 过滤器的代码

为了收集数据,我使用了 Arduino Nano + MPU9250 传感器。此设置每 12 毫秒通过串行向我的 PC 发送数据包。

我通过计算偏差来校准磁力计,以“对齐”轴原点和球心,这是由一组测量结果创建的。

然后我用搅拌机绘制坐标轴: 3D 轴 并为它编写了一些脚本。它只是从串行读取值,将它们输入过滤器,然后使用四元数旋转模式旋转我的轴对象。

我有点搞砸了 X 轴的方向,所以当我顺时针旋转我的板时,屏幕上的轴逆时针旋转。我翻转了所有 X 组件的迹象,它变得很好。

根据这张图片MPU 的轴我翻转了 X 和 Y 轴以及 Z 轴的符号,以将磁力计的轴与陀螺仪 + 加速度计对齐

它几乎可以用一个小例外 - 当“稳定”之后我倾斜,即 X 轴向下(或 Y 轴,没关系),这个轴开始向全局 XY 平面漂移。如果我向上倾斜轴,其余轴开始围绕全局 OZ 轴漂移,就像这样 X 轴向下 X 轴向上

漂移的速度取决于 Madgwick 滤波器的 Beta - Beta 越大漂移越多。

那里可以做什么?

0 投票
1 回答
183 浏览

imu - 如何使用 zedmini 相机同时获取 60 fps 的图像和 500hz 的 imu 数据?

我们知道IMU采样率远高于从传感器获取的图像(FPS),那么我可以同时获取图像60FPS和 IMU 数据500hz吗?

有没有简单的方法?或者也许我需要使用两个线程来实现我的目标?

0 投票
1 回答
1258 浏览

android - 如何使用设备的加速度计检测运动增加然后突然停止?

我正在尝试检测将两部手机相互碰撞时会产生的动作。

我的问题是,加速度计是合适的传感器吗?

如果是这样,我将如何实施它?

否则,我应该使用什么传感器以及我应该以什么方式使用它?

根据https://developer.android.com/guide/topics/sensors/sensors_overview上的指南,TYPE_LINEAR_ACCELERATION似乎是正确的使用方法,但我不知道如何使用它。