超酷室内导航机器人
组件和用品
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 2 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 |
必要的工具和机器
|
应用和在线服务
| ||||
|
关于这个项目
我们的故事:
该项目旨在让机器人按照预先定义的路径精确移动,无需使用 GPS 或 WiFi 或蓝牙进行定位,甚至无需地图或建筑布局图。并实时绘制其实际路径(按比例)。蓝牙可以代替有线,传输实时位置信息。
图> 图>
背景故事:
我们正在为基于 Arduino 的机器人的室内导航寻找一个强大的解决方案。在为此应用选择正确的运动传感解决方案时,我们还考虑了 Oblu(开源 IMU)。它的低成本和开源特性使其成为一个可能的候选者。这里棘手的部分是 oblu 的开源程序适用于脚踏式室内行人航位推算 (PDR) 或行人导航,简单来说。 Oblu 作为脚踏式 IMU 在室内的 PDR 性能令人印象深刻。一个很大的优点是免费的 Android 应用程序 (Xoblu) 用于实时位置跟踪。然而,我们不确定如何利用其现有的基于人类步行模型的行人导航算法。
Oblu 的内部计算基于人类步行。 Oblu 给出两个连续步骤之间的位移和航向的变化。当脚接触地面时,鞋底的速度为零,即鞋底处于静止状态。 <参考上面的视频。> 这种方式 Oblu 检测“步骤”并纠正一些内部错误。并且这种频繁的错误纠正会产生很好的跟踪性能。所以问题就在这里。如果我们的机器人也以同样的方式行走 - 移动,停止,移动,停止..
我们选择了 Oblu,很快我们就可以组装我们的机器人和跟踪系统。故事的其余部分在以下视频中...
它是如何工作的:
机器人以预先编程的路径移动,并将其实际移动信息(通过蓝牙)传输到手机以进行实时跟踪。
Arduino 已预先编程有路径,而 oblu 用于感应机器人的运动。 oblu 定期向 Arduino 传输运动信息。在此基础上,Arduino 控制轮子的运动,让机器人遵循预定的路径。
机器人的路径被编程为一组直线段。每个线段由其相对于前一个线段的长度和方向定义。机器人的运动保持谨慎,即它沿直线移动,但以较小的部分移动(为简单起见,我们称之为“步幅”)。在每个步幅结束时,oblu 将步幅长度和偏离程度(方向变化)从直线传输到 Arduino。如果发现与预先定义的直线有偏差,Arduino 会在收到此类信息的每一步纠正机器人的对齐方式。
根据程序,机器人总是应该沿直线移动。然而,由于表面不平整、机器人组装质量不平衡、直流电机的结构或电气不平衡或前自由运行轮的随机方向等非理想情况,它可能会偏离直线并可能以一定的角度或倾斜的路径行走。迈出一步……纠正你的方向……继续前进。如果机器人的行程超过该特定线段的编程长度,它也会向后移动..
下一个步幅取决于该特定直线段要覆盖的剩余距离。机器人行走的距离较大时采用较大的步幅,而在接近目的地(即每条直线段的末端)时采用较小的步幅。
IMU Oblu 同时将数据传输到 Arduino 和手机(通过蓝牙)。 Xoblu(Android 应用程序)根据从机器人接收到的运动信息执行一些简单的计算来构建路径,该信息用于在手机上进行实时跟踪。 (下图说明了使用 Xoblu 构建路径。)
总之,Oblu 感应运动并将运动信息定期传送到 Arduino 和手机。根据编程路径和运动信息(由 oblu 发送),Arduino 控制车轮的运动。除启动/停止命令外,机器人的运动不受远程控制。
路径建模:
如果机器人仅沿直线段行走,则可以最好地控制机器人。因此,必须首先将路径建模为一组直线段。下面的图片包含几个示例路径及其在位移和方向方面的表示。这就是路径在 Arduino 中的编程方式。
图>同样,任何由一组直线段组成的路径都可以在 Arduino 中定义和编程。
电路组装:
有关 Arduino、oblu、电机驱动器和电池组之间的电气连接,请参阅硬件部分。
- 通信协议:
第 1 步 :Xoblu 向 oblu 发送 START 命令
第 2 步 :oblu 通过向 Xoblu 发送适当的 ACK 来确认接收命令
第 3 步 :oblu 向 Xoblu 发送包含每个步幅、每一步的位移和方向信息的数据包。 (步骤 =每当检测到零运动或静止时)。
第 4 步 :Xoblu 通过向 oblu 发送适当的 ACK 来确认接收到最后一个数据包。 (重复步骤3和4的循环,直到Xoblu发送STOP。收到STOP命令后,oblu执行步骤5)
步骤 5 :STOP - (i) 在 oblu 中停止处理 (ii) 在 oblu 中停止所有输出
START、ACK、DATA 和 STOP 的详细信息请参考 oblu 的应用说明
Oblu IMU 如何工作(可选):
介绍一些有关 Oblu 概述和脚安装 PDR 传感器的基本操作原理的参考资料:
--> oblu 的可用源代码是针对脚踏式导航的。并且最好为此目的进行优化。以下视频介绍了其基本操作原理:
--> 这里有几篇关于脚踏式 PDR 传感器的简单文章:
1.追踪我的脚步
2.继续跟踪我的步数
--> 您可以参考此文档以了解有关使用足部传感器进行行人航位推算的详细信息。
--> 以下是 Oblu 概述的视频:
----------------
请分享您的反馈、建议并留下评论。
最好的祝福!
----------------
代码
基于arduino的机器人
机器人以预先编程的路径移动,并将其当前坐标传输到手机以进行实时跟踪。https://github.com/vijkumsha/oblu_Robot示意图
制造工艺