arduino - 使用 10-DOF IMU 在 3d 空间中跟踪位置

标签 arduino accelerometer sensors gyroscope

我需要在 3d 空间中跟踪枪的位置和方向。我购买了一个 10 自由度 IMU 传感器 (GY-87) 来正确学习如何实现我的问题的解决方案。由于缺乏电子和传感器领域的知识,我无法找到适当的指导。
我找到了一些很好的例子,但无法在 arduino 中实现它。

3d Tracking with IMU

Gait-Tracking-With-x-IMU

我目前能够从传感器检测偏航、俯仰和滚转,从中我可以检测到我的枪的正确方向。但我找不到计算位置(x,y,z)的方法。

如果有人能在这方面帮助我,我将不胜感激。

谢谢

P.S:我找不到 GY-87 的很多资源,可能它已被弃用。但是由于我所在国家的资源不可用,我不得不使用这个传感器。我是一名计算机科学专业的学生,​​并且是电子学的新手,所以如果我没有使用任何适当的术语,请纠正我。

最佳答案

加速度计永远不会给你一个位置,它会给你……加速度。
但是加速度与速度有关,而速度与位置有关。
如果您查看单位,就会看到这种关系。加速度以米每秒的平方 (m/s²) 表示,而速度以米每秒 (m/s) 表示,位置以米 (m) 表示。
因此,如果
t 是自上次计算位置以来耗时(例如在循环中),
a 你从传感器读取的加速度,
s 旧速度,s' 新速度,
p 旧位置和 p' 新位置,

s’ = s + a * t
p’ = p + s’ * t

您需要在 3 个轴 (x, y, z) 上进行相同的计算。
假设您知道起始位置且起始速度为零,则可以实时跟踪对象。

关于arduino - 使用 10-DOF IMU 在 3d 空间中跟踪位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26414411/

相关文章:

Android - 加速下降(粉碎)

c++ - 如何从嵌套的PROGMEM数组中读取uint32_t值?

c - 写入分配的二维数组

android - Android 加速度计的最小和最大范围是多少?

javascript - 如何在网络浏览器中检测设备是否具有陀螺仪?

android - 如何结合 OpenGL 使用 onSensorChanged 传感器数据

Android 传感器监听器未注销或传感器仍检索值

c - 在 Arduino 中使用带有 LED 的循环的二进制计数器

c++ - 如何将多个 char* 数组放入一个二维数组中?

android - 如何在摇动设备时刷新应用程序?