經過一周的研究,對六自由度機械臂運動進行了研究,利用高中幾何知識進行了運動控制策略的設計,無償貢獻出源碼,可以為入門的小伙伴提供一定的借鑒。
1、機械臂物理參數的介紹
買了一個六軸機械臂,作為研究對象,如果是其它機械臂,可以根據機械臂參數對代碼進行修改。機械臂參數如下圖所示:
1.1 部件與尺寸
機械臂如下部件組成,描述如下表:

1.2坐標系與工作空間
機械臂坐標系為數學直角正交坐標系,每個電機繞著旋轉軸順時針、逆時針旋轉(正負已經標明),方向如圖1所示,機械臂通過6個電機的旋轉運動,實現了一系列復雜的動作。
注意,由于機械結構和設計的原因,有的電機不能進行-180°至180°的全向轉動,會有一個轉動的范圍(見上表),這部分沒有在python中實現。
2、機械臂運動控制原理
機械臂運動控制要解決的核心問題是,知道物體的位置(中心點坐標)和主方向(物體的朝向),程序自動計算出機械臂的各關節角度位置,將夾具準確送到抓取物體的部位,并對準抓取位置。
2.1機械臂運動的幾何簡化
總體思路是將機械臂的三維復雜運動簡化為兩個平面的運動,即“俯視平面”,和“垂直平面(本文叫R平面)”的組合運動。如下兩個圖:
2.2機械臂抓手即后面末關節的處理
普通的機械臂的控制以上就可以,由于我手頭這個大象機械臂比較特殊,有很多90度彎頭,而且抓手安裝后,他的落點與上面簡化模型就出現了偏差,因此,還需要根據這個特點,根據實際的物體坐標和主方向,計算出上節的理想抓手坐標點(x,y),然后就能求出全部關節的角度了。
3、python源碼
以下是源代碼,可以直接運行,本站源碼鏈接:對六自由度機械臂的運動控制及python實現(源碼)
或關注文末公眾號,免費獲取
按鍵盤"O"鍵,進入自動鼠標點擊右側圖機械臂工作半徑范圍的地方,自動計算各關節的旋轉坐標。
再按鍵盤"O"鍵,退出鼠標點擊計算模式,改用監盤手動操作模式,按“[”或 “]”,是J1關節旋轉,按“w"是擴大作業半徑,按"s"是縮小作業半徑。
運行效果如下:
以上是幾何實現。
www.zhimadaxue.com/hangye/UploadFiles_3492/202402/2024021416105679.zip