專利名稱:碰撞檢測系統(tǒng)、機(jī)械手系統(tǒng)、碰撞檢測方法以及程序的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及碰撞檢測系統(tǒng)、機(jī)械手系統(tǒng)、碰撞檢測方法以及程序等。
背景技術(shù):
在多個(gè)領(lǐng)域需要判定有無物體間的碰撞、接近。例如在機(jī)械手等領(lǐng)域中,碰撞的發(fā)生成為非常大的問題。因此,以前就開始研究、開發(fā)在實(shí)際上發(fā)生碰 撞發(fā)生之前,通過由計(jì)算機(jī)進(jìn)行的計(jì)算判定碰撞的有無、允許的范圍以上的接近的手法。作為這樣的碰撞判定手法的現(xiàn)有技術(shù),已知例如專利文獻(xiàn)1、2等所公開的技術(shù)。專利文獻(xiàn)I的手法在其圖6的流程圖被示出。在該現(xiàn)有技術(shù)中,將物體(對象)的三維的配置作為橫(X)與縱(Y)的二維位置、和與該位置對應(yīng)的深度值(Z值)來存儲(chǔ)的裝置中,依次地渲染圖元。而且,在該渲染的過程中,如果出現(xiàn)具有相同深度值的,即、在三維空間上占據(jù)相同的位置的,則將其判定為碰撞。專利文獻(xiàn)2的手法通過其圖2、圖3說明。該現(xiàn)有技術(shù)中,預(yù)先計(jì)算從多邊形的原點(diǎn)至該多邊形的某個(gè)方向的面的距離,且作為立體圖保存。而且,根據(jù)原點(diǎn)與成為碰撞檢測的對象的物體之間的距離、和存儲(chǔ)在立體圖中的距離的大小,判定碰撞。專利文獻(xiàn)I :日本特開平9-204543號公報(bào)專利文獻(xiàn)2 日本特表2009-545075號公報(bào)然而,專利文獻(xiàn)I的現(xiàn)有技術(shù)中,深度值的更新取決于描繪物體的順序,所以有發(fā)生碰撞的檢測遺漏的可能性。例如,在描繪了配置在前方側(cè)(跟前一側(cè))的物體之后,在其后方側(cè)(里側(cè))其它的物體間即使發(fā)生了碰撞,深度值已經(jīng)更新為前方側(cè)的目標(biāo)的值,所以不能夠檢測出碰撞。另外,專利文獻(xiàn)2的現(xiàn)有技術(shù)中,存在很難準(zhǔn)確地處理非凸多邊形的碰撞的問題。即、將從原點(diǎn)至面的距離存儲(chǔ)在單一的立體圖中,所以在某個(gè)方向,有多個(gè)該多邊形的面的情況下,即、那樣的非凸的多邊形的情況下,不能將其作為單一的立體圖表現(xiàn)。
發(fā)明內(nèi)容
根據(jù)本發(fā)明的幾個(gè)方式,能夠提供一種可實(shí)現(xiàn)碰撞檢測對象目標(biāo)的準(zhǔn)確的碰撞判定的碰撞檢測系統(tǒng)、機(jī)械手系統(tǒng)、碰撞檢測方法以及程序等。本發(fā)明的一方式,涉及一種碰撞檢測系統(tǒng),包括處理部、進(jìn)行描繪處理的描繪部、設(shè)定深度信息的深度緩沖器,在上述深度緩沖器中,在對象面配置設(shè)定的目標(biāo)的深度信息被設(shè)定為深度圖信息,上述描繪部進(jìn)行第I描繪處理,該第I描繪處理中進(jìn)行深度測試,一邊參照上述深度緩沖器的上述深度圖信息,一邊對構(gòu)成碰撞檢測對象目標(biāo)的圖元面中的從規(guī)定的視點(diǎn)觀察處于背面的圖元面進(jìn)行描繪,上述描繪部進(jìn)行第2描繪處理,該第2描繪處理中,不進(jìn)行深度測試而對構(gòu)成上述碰撞檢測對象目標(biāo)的圖元面中的從上述視點(diǎn)觀察處于背面的圖元面進(jìn)行描繪,上述處理部進(jìn)行基于上述第I描繪處理與上述第2描繪處理的結(jié)果,判定上述碰撞檢測對象目標(biāo)是否與上述對象面的上述目標(biāo)碰撞的碰撞判定。
根據(jù)本發(fā)明的一方式,在深度緩沖器中,在對象面配置設(shè)定的目標(biāo)的深度信息被設(shè)定為深度圖信息。而且,描繪部進(jìn)行第I描繪處理和第2描繪處理,該第I描繪處理中進(jìn)行深度測試,對碰撞檢測對象目標(biāo)的背面的圖元面進(jìn)行描繪、該第2描繪處理中,不進(jìn)行深度測試而對碰撞檢測對象目標(biāo)的背面的圖元面進(jìn)行描繪。而且,基于這些第I、第2描繪處理的結(jié)果,進(jìn)行碰撞檢測對象目標(biāo)與對象面的目標(biāo)之間的碰撞判定。如此,能夠進(jìn)行有效地利用深度緩沖器處理的碰撞判定,且能夠?qū)崿F(xiàn)碰撞檢測對象目標(biāo)的準(zhǔn)確的碰撞判定。另外,在本發(fā)明的一方式中,上述處理部可以進(jìn)行通過上述第I描繪處理而生成的第I圖像與通過上述第2描繪處理而生成的第2圖像的比較處理,從而進(jìn)行上述碰撞判定。如此,對通過第I、第2描繪處理生成的第I、第2圖像的差異進(jìn)行檢測,從而能夠?qū)崿F(xiàn)碰撞判定。另外,本發(fā)明的一方式中,上述處理部可以只進(jìn)行上述第I描繪處理中的描繪像 素?cái)?shù)信息與上述第2描繪處理中的描繪像素?cái)?shù)信息的比較處理,由此進(jìn)行上述碰撞判定。如此,只檢測第I、第2描繪處理中的描繪像素?cái)?shù)的差異,就能夠?qū)崿F(xiàn)碰撞判定。另外,本發(fā)明的一方式中,上述描繪部可以在上述第I描繪處理與上述第2描繪處理的各描繪處理中,通過無限遠(yuǎn)的上述視點(diǎn)處的平行投影對上述碰撞檢測對象目標(biāo)的背面的圖元面進(jìn)行描繪。這樣,與一般的三維圖像的描繪處理不同,通過平行投影對背面的圖元面進(jìn)行描 繪,從而能夠?qū)崿F(xiàn)更準(zhǔn)確的碰撞判定。另外,本發(fā)明的一方式中,在上述深度緩沖器中可以將通過無限遠(yuǎn)的上述視點(diǎn)處的平行投影對上述對象面的上述目標(biāo)進(jìn)行描繪而獲得的深度信息設(shè)定為上述對象面的上述深度圖信息。如此,為了對通過平行投影的圖元面的描繪進(jìn)行碰撞判定的處理,能夠在深度緩沖器設(shè)定適當(dāng)?shù)纳疃葓D信息。另外,本發(fā)明的一方式中,上述碰撞檢測對象目標(biāo)由多個(gè)部分目標(biāo)構(gòu)成,在從上述視點(diǎn)觀察上述多個(gè)部分目標(biāo)中的第I部分目標(biāo)與第2部分目標(biāo)不重疊的情況下,上述描繪部可以在上述第I描繪處理與上述第2描繪處理的各描繪處理中,同時(shí)描繪上述第I部分目標(biāo)與上述第2部分目標(biāo)。這樣,如果同時(shí)描繪第I、第2部分目標(biāo),則能夠節(jié)約描繪處理的次數(shù),實(shí)現(xiàn)處理的
聞速化等。另外,在本發(fā)明的一方式中,在作為上述碰撞檢測對象目標(biāo),存在多個(gè)碰撞檢測對象目標(biāo)的情況下,上述處理部可以對上述多個(gè)碰撞檢測對象目標(biāo)中的第I碰撞檢測對象目標(biāo)進(jìn)行上述碰撞判定之后,將上述第I碰撞檢測對象目標(biāo)設(shè)定為被碰撞檢測對象目標(biāo),進(jìn)行針對上述多個(gè)碰撞檢測對象目標(biāo)中的第2碰撞檢測對象目標(biāo)的上述碰撞判定。如此,在存在多個(gè)碰撞檢測對象目標(biāo)的情況下,不僅能夠?qū)崿F(xiàn)碰撞檢測對象目標(biāo)與對象面的目標(biāo)的碰撞判定,也能夠?qū)崿F(xiàn)碰撞檢測對象目標(biāo)之間的碰撞判定。另外,本發(fā)明的一方式中,在上述深度緩沖器設(shè)定與以內(nèi)包上述碰撞檢測對象目標(biāo)的方式設(shè)定的第I 第N對象面(N為2以上的整數(shù))對應(yīng)的第I 第N深度圖信息的各深度圖信息,上述描繪部針對上述第I 第N對象面的各對象面進(jìn)行第I描繪處理,該第I描繪處理中,進(jìn)行深度測試,一邊參照上述第I 第N深度圖信息對應(yīng)的各深度圖信息一邊對上述碰撞檢測對象目標(biāo)的背面的圖元面進(jìn)行描繪、且進(jìn)行第2描繪處理,該第2描繪處理中,不進(jìn)行深度測試而對上述碰撞檢測對象目標(biāo)的背面的圖元面進(jìn)行描繪,上述處理部基于針對上述第I 第N對象面的各對象面的上述第I描繪處理與上述第2描繪處理的結(jié)果,進(jìn)行上述碰撞判定也可以。如此,根據(jù)第I 第N對象面設(shè)定內(nèi)包與碰 撞檢測對象目標(biāo)對應(yīng)的物體的環(huán)境的區(qū)域,能夠?qū)崿F(xiàn)碰撞檢測對象目標(biāo)的碰撞判定。另外,本發(fā)明的一方式中,上述第I 第N對象面可以是構(gòu)成內(nèi)包上述碰撞檢測對象目標(biāo)的立方體或者長方體的面。另外,本發(fā)明的一方式中,上述碰撞檢測對象目標(biāo)可以是對機(jī)械手進(jìn)行模型化的目標(biāo)。另外,本發(fā)明的其他的方式涉及包括上述任意一個(gè)所記載的碰撞檢測系統(tǒng)的機(jī)械手系統(tǒng)。另外,本發(fā)明的其他的方式涉及一種碰撞檢測方法,在深度緩沖器將在對象面配置設(shè)定的目標(biāo)的深度信息設(shè)定為深度圖信息,在該碰撞檢測方法中進(jìn)行第I描繪處理,該第I描繪處理中進(jìn)行深度測試,一邊參照上述深度緩沖器的上述深度圖信息一邊對構(gòu)成碰撞檢測對象目標(biāo)的圖元面中的從規(guī)定的視點(diǎn)觀察處于背面的圖元面進(jìn)行描繪,在該碰撞檢測方法中進(jìn)行第2描繪處理,該第2描繪處理中,不進(jìn)行深度測試而對上述構(gòu)成碰撞檢測對象目標(biāo)的圖元面中的從上述視點(diǎn)觀察處于背面的圖元面進(jìn)行描繪,在該碰撞檢測方法中進(jìn)行基于上述第I描繪處理與上述第2描繪處理的結(jié)果,判定上述碰撞檢測對象目標(biāo)是否是與上述對象面的上述目標(biāo)碰撞的碰撞判定。另外,本發(fā)明的其他的方式涉及程序,使計(jì)算機(jī)作為如下各部發(fā)揮功能,S卩,處理部、進(jìn)行描繪處理的描繪部、和設(shè)定深度信息的深度緩沖器,在上述深度緩沖器將在對象面配置設(shè)定的目標(biāo)的深度信息設(shè)定為深度圖信息,上述描繪部進(jìn)行第I描繪處理,該第I描繪處理中進(jìn)行深度測試,一邊參照上述深度緩沖器的上述深度圖信息一邊對構(gòu)成碰撞檢測對象目標(biāo)的圖元面中的從規(guī)定的視點(diǎn)觀察處于背面的圖元面進(jìn)行描繪,上述描繪部進(jìn)行第2描繪處理,該第2描繪處理中,不進(jìn)行深度測試而對構(gòu)成上述碰撞檢測對象目標(biāo)的圖元面中的從上述視點(diǎn)觀察處于背面的圖元面進(jìn)行描繪,上述處理部進(jìn)行基于上述第I描繪處理與上述第2描繪處理的結(jié)果,判定上述碰撞檢測對象目標(biāo)是否與上述對象面的上述目標(biāo)碰撞的碰撞判定。
圖I (A) 圖I (C)是深度緩沖器處理的說明圖。圖2(A) 圖2(D)也是深度緩沖器處理的說明圖。圖3(A) 圖3(C)是針對現(xiàn)有技術(shù)的問題點(diǎn)的說明圖。圖4是本實(shí)施方式的碰撞檢測系統(tǒng)的構(gòu)成例。圖5是包括本實(shí)施方式的碰撞檢測系統(tǒng)的機(jī)械手系統(tǒng)的例子。圖6是碰撞檢測對象目標(biāo)、設(shè)定在對象面的目標(biāo)的說明圖。圖7是與對象面對應(yīng)而設(shè)定的深度圖信息的說明圖。
圖8(A)、圖8(B)也是深度圖信息的說明圖。圖9是設(shè)定6面的深度圖信息的手法的說明圖。圖10(A) 圖10(C)是本實(shí)施方式的碰撞檢測手法的說明圖。圖11⑷,圖11⑶也是本實(shí)施方式的碰撞檢測手法的說明圖。圖12是表示本實(shí)施方式的詳細(xì)的處理的流程圖。圖13是表示本實(shí)施方式的詳細(xì)的處理的流程圖。
具體實(shí)施例方式以下,對本發(fā)明的優(yōu)選的實(shí)施方式詳細(xì)地進(jìn)行說明。此外,以下說明的本實(shí)施方式 并沒有不合理地限定權(quán)利要求書所記載的本發(fā)明的內(nèi)容,本實(shí)施方式所說明的全部構(gòu)成,作為本發(fā)明的解決手段未必是必須的。I.深度緩沖器處理在機(jī)械手(機(jī)械臂)的動(dòng)作中,與周邊構(gòu)造物、周邊設(shè)備的碰撞、自碰撞、與其他的機(jī)械手的碰撞成為非常大的問題。在本實(shí)施方式的碰撞檢測手法中,通過模擬,預(yù)先檢測這樣的碰撞。作為使用了這樣的本實(shí)施方式的碰撞檢測手法的方式,可以認(rèn)為大致分為離線中的使用(預(yù)先確認(rèn))、和在線中的使用(預(yù)測、預(yù)讀取)。離線的使用中,若周邊環(huán)境等已知且是靜態(tài)的、機(jī)械手的動(dòng)作已知的情況下,在系統(tǒng)作成時(shí),驗(yàn)證其碰撞。另一方面,在線的使用中,當(dāng)周邊環(huán)境等動(dòng)態(tài)地變化的情況下(例如周圍存在多個(gè)機(jī)械手,或者存在作業(yè)者的情況下),在機(jī)械手實(shí)際動(dòng)作之前,通過模擬來檢測碰撞。以前,作為這樣的機(jī)械手的碰撞檢測手法,大多是使用適合CPU (CentralProcessing Unit)的處理的算法的情況。此處,適合CPU處理的算法是指,以比較少數(shù)(從數(shù)十至數(shù)百左右)的并行度處理比較復(fù)雜的單位處理的這樣的算法。然而,近年來,起因于消耗功率的問題等,CPU的動(dòng)作頻率的增加已停止。因此,最近的CPU的性能提聞通過多核化等處理的并行度的提聞而實(shí)現(xiàn)。換目之,在不能夠提聞并行度的算法中,不能夠提高處理性能。另一方面,GPU(Graphics Processing Unit)與CPU相比具有非常大的并行度。例如當(dāng)前的GPU設(shè)有數(shù)百至數(shù)十萬的ALU(算術(shù)運(yùn)算單元)而具有能夠并行地執(zhí)行數(shù)萬至數(shù)百萬的處理的能力。于是,在本實(shí)施方式中,作為碰撞檢測的算法,通過采用比CPU處理更適合GPU處理的算法,從而與以往相比實(shí)現(xiàn)高性能的碰撞檢測。具體而言,最大限度地利用GPU所具有的硬件功能亦即ROP(渲染 輸出 管線)的功能。即、使用這樣的ROP功能,有效地利用深度測試功能與深度緩沖器來實(shí)現(xiàn)碰撞檢測。此處,深度緩沖器在CG(Computer Graphics)中主要使用于消隱,并存儲(chǔ)目標(biāo)的深度信息。具體而言,以像素單位存儲(chǔ)深度值(Z值)。另外,深度信息是指與每個(gè)像素的深度值相關(guān)的信息。以下,對使用了深度緩沖器的深度緩沖器處理(Z緩沖處理)進(jìn)行說明。在深度緩沖器處理中,當(dāng)描繪某點(diǎn)時(shí),比較該點(diǎn)的深度值與存儲(chǔ)在深度緩沖器的深度值。然后,如果該點(diǎn)的深度值大(右旋坐標(biāo)系的情況下),利用該點(diǎn)的彩色值覆蓋彩色緩沖器的值,并且利用該點(diǎn)的深度值更新深度緩沖器的值。
例如目標(biāo)0BA、0BB、0BC如圖I (A)、圖I⑶所示那樣配置。圖I⑷是從上方的視點(diǎn)觀察目標(biāo)OBA、0BB, OBC時(shí)的圖,圖I (B)是從前斜上方的視點(diǎn)觀察時(shí)的圖。此處,目標(biāo)是模型化了現(xiàn)實(shí)世界的物體而成的,例如由多個(gè)圖元面構(gòu)成。圖元面是成為作為目標(biāo)的構(gòu)成要素的圖元的面,例如是多邊形、自由曲面或者細(xì)分曲面等。如圖I (C)所示,在使用了深度緩沖器的描繪處理中,各像素的彩色值(RGB的色信息)被寫入描繪緩沖器(彩色緩沖器),深度值(Z值)被寫入深度緩沖器(Z緩沖器)。具體而言,圖2(A)中,深度緩沖器的深度值被設(shè)定為作為初始值的最后面值。而且,在圖2(B)中,描繪目標(biāo)0BA。在這種情況下,圖2 (B)的Jl所示的區(qū)域中的目標(biāo)OBA的各像素的深度值成為比圖2(A)中的深度緩沖器的深度值更靠前方側(cè)(跟前一側(cè))的深度值。因此,在Jl所示的區(qū)域中,目標(biāo)OBA的彩色值被寫入描繪緩沖器,并且目標(biāo)OBA的深度 值被寫入深度緩沖器來更新深度值。在圖2(C)中,描繪目標(biāo)0BB。在這種情況下,圖2(C)的J2所示的區(qū)域中的目標(biāo)OBB的各像素的深度值成為比深度緩沖器的深度值更靠后方側(cè)(里側(cè))的深度值。因此,在J2所示的區(qū)域中,目標(biāo)OBB被判斷為消隱,目標(biāo)OBB的彩色值不被寫入描繪緩沖器,并且如圖2 (D)的J3所示那樣,也不更新深度緩沖器的深度值。另一方面,J4所示的區(qū)域中的目標(biāo)OBB的各像素的深度值成為比深度緩沖器的深度值更靠前方側(cè)的深度值。因此,在J4所示的區(qū)域中,目標(biāo)OBB的彩色值被寫入描繪緩沖器,并且如圖2(D)的J5所示,目標(biāo)OBB的深度值被寫入深度緩沖器來更新深度值。而且,若在圖2(D)描繪目標(biāo)0BC,則通過與上述相同的手法,在J6的區(qū)域中不進(jìn)行彩色值的寫入、深度值的更新而在J7的區(qū)域中進(jìn)行彩色值的寫入和深度值的更新。通過進(jìn)行以上那樣深度緩沖器處理,不取決于描繪的順序,就能夠準(zhǔn)確地判定縱深方向的順序,如圖I(C)所示,生成進(jìn)行了適當(dāng)?shù)南[的圖像。另外,上述的專利文獻(xiàn)I的現(xiàn)有技術(shù)中,也利用深度緩沖器來進(jìn)行碰撞判定。例如,假設(shè)通過描繪其他目標(biāo),深度緩沖器的深度值如圖3(A)所示。在這種情況下,如圖3(B)的Hl所示,在目標(biāo)OBAl中,其深度值與Z緩沖器的深度值不同,所以判定為OBAl未與其他目標(biāo)碰撞。另一方面,如H2、H3所示,在目標(biāo)0BA2中,其深度值與深度緩沖器的深度值相同。因此,判定為目標(biāo)0BA2與具有該深度緩沖器的深度值的其他目標(biāo)碰撞。然而,在該專利文獻(xiàn)I的現(xiàn)有技術(shù)中,存在如圖3(C)所示的那樣的問題點(diǎn)。在圖3 (C)中,通過其他目標(biāo)OBD的描繪,深度緩沖器的深度值如H4所示。在這種情況下,如H5所示,不管目標(biāo)0BA3是否與目標(biāo)OBD碰撞,目標(biāo)0BA3的深度值都與深度緩沖器的深度值都不一致,所以判定為未碰撞。此外,如H6所示,在插補(bǔ)了深度值的情況下,雖然目標(biāo)0BA4與目標(biāo)OBD未碰撞,但會(huì)被判定為碰撞。另外,作為其他的手法也考慮如下的手法,S卩、將假想的視點(diǎn)設(shè)定為表示地面等的平面狀的目標(biāo)的后面,從后面觀察,如果描繪了應(yīng)該處于表面的目標(biāo),則判定為其目標(biāo)與平面碰撞。然而,在該手法中,假設(shè)了單純的平面,但在其不是平面而是具有復(fù)雜的構(gòu)造的目標(biāo)(例如非凸)的情況下,有與一個(gè)面的碰撞被其它的面遮擋的可能性,這樣的情況下,無法檢測到碰撞。2.構(gòu)成圖4表示能夠解決以上那樣的問題的本實(shí)施方式的碰撞檢測系統(tǒng)的構(gòu)成例。此夕卜,本實(shí)施方式的碰撞檢測系統(tǒng)的構(gòu)成并不限于圖4的構(gòu)成,能夠?qū)嵤┦÷云湟徊糠值臉?gòu)成要素(例如操作部,外部I/F部等),或者追加其他的構(gòu)成要素等的各種變形。該碰撞檢測系統(tǒng)包括處理部10、進(jìn)行描繪處理的描繪部30、和存儲(chǔ)部50 (深度緩沖器)。而且,能夠包括操作部70、外部I/F(接口)部80、和信息存儲(chǔ)介質(zhì)90。處理部10進(jìn)行各種的判定處理、控制處理等,能夠通過例如CPU等各種處理器、專用電路(ASIC)等硬件、在處理器上執(zhí)行的程序等來實(shí)現(xiàn)。處理部10包括目標(biāo)空間設(shè)定部12、和碰撞判定部14。目標(biāo)空間設(shè)定部12進(jìn)行在目標(biāo)空間配置設(shè)定多個(gè)目標(biāo)的處理等。具體而言,決定世界坐標(biāo)系統(tǒng)中的目標(biāo)的位置、旋轉(zhuǎn)角度,并在該位置以該旋轉(zhuǎn)角度配置目標(biāo)。此處,目標(biāo)是對機(jī)械手等碰撞檢測對象物、周邊構(gòu)造物、周邊設(shè)備等被碰撞檢測對象物進(jìn)行模型化而成的,由多邊形、自由曲面等圖元面構(gòu)成。
碰撞判定部14進(jìn)行碰撞檢測對象目標(biāo)與被碰撞檢測對象目標(biāo)之間的碰撞判定處理,并且包括進(jìn)行圖像、描繪計(jì)數(shù)的比較處理的比較處理部16。描繪部30進(jìn)行描繪處理,能夠通過例如GPU等各種處理器、專用電路(ASIC)等硬件、在處理器上執(zhí)行的程序等來實(shí)現(xiàn)。該描繪部30中的描繪處理可以通過由頂點(diǎn)著色程序?qū)崿F(xiàn)的頂點(diǎn)著色、由像素著色程序?qū)崿F(xiàn)的像素著色來實(shí)現(xiàn)。頂點(diǎn)著色中,進(jìn)行頂點(diǎn)的移動(dòng)處理、坐標(biāo)變換處理、限幅處理等。然后,基于頂點(diǎn)處理后的頂點(diǎn)數(shù)據(jù),進(jìn)行光柵化處理。另外,像素著色中,在光柵化處理之后進(jìn)行構(gòu)成圖像的像素(分段)單位中的處理亦即像素處理(分段(Fragment)處理)。即、通過由著色語言描述的著色程序而實(shí)現(xiàn)可編程著色處理。存儲(chǔ)部50成為處理部10、描繪部30等的工作區(qū)域,能夠通過RAM(SRAM、DRAM等)等存儲(chǔ)器來實(shí)現(xiàn)。該存儲(chǔ)部50包括目標(biāo)數(shù)據(jù)存儲(chǔ)部52、描繪緩沖器54、深度緩沖器56。目標(biāo)數(shù)據(jù)存儲(chǔ)部52存儲(chǔ)目標(biāo)的位置數(shù)據(jù)、旋轉(zhuǎn)角度數(shù)據(jù)、形狀數(shù)據(jù)等目標(biāo)數(shù)據(jù)。描繪緩沖器54 (彩色緩沖器、幀緩沖器)存儲(chǔ)圖像信息,具體而言,按像素單位存儲(chǔ)彩色值、a值等圖像信息。深度緩沖器56 (Z緩沖器)存儲(chǔ)深度信息,具體而言,按像素單位存儲(chǔ)深度值(Z值)。這些描繪緩沖器54、深度緩沖器56在構(gòu)成存儲(chǔ)部50的存儲(chǔ)器上被確保為存儲(chǔ)區(qū)域。操作部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í)行各部的處理的程序)。而且,本實(shí)施方式的碰撞檢測系統(tǒng)中,在深度緩沖器56中,配置設(shè)定于對象面的目標(biāo)的深度信息被設(shè)定(存儲(chǔ))為深度圖信息。例如后述的圖6、圖9所示,在對象面(SFl SF6)配置設(shè)定多個(gè)目標(biāo)(0B11、0B12、0B21等)。而且,如圖7 圖8(B)所示,該對象面的目標(biāo)的深度信息被作成為深度圖信息,且被設(shè)定于深度緩沖器56。深度圖是通過例如從規(guī)定視點(diǎn)(例如無限遠(yuǎn)的視點(diǎn))觀察時(shí)的對象面的目標(biāo)的深度值(像素單位的深度值)的矩陣排列所表示的圖。此處,對象面例如是配置設(shè)定與被碰撞檢測對象物對應(yīng)的目標(biāo)的假想的面。另外,深度圖信息例如是由碰撞判定處理時(shí)從規(guī)定的視點(diǎn)觀察到的對象面的目標(biāo)的深度值構(gòu)成的信息。例如深度圖通過從規(guī)定的視點(diǎn)觀察時(shí)的對象面的目標(biāo)的像素單位的深度值的矩陣排列進(jìn)行表示。具體而言,在深度緩沖器56例如將通過無限遠(yuǎn)的視點(diǎn)(廣義上規(guī)定的視點(diǎn))處的平行投影對對象面的目標(biāo)進(jìn)行描繪而獲得的深度信息被設(shè)定(存儲(chǔ))為對象面的深度圖信息。而且,如后述的圖10 (A)、圖10 (B)所示,描繪部30進(jìn)行第I描繪處理,該第I描繪處理中,進(jìn)行深度測試(使深度測試有效。有深度測試),一邊參照深度緩沖器56的深度圖信息一邊對構(gòu)成碰撞檢測對象目標(biāo)的圖元面(例如多邊形)中的從規(guī)定的視點(diǎn)(描繪處理中的視點(diǎn))觀察處于背面的圖元面進(jìn)行描繪。另外,如圖10(C)所示,描繪部30進(jìn)行第2描繪處理,該第2描繪處理中,不進(jìn)行深度測試(使深度測試無效。無深度測試)而在構(gòu)成碰撞檢測對象目標(biāo)的圖元面中從視點(diǎn)觀察對處于背面的圖元面進(jìn)行描繪。具體而言,描繪部30在上述的第I、第2描繪處理的各描繪處理中,以無限遠(yuǎn)的視點(diǎn)處的平行投影對碰撞檢測對象目標(biāo)的背面的圖元面進(jìn)行描繪。此處,碰撞檢測對象目標(biāo)是成為與對象面的目標(biāo)碰撞的碰撞檢測對象的目標(biāo),例如是模型化了機(jī)械手的目標(biāo)等。另外,若以圖元面為多邊形的情況為例,則對構(gòu)成三角形的3頂點(diǎn)來說,從視點(diǎn)觀察,例如逆時(shí)針方向看到的面為表面(front surface, front-facingsurface),從視點(diǎn)觀察,例如順時(shí)針方向看到的面為背面(back surface, back-facingsurface)。若以封閉的目標(biāo)的表面朝外為前提,則能夠?qū)⒈砻嬗浭鰹榍懊?、將背面記述為后面。另外,此處的進(jìn)行深度測試是指(使深度測試有效是指),在處理對象像素的深度值是比深度緩沖器56的深度值更靠前方側(cè)的深度值的情況下,在描繪緩沖器54的對應(yīng)的 像素位置寫入圖像信息(彩色數(shù)據(jù)),并且在深度緩沖器56的對應(yīng)的像素位置寫入處理對象像素的深度值。而且,處理部10基于上述的第I描繪處理與第2描繪處理的結(jié)果,進(jìn)行碰撞判定,該碰撞判定是判定碰撞檢測對象目標(biāo)是否與對象面的目標(biāo)碰撞。具體而言,如圖Il(A)所示,處理部10進(jìn)行通過第I描繪處理生成的第I圖像、和通過第2描繪處理生成的第2圖像的比較處理,從而進(jìn)行碰撞判定。或者如圖Il(B)所示,通過進(jìn)行第I描繪處理中的描繪像素?cái)?shù)信息與第2描繪處理中的描繪像素?cái)?shù)信息的比較處理而進(jìn)行碰撞判定。該碰撞判定處理由碰撞判定部14進(jìn)行。另外,第I、第2圖像的比較處理、描繪像素?cái)?shù)信息的比較處理由比較處理部16進(jìn)行。此外,描繪像素?cái)?shù)信息是實(shí)際表示描繪像素?cái)?shù)的信息即可,也包括與描繪像素?cái)?shù)等價(jià)的信息。如以上那樣,在本實(shí)施方式中,在深度緩沖器設(shè)定對象面的深度圖信息,并執(zhí)行進(jìn)行深度測試(Z測試)的第I描繪處理(使深度測試有效的第I描繪處理)、和不進(jìn)行深度測試的第2描繪處理(使深度測試無效的第2描繪處理)。并且,基于第I、第2描繪處理的結(jié)果,進(jìn)行碰撞檢測對象目標(biāo)的碰撞判定。如此,能夠?qū)崿F(xiàn)有效地利用深度緩沖器處理的高速(準(zhǔn)確)的碰撞判定(接近判定)。即、通過將碰撞(接近)的問題置換為適合最新的描繪硬件處理的遮擋處理,從而能夠非常高速地進(jìn)行碰撞判定(接近判定)。此外,碰撞檢測對象目標(biāo)由多個(gè)部分目標(biāo)構(gòu)成,假定從視點(diǎn)觀察多個(gè)部分目標(biāo)中的第I部分目標(biāo)與第2部分目標(biāo)不重疊的情況。在這種情況下,描繪部30可以在第I描繪處理與第2描繪處理的各描繪處理中同時(shí)描繪第I部分目標(biāo)與第2部分目標(biāo)。即、將第I、第2部分目標(biāo)如一個(gè)部分目標(biāo)那樣同時(shí)描繪。例如后述的圖IO(A)中,第I、第2部分目標(biāo)PB1、PB2是從視點(diǎn)(平行投影的視點(diǎn))觀察不重疊的目標(biāo),此時(shí),將第I、第2部分目標(biāo)PB1、PB2如一個(gè)部分目標(biāo)那樣同時(shí)描繪。這樣,從視點(diǎn)觀察碰撞檢測對象目標(biāo)的多個(gè)部分目標(biāo)(多個(gè)部分)不重疊的情況下,通過同時(shí)描繪它們,可減少描繪處理的次數(shù),使處理高速化。此外,部分目標(biāo)是成為構(gòu)成碰撞檢測對象目標(biāo)等模型目標(biāo)的部分的目標(biāo)。例如碰撞檢測對象目標(biāo)等模型目標(biāo)由多個(gè)部分目標(biāo)和連接部分目標(biāo)之間的關(guān)節(jié)部分等構(gòu)成。另外,在作為碰撞檢測對象目標(biāo),存在多個(gè)碰撞檢測對象目標(biāo)的情況下,處理部10可以對多個(gè)碰撞檢測對象目標(biāo)中的第I碰撞檢測對象目標(biāo)進(jìn)行碰撞判定之后,將第I碰撞檢測對象目標(biāo)設(shè)定為被碰撞檢測對象目標(biāo),進(jìn)行針對第2碰撞檢測對象目標(biāo)的碰撞判定。即、在存在多個(gè)碰撞檢測對象目標(biāo)的情況下,選擇一個(gè)成為碰撞檢測的對象的碰撞檢測對象目標(biāo),將除此之外的碰撞檢測對象目標(biāo)作為構(gòu)成環(huán)境的目標(biāo)進(jìn)行處理,而進(jìn)行碰撞判定。如此,不僅能夠?qū)崿F(xiàn)碰撞檢測對象目標(biāo)與環(huán)境的目標(biāo)的碰撞判定,還能夠?qū)崿F(xiàn)多個(gè)碰撞檢測對象目標(biāo)間的碰撞判定。另外,可以按照內(nèi)包碰撞檢測對象目標(biāo)的方式設(shè)定第I 第N對象面(N為2以上 的整數(shù))。例如圖9中,設(shè)定內(nèi)包作為碰撞檢測對象目標(biāo)的機(jī)械手RB的6面的對象面SFl SF6。在這種情況下,在深度緩沖器56設(shè)定與第I 第N對象面對應(yīng)的第I 第N深度圖信息的各深度圖信息。即、在各對象面配置設(shè)定的目標(biāo)的深度信息被設(shè)定為各深度圖信息。例如設(shè)定圖9的SFl SF6的各對象面的各深度圖信息。該情況下的第I 第N對象面能夠作為構(gòu)成例如內(nèi)包碰撞檢測對象目標(biāo)的立方體或者長方體的面。而且,描繪部30進(jìn)行第I描繪處理,該第I描繪處理中對第I 第N對象面的各對象面進(jìn)行深度測試(使深度測試有效),一邊參照第I 第N深度圖信息的對應(yīng)的各深度圖信息(與各對象面對應(yīng)的深度圖信息)一邊對碰撞檢測對象目標(biāo)的背面的圖元面進(jìn)行描繪。另外,進(jìn)行第2描繪處理,該第2描繪處理中,不進(jìn)行深度測試(使深度測試無效)而對碰撞檢測對象目標(biāo)的背面的圖元面進(jìn)行描繪。例如對第I對象面一邊參照與第I對象面對應(yīng)的第I深度圖信息,一邊進(jìn)行第I描繪處理,并且進(jìn)行第2描繪處理。另外,對第2對象面一邊參照與第2對象面對應(yīng)的第2深度圖信息,一邊進(jìn)行第I描繪處理,并且進(jìn)行第2描繪處理。第3 第N對象面也相同。而且,處理部10基于針對第I 第N對象面的各對象面的第I描繪處理與第2描繪處理的結(jié)果,進(jìn)行碰撞判定。例如對各對象面,進(jìn)行由第I、第2描繪處理所生成的第I、第2圖像的比較處理,或者進(jìn)行第I、第2描繪處理的描繪像素?cái)?shù)信息的比較處理,由此進(jìn)行碰撞判定。如此,能夠以簡單的處理實(shí)現(xiàn)以圍繞碰撞檢測對象物的方式配置物體這樣的環(huán)境中的碰撞判定。圖5表包括本實(shí)施方式的碰撞檢測系統(tǒng)的機(jī)械手系統(tǒng)的例子。該機(jī)械手系統(tǒng)包括控制裝置300 (信息處理裝置)、和機(jī)械手310??刂蒲b置300進(jìn)行機(jī)械手310的控制處理。具體而言,基于動(dòng)作順序信息(方案信息)進(jìn)行使機(jī)械手310動(dòng)作的控制。機(jī)械手310具有臂320以及手部(把持部)330。而且,按照來自控制裝置300的動(dòng)作指示進(jìn)行動(dòng)作。例如,進(jìn)行把持或移動(dòng)放置在未圖示的托盤上的工件等的動(dòng)作。另外,基于未圖示的拍攝裝置所取得的拍攝圖像信息,對機(jī)械手的姿勢、工件的位置等信息進(jìn)行檢測,檢測出的信息被發(fā)送給控制裝置300。本實(shí)施方式的碰撞檢測系統(tǒng)例如設(shè)置于圖5的控制裝置300,例如通過控制裝置300的硬件或程序來實(shí)現(xiàn)碰撞檢測系統(tǒng)。而且,在線的使用中,周邊環(huán)境等動(dòng)態(tài)地變化的情況下,在機(jī)械手310的實(shí)際的動(dòng)作之前,本實(shí)施方式的碰撞檢測系統(tǒng)通過模擬進(jìn)行碰撞的判定處理。而且,控制裝置300基于判定處理的結(jié)果進(jìn)行機(jī)械手310的控制,以使機(jī)械手310與周邊構(gòu)造物、周邊設(shè)備等不碰撞。另一方面,離線的使用中,根據(jù)本實(shí)施方式的碰撞檢測系統(tǒng),在動(dòng)作順序信息等作成時(shí),通過模擬來驗(yàn)證碰撞。而且,控制裝置300基于作成的動(dòng)作順序信息(方案信息)對機(jī)械手310進(jìn)行控制以便不發(fā)生碰撞。3.本實(shí)施方式的手法接下來,使用附圖對本實(shí)施方式的手法更詳細(xì)地進(jìn)行說明。此外,以下,以碰撞檢測對象目標(biāo)為對機(jī)械手進(jìn)行了模型化的目標(biāo)的情況為例,進(jìn)行說明,但本實(shí)施方式的手法并不限于此。
圖6中,RB是對現(xiàn)實(shí)世界的機(jī)械手進(jìn)行了模型化的目標(biāo)(以下,將機(jī)械手目標(biāo)簡稱為機(jī)械手RB)。圖6中,設(shè)定內(nèi)包機(jī)械手RB那樣的對象面SFl SF4(以下,將對象面簡稱為面)。具體而言,如圖9所示,設(shè)定包括機(jī)械手RB的可動(dòng)范圍的假想的立方體(或者長方體)。而且,面SFl、SF2、SF3、SF4、SF5、SF6分別成為構(gòu)成該假想的立方體的頂面、后面、底面、前面、
右面、左面。而且,圖6中,在各面(各對象面)配置設(shè)定表示侵入到機(jī)械手RB的可動(dòng)范圍的構(gòu)造物的目標(biāo)。例如在面SFl配置設(shè)定目標(biāo)0B11、0B12,在面SF2配置設(shè)定目標(biāo)0B21,在面SF3配置設(shè)定目標(biāo)0B31、0B32,在面SF4配置設(shè)定目標(biāo)0B41、0B42。此外,非凸的目標(biāo)作為凸的目標(biāo)進(jìn)行處理。而且,如圖7所示,利用貫通立方體的各面的目標(biāo)的表面(front surface,front-facing surface),作成各面的深度圖信息(以下,簡稱為深度圖)。例如圖7中,利用貫通面SFl的目標(biāo)0B11、0B12作成面SFl的深度圖DPMI。具體而言,通過無限遠(yuǎn)的視點(diǎn)處的平行投影(方向DRP中的平行投影)對面SFl的目標(biāo)0B11、0B12(0B11、B12的表面)進(jìn)行描繪而得到的深度信息成為面SFl的深度圖DPMI。該深度圖DPMI是由從與面SFl正對的無限遠(yuǎn)的視點(diǎn)觀察時(shí)的目標(biāo)0B11、0B12的深度值構(gòu)成的圖。即、頂面SFl的深度圖DPMI被表現(xiàn)為從底面SF3側(cè)的無限遠(yuǎn)的視點(diǎn)觀察的深度圖。此外,針對貫通2個(gè)以上面的目標(biāo),加上各自的面的深度圖。例如圖8(A)、圖8(B)中,目標(biāo)0B13貫通面SFl與SF2雙方。此時(shí),目標(biāo)0B13的深度值被設(shè)定為面SFl的深度圖DPMI與面SF2的深度圖DPM2雙方。具體而言,如圖8(A)所示,通過從面SF3朝向面SFl的方向的平行投影,對目標(biāo)0B11、0B13進(jìn)行描繪,從而作成面SFl的深度圖DPMI。另外,如圖8(B)所示,通過從面SF4朝向面SF2的方向的平行投影,對目標(biāo)0B13、0B21進(jìn)行描繪,從而作成面SF2的深度圖DPM2。此外,假設(shè)不存在哪個(gè)面都不貫通而浮在空中這樣的構(gòu)造物的目標(biāo)。針對圖9的全部面SFl SF6作成以上這樣的深度圖。由此,作成圖9所示那樣的深度立體圖。至此為碰撞判定處理的預(yù)處理。接下來,選擇面SFl SF6中的一個(gè)面,在深度緩沖器56設(shè)定該面的深度圖。例如圖IO(A)中,選擇面SFl,在深度緩沖器56設(shè)定面SFl的深度圖DPMI。然后,進(jìn)行機(jī)械手RB的描繪處理。此處,機(jī)械手RB被分割成分別為凸的一個(gè)以上的部分目標(biāo)(部分),進(jìn)行上述各部分目標(biāo)的描繪處理。此外,不考慮部分目標(biāo)間的相互碰撞(自碰撞)。換句話說,這些部分目標(biāo)的位置能夠在圖5的控制裝置300中進(jìn)行控制,所以可避免自碰撞。具體而言,描 繪部30進(jìn)行使深度測試有效而描繪機(jī)械手RB的部分目標(biāo)PB1、PB2的第I描繪處理。而且,將所獲得的圖像作為參照圖像進(jìn)行記錄。例如,一邊參照面SFl的深度圖DPMI的深度值,一邊如圖10(A)的D1、D2所示那樣對部分目標(biāo)PB1、PB2的背面(后面)進(jìn)行描繪。即、對構(gòu)成部分目標(biāo)PB1、PB2的多邊形(廣義上圖元面)中的、背面(backsurcace,back-facing surface)的多邊形進(jìn)行描繪。更具體而言,進(jìn)行使深度測試有效,通過圖10(A)的DRP所示的方向的平行投影(無限遠(yuǎn)的視點(diǎn)),對部分目標(biāo)PB1、PB2的背面多邊形進(jìn)行描繪的第I描繪處理。通過該第I描繪處理,在描繪緩沖器54上生成圖10(B)所示那樣的第I圖像,該第I圖像作為參照圖像被記錄于例如其他的存儲(chǔ)器區(qū)域。接下來,進(jìn)行使深度測試無效而對機(jī)械手RB的部分目標(biāo)PB1、PB2進(jìn)行描繪的第2描繪處理。具體而言,進(jìn)行使深度測試無效,通過平行投影,對部分目標(biāo)PB1、PB2的背面多邊形進(jìn)行描繪的第2描繪處理。通過該第2描繪處理,在描繪緩沖器54上生成圖10(C)所示那樣的第2圖像。接下來,如圖Il(A)所示,進(jìn)行通過第I描繪處理所獲得的參照圖像亦即第I圖像、與通過第2描繪處理所獲得的第2圖像的比較處理。而且,如果第I、第2圖像之間存在差異,則判定為發(fā)生了碰撞。即、判定為機(jī)械手RB的部分目標(biāo)PB1、PB2與面SFl的目標(biāo)碰撞。例如圖10⑷的El中,機(jī)械手RB的部分目標(biāo)PB2碰撞到面SFl的目標(biāo)0B12。此時(shí),El所示的區(qū)域中,目標(biāo)0B12從視點(diǎn)觀察與部分目標(biāo)PB2的背面多邊形相比更靠前方偵U。因此,若進(jìn)行使深度測試有效的第I描繪處理,則在圖10(A)的El所示的區(qū)域中,如圖10(B)的E2所示,部分目標(biāo)PB2的背面多邊形的圖像變?yōu)榉敲枥L。另一方面,在使深度測試無效的第2描繪處理中,不參照面SFl的深度圖的深度值,描繪部分目標(biāo)PB2的背面多邊形。因此,如圖10(C)所示,即使在E3所示的區(qū)域中,也能描繪部分目標(biāo)PB2的背面多邊形的圖像。因此,通過第I、第2描繪處理而生成的第I、第2圖像之間發(fā)生差異,如圖Il(A)所示,通過對這些第I、第2圖像的差異進(jìn)行檢測,從而能夠檢測碰撞。對圖9所示的全部面(對象面)SFl SF6進(jìn)行以上的處理。例如,對面SF2,使用圖8(B)所例示那樣的深度圖DPM2,通過從面SF4朝向面SF2的方向的平行投影,進(jìn)行上述的第I、第2描繪處理。而且,進(jìn)行所獲得的第I、第2圖像的比較處理,如果第I、第2圖像之間存在差異,則判定為機(jī)械手RB與面SF2的目標(biāo)之間發(fā)生了碰撞。對其他的面SF3 SF6也進(jìn)行相同的處理。而且,不管在SFl SF6的哪個(gè)面,在沒有檢測出碰撞的情況下,作為未檢測出碰撞,結(jié)束處理。如以上那樣,在本實(shí)施方式中,有效地利用深度緩沖器處理來實(shí)現(xiàn)碰撞判定,所以能夠?qū)崿F(xiàn)適合并行性高的最新的描繪硬件處理的碰撞判定處理。另外,例如通常的3DCG中,一般為了生成透視圖像而通過透視投影來描繪多邊形。進(jìn)而,針對背面的多邊形為了減少描繪成本,一般通過挑選而不進(jìn)行描繪。這一點(diǎn),在本實(shí)施方式中,不是用于3DCG的圖像生成,而是為了于碰撞判定利用深度緩沖器處理。而且,若通過透視投影進(jìn)行描繪處理,則有可能不能夠?qū)崿F(xiàn)準(zhǔn)確的碰撞判定,在本實(shí)施方式中,著眼于這一點(diǎn),通過平行投影進(jìn)行描繪處理。另外,在3DCG中,一般描繪省略的背面多邊形,從而通過圖Il(A)所示那樣的圖像比較判定圖IO(A)的El所示那樣的碰撞成功。此外,圖Il(A)中,通過圖像比較進(jìn)行碰撞判定,但本實(shí)施方式并不局限于此,至少能夠基于第I、第2描繪處理的結(jié)果進(jìn)行碰撞判定即可。例如,圖11 (B)中,進(jìn)行第I描繪處理中的描繪像素?cái)?shù)與第2描繪處理中的描繪像素?cái)?shù)的比較處理,從而進(jìn)行碰撞判定。例如在進(jìn)行第I描繪處理時(shí),事先將在作為硬件準(zhǔn)備的描繪像素?cái)?shù)計(jì)數(shù)器設(shè)定的描繪像素?cái)?shù)記錄為參照描繪像素?cái)?shù)。而且,通過比較該第I描繪處理中的參照描繪像素?cái)?shù)、和在第2描繪處理中描繪像素?cái)?shù)計(jì)數(shù)器被設(shè)定的描繪像素?cái)?shù),判定碰撞。例如發(fā)生了碰撞的情況下,如圖Il(B)所示,第I描繪處理中的描繪像素?cái)?shù)比第2描繪處理中的描繪像素?cái)?shù)少,所以通過檢測它們能夠判定碰撞。另外,在圖10(A),部分目標(biāo)PB1、PB2(第I、第2部分目標(biāo))成為從視點(diǎn)(無限遠(yuǎn)的視點(diǎn))觀察不重疊的目標(biāo)。此時(shí),在第I、第2各描繪處理中,同時(shí)描繪部分目標(biāo)PB1、PB2 (以相同的描繪處理順序進(jìn)行描繪)。如此,如圖11 (A)、圖11 (B)所示,能夠?qū)崿F(xiàn)適當(dāng)?shù)呐鲎才卸?。而且,通過同時(shí)描繪部分目標(biāo)PB1、PB2,能夠節(jié)約描繪處理的次數(shù),且實(shí)現(xiàn)處理的聞速化等。另外,例如針對第I機(jī)械手,通過圖10(A) 圖11⑶等所示的手法進(jìn)行了碰撞判定之后,將該第I機(jī)械手列入環(huán)境的目標(biāo),且可以進(jìn)行下一個(gè)的第2機(jī)械手的碰撞判定。如此,在多個(gè)機(jī)械手存在的情況下,不僅能夠?qū)崿F(xiàn)這些多個(gè)機(jī)械手的各機(jī)械手與周邊構(gòu)造物、周邊設(shè)備之間的碰撞判定,也能夠?qū)崿F(xiàn)機(jī)械手間的碰撞判定。另外,在圖9中,以設(shè)定于機(jī)械手的可動(dòng)范圍內(nèi)的對象面的數(shù)為6面的情況為例,進(jìn)行說明,但本實(shí)施方式并不限于此。例如對象面的數(shù)能夠根據(jù)機(jī)械手動(dòng)作的環(huán)境適當(dāng)?shù)?設(shè)定,對象面的數(shù)也可以是比6面少。另外,深度圖信息的設(shè)定手法、碰撞檢測對象目標(biāo)的描繪手法也并不限于圖6 圖10(c)所說明的手法,能夠進(jìn)行各種的變形實(shí)施。進(jìn)而,基于第I、第2描繪處理的結(jié)果的碰撞判定處理也不限定于圖11(A)、圖Il(B)所說明的圖像的比較處理、描繪像素?cái)?shù)的比較處理,能夠進(jìn)行各種的變形實(shí)施。4.詳細(xì)的處理接下來,使用圖12,圖13的流程圖,對本實(shí)施方式的詳細(xì)處理例進(jìn)行說明。首先,如圖12所示,判斷是否處理了全部6面(圖9的SFl SF6)(步驟SI)。而且,在針對全部6面的處理結(jié)束、且未檢測出碰撞的情況下,作為無碰撞,結(jié)束處理(步驟S2)。另一方面,在針對全部6面的處理未結(jié)束的情況下,選擇處理未結(jié)束的一個(gè)面(步驟S3)。而且,在深度緩沖器56設(shè)定所選擇的面的深度圖(步驟S4)。例如設(shè)定圖8(A)的面SFl的深度圖DPMI,或者設(shè)定圖8(B)的面SF2的深度圖DPM2。接下來,判斷是否描繪了機(jī)械手的全部部分目標(biāo)(部分)(步驟S5),在未描繪完情況下,選擇一個(gè)未描繪的部分目標(biāo)(步驟S6)。此外,如圖10(A)、圖10(B)那樣,針對從視點(diǎn)觀察不重疊的部分目標(biāo)PB1、PB2,作為一個(gè)部分目標(biāo)進(jìn)行選擇。而且,如圖10(A)所說明的那樣,使深度測試有效,對所選擇的部分目標(biāo)的背面的多邊形進(jìn)行描繪,將獲得的圖像作為參照圖像進(jìn)行存儲(chǔ)(步驟S7,S8)。接下來,使深度測試無效,對所選擇的部分目標(biāo)的背面的多邊形進(jìn)行描繪(步驟S9)。而且,判斷在步驟S8存儲(chǔ)的參照圖像、和在步驟S9生成的當(dāng)前圖像之間是否存在差異,在存在差異的情況下,作為有碰撞,結(jié)束處理(步驟S10,Sll)0另一方面,在無差異的情況下,返回到步驟S5的處理,進(jìn)行對下一個(gè)的部分目標(biāo)選擇等。圖13是表示存在多個(gè)機(jī)械手的情況下的碰撞判定處理的流程圖。首先,設(shè)定為N= 1(步驟S21)。接下來,選擇第N個(gè)機(jī)械手作為碰撞檢測對象(步驟S22)。而且,針對全部6面,進(jìn)行第N個(gè)機(jī)械手的描繪處理,由此進(jìn)行碰撞判定(步驟S23)。即、進(jìn)行圖12所說明的碰撞判定。接下來,將進(jìn)行了碰撞判定的第N個(gè)機(jī)械手列入成為被碰撞檢測對象的環(huán)境的目標(biāo)(步驟S24)。而且,判斷是否處理了全部的機(jī)械手(步驟S25),在沒有處理完的情況下, N自加I (步驟S26),返回到步驟S22的處理。另一方面,在處理了全部的機(jī)械手的情況下,結(jié)束處理(步驟S27)。此外,如上述那樣地對本實(shí)施方式詳細(xì)地進(jìn)行了說明,但從本發(fā)明的發(fā)明點(diǎn)以及效果實(shí)質(zhì)上不脫離地進(jìn)行多數(shù)的變形是本領(lǐng)域技術(shù)人員能夠容易理解。因此,這樣的變形例包括在全部本發(fā)明的范圍。例如,在說明書或者附圖中,至少一次,與更廣義或者同義的不同的用語一起記載的用語在說明書或者附圖的任何位置,都能夠被置換為其不同的用語。另外,本實(shí)施方式以及變形例的全部的組合也包含在本發(fā)明的范圍。另外,碰撞檢測系統(tǒng)、機(jī)械手系統(tǒng)的構(gòu)成 動(dòng)作、深度圖信息的設(shè)定手法、碰撞檢測對象目標(biāo)的描繪手法、碰撞檢測對象目標(biāo)的碰撞判定手法等并不限定于本實(shí)施方式所說明的例子,能夠進(jìn)行各種的變形實(shí)施。符號說明OBA OBC、OBAl 0BA4、OBll 0B41目標(biāo),RB機(jī)械手(碰撞檢測對象目標(biāo)),SFl SF6對象面,DPM1、DPM2深度圖,DRP平行投影的方向,10處理部,12目標(biāo)空間設(shè)定部,14碰撞判定部,16比較處理部,30描繪部,50存儲(chǔ)部,52目標(biāo)數(shù)據(jù)存儲(chǔ)部,54描繪緩沖器,56深度緩沖器,70操作部,80外部I/F部,90信息存儲(chǔ)介質(zhì),300控制裝置,310機(jī)械手,320臂,330手部。
權(quán)利要求
1.一種碰撞檢測系統(tǒng),其特征在于,包括 處理部; 進(jìn)行描繪處理的描繪部; 設(shè)定深度信息的深度緩沖器, 在上述深度緩沖器中,在對象面配置設(shè)定的目標(biāo)的深度信息被設(shè)定為深度圖信息, 上述描繪部進(jìn)行第I描繪處理,該第I描繪處理中進(jìn)行深度測試,一邊參照上述深度緩沖器的上述深度圖信息,一邊對構(gòu)成碰撞檢測對象目標(biāo)的圖元面中的從規(guī)定的視點(diǎn)觀察處于背面的圖元面進(jìn)行描繪, 上述描繪部進(jìn)行第2描繪處理,該第2描繪處理中,不進(jìn)行深度測試而對構(gòu)成上述碰撞檢測對象目標(biāo)的圖元面中的從上述視點(diǎn)觀察處于背面的圖元面進(jìn)行描繪, 上述處理部進(jìn)行基于上述第I描繪處理與上述第2描繪處理的結(jié)果,判定上述碰撞檢測對象目標(biāo)是否與上述對象面的上述目標(biāo)碰撞的碰撞判定。
2.根據(jù)權(quán)利要求I所述的碰撞檢測系統(tǒng),其特征在于, 上述處理部進(jìn)行通過上述第I描繪處理而生成的第I圖像與通過上述第2描繪處理而生成的第2圖像的比較處理,從而進(jìn)行上述碰撞判定。
3.根據(jù)權(quán)利要求I所述的碰撞檢測系統(tǒng),其特征在于, 上述處理部通過進(jìn)行上述第I描繪處理中的描繪像素?cái)?shù)信息與上述第2描繪處理中的描繪像素?cái)?shù)信息的比較處理,從而進(jìn)行上述碰撞判定。
4.根據(jù)權(quán)利要求I 3中任意一項(xiàng)所述的碰撞檢測系統(tǒng),其特征在于, 上述描繪部在上述第I描繪處理與上述第2描繪處理的各描繪處理中,通過無限遠(yuǎn)的上述視點(diǎn)處的平行投影對上述碰撞檢測對象目標(biāo)的背面的圖元面進(jìn)行描繪。
5.根據(jù)權(quán)利要求4所述的碰撞檢測系統(tǒng),其特征在于, 在上述深度緩沖器中,通過無限遠(yuǎn)的上述視點(diǎn)處的平行投影對上述對象面的上述目標(biāo)進(jìn)行描繪所獲得的深度信息被設(shè)定為上述對象面的上述深度圖信息。
6.根據(jù)權(quán)利要求I 5中任意一項(xiàng)所述的碰撞檢測系統(tǒng),其特征在于, 上述碰撞檢測對象目標(biāo)由多個(gè)部分目標(biāo)構(gòu)成,在從上述視點(diǎn)觀察上述多個(gè)部分目標(biāo)中的第I部分目標(biāo)與第2部分目標(biāo)不重疊的情況下, 上述描繪部在上述第I描繪處理與上述第2描繪處理的各描繪處理中,同時(shí)描繪上述第I部分目標(biāo)與上述第2部分目標(biāo)。
7.根據(jù)權(quán)利要求I 6中任意一項(xiàng)所述的碰撞檢測系統(tǒng),其特征在于, 在作為上述碰撞檢測對象目標(biāo),存在多個(gè)碰撞檢測對象目標(biāo)的情況下, 上述處理部在針對上述多個(gè)碰撞檢測對象目標(biāo)中的第I碰撞檢測對象目標(biāo)進(jìn)行上述碰撞判定之后,將上述第I碰撞檢測對象目標(biāo)設(shè)定為被碰撞檢測對象目標(biāo),進(jìn)行針對上述多個(gè)碰撞檢測對象目標(biāo)中的第2碰撞檢測對象目標(biāo)的上述碰撞判定。
8.根據(jù)權(quán)利要求I 7中任意一項(xiàng)所述的碰撞檢測系統(tǒng),其特征在于, 在上述深度緩沖器中,設(shè)定與以內(nèi)包上述碰撞檢測對象目標(biāo)的方式設(shè)定的第I 第N對象面對應(yīng)的第I 第N深度圖信息的各深度圖信息,其中,N為2以上的整數(shù), 上述描繪部針對上述第I 第N對象面的各對象面,進(jìn)行第I描繪處理和第2描繪處理,該第I描繪處理中,進(jìn)行深度測試,一邊參照上述第I 第N深度圖信息的對應(yīng)的各深度圖信息,一邊對上述碰撞檢測對象目標(biāo)的背面的圖元面進(jìn)行描繪,而該第2描繪處理中,不進(jìn)行深度測試而對上述碰撞檢測對象目標(biāo)的背面的圖元面進(jìn)行描繪, 上述處理部基于針對上述第I 第N對象面的各對象面的上述第I描繪處理與上述第2描繪處理的結(jié)果,進(jìn)行上述碰撞判定。
9.根據(jù)權(quán)利要求8所述的碰撞檢測系統(tǒng),其特征在于, 上述第I 第N對象面是構(gòu)成內(nèi)包上述碰撞檢測對象目標(biāo)的立方體或者長方體的面。
10.根據(jù)權(quán)利要求I 9中任意一項(xiàng)所述的碰撞檢測系統(tǒng),其特征在于, 上述碰撞檢測對象目標(biāo)是對機(jī)械手進(jìn)行模型化的目標(biāo)。
11.一種機(jī)械手系統(tǒng),其特征在于,包括 權(quán)利要求I 10中任意一項(xiàng)所述的碰撞檢測系統(tǒng)。
12.—種碰撞檢測方法,其特征在于, 在深度緩沖器,在對象面配置設(shè)定的目標(biāo)的深度信息被設(shè)定為深度圖信息, 在該碰撞檢測方法中進(jìn)行第I描繪處理,該第I描繪處理中進(jìn)行深度測試,一邊參照上述深度緩沖器的上述深度圖信息,一邊對構(gòu)成碰撞檢測對象目標(biāo)的圖元面中的從規(guī)定的視點(diǎn)觀察處于背面的圖元面進(jìn)行描繪, 在該碰撞檢測方法中進(jìn)行第2描繪處理,該第2描繪處理中,不進(jìn)行深度測試而對構(gòu)成上述碰撞檢測對象目標(biāo)的圖元面中的從上述視點(diǎn)觀察處于背面的圖元面進(jìn)行描繪, 在該碰撞檢測方法中進(jìn)行基于上述第I描繪處理與上述第2描繪處理的結(jié)果,判定上述碰撞檢測對象目標(biāo)是否與上述對象面的上述目標(biāo)碰撞的碰撞判定。
13.一種程序,其特征在于, 使計(jì)算機(jī)作為如下各部發(fā)揮功能,即 處理部; 進(jìn)行描繪處理的描繪部; 設(shè)定深度信息的深度緩沖器, 在上述深度緩沖器中,在對象面配置設(shè)定的目標(biāo)的深度信息被設(shè)定為深度圖信息, 上述描繪部進(jìn)行第I描繪處理,該第I描繪處理中進(jìn)行深度測試,一邊參照上述深度緩沖器的上述深度圖信息,一邊對構(gòu)成碰撞檢測對象目標(biāo)的圖元面中的從規(guī)定的視點(diǎn)觀察處于背面的圖元面進(jìn)行描繪, 上述描繪部進(jìn)行第2描繪處理,該第2描繪處理中,不進(jìn)行深度測試而對構(gòu)成上述碰撞檢測對象目標(biāo)的圖元面中的從上述視點(diǎn)觀察處于背面的圖元面進(jìn)行描繪, 上述處理部進(jìn)行基于上述第I描繪處理與上述第2描繪處理的結(jié)果,判定上述碰撞檢測對象目標(biāo)是否與上述對象面的上述目標(biāo)碰撞的碰撞判定。
全文摘要
本發(fā)明涉及碰撞檢測系統(tǒng)、機(jī)械手系統(tǒng)、碰撞檢測方法以及程序。碰撞檢測系統(tǒng)包括處理部、描繪部和深度緩沖器。在深度緩沖器將目標(biāo)的深度信息設(shè)定為深度圖信息。描繪部進(jìn)行第1描繪處理,該第1描繪處理中,進(jìn)行深度測試,一邊參照深度緩沖器,一邊對構(gòu)成碰撞檢測對象目標(biāo)的圖元面中的從規(guī)定的視點(diǎn)觀察處于背面的圖元面進(jìn)行描繪。另外,進(jìn)行第2描繪處理,該第2描繪處理中,不進(jìn)行深度測試而對構(gòu)成碰撞檢測對象目標(biāo)的圖元面中的從規(guī)定的視點(diǎn)觀察處于背面的圖元面進(jìn)行描繪。處理部基于第1描繪處理與第2描繪處理的結(jié)果,判定碰撞檢測對象目標(biāo)是否與對象面的目標(biāo)碰撞。
文檔編號B25J9/00GK102744733SQ20121011699
公開日2012年10月24日 申請日期2012年4月19日 優(yōu)先權(quán)日2011年4月21日
發(fā)明者稻積滿廣 申請人:精工愛普生株式會(huì)社