機器人一直是稚暉君很感興趣的一個方向,而在工業(yè)機器人中他認(rèn)為最實用的非機械臂莫屬。正巧,半年前稚暉君偶然淘到了一臺二手機械臂,這讓他有些激動。然而,喜悅之情還沒持續(xù)多久,稚暉君就有些不開心了:在他花了一些時間將這臺機械臂研究透徹,并自己開發(fā)了一套 SDK 后,感到了一點不妙:“這個手子不太行啊”。
稚暉君表示,目前市面上的機械臂都不夠酷,因此決定要自己造一臺很酷的機械臂,并將其取名為 Dummy(取自鋼鐵俠中一只名為 Dummy 的機械臂)。為此他總結(jié)了一份架構(gòu)設(shè)計圖(由于該圖較長,視頻中為滾動呈現(xiàn),因此本文僅截取部分):
硬件準(zhǔn)備
既然是要設(shè)計一臺機械臂,那就需要從硬件開始準(zhǔn)備,畢竟無論軟件算法再重要,也需要一個優(yōu)質(zhì)的載體才能完美呈現(xiàn)。
驅(qū)動方案
硬件方面,首先需要確定的就是驅(qū)動方案,其中包括人們常說機器人的三大核心部件——電機、減速器和驅(qū)動器。
一般真正的工業(yè)機器人使用的電機都是無刷伺服電機,其性能各方面都非常優(yōu)秀,只是它的驅(qū)動系統(tǒng)較為復(fù)雜,并不適用于本次機械臂極其緊湊的結(jié)構(gòu)當(dāng)中。相比之下,稚暉君選擇了精度最高的步行電機,但它在高轉(zhuǎn)速下力矩較小的缺點需要克服。
為此,稚暉君選擇使用工業(yè)機械臂里面最常用的諧波減速以解決步行電機的力矩問題:其零背隙、高減速比、超小體積等優(yōu)點簡直是為這個項目量身打造。
電機和減速器確定后,驅(qū)動器方面稚暉君設(shè)計了一個步進電機的一體閉環(huán)驅(qū)動,以此保證驅(qū)動精度和體積最小化。
結(jié)構(gòu)設(shè)計
驅(qū)動方案確定之后,緊接著就是結(jié)構(gòu)設(shè)計,以下為設(shè)計圖最終版本:
大家有沒有注意到這張圖的一個亮點?
沒錯,這個最終版本是第 151 版,在此之前還有 150 個版本稿,稚暉君都直呼:“這次的作品是我至今為止畫過最復(fù)雜的結(jié)構(gòu)設(shè)計了?!?/p>
從圖中可以看到,這款機械臂一共使用了 6 個電機和 6 個諧波減速器,機身主體采用鋁 CNC 加工,裝飾組件則由 3D 打印制作,為了美觀,控制電路上也都集成在本體上。
稚暉君還提到,之所以這個機械臂會設(shè)計成紅色,并不是為了致敬鋼鐵俠,而是因為“如果野生鋼鐵俠的機器人有顏色的話,那一定是中國紅”,稚暉君自稱為“野生鋼鐵俠”。
整套機械臂的電路設(shè)計也非常復(fù)雜,其中涉及到了電源模塊、電機驅(qū)動、計算模塊、通信系統(tǒng)等很多方面,光各種型號的 MCU 就用了 12 個。此外,為了后續(xù)的擴展性夠強,能在交互方面做一些獨特創(chuàng)新,稚暉君在機體上還搭載了 WiFi、藍牙、2.4G 等多種無線能力。
當(dāng)然,這都是次要的,在電路方面最主要的還是主控制器和電機伺服驅(qū)動器。
先說電機伺服驅(qū)動器吧,稚暉君將其設(shè)計為電機一體式的驅(qū)動,支持 CAN 總線和功率機聯(lián),因此整套系統(tǒng)下來,僅需 4 根線即可將 6 個電機以及末端執(zhí)行器全部連接起來。不僅如此,這款驅(qū)動器的性能也非常優(yōu)秀,使用 FOC 加斬波恒流,并且添加了高精度的磁編碼進行閉環(huán)控制,因此避免了像傳統(tǒng)步進電機那樣丟步的可能,在最高轉(zhuǎn)速和效率方面也表現(xiàn)不俗。
“如果說驅(qū)動器是心臟的話,那控制器就是機械臂的小腦了?!笨刂破鞣矫?,稚暉君采用了他此前開發(fā)的機器人開發(fā)框架 REF,基于 Cortex-M4 內(nèi)核的 MCU。稚暉君解釋道,這是因為 M4 內(nèi)核自帶 FPU 和 DSP,可大幅提升此后控制算法中涉及到的大量復(fù)雜計算的效率。另外,主控制器采用冗余設(shè)計,除了主控制器 REF 外,還搭載了一個 ESP32 作為協(xié)處理器,用作 STM32 的安全備份并提供 WiFi、 藍牙等無線能力。
總體而言,稚暉君為解決精度和性能問題,共進行了三個步驟:
第一、使用步進電機加一體閉環(huán)驅(qū)動;
第二、使用 0 背隙的諧波減速器;
第三、在后續(xù)的算法實踐中進行高精度補償。
軟件走起
硬件具備了,但這只是開始,更為核心的還是軟件算法部分。稚暉君指出,對于機械臂來說,最核心的軟件內(nèi)容在于運動學(xué)正逆解的算法以及動力學(xué)模型的實現(xiàn)。
運動學(xué)正逆解算法可以得知機械臂每個關(guān)節(jié)角度和最終末端位置之間的正逆解求解關(guān)系,而動力學(xué)模型則用于實現(xiàn)碰撞檢測、柔性控制、力學(xué)反饋等多種功能,具體會涉及到大量十分復(fù)雜的矩陣和偏微分計算,這一點也是稚暉君在項目實現(xiàn)中花費時間最多的部分:“請大家記住,這些項目表面上看起來是電子和機械,其實背后全是算法和數(shù)學(xué)?!?/p>
除了核心算法外,軟件部分還包括命令行和圖形化的上位機、手機端的 APP 以及無線示教器固件等。另外,可能還有人注意到了機械臂底座上有一個又大又圓的燈環(huán):
看起來是不是很像......沒錯,就是鴻蒙的 Logo,這臺機械臂主控制器里運行的是 LiteOS 內(nèi)核的鴻蒙系統(tǒng)。
交互方式
軟硬件兼?zhèn)洌敲唇酉聛砭褪俏覀冏钕猜剺芬姷难菔经h(huán)節(jié)啦!在這個部分,稚暉君展示了很多常規(guī)和非常規(guī)的交互方式,一句話總結(jié)就是:你想要的交互方式,這里都有!
利用串口
這是一種最簡單的交互方式,機械臂通過 USB 連上電腦會出現(xiàn)一個串口號,使用者能很方便地用串口命令來控制機械臂,還可以選擇多種坐標(biāo)方式,例如關(guān)節(jié)坐標(biāo)系、世界坐標(biāo)系、工具坐標(biāo)系等,而所有的姿態(tài)結(jié)算均在機械臂內(nèi)部完成。
使用命令行
通過稚暉君設(shè)計的 REF 自帶的 RPC 框架,可實現(xiàn)更大自由度的機械臂控制和各種參數(shù)設(shè)置。
圖形化上位機
以上兩種方式對于技術(shù)人沒啥問題,但對于普通人來說就有些“陰間”了。因此稚暉君還實現(xiàn)了對應(yīng)的圖形化上位機,可以在上位機中進行“傻瓜式”的拖拽交互。
同時,這種交互還是雙向的,即不僅可以把動作下發(fā)給機械臂,還可以在軟件中實時同步機械臂的姿態(tài):
手動協(xié)作示教
理論上來說,以上三種交互方式已經(jīng)可以滿足絕大多數(shù)的使用需求了,但精益求精的稚暉君怎會止步于此:“更優(yōu)雅的交互方式是什么?當(dāng)然是連軟件都不用打開,所見即所得?!?/p>
基于此,可在硬件設(shè)計階段通過合理設(shè)置減速器的減速比,使得機械臂可以在保持力矩和精度的同時進行反驅(qū),以此獲得手動協(xié)作示教的功能,即只需手動教它一遍運動流程,它就可以自動學(xué)習(xí)重復(fù):
但很多協(xié)作機器都有手動示教功能,所以稚暉君覺得這并不算炫酷,因此他設(shè)計了一個開啟示教功能的特別方法:一個無線智能小終端。
這個無線示教器名為 Peak,其功能非常多,可通過低功耗藍牙和機械臂進行無感連接以實時顯示機械臂的各種狀態(tài)信息,還可以切換各種功能,其中就包括進入示教模式。
AR
除此之外,稚暉君還利用了較為前沿的 AR 技術(shù)作為交互方式。畢竟上位機無法展示真實環(huán)境,手動示教也比較累,而結(jié)合增強現(xiàn)實技術(shù)則可以真正實現(xiàn)“指哪打哪”的效果。
終極交互形態(tài):像自己的手臂一樣
相信在許多人看來,以上這些交互方式已經(jīng)足夠優(yōu)秀了,但對稚暉君來說卻“還沒有到理想狀態(tài)”、“這一切都還不夠自然和優(yōu)雅”。為了追求極致的交互狀態(tài),稚暉君思考了很久,最終想到了人類使用機械臂最符合直覺的方式:要跟使用自己的手臂一樣。
出于這種想法,稚暉君設(shè)計了一套由雙目相機、AHRS 系統(tǒng)、AI 算力平臺、力傳感和力反饋裝置以及通信模組組成的裝置,以此實現(xiàn)將人類手臂的動作直接同步到機械臂上,具體原理如下:
首先由雙目相機進行目標(biāo)識別和跟蹤定位以及AHRS 系統(tǒng)進行姿態(tài)解算來獲取準(zhǔn)確的手部位置和旋轉(zhuǎn)姿態(tài)(由于此過程涉及到的 AI 算法需要高效計算平臺來承載,因此稚暉君選擇了華為昇騰的 Atlas 邊緣計算平臺),然后實時的位姿信息會經(jīng)過復(fù)雜的坐標(biāo)換算通過無線的方式發(fā)送給機械臂,機械臂收到之后便能響應(yīng)執(zhí)行。
不僅如此,考慮到機械臂的實用性價值,稚暉君還為機械臂設(shè)計了一個帶力反饋的微型夾爪,也就是說,使用者可隨時得知夾爪正在抓取東西的力度。
同時,結(jié)合空間定位系統(tǒng),他還設(shè)計了一個手持控制器,集成了 AHRS 裝置、紅外 LED 以及 PS5 手柄中號稱黑科技的扳機(其中安置了一個力反饋馬達,可實現(xiàn)對于各種物理效果的真實模擬)。
整套設(shè)備的最終效果堪稱終極交互形態(tài):使用者不僅可以把動作實時同步到機械臂,而且還可以在控制器這邊實時感受到機械臂末端抓取東西的質(zhì)感。
為了展現(xiàn)這個效果有多驚人,稚暉君用機械臂給葡萄做了一個縫合手術(shù):
自然,這套動作讓人們親手完成也可以,不就是縫個葡萄,但你可以人在廁所縫著客廳的葡萄嗎?沒錯,這臺機械臂可以實現(xiàn)遠程操作,除此之外,他還可以進行軟件去抖、運動范圍的重映射、力矩強增強等多種人手無法達到的效果。
審核編輯:劉清
-
機器人
+關(guān)注
關(guān)注
210文章
27838瀏覽量
204575 -
STM32
+關(guān)注
關(guān)注
2257文章
10828瀏覽量
352444 -
機械臂
+關(guān)注
關(guān)注
12文章
502瀏覽量
24292 -
ESP32
+關(guān)注
關(guān)注
17文章
936瀏覽量
16659
原文標(biāo)題:基于STM32、ESP32,鋼鐵俠打造機械臂
文章出處:【微信號:c-stm32,微信公眾號:STM32嵌入式開發(fā)】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論