来源:机器之心
编辑:张倩
「I don't have skill, but I do have technology.」
「知识就是力量」,在油管 up 主 Shane Wighton 的人生中,这句话绝不仅仅只是一句口号。他用一个又一个的奇思妙想证明,即使你手再残、再没有运动细胞,只要还有脑子,任何运动都难不倒你:之前是篮球,这次换成了台球。之前是在篮板上「做手脚」,这次换成了球杆。
如图所示,这个智能球杆的末端是可以活动的,球桌的上方还安装了智能摄像头,用于拍摄球桌战况和计算击球路线。
除了自娱自乐之外,这个系统还可以联网,邀请朋友或不认识的网友打一局「线上 + 线下」协同的台球比赛,可以说非常实用了。
当然,整个系统的设计并没有看起来那么简单,需要克服很多困难,如怎么控制球杆活动部位的运动,怎么控制击球的力度。
克服这些困难经历了一个痛苦的过程,我们慢慢来看。
首先,Shane Wighton 将打台球的过程分解为两个步骤:1)确定球的行进路线;2)精准击球,使其按照预想的路线滚入球洞。这也是智能击球系统需要完成的两项任务。
Wighton 所预想的系统是这样的:首先,在球桌的上方安装一个摄像头,用于记录球桌上的基本情况;这个摄像头与一个「大脑」相连,后者可以利用算法,根据摄像头拍摄到的信息计算出最佳击球路线;最后,构建一个末端可以活动的球杆,帮助玩家完成击球动作。
整个流程设计看起来非常流畅,但 Wighton 却表示,真正做起来才发现,「这可能是我做过的最复杂的一个系统」。
球杆:智能台球系统的肢体
首先来看球杆。这部分的第一个难点在于:如何让球杆的前端自由活动?不只是左右活动,还要上下活动。Wighton 首先想到了一个简单的模型,并造了一个原型出来。但无论怎么看,这个设计似乎都很难稳定控制:
其实,Wighton 知道,Stewart 平台能够满足他的要求,但这个平台做起来实在太麻烦了,所以并没有将其作为首选。但现在,他似乎没有选择了。
Stewart 平台是一种有六个棱柱接点的并联式机械手,其棱柱接点多半是油压或是电子式的线性致动器,两两成对装在平台的三个位置。棱柱接点的下方也是两两成对接在平台底盘的三个位罝,但配对会和平台的配对错开。六个棱柱接点两端共 12 个接点,都是用万向接头连接。平台上方的物体的移动有六自由度,包括三个方向的移动以及三个方向的转动。
Stewart 平台有很多优点(如稳固、体积小),甚至可以说,除了麻烦之外,似乎没有多大缺点。
为了做出Stewart 平台,Wighton 首先需要做出很多小零件。
Stewart 平台的运动是利用一些拉紧的缆绳来控制的,缆绳的另一端连着控制器等装置。平台的精确运动则由算法借助微积分等知识来计算。
到这里,球杆的活动部分就大致完成了:
最后的击球动作通过一个气缸来完成。由于台球对击球的力度控制有要求(并非力度越大越好,比如有时候动作需要非常轻,避免白球落洞),Wighton 还给这个气缸安装了一个控制装置,可以通过放气阀等装置控制气流,从而达到控制击球力度的目的。
球杆做出来的确很酷,但它现在也只是充当一个灵活的肢体,没有「眼睛」和「大脑」。接下来,Wighton 就要给这个系统安装一个「眼睛」和「大脑」。
摄像头 + 算法:智能台球系统的眼睛和大脑
在这个系统中,悬挂在球桌上方的摄像头充当了整个系统的眼睛。但这双眼睛也遇到了一个难题:它拍出的图像并不是规则的矩形。如此一来,画面中每个球的位置就会偏离其实际位置,导致算出的击球路线不够准确(Garbage in, garbage out)。
为了校正拍摄画面,Wighton 给球桌的四个角贴上了一个基准点贴纸(类似于二维码三个角上的小方块)。这些贴纸不仅可以帮助计算机程序校正画面,还可以作为球洞、球等关键位置的参考。
为了确定球杆击球的方向,Wighton 给球杆也贴上了贴纸。球杆顶点的高低也有相应控制。
这些都准备就绪之后,Wighton 已经能够通过算法算出最佳击球路线,但问题是:路线只能显示在电脑的显示屏上,玩起来很不方便。要想玩得尽兴,还得安装一个投影仪。当然,投影仪也需要定点和校正,这里依然借助基准点来完成。
一切就绪,开始第一轮测试:
Wighton妻子的脸上泛起了神秘的笑容:就这?
痛苦的复盘
到底是哪里出了问题?起初,他发现,球杆的最前端总是向错误的方向移动。为了找出导致这一问题的原因,Wighton 开始复盘整个系统:首先,他安装了一个摄像头来记录球桌画面,然后用一个计算机程序来校正拍到的画面,另一个程序来抽取每个关键点的位置。将这些信息输入计算机,相应算法就可以算出球杆最前端应有的角度,然后将这一信息转化为 Stewart 平台六个致动器的位置信息,完成击球动作。
经过复盘,Wighton 发现,原来是驱动球杆活动端的伺服电动机出了问题:其中两个电动机的转动量和自己预想的不一样。此外,电动机上的滑轮也有一些小问题。
把这些问题解决了就行了吧?naive。更大的问题还在后面:球还是打不进。
为了挽尊,Wighton 又进行了几天疯狂的复盘。终于,一个问题浮现在眼前:球的位置似乎有偏移。
Wighton 认为,这可能是因为广角镜头让画面产生了扭曲。但是,他的镜头是自带校正功能的,因此问题可能出在其他方面。
接下来又是四天筋疲力尽的复盘行动,Wighton 甚至自己做了一套校准系统,但一切并没有好转。
「有时候医生会把手术刀落在病人身体里,病人回家之后就会经常生病,还找不到原因。但这个病人怎么也想不到是肚子里的手术刀导致了这一切。」当最终问题浮现在眼前时,Wighton 想到了这个例子。
这里的「手术刀」就是代码里的 bug。那段代码里有校正功能,但针对的不是 Wighton 用的那台!
在经过数周的挣扎之后,这个智能台球系统终于能用了:
除了这些基本操作,一些专业进球路线现在也可以轻松实现:
独乐乐不如众乐乐,Wighton 还开发了一个线上系统,可以让其他人远程选择击球路线并控制击球,由 Wighton 代为完成球杆的摆放等活动。
ShaneWighton 是谁?
Shane Wighton 毕业于北卡罗来纳大学夏洛特分校,获得了机械工程学士学位和计算机科学硕士学位。他目前在 3D 打印技术开发商和制造商 Formlabs 公司担任首席工程师,热爱制作东西。曾发表专利:Additive fabrication support structures(增材制造支持结构)。Wighton 于 2020 年 3 月开通了自己的 YouTube 频道,现在已经有了 234 万的订阅者。
他在 YouTube 频道简介中这样写道:
我创造各种各样的事物,并且希望用有趣的方式来分享。我的大部分创造是制造项目,不过我也写软件、制作电子设备等。
如果你想了解 Shane Wighton 的其他奇思妙想,可以单击以下链接或参考文章。
Shane Wighton 个人频道:https://www.youtube.com/channel/UCj1VqrHhDte54oLgPG4xpuQ