#SUMMARY

工程师兼视频用户马克·罗伯特发明出一种机器人,它不仅能够以闪电般的速度自由摆放多米诺骨牌,并且仅用1天就将十万块多米诺骨牌拼成了一幅马里奥的图画,这项工作至少需要7个人花费一周才能完成。这一壮举甚至打破了之前人类创下的吉尼斯世界纪录。成功之路从来都不是一帆风顺,马克解决了诸多难题,最终分享了机器人的详细软硬件设计并将全部近15000行代码免费分享。

机器人Dominator

马克的机器人名叫Dominator,一次能够摆放300块多米诺米诺骨牌。

超级马里奥第一代世界纪录(十万块多米诺骨牌1天拼成马里奥)(1)

机器人Dominator有很多部件,主体是由底部带有钢底板的80/20框架制成,驱动系统安装在底板上。

机器人前部配有大托盘,托盘顶部是由3D打印制作的漏斗,15宽x 20高的300块多米诺骨牌能够更容易地落入相应网格。

背部还添加很大的配重,确保后轮在地面上保持足够的牵引力避免打滑。

超级马里奥第一代世界纪录(十万块多米诺骨牌1天拼成马里奥)(2)

移动部分,机器人安装有3个以120度均匀间隔的全向轮。对这些轮子的特殊控制能够使机器人在任何方向上自由移动,这对于准备放置下一个托盘时与多米诺骨牌精确对齐至关重要。

电机部分则是由ClearPath电机驱动,这种电机能够精准贴合机器人且功能强大。电机通过1:4皮带驱动器连接到轮子,提供足够扭矩使重约200磅的机器人移动。驱动和升降的所有电机均由一对24V 20AH锂聚合物电池供电。

超级马里奥第一代世界纪录(十万块多米诺骨牌1天拼成马里奥)(3)

由树莓派4负责的机器人主要“大脑”能够处理所有高级通信、复杂计算和决策,它通过USB集线器连接两个向下的红外摄像头、Marvelmind室内GPS传感器及ClearCore电机控制器。

该电机控制器能够处理驱动系统和托盘升降机的下层控制,而且还能处理托盘伺服、手动托盘按钮和托盘光学限位器等简单输入/输出端口。

所有这些都是由22.2V锂聚合物电池供电,而且这种电池可针对需要设备调节至5V。

超级马里奥第一代世界纪录(十万块多米诺骨牌1天拼成马里奥)(4)

机器人Dominator在三台计算机上运行,包含近15,000行代码。由于代码需要连续可靠地运行数小时,因此还有许多假设增加了复杂性确保软件安全应对错误并且可以“安全失败”。

超级马里奥第一代世界纪录(十万块多米诺骨牌1天拼成马里奥)(5)

成功之路并非一帆风顺 四个棘手难题

马克的团队伍面临的四个棘手难题:

超级马里奥第一代世界纪录(十万块多米诺骨牌1天拼成马里奥)(6)

马克起初就想放置至少十万块多米诺骨牌,而机器人的早期设计是携带所有多米诺骨牌并一次放置一块。

考虑到十万块多米诺骨牌的重量约为850公斤,就算每块以3秒的时间放置,也需要3.5天连续不间断才能放置完成。因此研究团队需要以截然不同的方式解决这个问题。

超级马里奥第一代世界纪录(十万块多米诺骨牌1天拼成马里奥)(7)

这就涉及到使用能够容纳很多多米诺骨牌的托盘,并通过下方的滑动机构将其一次性全部放下。然后托盘转移至传送带上重新填充多米诺骨牌后再取回重复这一过程。

这个想法解决了携带多米诺骨牌的重量问题和一次性放置多米诺骨牌并允许各个部分并行运行的时间问题。

超级马里奥第一代世界纪录(十万块多米诺骨牌1天拼成马里奥)(8)

超级马里奥第一代世界纪录(十万块多米诺骨牌1天拼成马里奥)(9)

机器人需要将多米诺骨牌放置得足够近,以便能够触发相互推倒机制,但距离又不能太近以至于将已放置的骨牌撞倒。

因此机器人需要极其精确地“了解”其所在位置。如果位置不精准,即使是一个微小失误也可能造成意外情况发生。

最初是使用超声波传感器测量多米诺骨牌相对于机器人的位置,但后来证明存在问题。最后研究人员成功使用Marvelmind传感器定位机器人,其精度已达到亚厘米级。

超级马里奥第一代世界纪录(十万块多米诺骨牌1天拼成马里奥)(10)

超级马里奥第一代世界纪录(十万块多米诺骨牌1天拼成马里奥)(11)

如果机器人不能精准控制自己的移动路线,就不能放置多米诺骨牌,而且更坏的情况是骨牌会被碰倒。

起初,研究人员使用某种全方位驱动系统让机器人执行细微幅度修正与骨牌对齐,而无需备份、调整及重新接近多米诺骨牌。

随后研究人员使用麦卡纳姆轮和Arduino系统微控制器在线进行测试解决机器人精准横移1英寸的难题,最后换成了真正的全向轮。

超级马里奥第一代世界纪录(十万块多米诺骨牌1天拼成马里奥)(12)

超级马里奥第一代世界纪录(十万块多米诺骨牌1天拼成马里奥)(13)

研究人员一开始使用步进电机。结果证明,这种电机尺寸过小,无法承载所需负载,并且Arduino系统无法以足够快的速度发送步进脉冲,无法以任何速度移动机器人。

切换到直流电机后情况更为糟糕,这种电机速度太快,无法在低速时提供足够的扭矩来很好控制机器人。此外,有时一些轮子会获得良好的牵引力,而其他轮子会打滑,导致机器人疯狂旋转。

最后ClearPath伺服电机能够精准提供大量扭矩,增加皮带减速以进一步提高输出扭矩,并下降到只有三个车轮以确保没有任何车轮打滑。

从四个轮子到三个轮子的转变至关重要,因为让所有四个轮子都与地面良好接触很困难。这是因为定义一个平面只需要三个点,与三条腿的凳子永远不会摇晃的原因相同。

超级马里奥第一代世界纪录(十万块多米诺骨牌1天拼成马里奥)(14)

而切换电机的同时,另一个重大变化是从Arduino系统更换至树莓派作为机器人的主计算机。

这是因为ClearCore最容易通过F串行接口连接,虽然Marvelmind传感器也能够从USB连接中受益(而不是通过笔记本电脑转发给机器人,这对延迟来说不是很好),但代码会变得越来越复杂,以至于Arduino上的可用内存和计算能力都不再需要。

研究人员模拟出树莓派与之通信的所有设备,并实际编写了一套单元测试,从而无需物理机器人就可以进行大量开发。而且还能够设置适当的配置库和日志系统,这也使研发更加顺畅。

解决这几大难题后,机器人现在能够使用由新软件系统控制的新电机很好地运行,下一步是将托盘添加到机器人的前部。

超级马里奥第一代世界纪录(十万块多米诺骨牌1天拼成马里奥)(15)

事实证明ClearCore有额外端口控制没有用于驱动系统的步进电机,并且还有足够的其他输入/输出端口处理托盘伺服、归位开关和手动按钮。

因此,除了必须进行一些电源转换以将为ClearCore供电的24V电池电压降至5V驱动托盘伺服之外,研究人员还将托盘的所有部件连接到控制器并对其进行测试。

在编写了一些简单的状态机来对归位和放置多米诺骨牌的动作进行排序后,托盘顺利工作。这是整个项目为数不多几乎一直有效且从未出现任何重大问题的部分。

摆放多米诺骨牌,仍需解决“最后一厘米”问题

研究人员使用Marvelmind传感器定位机器人,因为其精度已达到亚厘米级,如果实验不成功,备用计划是添加超声波传感器对多米诺骨牌进行辅助检测。

但Marvelmind传感器的精度是随基站的距离而变化。早期的测试是在一个小场地进行,那里的基站非常靠近机器人。但搬到实际的大场地时,准确性变得更糟。

超级马里奥第一代世界纪录(十万块多米诺骨牌1天拼成马里奥)(16)

机器人很大很长,而且托盘在前面伸出,这意味着机器人角度的微小改变会使前部托盘位置发生更大变化。

机器人角度必须精确到0.5度,随后研究人员使用超声波传感器在合适条件下精确检测多米诺骨牌。

但结果事与愿违,前向传感器检测机器人前面的骨牌时,超声波信号会从地板和托盘底部产生回响并引发难以过滤的错误读数;侧向传感器距离骨牌的边缘太远造成无法精准检测。

超级马里奥第一代世界纪录(十万块多米诺骨牌1天拼成马里奥)(17)

超级马里奥第一代世界纪录(十万块多米诺骨牌1天拼成马里奥)(18)

经过尝试,研究人员弃用超声波传感器并仅使用Marvelminds使骨牌放置位置大致准确,最终,研究人员使用地面上带有标记的朝下摄像机来帮助最终对齐骨牌。

编写了一些代码和相机追踪程序测试标记追踪后,这套系统能够将骨牌精准摆放至相邻放置并能够相互碰倒。

超级马里奥第一代世界纪录(十万块多米诺骨牌1天拼成马里奥)(19)

新世界纪录诞生!

最终,机器人出色地完成了它的工作,十万块的多米诺骨牌还打破了莉莉·赫维什(Lily Hevesh)所创造的世界纪录。

超级马里奥第一代世界纪录(十万块多米诺骨牌1天拼成马里奥)(20)

超级马里奥第一代世界纪录(十万块多米诺骨牌1天拼成马里奥)(21)

超级马里奥第一代世界纪录(十万块多米诺骨牌1天拼成马里奥)(22)

(本文首发小猎犬APP)

,