- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我是一名计算机科学专业的学生,正在从事一个电子项目,需要计算偏航、俯仰、滚动和 X、Y、Z 位移。我想在枪中安装 IMU 并跟踪其方向和位移。我能够获得偏航、俯仰和横滚,但不幸的是无法理解如何计算枪的位移或位置。我使用的是包含 MPU-6050 的 10 自由度 GY-87 传感器。
我得到的值以 g 和 m/s2 格式表示。根据我已经研究过的研究,我需要获得加速度/时间2,然后添加所有值。但不明白我应该使用什么时差。引用:How to calculate distance based on phone acceleration
#include "I2Cdev.h"
#include "MPU6050.h"
// Arduino Wire library is required if I2Cdev I2CDEV_ARDUINO_WIRE implementation
// is used in I2Cdev.h
#if I2CDEV_IMPLEMENTATION == I2CDEV_ARDUINO_WIRE
#include "Wire.h"
#endif
// class default I2C address is 0x68
// specific I2C addresses may be passed as a parameter here
// AD0 low = 0x68 (default for InvenSense evaluation board)
// AD0 high = 0x69
MPU6050 accelgyro;
//MPU6050 accelgyro(0x69); // <-- use for AD0 high
int16_t ax, ay, az;
float dx, dy, dz = 0;
int16_t gx, gy, gz;
#define LED_PIN 13
bool blinkState = false;
void setup() {
// join I2C bus (I2Cdev library doesn't do this automatically)
#if I2CDEV_IMPLEMENTATION == I2CDEV_ARDUINO_WIRE
Wire.begin();
#elif I2CDEV_IMPLEMENTATION == I2CDEV_BUILTIN_FASTWIRE
Fastwire::setup(400, true);
#endif
Serial.begin(38400);
Serial.println("Initializing I2C devices...");
accelgyro.initialize();
Serial.println("Testing device connections...");
Serial.println(accelgyro.testConnection() ? "MPU6050 connection successful" : "MPU6050 connection failed");
Serial.println("Updating internal sensor offsets...");
accelgyro.setXGyroOffset(85);
accelgyro.setYGyroOffset(1);
accelgyro.setZGyroOffset(-4);
accelgyro.setXAccelOffset(-4269);
accelgyro.setYAccelOffset(-4836);
accelgyro.setZAccelOffset(1080);
pinMode(LED_PIN, OUTPUT);
}
void loop() {
accelgyro.getMotion6(&ax, &ay, &az, &gx, &gy, &gz);
dx=dx+(float)(((float)ax/(float)16384)*9.8*0.05*0.05);
dy=dy+(float)(((float)ay/(float)16384)*9.8*0.05*0.05);
dz=dz+(float)(((float)az/(float)16384)*9.8*0.05*0.05);
Serial.print(dx); Serial.print("\t");
Serial.print(dy); Serial.print("\t");
Serial.print(dz); Serial.print("\t\n");
delay(1000);
// blink LED to indicate activity
blinkState = !blinkState;
digitalWrite(LED_PIN, blinkState);
}
我想跟踪以下 YouTube 视频中所示的对象。
http://www.youtube.com/watch?v=ZYyyaJgKsDg
如果你们中有人能在这方面指导我,我将不胜感激。谢谢
P.S:抱歉我的英语不好并且使用了非技术术语。
最佳答案
恐怕这个答案不是您想听到的。从 IMU 单元计算位置非常非常困难。这个video from Google是一个很好的引用来说明原因(请参阅第 24 分钟了解详细解释)。基本上,您需要对加速度进行两次积分才能到达位置。您还需要从 IMU 看到的加速度中消除重力。如果做得不完美,错误就会很快累积起来。
您引用的视频使用球在 table 上滚动的信息来告知他们的模型。他们可以跟踪传感器的方向来了解球的滚动方向。他们利用球的半径以及板的角度变化来跟踪球的 x 和 y 方向。如果你把他们的球从 table 上拿下来,那就根本不起作用。
如果您需要跟踪某物,您应该寻找一些可以为您提供有关物体位置信息的传感器(GPS、视频分析)。然后,您可以使用卡尔曼滤波器将其与 IMU 数据相结合,以获得良好的位置精度。
祝您的项目顺利。
关于position - 使用加速度计和陀螺仪计算位移 (MPU6050),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26476467/
如果此答案为 Kotlin,我想转换代码:https://stackoverflow.com/a/5402769/2735398 我将其粘贴到 Intellij 中: private int deco
对于这种转变: System.out.println(0b10000000_00000000_00000000_00000001>>>32); 我得到这个输出值: -2147483647 对吗? 最佳
如果没有大量工作,我想要的可能是不可能的,但也许有人有解决方案。我有一个像下面这样的图(这当然是一个过于简单的例子),其中我的刻度标签彼此非常接近: dd <- data.frame(x=1:4, y
试过这个代码on Go playground : package main import ( "fmt" ) func main() { log2Dim := uint32(9)
我希望在用户滚动时获取 UIScrollView 的位移,每次滚动时只需要位移。使用这个方法 -(void)scrollViewWillEndDragging:(UIScrollView *)scro
我正在检查我在装有 iOs 5.1 的 Ipad 中的应用程序当我点击 textarea 时,光标会跳到书写线上方两行。虽然焦点位于正确的位置,但光标的视觉外观出现在焦点线上方两行。对此有任何建议。
你如何获得像 -10 这样的数字?从这些移位练习题中? 据我了解X*32可以写成 x> 1 = 0001 0111 >> 1 = 000 1011 = 11 //right bit-shift by
我正在查看适用于 Linux 的开源 AMD GPU 驱动程序。我注意到一些我以前没有见过的东西,我想知道目的。在sid.h文件的第1441行,有一系列的定义是整数被左移0位。这不就是对原始整数进行操
这个网站 localhotchat.com 有文字从红色栏流出。我试过调整它,但它似乎并没有消失。 主页(和内部)上的 14pt 文本片段应该在 red_colored_strip 内,但它不是,并且
问题#1 在 Java 中,移位是否比使用单个语句将 移位相同数的代价高出数倍? 例如,是 int x = 5; x = x << 16; 比快 int x = 5; for (int i=0; i<
我有三个 Div,周围的 Div 是“MainDiv”,里面的 Top Div 是“UpperDiv”下一个是“FooterDiv”。 在 Mozilla 中一切正常,但在 Chrome 中“Foot
所以,我正在阅读一本关于 Go 的书(Ivo Balbaert 的 The Way to Go),其中有一个代码示例: const hardEight = (1 > 97 因为我没有在这台机器上安装
Android 平台提供了两类动画。 一类是Tween动画,就是对场景里的对象不断的进行图像变化来产生动画效果(旋转、平移、放缩和渐变)。 下面就讲一下Tweene Animations。 主要类:
我有 UINavigationItem,我想向它添加 UISearchBar。我是这样做的: let searchBar = UISearchBar(frame: CGRectMake(0, 0, s
本文实例讲述了Android动画之渐变动画(Tween Animation)。分享给大家供大家参考,具体如下: Android 平台提供了两类动画。 一类是Tween动画,就是对场景里的对象不断的
我在 C# 中使用 openCV 库中的 Lucas Kanade 光流算法;有一系列帧,我想在每两个帧中找出什么是光流并将其显示在图片框中。 我可以从以下函数中获取 velX 和 velY: Emg
我是一名优秀的程序员,十分优秀!