麻豆精品无码国产在线播放,国产亚洲精品成人AA片新蒲金,国模无码大尺度一区二区三区,神马免费午夜福利剧场

碰撞檢測(cè)系統(tǒng)、碰撞檢測(cè)用數(shù)據(jù)生成裝置以及機(jī)械手的制作方法

文檔序號(hào):2375141閱讀:228來源:國(guó)知局
碰撞檢測(cè)系統(tǒng)、碰撞檢測(cè)用數(shù)據(jù)生成裝置以及機(jī)械手的制作方法
【專利摘要】本發(fā)明涉及碰撞檢測(cè)系統(tǒng)、碰撞檢測(cè)用數(shù)據(jù)生成裝置以及機(jī)械手。其中碰撞檢測(cè)系統(tǒng)包含:存儲(chǔ)部,其存儲(chǔ)與第1物體對(duì)應(yīng)的第1碰撞檢測(cè)用數(shù)據(jù)和與第2物體對(duì)應(yīng)的第2碰撞檢測(cè)用數(shù)據(jù)作為物體的碰撞檢測(cè)用數(shù)據(jù);以及處理部,其基于第1碰撞檢測(cè)用數(shù)據(jù)和第2碰撞檢測(cè)用數(shù)據(jù)來進(jìn)行世界坐標(biāo)系中的第1物體與第2物體的碰撞判定。存儲(chǔ)部存儲(chǔ)利用設(shè)定在模型坐標(biāo)系中的立方體區(qū)域?qū)υ谖矬w的模型坐標(biāo)系中從規(guī)定的視點(diǎn)觀察物體時(shí)的深度映射數(shù)據(jù)進(jìn)行離散化而得到的代表點(diǎn)數(shù)據(jù),作為碰撞檢測(cè)用數(shù)據(jù)。
【專利說明】碰撞檢測(cè)系統(tǒng)、碰撞檢測(cè)用數(shù)據(jù)生成裝置以及機(jī)械手
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及碰撞檢測(cè)系統(tǒng)、碰撞檢測(cè)用數(shù)據(jù)生成裝置以及機(jī)械手等。
【背景技術(shù)】
[0002]在多個(gè)領(lǐng)域需要判定有無物體間的碰撞、接近。例如在機(jī)械手等領(lǐng)域,碰撞的產(chǎn)生成為非常大的問題。因此,從以往開始研究、開發(fā)在實(shí)際產(chǎn)生碰撞之前,通過由計(jì)算機(jī)進(jìn)行的計(jì)算來判定碰撞的有無、允許程度以上的接近的方法。作為這樣的碰撞判定方法的現(xiàn)有技術(shù),公知有例如在專利文獻(xiàn)I等中公開的技術(shù)。
[0003]在專利文獻(xiàn)I的方法中,利用多邊形數(shù)據(jù)表示物體,以規(guī)定半徑的球覆蓋該多邊形數(shù)據(jù)的各多邊形,并將這些球合并到更大的半徑的球中,將這些球的數(shù)據(jù)構(gòu)成為表示球的合并關(guān)系的二叉樹結(jié)構(gòu)的數(shù)據(jù)。并且,通過按照每個(gè)層依次地對(duì)該二叉樹結(jié)構(gòu)的數(shù)據(jù)進(jìn)行碰撞判定,來進(jìn)行物體間的碰撞判定。
[0004]專利文獻(xiàn)1:日本特開平11 - 250122號(hào)公報(bào)
[0005]在如專利文獻(xiàn)I那樣使用多邊形數(shù)據(jù)進(jìn)行碰撞檢測(cè)的方法中,需要成為檢測(cè)對(duì)象的物體的CAD (Computer Aided Design:計(jì)算機(jī)輔助設(shè)計(jì))數(shù)據(jù)。然而,在現(xiàn)實(shí)中,存在很多不存在CAD數(shù)據(jù)的物體、不能夠得到CAD數(shù)據(jù)的物體,所以存在在那樣的物體上應(yīng)用上述方法很困難這樣的課題。

【發(fā)明內(nèi)容】

[0006]根據(jù)本發(fā)明的幾個(gè)方式,能夠提供即使在不能夠得到物體的多邊形數(shù)據(jù)的情況下等也能夠進(jìn)行碰撞檢測(cè)的碰撞檢測(cè)系統(tǒng)、碰撞檢測(cè)用數(shù)據(jù)生成裝置、機(jī)械手系統(tǒng)、機(jī)械手、碰撞檢測(cè)用數(shù)據(jù)生成方法以及程序等。
[0007]本發(fā)明的一個(gè)方式涉及如下的碰撞檢測(cè)系統(tǒng),包含:存儲(chǔ)部,其存儲(chǔ)與第I物體對(duì)應(yīng)的第I碰撞檢測(cè)用數(shù)據(jù)和與第2物體對(duì)應(yīng)的第2碰撞檢測(cè)用數(shù)據(jù)作為物體的碰撞檢測(cè)用數(shù)據(jù);以及處理部,其基于上述第I碰撞檢測(cè)用數(shù)據(jù)和上述第2碰撞檢測(cè)用數(shù)據(jù)來進(jìn)行世界坐標(biāo)系中的上述第I物體與上述第2物體的碰撞判定,上述存儲(chǔ)部存儲(chǔ)對(duì)在上述物體的模型坐標(biāo)系中從規(guī)定的視點(diǎn)觀察上述物體時(shí)的深度映射數(shù)據(jù)利用設(shè)定在上述模型坐標(biāo)系中的立方體區(qū)域進(jìn)行離散化而得到的代表點(diǎn)數(shù)據(jù),作為上述碰撞檢測(cè)用數(shù)據(jù)。
[0008]這樣,利用設(shè)定在模型坐標(biāo)系中的立方體區(qū)域?qū)ξ矬w的深度映射數(shù)據(jù)進(jìn)行離散化而得到的代表點(diǎn)數(shù)據(jù)作為碰撞檢測(cè)用數(shù)據(jù)而被存儲(chǔ)在存儲(chǔ)部中,基于該碰撞檢測(cè)用數(shù)據(jù)進(jìn)行第I物體與第2物體的碰撞檢測(cè)。由此,即使是不能夠得到物體的多邊形數(shù)據(jù)的情況等也能夠進(jìn)行碰撞檢測(cè)。
[0009]另外在本發(fā)明的一個(gè)方式中,也可以構(gòu)成為,上述存儲(chǔ)部存儲(chǔ)內(nèi)含上述物體的包圍盒的上述代表點(diǎn)數(shù)據(jù)、和利用分割上述包圍盒而成的立方體區(qū)域?qū)ι鲜錾疃扔成鋽?shù)據(jù)進(jìn)行離散化而得到的上述代表點(diǎn)數(shù)據(jù)即、分割代表點(diǎn)數(shù)據(jù),作為上述碰撞檢測(cè)用數(shù)據(jù),上述處理部在判定為內(nèi)含上述第I物體的第I包圍盒和內(nèi)含上述第2物體的第2包圍盒發(fā)生碰撞的情況下,基于上述第I物體的上述分割代表點(diǎn)數(shù)據(jù)和上述第2物體的上述分割代表點(diǎn)數(shù)據(jù)進(jìn)行上述第I物體和上述第2物體的碰撞判定。
[0010]這樣,在包圍盒被判定為無碰撞的階段,能夠明確判定為第I物體與第2物體無碰撞,所以省略利用更小的立方體區(qū)域的碰撞判定,從而能夠簡(jiǎn)單化處理。
[0011]另外在本發(fā)明的一個(gè)方式中,也可以構(gòu)成為,上述存儲(chǔ)部存儲(chǔ)樹結(jié)構(gòu)的數(shù)據(jù)作為上述碰撞檢測(cè)用數(shù)據(jù),上述樹結(jié)構(gòu)的數(shù)據(jù)具有與分割父節(jié)點(diǎn)的立方體區(qū)域而成的多個(gè)立方體區(qū)域?qū)?yīng)的上述代表點(diǎn)數(shù)據(jù)作為從上述父節(jié)點(diǎn)分支的子節(jié)點(diǎn)的上述代表點(diǎn)數(shù)據(jù)。
[0012]這樣,能夠從樹結(jié)構(gòu)的上位層的節(jié)點(diǎn)向下位層的節(jié)點(diǎn)按照每個(gè)層依次進(jìn)行碰撞檢測(cè)。通過這樣的遞歸處理,能夠?qū)⑴鲎矙z測(cè)并行處理化。
[0013]另外在本發(fā)明的一個(gè)方式中,也可以構(gòu)成為,分割上述父節(jié)點(diǎn)的立方體區(qū)域而成的上述子節(jié)點(diǎn)的上述多個(gè)立方體區(qū)域是通過將從上述規(guī)定的視點(diǎn)觀察時(shí)的上述父節(jié)點(diǎn)的立方體區(qū)域分割為2X2區(qū)域,并且將上述2X2區(qū)域的各區(qū)域在上述規(guī)定的視點(diǎn)的進(jìn)深方向上進(jìn)行2分割而得到的2X2X2個(gè)立方體區(qū)域,上述樹結(jié)構(gòu)的數(shù)據(jù)是與從上述規(guī)定的視點(diǎn)觀察時(shí)的上述2X2區(qū)域的各區(qū)域?qū)?yīng)地設(shè)定有上述子節(jié)點(diǎn)的四叉樹結(jié)構(gòu)的數(shù)據(jù),上述四叉樹結(jié)構(gòu)中的上述子節(jié)點(diǎn)的數(shù)據(jù)是在上述2X2區(qū)域的上述各區(qū)域中存在于上述進(jìn)深方向的2個(gè)立方體區(qū)域中的至少一方的上述代表點(diǎn)數(shù)據(jù)。
[0014]基于這樣的四叉樹結(jié)構(gòu)的數(shù)據(jù)來進(jìn)行碰撞檢測(cè),能夠?qū)⒏鲗又械墓?jié)點(diǎn)對(duì)的組合設(shè)為4X4 = 16個(gè),例如能夠使用線程數(shù)為數(shù)十左右的CPU (Central Processing Unit:中央處理器)等來實(shí)現(xiàn)碰撞檢測(cè)系統(tǒng)。
[0015]另外在本發(fā)明的一個(gè)方式中,也可以構(gòu)成為,上述處理部在基于上述父節(jié)點(diǎn)的數(shù)據(jù)的上述碰撞判定中,在存在判定為碰撞的上述父節(jié)點(diǎn)的情況下,基于從判定為上述碰撞的上述父節(jié)點(diǎn)分支的上述子節(jié)點(diǎn)的數(shù)據(jù)來進(jìn)行上述碰撞判定,在基于上述父節(jié)點(diǎn)的數(shù)據(jù)的上述碰撞判定中,在不存在判定為碰撞的上述父節(jié)點(diǎn)的情況下,明確判定為上述第I物體與上述第2物體無碰撞。
[0016]這樣,能夠?qū)崿F(xiàn)從樹結(jié)構(gòu)的上位層的節(jié)點(diǎn)向下位層的節(jié)點(diǎn)按照每個(gè)層依次進(jìn)行碰撞檢測(cè)的遞歸碰撞檢測(cè)處理。另外,在有針對(duì)節(jié)點(diǎn)對(duì)的全部的組合判定為無碰撞的層的情況下,在處理該層的階段能夠明確判定為第I物體與第2物體無碰撞,所以能夠?qū)⑻幚砗?jiǎn)單化。
[0017]另外在本實(shí)施方式中,也可以構(gòu)成為,上述深度映射數(shù)據(jù)是由測(cè)量上述物體的三維信息的三維信息測(cè)量裝置生成的深度映射數(shù)據(jù)。
[0018]另外本發(fā)明的其他的方式涉及如下的碰撞檢測(cè)用數(shù)據(jù)生成裝置,包含:深度映射數(shù)據(jù)獲取部,其獲取物體的模型坐標(biāo)系中的從規(guī)定的視點(diǎn)觀察上述物體時(shí)的深度映射數(shù)據(jù);以及碰撞檢測(cè)用數(shù)據(jù)生成部,其生成上述物體的上述模型坐標(biāo)系中的代表點(diǎn)數(shù)據(jù)作為上述碰撞檢測(cè)用數(shù)據(jù),上述碰撞檢測(cè)用數(shù)據(jù)生成部利用設(shè)定在上述物體的上述模型坐標(biāo)系中的立方體區(qū)域?qū)ι鲜錾疃扔成鋽?shù)據(jù)進(jìn)行離散化,從而生成上述代表點(diǎn)數(shù)據(jù)。
[0019]根據(jù)本發(fā)明的其他方式,利用設(shè)定在模型坐標(biāo)系中的立方體區(qū)域?qū)ξ矬w的深度映射數(shù)據(jù)進(jìn)行離散化,通過該離散化生成代表點(diǎn)數(shù)據(jù)作為碰撞檢測(cè)用數(shù)據(jù)。通過這樣生成碰撞檢測(cè)用數(shù)據(jù),即使是不能夠得到物體的多邊形數(shù)據(jù)的情況下也能夠進(jìn)行碰撞檢測(cè)。
[0020]另外在本發(fā)明的其他的方式中,也可以構(gòu)成為,上述碰撞檢測(cè)用數(shù)據(jù)生成部將與分割父節(jié)點(diǎn)的立方體區(qū)域而成的多個(gè)立方體區(qū)域?qū)?yīng)的節(jié)點(diǎn)作為子節(jié)點(diǎn)與上述父節(jié)點(diǎn)連接,并生成樹結(jié)構(gòu)的數(shù)據(jù)作為上述碰撞檢測(cè)用數(shù)據(jù)。
[0021]這樣,能夠由對(duì)深度映射數(shù)據(jù)進(jìn)行離散化后的代表點(diǎn)數(shù)據(jù)來構(gòu)成樹結(jié)構(gòu)的數(shù)據(jù)。另外,通過生成這樣的樹結(jié)構(gòu)的數(shù)據(jù),能夠在碰撞檢測(cè)中進(jìn)行遞歸的并行處理。
[0022]另外在本發(fā)明的其他方式中,也可以構(gòu)成為,分割上述父節(jié)點(diǎn)的立方體區(qū)域而成的上述子節(jié)點(diǎn)的上述多個(gè)立方體區(qū)域是通過將從上述規(guī)定的視點(diǎn)觀察時(shí)的上述父節(jié)點(diǎn)的立方體區(qū)域分割為2X2區(qū)域,并且將上述2X2區(qū)域的各區(qū)域在上述規(guī)定的視點(diǎn)的進(jìn)深方向上進(jìn)行2分割而得到的2X2X2個(gè)立方體區(qū)域,上述碰撞檢測(cè)用數(shù)據(jù)生成部生成與從上述規(guī)定的視點(diǎn)觀察時(shí)的上述2X2區(qū)域的各區(qū)域?qū)?yīng)地設(shè)置有上述子節(jié)點(diǎn)的四叉樹結(jié)構(gòu)的數(shù)據(jù),作為上述樹結(jié)構(gòu)的數(shù)據(jù),上述四叉樹結(jié)構(gòu)的數(shù)據(jù)中的上述子節(jié)點(diǎn)的數(shù)據(jù)是在上述2X2區(qū)域的上述各區(qū)域中存在于上述進(jìn)深方向的2個(gè)立方體區(qū)域中的至少一方的上述代表點(diǎn)數(shù)據(jù)。
[0023]這樣,通過與從規(guī)定的視點(diǎn)觀察時(shí)的2X2區(qū)域的各區(qū)域?qū)?yīng)地設(shè)定子節(jié)點(diǎn),能夠由利用立方體區(qū)域?qū)ι疃扔成鋽?shù)據(jù)進(jìn)行離散化后的代表點(diǎn)數(shù)據(jù)構(gòu)成四叉樹結(jié)構(gòu)的數(shù)據(jù)。
[0024]另外在本發(fā)明的其他方式中,也可以構(gòu)成為,上述碰撞檢測(cè)用數(shù)據(jù)生成部在判斷為在處理對(duì)象的代表點(diǎn)、和存在于上述處理對(duì)象的代表點(diǎn)的周圍26個(gè)附近的立方體區(qū)域的外側(cè)的代表點(diǎn)之間存在缺少上述代表點(diǎn)數(shù)據(jù)的立方體區(qū)域的情況下,在缺少上述代表點(diǎn)數(shù)據(jù)的立方體區(qū)域上增補(bǔ)上述代表點(diǎn)數(shù)據(jù)。
[0025]通過這樣生成碰撞檢測(cè)用數(shù)據(jù),能夠抑制雖然實(shí)際上在缺少代表點(diǎn)數(shù)據(jù)的立方體區(qū)域中有碰撞可能性但判定為無碰撞這樣的錯(cuò)誤的檢測(cè)。
[0026]另外在本發(fā)明的其他方式中,也可以構(gòu)成為,在上述規(guī)定的視點(diǎn)的進(jìn)深方向上越遠(yuǎn)離則深度值越大的情況下,上述碰撞檢測(cè)用數(shù)據(jù)生成部在判定為從上述處理對(duì)象的代表點(diǎn)的代表深度值減去存在于上述處理對(duì)象的代表點(diǎn)的周圍的代表點(diǎn)的代表深度值后的差值為負(fù)的情況下,在相對(duì)于上述處理對(duì)象的代表點(diǎn)靠上述進(jìn)深方向側(cè)的立方體區(qū)域上增補(bǔ)上述代表點(diǎn)數(shù)據(jù)。
[0027]這樣,在差值為負(fù)的情況下,該代表點(diǎn)存在于與處理對(duì)象的代表點(diǎn)相比靠進(jìn)深方向側(cè),所以能夠在相對(duì)于處理對(duì)象的代表點(diǎn)數(shù)據(jù)靠進(jìn)深方向側(cè)的立方體區(qū)域上增補(bǔ)代表點(diǎn)數(shù)據(jù)。
[0028]另外在本發(fā)明的其他的方式中,也可以構(gòu)成為,上述深度映射數(shù)據(jù)是由測(cè)量上述物體的三維信息的三維信息測(cè)量裝置生成的深度映射數(shù)據(jù)。
[0029]另外本發(fā)明的另一其他的方式涉及如下的機(jī)械手系統(tǒng),包含:機(jī)械手,其具有可動(dòng)部;存儲(chǔ)部,其存儲(chǔ)與第I物體對(duì)應(yīng)的第I碰撞檢測(cè)用數(shù)據(jù)和與第2物體對(duì)應(yīng)的第2碰撞檢測(cè)用數(shù)據(jù)作為物體的碰撞檢測(cè)用數(shù)據(jù);處理部,其基于上述第I碰撞檢測(cè)用數(shù)據(jù)和上述第2碰撞檢測(cè)用數(shù)據(jù)來進(jìn)行世界坐標(biāo)系中的上述第I物體與上述第2物體的碰撞判定;以及控制部,其基于由上述處理部進(jìn)行的上述碰撞判定的結(jié)果來控制上述可動(dòng)部的動(dòng)作,上述存儲(chǔ)部存儲(chǔ)將在上述物體的模型坐標(biāo)系中從規(guī)定的視點(diǎn)觀察上述物體時(shí)的深度映射數(shù)據(jù)利用設(shè)定在上述模型坐標(biāo)系中的立方體區(qū)域進(jìn)行離散化而得到的代表點(diǎn)數(shù)據(jù),作為上述碰撞檢測(cè)用數(shù)據(jù)。
[0030]另外本發(fā)明的另一其他方式涉及如下的機(jī)械手,包含:可動(dòng)部;存儲(chǔ)部,其存儲(chǔ)與第I物體對(duì)應(yīng)的第I碰撞檢測(cè)用數(shù)據(jù)和與第2物體對(duì)應(yīng)的第2碰撞檢測(cè)用數(shù)據(jù)作為物體的碰撞檢測(cè)用數(shù)據(jù);處理部,其基于上述第I碰撞檢測(cè)用數(shù)據(jù)和上述第2碰撞檢測(cè)用數(shù)據(jù)來進(jìn)行世界坐標(biāo)系中的上述第I物體和上述第2物體的碰撞判定;以及控制部,其基于由上述處理部進(jìn)行的上述碰撞判定的結(jié)果來控制上述可動(dòng)部的動(dòng)作,上述存儲(chǔ)部存儲(chǔ)將在上述物體的模型坐標(biāo)系中從規(guī)定的視點(diǎn)觀察上述物體時(shí)的深度映射數(shù)據(jù)利用設(shè)定在上述模型坐標(biāo)系中的立方體區(qū)域進(jìn)行離散化而得到的代表點(diǎn)數(shù)據(jù),作為上述碰撞檢測(cè)用數(shù)據(jù)。
[0031]另外本發(fā)明的另一其他方式涉及如下的碰撞檢測(cè)用數(shù)據(jù)生成方法,獲取物體的模型坐標(biāo)系中的從規(guī)定的視點(diǎn)觀察上述物體時(shí)的深度映射數(shù)據(jù),并利用設(shè)定在上述物體的上述模型坐標(biāo)系中的立方體區(qū)域?qū)ι鲜錾疃扔成鋽?shù)據(jù)進(jìn)行離散化,并將進(jìn)行上述離散化而得到的代表點(diǎn)數(shù)據(jù)作為上述碰撞檢測(cè)用數(shù)據(jù)來生成。
[0032]另外,本發(fā)明的另一其他方式涉及如下的程序,使計(jì)算機(jī)作為如下部分發(fā)揮作用,即、深度映射數(shù)據(jù)獲取部,其獲取物體的模型坐標(biāo)系中的從規(guī)定的視點(diǎn)觀察上述物體時(shí)的深度映射數(shù)據(jù);和碰撞檢測(cè)用數(shù)據(jù)生成部,其生成上述物體的上述模型坐標(biāo)系中的代表點(diǎn)數(shù)據(jù)作為上述碰撞檢測(cè)用數(shù)據(jù),上述碰撞檢測(cè)用數(shù)據(jù)生成部利用設(shè)定在上述物體的上述模型坐標(biāo)系中的立方體區(qū)域?qū)ι鲜錾疃扔成鋽?shù)據(jù)進(jìn)行離散化,從而生成上述代表點(diǎn)數(shù)據(jù)。
【專利附圖】

【附圖說明】
[0033]圖1 (A)是本實(shí)施方式的碰撞檢測(cè)用數(shù)據(jù)生成裝置的構(gòu)成例。圖1 (B)是本實(shí)施方式的碰撞檢測(cè)系統(tǒng)的構(gòu)成例。
[0034]圖2 (A)是包含本實(shí)施方式的碰撞檢測(cè)系統(tǒng)的機(jī)械手系統(tǒng)的例子。圖2 (B)是包含本實(shí)施方式的碰撞檢測(cè)系統(tǒng)的機(jī)械手的例子。
[0035]圖3是關(guān)于碰撞檢測(cè)用數(shù)據(jù)的生成方法的說明圖。
[0036]圖4是關(guān)于碰撞檢測(cè)用數(shù)據(jù)的生成方法的說明圖。
[0037]圖5是關(guān)于碰撞檢測(cè)用數(shù)據(jù)的生成方法的說明圖。
[0038]圖6是關(guān)于碰撞檢測(cè)用數(shù)據(jù)的生成方法的說明圖。
[0039]圖7是關(guān)于碰撞檢測(cè)用數(shù)據(jù)的生成方法的說明圖。
[0040]圖8是關(guān)于碰撞檢測(cè)用數(shù)據(jù)的生成方法的說明圖。
[0041]圖9 (A)?圖9 (C)是本實(shí)施方式的碰撞檢測(cè)用數(shù)據(jù)生成裝置所生成的四叉樹結(jié)構(gòu)的數(shù)據(jù)的例子。
[0042]圖10 (A)、圖10 (B)是本實(shí)施方式的碰撞檢測(cè)用數(shù)據(jù)生成裝置所生成的四叉樹結(jié)構(gòu)的數(shù)據(jù)的例子。
[0043]圖11 (A)?圖11 (C)是本實(shí)施方式的碰撞檢測(cè)用數(shù)據(jù)生成裝置所生成的四叉樹結(jié)構(gòu)的數(shù)據(jù)的例子。
[0044]圖12是關(guān)于碰撞檢測(cè)的方法的說明圖。
[0045]圖13 (A)?圖13 (C)是關(guān)于碰撞檢測(cè)的方法的說明圖。
[0046]圖14是關(guān)于碰撞檢測(cè)的方法的說明圖。
[0047]圖15是關(guān)于碰撞檢測(cè)的方法的說明圖。
[0048]圖16是關(guān)于碰撞檢測(cè)的方法的說明圖。
[0049]圖17是本實(shí)施方式的碰撞檢測(cè)用數(shù)據(jù)生成裝置的詳細(xì)構(gòu)成例。[0050]圖18是碰撞檢測(cè)用數(shù)據(jù)生成處理的流程圖。
[0051]圖19是一層的數(shù)據(jù)生成處理的詳細(xì)流程圖。
[0052]圖20是四叉樹結(jié)構(gòu)生成處理的詳細(xì)流程圖。
[0053]圖21是本實(shí)施方式的碰撞檢測(cè)系統(tǒng)的詳細(xì)構(gòu)成例。
[0054]圖22是碰撞檢測(cè)處理的流程圖。
[0055]圖23是遞歸的節(jié)點(diǎn)對(duì)碰撞檢測(cè)處理的詳細(xì)流程圖。
【具體實(shí)施方式】
[0056]以下,對(duì)本發(fā)明的優(yōu)選實(shí)施方式進(jìn)行詳細(xì)說明。此外,以下說明的本實(shí)施方式并無不當(dāng)?shù)叵薅?quán)利要求書所記載的本發(fā)明的內(nèi)容,在本實(shí)施方式中說明的構(gòu)成的全部作為本發(fā)明的解決手段未必是必需的。
[0057]1.構(gòu)成
[0058]在機(jī)械手(機(jī)械臂)的動(dòng)作中,與周邊構(gòu)造物、周邊設(shè)備的碰撞、自碰撞、與其他的機(jī)械手的碰撞成為非常大的問題。在本實(shí)施方式的碰撞檢測(cè)方法中,通過模擬預(yù)先檢測(cè)這樣的碰撞。
[0059]作為使用這樣的本實(shí)施方式的碰撞檢測(cè)方法的方式,可以認(rèn)為大致分為離線中的使用(預(yù)先確認(rèn))、和運(yùn)行時(shí)間中的使用(預(yù)測(cè)、預(yù)讀)。在離線的使用中,在周邊環(huán)境等是已知并且是靜態(tài)的、機(jī)械手的動(dòng)作是已知的情況下,在系統(tǒng)作成時(shí),驗(yàn)證該碰撞。另一方面,在運(yùn)行時(shí)間的使用中,在周邊環(huán)境等動(dòng)態(tài)地變化的情況(例如在周圍存在多個(gè)機(jī)械手,或者存在作業(yè)者的情況)下,在機(jī)械手的實(shí)際動(dòng)作之前,通過模擬來檢測(cè)碰撞。
[0060]在以往,作為這樣的機(jī)械手中的碰撞檢測(cè)方法,使用以能夠得到物體(對(duì)象)的多邊形數(shù)據(jù)為前提的算法的情況較多。多邊形數(shù)據(jù)是在設(shè)計(jì)物體的結(jié)構(gòu)時(shí)等通過多個(gè)多邊形的組合來表現(xiàn)物體的形狀的CAD數(shù)據(jù)。然而,存在成為碰撞檢測(cè)的對(duì)象的物體多種多樣,針對(duì)它們?nèi)康玫紺AD數(shù)據(jù)實(shí)際上很困難這樣的課題。
[0061]另外,如上述的專利文獻(xiàn)1,在使用多邊形數(shù)據(jù)的以往的碰撞檢測(cè)方法中,具有對(duì)于各多邊形生成二叉樹結(jié)構(gòu)的球面數(shù)據(jù),并使用該數(shù)據(jù)來進(jìn)行碰撞檢測(cè)的方法。然而,在這樣的方法中,產(chǎn)生大量的不必要的碰撞檢測(cè)用數(shù)據(jù)、不必要的碰撞檢測(cè)處理,所以進(jìn)行高效的碰撞檢測(cè)很困難。
[0062]具體而言,描述現(xiàn)實(shí)的物體的多邊形數(shù)據(jù)未必僅包含在碰撞檢測(cè)中重要的物體表面的多邊形數(shù)據(jù)。作為在碰撞檢測(cè)中不重要的多邊形數(shù)據(jù),大量地包含有表現(xiàn)物體內(nèi)部的多邊形數(shù)據(jù)、表現(xiàn)從物體的外部看不見部分的多邊形數(shù)據(jù)等。若根據(jù)這樣的多邊形數(shù)據(jù)以多邊形為單位生成球面數(shù)據(jù),則在二叉樹結(jié)構(gòu)的數(shù)據(jù)中大量地包含有與碰撞檢測(cè)沒有關(guān)系的球面數(shù)據(jù)。在專利文獻(xiàn)I中,對(duì)于針對(duì)這樣的在碰撞檢測(cè)中不重要的多邊形數(shù)據(jù)的處理方法沒有說明,即使對(duì)與碰撞檢測(cè)沒有關(guān)系的球面數(shù)據(jù)也進(jìn)行碰撞檢測(cè)處理會(huì)導(dǎo)致低效率的處理。
[0063]另外,在描述現(xiàn)實(shí)的物體的多邊形數(shù)據(jù)中,包含涉及非常多方面的大小的多邊形,以同一算法處理這些多邊形并不高效。例如,在機(jī)械手的零件、機(jī)械手所操作的工具類中細(xì)棒上的物體較多,以微小的多邊形表現(xiàn)這樣的物體。另外,在物體是復(fù)雜的形狀等時(shí),也使用多個(gè)微小的多邊形。可以認(rèn)為覆蓋多邊形的球的大小是接近的允許范圍程度的大小即可,所以在以樹結(jié)構(gòu)的數(shù)據(jù)表現(xiàn)以比該球小的多邊形表現(xiàn)的結(jié)構(gòu)的情況下,數(shù)據(jù)變得非常冗長(zhǎng)。這樣的話,雖然微小的結(jié)構(gòu)在碰撞檢測(cè)中成為重要的情況較少,但由于微小的結(jié)構(gòu)而大量地產(chǎn)生不必要的碰撞檢測(cè)處理。
[0064]在圖1 (A)中,示出能夠解決如以上那樣的問題的本實(shí)施方式的碰撞檢測(cè)用數(shù)據(jù)生成裝置的構(gòu)成例。此外,本實(shí)施方式的碰撞檢測(cè)用數(shù)據(jù)生成裝置的構(gòu)成并不限于圖1(A)的構(gòu)成,能夠進(jìn)行省略其一部分的構(gòu)成要素(例如操作部、外部I / F部等),或者追加其他的構(gòu)成要素等各種的變形實(shí)施。
[0065]該碰撞檢測(cè)用數(shù)據(jù)生成裝置包含處理部110、和存儲(chǔ)部150。另外碰撞檢測(cè)用數(shù)據(jù)生成裝置能夠包含操作部170、外部I / F (接口)部180、和信息存儲(chǔ)介質(zhì)190。該碰撞檢測(cè)用數(shù)據(jù)生成裝置例如由信息處理裝置構(gòu)成,通過該信息處理裝置的硬件、程序來實(shí)現(xiàn)碰撞檢測(cè)用數(shù)據(jù)生成裝置。
[0066]處理部110進(jìn)行各種數(shù)據(jù)生成處理、控制處理等,例如能夠通過CPU等各種處理器或?qū)S秒娐?ASIC)等硬件、在處理器上執(zhí)行的程序等來實(shí)現(xiàn)。處理部110包含深度映射數(shù)據(jù)獲取部112、和碰撞檢測(cè)用數(shù)據(jù)生成部114。
[0067]深度映射數(shù)據(jù)獲取部112進(jìn)行獲取用于生成碰撞檢測(cè)用數(shù)據(jù)的深度映射數(shù)據(jù)的處理。這里所謂深度映射是通過從規(guī)定的視點(diǎn)(例如無限遠(yuǎn)的視點(diǎn))觀察的情況下的物體的深度值表示的映射,是對(duì)像素單位的深度值進(jìn)行矩陣排列而成的映射。向深度映射數(shù)據(jù)獲取部112例如輸入預(yù)先保存在信息存儲(chǔ)介質(zhì)190中的CAD數(shù)據(jù),或者經(jīng)由外部I / F部180輸入來自未圖示的三維信息測(cè)量裝置(例如3D掃描儀)的測(cè)量信息。而且,深度映射數(shù)據(jù)獲取部112根據(jù)輸入的CAD數(shù)據(jù)、測(cè)量信息來生成深度映射數(shù)據(jù)。
[0068]碰撞檢測(cè)用數(shù)據(jù)生成部114進(jìn)行根據(jù)深度映射數(shù)據(jù)來生成用于在碰撞檢測(cè)處理中使用的數(shù)據(jù)的處理。具體而言,如利用圖3等后述,在立方體區(qū)域中對(duì)深度映射數(shù)據(jù)中的位置以及深度值進(jìn)行離散化,并生成覆蓋物體的表面的被離散化的代表值數(shù)據(jù)作為碰撞檢測(cè)用數(shù)據(jù)。碰撞檢測(cè)用數(shù)據(jù)生成部114 一邊依次分割(或者合并)立方體領(lǐng)域的尺寸,一邊生成代表點(diǎn)數(shù)據(jù),并構(gòu)成表示該分割(或者合并)的從屬關(guān)系的樹結(jié)構(gòu)的數(shù)據(jù)。生成的碰撞檢測(cè)用數(shù)據(jù)被儲(chǔ)存到信息存儲(chǔ)介質(zhì)190中。
[0069]存儲(chǔ)部150成為處理部110等的工作區(qū)域,能夠通過RAM (SRAM、DRAM等)等存儲(chǔ)器來實(shí)現(xiàn)。操作部170是用于使用者輸入各種操作信息的。外部I / F部180與外部之間以有線、無線的方式進(jìn)行信息的通信處理等。信息存儲(chǔ)介質(zhì)190 (通過計(jì)算機(jī)可讀取的介質(zhì))儲(chǔ)存程序、數(shù)據(jù)等,其功能能夠通過光盤、HDD、或者存儲(chǔ)器等實(shí)現(xiàn)。處理部110基于儲(chǔ)存在信息存儲(chǔ)介質(zhì)190中的程序(數(shù)據(jù))來進(jìn)行本實(shí)施方式的各種處理。即、在信息存儲(chǔ)介質(zhì)190中存儲(chǔ)用于使計(jì)算機(jī)(具備操作部、處理部、存儲(chǔ)部、輸出部的裝置)作為本實(shí)施方式的各部發(fā)揮作用的程序(用于使計(jì)算機(jī)執(zhí)行各部的處理的程序)。
[0070]在圖1 (B)中,示出能夠解決上述的問題的本實(shí)施方式的碰撞檢測(cè)系統(tǒng)的構(gòu)成例。此外,本實(shí)施方式的碰撞檢測(cè)系統(tǒng)的構(gòu)成并不限于圖1 (B)的構(gòu)成,能夠進(jìn)行省略其一部分的構(gòu)成要素(例如操作部、外部I / F部等),或者追加其他的構(gòu)成要素等的各種變形實(shí)施。
[0071]該碰撞檢測(cè)系統(tǒng)包含處理部10、和存儲(chǔ)部50。另外碰撞檢測(cè)系統(tǒng)能夠包含操作部70、外部I / F (接口)部80、和信息存儲(chǔ)介質(zhì)90。
[0072]存儲(chǔ)部50成為處理部10等的工作區(qū)域,能夠通過RAM (SRAM、DRA M等)等存儲(chǔ)器實(shí)現(xiàn)。該存儲(chǔ)部50包含代表點(diǎn)數(shù)據(jù)存儲(chǔ)部52。
[0073]代表點(diǎn)數(shù)據(jù)存儲(chǔ)部52存儲(chǔ)由碰撞檢測(cè)用數(shù)據(jù)生成裝置生成的碰撞檢測(cè)用數(shù)據(jù)。例如,與碰撞檢測(cè)系統(tǒng)獨(dú)立地構(gòu)成碰撞檢測(cè)用數(shù)據(jù)生成裝置,碰撞檢測(cè)用數(shù)據(jù)經(jīng)由外部
I/ F部80被存儲(chǔ)到信息存儲(chǔ)介質(zhì)90中。而且,在執(zhí)行碰撞檢測(cè)處理時(shí),處理部10將信息存儲(chǔ)介質(zhì)90的碰撞檢測(cè)用數(shù)據(jù)展開到存儲(chǔ)部50的RAM中,并參照該RAM上的數(shù)據(jù)進(jìn)行碰撞檢測(cè)處理。此外,也可以與碰撞檢測(cè)系統(tǒng)一體地構(gòu)成碰撞檢測(cè)用數(shù)據(jù)生成裝置。該情況下,深度映射數(shù)據(jù)獲取部112和碰撞檢測(cè)用數(shù)據(jù)生成部114包含于處理部10,由處理部10生成的碰撞檢測(cè)用數(shù)據(jù)儲(chǔ)存在信息存儲(chǔ)介質(zhì)90中。
[0074]處理部10進(jìn)行各種判定處理、控制處理等,例如能夠通過CPU等各種處理器、專用電路(ASIC)等硬件、在處理器上執(zhí)行的程序等來實(shí)現(xiàn)。處理部10包含對(duì)象空間設(shè)定部12、和碰撞判定部14。
[0075]對(duì)象空間設(shè)定部12進(jìn)行將多個(gè)物體配置設(shè)定在對(duì)象空間的處理等。具體而言,決定在世界坐標(biāo)系中的物體的位置、旋轉(zhuǎn)角度,在該位置上以該旋轉(zhuǎn)角度配置物體。這里所謂世界坐標(biāo)系是在進(jìn)行碰撞檢測(cè)處理的空間中所設(shè)定的坐標(biāo)系,是對(duì)碰撞檢測(cè)對(duì)象的物體共用地設(shè)定的坐標(biāo)系。另外所謂物體(對(duì)象),是將機(jī)械手等碰撞檢測(cè)對(duì)象物、周邊構(gòu)造物、周邊設(shè)備等被碰撞檢測(cè)對(duì)象物進(jìn)行了模型化的物體。在本實(shí)施方式中,分別對(duì)各物體設(shè)定模型坐標(biāo)系,通過該模型坐標(biāo)系中的代表點(diǎn)數(shù)據(jù)來表現(xiàn)物體。對(duì)象空間設(shè)定部12將該模型坐標(biāo)系中的代表點(diǎn)數(shù)據(jù)的坐標(biāo)變換為世界坐標(biāo)系中的坐標(biāo),從而在世界坐標(biāo)系中配置多個(gè)物體。
[0076]碰撞判定部14進(jìn)行碰撞檢測(cè)對(duì)象的物體(第I物體)與被碰撞檢測(cè)對(duì)象的物體(第2物體)之間的碰撞判定處理。具體而言,如利用圖8以后后述,以立方體區(qū)域的尺寸較大的上位層的代表點(diǎn)數(shù)據(jù)進(jìn)行碰撞判定,在存在判定為碰撞(有碰撞的可能性)的節(jié)點(diǎn)的情況下,以該節(jié)點(diǎn)的子節(jié)點(diǎn)的代表點(diǎn)數(shù)據(jù)進(jìn)行碰撞判定。在最下位層存在判定為碰撞的節(jié)點(diǎn)的情況下,明確判定為碰撞,在與最下位層相比上位的層判定為無碰撞(沒有碰撞的可能性)的情況下,不進(jìn)行與該判定為無碰撞的層相比下位層的碰撞判定,明確判定為無碰撞。
[0077]操作部70用于使用者輸入各種操作信息。外部I / F部80與外部之間以有線、無線的方式進(jìn)行信息的通信處理等。信息存儲(chǔ)介質(zhì)90 (通過計(jì)算機(jī)可讀取的介質(zhì))儲(chǔ)存程序、數(shù)據(jù)等,其功能能夠通過光盤、HDD、或者存儲(chǔ)器等實(shí)現(xiàn)。處理部10基于儲(chǔ)存在信息存儲(chǔ)介質(zhì)90中的程序(數(shù)據(jù))來進(jìn)行本實(shí)施方式的各種處理。即、在信息存儲(chǔ)介質(zhì)90中,存儲(chǔ)用于使計(jì)算機(jī)(具備操作部、處理部、存儲(chǔ)部、輸出部的裝置)作為本實(shí)施方式的各部發(fā)揮作用的程序(用于使計(jì)算機(jī)執(zhí)行各部的處理的程序)。
[0078]如以上,以立方體區(qū)域?qū)ι疃扔成鋽?shù)據(jù)進(jìn)行離散化并生成碰撞檢測(cè)用數(shù)據(jù),從而即使是不能夠得到CAD數(shù)據(jù)的物體也能夠進(jìn)行碰撞檢測(cè)。另外,代表點(diǎn)數(shù)據(jù)僅以在碰撞檢測(cè)中表示重要的物體表面的數(shù)據(jù)構(gòu)成,所以能夠進(jìn)行高效的碰撞檢測(cè)處理。另外,代表點(diǎn)數(shù)據(jù)是不受多邊形的大小影響的非冗長(zhǎng)的數(shù)據(jù),所以能夠抑制不必要的碰撞檢測(cè)處理。
[0079]在圖2 (A)中示出包含本實(shí)施方式的碰撞檢測(cè)系統(tǒng)的機(jī)械手系統(tǒng)的例子。該機(jī)械手系統(tǒng)包含控制裝置300 (信息處理裝置)和機(jī)械手310。控制裝置300進(jìn)行機(jī)械手310的控制處理。具體而言,基于動(dòng)作順序信息(方案信息)來進(jìn)行使機(jī)械手310動(dòng)作的控制。機(jī)械手310具有臂320以及手部(把持部)330等可動(dòng)部。而且可動(dòng)部根據(jù)來自控制裝置300的動(dòng)作指示進(jìn)行動(dòng)作。例如,進(jìn)行把持或者移動(dòng)放置在未圖示的托盤上的工件等的動(dòng)作。另外,基于由未圖示的拍攝裝置獲取的拍攝圖像信息來檢測(cè)機(jī)械手的姿勢(shì)、工件的位置等信息,檢測(cè)出的信息被發(fā)送至控制裝置300。
[0080]這里所謂可動(dòng)部是通過可動(dòng)部動(dòng)作來改變(或者移動(dòng))物體間的相對(duì)的距離、姿勢(shì)的。例如,本實(shí)施方式的機(jī)械手310具有機(jī)械手臂320、手部330,在使該機(jī)械手臂320、手部330移動(dòng)來進(jìn)行作業(yè)的情況下,構(gòu)成該機(jī)械手臂320、手部330的各零件、連接該零件的關(guān)節(jié)相當(dāng)于可動(dòng)部。在該例中,例如手部330保持(或者把持、吸附等)物體,機(jī)械手臂320、手部330動(dòng)作,從而手部330所保持的物體與機(jī)械手310周邊的物體(例如構(gòu)造物、設(shè)置物、部件等)相對(duì)地移動(dòng)。或者,通過機(jī)械手臂320、手部330動(dòng)作,從而構(gòu)成機(jī)械手臂320、手部330的零件和機(jī)械手310周邊的物體相對(duì)地移動(dòng),或者,以機(jī)械手臂320、手部330的關(guān)節(jié)連接的零件和零件相對(duì)地移動(dòng)。在本實(shí)施方式中,檢測(cè)像這樣通過可動(dòng)部來移動(dòng)的物體間的碰撞。
[0081]本實(shí)施方式的碰撞檢測(cè)系統(tǒng)例如設(shè)置在圖2 (A)`的控制裝置300,例如通過控制裝置300的硬件、程序來實(shí)現(xiàn)碰撞檢測(cè)系統(tǒng)。而且,在運(yùn)行時(shí)間的使用中,在周邊環(huán)境等動(dòng)態(tài)地變化的情況下,在機(jī)械手310的實(shí)際動(dòng)作之前,本實(shí)施方式的碰撞檢測(cè)系統(tǒng)通過模擬進(jìn)行碰撞的判定處理。而且,為了機(jī)械手310不碰撞周邊構(gòu)造物、周邊設(shè)備等,控制裝置300基于判定處理的結(jié)果來進(jìn)行機(jī)械手310的控制。另一方面,在離線的使用中,通過本實(shí)施方式的碰撞檢測(cè)系統(tǒng),在作成動(dòng)作順序信息等時(shí)通過模擬來驗(yàn)證碰撞。而且控制裝置300基于為了不發(fā)生碰撞而作成的動(dòng)作順序信息(方案信息)來控制機(jī)械手310。
[0082]此外,圖2 (A)是機(jī)械手310和控制裝置300獨(dú)立存在的機(jī)械手系統(tǒng)的例子,但在本實(shí)施方式中,也可以是控制裝置300內(nèi)置于機(jī)械手310中的機(jī)械手。
[0083]在圖2 (B)中示出包含本實(shí)施方式的碰撞檢測(cè)系統(tǒng)的機(jī)械手的例子。該機(jī)械手包含機(jī)械手主體310 (具有臂320以及手部330)、和支撐機(jī)械手主體310的基座單元部,在該基座單元部中內(nèi)置有控制裝置300。在圖2 (B)的機(jī)械手中,在基座單元部上設(shè)置有車輪等,機(jī)械手整體成為能夠移動(dòng)的構(gòu)成。此外,圖2 (A)是單臂型的例子,但如圖2 (B)所示機(jī)械手也可以是雙臂型等多臂型的機(jī)械手。此外,機(jī)械手的移動(dòng)也可以以人工進(jìn)行,也可以設(shè)置驅(qū)動(dòng)車輪的馬達(dá),通過控制裝置300控制該馬達(dá)來進(jìn)行。
[0084]2.碰撞檢測(cè)用數(shù)據(jù)的生成方法
[0085]接下來,對(duì)本實(shí)施方式中的碰撞檢測(cè)用數(shù)據(jù)的生成方法進(jìn)行說明。此外,在圖3~圖?中,對(duì)物體OB設(shè)定模型坐標(biāo)系,將該模型坐標(biāo)系作為以右旋坐標(biāo)系的正交XYZ坐標(biāo)表示的坐標(biāo)系。
[0086]如圖3所示,深度映射數(shù)據(jù)獲取部112獲取從規(guī)定的視點(diǎn)(視線方向)觀察物體OB時(shí)的深度映射數(shù)據(jù)ZD。規(guī)定的視點(diǎn)例如是從+ Z方向偵彳、一 Z方向偵彳、+ X方向側(cè)、一 X方向側(cè)、十Y方向側(cè)、一 Y方向側(cè)觀察物體OB的6個(gè)視點(diǎn)(視線方向)。深度映射數(shù)據(jù)獲取部112分別對(duì)這6個(gè)視點(diǎn)獲取深度映射數(shù)據(jù)。在圖3中,作為例子示出從+ Z方向側(cè)的視點(diǎn)觀察時(shí)的深度映射數(shù)據(jù)ZD的XZ平面中的剖視圖。在該例中,深度映射數(shù)據(jù)的深度值沿著模型坐標(biāo)系的Z軸變化,深度映射數(shù)據(jù)上的位置(像素位置)沿著模型坐標(biāo)系的X軸、Y軸變化。
[0087]碰撞檢測(cè)用數(shù)據(jù)生成部114以規(guī)定的間隔對(duì)X坐標(biāo)、Y坐標(biāo)、Z坐標(biāo)進(jìn)行離散化,將設(shè)定了模型坐標(biāo)系的空間(以下適當(dāng)?shù)胤Q為模型空間)離散化為立方體區(qū)域CA。該立方體區(qū)域CA是相對(duì)于模型空間以及物體OB固定的區(qū)域,在從上述的6個(gè)視點(diǎn)的任意一個(gè)觀察的情況下都設(shè)定為同一位置。
[0088]碰撞檢測(cè)用數(shù)據(jù)生成部114沿著方向DS (例如+ X方向)掃描離散化的模型空間,在與物體OB的表面(輪廓)對(duì)應(yīng)的立方體區(qū)域CAH上設(shè)定代表點(diǎn)PA。具體而言,在關(guān)注同一 XY坐標(biāo)的立方體區(qū)域的列DIR的情況下,如Al所示,在從視點(diǎn)觀察列DIR時(shí)最初與物體OB交叉的立方體區(qū)域上設(shè)定代表點(diǎn)。而且,一邊沿著方向DS移動(dòng)一邊依次進(jìn)行該處理,在從視點(diǎn)觀察時(shí)的物體OB的表面上設(shè)定代表點(diǎn)PA。代表點(diǎn)例如設(shè)定在立方體區(qū)域的重心上,由該重心的XYZ坐標(biāo)表示。在深度映射數(shù)據(jù)中與最背面對(duì)應(yīng)的區(qū)域上未設(shè)定代表點(diǎn)PA。最背面是在能夠以深度值表現(xiàn)的深度范圍中成為距離視點(diǎn)最遠(yuǎn)的深度的面。
[0089]這里在模型空間中的離散化相當(dāng)于在深度映射數(shù)據(jù)中對(duì)深度值和其位置進(jìn)行離散化,與模型空間的代表點(diǎn)對(duì)應(yīng),決定深度映射數(shù)據(jù)中的代表深度值和代表位置。在圖3的例子中,代表點(diǎn)的Z坐標(biāo)和代表深度值相對(duì)應(yīng),代表點(diǎn)的XY坐標(biāo)和代表位置相對(duì)應(yīng)。
[0090]如圖4所示,碰撞檢測(cè)用數(shù)據(jù)生成部114例如一邊在+ Y方向上依次移動(dòng)一邊進(jìn)行+ X方向的掃描,對(duì)離散化的XY坐標(biāo)的全部進(jìn)行代表點(diǎn)PA的設(shè)定處理。在圖4中,僅圖示設(shè)定的代表點(diǎn)PA的一部分,但以若掃描結(jié)束則覆蓋物體OB的方式設(shè)定代表點(diǎn)PA。
[0091]那么,如圖5的BI所示,有時(shí)即使進(jìn)行上述的代表點(diǎn)的設(shè)定處理也不能以代表點(diǎn)完全覆蓋物體OB的表面。這是因?yàn)閮H在具有同一 XY坐標(biāo)的立方體區(qū)域中的一個(gè)立方體區(qū)域中設(shè)定代表點(diǎn)。在使用這樣的缺少代表點(diǎn)的數(shù)據(jù)進(jìn)行碰撞判定的情況下,若其他的物體從一 X方向側(cè)接近BI所示的立方體區(qū)域,則有可能不能夠正確地檢測(cè)出碰撞。
[0092]因此,如圖6的El所示,碰撞檢測(cè)用數(shù)據(jù)生成部114以連續(xù)地覆蓋物體OB的表面的方式進(jìn)行增補(bǔ)(補(bǔ)充)代表點(diǎn)的處理。具體而言,在關(guān)注(作為處理對(duì)象)了圖5的B2所示的代表點(diǎn)和立方體區(qū)域的情況下,判定在B3所示的周圍26個(gè)附近的立方體區(qū)域中是否缺少代表點(diǎn)。即、如B4所示,在從視點(diǎn)觀察周圍26個(gè)附近的立方體區(qū)域時(shí),在與該周圍26個(gè)附近的立方體區(qū)域相比更靠遠(yuǎn)方側(cè)(進(jìn)深方向側(cè),在圖5中為一 Z方向側(cè))存在代表點(diǎn)的情況下,在與B2所示的立方體領(lǐng)域的遠(yuǎn)方側(cè)鄰接的BI所示的立方體區(qū)域上增補(bǔ)代表點(diǎn)。這里所謂周圍26個(gè)附近的立方體區(qū)域是包圍關(guān)注的立方體區(qū)域的最近的26 (= 3X3X3 一I)個(gè)立方體區(qū)域。在圖5中,由于圖示二維的剖視圖所以為8個(gè)附近,但在三維中,相對(duì)于關(guān)注的立方體區(qū)域加上在土Y方向側(cè)存在的立方體區(qū)域而成為26個(gè)附近。
[0093]碰撞檢測(cè)用數(shù)據(jù)生成部114 一邊在方向DS (例如+ X方向)上掃描一邊進(jìn)行上述那樣的增補(bǔ)處理,如圖5的B5、B6所示對(duì)缺少代表點(diǎn)的立方體區(qū)域如圖6的E2、E3所示增補(bǔ)代表點(diǎn)。而且,例如一邊在+ Y方向上依次移動(dòng)一邊進(jìn)行方向DS的掃描,并對(duì)離散化的XY坐標(biāo)的全部進(jìn)行增補(bǔ)處理。
[0094]如以上所示,生成最終連續(xù)地覆蓋物體OB的表面的代表點(diǎn)數(shù)據(jù),從而能夠正確地檢測(cè)與物體OB的碰撞可能性。此外,在關(guān)注的代表點(diǎn)(圖5的B2)的遠(yuǎn)方側(cè)(BI)增補(bǔ)代表點(diǎn)是為了不使物體OB的凸部變大。假設(shè)若在與關(guān)注的代表點(diǎn)相比離視點(diǎn)較近的一側(cè)增補(bǔ)代表點(diǎn),則例如不是在B6所示的立方體區(qū)域而是在B7所示的立方體區(qū)域增補(bǔ)代表點(diǎn)。這樣的話,與實(shí)際的凸部相比,代表點(diǎn)所表現(xiàn)的凸部不必要地變大,有可能實(shí)際上雖然不與凸部碰撞但也被判定為存在碰撞可能性。在本實(shí)施方式中在關(guān)注的代表點(diǎn)的遠(yuǎn)方側(cè)增補(bǔ)代表點(diǎn),所以不使凸部變大,能夠進(jìn)行正確的碰撞判定。
[0095]這里在圖5中,以B2的立方體區(qū)域和B4的立方體區(qū)域的間隔是一個(gè)立方體區(qū)域的情況為例進(jìn)行了說明,但在間隔是2個(gè)立方體區(qū)域以上的情況下,對(duì)這2個(gè)以上的立方體區(qū)域增補(bǔ)代表點(diǎn)。例如假設(shè)B4所示的代表點(diǎn)存在于B8所示的位置上的情況下,除了 BI所示的立方體區(qū)域之外在B9所示的立方體區(qū)域上也增補(bǔ)代表點(diǎn)。
[0096]在圖7中,是從+ X方向側(cè)的視點(diǎn)觀察時(shí)的深度映射數(shù)據(jù)ZD’的XZ平面中的剖視圖。在圖7中,深度映射數(shù)據(jù)的深度值沿著模型坐標(biāo)系的X軸變化,深度映射數(shù)據(jù)中的位置(像素位置)沿著模型坐標(biāo)系的Y軸、Z軸變化。
[0097]如圖7所示,碰撞檢測(cè)用數(shù)據(jù)生成部114對(duì)于從+ Z方向側(cè)觀察的視點(diǎn)以外的視點(diǎn),也通過上述的方法根據(jù)深度映射數(shù)據(jù)ZD’生成代表點(diǎn)數(shù)據(jù)。此時(shí),如圖7的Fl所示的代表點(diǎn),存在與在圖6的E4所示的其他的視點(diǎn)上的代表點(diǎn)重復(fù)的情況。碰撞檢測(cè)用數(shù)據(jù)生成部114刪除如Fl所示的重復(fù)的代表點(diǎn),生成在從+ X方向側(cè)觀察的視點(diǎn)上的最終的代表點(diǎn)數(shù)據(jù)。而且,將在6個(gè)視點(diǎn)上生成的代表點(diǎn)數(shù)據(jù)合在一起,生成從全部的視點(diǎn)觀察以代表點(diǎn)覆蓋物體OB的表面那樣的碰撞檢測(cè)用數(shù)據(jù)。
[0098]如圖8所示,碰撞檢測(cè)用數(shù)據(jù)生成部114改變立方體區(qū)域的尺寸對(duì)模型空間進(jìn)行離散化,生成與該立方體區(qū)域CB對(duì)應(yīng)的代表點(diǎn)PB的數(shù)據(jù)。立方體區(qū)域CB的尺寸是立方體區(qū)域CA的邊的長(zhǎng)度的2倍的尺寸,對(duì)立方體區(qū)域CB進(jìn)行2X2X2分割后的各區(qū)域與立方體區(qū)域CA對(duì)應(yīng)。碰撞檢測(cè)用數(shù)據(jù)生成部114這樣依次增大立方體區(qū)域的尺寸并進(jìn)行數(shù)據(jù)生成處理,生成與各尺寸對(duì)應(yīng)的代表點(diǎn)數(shù)據(jù),并將其合并來生成四叉樹結(jié)構(gòu)的數(shù)據(jù)。在四叉樹中最上位的立方體區(qū)域是內(nèi)含物體OB的立方體區(qū)域(包圍盒(bounding box))。另外在四叉樹中最下位層的立方體區(qū)域的尺寸設(shè)為例如在機(jī)械手等的碰撞檢測(cè)中的允許誤差程度(例如數(shù)cm)即可。
[0099]在以上說明的每層的處理中一層的處理相當(dāng)于對(duì)深度映射進(jìn)行三維向量量化。另夕卜,碰撞檢測(cè)用數(shù)據(jù)相當(dāng)于將三維向量量化的量化步長(zhǎng)不同的數(shù)據(jù)合并到四叉樹結(jié)構(gòu)中的數(shù)據(jù)。三維向量量化中的量化步長(zhǎng)與立方體區(qū)域的尺寸對(duì)應(yīng),將量化步長(zhǎng)相同的數(shù)據(jù)作為同一層的數(shù)據(jù)合并到四叉樹結(jié)構(gòu)中。
[0100]此外,立方體區(qū)域CA、CB的尺寸比并不限于2倍,例如也可以是3倍、4倍等。并且,在上述中,以依次增大立方體區(qū)域的尺寸來生成數(shù)據(jù)的情況為例進(jìn)行了說明,但本實(shí)施方式并不局限于此,也可以一邊依次減小(例如為I / 2倍)立方體區(qū)域的尺寸一邊生成數(shù)據(jù)。
[0101]3.數(shù)據(jù)構(gòu)成例
[0102]在圖9 (A)?圖11 (C)中,是本實(shí)施方式的碰撞檢測(cè)用數(shù)據(jù)生成裝置所生成的四叉樹結(jié)構(gòu)的數(shù)據(jù)的例子。此外,以下,以將從+ Z方向側(cè)觀察的視點(diǎn)作為規(guī)定的視點(diǎn)生成3層的數(shù)據(jù)的情況為例進(jìn)行說明。
[0103]圖9 (A)是表示從+ Z方向側(cè)觀察時(shí)的立方體區(qū)域的分割關(guān)系的圖。區(qū)域A?V表示將立方體區(qū)域相對(duì)于XY平面垂直地投影的區(qū)域。區(qū)域A與內(nèi)含物體OB的立方體區(qū)域?qū)?yīng)。而且,按照內(nèi)含物體OB的立方體區(qū)域被2X2X2分割,再進(jìn)一步2X2X2分割該各立方體區(qū)域,從而區(qū)域A被2X 2分割為區(qū)域B?D,區(qū)域B?D被2X 2分割為區(qū)域F?1、J?M、O?R、S?V。[0104]如圖9 (B)所示,根據(jù)區(qū)域A?V的分割關(guān)系將代表點(diǎn)數(shù)據(jù)構(gòu)成為四叉樹結(jié)構(gòu)。即,在四叉樹結(jié)構(gòu)的最上位(根)的節(jié)點(diǎn)A上設(shè)定與圖9 (A)的區(qū)域A對(duì)應(yīng)的內(nèi)含物體OB的立方體區(qū)域的代表點(diǎn)數(shù)據(jù)。而且,在將節(jié)點(diǎn)A作為父節(jié)點(diǎn)的子節(jié)點(diǎn)B?E上設(shè)定存在于圖9(A)的區(qū)域B?E上的代表點(diǎn)數(shù)據(jù)。這里,在區(qū)域B?E上,分別在Z方向上排列2個(gè)立方體區(qū)域,該在Z方向上排列的2個(gè)立方體區(qū)域中基本上在一方上設(shè)定有代表點(diǎn)。例如,若分割設(shè)定有圖8的Gl所示的代表點(diǎn)的立方體區(qū)域,則成為圖3的A2所示的立方體區(qū)域。在從視點(diǎn)觀察圖3的A2所示的立方體區(qū)域時(shí),在Z方向上排列的2個(gè)立方體區(qū)域中在一方設(shè)定有代表點(diǎn)。在節(jié)點(diǎn)B?E上,基本上設(shè)定存在于這樣的2個(gè)立方體區(qū)域中一方的代表點(diǎn)數(shù)據(jù)。同樣在分別將節(jié)點(diǎn)B?E作為父節(jié)點(diǎn)的子節(jié)點(diǎn)F?1、J?M、O?R、S?V上,設(shè)定存在于圖9 (A)的區(qū)域F?1、J?M、O?R、S?V的代表點(diǎn)數(shù)據(jù)。
[0105]在圖9(C)上,示出各節(jié)點(diǎn)的數(shù)據(jù)構(gòu)成例。此外,為了簡(jiǎn)單,省略了節(jié)點(diǎn)C?E的子節(jié)點(diǎn)的圖示。如圖9 (C)所示,節(jié)點(diǎn)A?V由節(jié)點(diǎn)Axy?Vxy、和從屬于該節(jié)點(diǎn)Axy?Vxy的子節(jié)點(diǎn)Az?Vz構(gòu)成。在節(jié)點(diǎn)Axy?Vxy上存儲(chǔ)代表點(diǎn)的XY坐標(biāo),在子節(jié)點(diǎn)Az?Vz上存儲(chǔ)代表點(diǎn)的深度值(Z值)。雖然在從±X、土Y方向側(cè)觀察的視點(diǎn)上的代表點(diǎn)數(shù)據(jù)的情況下,深度值在X、Y方向上變化,但以深度值在Z方向上變化的方式進(jìn)行適當(dāng)?shù)淖鴺?biāo)變換來構(gòu)成四叉樹。或者,在從±Χ、土Y方向側(cè)觀察的視點(diǎn)上的代表點(diǎn)數(shù)據(jù)中,也可以在節(jié)點(diǎn)Axy?Vxy上存儲(chǔ)代表點(diǎn)的TL、ZX坐標(biāo),在子節(jié)點(diǎn)Az?Vz上存儲(chǔ)X、Y方向中的深度值。
[0106]這里,在多個(gè)子節(jié)點(diǎn)與上述的父節(jié)點(diǎn)連接的樹結(jié)構(gòu)中,將該節(jié)點(diǎn)的父子關(guān)系中的世代稱為數(shù)據(jù)的層。即,在節(jié)點(diǎn)的父子關(guān)系中同一世代的節(jié)點(diǎn)為同一層的節(jié)點(diǎn)。例如在圖9 (B)的例子中,根節(jié)點(diǎn)A構(gòu)成一個(gè)層,該根節(jié)點(diǎn)A的子節(jié)點(diǎn)B?E構(gòu)成一個(gè)層。而且,將子節(jié)點(diǎn)B?E作為父節(jié)點(diǎn)的子節(jié)點(diǎn)F?V (從根節(jié)點(diǎn)A來看是孫子一代的節(jié)點(diǎn))再構(gòu)成一個(gè)層。
[0107]在圖10 (A)中,示出進(jìn)行了以圖6等說明的代表點(diǎn)增補(bǔ)處理的情況下的數(shù)據(jù)構(gòu)成例。例如設(shè)為對(duì)節(jié)點(diǎn)C的代表點(diǎn)Ca,增補(bǔ)有在同一 XY坐標(biāo)中深度值不同的2個(gè)代表點(diǎn)Cb、Ce。該情況下,將這些同一 XY坐標(biāo)的3個(gè)代表點(diǎn)數(shù)據(jù)Ca、Cb、Ce設(shè)定為一個(gè)節(jié)點(diǎn)C。
[0108]具體而言,如圖10 (B)所示,將代表點(diǎn)數(shù)據(jù)Ca、Cb、Ce的共用的XY坐標(biāo)存儲(chǔ)到節(jié)點(diǎn)Cxy中,并在從屬于該節(jié)點(diǎn)Cxy的子節(jié)點(diǎn)Caz、Cbz、Ccz中分別存儲(chǔ)代表點(diǎn)數(shù)據(jù)Ca、Cb、Cc的深度值。假定與節(jié)點(diǎn)Cxy連接的子節(jié)點(diǎn)Caz、Cbz、Ccz例如由列表結(jié)構(gòu)構(gòu)成。若像這樣構(gòu)成數(shù)據(jù),則節(jié)點(diǎn)Axy?Vxy—定以四叉樹連接,所以即使存在增補(bǔ)數(shù)據(jù)也能夠構(gòu)成四叉樹結(jié)構(gòu)的數(shù)據(jù)。此外,在圖10 (B)中為了簡(jiǎn)單,省略節(jié)點(diǎn)C?E的子節(jié)點(diǎn)的圖示。
[0109]圖11 (A)是表示從+ Z方向側(cè)觀察時(shí)的物體OBX和立方體區(qū)域的圖。在圖11(A)的例子中,分割區(qū)域E而成的區(qū)域S?V中,與物體OBX交叉的區(qū)域只是S。因此如圖
11(B)所示,與節(jié)點(diǎn)E連接的子節(jié)點(diǎn)S?V中,存在代表點(diǎn)的只是節(jié)點(diǎn)S。
[0110]該情況下,如圖11 (C)所示,在節(jié)點(diǎn)Sxy、子節(jié)點(diǎn)Sz中分別存儲(chǔ)代表點(diǎn)的XY坐標(biāo)、深度值。在節(jié)點(diǎn)Txy?Vxy中不存在代表點(diǎn),但存儲(chǔ)設(shè)定代表點(diǎn)的位置的XY坐標(biāo)。在子節(jié)點(diǎn)Tz?Vz中不存儲(chǔ)深度值,而在節(jié)點(diǎn)Txy?Vxy上連接NULL列表。例如,在圖11 (C)中從節(jié)點(diǎn)Axy?Vxy指向子節(jié)點(diǎn)Az?Vz的箭頭在實(shí)際處理中例如以指針實(shí)現(xiàn)的情況下,指示子節(jié)點(diǎn)Tz?Vz的箭頭例如以NULL指針實(shí)現(xiàn)。若這樣構(gòu)成數(shù)據(jù),則節(jié)點(diǎn)Axy?Vxy —定以四叉樹連接,所以即使不存在代表點(diǎn)的節(jié)點(diǎn)存在也能夠構(gòu)成四叉樹結(jié)構(gòu)的數(shù)據(jù)。此外,在圖11 (C)中為了簡(jiǎn)單省略了節(jié)點(diǎn)C?E的子節(jié)點(diǎn)的圖示。
[0111]4.碰撞檢測(cè)的方法
[0112]接下來,對(duì)在圖1 (B)中說明的碰撞檢測(cè)系統(tǒng)進(jìn)行的碰撞檢測(cè)的方法進(jìn)行說明。在圖12中,示出作為進(jìn)行碰撞判定的對(duì)象的第I物體OBl和第2物體0B2的、世界坐標(biāo)系中的剖視圖。物體0B1、0B2例如是機(jī)械手等的零件、連接該零件間的關(guān)節(jié)部分、配置在機(jī)械手等的作業(yè)空間中的構(gòu)造物等。
[0113]如圖12所示,碰撞判定部14首先使用碰撞檢測(cè)用數(shù)據(jù)中立方體區(qū)域的尺寸最大的代表點(diǎn)數(shù)據(jù)(即,四叉樹結(jié)構(gòu)的根數(shù)據(jù))進(jìn)行碰撞判定。具體而言,對(duì)象空間設(shè)定部12將四叉樹結(jié)構(gòu)的根的代表點(diǎn)和立方體領(lǐng)域從物體OB1、0B2的模型坐標(biāo)系坐標(biāo)變換為世界坐標(biāo)系。而且,碰撞判定部14判斷物體0B1、0B2的立方體區(qū)域BA1、BA2在世界坐標(biāo)系中是否交叉。
[0114]具體而言如圖13 (A)所示,碰撞判定部14求出物體OBl的代表點(diǎn)DPl和物體0B2的代表點(diǎn)DP2的距離DS。這里,將物體OBl的立方體區(qū)域B Al的一邊的長(zhǎng)度設(shè)為SI I,將物體0B2的立方體區(qū)域BA2的一邊的長(zhǎng)度設(shè)為SI2。在碰撞判定部14判定為滿足DS > V 3X(SIl + SI2)的情況下,判斷為內(nèi)含立方體區(qū)域BAl的球KYl和內(nèi)含立方體區(qū)域BA2的球KY2無交叉。該情況下,明確判定為立方體區(qū)域BA1、BA2無碰撞。
[0115]另一方面,如圖13 (B)所示,在判定為不滿足DS > V 3X (SIl + SI2)的情況下,判斷為球KY1、KY2交叉,并判定立方體區(qū)域BA1、BA2是否交叉。具體而言如圖13 (C)所示,碰撞判定部14基于立方體區(qū)域BAl、BA2的相對(duì)位置和相對(duì)的旋轉(zhuǎn)角度來進(jìn)行交叉判定。該相對(duì)位置和相對(duì)的旋轉(zhuǎn)角度例如能夠根據(jù)世界坐標(biāo)系中的立方體區(qū)域BA1、BA2的位置和姿勢(shì)得知,例如以立方體區(qū)域BA2為基準(zhǔn)來求出立方體區(qū)域BAl的位置和旋轉(zhuǎn)角度即可。
[0116]這樣,通過組合球的交叉判定和立方體區(qū)域的交叉判定,從而能夠從簡(jiǎn)處理。gp,在球不交叉的情況下,能夠只通過與立方體區(qū)域的交叉判定相比比較簡(jiǎn)單的處理亦即球的交叉判定就結(jié)束。此外,在上述中在判定為球交叉的情況下判定立方體區(qū)域是否交叉,但在本實(shí)施方式中在判定為球交叉的時(shí)刻也可以明確判定為立方體區(qū)域發(fā)生碰撞。該情況下,能夠進(jìn)一步將處理簡(jiǎn)單化。
[0117]在上述的交叉判定中判定為立方體區(qū)域BAl、BA2交叉的情況下,碰撞判定部14在比立方體區(qū)域BA1、BA2小的尺寸的立方體區(qū)域進(jìn)行碰撞判定。即,如圖14所示,對(duì)全部的組合進(jìn)行分割立方體區(qū)域BAl而成的立方體區(qū)域BBl?BGl、和分割立方體區(qū)域BA2而成的立方體區(qū)域BB2?BG2的交叉判定。例如在判定為立方體區(qū)域BBl和立方體區(qū)域BB2、BC2交叉的情況下,如圖15所示,在進(jìn)一步分割立方體區(qū)域BB1、BB2、BC2而成的立方體區(qū)域進(jìn)行交叉判定。
[0118]具體而言,碰撞判定部14在判定為在立方體區(qū)域BB1、BB2內(nèi)代表點(diǎn)最近的立方體區(qū)域BH1、BH2不交叉、且判定為在立方體區(qū)域BB1、BC2內(nèi)代表點(diǎn)最近的立方體區(qū)域BI1、BI2不交叉的情況下,明確判定為物體0B1、0B2無碰撞。另一方面,在存在判定為交叉的立方體區(qū)域、且判定的層是四叉樹結(jié)構(gòu)的最下位層的情況下,明確判定為物體OB1、0B2存在碰撞可能性。
[0119]應(yīng)予說明,在上述的圖14、圖15中,省略四叉樹結(jié)構(gòu)的一層的碰撞判定,圖示2層下的碰撞判定,但實(shí)際上I層層地進(jìn)行碰撞判定。
[0120]S卩,如圖16所示,碰撞判定部14在物體OB1、0B2的四叉樹結(jié)構(gòu)的數(shù)據(jù)中,首先使用根的節(jié)點(diǎn)NA1、NA2的代表點(diǎn)數(shù)據(jù)進(jìn)行碰撞判定。而且,在判定為節(jié)點(diǎn)NA1、NA2的立方體區(qū)域交叉的情況下,使用節(jié)點(diǎn)ΝΑΙ、NA2的子節(jié)點(diǎn)NBl?NE1、NB2?NE2的代表點(diǎn)數(shù)據(jù),對(duì)全部的組合進(jìn)行碰撞判定。例如在判定為節(jié)點(diǎn)NE1、NC2的立方體區(qū)域交叉的情況下,使用節(jié)點(diǎn)NEl的子節(jié)點(diǎn)即、NSl?NVl的代表點(diǎn)數(shù)據(jù)和NC2的子節(jié)點(diǎn)即、NJ2?匪2的代表點(diǎn)數(shù)據(jù),對(duì)這些代表點(diǎn)數(shù)據(jù)的全部的組合進(jìn)行碰撞判定。另一方面,對(duì)于判定為立方體區(qū)域無交叉的節(jié)點(diǎn)的子節(jié)點(diǎn),不再進(jìn)行碰撞判定。
[0121]在節(jié)點(diǎn)NSl?NV1、NJ2?匪2的碰撞判定中,例如為判定為節(jié)點(diǎn)NT1、NK2的立方體區(qū)域交叉。在圖16的例子中,節(jié)點(diǎn)NTl是最下位層的節(jié)點(diǎn),節(jié)點(diǎn)NK2存在更下位的子節(jié)點(diǎn)。該情況下,碰撞判定部14使用節(jié)點(diǎn)NTl的代表點(diǎn)數(shù)據(jù)、和節(jié)點(diǎn)NK2的子節(jié)點(diǎn)NW2?NZ2的代表點(diǎn)數(shù)據(jù)進(jìn)行碰撞判定。在判定為節(jié)點(diǎn)NTl的立方體區(qū)域、和作為最下位層的節(jié)點(diǎn)的例如節(jié)點(diǎn)NX2的立方體區(qū)域交叉的情況下,明確判定為物體OB1、0B2有碰撞可能性。另一方面,在判定為在任意一層中全部的節(jié)點(diǎn)無碰撞的情況下,明確判定為在該時(shí)刻物體0B1、0B2無碰撞,并結(jié)束針對(duì)物體OB1、0B2的碰撞判定。
[0122]于是如上述那樣,在使用了多邊形數(shù)據(jù)的以往的碰撞檢測(cè)方法中,由于現(xiàn)實(shí)中存在很多不能夠得到CAD數(shù)據(jù)的物體,所以存在難以應(yīng)用于那樣的物體的課題。另外,存在依賴于多邊形的大小而處理變得冗長(zhǎng)這樣的課題、包含多個(gè)在碰撞檢測(cè)中不重要的多邊形數(shù)據(jù)所以進(jìn)行不必要的處理這樣的課題。
[0123]這一點(diǎn)在本實(shí)施方式中,如利用圖3等說明的那樣,碰撞檢測(cè)用數(shù)據(jù)生成部114通過利用在物體OB的模型坐標(biāo)系中設(shè)定的立方體區(qū)域CA對(duì)深度映射數(shù)據(jù)進(jìn)行離散化,從而生成物體OB的模型坐標(biāo)系中的代表點(diǎn)PA的數(shù)據(jù)作為碰撞檢測(cè)用數(shù)據(jù)。這里所謂的模型坐標(biāo)系,是對(duì)各個(gè)碰撞檢測(cè)對(duì)象的物體設(shè)定的模型空間的坐標(biāo)系。另外所謂的立方體區(qū)域是在模型空間中各邊的長(zhǎng)度相同的立方體,在深度映射數(shù)據(jù)上,邊長(zhǎng)與深度以及平面方向的距離對(duì)應(yīng)。另外所謂的代表點(diǎn)數(shù)據(jù)是表示代表立方體區(qū)域的位置的代表點(diǎn)(例如立方體區(qū)域的中心點(diǎn))的數(shù)據(jù),是深度映射數(shù)據(jù)上的代表深度值以及代表位置的數(shù)據(jù)(或者模型坐標(biāo)系中的XYZ坐標(biāo)的數(shù)據(jù))。
[0124]另外,在本實(shí)施方式中,存儲(chǔ)部50存儲(chǔ)代表點(diǎn)PA的數(shù)據(jù)作為碰撞檢測(cè)用數(shù)據(jù),處理部10基于與第I物體對(duì)應(yīng)的第I碰撞檢測(cè)用數(shù)據(jù)和與第2物體對(duì)應(yīng)的第2碰撞檢測(cè)用數(shù)據(jù),進(jìn)行世界坐標(biāo)系中的第I物體和第2物體的碰撞判定。這里所謂世界坐標(biāo)系例如與機(jī)械手的作業(yè)空間等對(duì)應(yīng),通過從模型坐標(biāo)系進(jìn)行坐標(biāo)變換將碰撞檢測(cè)對(duì)象的物體配置到世界坐標(biāo)系。
[0125]這樣在本實(shí)施方式中,能夠根據(jù)深度映射數(shù)據(jù)生成碰撞檢測(cè)用數(shù)據(jù),所以即使沒有CAD數(shù)據(jù)也能夠進(jìn)行碰撞檢測(cè)。例如,在碰撞檢測(cè)對(duì)象的物體中存在沒有CAD數(shù)據(jù)的物體的情況下,通過使用3D掃描儀等來獲取該物體的深度映射數(shù)據(jù),從而能夠生成碰撞檢測(cè)用數(shù)據(jù)。
[0126]另外,將模型空間以立方體區(qū)域進(jìn)行離散化,所以在代表點(diǎn)數(shù)據(jù)中不產(chǎn)生像多邊形那樣的大小的偏差,也不產(chǎn)生以球覆蓋了多邊形的情況下那樣的冗長(zhǎng)的重疊。使用這樣的非冗長(zhǎng)的數(shù)據(jù)從而能夠減少碰撞檢測(cè)的處理負(fù)荷。另外,通過使用深度映射數(shù)據(jù),能夠僅在物體的外側(cè)表面設(shè)定代表點(diǎn),所以不產(chǎn)生使用多邊形的情況下的物體內(nèi)部的數(shù)據(jù),能夠消除在碰撞檢測(cè)中不重要的不必要的處理。另外,進(jìn)行碰撞檢測(cè)的節(jié)點(diǎn)對(duì)的個(gè)數(shù)與節(jié)點(diǎn)數(shù)的平方成比例,所以在不產(chǎn)生冗長(zhǎng)的數(shù)據(jù)、不必要的數(shù)據(jù)的本實(shí)施方式中,能夠期待處理的高速化。
[0127]這里所謂的節(jié)點(diǎn)對(duì)是作為碰撞判定的判定對(duì)象而選擇的I組節(jié)點(diǎn)。在圖16中說明的進(jìn)行第I對(duì)象OBl和第2對(duì)象0B2之間的碰撞判定的情況下,從OBl的數(shù)據(jù)中選擇的一個(gè)節(jié)點(diǎn)、和從0B2的數(shù)據(jù)中選擇的一個(gè)節(jié)點(diǎn)的組合成為節(jié)點(diǎn)對(duì)。在本實(shí)施方式中,對(duì)判定為有碰撞的節(jié)點(diǎn)的子節(jié)點(diǎn)按照每個(gè)層進(jìn)行碰撞判定,所以例如從OBl的第3層中的NEl的子節(jié)點(diǎn)NSl?NVl中選擇一個(gè)節(jié)點(diǎn),從0B2的第3層中的NC2的子節(jié)點(diǎn)NJ2?匪2中選擇一個(gè)節(jié)點(diǎn),從而選擇節(jié)點(diǎn)對(duì)。這樣在本實(shí)施方式中,從判定對(duì)象的層、判定對(duì)象的子節(jié)點(diǎn)中選擇出的節(jié)點(diǎn)的組合是節(jié)點(diǎn)對(duì)。
[0128]另外在本實(shí)施方式中,存儲(chǔ)部50存儲(chǔ)內(nèi)含物體OB的包圍盒(圖9 (A)的區(qū)域A)的代表點(diǎn)數(shù)據(jù)(圖9 (B)的節(jié)點(diǎn)A)、和通過分割該包圍盒而成的立方體區(qū)域(區(qū)域B?EWi深度映射數(shù)據(jù)進(jìn)行離散化而得到的分割代表點(diǎn)數(shù)據(jù)(節(jié)點(diǎn)B?E)作為碰撞檢測(cè)用數(shù)據(jù)。在判定為內(nèi)含第I物體OBl的包圍盒(圖16的節(jié)點(diǎn)NAl)和內(nèi)含第2物體0B2的包圍盒(節(jié)點(diǎn)NA2)發(fā)生碰撞的情況下,處理部10基于第I物體OBl的分割代表點(diǎn)數(shù)據(jù)(節(jié)點(diǎn)NBl?NEl)和第2物體0B2的分割代表點(diǎn)數(shù)據(jù)(節(jié)點(diǎn)NB2?NE2)進(jìn)行碰撞判定。
[0129]若這樣,在判定為包圍盒無碰撞的階段,不進(jìn)行分割代表點(diǎn)數(shù)據(jù)的處理而能夠明確判定為第I物體和第2物體無碰撞,所以能夠簡(jiǎn)單化處理。
[0130]更具體而言,碰撞檢測(cè)用數(shù)據(jù)生成部114將與分割父節(jié)點(diǎn)(例如圖9 (B)的節(jié)點(diǎn)B)的立方體區(qū)域(圖9 (A)的區(qū)域B)而成的多個(gè)立方體區(qū)域(區(qū)域F?I)對(duì)應(yīng)的節(jié)點(diǎn)(節(jié)點(diǎn)F?I)作為子節(jié)點(diǎn)與父節(jié)點(diǎn)連接,并生成樹結(jié)構(gòu)的數(shù)據(jù)作為碰撞檢測(cè)用數(shù)據(jù)。碰撞檢測(cè)系統(tǒng)的存儲(chǔ)部50存儲(chǔ)這樣的樹結(jié)構(gòu)的數(shù)據(jù),處理部10基于該樹結(jié)構(gòu)的數(shù)據(jù)進(jìn)行碰撞檢測(cè)。
[0131]通過使用這樣的樹結(jié)構(gòu)的數(shù)據(jù),從而能夠進(jìn)行節(jié)點(diǎn)對(duì)的遞歸的碰撞檢測(cè),所以例如能夠容易地實(shí)現(xiàn)由CPU等進(jìn)行的并行處理。具體而言,在本實(shí)施方式中生成四叉樹結(jié)構(gòu)的數(shù)據(jù),并在使用了這樣的四叉樹結(jié)構(gòu)的情況下,在遞歸的碰撞檢測(cè)的各層中進(jìn)行4X4 =16組的節(jié)點(diǎn)對(duì)的碰撞檢測(cè)。因此,即使不使用能夠進(jìn)行數(shù)萬?數(shù)十萬的并行處理的GPU(Graphics Processing Unit:圖形處理單元),也能夠使用進(jìn)行數(shù)十線程左右的并行處理的CPU來實(shí)現(xiàn)碰撞檢測(cè)系統(tǒng),能夠?qū)崿F(xiàn)由于省略GPU而帶來的成本減少。
[0132]應(yīng)予說明本實(shí)施方式的樹結(jié)構(gòu)的數(shù)據(jù)并不限于四叉樹結(jié)構(gòu)的數(shù)據(jù),例如也可以是最小立方體區(qū)域的節(jié)點(diǎn)與包圍盒的節(jié)點(diǎn)直接連接(沒有中間層)的數(shù)據(jù)。該情況下,最小立方體區(qū)域的節(jié)點(diǎn)對(duì)的組合數(shù)量增多,所以假定使用GPU等構(gòu)成碰撞檢測(cè)系統(tǒng)。
[0133]5.碰撞檢測(cè)用數(shù)據(jù)生成裝置的詳細(xì)構(gòu)成
[0134]在圖17中示出本實(shí)施方式的碰撞檢測(cè)用數(shù)據(jù)生成裝置的詳細(xì)構(gòu)成例。該碰撞檢測(cè)用數(shù)據(jù)生成裝置包含處理部110、和存儲(chǔ)部150。處理部110包含深度映射數(shù)據(jù)獲取部112、代表點(diǎn)設(shè)定部200、和四叉樹結(jié)構(gòu)生成部220。存儲(chǔ)部150包含存儲(chǔ)物體I?物體N的碰撞檢測(cè)用數(shù)據(jù)的代表點(diǎn)數(shù)據(jù)存儲(chǔ)部MAl?MN。
[0135]代表點(diǎn)設(shè)定部200進(jìn)行對(duì)模型空間進(jìn)行離散化并設(shè)定代表點(diǎn)的處理,包含空間離散化部202、代表點(diǎn)選擇部204、代表點(diǎn)增補(bǔ)部206、和代表點(diǎn)重復(fù)刪除部208。此外,代表點(diǎn)設(shè)定部200和四叉樹結(jié)構(gòu)生成部220與圖1 (A)的碰撞檢測(cè)用數(shù)據(jù)生成部114對(duì)應(yīng)。
[0136]接下來,使用圖18?圖20的流程圖對(duì)該碰撞檢測(cè)用數(shù)據(jù)生成裝置的詳細(xì)處理例進(jìn)行說明。
[0137]如圖18所示,若開始數(shù)據(jù)生成處理,則深度映射數(shù)據(jù)獲取部112獲取多個(gè)視點(diǎn)的深度映射數(shù)據(jù)(步驟SI)。深度映射數(shù)據(jù)獲取部112例如基于從CAD數(shù)據(jù)輸入部280輸入的CAD數(shù)據(jù)(多邊形數(shù)據(jù)),對(duì)從多個(gè)視點(diǎn)觀察的物體進(jìn)行描繪,并生成針對(duì)各視點(diǎn)的深度映射數(shù)據(jù)。或者,基于從三維信息測(cè)量裝置290輸入的信息來獲取深度映射數(shù)據(jù)。作為三維信息測(cè)量裝置290例如假定3D掃描儀、立體相機(jī)等。在是3D掃描儀的情況下,深度映射數(shù)據(jù)獲取部112獲取3D掃描儀生成的深度映射數(shù)據(jù)。
[0138]接下來,空間離散化部202將根節(jié)點(diǎn)的立方體區(qū)域的一邊的長(zhǎng)度(最大離散化值)設(shè)定為離散化值SI (步驟S2)。接著,空間離散化部202判定離散化值SI是否比預(yù)先設(shè)定的規(guī)定的最小值小(步驟S3)。作為規(guī)定的最小值,例如考慮機(jī)械手等的位置把握精度,設(shè)定為比接近允許誤差小的值。在離散化值SI比規(guī)定的最小值小的情況下,在代表點(diǎn)數(shù)據(jù)存儲(chǔ)部MAl?MAN中對(duì)應(yīng)的存儲(chǔ)部中儲(chǔ)存數(shù)據(jù),結(jié)束數(shù)據(jù)生成處理。在離散化值SI是規(guī)定的最小值以上的情況下,進(jìn)行四叉樹結(jié)構(gòu)的一層的數(shù)據(jù)生成處理(步驟S4)。一層的數(shù)據(jù)生成處理的詳細(xì)內(nèi)容后述。
[0139]接下來,四叉樹結(jié)構(gòu)生成部220判定是否存在步驟S4中數(shù)據(jù)被生成的層的上位層(步驟S5)。在存在上位層的情況下,四叉樹結(jié)構(gòu)生成部220進(jìn)行將在步驟S4中生成的數(shù)據(jù)構(gòu)成為四叉樹結(jié)構(gòu)的處理(步驟S6),空間離散化部202執(zhí)行步驟S7。四叉樹結(jié)構(gòu)生成處理的詳細(xì)內(nèi)容后述。在不存在上位層的情況下,空間離散化部202將離散化值SI更新為I /2倍的值(步驟S7),并再次執(zhí)行步驟S3。
[0140]在圖19中示出步驟S4的一層的數(shù)據(jù)生成處理的詳細(xì)流程圖。應(yīng)予說明在圖19中,以從視點(diǎn)遠(yuǎn)離的方向上深度值增大的情況為例進(jìn)行說明,但本實(shí)施方式并不限于此。
[0141]若開始該處理,則空間離散化部202設(shè)定模型空間的離散化值SI (步驟S20)。接下來空間離散化部202判定是否對(duì)多個(gè)視點(diǎn)的全部視點(diǎn)進(jìn)行了代表點(diǎn)的設(shè)定處理(步驟S21)。在存在未處理的視點(diǎn)的情況下,從未處理的視點(diǎn)中選擇一個(gè)視點(diǎn)(步驟S22)。接下來空間離散化部202以I邊的長(zhǎng)度為離散化值SI的立方體區(qū)域?qū)ι疃扔成鋽?shù)據(jù)進(jìn)行離散化(步驟S23)。
[0142]接下來代表點(diǎn)選擇部204掃描離散化的深度映射數(shù)據(jù),設(shè)定代表點(diǎn)(步驟S24)。接下來代表點(diǎn)選擇部204刪除深度映射中的最背面的代表點(diǎn)數(shù)據(jù)(步驟S25)。最背面的代表點(diǎn)數(shù)據(jù)是具有能夠取得的深度值范圍中最大(或者其附近)的深度值的代表點(diǎn)。
[0143]接下來代表點(diǎn)增補(bǔ)部206掃描設(shè)定的代表點(diǎn),在代表點(diǎn)、和比該代表點(diǎn)的26個(gè)附近外側(cè)的代表點(diǎn)之間未連續(xù)地設(shè)定代表點(diǎn)的情況下,在該代表點(diǎn)的背面?zhèn)?深度值較大的一側(cè),例如圖5的一 Z方向側(cè))增補(bǔ)代表點(diǎn)(步驟S26)。具體而言,代表點(diǎn)增補(bǔ)部206求出從關(guān)注的代表點(diǎn)(例如圖5的B2)的深度值減去了存在于該代表點(diǎn)的附近的代表位置上的代表點(diǎn)(B4)的深度值后的差量DV。這里所謂的附近的代表位置是在從視點(diǎn)觀察關(guān)注的代表點(diǎn)時(shí),以該關(guān)注的代表點(diǎn)的代表位置為中心的周圍8個(gè)代表位置。而且,在差量DV < O、且I DV I > SI的情況下,代表點(diǎn)增補(bǔ)部206在關(guān)注的代表點(diǎn)的背面?zhèn)?BI)增補(bǔ)I DV I /SI個(gè)代表點(diǎn)。若步驟S26結(jié)束,則執(zhí)行步驟S20。[0144]在步驟S21中,在對(duì)多個(gè)視點(diǎn)的全部的視點(diǎn)設(shè)定了代表點(diǎn)的情況下,代表點(diǎn)重復(fù)刪除部208判定是否對(duì)全部的代表點(diǎn)進(jìn)行了在多個(gè)視點(diǎn)的代表點(diǎn)中刪除重復(fù)的代表點(diǎn)的處理(步驟S27)。在存在未處理的代表點(diǎn)的情況下,代表點(diǎn)重復(fù)刪除部208從未處理的代表點(diǎn)中選擇一個(gè)代表點(diǎn)(步驟S28)。代表點(diǎn)重復(fù)刪除部208對(duì)選擇的代表點(diǎn)和其他的全部的代表點(diǎn)進(jìn)行比較,在存在相同的代表點(diǎn)的情況下,刪除該相同的代表點(diǎn)(步驟S29),執(zhí)行步驟S27。在步驟S27中,在對(duì)全部的代表點(diǎn)結(jié)束了處理的情況下,結(jié)束一層的數(shù)據(jù)生成處理。
[0145]在圖20中,示出步驟S6的四叉樹結(jié)構(gòu)生成處理的詳細(xì)流程圖。若開始該處理,則四叉樹結(jié)構(gòu)生成部220獲取在步驟S4中數(shù)據(jù)被生成的層的上位層的離散化值SI (步驟
540)。接下來,四叉樹結(jié)構(gòu)生成部220判定是否對(duì)多個(gè)視點(diǎn)的全部的視點(diǎn)進(jìn)行了處理(步驟
541)。在對(duì)全部的視點(diǎn)結(jié)束了處理的情況下,結(jié)束四叉樹結(jié)構(gòu)生成處理。在存在未處理的視點(diǎn)的情況下,從未處理的視點(diǎn)中選擇一個(gè)視點(diǎn)(步驟S42)。
[0146]接下來四叉樹結(jié)構(gòu)生成部220判定是否對(duì)上位層的全部的代表點(diǎn)進(jìn)行了處理(步驟S43)。例如在對(duì)圖9 (B)的節(jié)點(diǎn)F?V進(jìn)行處理的情況下,對(duì)作為其上位層的節(jié)點(diǎn)B?C的全部進(jìn)行判定。在對(duì)上位層的全部的代表點(diǎn)結(jié)束了處理的情況下,執(zhí)行步驟S41。在存在未處理的代表點(diǎn)的情況下,四叉樹結(jié)構(gòu)生成部220從未處理的代表點(diǎn)中選擇一個(gè)代表點(diǎn)(步驟S44)。接下來四叉樹結(jié)構(gòu)生成部220將該選擇的代表點(diǎn)作為父節(jié)點(diǎn)來連接子節(jié)點(diǎn)的代表點(diǎn),構(gòu)成下位層的四叉樹結(jié)構(gòu)(步驟S45)。例如在選擇圖9 (C)的節(jié)點(diǎn)Bxy的情況下,節(jié)點(diǎn)Bxy是父節(jié)點(diǎn),將子節(jié)點(diǎn)Fxy?Ixy、Fz?Iz與該節(jié)點(diǎn)Bxy連接。在節(jié)點(diǎn)Fxy?Ixy上設(shè)定代表位置的XY坐標(biāo),節(jié)點(diǎn)Fz?Iz在該時(shí)刻是空的節(jié)點(diǎn)(例如NULL節(jié)點(diǎn))。
[0147]接下來四叉樹結(jié)構(gòu)生成部220判定是否對(duì)全部4個(gè)子節(jié)點(diǎn)進(jìn)行了代表點(diǎn)數(shù)據(jù)的設(shè)定處理(步驟S46)。在對(duì)全部4個(gè)子節(jié)點(diǎn)結(jié)束了處理的情況下,執(zhí)行步驟S43。在存在未處理的子節(jié)點(diǎn)的情況下,四叉樹結(jié)構(gòu)生成部220從未處理的子節(jié)點(diǎn)中選擇一個(gè)子節(jié)點(diǎn)(步驟S47)。接下來四叉樹結(jié)構(gòu)生成部220檢測(cè)存在于所選擇的子節(jié)點(diǎn)的代表位置上的代表點(diǎn)(步驟S48)。
[0148]接下來,判定在選擇的子節(jié)點(diǎn)的代表位置上是否檢測(cè)出代表點(diǎn)(步驟S49)。在檢測(cè)出代表點(diǎn)的情況下,四叉樹結(jié)構(gòu)生成部220將檢測(cè)出全部的代表點(diǎn)與子節(jié)點(diǎn)連結(jié)(步驟S50)。例如在選擇圖9 (C)的節(jié)點(diǎn)Fxy,只檢測(cè)出一個(gè)代表點(diǎn)的情況下,將這一個(gè)代表點(diǎn)的代表深度值作為節(jié)點(diǎn)Fz與節(jié)點(diǎn)Fxy連接。另外在如圖10 (B)的節(jié)點(diǎn)Cxy那樣檢測(cè)出多個(gè)代表點(diǎn)的情況下,將該多個(gè)代表點(diǎn)的代表深度值作為列表結(jié)構(gòu)的節(jié)點(diǎn)Ca z?Ccz與節(jié)點(diǎn)Cxy連接。在步驟S49中未檢測(cè)出代表點(diǎn)的情況下,四叉樹結(jié)構(gòu)生成部220設(shè)定在子節(jié)點(diǎn)上沒有代表點(diǎn)的意思的信息(步驟S51)。例如以圖11 (C)說明的那樣,對(duì)節(jié)點(diǎn)Txy連接NULL節(jié)點(diǎn)Tz。若步驟S50、S51結(jié)束了則執(zhí)行步驟S46。
[0149]6.碰撞檢測(cè)系統(tǒng)的詳細(xì)構(gòu)成
[0150]在圖21中示出本實(shí)施方式的碰撞檢測(cè)系統(tǒng)的詳細(xì)構(gòu)成例。該碰撞檢測(cè)系統(tǒng)包含處理部10、和存儲(chǔ)部50。處理部10包含代表點(diǎn)數(shù)據(jù)選擇部250、遞歸的節(jié)點(diǎn)對(duì)碰撞檢測(cè)部260、和碰撞判定輸出部270。存儲(chǔ)部50包含存儲(chǔ)物體I?物體N的碰撞檢測(cè)用數(shù)據(jù)的代表點(diǎn)數(shù)據(jù)存儲(chǔ)部MBl?ΜΒΝ。
[0151]此外,代表點(diǎn)數(shù)據(jù)選擇部250、遞歸的節(jié)點(diǎn)對(duì)碰撞檢測(cè)部260、碰撞判定輸出部270與圖1 (B)的碰撞判定部14、對(duì)象空間設(shè)定部12對(duì)應(yīng)。這里,在一體地構(gòu)成碰撞檢測(cè)系統(tǒng)和碰撞檢測(cè)用數(shù)據(jù)生成裝置的情況下,也可以將代表點(diǎn)數(shù)據(jù)存儲(chǔ)部MBl?MBN和圖17的代表點(diǎn)數(shù)據(jù)存儲(chǔ)部MAl?MAN共用化。
[0152]接下來,利用圖22、圖23的流程圖對(duì)該碰撞檢測(cè)系統(tǒng)的詳細(xì)處理例進(jìn)行說明。
[0153]如圖22所示,若開始碰撞檢測(cè)處理,則代表點(diǎn)數(shù)據(jù)選擇部250判定是否對(duì)全部的物體的組合進(jìn)行了碰撞檢測(cè)處理(步驟S60)。在存在未處理的組合的情況下,代表點(diǎn)數(shù)據(jù)選擇部250從未處理的組合中選擇I組物體(第I物體、第2物體)(步驟S61)。
[0154]接下來遞歸的節(jié)點(diǎn)對(duì)碰撞檢測(cè)部260將第I物體的最上位節(jié)點(diǎn)設(shè)定為節(jié)點(diǎn)NI,將第2物體的最上位節(jié)點(diǎn)設(shè)定為節(jié)點(diǎn)N2 (步驟S62)。接下來遞歸的節(jié)點(diǎn)對(duì)碰撞檢測(cè)部260對(duì)節(jié)點(diǎn)N1、N2進(jìn)行遞歸的節(jié)點(diǎn)對(duì)碰撞檢測(cè)處理(步驟S63)。該遞歸的節(jié)點(diǎn)對(duì)碰撞檢測(cè)處理的詳細(xì)內(nèi)容后述。接下來碰撞判定輸出部270輸出碰撞判定結(jié)果,處理部10進(jìn)行與碰撞判定結(jié)果對(duì)應(yīng)的各種處理(步驟S64)。例如,在判定為發(fā)生碰撞的情況下,處理部10進(jìn)行將物體的軌道修正為不碰撞的處理、停止動(dòng)作的處理等。若步驟S64結(jié)束了則執(zhí)行步驟S60。在步驟S60中在對(duì)全部的物體的組合都結(jié)束了處理的情況下,結(jié)束碰撞檢測(cè)處理。
[0155]在圖23中示出遞歸的節(jié)點(diǎn)對(duì)碰撞檢測(cè)處理的詳細(xì)流程圖。若開始該處理,則遞歸的節(jié)點(diǎn)對(duì)碰撞檢測(cè)部260設(shè)定作為處理對(duì)象的節(jié)點(diǎn)對(duì)的節(jié)點(diǎn)N1、N2 (步驟S80)。接下來,判定在世界坐標(biāo)系中在節(jié)點(diǎn)N1、N2的立方體區(qū)域上是否有重疊(步驟S81)。在沒有重疊的情況下,判斷為節(jié)點(diǎn)N1、N2無碰撞并結(jié)束處理。在有重疊的情況下,遞歸的節(jié)點(diǎn)對(duì)碰撞檢測(cè)部260判定對(duì)于節(jié)點(diǎn)NI是否存在子節(jié)點(diǎn)(步驟S82)。
[0156]在對(duì)于節(jié)點(diǎn)NI存在子節(jié)點(diǎn)的情況下,遞歸的節(jié)點(diǎn)對(duì)碰撞檢測(cè)部260判定對(duì)于節(jié)點(diǎn)N2是否存在子節(jié)點(diǎn)(步驟S83)。在對(duì)于節(jié)點(diǎn)N2存在子節(jié)點(diǎn)的情況下,對(duì)節(jié)點(diǎn)N1、N2的子節(jié)點(diǎn)的全部組合遞歸地進(jìn)行節(jié)點(diǎn)對(duì)的碰撞檢測(cè)(步驟S84)。S卩,在節(jié)點(diǎn)N1、N2的子節(jié)點(diǎn)的組合中,存在判定為立方體區(qū)域重疊的組合(例如圖16的節(jié)點(diǎn)NEl、NCl)的情況下,將該節(jié)點(diǎn)對(duì)重新設(shè)定為節(jié)點(diǎn)N1、N2,并再次執(zhí)行步驟S81以下的處理。該遞歸的碰撞檢測(cè)針對(duì)在步驟S84中判定為立方體區(qū)域重疊的全部節(jié)點(diǎn)對(duì)來進(jìn)行。假設(shè),到最下位層為止存在立方體領(lǐng)域重疊的節(jié)點(diǎn)對(duì),則直到最下位層反復(fù)進(jìn)行該遞歸的處理。在步驟S83中對(duì)于節(jié)點(diǎn)N2不存在子節(jié)點(diǎn)的情況下,遞歸的節(jié)點(diǎn)對(duì)碰撞檢測(cè)部260針對(duì)節(jié)點(diǎn)NI的子節(jié)點(diǎn)和節(jié)點(diǎn)N2的全部組合進(jìn)行遞歸的節(jié)點(diǎn)對(duì)的碰撞檢測(cè)(步驟S85)。
[0157]在步驟S82中對(duì)于節(jié)點(diǎn)NI不存在子節(jié)點(diǎn)的情況下,遞歸的節(jié)點(diǎn)對(duì)碰撞檢測(cè)部260判定對(duì)于節(jié)點(diǎn)N2是否存在子節(jié)點(diǎn)(步驟S86)。在對(duì)于節(jié)點(diǎn)N2存在子節(jié)點(diǎn)的情況下,對(duì)節(jié)點(diǎn)NI和節(jié)點(diǎn)N2的子節(jié)點(diǎn)的全部組合,遞歸地進(jìn)行節(jié)點(diǎn)對(duì)的碰撞檢測(cè)(步驟S87)。在對(duì)于節(jié)點(diǎn)N2不存在子節(jié)點(diǎn)的情況下,判斷為節(jié)點(diǎn)N1、N2存在碰撞可能性并結(jié)束處理。
[0158]在執(zhí)行步驟S84、S85、S87的情況下,遞歸的節(jié)點(diǎn)對(duì)碰撞檢測(cè)部260在該遞歸的節(jié)點(diǎn)對(duì)碰撞檢測(cè)中判定在最下位層的節(jié)點(diǎn)對(duì)中是否檢測(cè)出碰撞(步驟S88),并輸出該判定結(jié)果后結(jié)束處理。
[0159]此外,如上述那樣對(duì)本實(shí)施方式進(jìn)行了詳細(xì)說明,但能夠進(jìn)行在實(shí)質(zhì)上不脫離本發(fā)明的新的事項(xiàng)以及效果的多數(shù)的變形對(duì)于本領(lǐng)域技術(shù)人員來說是能夠容易地理解的。因此,這樣的變形例全部包含在本發(fā)明的范圍內(nèi)。例如,在說明書或者附圖中,至少一次,共同記載了更廣義或者同義的不同的用語的用語即使在說明書或者附圖的任何位置上,都能夠置換為該不同的用語。另外本實(shí)施方式以及變形例的全部組合也包含在本發(fā)明的范圍內(nèi)。另外,碰撞檢測(cè)用數(shù)據(jù)生成裝置、碰撞檢測(cè)系統(tǒng)的構(gòu)成/動(dòng)作、碰撞檢測(cè)用數(shù)據(jù)的生成方法、碰撞檢測(cè)的方法等也不限于在本實(shí)施方式中說明的例子,能夠進(jìn)行各種變形實(shí)施。[0160]圖中符號(hào)說明:[0161]10...處理部,12...對(duì)象空間設(shè)定部,14...碰撞判定部,50...存儲(chǔ)部,52...代表點(diǎn)數(shù)據(jù)存儲(chǔ)部,70…操作部,80...外部I / F部,90...信息存儲(chǔ)介質(zhì),110…處理部,112…深度映射數(shù)據(jù)獲取部,114…碰撞檢測(cè)用數(shù)據(jù)生成部,150…存儲(chǔ)部,170…操作部,180…外部I /F部,190...信息存儲(chǔ)介質(zhì),200...代表點(diǎn)設(shè)定部,202...空間離散化部,204...代表點(diǎn)選擇部,206…代表點(diǎn)增補(bǔ)部,208…代表點(diǎn)重復(fù)刪除部,220…四叉樹結(jié)構(gòu)生成部,250…代表點(diǎn)數(shù)據(jù)選擇部,260…遞歸的節(jié)點(diǎn)對(duì)碰撞檢測(cè)部,270…碰撞判定輸出部,280…CAD數(shù)據(jù)輸入部,290…三維信息測(cè)量裝置,300…控制裝置,310…機(jī)械手,320…臂,A~V…節(jié)點(diǎn),Axy~Vxy…節(jié)點(diǎn),Az~Vz…子節(jié)點(diǎn),CA、CB…立方體區(qū)域,MAl~MAN、MB1_MBN…代表點(diǎn)數(shù)據(jù)存儲(chǔ)部,OB…物體,OBl…第I物體,0B2…第2物體,PA、PB…代表點(diǎn),SI…離散化值,ZD…深度映射數(shù)據(jù)。
【權(quán)利要求】
1.一種碰撞檢測(cè)系統(tǒng),其特征在于,包含: 存儲(chǔ)部,其存儲(chǔ)與第I物體對(duì)應(yīng)的第I碰撞檢測(cè)用數(shù)據(jù)和與第2物體對(duì)應(yīng)的第2碰撞檢測(cè)用數(shù)據(jù)作為物體的碰撞檢測(cè)用數(shù)據(jù);以及 處理部,其基于所述第I碰撞檢測(cè)用數(shù)據(jù)和所述第2碰撞檢測(cè)用數(shù)據(jù)來進(jìn)行世界坐標(biāo)系中的所述第I物體與所述第2物體的碰撞判定, 所述存儲(chǔ)部存儲(chǔ)代表點(diǎn)數(shù)據(jù)作為所述碰撞檢測(cè)用數(shù)據(jù),該代表點(diǎn)數(shù)據(jù)是對(duì)在所述物體的模型坐標(biāo)系中從規(guī)定的視點(diǎn)觀察所述物體時(shí)的深度映射數(shù)據(jù)利用設(shè)定在所述模型坐標(biāo)系中的立方體區(qū)域進(jìn)行離散化而得到的。
2.根據(jù)權(quán)利要求1所述的碰撞檢測(cè)系統(tǒng),其特征在于, 所述存儲(chǔ)部存儲(chǔ)內(nèi)含所述物體的包圍盒的所述代表點(diǎn)數(shù)據(jù)、和利用分割所述包圍盒而成的立方體區(qū)域?qū)λ錾疃扔成鋽?shù)據(jù)進(jìn)行離散化而得到的所述代表點(diǎn)數(shù)據(jù)亦即分割代表點(diǎn)數(shù)據(jù),作為所述碰撞檢測(cè)用數(shù)據(jù), 在判定為內(nèi)含所述第I物體的第I包圍盒和內(nèi)含所述第2物體的第2包圍盒發(fā)生碰撞的情況下,所述處理部基于所述第I物體的所述分割代表點(diǎn)數(shù)據(jù)和所述第2物體的所述分割代表點(diǎn)數(shù)據(jù)來進(jìn)行所述第I物體與所述第2物體的碰撞判定。
3.根據(jù)權(quán)利要求1所述的碰撞檢測(cè)系統(tǒng),其特征在于, 所述存儲(chǔ)部存儲(chǔ)樹結(jié)構(gòu)的數(shù)據(jù)作為所述碰撞檢測(cè)用數(shù)據(jù), 所述樹結(jié)構(gòu)的數(shù)據(jù)具有與分割父節(jié)點(diǎn)的立方體區(qū)域而成的多個(gè)立方體區(qū)域?qū)?yīng)的所述代表點(diǎn)數(shù)據(jù)作為從所述父節(jié)點(diǎn)分支的子節(jié)點(diǎn)的所述代表點(diǎn)數(shù)據(jù)。
4.根據(jù)權(quán)利要求3所述的碰撞檢測(cè)系統(tǒng),其特征在于, 分割所述父節(jié)點(diǎn)的立方體區(qū)域而成的所述子節(jié)點(diǎn)的所述多個(gè)立方體區(qū)域是通過將從所述規(guī)定的視點(diǎn)觀察時(shí)的所述父節(jié)點(diǎn)的立方體區(qū)域分割為2X2區(qū)域,并且將所述2X2區(qū)域的各區(qū)域在所述規(guī)定的視點(diǎn)的進(jìn)深方向上進(jìn)行2分割而得到的2X2X2個(gè)立方體區(qū)域, 所述樹結(jié)構(gòu)的數(shù)據(jù)是與從所述規(guī)定的視點(diǎn)觀察時(shí)的所述2X2區(qū)域的各區(qū)域?qū)?yīng)地設(shè)定有所述子節(jié)點(diǎn)的四叉樹結(jié)構(gòu)的數(shù)據(jù), 所述四叉樹結(jié)構(gòu)中的所述子節(jié)點(diǎn)的數(shù)據(jù)是在所述2X2區(qū)域的所述各區(qū)域中存在于所述進(jìn)深方向的2個(gè)立方體區(qū)域中的至少一方的所述代表點(diǎn)數(shù)據(jù)。
5.根據(jù)權(quán)利要求3所述的碰撞檢測(cè)系統(tǒng),其特征在于, 在基于所述父節(jié)點(diǎn)的數(shù)據(jù)的所述碰撞判定中,在存在判定為碰撞的所述父節(jié)點(diǎn)的情況下,所述處理部基于從判定為所述碰撞的所述父節(jié)點(diǎn)分支的所述子節(jié)點(diǎn)的數(shù)據(jù)來進(jìn)行所述碰撞判定, 在基于所述父節(jié)點(diǎn)的數(shù)據(jù)的所述碰撞判定中,在不存在判定為碰撞的所述父節(jié)點(diǎn)的情況下,所述處理部明確判定為所述第I物體與所述第2物體無碰撞。
6.根據(jù)權(quán)利要求1所述的碰撞檢測(cè)系統(tǒng),其特征在于, 所述深度映射數(shù)據(jù)是由測(cè)量所述物體的三維信息的三維信息測(cè)量裝置生成的深度映射數(shù)據(jù)。
7.—種碰撞檢測(cè)用數(shù)據(jù)生成裝置,其特征在于,包含: 深度映射數(shù)據(jù)獲取部,其獲取物體的模型坐標(biāo)系中的從規(guī)定的視點(diǎn)觀察所述物體時(shí)的深度映射數(shù)據(jù);以及碰撞檢測(cè)用數(shù)據(jù)生成部,其生成所述物體的所述模型坐標(biāo)系中的代表點(diǎn)數(shù)據(jù)作為所述碰撞檢測(cè)用數(shù)據(jù), 所述碰撞檢測(cè)用數(shù)據(jù)生成部利用設(shè)定在所述物體的所述模型坐標(biāo)系中的立方體區(qū)域?qū)λ錾疃扔成鋽?shù)據(jù)進(jìn)行離散化,從而生成所述代表點(diǎn)數(shù)據(jù)。
8.根據(jù)權(quán)利要求7所述的碰撞檢測(cè)用數(shù)據(jù)生成裝置,其特征在于, 所述碰撞檢測(cè)用數(shù)據(jù)生成部將與分割父節(jié)點(diǎn)的立方體區(qū)域而成的多個(gè)立方體區(qū)域?qū)?yīng)的節(jié)點(diǎn)作為子節(jié)點(diǎn)與所述父節(jié)點(diǎn)連接,并生成樹結(jié)構(gòu)的數(shù)據(jù)作為所述碰撞檢測(cè)用數(shù)據(jù)。
9.根據(jù)權(quán)利要求8所述的碰撞檢測(cè)用數(shù)據(jù)生成裝置,其特征在于,分割所述父節(jié)點(diǎn)的立方體區(qū)域而成的所述子節(jié)點(diǎn)的所述多個(gè)立方體區(qū)域是通過將從所述規(guī)定的視點(diǎn)觀察時(shí)的所述父節(jié)點(diǎn)的立方體區(qū)域分割為2X2區(qū)域,并且將所述2X2區(qū)域的各區(qū)域在所述規(guī)定的視點(diǎn)的進(jìn)深方向上進(jìn)行2分割而得到的2X2X2個(gè)立方體區(qū)域,所述碰撞檢測(cè)用數(shù)據(jù)生成部生成與從所述規(guī)定的視點(diǎn)觀察時(shí)的所述2X2區(qū)域的各區(qū)域?qū)?yīng)地設(shè)置有所述子節(jié)點(diǎn)的四叉樹結(jié)構(gòu)的數(shù)據(jù),作為所述樹結(jié)構(gòu)的數(shù)據(jù), 所述四叉樹結(jié)構(gòu)的數(shù)據(jù)中的所述子節(jié)點(diǎn)的數(shù)據(jù)是在所述2X2區(qū)域的所述各區(qū)域中存在于所述進(jìn)深方向的2個(gè)立方體區(qū)域中的至少一方的所述代表點(diǎn)數(shù)據(jù)。
10.根據(jù)權(quán)利要求7所述的碰撞檢測(cè)用數(shù)據(jù)生成裝置,其特征在于, 在判斷為在處理對(duì)象的代表點(diǎn)和存在于所述處理對(duì)象的代表點(diǎn)的周圍26個(gè)附近的立方體區(qū)域的外側(cè)的代表點(diǎn)之間存在缺少所述代表點(diǎn)數(shù)據(jù)的立方體區(qū)域的情況下,所述碰撞檢測(cè)用數(shù)據(jù)生成部在缺少所述代表點(diǎn)數(shù)據(jù)的立方體區(qū)域上增補(bǔ)所述代表點(diǎn)數(shù)據(jù)。
11.根據(jù)權(quán)利要求10所述的碰撞檢測(cè)用數(shù)據(jù)生成裝置,其特征在于, 當(dāng)在所述規(guī)定的視點(diǎn)的進(jìn)深方向上越遠(yuǎn)離深度值越大時(shí), 在判定為從所述處理對(duì)象的代表點(diǎn)的代表深度值減去存在于所述處理對(duì)象的代表點(diǎn)的周圍的代表點(diǎn)的代表深度值后的差值為負(fù)的情況下,所述碰撞檢測(cè)用數(shù)據(jù)生成部在相對(duì)于所述處理對(duì)象的代表點(diǎn)靠所述進(jìn)深方向側(cè)的立方體區(qū)域上增補(bǔ)所述代表點(diǎn)數(shù)據(jù)。
12.根據(jù)權(quán)利要求7所述的碰撞檢測(cè)用數(shù)據(jù)生成裝置,其特征在于, 所述深度映射數(shù)據(jù)是由測(cè)量所述物體的三維信息的三維信息測(cè)量裝置生成的深度映射數(shù)據(jù)。
13.一種機(jī)械手,其特征在于,包含: 可動(dòng)部; 存儲(chǔ)部,其存儲(chǔ)與第I物體對(duì)應(yīng)的第I碰撞檢測(cè)用數(shù)據(jù)和與第2物體對(duì)應(yīng)的第2碰撞檢測(cè)用數(shù)據(jù)作為物體的碰撞檢測(cè)用數(shù)據(jù); 處理部,其基于所述第I碰撞檢測(cè)用數(shù)據(jù)和所述第2碰撞檢測(cè)用數(shù)據(jù)來進(jìn)行世界坐標(biāo)系中的所述第I物體與所述第2物體的碰撞判定;以及 控制部,其基于由所述處理部進(jìn)行的所述碰撞判定的結(jié)果來控制所述可動(dòng)部的動(dòng)作,所述存儲(chǔ)部存儲(chǔ)代表點(diǎn)數(shù)據(jù)作為所述碰撞檢測(cè)用數(shù)據(jù),該代表點(diǎn)數(shù)據(jù)是對(duì)在所述物體的模型坐標(biāo)系中從規(guī)定的視點(diǎn)觀察所述物體時(shí)的深度映射數(shù)據(jù)利用設(shè)定在所述模型坐標(biāo)系中的立方體區(qū)域進(jìn)行離散化而得到的。
【文檔編號(hào)】B25J19/00GK103568022SQ201310303138
【公開日】2014年2月12日 申請(qǐng)日期:2013年7月18日 優(yōu)先權(quán)日:2012年7月20日
【發(fā)明者】稻積滿廣 申請(qǐng)人:精工愛普生株式會(huì)社
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
主站蜘蛛池模板: 澎湖县| 新建县| 壶关县| 隆子县| 本溪市| 开封县| 醴陵市| 江北区| 博乐市| 高台县| 晴隆县| 大悟县| 丹凤县| 焦作市| 黔南| 兰考县| 和平区| 绵阳市| 积石山| 三门峡市| 绥滨县| 民乐县| 政和县| 中超| 闽侯县| 乌恰县| 呼玛县| 陇川县| 庄河市| 武夷山市| 马关县| 汾西县| 丰宁| 鄱阳县| 隆回县| 长丰县| 桐庐县| 乌鲁木齐县| 根河市| 胶州市| 沂源县|