為贏過老婆打造自動瞄準弓,閉眼也能百發(fā)百中,零件電路算法全自制
豐色 夢晨 發(fā)自 凹非寺
量子位 報道 | 公眾號 QbitAI
油管上一位小哥最近有個煩惱:老婆射箭技術太好,我很菜又想贏怎么辦?苦練6個月、6年?No No No,不如花時間做一個自動瞄準的弓箭,一勞永逸!這就是這位DIY達人的思考方式該死的勝負欲。不得不說,小哥花了6周還真做出來了,最終這把弓箭就像狗見了肉貓見了耗子兔子見了蘿卜直奔目標。不看都能射中:換個蘋果,沒問題:運動的靶子也能彈無虛發(fā):小哥一把視頻傳到YouTube上,就引來了數(shù)百萬網友的圍觀,“Brilliant”、Incredible”、“Awesome”滿天飛,膜拜之聲不絕于耳。當然,為了贏老婆,小哥也不是沒想過直接買一把自動瞄準的弓箭作弊,可惜網上沒有賣的。作為一名硬核工程師 程序員,完全不能允許2021年還有這種事情,必須自己做!零件電路算法全自制
首先買一把輕型的弓,畢竟還要往上加很多零件,太重了就舉不動了。自動瞄準的思路小哥已經想好了:先來一個自動瞄準裝置負責移動弓,再來一個自動釋放裝置,在系統(tǒng)判定的時機自動放箭。瞄準用的視覺系統(tǒng)由8個高速攝像頭組成,每秒鐘可以更新50次的那種。除了弓箭和攝像頭是買來的,其他零件都是自己設計、自己造出來的,電路是自己焊的,連瞄準的算法也是自己用Python寫的。真是全能啊。都做好后,上下、左右方向都能自動調整,發(fā)射時機也不用人操心。終于大功告成,上靶測試一下。呃…準不準先不說,因為弓自己移動到合適位置的時機無法預料,猝不及防地自動發(fā)射讓拉弓的手總打到自己臉。小哥后續(xù)解釋道其實把弓拉滿就可以避免這個問題,但在測試期間為了避免射出去的箭力道太大誤傷到房間里其他物品,只好選擇拉到半滿犧牲一下自己了。再來看看準頭。有點偏,而且每次都是往左上偏。這種情況雖然有簡單的辦法解決:人為加一個修正,每次都往右下一點瞄。小哥多年的開發(fā)經驗告訴他,這樣做會為將來更多Bug埋下伏筆。不過也管不了這么多了,先臨時加上這個“非常蠢的修正”,把老婆叫來比一場吧。結果是……0:3完敗。他不甘心,一切都正常只是箭有點偏,那一定是代碼的問題。再加上還要馴服移動靶子,與其修改代碼不如全刪了重寫,于是小哥又Coding了一周。好了,再試試。拉好弓,“咳咳,老婆扔靶子”:小哥按下啟動按鈕,剩下的就交給跟蹤系統(tǒng)了:系統(tǒng)每300毫秒檢查一下靶子運動的拋物線軌跡傳給計算機,然后通過一個“乏味”的小計算來確定弓的移動位置,同時考慮到箭頭到達目標的時間以及箭的彎曲路徑。隨著數(shù)據的更新,弓不停的移動,終于它瞄準時機,一箭發(fā)射:完美錯過……代碼還是有問題,改!說好了只需一分鐘修復,小哥花了一個小時,老婆表示懶得等了。沒人給他發(fā)靶子了,不過這也難不住他:再造一個自動投靶器唄。據小哥后來回憶,這個投靶器在整個6周的開發(fā)過程中至少投了上千次靶子。好了好了再試!emmm……不是發(fā)太早就是發(fā)太晚、甚至連靜態(tài)靶子都射不中了……Bug Bug全是Bug連投靶器也有Bug。再次修理了一番之后,還是差一點點。小哥一番檢查確定機器和自動瞄準系統(tǒng)都沒有問題,到底哪不對?他打算換個思路。除了科技還有氪金
小哥通過慢鏡頭回放箭的飛行過程發(fā)現(xiàn),這箭它咋不是筆直射出去的呢?原來不是自動瞄準系統(tǒng)出了問題,而是他買的這把入門級反曲弓不行。根據反曲弓的原理,用力拉弦時箭身也會受到外力發(fā)生輕微彎曲形變,松手發(fā)射之后箭身受力取消,會在彈性恢復力的作用下有恢復原狀的趨勢。這股力又會讓箭身向反方向彎曲,同時改變箭的飛行方向。反方向彎曲到了一定程度又會再次回彈,又改變飛行方向。小哥參考另一個油管頻道SmartEveryDay的視頻搞明白了這個問題。在這樣的反復循環(huán)中,箭就不是筆直的射向目標,而是不斷搖擺著前進。在專業(yè)射箭運動中,箭矢的抗彎曲度程度稱為“撓度(Spine)”,撓度也影響著箭飛行時搖擺的程度,不同磅數(shù)的弓要搭配不同撓度的箭才容易射中目標。
小哥覺得雖然增強一下算法,把撓度也考慮進去就能解決這個問題,但這不符合他野生鋼鐵俠的風格呀。
畢竟鋼鐵俠除了懂技術還有錢。小哥決定氪金!買一把能把箭射直的復合弓。把瞄準裝置挪到復合弓上后,最開始擔心的那個問題還真出現(xiàn)了:整套系統(tǒng)太重了,舉不動。不過這也難不倒他,小哥又給自己搞了一套裝甲,用整個上半身的力量支撐弓的重量。這下整套系統(tǒng)可以說從自動瞄準弓進化成了瞄準機器人,留給人的任務就只有拉弓了。再找老婆比賽!為了贏得更穩(wěn),小哥還調整到了精準模式,等瞄準裝置完全停止運動再發(fā)射。這一回3:0完勝。不過小哥還不過癮,再次挑戰(zhàn)移動靶,成功!再來更難的挑戰(zhàn),能不能射中樂高小人頭上頂著的超小“蘋果”。
有多小呢?直徑還不如箭桿大。從結果來看雖然能射中,就是樂高小人消耗極快。
下一步挑戰(zhàn)更遠距離
這位小哥名叫Shane Wighton,曾在美國一家3D打印機公司(Formlabs)做了八年工程師,擁有機械工程學士學位和計算機科學碩士學位。畢業(yè)學校雖不怎么有名(北卡羅來納大學夏洛特分校),但從四歲起就開始在老爸的帶領下?lián)v鼓塑料模型焊接了。才華橫溢、熱愛制作的他已經從公司辭職,現(xiàn)在似乎在全職做YouTuber。他的頻道自從去年疫情爆發(fā)期間推出以來,不到一年半的時間總訂閱人數(shù)已超300萬。應該有不少人看過他的作品吧。就比如這個自動理發(fā)器:還有這種百發(fā)百中的籃筐和臺球桿(似乎小哥對自動瞄準這個事有些執(zhí)念):最后回到自動弓箭,雖然Shane覺得現(xiàn)在效果已經夠酷了,但他想要的是能和真正的射箭高手同臺競技。接下來他要挑戰(zhàn)在45米距離射中樂高小人頭上的蘋果。因為距離會把微小的偏差放大,要達成這個目標就需要開發(fā)全新的自動瞄準弓2代。而改進方法在他腦袋里已經設計好了。原視頻地址:
https://www.youtube.com/watch?v=1MkrNVic7pw參考鏈接:[1]https://bowaddicted.com/how-to-properly-tune-a-recurve-bow/
[2]https://www.youtube.com/watch?v=O7zewtuUM_0
?[3]https://www.patreon.com/stuffmadehere— 完 —