春节回家,在家等待你的除了家里的美食、许久不见的寒暄,肯定还有各种小游戏。
比如台球,在文摘菌看来,没玩过几局台球根本不能算是过了年。
但是对于萌新们来说,台球可能不那么容易上手,不小心就会把白球打进洞。这个时候,要是有一根百发百中台球杆就好了!
于是,那个做过百发百中篮球框的小哥便延续了“百发百中DIY系列”,做了一根百发百中台球杆。
不信?我们先来看看实战对决。
怎么样,是不是so easy?别急,高难度的还在后面:
连这位小哥的老婆,一个台球高手,都要甘拜下风直呼内行。
在小哥的YouTube视频下方,网友们也是赞不绝口。有人就表示,“看了这系列的视频,让我怀疑自己是不是没有进化完全”。
还有网友在评论区大呼:“这绝对是YouTube上最聪明的仔!”
DIY一根如此神奇的台球杆需要几步?
别急,我们先闭上眼睛,在不考虑任何其他限制条件的情况下,首先你要定位你的目标球,然后,把它打进洞。
对于机器来说,要同时做到这两件事,就需要控制好角度和力度。
具体要做什么、做到什么地步,可以用这张图来表示,即摄像机捕捉到每个球的位置,再将大脑中制定的击球曲线转换到台球杆的系统中来执行,最后就是bingo,进球啦!
好了,原理搞清楚了,就可以开始制作台球杆demo了。
要实现球杆的灵活度,我们需要把六根伸缩杆以一种特殊的方式组装起来,然后让它们以规定的角度击球。
不过,要实现这个,就必须利用到史都华平台 (stewart platform),这注定会是一个繁琐复杂的项目。
可以想到,这个台球杆是由安装在一端的伺服系统驱动,这也是这个台球杆不会由于零件的复杂而被迫制作得庞杂的关键所在。
上述步骤都完成的时候,这个台球杆已经能够保证运动自如了:
当然,不过要让它能够自动识别并作出判断和动作,还需要一些数学上的计算和代码植入,还不要忘了给它装上“发射器”。
到这里,这个台球杆demo就基本上成型了,效果嘛,看上去还不赖。
等等,我们知道,在台球比赛中,不是所有的击球都是大力出奇迹,很多时候还需要根据自己的判断,所以我们还必须教给机器这一点。
于是,小哥装了一个电源组,微控制器利用压力记来测量压力水平,如果压力值过小会开启左边的阀门,压力过大则会开启右边的阀门。
区别嘛,大概就是这样,在上面的那种情况中白球会更容易一起落入洞中。
把电脑桌面投射到台球桌上,校准之余别忘了检查!
接下来,我们需要在台球桌上方安装一个摄像机,让球和杆都能被精准定位,从而击球进洞得分。
但是由于现实安装等各种原因,由摄像机拍摄出的画面不能保证一定是直角的,这就需要一些角度的修正。
我们知道一些类似于二维码这类的图像,对于摄像机这类的机器而言会尤其敏感,于是在台球桌的四个角上都安装上了这样的码。
在台球杆上安装了两个识别码,一个可以识别位置,两个码一起可以用于方向的识别和校准。
而具体在垂直方向的高度,则需要借助IMU(惯性测量单元)。
接下来就需要去教给机器如何做出正确的击球判断了。但问题是,这种击球判断是在电脑上做出的,比如系统表示,要击中下面这个球就需要在一定的区域内执行,而真正的击球需要在台桌上进行。
简单粗暴地来想,其实也可以直接把电脑桌面投射到台球桌上嘛。
尽管万事已经具备,但事实却不怎么如人意,比如这么简单的一个进球,系统却无法成功得分。
在经过多方检查,甚至把几乎所有的步骤全部重新做了一遍,结果发现伺服系统的其中两个马达坏掉了……
但在解决了上述问题之后,小哥还发现,台球的识别位置发生了很小的位移,这种畸变就和广角镜头一模一样,虽然很小,但也足以让系统的精度出现问题。
又是几天的检查和崩溃,最终小哥发现用于修正角度的代码适配的摄像机和他正在使用的摄像机不是同一个型号……
这真的是血泪教训,千万记得回头检查。
“云进球”的喜悦,你能想象吗?
为了能够打赢自己的台球高手老婆,小哥还在网上发起了一个台球游戏。
简单来说,就是让网友自己选择击球的角度和力度,系统会告诉他把台球杆放在什么位置,从而实现远程台球比赛。
不少网友都报名前来一试,这也让小哥品尝到了台球的乐趣。
甚至那些台球老手尝试到了“云进球”的喜悦之后也不免举手雀跃。