close


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


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

這就是這兩天在 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米。

作者 | 青暮、陳大鑫

原視頻鏈接:

https://www.youtube.com/watch?v=1MkrNVic7pw

arrow
arrow
    全站熱搜
    創作者介紹
    創作者 Ken641228 的頭像
    Ken641228

    Ken641228的部落格

    Ken641228 發表在 痞客邦 留言(0) 人氣()