難以想象,這竟然是一個18歲高中生獨立做出來的機器人!
無論室內外,都能實現跟蹤:
就連在黑夜里跟著走,也No problem:
當坐騎也完全沒問題:
原理確定、外形設計、電路連接、代碼編寫,所有工作耗時200天。
而且,全部由這位叫做凌十七的B站Up主一人完成!
視頻上傳不到3天,就斬獲近百萬播放量。
本來,自主導演的機器人故事和硬核DIY機器人全流程已經足夠惹眼。
在視頻即將結束時,Up主還掏出樂器,為這一項目獻曲一首,直接引爆了彈幕:
請問還有什么是您不會的呢?
六邊形戰士!
寶藏男孩?!
從程序員,到導演,到音樂愛好者,多種身份無縫切換!
這到底是怎樣的一位Up主?
這又是怎樣的一個機器人?
從建模到制作,全自主設計
要做一個什么樣的機器人呢?
凌十七給出了他心目中的標準:
鋼結構,塑料外殼。
能跟隨,能跑,能裝東西,能拉著走,關鍵……還能坐。
畫好了設計圖,18歲的少年沉吟道:可行。
那就開始,第一步:建模!
大家來感受一下這個建模工作量:
拉近了看,整個機身的設計并非粗糙直白的幾何形狀,而是參考人體工學,從穩定性和實用性等方面進行了設計:
建模完成后,就迎來了下一個頭禿程度不輸建模的環節——
外殼制作。
讓模型從電腦來到現實里,凌十七選用以水洗樹脂為材料進行3D建模。
這聽起來似乎不需要過多的操作,只要坐在機器前等著收成品就好:
但實際嘗試起來,問題可就太多了:
使用水洗樹脂作為打印耗材可能會出現開裂問題
在成品外殼過薄時會出現更嚴重的變形,進而導致無法安裝
超大尺寸的零部件對于組裝精度的要求非常高
這中間沒有捷徑,只有一次次進行地嘗試、調整、再嘗試、再調整。
樣子成型了,接下來就是給零部件們上補土。
這道工序能在統一底色的同時,填補了打印表面出現的不平整。
然后就是外表制作的最后一步,刷漆:
現在,“很沒有技術含量,非常無聊且浪費時間”的外殼制作環節完成了。
再來看機器人的眼睛,凌十七所選用的二維激光雷達:
他一共使用了兩個雷達,并都根據通信規則重寫了解包算法。
好,接下來就是去制作機器人的心臟了!
凌十七選擇了單片機作為主控設備,來控制無刷電機和舵機,并進行遙控、驅動和跟隨速度方向的最終判斷:
然后將樹莓派作為跟蹤算法輸出設備,串口傳輸數據給單片機:
這里的單片機和樹莓派都由一個統一的10A降壓模塊供電。
但由于樹莓派USB可提供的電流非常小,而雷達又是直接從USB端口拉供電的,所以一開始常常會陷入無限重啟的狀態中。
因此,凌十七把雷達中的電路供電壓(VCC)單獨引到了5V,解決了這個問題。
至于完整的跟蹤功能,凌十七一共用了250行代碼來實現。
和外殼制作相比,代碼書寫稱得上是“很有技術含量,非常不無聊且花費時間”了。
畢竟,在最后列出來的已解決的問題中,程序方面的例子是最多的:
要能在硬件支持范圍之外跟蹤目標,因此限制了跟蹤角度,超出后重新尋找目標;
要防止在丟失目標時亂跑,因此就通過程序使在探測到目標距離過長時停止跟蹤;
還要能夠及時與單片機通信,防止通信過多丟失數據,以及非線性的轉向算法……
而最終,設計圖里所提到的功能,已經基本實現了。
除了開頭提到的功能外,存儲東西也完全沒問題:
站在自己這十分有說服力的雜亂地面上,凌十七這樣表示:
這是我這輩子目前開發過最難的項目。
機器人背后的故事
沒錯,從0到1打造一個機器人,對于機器人專業的學生來說也許不難,但對于高中生而言,需要自學從編程、電路到自動控制的所有技術知識。
軟件上,所有程序和軟硬件代碼都需要自行調試、優化,算法上修過的bug可以說是“不計其數”:
硬件上,在對機身進行建模時,凌十七雖然專門學習了相關的設計方法:
但自己動手做的時候,僅僅是外殼設計這個“看起來沒啥技術含量”的工作,就耗費了相當長一段時間,壞過好幾個外殼:
可想而知,除了外殼,在建模和設計上還有多少需要更換的零部件。
凌十七自己也表示,最后產出的零件垃圾甚至“能再造一臺機器人”出來:
后來好不容易做好后,機器人又損壞了一次。
2020年8月開始設計、10月制作,但在12月份進行戶外拍攝的時候,這個機器人的“頭部”意外掉了。
由于脖子連接處的舵機很不牢靠,最初只是搭在機器人身上,很容易取下來,導致雖然在家中實驗時沒出現任何問題,但在不平坦的路面上卻無法hold住,最終壞了。
了解這一情況后,凌十七改進了機器人結構,全部采用螺絲固定,就沒有再出現類似的問題。
但也正是因為這件事,項目被迫中止了一段時間,后來拆除接近1/3的機器人外殼,重新制作后,才于2021年4月左右完成。
當然,也并非只調整了外殼,這次改裝也對軟件進行了重新升級。
雷達上,加入了三四個算法,主要是為了優化通信和雷達的無效數據,還有幾個是為了排除跟蹤時可能出現的誤導、或是某些嚴重影響運行效果的情況;
驅動算法上,也經過了參數調整優化,但這一操作并不規范,基本是在試錯,如果進行更正式的項目的話,可能會算好一個正規的模型,再進行編程。
所有算法都是凌十七自行編寫的,沒有參考其他算法:
畢竟沒見過類似產品,而且在確定原理的時候,腦子里就已經想好邏輯了,所以也沒想過要找別人的代碼。
經過9個月打磨的機器人,從各方面來說都較為優秀,不過對于凌十七來說,還是有可以繼續改進的地方。
一方面,機器人并不能做出表情,所有視頻中的表情都是后期處理上去的,也就是特效制作。
凌十七表示,原本是想外包特效,結果發現外包能力不足,做出來的特效太拉垮……所以就自己學著去做了,效果確實要更好。
當然,直接顯示表情也是可以做到的,只是“目前市面上已經有很成熟的算法了”,因此他沒有考慮作為機器人的“亮點”來完成。
另一方面,從機器人本身來說,物理穩定性不好;而避障算法所采用的兩代激光雷達,也都受光照影響,效果與預期有差距,戶外的表現不夠好。
如果有時間再優化的話,凌十七打算將兩個激光雷達和攝像頭進行結合,會讓戶外跟蹤更加穩定。
至于為什么要做這個機器人?
凌十七表示,最初是想找個人幫忙拎設備(如錄視頻所用的三腳架、攝像機),后來意識到,這件事可以“不必由人來完成”。
要是能做個自動拉貨車,還能當代駕,豈不美哉。
雖然后期確實投入了巨大的精力,但從完成度來看,效果還是非常不錯的。
而機器人小D(Devil)的名字,則來源于一首名為《Devil Swing(Remix)》的歌。
也正是因為這個項目,讓凌十七決心從電子工程轉專業(此前已被佐治亞理工學院錄取),去學習AI和機器人。
△原本想要學習的專業
在接受量子位采訪中,凌十七表示,自己通過這個項目意識到,以后可能是算法的天下,所以想把重心更多地放到編程上。
“想轉專業去搞AI&機器人”
凌十七來自上海師范大學附屬中學(上師大附中),前16年也與其他中學生一樣,“基本在應對考試中度過”。
高一,凌十七通過競賽接觸到機器人,從此打開了新世界的大門。
視頻中可見,除了在“機器人綜合技能”和“電子控制項目”比賽中獲得一等獎以外,凌十七還發明了一種“激光定位特殊用途使用的遙控裝置”,并斬獲多個獎項。
凌十七表示,雖然這些比賽“含金量不高”,但成功激起了他對機器人的興趣:
當我第一次發現,我能讓自己以外的事物按照我的意志運行的時候,何其感動,何其震撼,就感覺一切從未如此充滿意義。
機器人就是照亮我人生道路的第一道光。
他于2019年開始上傳視頻,并于2020年初制作了一把小刀,帶電路、能發光的那種,播放量一下子從幾萬沖上了一百多萬:
接下來的一個視頻中,這把小刀直接進化成了能噴火、變色的光劍,播放量達到了200W+,也坐實了“手工UP主”的名聲:
在那之后,機器人小D一打造就是9個月,轉眼來到2021年。
期間,凌十七一度有過想要放棄的念頭,“感覺再搞下去自己就要不正常了”,但最終還是堅持了下來。
也正是在這個項目中,他找到了自己未來前進的方向。
對于這個機器人,不少大V激情轉發:
B站官方也熱烈鼓勵:
值得一提的是,凌十七的技能點并不僅限于機器人、導演和彈琴,據他的高中同學表示,畫畫、編曲等等技能點也已經點亮。
對于未來,凌十七表示,更有可能去創業,做產品或是搞創作。如果投身科研的話,大概率會想要研究通用人工智能(AGI)方向。
雖然這個機器人還沒有涉及AI方向的算法,不過凌十七表示,已經打算開始從CV學起,做一些相關的AI小項目,例如物體、形狀識別等算法。
他會在AI領域擦出什么樣的火花?
讓我們拭目以待。
評論