本發(fā)明屬于計(jì)算機(jī)技術(shù)領(lǐng)域,尤其涉及一種機(jī)械臂的操作方法及裝置。
背景技術(shù):
隨著計(jì)算機(jī)技術(shù)和自動(dòng)化技術(shù)的發(fā)展,機(jī)械臂在人們的生產(chǎn)和生活中起到越來(lái)越重要的作用,機(jī)械臂的應(yīng)用也逐漸從汽車工業(yè)、模具制造等相關(guān)產(chǎn)業(yè),向農(nóng)業(yè)、醫(yī)療以及服務(wù)行業(yè)發(fā)展。
目前,人們可以通過(guò)按鍵、遙感手柄以及力反饋手柄等操作方式操作機(jī)械臂,由于人們的操作速度會(huì)影響機(jī)械臂的運(yùn)動(dòng)或抓取效果,所以剛接觸機(jī)械臂操作的用戶需要花上一段不短時(shí)間去適應(yīng)機(jī)械臂的操作,此外機(jī)械臂操作的安全性和效率的兼容程度也有待提高。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的目的在于提供一種機(jī)械臂的操作方法及裝置,旨在解決在現(xiàn)有技術(shù)中機(jī)械臂操作平穩(wěn)度不足,不便于用戶操作且安全性不足的問(wèn)題。
一方面,本發(fā)明提供了一種機(jī)械臂的操作方法,所述方法包括下述步驟:
接收用戶通過(guò)預(yù)先連接的操作端發(fā)送的操作指令,對(duì)所述操作指令進(jìn)行非線性處理和信號(hào)轉(zhuǎn)換,獲得用于調(diào)整機(jī)械臂末端位姿的速度信號(hào);
根據(jù)所述速度信號(hào)和所述機(jī)械臂當(dāng)前的末端位姿,生成期望的末端位姿,判斷所述期望的末端位姿是否位于預(yù)設(shè)工作范圍內(nèi);
當(dāng)所述期望的末端位姿位于所述工作范圍內(nèi)時(shí),通過(guò)預(yù)設(shè)的逆運(yùn)動(dòng)學(xué)模型求解所述期望的末端位姿下所述機(jī)械臂所有關(guān)節(jié)的目標(biāo)角度,檢測(cè)所有目標(biāo)角度是否滿足預(yù)設(shè)的關(guān)節(jié)空間限制;
當(dāng)所述所有目標(biāo)角度都滿足所述關(guān)節(jié)空間限制時(shí),通過(guò)預(yù)設(shè)的正運(yùn)動(dòng)學(xué)模型求解在所述目標(biāo)角度下所述所有關(guān)節(jié)在預(yù)設(shè)笛卡爾空間的位置,檢測(cè)所述所有關(guān)節(jié)的位置是否滿足預(yù)設(shè)的笛卡爾空間限制;
當(dāng)所述所有關(guān)節(jié)的位置都滿足所述笛卡爾空間限制時(shí),將所述期望的末端位姿發(fā)送給所述機(jī)械臂。
另一方面,本發(fā)明提供了一種機(jī)械臂的操作裝置,所述裝置包括:
信號(hào)處理模塊,接收用戶通過(guò)預(yù)先連接的操作端發(fā)送的操作指令,對(duì)所述操作指令進(jìn)行非線性處理和信號(hào)轉(zhuǎn)換,獲得用于調(diào)整機(jī)械臂末端位姿的速度信號(hào);
位姿判斷模塊,用于根據(jù)所述速度信號(hào)和所述機(jī)械臂當(dāng)前的末端位姿,生成期望的末端位姿,判斷所述期望的末端位姿是否位于預(yù)設(shè)工作范圍內(nèi);
關(guān)節(jié)限制檢測(cè)模塊,用于當(dāng)所述期望的末端位姿位于所述工作范圍內(nèi)時(shí),通過(guò)預(yù)設(shè)的逆運(yùn)動(dòng)學(xué)模型求解所述期望的末端位姿下所述機(jī)械臂所有關(guān)節(jié)的目標(biāo)角度,檢測(cè)所有目標(biāo)角度是否滿足預(yù)設(shè)的關(guān)節(jié)空間限制;
空間限制檢測(cè)模塊,用于當(dāng)所述所有目標(biāo)角度都滿足所述關(guān)節(jié)空間限制時(shí),通過(guò)預(yù)設(shè)的正運(yùn)動(dòng)學(xué)模型求解在所述目標(biāo)角度下所述所有關(guān)節(jié)在預(yù)設(shè)笛卡爾空間的位置,檢測(cè)所述所有關(guān)節(jié)的位置是否滿足預(yù)設(shè)的笛卡爾空間限制;以及
機(jī)械臂操作模塊,用于當(dāng)所述所有關(guān)節(jié)的位置都滿足所述笛卡爾空間限制時(shí),將所述期望的末端位姿發(fā)送給所述機(jī)械臂。
本發(fā)明在接收到用戶通過(guò)預(yù)先連接的操作端發(fā)送的操作指令時(shí),通過(guò)非線性處理和信號(hào)轉(zhuǎn)換,將該操作指令轉(zhuǎn)換為速度信號(hào),通過(guò)該速度信號(hào)和機(jī)械臂當(dāng)前的末端位姿,生成期望的末端位姿,在確定該末端位姿位于預(yù)設(shè)的工作范圍內(nèi)后,通過(guò)逆運(yùn)動(dòng)學(xué)模型求解在期望的末端位姿下機(jī)械臂所有關(guān)節(jié)的目標(biāo)角度,檢測(cè)這些目標(biāo)角度是否都滿足關(guān)節(jié)空間限制,當(dāng)滿足時(shí),再通過(guò)正運(yùn)動(dòng)學(xué)模型求解在這些目標(biāo)角度下機(jī)械臂所有關(guān)節(jié)在笛卡爾空間的位置,檢測(cè)這些位置是否滿足笛卡爾空間限制,當(dāng)滿足時(shí),將期望的末端位姿發(fā)送給機(jī)械臂,從而通過(guò)對(duì)操作指令的非線性處理有效地提高了操作的平穩(wěn)性,相較于線性處理增大了調(diào)速范圍,通過(guò)關(guān)節(jié)空間限制和笛卡爾空間限制的串行檢測(cè),有效地降低了運(yùn)動(dòng)學(xué)模型的運(yùn)算次數(shù),降低了對(duì)處理器的要求,能運(yùn)行在更低成本的處理器上,同時(shí)還有效地提高了機(jī)械臂操作的安全性。
附圖說(shuō)明
圖1是本發(fā)明實(shí)施例一提供的機(jī)械臂的操作方法的實(shí)現(xiàn)流程圖;
圖2是本發(fā)明實(shí)施例二提供的機(jī)械臂的操作裝置的結(jié)構(gòu)示意圖;以及
圖3是本發(fā)明實(shí)施例二提供的機(jī)械臂的操作裝置的優(yōu)選結(jié)構(gòu)示意圖。
具體實(shí)施方式
為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,以下結(jié)合附圖及實(shí)施例,對(duì)本發(fā)明進(jìn)行進(jìn)一步詳細(xì)說(shuō)明。應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
以下結(jié)合具體實(shí)施例對(duì)本發(fā)明的具體實(shí)現(xiàn)進(jìn)行詳細(xì)描述:
實(shí)施例一:
圖1示出了本發(fā)明實(shí)施例一提供的機(jī)械臂的操作方法的實(shí)現(xiàn)流程,為了便于說(shuō)明,僅示出了與本發(fā)明實(shí)施例相關(guān)的部分,詳述如下:
在步驟s101中,接收用戶通過(guò)預(yù)先連接的操作端發(fā)送的操作指令,對(duì)操作指令進(jìn)行非線性處理和信號(hào)轉(zhuǎn)換,獲得用于調(diào)整機(jī)械臂末端位姿的速度信號(hào)。
本發(fā)明實(shí)施例適用于機(jī)械臂的操作平臺(tái)或系統(tǒng)。為了避免操作端的擱置平臺(tái)不平穩(wěn)引誤動(dòng)作、或者操作端在操作某一操作通道時(shí)引起其它操作通道的聯(lián)動(dòng)帶來(lái)的誤動(dòng)作(操作端控制的每個(gè)位移方向可分別對(duì)應(yīng)一個(gè)操作通道,例如,當(dāng)搖桿可以操作上下左右前后六個(gè)位移方向時(shí),該搖桿可控制六個(gè)操作通道),為操作端的每個(gè)操作通道的控制量設(shè)置一個(gè)信號(hào)下限值。當(dāng)操作通道的控制量低于操作通道的信號(hào)下限值時(shí),可認(rèn)為該操作通道沒(méi)有控制量輸出,即沒(méi)有操作指令輸出,當(dāng)操作通道的控制量高于信號(hào)上限值時(shí),可認(rèn)為該操作通道的控制量為信號(hào)上限值,當(dāng)操作通道的控制量位于信號(hào)上限值和信號(hào)上限值之間時(shí),可根據(jù)預(yù)設(shè)的非線性關(guān)系對(duì)操作通道的控制量進(jìn)行非線性處理,從而使得在低速操作階段使得控制量比較平穩(wěn),有利于機(jī)械手臂的平穩(wěn)運(yùn)行,相較于線性處理,非線性處理增大了操作的調(diào)速范圍,有效地提高了用戶體驗(yàn)。
在本發(fā)明實(shí)施例中,在對(duì)操作指令進(jìn)行非線性處理后,通過(guò)預(yù)設(shè)的信號(hào)轉(zhuǎn)換器將操作指令轉(zhuǎn)換為機(jī)械臂末端運(yùn)動(dòng)的速度信號(hào)。
具體地,操作端可為搖桿手柄、力反饋手柄等。優(yōu)選地,采用三維鼠標(biāo)作為操作端,從而降低用戶操作的復(fù)雜度,操作方式易于掌握。其中,三維鼠標(biāo)又稱為三維空間交互球,常用于六個(gè)自由度虛擬現(xiàn)實(shí)場(chǎng)景的模擬交互,所以可將三維鼠標(biāo)用于操作六個(gè)自由度的機(jī)械臂。
在步驟s102中,根據(jù)速度信號(hào)和機(jī)械臂當(dāng)前的末端位姿,生成期望的末端位姿。
在本發(fā)明實(shí)施例中,獲得速度信號(hào)后,可獲取機(jī)械臂當(dāng)前的末端位姿,根據(jù)速度信號(hào)和機(jī)械臂當(dāng)前的末端位姿,可生成機(jī)械臂期望的末端位姿,即機(jī)械臂末端執(zhí)行器按照速度信號(hào)運(yùn)動(dòng)后所得到的位置和姿態(tài)。
在步驟s103中,判斷期望的末端位姿是否位于預(yù)設(shè)工作范圍內(nèi)
在本發(fā)明實(shí)施例中,工作范圍即機(jī)械臂末端執(zhí)行器可以達(dá)到的空間范圍,通過(guò)判斷機(jī)械臂末端的期望位姿是否位于工作區(qū)域內(nèi),來(lái)確定用戶的操作指令是否可行。當(dāng)期待的末端位姿位于工作范圍內(nèi)時(shí),確定用戶的操作指令可行,執(zhí)行步驟s104,否則執(zhí)行步驟s109。
在步驟s104中,通過(guò)預(yù)設(shè)的逆運(yùn)動(dòng)學(xué)模型求解期望的末端位姿下機(jī)械臂所有關(guān)節(jié)的目標(biāo)角度。
在本發(fā)明實(shí)施例中,逆運(yùn)動(dòng)學(xué)即根據(jù)期望的末端位姿(即機(jī)械臂末端執(zhí)行器的期望位姿)求解出與該期望的末端位姿相對(duì)于的機(jī)械臂各關(guān)節(jié)的輸出角度,即目標(biāo)角度。先通過(guò)預(yù)設(shè)的逆運(yùn)動(dòng)學(xué)模型算法求解出該期望的末端位姿下目標(biāo)角度的多組解,將每組解對(duì)應(yīng)的關(guān)節(jié)值與機(jī)械臂所有關(guān)節(jié)當(dāng)前角度對(duì)應(yīng)的關(guān)節(jié)值進(jìn)行最小二乘法運(yùn)算,獲取每組解對(duì)應(yīng)的運(yùn)算結(jié)果,并將最小的運(yùn)算結(jié)果所對(duì)應(yīng)的一組解確定為所有目標(biāo)角度的有效解,從而保證機(jī)械臂可根據(jù)目標(biāo)角度以較短的運(yùn)動(dòng)時(shí)間達(dá)到下一運(yùn)動(dòng)狀態(tài)。
在步驟s105中,檢測(cè)所有目標(biāo)角度是否滿足預(yù)設(shè)的關(guān)節(jié)空間限制。
在本發(fā)明實(shí)施例中,機(jī)械臂的每個(gè)關(guān)節(jié)都有一個(gè)角度極限值,即關(guān)節(jié)的角度最大或最小為這個(gè)角度極限值,一旦關(guān)節(jié)的目標(biāo)角度超過(guò)了該關(guān)節(jié)的角度極限值,該關(guān)節(jié)的角度無(wú)法達(dá)到這個(gè)目標(biāo)角度。關(guān)節(jié)的運(yùn)行速度也受限于關(guān)節(jié)的機(jī)電特性,當(dāng)關(guān)節(jié)為了達(dá)到目標(biāo)角度需要運(yùn)動(dòng)一個(gè)比較大的角度時(shí)需要較快的運(yùn)行速度,一旦需要的運(yùn)行速度超過(guò)該關(guān)節(jié)的速度極限值時(shí),機(jī)械臂各關(guān)節(jié)很可能無(wú)法同時(shí)達(dá)到目標(biāo)角度,進(jìn)而無(wú)法保證機(jī)械臂的末端位姿,導(dǎo)致機(jī)械臂末端位姿的不穩(wěn)定。所以,在確定所有關(guān)節(jié)的目標(biāo)角度后,檢測(cè)所有的目標(biāo)角度是否滿足預(yù)設(shè)的關(guān)節(jié)空間限制,其中,包括檢測(cè)每個(gè)關(guān)節(jié)的目標(biāo)角度是否未超過(guò)相應(yīng)的角度極限值、以及檢測(cè)每個(gè)關(guān)節(jié)為達(dá)到相應(yīng)的目標(biāo)角度所需的運(yùn)行速度是否超過(guò)相應(yīng)的速度極限值。
在本發(fā)明實(shí)施例中,當(dāng)所有目標(biāo)角度都滿足關(guān)節(jié)空間限制時(shí),執(zhí)行步驟s106,否則執(zhí)行步驟s109。
在步驟s106中,通過(guò)預(yù)設(shè)的正運(yùn)動(dòng)學(xué)模型求解機(jī)械臂在目標(biāo)角度下所有關(guān)節(jié)在預(yù)設(shè)笛卡爾空間的位置。
在本發(fā)明實(shí)施例中,正運(yùn)動(dòng)學(xué)即根據(jù)機(jī)械臂末端執(zhí)行器的期望位姿下各關(guān)節(jié)的角度(即目標(biāo)角度)求解各關(guān)節(jié)在笛卡爾空間的位置(即坐標(biāo)),可理解為將機(jī)械臂關(guān)節(jié)空間映射到笛卡爾空間,具體地,可通過(guò)d-h參數(shù)的運(yùn)動(dòng)學(xué)模型進(jìn)行求解。
在步驟s107中,檢測(cè)所有關(guān)節(jié)的位置是否滿足預(yù)設(shè)的笛卡爾空間限制。
在本發(fā)明實(shí)施例中,在求解到目標(biāo)角度下各關(guān)節(jié)在笛卡爾空間的位置后,進(jìn)行笛卡爾空間的防碰撞檢查,可通過(guò)坐標(biāo)檢測(cè)機(jī)械臂關(guān)節(jié)的位置是否位于笛卡爾空間中預(yù)設(shè)的障礙物區(qū)域內(nèi),以此來(lái)確定所有關(guān)鍵的位置是否滿足笛卡爾空間限制。當(dāng)不存在位于障礙物區(qū)域內(nèi)的關(guān)節(jié)時(shí),執(zhí)行步驟s108,否則執(zhí)行步驟s109。
在步驟s108中,將期望的末端位姿發(fā)送給機(jī)械臂。
在本發(fā)明實(shí)施例中,機(jī)械臂末端的期望位姿連續(xù)經(jīng)過(guò)了且滿足了關(guān)節(jié)空間的限制檢測(cè)和笛卡爾空間的限制檢測(cè),因此將期望的末端位姿發(fā)送給機(jī)械臂,使得機(jī)械臂末端安全且快速地運(yùn)行到期望位姿。
在步驟s109中,拒絕用戶的操作指令。
在本發(fā)明實(shí)施例中,當(dāng)期望的末端位姿不位于工作范圍內(nèi)或機(jī)械臂關(guān)節(jié)的目標(biāo)角度超過(guò)了對(duì)應(yīng)的角度極限值或關(guān)節(jié)為達(dá)到目標(biāo)角度所需的運(yùn)行速度超過(guò)了相應(yīng)的速度極限值或關(guān)節(jié)的位置在笛卡爾空間的障礙物區(qū)域內(nèi)時(shí),拒絕用戶的操作指令。
在本發(fā)明實(shí)施例中,通過(guò)對(duì)操作指令進(jìn)行非線性處理和信號(hào)轉(zhuǎn)換,獲得用于調(diào)整機(jī)械臂末端位姿的速度信號(hào),有效地提高了低速階段操作端的平穩(wěn)性、增大了操作端的調(diào)速范圍,提高了機(jī)械臂操作的便捷度和用戶體驗(yàn),通過(guò)對(duì)機(jī)械臂運(yùn)行到期望的末端位姿時(shí)的關(guān)節(jié)串行進(jìn)行關(guān)節(jié)空間的限制檢測(cè)和笛卡爾空間的限制檢測(cè),降低了運(yùn)動(dòng)學(xué)計(jì)算次數(shù)和計(jì)算量的同時(shí),有效地提高了機(jī)械臂操作的安全性。
本領(lǐng)域普通技術(shù)人員可以理解實(shí)現(xiàn)上述實(shí)施例方法中的全部或部分步驟是可以通過(guò)程序來(lái)指令相關(guān)的硬件來(lái)完成,所述的程序可以存儲(chǔ)于一計(jì)算機(jī)可讀取存儲(chǔ)介質(zhì)中,所述的存儲(chǔ)介質(zhì),如rom/ram、磁盤(pán)、光盤(pán)等。
實(shí)施例二:
圖2示出了本發(fā)明實(shí)施例二提供的機(jī)械臂的操作裝置的結(jié)構(gòu),為了便于說(shuō)明,僅示出了與本發(fā)明實(shí)施例相關(guān)的部分,其中包括:
信號(hào)處理模塊21,接收用戶通過(guò)預(yù)先連接的操作端發(fā)送的操作指令,對(duì)操作指令進(jìn)行非線性處理和信號(hào)轉(zhuǎn)換,獲得用于調(diào)整機(jī)械臂末端位姿的速度信號(hào)。
在本發(fā)明實(shí)施例中,為了避免操作端的擱置平臺(tái)不平穩(wěn)引誤動(dòng)作、或者操作端在操作某一操作通道時(shí)引起其它操作通道的聯(lián)動(dòng)帶來(lái)的誤動(dòng)作,為操作端的每個(gè)操作通道的控制量設(shè)置一個(gè)信號(hào)下限值。當(dāng)操作通道的控制量低于操作通道的信號(hào)下限值時(shí),可認(rèn)為該操作通道沒(méi)有控制量輸出,即沒(méi)有操作指令輸出,當(dāng)操作通道的控制量高于信號(hào)上限值時(shí),可認(rèn)為該操作通道的控制量為信號(hào)上限值,當(dāng)操作通道的控制量位于信號(hào)上限值和信號(hào)上限值之間時(shí),可根據(jù)預(yù)設(shè)的非線性關(guān)系對(duì)操作通道的控制量進(jìn)行非線性處理,從而使得在低速操作階段使得控制量比較平穩(wěn),有利于機(jī)械手臂的平穩(wěn)運(yùn)行,相較于線性處理,非線性處理增大了操作的調(diào)速范圍,有效地提高了用戶體驗(yàn)。在對(duì)操作指令進(jìn)行非線性處理后,通過(guò)預(yù)設(shè)的信號(hào)轉(zhuǎn)換器將操作指令轉(zhuǎn)換為機(jī)械臂末端運(yùn)動(dòng)的速度信號(hào)。
位姿判斷模塊22,用于根據(jù)速度信號(hào)和機(jī)械臂當(dāng)前的末端位姿,生成期望的末端位姿,判斷期望的末端位姿是否位于預(yù)設(shè)工作范圍內(nèi)。
在本發(fā)明實(shí)施例中,獲得速度信號(hào)后,可獲取機(jī)械臂當(dāng)前的末端位姿,根據(jù)速度信號(hào)和機(jī)械臂當(dāng)前的末端位姿,可生成機(jī)械臂期望的末端位姿,即機(jī)械臂末端執(zhí)行器按照速度信號(hào)運(yùn)動(dòng)后所得到的位置和姿態(tài)。
在本發(fā)明實(shí)施例中,工作范圍即機(jī)械臂末端執(zhí)行器可以達(dá)到的空間范圍,通過(guò)判斷機(jī)械臂末端的期望位姿是否位于工作區(qū)域內(nèi),來(lái)確定用戶的操作指令是否可行。當(dāng)期待的末端位姿位于工作范圍內(nèi)時(shí),確定用戶的操作指令可行。
關(guān)節(jié)限制檢測(cè)模塊23,用于當(dāng)期望的末端位姿位于工作范圍內(nèi)時(shí),通過(guò)預(yù)設(shè)的逆運(yùn)動(dòng)學(xué)模型求解期望的末端位姿下機(jī)械臂所有關(guān)節(jié)的目標(biāo)角度,檢測(cè)所有目標(biāo)角度是否滿足預(yù)設(shè)的關(guān)節(jié)空間限制。
在本發(fā)明實(shí)施例中,先通過(guò)預(yù)設(shè)的逆運(yùn)動(dòng)學(xué)模型算法求解出該期望的末端位姿下目標(biāo)角度的多組解,將每組解對(duì)應(yīng)的關(guān)節(jié)值與機(jī)械臂所有關(guān)節(jié)當(dāng)前角度對(duì)應(yīng)的關(guān)節(jié)值進(jìn)行最小二乘法運(yùn)算,獲取每組解對(duì)應(yīng)的運(yùn)算結(jié)果,并將最小的運(yùn)算結(jié)果所對(duì)應(yīng)的一組解確定為所有目標(biāo)角度的有效解,從而保證機(jī)械臂可根據(jù)目標(biāo)角度以較短的運(yùn)動(dòng)時(shí)間達(dá)到下一運(yùn)動(dòng)狀態(tài)。
在本發(fā)明實(shí)施例中,在確定所有關(guān)節(jié)的目標(biāo)角度后,檢測(cè)所有的目標(biāo)角度是否滿足預(yù)設(shè)的關(guān)節(jié)空間限制,其中,包括檢測(cè)每個(gè)關(guān)節(jié)的目標(biāo)角度是否未超過(guò)相應(yīng)的角度極限值、以及檢測(cè)每個(gè)關(guān)節(jié)為達(dá)到相應(yīng)的目標(biāo)角度所需的運(yùn)行速度是否超過(guò)相應(yīng)的速度極限值。
空間限制檢測(cè)模塊24,用于當(dāng)所有目標(biāo)角度都滿足關(guān)節(jié)空間限制時(shí),通過(guò)預(yù)設(shè)的正運(yùn)動(dòng)學(xué)模型求解在目標(biāo)角度下所有關(guān)節(jié)在笛卡爾空間的位置,檢測(cè)所有關(guān)節(jié)的位置是否滿足預(yù)設(shè)的笛卡爾空間限制。
在本發(fā)明實(shí)施例中,當(dāng)每個(gè)關(guān)節(jié)的目標(biāo)角度未超過(guò)相應(yīng)的角度極限值、以及每個(gè)關(guān)節(jié)為達(dá)到相應(yīng)的目標(biāo)角度所需的運(yùn)行速度都未超過(guò)相應(yīng)的速度極限值時(shí),確定所有的目標(biāo)角度都滿足關(guān)節(jié)空間限制,此時(shí),可通過(guò)正運(yùn)動(dòng)學(xué)模型根據(jù)機(jī)械臂末端執(zhí)行器的期望位姿下各關(guān)節(jié)的角度(即目標(biāo)角度)求解各關(guān)節(jié)在笛卡爾空間的位置(即坐標(biāo)),即將機(jī)械臂關(guān)節(jié)空間映射到笛卡爾空間,具體地,可通過(guò)d-h參數(shù)的運(yùn)動(dòng)學(xué)模型進(jìn)行求解。
在本發(fā)明實(shí)施例中,在求解到目標(biāo)角度下各關(guān)節(jié)在笛卡爾空間的位置后,進(jìn)行笛卡爾空間的防碰撞檢查,可通過(guò)坐標(biāo)檢測(cè)機(jī)械臂關(guān)節(jié)的位置是否位于笛卡爾空間中預(yù)設(shè)的障礙物區(qū)域內(nèi),以此來(lái)確定所有關(guān)鍵的位置是否滿足笛卡爾空間限制。
機(jī)械臂操作模塊25,用于當(dāng)所有關(guān)節(jié)的位置都滿足笛卡爾空間限制時(shí),將期望的末端位姿發(fā)送給機(jī)械臂。
在本發(fā)明實(shí)施例中,當(dāng)不存在位于障礙物區(qū)域內(nèi)的關(guān)節(jié)時(shí),可確定所有關(guān)節(jié)的位置都滿足笛卡爾空間限制,將期望的末端位姿發(fā)送給機(jī)械臂,使得機(jī)械臂末端安全且快速地運(yùn)行到期望位姿。
優(yōu)選地,如圖3所示,信號(hào)處理模塊21包括非線性處理模塊311和信號(hào)轉(zhuǎn)換模塊312,其中:
非線性處理模塊311,用于接收操作指令,當(dāng)操作指令的操作通道的控制量位于操作通道的信號(hào)上限值和信號(hào)下限值之間時(shí),對(duì)操作通道的控制量進(jìn)行非線性處理;以及
信號(hào)轉(zhuǎn)換模塊312,用于根據(jù)預(yù)設(shè)的信號(hào)轉(zhuǎn)換器將非線性處理后的操作指令轉(zhuǎn)換為機(jī)械臂末端的速度信號(hào)。
優(yōu)選地,關(guān)節(jié)限制檢測(cè)模塊23包括逆運(yùn)動(dòng)求解模塊331、解選取模塊332和關(guān)節(jié)超限檢測(cè)模塊333,其中:
逆運(yùn)動(dòng)求解模塊331,用于當(dāng)期望的末端位姿位于工作范圍內(nèi)時(shí),通過(guò)逆運(yùn)動(dòng)學(xué)模型求解期望的末端位姿下所有關(guān)節(jié)目標(biāo)角度的多組解;
解選取模塊332,用于將每組解對(duì)應(yīng)的關(guān)節(jié)值與所有關(guān)節(jié)當(dāng)前角度的關(guān)節(jié)值進(jìn)行最小二乘法運(yùn)算,將運(yùn)算后的最小結(jié)果值所對(duì)應(yīng)的一組解確定為所有目標(biāo)角度的有效解;以及
關(guān)節(jié)超限檢測(cè)模塊333,用于檢測(cè)每個(gè)關(guān)節(jié)的目標(biāo)角度是否未超過(guò)相應(yīng)的角度極限值,并檢測(cè)每個(gè)關(guān)節(jié)為達(dá)到相應(yīng)的目標(biāo)角度所需的運(yùn)行速度是否超過(guò)相應(yīng)的速度極限值。
優(yōu)選地,空間限制檢測(cè)模塊24包括角度確定模塊341、正運(yùn)動(dòng)求解模塊342和障礙物區(qū)域檢測(cè)模塊343,其中:
角度確定模塊341,用于當(dāng)所有目標(biāo)角度未超過(guò)相應(yīng)的角度極限值、且所有關(guān)節(jié)所需的運(yùn)動(dòng)速度未超過(guò)相應(yīng)的速度極限值時(shí),確定所有目標(biāo)角度都滿足關(guān)節(jié)空間限制;
正運(yùn)動(dòng)求解模塊342,用于根據(jù)所有關(guān)節(jié)的目標(biāo)角度,通過(guò)正運(yùn)動(dòng)學(xué)模型求解所有關(guān)節(jié)在笛卡爾空間的位置;以及
障礙區(qū)檢測(cè)模塊343,用于檢測(cè)所有關(guān)節(jié)的位置是否位于笛卡爾空間中預(yù)設(shè)的障礙物區(qū)域。
進(jìn)一步優(yōu)選地,信號(hào)處理模塊包括非線性處理模塊和信號(hào)轉(zhuǎn)換模塊,其中:
非線性處理模塊,用于接收操作指令,當(dāng)操作指令的操作通道的控制量位于操作通道的信號(hào)上限值和信號(hào)下限值之間時(shí),對(duì)操作通道的控制量進(jìn)行非線性處理;以及
信號(hào)轉(zhuǎn)換模塊,用于根據(jù)預(yù)設(shè)的信號(hào)轉(zhuǎn)換器將非線性處理后的操作指令轉(zhuǎn)換為機(jī)械臂末端的速度信號(hào)。
在本發(fā)明實(shí)施例中,通過(guò)對(duì)操作指令進(jìn)行非線性處理和信號(hào)轉(zhuǎn)換,獲得用于調(diào)整機(jī)械臂末端位姿的速度信號(hào),有效地提高了低速階段操作端的平穩(wěn)性、增大了操作端的調(diào)速范圍,提高了機(jī)械臂操作的便捷度和用戶體驗(yàn),通過(guò)對(duì)機(jī)械臂運(yùn)行到期望的末端位姿時(shí)的關(guān)節(jié)串行進(jìn)行關(guān)節(jié)空間的限制檢測(cè)和笛卡爾空間的限制檢測(cè),降低了運(yùn)動(dòng)學(xué)計(jì)算次數(shù)和計(jì)算量的同時(shí),有效地提高了機(jī)械臂操作的安全性。
在本發(fā)明實(shí)施例中,機(jī)械臂的操作裝置的各模塊可由相應(yīng)的硬件或軟件模塊實(shí)現(xiàn),各模塊可以為獨(dú)立的軟、硬件模塊,也可以集成為一個(gè)軟、硬件模塊,在此不用以限制本發(fā)明。
以上所述僅為本發(fā)明的較佳實(shí)施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi)所作的任何修改、等同替換和改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。