機械原理-譯製 機械篇-工業級機械臂
2026年11月6日
AI 生成·可能包含錯誤
這是一款六軸機械臂
採用閉環 NEMA17 步進電機和諧波減速器
機械臂從第二關節到末端關節長 272 毫米
距離地面 440 毫米
這個項目我有三個主要目標
高負載能力低重複誤差和極簡的設計
在極簡設計方面
我認為這已經做到極致了
這些基本上就是機械臂的所有部件包括電子元件
其中一個關鍵部件是 CGF 公司的諧波減速器
它們內置了交叉滾子軸承能夠承受各個方向的負載
所以我不需要在機械臂中加入任何額外的軸承
這是較大尺寸的版本減速比為 100 比 1
而這是較小的型號減速比為 50 比 1
我還使用了
Makerbase 的閉環步進驅動器支持 CAN 通信
所以接線非常簡單
這也有助於減少電子元件的數量
我有兩個接線端子
一個用於看通信另一個用於供電
還有一個USB轉看適配器
這樣我就可以用筆記本控制機器人
這是第一關節的結構
我使用 2020 鋁型材作為機器人的底座
然後用一個 3D 打印支架來安裝第二個電機
這是帶有鋁質臂的第二關節
接著是第三關節
前三個關節使用的是減速比為100比1的大號諧波減速器
然後從第四關節開始
我們將使用較小的諧波減速器
儘管減速比為50比1
較小的諧波減速器仍然支持反向驅動
這是六個關節組裝完畢後的機器人全貌
接線端子和USB轉接
適配器放置在背面
所有東西都會被一個3D打印外殼隱藏起來
最初我打算用這些3D打印外殼來保護諧波減速器
幸運的是 M廠提出贊助我一臺
它很容易上手
這臺機器的一個出色功能是它的激光測頭
啟動前會掃描加工區域
我還設計了這個末端執行器探頭
以便進行重複精度測量
幸運的是他們還送了我第四軸模塊
非常適合製作這類零件
在第一次嘗試中我用Fusion創建了刀具路徑
然而在Fusion中旋轉加工操作不是免費的
所以我基本是先加工一面
用第四軸翻轉180度再加工另一面
但這效果並不好
這裏我犯了一個錯誤
忘記額外使用尾架
導致毛坯兩端沒有支撐
結果毛坯在加工完成前就脫落了
第二次嘗試時,我使用了 Macricon 軟件
它不僅免費,還支持旋轉加工
我還把探頭做大了許多
這樣我就不需要切除那麼多材料
我分兩次走刀
第一次是粗加工
最後一次是精加工
這次效果好多了
因爲刀具在進行自然的旋轉加工
但我還是在設置上犯了個錯
精加工其實並沒有碰到毛坯
就像這段展示的內容
最終的零件依然非常完美
我只需要做一些輕微的打磨
在軟件方面
我使用 PyBullet 來模擬機器人
我只做運動學控制
所以沒有進行任何物理仿真
我還製作了這個自定義的 GUI
以便與 PyBullet 和機器人交互
例如,我可以通過設置笛卡爾座標
來設定一個特定的目標位置
然後Pipolite會自動計算你運動學
並將機械臂移動到該位置
我也開發了自己的逆運動學解算器
我注意到有時我的解算器比PyBullet更好
因此我在UI中添加了二選一的選項
比如我將目標設定為特定X值
YVZ座標和方向
當我運行仿真時
機器人與目標位置向量之間存在約20毫米的誤差
然而如果我運行自定義逆運動學
誤差幾乎為零
這樣我就能用自定義逆運動學算出的結果來驅動機器人
在GUI中我還可以點動控制真實的機器人或僅控制仿真
我可以通過驅動特定關節或
驅動末端執行器的坐標來實現
在關鍵針選項卡中我們可以保存關節角度並進行回放
無論是在仿真中還是在真實的機器人上都可以
我還添加了幾個選項比如循環播放關鍵針來回循環
還有一個自動同步選項程序會計算關節速度
以便所有關節同時到達每個關鍵針
正如我提到的在Python中我只做運動學控制
這就是為什麼仿真和真實機器人的速度不同步
還有一個在關鍵針之間差值的選項
使末端執行器進行直線運動
我將在視頻後面討論這個問題
最後,該選項卡的另一個功能是延遲選項
允許我在移動到下一個關鍵幀之前暫停機器人
為了測量重複精度,我創建了一個簡單的程序
首先,將末端執行器壓在稱重傳感器上
施加約 2 公斤的力
然後,末端執行器去按壓預先歸零的數顯百分表
表盤讀數為 0 毫米
這意味著重複精度在 10 微米以內
在進行負載測量之前,我做了一些粗略估計
瞭解機器人能承受多大的負載
這個計算是基於每個減速器能承受的最大平均扭矩
該數值在每個減速器的數據手冊中都有提供
然後將該值除以力臂長度,得到每個減速器的最大負載
如果取所有關節中的最小值,那就是 3.7 公斤的負載
這顯然只是一個估計,因為我沒有考慮
機器人本身的重量或所用電機的扭矩
為了實際測試,我在末端裝了這個啞鈴桿以便增加重量
從 2.75 公斤開始,我看到機器
人可以毫無困難地承受這重量
這包含了重 500 克的杆子本身的重量
我還在完全伸展
狀態下,以 45 度為
步長進行了測試
在增加一個 2.25 公斤的槓鈴片後,機器人開始感到吃力
我向第六關節發送了 90 度指令,它能順利完成
但當我向第五關節發送相同指令時
機器人無法完成
第五關節的減速比是50比1
換用更大減速比的減速器就能輕鬆解決
然而如果我再配備更大諧波減速器的下方關節測試
它能移動該重量
這裡我以30度為步長移動第二關節
回顧最初的
三個要求
我想說我已經全部滿足了
然而這臺機器人仍有一些主要限制
首先是回零問題
因為沒用微控制器
沒有添加回零傳感器的妥善方法
所以我只能靠手動點動關節將它們設置到初始位置
既然使用的是閉環驅動器一旦關節歸零這就不是大問題了
但我們仍需確保每次啟動軟件時關節處於正確位置
第二個限制可能更嚴重一些
那就是機器人直線運動的限制
這是因為直線運動需要在兩個位置之間進行插值
並向機器人高頻發送指令這裡我們可以看到末端如何走直線
所以我們向機器人關節發送了大量微小的位置調整指令
然而從筆記本通過CAN直接驅動關節
速度很慢無法超過20Hz
否則就會出現通信問題
作爲參考,在我用單片機自制的 Scara 機器人上
關節驅動頻率達 20000Hz
我也嘗試向關節發送速度指令,而不是位置指令
效果好了一些,但正如視頻中所見,仍不完美
即使在低速下,我們依然無法讓末端執行器走直線
也許這可以通過一些調試來改善
然而,我認爲根本上我們需要一個微控制器
向步進電機發送脈衝
一旦加上微控制器
我認爲它會是一臺非常出色的高性能機械臂
我計算了機器人的總成本,大約是 1800 美元
聽起來挺多的
但如果將其與其他相似尺寸的工業機器人相比
它們僅僅能負載 500 克
售價卻高達 1.7 萬美元
考慮到其實際性能
1800 美元不算貴
3D 文件連同組件清單將放在 GitHub 上
在下期視頻中,我打算通過 CNC
加工帶交叉滾子軸承的擺線減速器
希望能做出一個高性能的 DIY 減速器
本視頻由大寶貝一直驚叫,謝謝觀看,下個好視頻見

