问题标签 [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 投票
1 回答
2888 浏览

c - GPS +加速度计的C语言中的任何卡尔曼滤波器实现?

我正在尝试使用卡尔曼滤波器纠正 GPS 读数。我已经有一个带有加速度计、陀螺仪和磁力计的 IMU。

我试过查找卡尔曼滤波器,但这都是数学,我什么都不懂。任何示例代码都会很棒!

编辑:在我的项目中,我试图从一个 LAT、LONG GPS 坐标移动到另一个。我希望获得流畅的 GPS 读数,而不是在没有移动的情况下显示位移。我正在考虑使用加速度计来检查位移并消除 GPS 读数异常值。但是,根据我的阅读,卡尔曼滤波器用于此类应用。但是我发现的每个例子都是用某种高级语言编写的。如果 CI 中有一些东西可以建立,那就太好了。谢谢!

0 投票
1 回答
416 浏览

python - 获得正确的 IMU 值

我正在使用 Python 2.7 通过 USB 从 AHRS / IMU 传感器读取数据。要获得制造商根据下图指定的加速度:

供应商描述 IMU

我在 python 中的代码是这样的,但是当加速度为负时,值是错误的。我相信我需要检查 MSB 的第一位(在这种情况下是 AxH 字段),如果 1 是负数,如果 0 是正数。

有人有什么建议吗?

完整的 IMU 传感器手册如下: http ://wiki.wit-motion.com/english/lib/exe/fetch.php?media=module:wt901:docs:jy901usermanualv4.pdf

0 投票
0 回答
382 浏览

python - 在没有 GPS 的情况下绘制我的无人机的 3d 轨迹/路径

我有一个 pixhawk 飞行控制器。飞行后,我收集数据闪存日志将其提供给 python 脚本,该脚本为我提供如下数据

IMU 传感器数据

现在我只想在 3d 空间中绘制我的无人机在飞行过程中的大致轨迹/路径。它可以是 python、matlab 或任何东西。方法/步骤是什么。一个看起来像我想要实现的简单示例是youtube 链接

0 投票
0 回答
994 浏览

computer-vision - kitti 姿势数据集姿势的格式以及如何使用 imu 重新创建

我目前正在尝试为一个项目制作一个单目视觉里程计系统。自动遥控车。我阅读了这些博客- https://avisingh599.github.io/vision/visual-odometry-full/ https://avisingh599.github.io/vision/monocular-vo/ 并下载了这个github代码 - https://github .com/snmnmin12/VisualOdometry 我修改了代码以使用网络摄像头。
我想将上述网站描述的概念用于我的应用程序,并使用来自罗技网络摄像头的图像。所以我下载了 kitti 数据集 gray 和poses 数据集。但我不明白姿势数据的含义或性质。所以我用谷歌搜索并找到了这些结果 - https://github.com/MichaelGrupp/evo/wiki/Formats https://github.com/alexkreimer/odometry/blob/master/devkit/readme.txt 这些信息帮助我理解了代码中使用的文本文件的格式。但我仍然不明白它包含什么以及如何使用 imu 或车轮编码器等传感器制作我自己的数据集。或者如何生成姿势信息,以便我可以将其用于我自己的目的。

数据集 - http://www.cvlibs.net/download.php?file=data_odometry_gray.zip 我不理解并想要重新创建 的数据 - http://www.cvlibs.net/download.php?file=data_odometry_poses.zip

0 投票
1 回答
432 浏览

arduino - ESP32 的无线访问中断了 MPU9250 的读取

我正在编写一个程序,它使用 MPU9250 的内部 FIFO 读取 MPU9250 的加速度计和陀螺仪数据并提供 Web 界面。

没有网络访问,一切都很好。

但是,在 Web 请求的确切时间上,在该时间读取的字节数会发生变化。

我当前的代码只是简单地显示模板网页并仅在其幅度大于 2.5 时打印 IMU 加速度计值。所以,如果我不触摸 MPU9250 传感器,它的值应该在 0.9~1.1 之间。但是,尽管完全没有触摸 MPU9250 传感器,但在刷新网页时(目前在 0.5 秒内自动刷新),它会打印一些大于 2.5 的错误值。

我正在使用 LOLIN D32 PRO 板。和 MPU9250 连接其默认的 VSPI 总线。

我在arduino的循环功能上读取了MPU 9250的FIFO数据,如下所示,

spiread_fifo 定义如下

如果我没有在 MPU9250 上触摸或施加任何力,串行控制台应该是静音的,如果没有 ESP32 的 webserber 访问,它实际上会静音。然而,它在网页访问的时间上给出了一些随机值,如下所示。(单个网页访问单个值)

这是完全不正常的值。

我的猜测是,

  1. 强 RF 信号会影响 SPI 总线,因此信号会发生变化。
  2. wifi TX 例程在 MPU9250 FIFO 读取过程中被调用,它会在 FIFO 读取过程中导致数据丢失。

不管是什么原因,我不知道如何解决这个问题。

任何可能的原因/解决方案将不胜感激。

以下是我目前的接线。然而,没有什么特别的。MPU9250 连接到默认的 VSPI 端口,INT 引脚连接到 GPIO34。其他剩余连接不使用。

图片1

图 2

下面的完整源代码供您参考。

主要代码:

MPU9250 代码:

OTA固件代码:

网络服务器代码:

0 投票
2 回答
678 浏览

c++ - 从 IMU 的加速度计和陀螺仪进行姿态估计?

我很难理解我在下面包含的方程的数学推导。这段代码是 SparkFun IMU 库中示例的一部分,可在此处找到。有人可以帮我理解使用 arctan 函数来估计滚动、俯仰和偏航的理论吗?以及如何使用磁力计数据来获得正确的偏航估计?我在网上找到的所有资源都没有以我能理解的方式回答这些问题。

0 投票
2 回答
95 浏览

gps - 在传感器融合的情况下使用哪个过滤器?

我正在尝试融合 GPS 和加速度计数据以使用运动方程估计位置和速度

x = x' + vdt + 0.5dt^2。

到目前为止,从我读过的内容来看,卡尔曼滤波器似乎是流行的选项 - ( 1 , 2 , 3 )。

然而,当系统是线性时,似乎使用了卡尔曼滤波器。

运动方程不是非线性的吗,因为它是

^2?

他们不应该使用EKF/UKF吗?如果不是,你能解释一下为什么吗?我很困惑。谢谢!

0 投票
1 回答
560 浏览

c# - Parsing LSM6DSL raw values

I'm trying to parse the values given from a device with a LSM6DSL chip (gyroscopic and acc.) and I'm having a hard time parsing the data properly for positioning and angle.

From the vendor I've received the information that the unit is running on a resolution of 2000 for the gyro, 8g for the acc.

I receive the data in bytes that are converted by the following to shorts;

(Edit; Cleaned up version)

This returns values in the range of (example) 961, -16223, -1635, 664, -269, -597.

According to the spec sheet I'm supposed to multiply each vector with it's corresponding value.. * 70f for gyro, .448f for acc.

From the documentation I understand that for the G forces these are in milliG's and gyro in millidegrees per sec?

Update(..) is Madgwick's quaternion formul, although for velocity I use the acceleration vectors.

G force values that I'm getting at this moment after calculation;

These look awfully low, and if applied as velocity it just runs off in a given direction, I know I'm missing a gravity correct although not entirely sure how to apply this.

I'm under the assumption that I do not need to apply drag to my velocity vector since values should be negated by the acceleration values received?

Anyone with experience with this type of chip and actually applying the values to yaw/pitch/roll (or quaternion) and applying the G forces as linear acceleration.

0 投票
1 回答
1000 浏览

unity3d - 如何在Unity中获得2个四元数的相对旋转

我试图分别使用两个 IMU 获得上臂和下臂之间的角度。我校准了 imu 并使用四元数来获得 Unity 3D 中上臂和下臂对象的全局方向。

Qimu1 = 来自下臂 imu 的四元数

Qimu2 = 来自位于上臂的 imu 的四元数。

我在 Unity 中制作了两个对象,分别代表上臂和下臂。其中lowerarm 是upperarm 的子对象,使用Character 关节连接到upperarm。

这是上臂的脚本:

下臂脚本:

我想获得的是 Unity3D 中使用 2 个 IMU 的手臂运动的视觉表示。现在,如果我保持肘部伸展,脚本就可以工作。但是,一旦我开始弯曲肘部,下臂物体就开始围绕同一轴连续旋转。

0 投票
1 回答
419 浏览

arduino - IMU 设备 - 如何在设备垂直时通过计算欧拉角获得水平旋转角

我阅读了一些有关旋转方法的信息,例如欧拉角和四元数,通常 imu 设备 z axix 指向上方,并且围绕该轴的旋转角度是偏航,即我需要设备方向数据,但不是我必须将设备放入口袋,然后z轴(如下图)将指向前方,所以我怎样才能获得设备旋转时相对于北水平角的设备绝对方向? 协调