華為天才少年技驚B站!自製鴻蒙系統機械臂、效果太酷炫

天才少年,一人成伍。

稚暉君一更新,其他科技區UP主紛紛回到生活區。這算是年輕人對稚暉君的最高褒獎了!

國慶期間內,華為天才少年稚暉君送上一份大件:一人!一條龍!造了一隻鋼鐵俠的機械臂!

華為天才少年稚暉君更新!自製同步現實機械臂、可遠程做縫合手術

據說這是他迄今為止的「業餘項目」中最複雜的一個。連何同學都在評論區佔據沙發:我好菜。

華為天才少年稚暉君更新!自製同步現實機械臂、可遠程做縫合手術

機械臂的名字也非常有趣——叫做Dummy,不僅致敬鋼鐵俠的機械臂笨笨,還是綁定到機械臂的末端上的「引導點」,暗含稚暉君的小心思,實在是妙哇!

這次稚暉君的項目,作業系統和 AI 計算平台也分別都用上了華為鴻蒙和昇騰 Atlas 處理器,機身還是一抹靚麗的中國紅。

身在華為,心在中華,在彈幕大軍感嘆稚暉君軟硬體通吃的超強專業能力和連做四個月的高效「肝」能力的同時,還對這位天才少年的人文素養豎起大拇哥!

華為天才少年稚暉君更新!自製同步現實機械臂、可遠程做縫合手術
最終選定為中國紅

用B站「專業話術」說,這不得「一鍵三連」!正如稚暉君多次在B站動態中表示:要努力成為科技和人文交叉口最靚的仔!

主業華為AI演算法工程師,副業科技區UP主,這屆的部落客不簡單

路人粉應該知道,他身上的標籤,最顯眼的「華為天才少年」。但是關注過他的人卻知道,他的標籤,是對科技的極致熱愛。

稚暉君應該是每一個電子愛好者所嚮往但是又渴望而不可及的大佬。但他表示自己不算CS科班,本科是生物醫學工程專業,研究生是資訊與通訊系統專業,18年畢業於電子科技大學,之後進入OPPO演算法崗工作,目前已經是華為AI演算法工程師。

除此之外,他還是一位技術追求極致的UP主,從一個愛好動手的大學生分享各種硬體DIY影片,到分享B站最強小電視、FOC矢量控制器、PocketLCD,自動行駛自行車,在斜杠的路上受到眾多網友追捧。

用稚暉君自己的話來說,上班做AI演算法研究,晶片使能軟體棧開發,DSA架構下稀疏矩陣加速,視覺庫異構加速之類的,但是下班做的東西對大家來說更好玩。在這款機械臂的動態中,整整兩個月,他與粉絲一同分享機械臂的長成記錄:

8月6號預告「下一個項目是機械臂」

10號的與眾多網友報備「已出設計圖」

在這之後的一個月中,順便吐槽一下加工師傅拖慢進度,等待的時間已經做出小模組

9月17號終於收到加工件,19號完成機械臂的整套閉環驅動

10月6號全部完工,7號出影片

網友驚嘆稚暉君的恐怖之處在於:一個人完成了所有細節,建模,演算法,電路設計,驅動設計,APP開發,單拎出來足夠做個畢設了!

華為天才少年稚暉君更新!自製同步現實機械臂、可遠程做縫合手術

其知識覆蓋面並非靠普通的學業方式實現,被華為以天才計劃納入麾下,想必就是看中他這一點。在8月2日,任正非在中央研究院創新先鋒座談會上與部分科學家、專家、實習生的講話中說到:

對於2012實驗室(華為的總研究組織),公司從未給過你們過多約束。比如,有人研究自行車的自動駕駛,公司沒有約束過他。我們要生產自行車嗎?沒有啊。這是他掌握的一把「手術刀」,或許以後會發揮什麼作用,產生什麼巨大的商業價值。

這個項目看上去是四個月的工作,實際上有之前無刷驅動、小電視等項目的大量沉澱。表面上看起來是項目是電子和機械,背後全是演算法和數學。

在項目背後,稚暉君自己表示,堅持每個項目開源,與大家一同進步。能夠通過一個項目影片帶大家概覽某一個方向的技術,有了對該領域的sense和興趣之後,再激勵大家去自主學習,這相比於獨樂樂可能是更有意義的事情。

如何做出一隻「緊湊」的機械臂

如何自己造一台很酷的機械臂呢?如何在成本有限地情況下造出市面上精度最高、性能最強、體積最小的機械臂?

首先要解決三個問題:機械結構設計、電子系統、軟體系統。

一、機械結構設計結構設計中首先要解決的是精度問題,在機器人的硬體設計中,常說的機器人三大核心部件是電機、減速器、驅動器。真正的工業機器人中使用的電機一般是無刷伺服電機。

無刷伺服電機不論是在動態響應,力矩保持,精度各方面都非常優秀。缺點是驅動系統比較複雜,不適合用在本次這樣極其緊湊的結構中。於是稚暉君的方案中,決定使用步行電機。這類電機的精度最高,但缺點在於高轉速下力矩比較小。

所以為了解決力矩的問題,一般會給電機配備減速器。減速器就是類似汽車的變速箱,是用於降低輸出的轉速,而成倍增加輸出力矩。

目前市面上的小型機械臂使用的都是行星減速器,而在本次項目中,使用了工業機械臂裡面最常用的諧波減速。在柔性輪和波發生器的相互作用下,諧波減速器具有零背隙、高減速比,超小體積等優點,非常適用本項目。

華為天才少年稚暉君更新!自製同步現實機械臂、可遠程做縫合手術

華為天才少年稚暉君更新!自製同步現實機械臂、可遠程做縫合手術

諧波減速器的運行原理在電機和減速器確定後,最後是驅動器。同樣為了保證驅動精度以及體積的最小化,稚暉君設計了一個步行電機的一體閉環驅動。在「第151個設計稿」上,整隻機械臂一共使用了6個電機,6個諧波減速器。

同時為了保證機身強度和精度,機身的主體採用鋁CNC加工,而裝飾的組件則使用3D列印製作。所有的控制電路都集成在本體上且充分考慮美觀。

二、電子系統整套設備的電路設計相當複雜,涉及了電源模組、電機驅動、計算模組、通訊系統等等。

實際上這台機械臂上光各種型號的MCU就有12個,而且為了使後續的擴展性足夠強,且交互方面能夠做一些很有意思的創新,在機體上搭載了Wifi,藍牙,2.4G等很多種無線能力。電路方面最主要的是主控制器和電機伺服驅動器,其中後者為了電機一體式的驅動,支援CAN匯流排和功率機聯,所以整套系統將所有的6個電機以及末端執行器連接起來,僅需要4根線。

華為天才少年稚暉君更新!自製同步現實機械臂、可遠程做縫合手術

這款驅動器的性能可以說非常暴力,方案使用的是FOC加斬波恆流。由於添加了高精度的磁鐵編碼進行閉環控制,所以不會存在傳統步金電機丟步的風險。

同時在最高轉速和效率方面,也不是3D印表機上那種驅動器能比擬的。如果說驅動器是心臟的話,那控制器就是機械臂的小腦了。在這個項目中,稚暉君使用了之前設計的機器人開發框架REF、基於Corte-M4內核的MCU。提到這,稚暉君還是考量到後期的性能擴展性,憑藉M4自帶FPU和DSP的內核,為後面的控制演算法中實現涉及到的大量複雜計算,展現出明顯的效率提升。

華為天才少年稚暉君更新!自製同步現實機械臂、可遠程做縫合手術

另外主控制器採用冗餘設計。除了主控制器REF外,還板載了一個ESP32作為協處理器。一方面作為STM32的安全備份,另一方面可以用於提供wifi藍牙等無線能力。

總之為了解決最開始提到的精度和性能問題,解決方案就是:第一,使用步進電機加一體閉環驅動,第二,使用0背隙的諧波減速器第三,在後續的演算法實踐中進行高精度補償。

三、軟體設計對於機械臂來說,最核心的軟體內容在於運動學的正逆解的演算法以及動力學模型的實現。

前者告訴我們機械臂的每個關節角度和最終末端的位置之間的正逆解求解關係,後者則用於實現碰撞檢測,柔性控制,力學回饋等功能。其中涉及到大量非常複雜的矩陣和偏微分計算,也是在項目實現中花費時間最多的部分。

而且可以選擇多種坐標方式,比如關節坐標、世界坐標系、工具坐標系等。所有的姿態結算都是在機械臂內完成。第二種交互方式是使用命令行,通過前期設計的REF自帶的RPC框架,可以實現更大自由度的機械臂控制和各種參數設置。

華為天才少年稚暉君更新!自製同步現實機械臂、可遠程做縫合手術

但是前面兩種方式偏極客,對於普通人來說,圖形化才是更「陽間」的交互方式。於是也實現了對應的圖形化上位機。在上位機中可以進行傻瓜式的拖拽交互,而且是雙向交互。

也就是既可以把動作下發給機械臂,也可以在軟體中實時同步機械臂的姿態。至此,這款機械臂才基本可以滿足絕大多數的使用需求。這就完了嗎?相比於上述方案,更優雅的交互方式是什麼呢?當然是軟體都不用打開,所見即所得–示教系統!

華為天才少年稚暉君更新!自製同步現實機械臂、可遠程做縫合手術
手動示教過程

華為天才少年稚暉君更新!自製同步現實機械臂、可遠程做縫合手術
手動示教效果圖

回到硬體設計階段,如果合理地設置減速器的減速比,這台機械臂就可以在保持力矩和精度的同時進行反驅,所以獲得了一個手動協作示教的功能。只需要手動教它一遍運動的流程,它就可以自動學習重複。手動示教,其實是很多協作機器人都有的功能,並不算炫酷。

值得一提的是開啟示教功能的方法,整個機械臂的機身,除了一個電源按鈕,沒有別的按鍵,那麼如何進行各種功能的切換呢?一方面是通過動力學模型進行自動檢測,另外可以通過示教器開啟。

在方案中,稚暉君設計了一個無線智慧小終端,也是這台機械臂的伴侶,它可以通過低功耗藍牙和機械臂進行無感連接,連接之後可以實時顯示機械臂的各種狀態資訊,以及切換各種功能,比如進入示教模式。

華為天才少年稚暉君更新!自製同步現實機械臂、可遠程做縫合手術

還有別的交互方式嗎?在新方案中,是不是可以結合一些比較前沿的技術,比如AR增強現實技術,在上位機中無法展示真實的環境,實現指哪打哪的效果?

華為天才少年稚暉君更新!自製同步現實機械臂、可遠程做縫合手術
AR環境中的機械臂效果

當然,只要方案可行,稚暉君就能做出來!但此時,生物學本行的稚暉君想到,機械臂和人類手臂有什麼不同?人類使用機械臂最符合直覺的方式是什麼?能不能設計一套系統,把人手臂的動作直接同步到機械臂上面?

如何做出一隻「優雅」的機械臂?

同步現實!在終極方案中,稚暉君設計了一套裝置,由雙目相機、AHRS系統、AI算力平台、力感測器和力回饋裝置以及通訊模組組成。

華為天才少年稚暉君更新!自製同步現實機械臂、可遠程做縫合手術

為了實現機械臂和人手臂動作同步,首先需要獲取準確的手部位置和旋轉姿態,而這兩點分別由雙目相機進行目標識別、跟蹤定位,以及AHRS系統進行姿態解算來實現。

其中涉及到的AI演算法需要高效的計算平台來承載,用是華為昇騰的Atlas邊緣計算平台。實時位姿勢資訊經過複雜的坐標換算,以無線的方式發送給機械臂,並由機械臂響應執行,這樣的交互極其絲滑。

華為天才少年稚暉君更新!自製同步現實機械臂、可遠程做縫合手術

但機械臂的實用性並不體現在動一下而已, 通過在機械臂末端更換不同的效應器,來實現不同的功能,完成不同任務,才是有價值的地方。

比如說安裝雷射器可以三維雕刻、安裝畫筆可以書畫、安裝小型的主軸作為6軸的雕刻機,又或者最常見的,安裝夾爪完成各種通用操作。

在末端,稚暉君添加了從ps5手把拆來的帶力回饋的微型夾爪,可以時刻得到夾爪正在抓取東西的力度。結合前面說的空間定位系統,又設計了一個手持控制器,包括AHRS裝置。而末端有一個紅外的LED,還可以用於雙目相機進行輔助識別。

整個鏈條打通後的效果是,我們不僅可以把動作實時同步到機械臂,還能在控制器這邊實時感受到機械臂末端抓取東西的質感,這才是終極的交互形態。

華為天才少年稚暉君更新!自製同步現實機械臂、可遠程做縫合手術

華為天才少年稚暉君更新!自製同步現實機械臂、可遠程做縫合手術

機械臂縫合葡萄皮談到如何應用,其實並不遙遠。通過機械臂執行動作,可以達到很多人手無法達到的效果,比如可以進行軟體去抖、運動範圍的重映射、力矩強增強等,更重要的是遠程手術,也不再是難題。

華為天才少年稚暉君更新!自製同步現實機械臂、可遠程做縫合手術
廁所里遠程手術