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