本發(fā)明涉及工業(yè)機器人領(lǐng)域,尤其涉及一種基于機器視覺方法測量人手指尖在機器人示教過程中的位置和姿態(tài)的工業(yè)機器人示教系統(tǒng)及方法。
背景技術(shù):
機器人技術(shù)是一門綜合學(xué)科,它涵蓋了電腦信息技術(shù)、控制理論、機械設(shè)計、傳感技術(shù)、人工智能、仿生學(xué)等眾多學(xué)科。機器人的出現(xiàn)對人們的日常生活產(chǎn)生了重大的影響,機器人種類繁多,根據(jù)應(yīng)場景不同機器人可以分為服務(wù)機器人、醫(yī)療機器人、特種機器人、水下機器人、工業(yè)機器人等。在現(xiàn)代科學(xué)技術(shù)的帶動下,機器人技術(shù)有了較大的進(jìn)步,尤其是在工業(yè)中的應(yīng)用非常廣泛、技術(shù)也相對成熟。
工業(yè)機器人可以幫助人們快速地完成繁重且重復(fù)的任務(wù),而且還可以在極端的環(huán)境中作業(yè),因此它被大量地應(yīng)用在各行各業(yè)中,例如汽車制造、工件分揀、產(chǎn)品裝配、碼垛等。工業(yè)機器人在應(yīng)對新的工作任務(wù)的時候需要對其進(jìn)行示教,也就是教會機器人完成任務(wù)的步驟。
目前工業(yè)機器人的示教以“示教再現(xiàn)”的形式為主,“示教再現(xiàn)”是指先由操作者以某種交互方式演示機器人在執(zhí)行任務(wù)時所要達(dá)到的位置和姿態(tài),并記錄這些信息,通過處理使得機器人可以再現(xiàn)操作者的動作,完成既定的任務(wù)。當(dāng)要完成的任務(wù)需要復(fù)雜的軌跡時,如打磨、噴涂等任務(wù),機器人的示教工作就非常的繁瑣和耗時。如今雖在機器人系統(tǒng)中加入視覺傳感器、力傳感器等設(shè)備提高了機器人在應(yīng)用中的適應(yīng)性,但是在實際的應(yīng)用中機器人的示教過程依然復(fù)雜,操作者需要專門的培訓(xùn)才能操作,只適應(yīng)于大批量生產(chǎn),不能應(yīng)對生產(chǎn)任務(wù)的頻繁改變。隨著“中國制造2025”和“工業(yè)4.0”概念的提出,制造業(yè)已經(jīng)逐步從大規(guī)模批量生產(chǎn)向著個性化定制的方向發(fā)展,這就要求制造業(yè)的生產(chǎn)線具有很高的柔性來應(yīng)對產(chǎn)品的快速改型,傳統(tǒng)的示教再現(xiàn)形式已經(jīng)不能滿足這種柔性制造的要求。
技術(shù)實現(xiàn)要素:
有鑒于此,本發(fā)明提供了一種基于機器視覺的工業(yè)機器人示教方法和系統(tǒng)。通過機器視覺識別人手食指指尖在示教過程中的位置和姿態(tài),并轉(zhuǎn)化為機器人的示教點位姿,實現(xiàn)對機器人的示教。這種示教方法操作簡單、通用性好,提高了機器人易用性。尤其適用于噴涂與打磨機器人這種示教點位姿精度不高,但是路徑復(fù)雜的領(lǐng)域。
本發(fā)明采用如下技術(shù)方案實現(xiàn):
一種基于機器視覺的工業(yè)機器人示教系統(tǒng),包括圖像傳感器、標(biāo)志物、安裝有機器人示教模塊的電腦、機器人控制器、機器人,所述的圖像傳感器與安裝有機器人示教模塊的電腦相連,用于獲得人手在機器人示教過程中的圖像;所述標(biāo)志物被安放在示教者的手背上,用于確定目標(biāo)特征點在三維物體坐標(biāo)和二維圖像坐標(biāo)之間的對應(yīng)關(guān)系;所述電腦通過圖像處理和p4p位姿估計獲得標(biāo)志物和人手掌在相機坐標(biāo)系下的位置和姿態(tài)、估計示教者食指3個關(guān)節(jié)的角度,并得到指尖和手掌的位姿關(guān)系;所述電腦同時通過以太網(wǎng)與機器人控制器通信相連,控制機器人重復(fù)人手演示的路徑,實現(xiàn)機器人的示教再現(xiàn)。進(jìn)一步地,所述的圖像傳感器采用kinect圖像傳感器,用于獲取手部的圖像、通過粒子濾波算法跟蹤示教過程中手部在圖像中的位置,獲取手部圖像的roi區(qū)域。
進(jìn)一步地,所述標(biāo)志物包括四個相同直徑且不同顏色的圓形標(biāo)志,四個圓形標(biāo)志的圓心位于設(shè)定邊長的正方形的4個頂點上,所述圓形標(biāo)志的直徑和所述正方形的邊長根據(jù)圖像傳感器的視場按比例調(diào)節(jié)。
進(jìn)一步地,所述圓形標(biāo)志的直徑為10mm;顏色分別為紅、黃、綠、紫四種顏色;所述正方形的邊長為30mm。
一種基于所述工業(yè)機器人示教系統(tǒng)的工業(yè)機器人示教方法,包括步驟:
s1、圖像中手部的位置獲取,通過圖像傳感器獲得操作者的人手在工作空間內(nèi)的機器人示教過程中的圖像,并通過粒子濾波算法跟蹤示教過程中手部在圖像中的位置,獲取手部圖像的roi區(qū)域;
s2、測量手掌的位姿,利用所述標(biāo)志物來確定目標(biāo)特征點在三維物體坐標(biāo)和二維圖像坐標(biāo)之間的對應(yīng)關(guān)系,再利用基于dogleg優(yōu)化的p4p算法得到手掌在相機坐標(biāo)系下的位置和姿態(tài);
s3、在已知手掌位姿的情況下,通過指尖和手掌的位姿關(guān)系獲得指尖的位置和姿態(tài);
s4、把指尖的位置和姿態(tài)信息轉(zhuǎn)換到機器人基坐標(biāo)系下,并離散記錄連續(xù)示教路徑中的示教點的位姿,然后通過中值濾波器處理得到平滑的示教路徑傳輸至機器人控制器實現(xiàn)機器人的示教再現(xiàn)。
進(jìn)一步地,步驟s3中,所述指尖和手掌的位姿關(guān)系的獲取包括步驟:
s31、通過opengl建立一個可以根據(jù)輸入的手指關(guān)節(jié)參數(shù)變化的三維模型;
s32、使用基于模型的粒子群優(yōu)化算法估計手指關(guān)節(jié)角度得到指尖和手掌的位姿關(guān)系。
進(jìn)一步地,所述步驟s32具體包括:
s321、對示教者在進(jìn)行示教之前所獲得的手指圖像進(jìn)行處理得到3段食指的外輪廓;
s322、所述三維模型根據(jù)不同的手指關(guān)節(jié)參數(shù)生成若干opengl圖像;
s323、將其中一張opengl圖像進(jìn)行處理得到3段食指的外輪廓;
s324、將步驟s321中得到的3段食指的外輪廓的曲線與s321得到的3段食指的外輪廓的曲線進(jìn)行相似度估計,若匹配,則根據(jù)所選opengl圖像所對應(yīng)的手指關(guān)節(jié)參數(shù)得到指尖和手掌的位姿關(guān)系,否則,選擇另一張opengl圖像并返回步驟s323。
進(jìn)一步地,步驟s324中,所述進(jìn)行相似度估計的步驟是采用曲線曲率積分作為曲線的特征并用快速歸一化互相關(guān)系數(shù)來測量兩個特征之間的距離,具體包括步驟:
s331、分別計算兩條曲線上各點pi處的曲率,其公式為:
已知曲線l的表達(dá)式為y=f(x),點pk為x=k時曲線上的點;
s332、分別計算兩條曲線上點pk處的曲率積分,其公式為:
s333、分別設(shè)定兩條曲線的曲率積分為g1(k)和g2(k),得到相似度函數(shù):
s334、將相似度函數(shù)的值與設(shè)定閾值進(jìn)行比較,根據(jù)比較的結(jié)果完成相似度估計。
進(jìn)一步地,所述手指關(guān)節(jié)參數(shù)包括3個食指關(guān)節(jié)的夾角、3個拇指關(guān)節(jié)的夾角、以及手掌的6個空間自由度。
進(jìn)一步地,所述手指圖像及opengl圖像進(jìn)行處理的過程具體包括步驟:
s341、對圖像進(jìn)行二值化處理;
s342、對二值化處理后的圖像進(jìn)行輪廓提??;
s343、提取手指外輪廓;
s344、對手指外輪廓分段擬合。
相比現(xiàn)有技術(shù),本發(fā)明通過機器視覺識別人手食指指尖在示教過程中的位置和姿態(tài),并轉(zhuǎn)化為機器人的示教點位姿,實現(xiàn)對機器人的示教,在實際的應(yīng)用中對機器人的示教過程簡單可靠、操作方便,操作者無需要專門的培訓(xùn),既適應(yīng)于大批量生產(chǎn),也能應(yīng)對頻繁改變時少量多批次的生產(chǎn)任務(wù),提高了機器人易用性,尤其適用于噴涂與打磨機器人這種示教點位姿精度不高,但是路徑復(fù)雜的領(lǐng)域。
附圖說明
圖1為本發(fā)明實施例的一種基于機器視覺的工業(yè)機器人示教系統(tǒng)示意圖。
圖2為示教系統(tǒng)各個坐標(biāo)系轉(zhuǎn)換關(guān)系示意圖。
圖3為標(biāo)志物示意圖。
圖4為標(biāo)志物在手背的安放位置示意圖。
圖5是示教者在進(jìn)行示教之前所獲得的手指圖像。
圖6是根據(jù)不同的手指關(guān)節(jié)參數(shù)生成的opengl圖像。
圖7為處理所得的3段食指的外輪廓示意圖。
圖8為機器人示教模塊界面示意圖;
圖9為機器人示教系統(tǒng)坐標(biāo)轉(zhuǎn)換關(guān)系;
圖中:1-圖像傳感器;2-以太網(wǎng);3-機器人;4-示教者;5-工作空間;6-電腦;7-機器人控制器。
具體實施方式
下面結(jié)合附圖和具體示教過程對本發(fā)明的過程進(jìn)行詳細(xì)的描述。
實施例一
如下圖1和圖2所示,一種基于機器視覺的工業(yè)機器人示教系統(tǒng),包括圖像傳感器1、標(biāo)志物、安裝有機器人示教模塊的電腦6、機器人控制器7、機器人3,所述的圖像傳感器1與安裝有機器人示教模塊的電腦6相連,用于獲得人手在機器人示教過程中的圖像;所述標(biāo)志物被安放在示教者4的手背上,用于確定目標(biāo)特征點在三維物體坐標(biāo)和二維圖像坐標(biāo)之間的對應(yīng)關(guān)系;所述電腦6通過圖像處理和p4p位姿估計獲得標(biāo)志物和人手掌在相機坐標(biāo)系下的位置和姿態(tài)、估計示教者食指3個關(guān)節(jié)的角度,并得到指尖和手掌的位姿關(guān)系,即手掌的坐標(biāo)系與指尖的坐標(biāo)系之間的坐標(biāo)變換矩陣;所述電腦6同時通過以太網(wǎng)2與機器人控制器7通信相連,控制機器人3重復(fù)人手演示的路徑,實現(xiàn)機器人的示教再現(xiàn)。
本實施例中,所述的圖像傳感器采用kinect圖像傳感器,用于獲取手部的圖像、通過粒子濾波算法跟蹤示教過程中手部在圖像中的位置,獲取手部圖像的roi區(qū)域,粒子濾波算法能提高目標(biāo)跟蹤的精度和實時性。
本實施例中,所述標(biāo)志物包括四個直徑為10mm且顏色分別為紅、黃、綠、紫的圓形標(biāo)志,四個圓形標(biāo)志的圓心位于邊長為30mm的正方形的4個頂點上,所述圓形標(biāo)志的直徑和所述正方形的邊長根據(jù)圖像傳感器的視場按比例調(diào)節(jié)。
如圖3所示,所述標(biāo)志物有4個不同的特征點,分別有紅、黃、綠、紫四種顏色的圓點表示,4個圓心位于邊長為30mm的正方形的4個頂點上。標(biāo)志點的色彩rgb分量值以及其在物體坐標(biāo)系下的坐標(biāo)值如下表所示。
示教者在進(jìn)行示教的時候需要把標(biāo)志物安放在手背上,如圖4所示。在已知標(biāo)志物的特征點在三維物體坐標(biāo)系和圖像二維坐標(biāo)系中的位置對應(yīng)關(guān)系,通過基于dogleg優(yōu)化的p4p算法得到手掌在相機坐標(biāo)系下的位置和姿態(tài)。
實施例二
一種基于所述工業(yè)機器人示教系統(tǒng)的工業(yè)機器人示教方法,包括步驟:
s1、圖像中手部的位置獲取,通過圖像傳感器獲得操作者的人手在工作空間5內(nèi)的機器人示教過程中的圖像,并通過粒子濾波算法跟蹤示教過程中手部在圖像中的位置,獲取手部圖像的roi區(qū)域;
s2、測量手掌的位姿,利用所述標(biāo)志物來確定目標(biāo)特征點在三維物體坐標(biāo)和二維圖像坐標(biāo)之間的對應(yīng)關(guān)系,再利用基于dogleg優(yōu)化的p4p算法得到手掌在相機坐標(biāo)系下的位置和姿態(tài);
s3、在已知手掌位姿的情況下,通過指尖和手掌的位姿關(guān)系獲得指尖的位置和姿態(tài);
s4、把指尖的位置和姿態(tài)信息轉(zhuǎn)換到機器人基坐標(biāo)系下,并離散記錄連續(xù)示教路徑中的示教點的位姿,然后通過中值濾波器處理得到平滑的示教路徑傳輸至機器人控制器實現(xiàn)機器人的示教再現(xiàn)。所述轉(zhuǎn)換過程是基于所建立的相機坐標(biāo)系、手掌坐標(biāo)系、指尖坐標(biāo)系和機器人坐標(biāo)系之間的坐標(biāo)轉(zhuǎn)換關(guān)系的基礎(chǔ)進(jìn)行的。
具體而言,步驟s3中,所述指尖和手掌的位姿關(guān)系的獲取包括步驟:
s31、通過opengl(opengraphicslibrary)建立一個可以根據(jù)輸入的手指關(guān)節(jié)參數(shù)變化的三維模型;
s32、使用基于模型的粒子群優(yōu)化算法(particleswarmoptimization)估計手指關(guān)節(jié)角度得到指尖和手掌的位姿關(guān)系。
具體而言,所述步驟s32具體包括:
s321、對示教者在進(jìn)行示教之前所獲得的手指圖像進(jìn)行處理得到3段食指的外輪廓,圖5是示教者在進(jìn)行示教之前所獲得的手指圖像,可以認(rèn)為示教者在示教的過程中食指關(guān)節(jié)一直保持不變;
s322、所述三維模型根據(jù)不同的手指關(guān)節(jié)參數(shù)生成若干opengl圖像(見圖6);
s323、將其中一張opengl圖像進(jìn)行處理得到3段食指的外輪廓;
s324、將步驟s321中得到的3段食指的外輪廓的曲線與s321得到的3段食指的外輪廓的曲線進(jìn)行相似度估計,若匹配,則根據(jù)所選opengl圖像所對應(yīng)的手指關(guān)節(jié)參數(shù)得到指尖和手掌的位姿關(guān)系,否則,選擇另一張opengl圖像并返回步驟s323。
具體而言,為了計算兩條曲線的相似度,步驟s324中,所述進(jìn)行相似度估計的步驟是采用曲線曲率積分作為曲線的特征并用快速歸一化互相關(guān)系數(shù)(fastnormalizedcross-correlation)來測量兩個特征之間的距離,具體包括步驟:
s331、分別計算兩條曲線上各點pi處的曲率,其公式為:
已知曲線l的表達(dá)式為y=f(x),點pk為x=k時曲線上的點;
s332、分別計算兩條曲線上點pk處的曲率積分,其公式為:
s333、分別設(shè)定兩條曲線的曲率積分為g1(k)和g2(k),得到相似度函數(shù):
s334、將相似度函數(shù)的值與設(shè)定閾值進(jìn)行比較,根據(jù)比較的結(jié)果完成相似度估計。
可以看出,為了準(zhǔn)確評價3維模型和真實手掌的相似度,上述步驟采用一種基于曲率積分的曲線相似度判斷方法,以此作為pso的適應(yīng)度函數(shù)。
具體而言,所述手指關(guān)節(jié)參數(shù)包括3個食指關(guān)節(jié)的夾角{θ1,θ2,θ3}、3個拇指關(guān)節(jié)的夾角{θ4,θ5,θ6}、以及手掌的6個空間自由度{x,y,z,τx,τy,τz},因暫時不需要考慮拇指關(guān)節(jié)的角度變化,最終需要搜索的6個變量有{θ1,θ2,θ3,x,y,τz}。
具體而言,所述手指圖像(見圖5)及opengl圖像(見圖6)進(jìn)行處理的過程相一致,具體包括步驟:
s341、對圖像進(jìn)行二值化處理;
s342、對二值化處理后的圖像進(jìn)行輪廓提?。?/p>
s343、提取手指外輪廓;
s344、對手指外輪廓分段擬合。
圖像處理后的最終結(jié)果如圖7所示,得到3段食指的外輪廓,每段分別包含食指關(guān)節(jié)。
圖8是機器人示教模塊的操作界面,可以讀取在離線狀態(tài)下通過示教所獲得的示教點位姿信息,從而控制機器人再現(xiàn)示教的動作和路徑。機器人示教模塊包括以下幾個模塊:選擇機器人控制器、顯示當(dāng)前末端位姿信息、手動控制機器人運動、夾持器狀態(tài)、相機與機器人坐標(biāo)系的標(biāo)定、讀取示教點信息、串口通信功能、體統(tǒng)狀態(tài)信息顯示功能等,其中通過串口和位姿估計程序通信可以實現(xiàn)機器人的遙控操作。
圖9是機器人示教系統(tǒng)坐標(biāo)轉(zhuǎn)換關(guān)系,示教點處的位姿也就是食指指尖所要到達(dá)的位姿,所以可以用指尖的坐標(biāo)系表示,其中的指尖坐標(biāo)系o4-xyz,為了保證坐標(biāo)系定義的一致性,這里將指尖坐標(biāo)系(fingertip)記作f-xyz;手掌坐標(biāo)系(palm)即mark點的坐標(biāo)系,這里記作p-xyz;c-xyz為相機坐標(biāo)系;r-xyz為機器人坐標(biāo)系;機器人末端夾持器的工具坐標(biāo)系(tool)記作t-xyz。
本發(fā)明的上述實施例僅僅是為清楚地說明本發(fā)明所作的舉例,而并非是對本發(fā)明的實施方式的限定。對于所屬領(lǐng)域的普通技術(shù)人員來說,在上述說明的基礎(chǔ)上還可以做出其它不同形式的變化或變動。這里無需也無法對所有的實施方式予以窮舉。凡在本發(fā)明的精神和原則之內(nèi)所作的任何修改、等同替換和改進(jìn)等,均應(yīng)包含在本發(fā)明權(quán)利要求的保護范圍之內(nèi)。