问题标签 [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 回答
187 浏览

quaternions - 计算每个 Tait-Bryan 角的 2 个惯性测量单元 (IMU) 之间的旋转

第一个 IMU(称为 S1)放置在肩部并用作参考;另一个(S2)放在手臂上。它们提供了相对于绝对参考(磁北和重力矢量)的旋转四元数。简单的想法是我需要显示这两者之间的偏航、俯仰和滚动差异(例如,理想的外展/内收运动应该只有俯仰贡献)。我开始使用四元数,通过计算两者之间的旋转 (conj(q1) * q2),然后使用以下方法将其转换为 YPR 角度:

但这在我的情况下不起作用,因为俯仰和滚动在不同的手臂位置上不一致。例如,如果相对偏航角为 90 度,则俯仰角和滚动角互换。例如,如果我对 S2 应用俯仰旋转,它似乎是滚动旋转(因为旋转在参考传感器 S1 的 y 轴上)。我怎样才能避免这种情况?我是否应该简单地将两个四元数转换为 YPR 角度,然后计算每对的差异(不使用四元数之间的差异)?也许“旋转”方法不正确,因为我不需要逆变换,而只需要每个轴的实际旋转?

0 投票
0 回答
57 浏览

rotation - Smartphone Heading Calculation from a Rotation matrix

To develope an indoor positioning application, I need to calculate heading out of a Rotation matrix (Rzxy), calculated from IMU sensors. However, there is a problem of mirroring at the end of the trajectory(shown at the image), when heading reached to 180degree limit. Is it the singurality problem or could be solved by in the arctan2 manipulation? any solution is welcomed. my current code and result:

the PDR based calculated trajectory

sign of arctan2 inputs

0 投票
0 回答
43 浏览

matlab - 如何绘制相对于房间的路径,其方向和加速度相对于传感器参考系统?

我领导了一个人类行人推算室内的实验。出于这个原因,我选择使用 6DOF IMU。相对于传感器参考系统的相对 3 轴加速度和来自陀螺仪的 3 轴角速度。你能给我一些关于如何获得相对于房间的位置以绘制位移的提示吗?我想以这种方式进行: - 使用常数加加速度公式计算切向运动速度的切向速度 - 计算切向位移 - 计算角位移:|AngularVelocity|* deltaT(一种积分)。-从角位移计算旋转矩阵 -计算当前位置加上当前位移获得的前一个位置,预乘旋转​​矩阵和切向位移。你怎么看待这件事?

0 投票
1 回答
357 浏览

python - PySerial 读取问题

我正在尝试从 Arduino 串行监视器读取数据,但我遇到了 pyserial 的 readline 函数的问题。这是打印到监视器的简单代码:

这是我用来读取打印输出的 Python 代码:

这是错误:

我不知道可能出了什么问题。有没有人有什么建议?感谢您的时间!

0 投票
0 回答
31 浏览

quaternions - 如何找到两个 IMU 测量值之间的转换?

我正在查看俱乐部数据集https://clubs.github.io/以对点云的多路注册进行一些研究。我最初尝试按顺序使用 ICP 注册方法,一次添加一个点云。

数据集具有对象各种姿势的 RGB 参数。

列是

文件名,跨 3 个轴的平移,用于旋转的四元数。

我将图像转换为点云,当我尝试对齐点云时,我需要对转换有一个很好的估计。给定两个点的测量值,我将如何找出这些点之间的转换。我会用它作为我对 ICP 注册算法的初步估计。

0 投票
0 回答
319 浏览

bluetooth-lowenergy - 使用 nRF52840 进行低功耗蓝牙数据传输

我正在尝试通过蓝牙低功耗 (BLE) 连接将运动数据(加速度计、陀螺仪……)从 IMU 传递到我的计算机。我购买了 FXOS8700 + FXAS21002 来生成运动数据,并使用有线 I2C 连接将该数据传递到我的 BLE 板 nRF52840。I2C 连接有效,我可以通过有线连接从 nRF52840 获取数据。我还设法在我的 BLE 板和我的计算机之间建立了蓝牙连接,并且可以查看 BLE 特性,但我不知道如何对 nRF52840 进行编程以将我的运动数据写入这些特性以通过蓝牙传递它们。

下面是我用来建立 I2C 连接和创建 BLE 连接的代码。缺少的是创建 BLE 特性的代码。

如何将数据写入 BLE 特征并通过蓝牙发送该数据?我是否需要创建新的 BLE 特性或服务?我觉得我在这里遗漏了一些基本的东西......

附加信息:我正在使用 MATLAB 中的 ble() 函数连接到 nRF52840 并读取 BLE 特征数据。我最初试图通过蓝牙传递每一个测量值(可能需要一个更复杂的带有数据缓冲区的程序),但此时我很高兴能够读取最新的测量值。

由于我使用的 BLE 板非常受欢迎,我希望能找到许多通过蓝牙传输数据的示例,但我没有找到任何使用 BLE 发送数据的示例。有许多使用 BLE-UART 连接(MATLAB 不可见)或向 BLE 板发送数据示例,但没有BLE 板发送数据,除非通过这种 UART 方法(但我找不到访问该方法的方法数据)。

0 投票
0 回答
86 浏览

python - newe Raspberry 中的 Adafruit BNO0555 方向传感器出错

我有一个 Adafruit BNO055 方向传感器,它在我的 Raspi Pi 3 B+ 上运行良好。我现在升级到 Pi 4,并安装了我拥有的所有库,其中一个是 B+3。

现在我的系统设置的唯一区别是,我之前有 Python 3.5,现在在 Pi 4 上是 Python 3.7

当我像这样在我的 Py-File 中初始化我的传感器时

from Adafruit_BNO055 import BNO055

bno = BNO055.BNO055(serial_port='/dev/serial0', rst=18)

我将收到以下错误:

Traceback(最近一次调用最后一次):文件“PID.py”,第 166 行,in bno = BNO055.BNO055(serial_port='/dev/serial0', rst=18) # Sensor Initialization (serial) File "/home/pi /.local/lib/python3.7/site-packages/Adafruit_BNO055/BNO055.py”,第 226 行,在 init self._gpio.setup(self._rst, GPIO.OUT) 文件“/home/pi/.local/ lib/python3.7/site-packages/Adafruit_GPIO/GPIO.py",第 278 行,在 setup pull_up_down=self._pud_mapping[pull_up_down]) 类型错误:参数 1 必须是 str,而不是 int

有谁知道这可能来自哪里?我查了一下,BNO055 包与我之前在 Pi 3 B+ 上的版本相同。

会不会是我现在用的是Py3.7而不是Py3.5造成的这个问题?

最佳克劳斯

0 投票
1 回答
515 浏览

arduino - Arduino IMU 尝试:错误、滞后、漂移

我正在尝试使用带有屏幕的 Arduino Nano 33 BLE 来为飞机姿态指示器和方向陀螺仪创建一些东西。为此,我需要有精确的欧拉角。我发现 Nano 带有 9DOF 传感器,我尝试使用 Madgwick 库将传感器数据转换为有用的角度。

然而,看起来沿着偏航轴漂移正在发生,并且当沿着俯仰和偏航轴移动板时,过滤器需要很长时间才能赶上,有时甚至几秒钟才能得到结果。

另一种解决方案是尝试使用声称直接提供欧拉角的 Adafruit BNO055。但是,我认为更优雅的解决方案是调整我的代码,使其与 Nano 上已经提供的传感器一起工作。

想法?谢谢

0 投票
1 回答
2785 浏览

python - 从 Python 上的 IMU 传感器获取 3D 位置坐标

我计划从包含加速度计和陀螺仪的 IMU(惯性传感器)获取 3D 笛卡尔坐标中的位置。我正在使用它来跟踪 3D 中的对象位置和轨迹。

1-根据我有限的知识,我假设仅加速​​度计就足够了,导致xyz轴A(Ax,Ay,Az)的加速度,需要积分两次才能获得速度和位置,但积分会增加一个未知的常数值,这种称为漂移的误差会随着时间的推移而增加。如何消除此错误?

2-此外,为什么首先需要陀螺仪,我们不能仅将 xyz 轴加速度转换为位移,如果加速度计告诉运动轴,那么为什么要从陀螺仪检查方向。抱歉,这是一个非常基本的问题,我在任何地方都检查过 Gyro+Accel 都被使用但不知道为什么。

3-即使在静止且没有任何运动时,地球的重力也会作用在传感器上,其值总是比传感器运动所产生的值更大。你如何消除重力?

完成此操作后,将对它们应用卡尔曼滤波器以融合它们并平滑值。对于不能选择 GPS 的环境,这种方法对物体的轨迹估计有多准确。我从arduino获取加速度计和陀螺仪值,然后导入到Python中,它将被绘制在实时更新的 3D 图形上。任何帮助将不胜感激,尤其是类似代码的链接。

0 投票
1 回答
42 浏览

scale - 使用 IMU 数据和/或距离计解决 Visual Odometry 中的绝对比例问题

视觉里程计给我 x,y,z 位置,除非是绝对比例。我也可以有 IMU 数据(例如获取滚动、偏航信息)。我也可以有一个测距仪(以获得与当前物体的不同距离)

有没有一种简单的方法可以结合这些信息并获得相关的量表?

谢谢!