国外小哥打造“百发百中”自动瞄准弓箭,闭上眼睛也能射中

射箭是一项“再简单不过”的运动,前提是不求弯弓射大雕,但求箭能射在靶上就行。

但是如果想做到“一发命中、百步穿杨”那就非常有难度了,不经过长期的训练是万万不行的。

那难道就没有一种智能的弓箭吗?那种只要你拉满弓,无需认真的瞄准,它就能自己射中目标的弓箭箭?

还别说,今天它真就有了,直接上图!

请注意哈,在上图中这位小哥把弓拉开之后,箭是自己发射出去的,而且是连环命中!

这就是这两天在 Youtube 上十分火爆的一个堪称“百发百中”的射箭视频,这位油管博主是一位硬核程序员,相信很多人并不陌生,他叫 Shane Wighton ,之前他自制的一个“理发机器人”、“百发百中投篮”、“百发百中台球杆”曾在 YouTube 上火了很多次。

这位硬核的博主目前在 3D 打印技术开发商和制造商 Formlabs 公司担任首席工程师。他之前就读于北卡罗来纳大学夏洛特分校,拥有机械工程学士学位和计算机科学硕士学位。

本次事情的起因是这样的,Shane Wighton 的妻子很擅长射箭,Shane 却在这方面“笨手笨脚”,Shane 比之不过,于是他想“作弊”来买一款能够自动射箭的弓,可惜网上都没有卖的,无奈之下,他只好决定亲自动手打造一款出来。

因为 Shane Wighto 虽然不擅长射箭等运动技能,但是他很有极客精神,很擅长动手做工程。

Shane Wighto 在穿戴这款弓箭机器人装备之后,就没有再费劲瞄准了,几乎拥有了超能力,他射出去的箭就像狗一样能闻到目标的味道,自主击中目标。

可以说穿上这件衣服之后,比鹰眼还鹰眼!

弓箭机器人原理 

这款弓箭机器人装备大概需要瞄准和发射两个过程。

我们先来看一下比较简单的发射过程吧。

发射原理大概是这样:一共有两个小机器人,一个在持弓手和弓之间,用来移动弓的位置和角度;一个在拉弓手和弦之间,用来释放弦并发射弓。只要前面的瞄准工作做好之后,就会有个信号告诉伺服电机来实现发射工作。

看起来很简单是吧?

别急,还是来看看下面比较难的瞄准工作吧,想要打造这样的自动瞄准系统,首先,需要做出来一个弓瞄准机器。

像下面这样,只要握住把手后,弓就能在一定范围内自动地调整相应的位置和角度。

但射箭和打一束激光可不一样。首先箭的飞行轨迹不是一条直线,而是抛物线。而这条抛物线的弯曲形状,也取决于发射的速度。速度越快,这条抛物线越接近于直线,反之越接近于抛物线。

另外的困难还是在于精确地计算和掌控时间,当抛出一个飞靶时,也许射出的箭离集中靶心只差了 50 毫秒的时间,而 50 毫秒仅相当于眨眼瞬间的 1/3,所以必须要精确地计算好距离、发射角度、发射时间来做提前射击。

没错,你会说只需利用小学三年级学到的数学物理知识,不就足以能建模发射出箭的抛物线方程了嘛。

看起来核心思想非常简单嘛,但是,实际的设计和制造却是一个很大的挑战。

比如弓具体在调整位置和方向时用到了 Shane 亲自打造的“鹰眼”系统。

这套“鹰眼”系统一共利用了八个摄像头,来找到一个中心,告诉弓相对于目标的位置以及其他很多坐标。

可以看到上图有一个小反光球,所有 8 个摄像机都在同一时间拍摄到它,这样就能精确地来计算出小球的位置,这整个过程非常的快,一秒钟能拍 50 帧。

这些小球叫做跟踪球,被安装在弓的前方和拉弓手的手持部件上。

小跟踪球不止一个,所有的摄像机都会在同一时间拍摄到这些小跟踪球,并给出 50 个关于每个球的位置更新。

这样,系统就能分析出箭应该指向的角度,以及拉弓的力度,进而计算出箭射出后的抛物线。

Shane 声称自己写了一个非常“简单”的程序来计算这些数据,由于代码过于“简单”,Shane 似乎羞于对此做详细介绍。

Shane 试了试效果,按下系统启动键,开始瞄准,发射!

结果非常棒!

额,会打到自己的脸。

而且,箭也没法射中目标,每次都射到偏左上的位置。

怎么办?

既然每次都偏左上,那就往右下调偏差就行啦!

没有什么事情,是一行代码搞不定的。

接下来,就是见证奇迹的时刻了。

Shane 正式向妻子发起了挑战。

比赛规则是:Shane 和他的妻子比赛三局,每人各射击一箭,更准的人得一分。

结果是,Shane 一败涂地。

Shane 不服气,觉得还有改进的空间。

可是问题出在哪里呢?

没错,箭还是有些偏。

他觉得,还是代码的问题。

在经过一周的非常无聊的软件开发和调试之后,全新的系统出来了。

这一次,他选择了更难的任务,即以运动的靶子为目标。

弓已经拉好准备发射,按下按钮之后,计算机启动“鹰眼”跟踪系统,每 300 毫秒发送一次数据,更新所有物体的位置。

当计算机看到目标时,它会检查目标是否以抛物线运动,然后计算出它应该将箭指向何处,来射中目标,这其中会考虑箭移动到那里的时间,和箭的抛物线路径。

然后系统会开始调整弓的位置,随着跟踪数据的输入不断增加,弓会不断地进行调整,以适应手的抖动。

之后当系统认为瞄准到了正确位置的时候,就会开始调整箭的角度。

然后,只要按下按钮,箭就会发射出去。

咦?根本没有射中。

再继续改 bug 吧。

这时候,他的妻子已经不耐烦了,厌倦了他一遍又一遍地说只需要几分钟,结果却花费了几个小时来修改一个 bug。

怎么办?陪妻子散步去吗?

想多了。

没见过技术宅?

他制造了一个自动弹射器,把妻子晾在一边,然后尽情地自己玩耍。

在修改 bug 的过程中,他考虑了这些问题:为什么箭发射得太早?为什么箭发射得太晚?为什么靶子静止不动的时候没有击中目标?为什么会击偏?

尽管有这么多错误,但这只是时间问题。

现在,箭能击中静止不动的靶子了!

尽管还是不能击中运动目标,但到目前为止,我们已经非常接近最终的目标了。

箭确实可以依照设定的抛物线来飞行。

但是箭并没有足够漂亮的飞行轨迹,反而歪歪扭扭的。

这时 Shane 想到,他目前一直使用的都是反曲弓,这种弓有一个问题 —— 不能直接对着靶心射过去,得偏一点儿才行。(Shane 最初考虑使用这种弓也是因为它是最便宜的。)

当然,他也说道,这种错误可以通过算法来调整。

不过还有一种更加省事的方法 —— 花钱买更贵的复合弓。

这种复合弓射出的箭的轨迹非常笔直,他说道,这其实有点作弊嫌疑,但普通人用这把弓就能百发百中吗?哈哈,也不见得。何况,我们还有更花的玩法。

这种弓有一个缺点是非常的重。所以,他一怒之下做了一套“战斗衣”,借此用身体的力量来固定和支撑这把弓,好让自己能够轻松地操控。

鹰眼,完成!

是时候把气走的妻子哄回来了。

妻子惊呼,你这穿的是啥?钢铁侠?

少废话,战斗再次打响!

规则不变,还是看谁击中的准,谁赢。

这一次他减缓了速度,并开启了神枪手模式。

结果,三箭全中靶心!

而他的妻子一发未中!

3:0,游戏结束。

Shane 还说,他都完全没有集中精力。

接下来,在小苹果目标测试中,也完全没问题!

甚至都不用看目标。

再接下来,就是移动目标的射击了。

结果不出所料,一击中的!

在这个过程中,瞄准系统不仅识别出了弓箭的位置,还识别和预测到了目标的运动轨迹。

看看这些被箭射中的地方有多密集。

为了测试系统到底能有多准,Shane 拿出了心爱的乐高小人,并在它头上安装了一个“小苹果”,准备瞄准“小苹果”。

一开始不是很顺利,但最终,乐高小人被成功击中了。

“小苹果”不见了,是不是刚好被击中了呢?

慢镜头显示,击中的位置是小人的心脏。

我们再试一次。

啊哈!

当然,这个系统也还没达到十全十美的地步。

Shane 说道,下一次,他想挑战在 150 英尺(约 45 米)开外击中乐高小人头上的小苹果。

要知道,室内射箭比赛的距离一般才 18 米,而奥运射箭项目,不过 70 米。

Published by

风君子

独自遨游何稽首 揭天掀地慰生平

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注