Apo*_*954 5 robotics artificial-intelligence arduino sensor sensor-fusion
我制造了一个由Arduino和Processing控制的机器人,它通过自身旋转(如球体)在房间内移动.
我需要的是能够在地板上移动后获得新位置(假设在一个3米x 3米的房间内).我正在使用9DOF传感器(3轴加速度计数据,3轴陀螺仪和3轴磁数据)来确定其滚转,俯仰和偏航以及它的方向.
如何准确识别机器人在笛卡尔坐标(x,y,z)坐标相对于其起始位置的位置?我不能使用GPS,因为每次旋转运动少于20厘米,机器人将在室内使用.
我找到了一些室内测距和3D定位解决方案,如pozyx或使用固定相机.但是我需要它具有成本效益.
有没有办法转换9DOF数据以获得新位置或任何其他传感器来做到这一点?任何其他解决方案,如算法?
正如人们在评论中指出的那样,积分加速度给出了速度,并且再次积分得到了位置.然而,这不是很准确,因为错误会立即累积.
相反,人们使用的是"传感器融合",它将几个传感器的数据组合成更好的估计,例如位置.但是,如果你单独依靠加速度计和陀螺仪,它仍然会随着时间累积误差.磁矢量会帮助你,但它可能仍然是不准确的.
我在网上找到了以下指南,介绍了在arduino上使用kalmann滤波器进行传感器融合的介绍.
http://digitalcommons.calpoly.edu/cgi/viewcontent.cgi?article=1114&context=aerosp
警告:你需要知道一些数学运算才能启动并运行.