網紅博主打造自動瞄準弓箭 閉上眼睛也能射中
射箭是一項”再簡單不過”的運動,前提是不求彎弓射大雕,但求箭能射在靶上就行。 但是如果想做到”一發命中、百步穿楊”那就非常有難度了,不經過長期的訓練是萬萬不行的。 那難道就沒有一種智慧的弓箭嗎? 那種只要你拉滿弓,無需認真的瞄準,它就能自己射中目標的弓箭箭?
還別說,今天它真就有了,直接上圖!
請注意哈,在上圖中這位小哥把弓拉開之後,箭是自己發射出去的,而且是連環命中!
這就是這兩天在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米。
作者 | 青暮、陳大鑫
原視頻連結: