爆火!部落客打造百發百中自動瞄準弓箭:比鷹眼還鷹眼

射箭是一項「再簡單不過」的運動,前提是不求彎弓射大雕,但求箭能射在靶上就行。

但是如果想做到「一發命中、百步穿楊」那就非常有難度了,不經過長期的訓練是萬萬不行的。 

那難道就沒有一種智慧的弓箭嗎?那種只要你拉滿弓,無需認真的瞄準,它就能自己射中目標的弓箭箭?

還別說,今天它真就有了,直接上圖!

爆火!部落客打造百發百中自動瞄準弓箭:比鷹眼還鷹眼

請注意哈,在上圖中這位小哥把弓拉開之後,箭是自己發射出去的,而且是連環命中!

這就是這兩天在 Youtube 上十分火爆的一個堪稱「百發百中」的射箭影片,這位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米。

Tags: