本發(fā)明涉及機(jī)械臂控制技術(shù)領(lǐng)域,特別是涉及一種二自由度機(jī)械手臂控制方法及其裝置。
背景技術(shù):
隨著科學(xué)技術(shù)的發(fā)展,智能化技術(shù)越來越普及人們的生活,各類機(jī)器人的研究也一直非?;馃岬恼n題,采用機(jī)器人進(jìn)行作業(yè),不但可以提高效率和準(zhǔn)確率,也為企業(yè)減少了一些人力的上的開支。
針對(duì)機(jī)器人手臂的運(yùn)動(dòng)軌跡問題,控制系統(tǒng)則是其關(guān)鍵所在,而要控制機(jī)械臂的運(yùn)動(dòng)軌跡,則取決于如何選取機(jī)械手臂運(yùn)動(dòng)算法。目前的機(jī)械手臂運(yùn)動(dòng)算法內(nèi)容復(fù)雜,運(yùn)算量大。
因此,如何提供一種算法簡(jiǎn)單的二自由度機(jī)械手臂控制方法及其裝置是本領(lǐng)域技術(shù)人員目前需要解決的問題。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的目的是提供一種二自由度機(jī)械手臂控制方法及其裝置,通過將空間坐標(biāo)系內(nèi)的坐標(biāo)轉(zhuǎn)換為平面坐標(biāo)系內(nèi)的坐標(biāo)進(jìn)行計(jì)算,簡(jiǎn)化機(jī)械手臂的運(yùn)動(dòng)控制算法,減少計(jì)算量。
為解決上述技術(shù)問題,本發(fā)明提供了一種二自由度機(jī)械手臂控制方法,包括:
接收用戶輸入的、機(jī)械手臂本次移動(dòng)的目標(biāo)點(diǎn)的空間直角坐標(biāo)pn=(xn,yn,zn);
將空間直角坐標(biāo)系拆分為水平坐標(biāo)系和豎直坐標(biāo)系,依據(jù)所述空間直角坐標(biāo)計(jì)算所述目標(biāo)點(diǎn)在所述水平坐標(biāo)系內(nèi)相對(duì)于原點(diǎn)的移動(dòng)角度θn,和所述豎直坐標(biāo)系內(nèi)相對(duì)于原點(diǎn)的移動(dòng)角度αn,并進(jìn)行存儲(chǔ);
依據(jù)所述目標(biāo)點(diǎn)相對(duì)于原點(diǎn)的移動(dòng)角度,確定所述目標(biāo)點(diǎn)相對(duì)于當(dāng)前位置的移動(dòng)角度作為所述機(jī)械手臂本次移動(dòng)的電機(jī)轉(zhuǎn)動(dòng)角度;
依據(jù)所述電機(jī)轉(zhuǎn)動(dòng)角度驅(qū)動(dòng)所述機(jī)械手臂的電機(jī)轉(zhuǎn)動(dòng)至所述目標(biāo)點(diǎn)。
優(yōu)選地,所述依據(jù)所述目標(biāo)點(diǎn)相對(duì)于原點(diǎn)的移動(dòng)角度,確定所述目標(biāo)點(diǎn)相對(duì)于當(dāng)前位置的移動(dòng)角度的過程具體為:
計(jì)算所述目標(biāo)點(diǎn)相對(duì)于原點(diǎn)的移動(dòng)角度與上次移動(dòng)的目標(biāo)點(diǎn)相對(duì)于原點(diǎn)的移動(dòng)角度的差值,得到所述機(jī)械手臂本次移動(dòng)的電機(jī)轉(zhuǎn)動(dòng)角度(θ,α)=(θn-θn-1,αn-αn-1);
其中,上次移動(dòng)的目標(biāo)點(diǎn)相對(duì)于原點(diǎn)的移動(dòng)角度為(θn-1,αn-1);n為正整數(shù);n=1時(shí),對(duì)應(yīng)的上次移動(dòng)的目標(biāo)點(diǎn)為原點(diǎn)。
優(yōu)選地,所述依據(jù)所述空間直角坐標(biāo)計(jì)算所述目標(biāo)點(diǎn)在所述水平坐標(biāo)系內(nèi)相對(duì)于原點(diǎn)的移動(dòng)角度θn,和所述豎直坐標(biāo)系內(nèi)相對(duì)于原點(diǎn)的移動(dòng)角度αn的過程具體為:
依據(jù)空間變換關(guān)系式計(jì)算所述移動(dòng)角度,所述空間變換關(guān)系式具體為:
優(yōu)選地,所述目標(biāo)點(diǎn)的空間直角坐標(biāo)中的xn,yn,zn的絕對(duì)值均大于0。
為解決上述技術(shù)問題,本發(fā)明還提供了一種二自由度機(jī)械手臂控制裝置,包括:
接收模塊,用于接收用戶輸入的、機(jī)械手臂本次移動(dòng)的目標(biāo)點(diǎn)的空間直角坐標(biāo)pn=(xn,yn,zn);
第一角度計(jì)算模塊,用于將空間直角坐標(biāo)系拆分為水平坐標(biāo)系和豎直坐標(biāo)系,依據(jù)所述空間直角坐標(biāo)計(jì)算所述目標(biāo)點(diǎn)在所述水平坐標(biāo)系內(nèi)相對(duì)于原點(diǎn)的移動(dòng)角度θn,和所述豎直坐標(biāo)系內(nèi)相對(duì)于原點(diǎn)的移動(dòng)角度αn;
歷史數(shù)據(jù)庫,用于存儲(chǔ)所述目標(biāo)點(diǎn)的移動(dòng)角度;
第二角度計(jì)算模塊,用于依據(jù)所述目標(biāo)點(diǎn)相對(duì)于原點(diǎn)的移動(dòng)角度,確定所述目標(biāo)點(diǎn)相對(duì)于當(dāng)前位置的移動(dòng)角度作為所述機(jī)械手臂本次移動(dòng)的電機(jī)轉(zhuǎn)動(dòng)角度;
驅(qū)動(dòng)模塊,用于依據(jù)所述電機(jī)轉(zhuǎn)動(dòng)角度驅(qū)動(dòng)所述機(jī)械手臂的電機(jī)轉(zhuǎn)動(dòng)至所述目標(biāo)點(diǎn)。
優(yōu)選地,所述第二角度計(jì)算模塊具體用于:
計(jì)算所述目標(biāo)點(diǎn)相對(duì)于原點(diǎn)的移動(dòng)角度與上次移動(dòng)的目標(biāo)點(diǎn)相對(duì)于原點(diǎn)的移動(dòng)角度的差值,得到所述機(jī)械手臂本次移動(dòng)的電機(jī)轉(zhuǎn)動(dòng)角度(θ,α)=(θn-θn-1,αn-αn-1);其中,上次移動(dòng)的目標(biāo)點(diǎn)相對(duì)于原點(diǎn)的移動(dòng)角度為(θn-1,αn-1);n為正整數(shù);n=1時(shí),對(duì)應(yīng)的上次移動(dòng)的目標(biāo)點(diǎn)為原點(diǎn)。
優(yōu)選地,所述第一角度計(jì)算模塊具體包括:
水平計(jì)算單元,用于依據(jù)所述空間直角坐標(biāo)和水平空間變換關(guān)系式計(jì)算所述目標(biāo)點(diǎn)在所述水平坐標(biāo)系內(nèi)相對(duì)于原點(diǎn)的移動(dòng)角度θn,所述水平空間變換關(guān)系式為
豎直計(jì)算單元,用于依據(jù)所述空間直角坐標(biāo)和豎直空間變換關(guān)系式計(jì)算所述豎直坐標(biāo)系內(nèi)相對(duì)于原點(diǎn)的移動(dòng)角度αn;所述豎直空間變換關(guān)系式為
本發(fā)明提供了一種二自由度機(jī)械手臂控制方法及其裝置,將空間坐標(biāo)系拆分為水平坐標(biāo)系和豎直坐標(biāo)系后,依據(jù)用戶輸入的、機(jī)械手臂本次移動(dòng)的目標(biāo)點(diǎn)的空間直角坐標(biāo),計(jì)算本次機(jī)械手臂在水平面內(nèi)和豎直面內(nèi)移動(dòng)至目標(biāo)點(diǎn)分別需要的移動(dòng)角度,之后驅(qū)動(dòng)機(jī)械手臂的電機(jī)依據(jù)該移動(dòng)角度轉(zhuǎn)動(dòng)至該目標(biāo)點(diǎn)??梢姡景l(fā)明僅是一個(gè)二維坐標(biāo)系內(nèi)的角度坐標(biāo)計(jì)算,算法極其簡(jiǎn)單,降低了機(jī)械手臂運(yùn)動(dòng)控制過程中的計(jì)算量。
附圖說明
為了更清楚地說明本發(fā)明實(shí)施例中的技術(shù)方案,下面將對(duì)現(xiàn)有技術(shù)和實(shí)施例中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1為本發(fā)明提供的一種二自由度機(jī)械手臂控制方法的的過程的流程圖;
圖2為本發(fā)明提供的一種二自由度機(jī)械手臂控制裝置的結(jié)構(gòu)示意圖。
具體實(shí)施方式
本發(fā)明的核心是提供一種二自由度機(jī)械手臂控制方法及其裝置,通過將空間坐標(biāo)系內(nèi)的坐標(biāo)轉(zhuǎn)換為平面坐標(biāo)系內(nèi)的坐標(biāo)進(jìn)行計(jì)算,簡(jiǎn)化機(jī)械手臂的運(yùn)動(dòng)控制算法,減少計(jì)算量。
為使本發(fā)明實(shí)施例的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
本發(fā)明提供了一種二自由度機(jī)械手臂控制方法,參見圖1所示,圖1為本發(fā)明提供的一種二自由度機(jī)械手臂控制方法的的過程的流程圖;該方法包括:
步驟s1:接收用戶輸入的、機(jī)械手臂本次移動(dòng)的目標(biāo)點(diǎn)的空間直角坐標(biāo)pn=(xn,yn,zn);
步驟s2:將空間直角坐標(biāo)系拆分為水平坐標(biāo)系和豎直坐標(biāo)系,依據(jù)空間直角坐標(biāo)計(jì)算目標(biāo)點(diǎn)在水平坐標(biāo)系內(nèi)相對(duì)于原點(diǎn)的移動(dòng)角度θn,和豎直坐標(biāo)系內(nèi)相對(duì)于原點(diǎn)的移動(dòng)角度αn,并進(jìn)行存儲(chǔ);
可以理解的是,機(jī)械手臂的運(yùn)動(dòng)可以拆分為在水平方向上的左右轉(zhuǎn)動(dòng)和在豎直方向上的上下轉(zhuǎn)動(dòng),因此,分別計(jì)算機(jī)械手臂在水平坐標(biāo)系和豎直坐標(biāo)系上的移動(dòng)角度即可控制機(jī)械手臂移動(dòng)至相應(yīng)目標(biāo)點(diǎn)。
步驟s3:依據(jù)目標(biāo)點(diǎn)相對(duì)于原點(diǎn)的移動(dòng)角度,確定目標(biāo)點(diǎn)相對(duì)于當(dāng)前位置的移動(dòng)角度作為機(jī)械手臂本次移動(dòng)的電機(jī)轉(zhuǎn)動(dòng)角度;
步驟s4:依據(jù)電機(jī)轉(zhuǎn)動(dòng)角度驅(qū)動(dòng)機(jī)械手臂的電機(jī)轉(zhuǎn)動(dòng)至目標(biāo)點(diǎn)。
在一種具體實(shí)施例中,步驟s3的過程具體為:
計(jì)算目標(biāo)點(diǎn)相對(duì)于原點(diǎn)的移動(dòng)角度與上次移動(dòng)的目標(biāo)點(diǎn)相對(duì)于原點(diǎn)的移動(dòng)角度的差值,得到機(jī)械手臂本次移動(dòng)的電機(jī)轉(zhuǎn)動(dòng)角度(θ,α)=(θn-θn-1,αn-αn-1);其中,上次移動(dòng)的目標(biāo)點(diǎn)相對(duì)于原點(diǎn)的移動(dòng)角度為(θn-1,αn-1);n為正整數(shù);n=1時(shí),對(duì)應(yīng)的上次移動(dòng)的目標(biāo)點(diǎn)為原點(diǎn)。
可以理解的是,機(jī)械手臂為連續(xù)運(yùn)動(dòng)的,因此一次運(yùn)動(dòng)完成后,下次運(yùn)動(dòng)優(yōu)選是自上次運(yùn)動(dòng)到的位置作為起始,進(jìn)一步進(jìn)行運(yùn)動(dòng)的。這種情況下,本次機(jī)械手臂的移動(dòng)角度應(yīng)該是相對(duì)于上次目標(biāo)點(diǎn)的移動(dòng)角度。但是,由于相對(duì)于上次目標(biāo)點(diǎn)并不好進(jìn)行計(jì)算,因此,分別計(jì)算本次目標(biāo)點(diǎn)與上次目標(biāo)點(diǎn)相對(duì)于原點(diǎn)的移動(dòng)角度,再進(jìn)行作差,即可得到本次機(jī)械手臂的移動(dòng)角度相對(duì)于上次目標(biāo)點(diǎn)的移動(dòng)角度。例如,上次目標(biāo)點(diǎn)在水平面上相對(duì)原點(diǎn)轉(zhuǎn)動(dòng)+20°,本次目標(biāo)點(diǎn)在水平面上相對(duì)原點(diǎn)轉(zhuǎn)動(dòng)+60°,則本次機(jī)械手臂的移動(dòng)角度相對(duì)于上次目標(biāo)點(diǎn)的移動(dòng)角度為+40°。
當(dāng)然,在其他情況下,也可能出現(xiàn)機(jī)械手復(fù)位的情況,例如機(jī)械手每次動(dòng)作完成后即回到原始位置,這種情況下每次計(jì)算得到的目標(biāo)點(diǎn)相對(duì)于原點(diǎn)的移動(dòng)角度即為機(jī)械手臂移動(dòng)本次的電機(jī)轉(zhuǎn)動(dòng)角度。
需要注意的是,由于機(jī)械手臂可以在水平面旋轉(zhuǎn)180°,因此,最終得到的移動(dòng)角度可能大于90°。并且,為了保證旋轉(zhuǎn)角度的一致性,水平坐標(biāo)系和豎直坐標(biāo)系中的坐標(biāo)軸的正負(fù)方向需要是固定的,且正向旋轉(zhuǎn)時(shí)依次通過的四個(gè)象限的順序也是固定的,依據(jù)機(jī)械手臂的安裝位置與工作需求決定。
具體的,步驟s2中,依據(jù)空間直角坐標(biāo)計(jì)算目標(biāo)點(diǎn)在水平坐標(biāo)系內(nèi)相對(duì)于原點(diǎn)的移動(dòng)角度θn,和豎直坐標(biāo)系內(nèi)相對(duì)于原點(diǎn)的移動(dòng)角度αn的過程具體為:
依據(jù)空間變換關(guān)系式計(jì)算移動(dòng)角度,空間變換關(guān)系式具體為:
可以理解的是,水平坐標(biāo)系一般指的是xoy平面,豎直坐標(biāo)系一般指的是yoz平面,當(dāng)然特殊情況下,豎直坐標(biāo)系也可以指的是xoz平面。具體如何選取本發(fā)明不作限定。
作為優(yōu)選地,目標(biāo)點(diǎn)的空間直角坐標(biāo)中的xn,yn,zn的絕對(duì)值均大于0。
可以理解的是,由于機(jī)械手臂具有耦合性,機(jī)械手臂在運(yùn)動(dòng)時(shí)需要在水平方向上和豎直方向上同時(shí)發(fā)生移動(dòng),因此,xn,yn,zn的絕對(duì)值均大于0。
本發(fā)明提供了一種二自由度機(jī)械手臂控制方法,將空間坐標(biāo)系拆分為水平坐標(biāo)系和豎直坐標(biāo)系后,依據(jù)用戶輸入的、機(jī)械手臂本次移動(dòng)的目標(biāo)點(diǎn)的空間直角坐標(biāo),計(jì)算本次機(jī)械手臂在水平面內(nèi)和豎直面內(nèi)移動(dòng)至目標(biāo)點(diǎn)分別需要的移動(dòng)角度,之后驅(qū)動(dòng)機(jī)械手臂的電機(jī)依據(jù)該移動(dòng)角度轉(zhuǎn)動(dòng)至該目標(biāo)點(diǎn)??梢姡景l(fā)明僅是一個(gè)二維坐標(biāo)系內(nèi)的角度坐標(biāo)計(jì)算,算法極其簡(jiǎn)單,降低了機(jī)械手臂運(yùn)動(dòng)控制過程中的計(jì)算量。
本發(fā)明還提供了一種二自由度機(jī)械手臂控制裝置,參見圖2所示,圖2為本發(fā)明提供的一種二自由度機(jī)械手臂控制裝置的結(jié)構(gòu)示意圖。該裝置包括:
接收模塊11,用于接收用戶輸入的、機(jī)械手臂本次移動(dòng)的目標(biāo)點(diǎn)的空間直角坐標(biāo)pn=(xn,yn,zn);
第一角度計(jì)算模塊12,用于將空間直角坐標(biāo)系拆分為水平坐標(biāo)系和豎直坐標(biāo)系,依據(jù)空間直角坐標(biāo)計(jì)算目標(biāo)點(diǎn)在水平坐標(biāo)系內(nèi)相對(duì)于原點(diǎn)的移動(dòng)角度θn,和豎直坐標(biāo)系內(nèi)相對(duì)于原點(diǎn)的移動(dòng)角度αn;
歷史數(shù)據(jù)庫14,用于存儲(chǔ)目標(biāo)點(diǎn)的移動(dòng)角度;
第二角度計(jì)算模塊13,用于依據(jù)所述目標(biāo)點(diǎn)相對(duì)于原點(diǎn)的移動(dòng)角度,確定所述目標(biāo)點(diǎn)相對(duì)于當(dāng)前位置的移動(dòng)角度作為所述機(jī)械手臂本次移動(dòng)的電機(jī)轉(zhuǎn)動(dòng)角度;
驅(qū)動(dòng)模塊15,用于依據(jù)電機(jī)轉(zhuǎn)動(dòng)角度驅(qū)動(dòng)機(jī)械手臂的電機(jī)轉(zhuǎn)動(dòng)至目標(biāo)點(diǎn)。
在優(yōu)選實(shí)施例中,第二角度計(jì)算模塊13具體用于:
計(jì)算目標(biāo)點(diǎn)相對(duì)于原點(diǎn)的移動(dòng)角度與上次移動(dòng)的目標(biāo)點(diǎn)相對(duì)于原點(diǎn)的移動(dòng)角度的差值,得到機(jī)械手臂本次移動(dòng)的電機(jī)轉(zhuǎn)動(dòng)角度(θ,α)=(θn-θn-1,αn-αn-1);其中,上次移動(dòng)的目標(biāo)點(diǎn)相對(duì)于原點(diǎn)的移動(dòng)角度為(θn-1,αn-1);n為正整數(shù);n=1時(shí),對(duì)應(yīng)的上次移動(dòng)的目標(biāo)點(diǎn)為原點(diǎn);
作為優(yōu)選地,第一角度計(jì)算模塊12具體包括:
水平計(jì)算單元,用于依據(jù)空間直角坐標(biāo)和水平空間變換關(guān)系式計(jì)算目標(biāo)點(diǎn)在水平坐標(biāo)系內(nèi)相對(duì)于原點(diǎn)的移動(dòng)角度θn,水平空間變換關(guān)系式為
豎直計(jì)算單元,用于依據(jù)空間直角坐標(biāo)和豎直空間變換關(guān)系式計(jì)算豎直坐標(biāo)系內(nèi)相對(duì)于原點(diǎn)的移動(dòng)角度αn;豎直空間變換關(guān)系式為
本發(fā)明提供了一種二自由度機(jī)械手臂控制裝置,將空間坐標(biāo)系拆分為水平坐標(biāo)系和豎直坐標(biāo)系后,依據(jù)用戶輸入的、機(jī)械手臂本次移動(dòng)的目標(biāo)點(diǎn)的空間直角坐標(biāo),計(jì)算本次機(jī)械手臂在水平面內(nèi)和豎直面內(nèi)移動(dòng)至目標(biāo)點(diǎn)分別需要的移動(dòng)角度,之后驅(qū)動(dòng)機(jī)械手臂的電機(jī)依據(jù)該移動(dòng)角度轉(zhuǎn)動(dòng)至該目標(biāo)點(diǎn)??梢?,本發(fā)明僅是一個(gè)二維坐標(biāo)系內(nèi)的角度坐標(biāo)計(jì)算,算法極其簡(jiǎn)單,降低了機(jī)械手臂運(yùn)動(dòng)控制過程中的計(jì)算量。
以上的幾種具體實(shí)施方式僅是本發(fā)明的優(yōu)選實(shí)施方式,本發(fā)明不限于以上實(shí)施例。相關(guān)專業(yè)技術(shù)人員在不脫離本發(fā)明精神和構(gòu)思前提下推演出的其他改進(jìn)和變化,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
還需要說明的是,在本說明書中,術(shù)語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、物品或者設(shè)備不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、物品或者設(shè)備所固有的要素。在沒有更多限制的情況下,由語句“包括一個(gè)……”限定的要素,并不排除在包括所述要素的過程、方法、物品或者設(shè)備中還存在另外的相同要素。
對(duì)所公開的實(shí)施例的上述說明,使本領(lǐng)域?qū)I(yè)技術(shù)人員能夠?qū)崿F(xiàn)或使用本發(fā)明。對(duì)這些實(shí)施例的多種修改對(duì)本領(lǐng)域的專業(yè)技術(shù)人員來說將是顯而易見的,本文中所定義的一般原理可以在不脫離本發(fā)明的精神或范圍的情況下,在其他實(shí)施例中實(shí)現(xiàn)。因此,本發(fā)明將不會(huì)被限制于本文所示的這些實(shí)施例,而是要符合與本文所公開的原理和新穎特點(diǎn)相一致的最寬的范圍。