室内自主机器人位置检测

问题描述 投票:0回答:3

我制作了一个由Arduino和Processing控制的机器人,它通过自身旋转(像球体一样)在房间里移动。

我需要的是一旦它在地板上移动(假设在 3m x 3m 的房间内)就能够获得新位置。我使用 9DOF 传感器(3 轴加速度计数据、3 轴陀螺仪数据和 3 轴磁数据)来确定其滚动、俯仰和偏航及其方向。

如何准确识别机器人在笛卡尔 (x,y,z) 坐标中相对于其起始位置的位置?我无法使用 GPS,因为每次旋转的移动量小于 20 厘米,而且机器人将在室内使用。

我发现了一些室内测距和 3D 定位解决方案,例如 pozyx 或使用固定摄像头。但是我需要它具有成本效益。

有没有办法转换 9DOF 数据以获得新位置或任何其他传感器来做到这一点?还有其他解决方案,例如算法吗?

arduino artificial-intelligence sensors robotics sensor-fusion
3个回答
6
投票

正如有人在评论中指出的那样,对加速度进行积分得出速度,再次对其进行积分得出位置。然而,这不是很准确,因为错误会很快累积。

人们正在使用的是“传感器融合”,它将多个传感器的数据组合成更好的估计,例如。的位置。然而,如果您仅依赖加速度计和陀螺仪,随着时间的推移,它仍然会累积误差。然而,磁矢量会对您有所帮助,但它可能仍然不准确。

我在网上找到了以下指南,介绍了 arduino 上卡尔曼滤波器的传感器融合。

http://digitalcommons.calpoly.edu/cgi/viewcontent.cgi?article=1114&context=aerosp

警告:您需要了解一些数学知识才能启动并运行它。


2
投票

我的以下答案不包括具体的实现,我的专业知识不包括机器人技术。 (我是机器学习、NLP、AI 领域的研究员。)但是,我相信我的缺乏细节的建议在某种程度上会有用,因为你的问题设置仍然停留在一般水平。

SLAM是研究如何通过感觉运动数据估计连续机器人位置的最著名的领域之一。在该领域,有很多研究通过感觉运动数据来估计机器人的位置。

研究人员研究了针对各种特定情况的 SLAM 方法,例如在光滑的地板和复杂形状的房间或带有噪声传感器的情况下等。我认为您当前的设置比这些研究中的设置不太具体。

所以,如果我是你,我会首先尝试一些标准的 SLAM 方法。我会从 SLAM 的教科书中挑选一些流行且通用的方法,并寻找实现这些方法的开源软件。

据我所知,粒子滤波器(PF)是SLAM领域最流行、最成功的方法之一。 PF是卡尔曼滤波器(KF)的高级方差。 PF 非常容易实现。数学比 KF 简单得多。我认为 PF 在你的情况下值得尝试。


0
投票

需要一种或另一种形式的室内定位系统。它可以是由内而外的,例如光学或已经提到的 SLAM。通常,它们不够可靠。

例如,从外到内,也已经提到过 UWB(Posyx 和十几个其他选项)可能会很好。但 UWB 对于室内机器人来说通常不够精确。

您只剩下基于超声波的系统 - Marvelmind Robotics(美国) - 或一些光学系统,但非常昂贵,例如 OptiTrack。

更多提示:https://marvelmind.com/pics/marvelmind_indoor_positioning_technologies_review.pdf

© www.soinside.com 2019 - 2024. All rights reserved.