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

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