機(jī)器人遙操作虛擬在軌維護(hù)訓(xùn)練系統(tǒng)
背景技術(shù):
虛擬夾具是遙操作領(lǐng)域中一個(gè)很重要的輔助手段,特別是控制機(jī)械臂在虛擬場(chǎng)景中運(yùn)動(dòng)的時(shí)候,虛擬夾具可以限制機(jī)械臂的運(yùn)動(dòng)空間,并利用一定的虛擬夾具的引導(dǎo)算法來導(dǎo)引機(jī)械臂手部的運(yùn)動(dòng),從而幫助操作者控制機(jī)器人能夠更好更快的完成任務(wù),提高工作效率。虛擬夾具在基于虛擬場(chǎng)景的機(jī)器人遙操作系統(tǒng)已經(jīng)得到了較好的應(yīng)用和發(fā)展。然而傳統(tǒng)的虛擬夾具存在諸多的弊端:不能根據(jù)環(huán)境變化調(diào)節(jié)虛擬夾具結(jié)構(gòu),不同的環(huán)境下需要更換虛擬夾具。
雖然虛擬夾具具有各種各樣的形態(tài),但是其最終目的都是為了能讓目標(biāo)執(zhí)行器能夠在虛擬夾具內(nèi)部的安全范圍內(nèi)運(yùn)動(dòng),將機(jī)械臂末端在靠近目的地的過程中,避免其穿出虛擬夾具從而和外部環(huán)境發(fā)生碰撞,這樣可以很好地保護(hù)機(jī)械臂。本文提出了自適應(yīng)虛擬夾具的方法,具有根據(jù)環(huán)境變化動(dòng)態(tài)調(diào)整虛擬夾具的功能??梢圆恍枰獙?duì)虛擬夾具進(jìn)行建模,而是當(dāng)外界變化的時(shí)候,可以自適應(yīng)的調(diào)整夾具的形態(tài),來調(diào)整機(jī)械臂的運(yùn)動(dòng)策略。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的目的是通過一定的策略選擇合適形狀的虛擬夾具和復(fù)雜情況下虛擬管道狀虛擬夾具的構(gòu)建過程。
本發(fā)明采用如下的技術(shù)方案:構(gòu)建具有力反饋的OSG虛擬仿真環(huán)境,通過力反饋設(shè)備控制機(jī)械臂末端運(yùn)動(dòng),給定機(jī)械臂末端的起始點(diǎn)和目標(biāo)點(diǎn),要讓機(jī)械臂從起始點(diǎn)運(yùn)動(dòng)到目標(biāo)點(diǎn),先通過OSG碰撞檢測(cè)庫的射線穿透的方法,判斷兩點(diǎn)之間是否存在障礙物,若不存在則建立簡單形狀如圓柱體的虛擬夾具,否則通過射線穿透方法確定出障礙物的尺寸,然后在障礙物的周圍確定出一個(gè)一系列安全關(guān)鍵點(diǎn),然后只需要構(gòu)建起始點(diǎn)到關(guān)鍵點(diǎn)、關(guān)鍵點(diǎn)之間和關(guān)鍵點(diǎn)到目標(biāo)點(diǎn)的虛擬管道即可。
本發(fā)明的優(yōu)點(diǎn)有:
本發(fā)明虛擬夾具的形狀可以自適應(yīng)環(huán)境的變化,環(huán)境簡單則建立簡約夾具,環(huán)境復(fù)雜就建立管道夾具,并且復(fù)雜情況下能夠確定出一條安全且較短的路徑,相比傳統(tǒng)單一的虛擬夾具方法,大大提高了虛擬夾具的構(gòu)建效率和操作效率。
附圖說明
圖1是虛擬夾具選擇策略圖
圖2虛擬管道空間位姿確定算法流程圖
圖3是未知復(fù)雜環(huán)境的虛擬管道位姿確定圖
具體實(shí)施方式
射線檢測(cè)技術(shù)是本專利需要使用的檢測(cè)技術(shù)。OSG三維引擎庫里面提供了osgUtil工具類,它可以判斷一條射線是否和物體相交,若相交的情況下能夠提供相交點(diǎn)準(zhǔn)確位置信息。虛擬場(chǎng)景中的射線是碰撞檢測(cè)相交測(cè)試的基礎(chǔ),然而線段又提供了一種定義射線的方法,當(dāng)相交發(fā)生的時(shí)候,可以通過檢測(cè)線段的相交情況來檢測(cè)射線相交并且執(zhí)行響應(yīng)的操作。osgUtil交點(diǎn)類提供了射線或者線段與場(chǎng)景中的三維模型相交的信息,即具體的碰撞點(diǎn)的世界坐標(biāo)下的位置坐標(biāo)和碰撞的法線方向。通過給定起始點(diǎn)和終點(diǎn),建立它們之間的射線即可判斷該射線對(duì)應(yīng)的線段之間是否存在其他的模型。
在OSG中射線檢測(cè)方法具體實(shí)現(xiàn)如下:(1)建立起點(diǎn)和終點(diǎn)之間的射線,PointA和PointB分別表示起點(diǎn)和終點(diǎn),即osg::ref_ptr<osg::LineSegment>line=newosg::LineSegment(pointA,pointB);(2)將射線加入到相交遍歷器中,即osgUtil::IntersectVisitor ivMul;ivMul.addLineSegment(line);(3)判斷射線是否與模型相交,即如果ivMul.hits()返回true則相交,否則不相交;(4)如果相交,求出第一個(gè)碰撞點(diǎn),由ivMul.getHitList(line)可以得到與模型的一系列碰撞點(diǎn)的迭代的集合,然后遍歷迭代器即可求得所有的碰撞點(diǎn)的信息,即osgUtil::IntersectVisitor::HitList::iterator it,point=it->getWorldIntersectPoint();求出每個(gè)點(diǎn)和起始點(diǎn)A的距離,然后將距離最短的點(diǎn)作為第一個(gè)碰撞點(diǎn)即圖2中的P點(diǎn)輸出。
每次虛擬物體在起始點(diǎn)向目標(biāo)點(diǎn)靠近的過程中,可以通過某射線檢測(cè)技術(shù)判斷是否有障礙物體。如果它們之間沒有其他的障礙物,證明物體在運(yùn)動(dòng)的過程中不會(huì)發(fā)生和其他的物體的碰撞,因此選用簡單的圓柱體即可,其中圓柱體的兩端分別為起始點(diǎn)和目標(biāo)點(diǎn),這樣便可以快速引導(dǎo)物體運(yùn)動(dòng)到目標(biāo)點(diǎn),因?yàn)閳A柱體比較單一、相對(duì)簡單,所以虛擬夾具的算法復(fù)雜度比較低,性能也互相對(duì)提高。如果射線和其他的障礙物模型發(fā)生相交,證明環(huán)境中起始點(diǎn)和目標(biāo)點(diǎn)之間存在一定的障礙物,這種情況,本文選用管道虛擬夾具,繞過障礙物,輔助物體到達(dá)目標(biāo)點(diǎn)。其選擇策略如圖1所示。
對(duì)于沒有障礙物的簡單環(huán)境情況下,圓柱體狀的虛擬夾具便可以快速幫助操作者將物體移動(dòng)到目標(biāo)點(diǎn),其圓柱體的兩端對(duì)應(yīng)著起始點(diǎn)和目標(biāo)點(diǎn)即可。對(duì)于復(fù)雜環(huán)境下分析虛擬管道的構(gòu)建過程,具體虛擬管道空間位姿確定策略流程如圖2所示。
未知環(huán)境虛擬管道確定示意圖如圖3所示,這里A表示目標(biāo)物體的起始點(diǎn),B表示物體的目標(biāo)點(diǎn)。在虛擬場(chǎng)景中,操作者意圖通過手控設(shè)備控制機(jī)械臂末端直接從A運(yùn)動(dòng)到B,通過形狀選擇的步驟可以通過射線穿透法發(fā)現(xiàn)AB射線之間存在相交的模型,即為障礙物。并且很容易確定射線和障礙物的相交點(diǎn)P的位置,由圖3所示,確定出一系列的關(guān)鍵點(diǎn)P1、P2、P3…Pn,然后將虛擬管道AP1,P1P2,P2P3…PnB的管道拼接起來即可完成整個(gè)虛擬管道的構(gòu)建。
對(duì)于每個(gè)關(guān)鍵點(diǎn)的確定,根據(jù)算法流程,可知是確定出此時(shí)障礙物,上側(cè)、左側(cè),右側(cè)、下側(cè)的關(guān)鍵點(diǎn)P1,P11,P12,P13,其中P1和P13點(diǎn)在直線AB和z軸組成的平面上,P11和P12為過P點(diǎn)且垂直于上述平面的的平面上。然后比較∠PAP1、∠PAP11、∠PAP12和∠PAP13的大小,將最小的角度對(duì)應(yīng)的點(diǎn)作為關(guān)鍵點(diǎn)。下面介紹P1點(diǎn)的具體求解方法,
假設(shè)A(x1,y1,z1),B(x2,y2,z2),通過射線AB和障礙物,可求得與障礙物相交點(diǎn)P(x3,y3,z3)。由于ABP1平面是平行于Z軸的,則平面ABP1的法向量如式(1)
垂直于AB射線的并且過B的向量為:
在圖3中,B1、B2、B3、B4等點(diǎn)是在向量方向上距離B點(diǎn)10單位、20單位、30單位、40單位成等差數(shù)列的距離。已知B點(diǎn)和很容易可以求得B1、B2、B3、B4…Bn等的點(diǎn)坐標(biāo)。此時(shí),依次求得射線AB1、AB2、AB3、AB4、...ABn,計(jì)算是否與障礙物相交,直到當(dāng)n=k時(shí),射線不再與障礙物相交。如圖3所示的情況下,n=4時(shí),ABn不再與障礙物相交,在兩個(gè)三角形ABB4和APP1中,由三角形相似性得到
考慮到虛擬管道的有一定的寬度,因此設(shè)置P1點(diǎn)在此基礎(chǔ)上再偏移一定的閾值e,即滿足
PP1=PP1+e (4)
根據(jù)P點(diǎn)坐標(biāo)、PP1距離即可求得P1點(diǎn)坐標(biāo)。
P11,P12和P13的求解類似方法和P1類似,將這四個(gè)點(diǎn)比較得到對(duì)應(yīng)的點(diǎn)作為第一個(gè)關(guān)鍵點(diǎn),將其設(shè)為P1,已知P1關(guān)鍵點(diǎn)位置,檢測(cè)該關(guān)鍵點(diǎn)和目標(biāo)點(diǎn)之間是否有障礙物,如果是,確定下一個(gè)關(guān)鍵點(diǎn)P2,其求解方法和求解P1方法相似,將P1點(diǎn)作為A點(diǎn),使用遞歸的方法求解即可,否則退出遞歸即可。這樣便可以確定出所有的關(guān)鍵點(diǎn)P1、P2…Pn。然后構(gòu)建A、P1、P2…Pn、B相鄰點(diǎn)構(gòu)成的管道,拼接起來即可完成虛擬管道的空間位置確定。自此自適應(yīng)虛擬夾具的形狀選擇空間位置均可以確定下來。