简体   繁体   English

室内跟踪(IMU + 标签)

[英]Indoor tracking (IMU + tags)

this is another question about indoor tracking using inertial (smartphone + aceel + gyro) Firstly, I would like to say that I have read almost every post on stackoverflow talking about this subject.这是关于使用惯性进行室内跟踪的另一个问题(智能手机 + aceel + 陀螺仪) 首先,我想说我已经阅读了几乎所有关于这个主题的 stackoverflow 帖子。 And I know that to track a position We will have to integrate TWICE the accel and that is very useless in a real life application because of all the drift errors...而且我知道要跟踪位置我们必须将加速度集成两次,这在现实生活中的应用程序中非常无用,因为所有的漂移误差......

But it turned out that I don't need to build a plane or whatever And i don't need to develop an application that have to WORK to be sold or something.但事实证明,我不需要建造飞机或其他任何东西,而且我不需要开发必须工作才能出售的应用程序或其他东西。 I just want to realize a simple Android App that use "theoretical" concept of an Indoor tracking-我只想实现一个简单的 Android 应用程序,它使用室内跟踪的“理论”概念-

  • What's the possibilities?有哪些可能性?
  • What do we need?我们需要什么?

Basically my phone is resting on a desk screen facing UP at a known position (0,0) if a push my phone to 2 or 3 meters and then I rotate it and push it again for 2 or 3 meters I the to see after how many meters it becomes to inaccurate an so use a tag tu recalibrate the measurements <--- That's my main question基本上,如果将我的手机推到 2 或 3 米,然后我旋转它并再次将其推 2 或 3 米,我的手机就会在已知位置 (0,0) 处朝上放置在桌面屏幕上,我将看到之后如何许多仪表变得不准确,因此使用标签重新校准测量值<---这是我的主要问题

what do I need ?我需要什么 ? - the angle ? - 角度? (ok integrating the the gyro) (i don't wanna use the compass) - the accel? (确定集成陀螺仪)(我不想使用指南针)-加速度? (i have) - the velocity ? (我有) - 速度? (integrating the accel) - and the position (double accel integration) (积分加速度) - 和位置(双加速度积分)

The thing that I would like to know is How can I put this number together?我想知道的是如何将这个数字放在一起? Is it the right way to do it?这是正确的方法吗? Is there another solution (to resolve my problem, not to track someone really accurately)?是否有另一种解决方案(解决我的问题,而不是真正准确地跟踪某人)?

I also looked at the theory of the DCM (If I understood correctly, it will give me the orientation of the phone in 6 axes right? But what's the difference about getting the angle from the Accel or the gyro (pitch, roll etc..) ?我还查看了 DCM 的理论(如果我理解正确,它会给我电话在 6 轴上的方向对吗?但是从 Accel 或陀螺仪(俯仰、滚动等)获取角度有什么区别。 ) ?

Thank you谢谢

Your smartphone probably has a 3-axis gyro, a 3-axis magnetometer and a 3-axis accelerometer.您的智能手机可能有一个 3 轴陀螺仪、一个 3 轴磁力计和一个 3 轴加速度计。 This is enough for a good estimation of attitude.这足以很好地估计态度。 Each has its advantages and disadvantages:每个都有其优点和缺点:

The accelerometers can measure the gravity force, it gives you the attitude of your phone, but in a horizontal position, you can't know where it's pointing.加速度计可以测量重力,它可以为您提供手机的姿态,但在水平位置时,您无法知道它指向哪里。 And it's very sensitive to inertial noise.它对惯性噪声非常敏感。

The gyroscopes are fastest and the most accurate, but its problem is the drift.陀螺仪速度最快,最准确,但它的问题是漂移。

The magnetometers don't have drift and they aren't sensitive to inertial forces, but are too slow.磁力计没有漂移,它们对惯性力不敏感,但速度太慢。

The combination of the three give you all advantages and no disadvantages.三者的结合给你所有的优点,没有缺点。 You must read the gyro measure faster as you can (this minimizes the drift) and then use the slow and not as accurate measure of magnetometer and accelerometer to correct them.您必须尽可能快地读取陀螺仪测量值(这可以最大限度地减少漂移),然后使用缓慢而不准确的磁力计和加速度计测量值来纠正它们。

I leave you some links that may interest you:我给你留下了一些你可能感兴趣的链接:

I hope I've been helpful and sorry for my bad English.我希望我对我的英语不好有帮助和抱歉。

With the sensors you have, not considering computational power at this point yet, I know of only one method of position / displacement estimation.对于您拥有的传感器,目前还没有考虑计算能力,我只知道一种位置/位移估计方法。 This would either involve just optical flow with the onboard camera, or the above with addidional info from fused data from accels / gyros (eg. with a Kalman-Filter) to improve accuracy.这要么只涉及机载相机的光流,要么涉及来自加速器/陀螺仪(例如,使用卡尔曼滤波器)的融合数据的附加信息,以提高准确性。 I guess OpenCV has all you need (including support for Android), so I'd start there.我想OpenCV有你需要的一切(包括对 Android 的支持),所以我会从那里开始。

Start by implementing an attitude-estimator with just accels and gyros.首先实现一个只有加速度和陀螺仪的姿态估计器。 This will drift in yaw-axis (ie. the axis perpendicular to the ground, or rather parallel to gravity vector).这将在偏航轴(即垂直于地面的轴,或平行于重力矢量)漂移。 This can be done with a Kalman-Filter or other algorithms.这可以通过卡尔曼滤波器或其他算法来完成。 This won't be any good for position estimation, as the estimated position will drift tenths of meters away in just a couple of seconds.这对位置估计没有任何好处,因为估计位置将在几秒钟内漂移十分之一米。

Then try implementing optical flow with your camera, which is computationally expensive.然后尝试用你的相机实现光流,这在计算上很昂贵。 Actually this alone could be a solution, but with less accuracy than with additional data from an IMU.实际上,仅此一项就可能是一种解决方案,但其准确性不如来自 IMU 的附加数据。

Good luck.祝你好运。

EDIT : I recently found this - it may be helpful to you.编辑:我最近发现了这个- 它可能对你有帮助。 If there is not a lot of noise (due to vibration), this would work (I'm on a quadrotor UAV and it unfortunately doesn't work for me).如果没有很多噪音(由于振动),这会起作用(我使用的是四旋翼无人机,不幸的是它对我不起作用)。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM