【发布时间】:2015-08-19 21:14:07
【问题描述】:
我制作了一个由 Arduino 和 Processing 控制的机器人,它通过自身旋转(像一个球体)在房间内移动。
我需要的是,一旦它在地板上移动(假设在 3m x 3m 的房间内),就能够获得新的位置。我正在使用一个 9DOF 传感器(3 轴加速度计数据、3 轴陀螺仪和 3 轴磁数据)来确定它的滚动、俯仰和偏航以及它的方向。
如何在笛卡尔 (x,y,z) 坐标中准确识别机器人相对于其起始位置的位置?我不能使用 GPS,因为每次旋转的移动小于 20 厘米,并且机器人将在室内使用。
我找到了一些室内测距和 3D 定位解决方案,例如 pozyx 或使用固定摄像头。但是我需要它具有成本效益。
有什么方法可以转换 9DOF 数据以获取新位置或任何其他传感器来做到这一点?算法之类的其他解决方案吗?
【问题讨论】:
-
加速度积分给出速度,积分速度给出位置。不过,它不会很准确。
-
@DonReba 你知道有什么办法吗?有没有关于这个的教程或文章?
-
@DonReba 你知道其他更准确的方法吗?
-
积分只是将每次测量乘以自上次测量以来的时间并相加。当然,如果你有角加速度,你必须将其转换为线性,但这也很容易。可能有使用其他传感器减少错误的方法。这只是最简单的方法。
-
如果你的机器人滚动没有滑动,也许使用电机旋转会更准确。使用 9-DOF,您可以计算从起点开始的位置,但所有误差都会累积起来,很快误差就会大于该值。问题将是正确定位捕获器以匹配球体的中心。
标签: arduino artificial-intelligence sensors robotics sensor-fusion