經(jīng)過(guò)一周的研究,對(duì)六自由度機(jī)械臂運(yùn)動(dòng)進(jìn)行了研究,利用高中幾何知識(shí)進(jìn)行了運(yùn)動(dòng)控制策略的設(shè)計(jì),無(wú)償貢獻(xiàn)出源碼,可以為入門(mén)的小伙伴提供一定的借鑒。
1、機(jī)械臂物理參數(shù)的介紹
買(mǎi)了一個(gè)六軸機(jī)械臂,作為研究對(duì)象,如果是其它機(jī)械臂,可以根據(jù)機(jī)械臂參數(shù)對(duì)代碼進(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ī)械臂通過(guò)6個(gè)電機(jī)的旋轉(zhuǎn)運(yùn)動(dòng),實(shí)現(xiàn)了一系列復(fù)雜的動(dòng)作。
注意,由于機(jī)械結(jié)構(gòu)和設(shè)計(jì)的原因,有的電機(jī)不能進(jìn)行-180°至180°的全向轉(zhuǎn)動(dòng),會(huì)有一個(gè)轉(zhuǎn)動(dòng)的范圍(見(jiàn)上表),這部分沒(méi)有在python中實(shí)現(xiàn)。
2、機(jī)械臂運(yùn)動(dòng)控制原理
機(jī)械臂運(yùn)動(dòng)控制要解決的核心問(wèn)題是,知道物體的位置(中心點(diǎn)坐標(biāo))和主方向(物體的朝向),程序自動(dòng)計(jì)算出機(jī)械臂的各關(guān)節(jié)角度位置,將夾具準(zhǔn)確送到抓取物體的部位,并對(duì)準(zhǔn)抓取位置。
2.1機(jī)械臂運(yùn)動(dòng)的幾何簡(jiǎn)化
總體思路是將機(jī)械臂的三維復(fù)雜運(yùn)動(dòng)簡(jiǎn)化為兩個(gè)平面的運(yùn)動(dòng),即“俯視平面”,和“垂直平面(本文叫R平面)”的組合運(yùn)動(dòng)。如下兩個(gè)圖:
2.2機(jī)械臂抓手即后面末關(guān)節(jié)的處理
普通的機(jī)械臂的控制以上就可以,由于我手頭這個(gè)大象機(jī)械臂比較特殊,有很多90度彎頭,而且抓手安裝后,他的落點(diǎn)與上面簡(jiǎ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)行,本站源碼鏈接:對(duì)六自由度機(jī)械臂的運(yùn)動(dòng)控制及python實(shí)現(xiàn)(源碼)
或關(guān)注文末公眾號(hào),免費(fèi)獲取
按鍵盤(pán)"O"鍵,進(jìn)入自動(dòng)鼠標(biāo)點(diǎn)擊右側(cè)圖機(jī)械臂工作半徑范圍的地方,自動(dòng)計(jì)算各關(guān)節(jié)的旋轉(zhuǎn)坐標(biāo)。
再按鍵盤(pán)"O"鍵,退出鼠標(biāo)點(diǎn)擊計(jì)算模式,改用監(jiān)盤(pán)手動(dòng)操作模式,按“[”或 “]”,是J1關(guān)節(jié)旋轉(zhuǎn),按“w"是擴(kuò)大作業(yè)半徑,按"s"是縮小作業(yè)半徑。
運(yùn)行效果如下:
以上是幾何實(shí)現(xiàn)。
六自由度機(jī)械臂的運(yùn)動(dòng)控制及python實(shí)現(xiàn)
www.tuo13886.net.cn/hangye/UploadFiles_3492/202402/2024021416105679.zip