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