模擬裝置、模擬方法以及模擬程序的制作方法
【專利摘要】提供一種可高精度地模擬被機械所處理的對象物的追隨動作的模擬裝置、模擬方法以及模擬程序。模擬裝置包括執(zhí)行控制程序的模擬的處理器,該控制程序在對處理對象物的機械的活動進行控制的控制器中執(zhí)行。處理器包括:動作控制部件,根據(jù)控制程序,在虛擬空間中基于用于使與機械對應(yīng)的虛擬機械活動的動作指令來控制虛擬機械的活動;判斷部件,基于被虛擬機械所處理且與對象物對應(yīng)的虛擬對象物的模型數(shù)據(jù)和虛擬機械的模型數(shù)據(jù),判斷可供虛擬機械作用的作用空間與虛擬對象物重疊的區(qū)域的體積是否為預(yù)先設(shè)定的基準(zhǔn)值以上;以及追隨部件,在體積為基準(zhǔn)值以上的情況下,使虛擬對象物追隨基于動作指令的虛擬機械的活動。
【專利說明】模擬裝置、模擬方法以及模擬程序
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及模擬裝置、模擬方法以及模擬程序,尤其,涉及適合執(zhí)行在對處理對象物的機械的活動進行控制的控制器中執(zhí)行的控制程序的模擬的模擬裝置、模擬方法以及模擬程序。
【背景技術(shù)】
[0002]以往,作為在對物體的動作進行模擬時使模型追隨其他的模型而動作的方式,已知基于從模型提取出的模型間的依存關(guān)系來實現(xiàn)模型的追隨動作的技術(shù)。
[0003]例如,特開平9 - 258815號公報(專利文獻I)公開了運動連鎖模擬系統(tǒng)。運動連鎖模擬系統(tǒng)在計算機內(nèi)具有物體的模型,關(guān)于模型設(shè)定相互進行作用的模型和被作用的模型的主從關(guān)系,根據(jù)主從關(guān)系來模擬進行運動的模型的運動連鎖。運動連鎖模擬系統(tǒng)包括:模型提取部,自動提取應(yīng)設(shè)定主從關(guān)系的模型;主從關(guān)系設(shè)定部,基于模型間的關(guān)系來自動設(shè)定主從關(guān)系;以及追隨動作處理部,使模型根據(jù)主從關(guān)系來動作。
[0004]【現(xiàn)有技術(shù)文獻】
[0005]【專利文獻】
[0006]【專利文獻I】特開平9- 258815號公報
[0007]但是,根據(jù)專利文獻I中的技術(shù),在對使被機械所處理的對象物追隨該機械的追隨動作進行模擬時,實際上連不能追隨該機械`的活動的對象物也進行追隨的模擬結(jié)果的情況也較多。
【發(fā)明內(nèi)容】
[0008]本發(fā)明是為了解決上述的問題而完成的,其目的之一在于,提供一種能夠高精度地模擬被機械所處理的對象物的追隨動作的模擬裝置、模擬方法以及模擬程序。
[0009]根據(jù)一個實施方式的模擬裝置包括執(zhí)行控制程序的模擬的處理器,該控制程序在對處理對象物的機械的活動進行控制的控制器中執(zhí)行。處理器包括:動作控制部件,根據(jù)控制程序,在虛擬空間中基于用于使與機械對應(yīng)的虛擬機械活動的動作指令來控制虛擬機械的活動;判斷部件,基于被虛擬機械所處理且與對象物對應(yīng)的虛擬對象物的模型數(shù)據(jù)和虛擬機械的模型數(shù)據(jù),判斷可供虛擬機械作用的作用空間與虛擬對象物重疊的區(qū)域的體積是否為預(yù)先設(shè)定的基準(zhǔn)值以上;以及追隨部件,在體積為基準(zhǔn)值以上的情況下,使虛擬對象物追隨基于動作指令的虛擬機械的活動。
[0010]優(yōu)選地,判斷部件將作用空間分割為多個單位區(qū)域,判定經(jīng)分割而成的各單位區(qū)域是否為包含虛擬對象物的區(qū)域,并基于判定為是包含虛擬對象物的區(qū)域的單位區(qū)域的個數(shù),計算作用空間的體積中的虛擬對象物所占的部分的體積。
[0011]優(yōu)選地,判斷部件將虛擬對象物分割為多個單位區(qū)域,判定經(jīng)分割而成的各單位區(qū)域是否包含在作用空間中,并基于判定為包含在作用空間中的單位區(qū)域的個數(shù),計算虛擬對象物的體積中的與作用空間重疊的部分的體積。[0012]優(yōu)選地,對虛擬對象物的每個模型數(shù)據(jù)決定基準(zhǔn)值。
[0013]優(yōu)選地,作用空間包含預(yù)先設(shè)定為與機械的可動范圍對應(yīng)的虛擬機械的可動范圍。
[0014]根據(jù)其他的實施方式,提供在計算機中進行的模擬方法。計算機包括執(zhí)行控制程序的模擬的處理器,該控制程序在對處理對象物的機械的活動進行控制的控制器中執(zhí)行。模擬方法包括:處理器根據(jù)控制程序,在虛擬空間中基于用于使與機械對應(yīng)的虛擬機械活動的動作指令來控制虛擬機械的活動的步驟;處理器基于被虛擬機械所處理且與對象物對應(yīng)的虛擬對象物的模型數(shù)據(jù)和虛擬機械的模型數(shù)據(jù),判斷可供虛擬機械作用的作用空間與虛擬對象物重疊的區(qū)域的體積是否為預(yù)先設(shè)定的基準(zhǔn)值以上的步驟;以及處理器在體積為基準(zhǔn)值以上的情況下,使虛擬對象物追隨基于動作指令的虛擬機械的活動的步驟。
[0015]根據(jù)再其他的實施方式,提供在計算機中執(zhí)行的模擬程序。計算機包括執(zhí)行控制程序的模擬的處理器,該控制程序在對處理對象物的機械的活動進行控制的控制器中執(zhí)行。模擬程序使處理器執(zhí)行如下步驟:根據(jù)控制程序,在虛擬空間中基于用于使與機械對應(yīng)的虛擬機械活動的動作指令來控制虛擬機械的活動的步驟;基于被虛擬機械所處理且與對象物對應(yīng)的虛擬對象物的模型數(shù)據(jù)和虛擬機械的模型數(shù)據(jù),判斷可供虛擬機械作用的作用空間與虛擬對象物重疊的區(qū)域的體積是否為預(yù)先設(shè)定的基準(zhǔn)值以上的步驟;以及在體積為基準(zhǔn)值以上的情況下,使虛擬對象物追隨基于動作指令的虛擬機械的活動的步驟。
[0016]根據(jù)再其他實施方式的模擬裝置包括執(zhí)行控制程序的模擬的處理器,該控制程序在對處理對象物的機械的活動進行控制的控制器中執(zhí)行。處理器包括:動作控制部件,根據(jù)控制程序,在虛擬空間中基于用于使與機械對應(yīng)的虛擬機械活動的動作指令來控制虛擬機械的活動;判斷部件,基于被虛擬機械所處理且與對象物對應(yīng)的虛擬對象物的模型數(shù)據(jù)和虛擬機械的模型數(shù)據(jù),判斷可供虛擬機械作用的作用空間與虛擬對象物重疊的部分的虛擬對象物的表面積是否為預(yù)先設(shè)定的基準(zhǔn)值以上;以及追隨部件,在表面積為基準(zhǔn)值以上的情況下,使虛擬對象物追隨基于動作指令的虛擬機械的活動。
[0017]根據(jù)再其他實施方式的模擬裝置包括執(zhí)行控制程序的模擬的處理器,該控制程序在對處理對象物的機械的活動進行控制的控制器中執(zhí)行。處理器包括:動作控制部件,根據(jù)控制程序,在虛擬空間中基于用于使與機械對應(yīng)的虛擬機械活動的動作指令來控制虛擬機械的活動;判斷部件,基于被虛擬機械所處理且與對象物對應(yīng)的虛擬對象物的模型數(shù)據(jù)和虛擬機械的模型數(shù)據(jù),判斷可供虛擬機械作用的作用空間與虛擬對象物不重疊的區(qū)域的體積是否小于預(yù)先設(shè)定的基準(zhǔn)值;以及追隨部件,在體積小于基準(zhǔn)值的情況下,使虛擬對象物追隨基于動作指令的虛擬機械的活動。
[0018]能夠高精度地模擬被機械所處理的對象物的追隨動作。
【專利附圖】
【附圖說明】
[0019]圖1是用于說明實施方式I的控制系統(tǒng)的結(jié)構(gòu)的圖。
[0020]圖2是用于說明實施方式I的PC6的硬件結(jié)構(gòu)的圖。
[0021]圖3是通過CPU執(zhí)行控制器支持程序而實現(xiàn)的功能模塊圖。
[0022]圖4是用于說明實施方式I的模擬部的功能的詳細(xì)的方框圖。
[0023]圖5是表示實施方式I的模擬的3D空間的圖。[0024]圖6 (a)?(C)是表示實施方式I的模擬的狀況的圖。
[0025]圖7是表示實施方式I的模擬的控制的流程的流程圖。
[0026]圖8是表示實施方式I的追隨條件的判定處理的流程的流程圖。
[0027]圖9是用于說明實施方式I的虛擬自動裝置(robot)的把持空間的分割方式的圖。
[0028]圖10是用于說明圖8所示的步驟S506的判斷處理方式的圖。
[0029]圖11是表示實施方式2中的模擬的3D空間的圖。
[0030]圖12 Ca)?(C)是表示實施方式2的模擬的狀況的圖。
[0031]圖13是表示實施方式2的追隨條件的判定處理的流程的流程圖。
[0032]圖14是用于說明實施方式2的虛擬工件(work)的分割方式的圖。
[0033]圖15是用于說明圖14所示的步驟S606的判定處理方式的圖。
[0034]圖16 Ca)?(C)是表示比較例的模擬的狀況的圖。
[0035]圖17是用于說明實施方式2的變形例的虛擬氣筒(air cylinder)的可動空間的分割方式的圖。
[0036]圖18是用于說明實施方式2的變形例的單位區(qū)域是否為包含虛擬工件的區(qū)域的判斷方式的圖。
[0037]圖19是表示實施方式3的追隨條件的判定處理的流程的流程圖。
[0038]圖20是用于說明實施方式3的虛擬工件的分割方式的圖。
[0039]圖21是用于說明圖20所示的步驟S706的判定處理方式的圖。
【具體實施方式】
[0040]以下,參照【專利附圖】
【附圖說明】本發(fā)明的實施方式。在以下的說明中,對于同一個部件賦予同一個標(biāo)號。它們的名稱以及功能也是相同的。因此,不重復(fù)關(guān)于它們的詳細(xì)的說明。
[0041][實施方式I]
[0042]<控制系統(tǒng)的整體結(jié)構(gòu)>
[0043]圖1是用于說明實施方式I的控制系統(tǒng)的結(jié)構(gòu)的圖。參照圖1,實施方式I的控制系統(tǒng)包括服務(wù)器2、網(wǎng)絡(luò)4、PC (Personal Computer,個人計算機)6、控制器14、控制對象裝置16。
[0044]服務(wù)器2經(jīng)由網(wǎng)絡(luò)4與PC6連接。PC6與對控制對象裝置16進行控制的控制器14以可通信的方式連接。
[0045]PC6相當(dāng)于一實施方式中的模擬裝置。在PC6中,安裝有包含模擬程序的控制器支持程序8,且存儲有用戶制作的控制程序10。⑶一 R0M(Compact Disc-Read Only Memory,緊湊型只讀存儲盤)12存儲控制器支持程序8。在PC6中安裝的控制器支持程序8是從該⑶一 R0M12安裝的程序。
[0046]控制器14對控制對象裝置16的活動進行控制。作為一例,控制器14使用PLC(Programmable Logic Controller,可編程邏輯控制器)。在該PLC中包含所謂的動作(motion)控制功能??刂破?4存儲用于規(guī)定對于控制對象裝置16的控制內(nèi)容的控制程序15??刂破?4按每個控制周期將控制程序15執(zhí)行一圈。這里,在控制器14中存儲的控制程序15為將在PC6中存儲的控制程序10進行了復(fù)制的復(fù)制數(shù)據(jù),且是從PC6發(fā)回的數(shù)據(jù)。
[0047]控制對象裝置16包含伺服電動機、步進電動機等的電動機18以及對電動機進行驅(qū)動的電動機驅(qū)動器17。
[0048]在電動機18中,從電動機驅(qū)動器17被提供驅(qū)動電流。電動機驅(qū)動器17從執(zhí)行控制程序15的控制器14按每個控制周期被提供位置的指令值,并將與其對應(yīng)的驅(qū)動電流提供給電動機18。在電動機18為例如伺服電動機的情況下,在電動機18中包含編碼器,由編碼器檢測出電動機18的旋轉(zhuǎn)位置的實測值。電動機驅(qū)動器17將電動機的旋轉(zhuǎn)位置的實測值利用于反饋控制。
[0049]另外,在上述中,說明了經(jīng)由⑶一 R0M12而在PC6中安裝了模擬程序的情況,但安裝的方式并不特別限定于此。例如,也可以是模擬程序從服務(wù)器2經(jīng)由網(wǎng)絡(luò)4下載到PC6中。這對于控制程序也是相同的。
[0050]< PC的硬件結(jié)構(gòu)>
[0051]圖2是用于說明實施方式I的PC6的硬件結(jié)構(gòu)的圖。參照圖2,PC6包含作為處理部件的CPU901、作為存儲部件的R0M902、RAM903以及HDD904、作為數(shù)據(jù)讀取部的⑶一 ROM驅(qū)動裝置908、作為通信部件的通信IF909、作為顯示部件的監(jiān)視器907、作為輸入部件的鍵盤905以及鼠標(biāo)906。另外,這些部位經(jīng)由內(nèi)部總線910相互連接。
[0052]CPU901讀出在R0M902、RAM903、HDD904中存儲的程序以及數(shù)據(jù),并執(zhí)行程序而控制PC6的各部分。CPU901—般為微處理器。另外,該硬件也可以是CPU以外的FPGA(FieldProgrammable Gate Array,現(xiàn)場可編程門陣列)、ASIC(Application Specific IntegratedCircuit,專用集成電路)以及具有其他的運算功能的電路等。
[0053]HDD904 —般是非易失性的磁性存儲器,存儲通過⑶一 ROM驅(qū)動裝置908而從⑶一ROMl2讀取到的模擬程序。此外,HDD904也存儲控制程序15。
[0054]另外,也可以是模擬程序在⑶一 R0M12以外的其他的存儲介質(zhì)中存儲,CPU901經(jīng)由與存儲介質(zhì)對應(yīng)的存儲器接口(IF)而讀取該模擬程序的方式。例如,也可以是經(jīng)由DVD(Digital Versatile Disk,數(shù)字視頻盤)一 ROM驅(qū)動裝置而從DVD — ROM讀取該模擬程序的方式,也可以是經(jīng)由USB (Universal Serial Bus,通用串行總線)接口而從USB存儲器讀取該模擬程序的方式。
[0055]CPU901將在HDD904中存儲的控制器支持程序8在RAM903等中展開而執(zhí)行。
[0056]RAM903為易失性存儲器,具有作為工作存儲器的功能。R0M902 —般存儲操作系統(tǒng)
(OS)等的程序。
[0057]通信接口(IF) 909 一般支持以太網(wǎng)(注冊商標(biāo))以及USB等通用的通信協(xié)議,經(jīng)由網(wǎng)絡(luò)4與服務(wù)器2之間提供數(shù)據(jù)通信且與控制器14之間提供數(shù)據(jù)通信。
[0058]監(jiān)視器907由液晶顯示裝置、CRT (Cathode Ray Tube,陰極射線管)、有機EL(Electro Luminescence,電致發(fā)光)裝置、等離子顯示器裝置等構(gòu)成,顯示PC6的處理結(jié)果等。鍵盤905接受用戶的鍵輸入,鼠標(biāo)906接受用戶的指示操作。
[0059]<功能結(jié)構(gòu)>
[0060]圖3是通過CPU901執(zhí)行控制器支持程序8而實現(xiàn)的功能模塊圖。參照圖3,這里,示出了用戶接口部802、顯示數(shù)據(jù)制作部804、模擬部806、控制程序存儲部808、控制程序編輯部810、控制器接口部812。
[0061]用戶接口部802制作在PC6的監(jiān)視器907中顯示的窗口畫面的內(nèi)容,此外,接受鍵盤905或鼠標(biāo)906的用戶的操作。[0062]控制程序編輯部810接受用戶的控制程序的輸入以及編輯。在為了執(zhí)行控制程序而需要編譯的情況下,也進行編譯。所制作的控制程序經(jīng)由控制器接口部812而傳送到控制器14。此外,所制作的控制程序存儲在HDD904的規(guī)定的區(qū)域即控制程序存儲部808中。此外,控制程序編輯部810也能夠經(jīng)由控制器接口部812讀出在控制器14中存儲的控制程序15而進行編輯。
[0063]模擬部806是控制器14的模擬器。模擬部806對根據(jù)在控制程序存儲部808中存儲的控制程序10而控制器14執(zhí)行控制程序15的動作進行模擬,算出控制器14應(yīng)按每個控制周期輸出的位置的指令值。
[0064]此外,模擬部806能夠?qū)νㄟ^外部信號到來而對控制程序15的動作產(chǎn)生影響的狀態(tài)進行模擬,或者通過執(zhí)行控制程序15而控制器14的存儲器的存儲內(nèi)容等的控制器14的內(nèi)部狀態(tài)發(fā)生變化,對該變化對控制程序15的動作產(chǎn)生影響的狀態(tài)進行模擬。
[0065]此外,模擬部806經(jīng)由用戶接口部802接受關(guān)于執(zhí)行模擬的用戶的指示。S卩,用戶接口部802也作為接受對于模擬部806的用戶的指示的部件起作用。
[0066]顯示數(shù)據(jù)制作部804制作用于顯示通過模擬部806而制作的執(zhí)行結(jié)果數(shù)據(jù)的時間性的變化的顯示數(shù)據(jù)。顯示數(shù)據(jù)制作部804通過將所制作的顯示數(shù)據(jù)傳送到用戶接口部802,在PC6的監(jiān)視器907中以曲線或字符的方式或3D表現(xiàn)的方式顯示顯示數(shù)據(jù)。
[0067]<模擬部的功能結(jié)構(gòu)>
[0068]圖4是用于說明實施方式I的模擬部806的功能的詳細(xì)的方框圖。
[0069]模擬控制部820從控制程序存儲部808讀入控制程序10,執(zhí)行控制程序10的模擬或者從中途開始再次執(zhí)行模擬。伴隨于此,模擬控制部820對執(zhí)行結(jié)果數(shù)據(jù)存儲部830與模型數(shù)據(jù)存儲部840之間的流程進行控制。執(zhí)行結(jié)果數(shù)據(jù)存儲部830以及模型數(shù)據(jù)存儲部840為分別由RAM903或者HDD904實現(xiàn)的功能。
[0070]此外,模擬控制部820作為主要的功能而包含動作控制部822、判斷部824以及追隨控制部826。另外,動作控制部822為通過模擬部806執(zhí)行后述的機械控制模擬器而實現(xiàn)的功能。此外,判斷部824以及追隨控制部826為通過模擬部806執(zhí)行后述的3D模擬器而實現(xiàn)的功能。
[0071]動作控制部822根據(jù)控制程序10,在虛擬空間中基于用于使與機械對應(yīng)的虛擬機械活動的動作指令來控制虛擬機械的活動。
[0072]判斷部824基于被虛擬機械所處理且與對象物對應(yīng)的虛擬對象物的模型數(shù)據(jù)和虛擬機械的模型數(shù)據(jù),判斷可供虛擬機械作用的作用空間(在實施方式I中為后述的把持空間)與虛擬對象物重疊的區(qū)域的體積是否為預(yù)先設(shè)定的基準(zhǔn)值以上。更具體而言,判斷部824將作用空間分割為多個單位區(qū)域,判定經(jīng)分割而成的各單位區(qū)域是否為包含虛擬對象物的區(qū)域。然后,判斷部824基于判定為是包含虛擬對象物的區(qū)域的單位區(qū)域的個數(shù),計算在作用空間的體積中、虛擬對象物所占的部分的體積。另外,作用空間為機械可對對象物作用的空間。
[0073]追隨控制部826基于該體積為基準(zhǔn)值以上的判斷結(jié)果,使虛擬對象物追隨基于該動作指令的虛擬機械的活動。
[0074]執(zhí)行結(jié)果數(shù)據(jù)存儲部830存儲用于顯示的執(zhí)行結(jié)果數(shù)據(jù)。
[0075]模型數(shù)據(jù)存儲部840存儲對實際空間的自動裝置、工件、輸送機、支架等的物體進行了模型化的模型數(shù)據(jù)。更具體而言,模型數(shù)據(jù)存儲部840存儲與實際空間的物體對應(yīng)的虛擬空間中的虛擬物體的形狀、動作的特征、功能、性能、位置、方向等有關(guān)的模型數(shù)據(jù)。
[0076]<模擬控制的流程>
[0077](概略)
[0078]圖5是表示實施方式I的模擬的3D空間的圖。參照圖5,在實施方式I中,在作為與實際空間對應(yīng)的虛擬空間的3D空間中,配置有與實際空間的自動裝置對應(yīng)的虛擬自動裝置500、與實際空間的工件(對象物)對應(yīng)的虛擬工件(虛擬對象物)530、與用于放置實際空間的工件的支架對應(yīng)的虛擬支架550。另外,一般,自動裝置為具有把持工件的把持機構(gòu)的機器人手。
[0079]模擬部806 —邊參照虛擬機械和虛擬對象物的模型數(shù)據(jù),一邊執(zhí)行3D模擬器和機械控制模擬器。
[0080]3D模擬器基于數(shù)據(jù)描圖中取得的結(jié)果,在3D空間中顯示目標(biāo)(在實施方式I中為虛擬自動裝置500、虛擬工件530以及虛擬支架550)。此外,3D模擬器判斷使由虛擬自動裝置500處理的虛擬工件530追隨虛擬自動裝置500的活動的追隨條件是否成立。換言之,3D模擬器判斷是否使由虛擬自動裝置500處理的虛擬工件530追隨虛擬自動裝置500的活動。3D模擬器在追隨條件成立的情況下,開始使虛擬工件530追隨虛擬自動裝置500的活動的追隨動作控制。在追隨動作控制開始的情況下,3D模擬器計算追隨虛擬自動裝置500的虛擬工件530的狀態(tài)。
[0081]機械控制模擬器對3D空間中的虛擬機械(在實施方式I中為虛擬自動裝置500、虛擬支架550)進行控制。更具體而言,機械控制模擬器計算對于虛擬機械的控制的指令值,并計算對于該指令值的虛擬機械的活動。機械控制模擬器例如基于經(jīng)由用戶接口部802的來自用戶的動作指令(或者,根據(jù)程序而輸出的動作指令)來計算虛擬機械的活動。
[0082]實施方式I的模擬的控制是通過3D模擬器以及機械控制模擬器大致執(zhí)行如以下的處理而實現(xiàn)。首先,(I)機械控制模擬器將計算出的虛擬機械、虛擬對象物的狀態(tài)發(fā)送到3D模擬器。接著,(2) 3D模擬器基于該接收到的虛擬機械的狀態(tài)以及虛擬對象物的狀態(tài),將虛擬機械以及虛擬對象物顯示在3D空間中。接著,(3)3D模擬器判斷使虛擬對象物追隨虛擬機械的追隨條件是否成立,在判斷為追隨條件成立的情況下,開始使虛擬對象物追隨虛擬機械的活動的追隨動作控制。
[0083]這里,按照時序方式說明實施方式I的模擬的狀況。
[0084]圖6是表示實施方式I的模擬的狀況的圖。
[0085]參照圖6,虛擬自動裝置500根據(jù)動作指令,為了把持在虛擬支架550的上面放置的虛擬工件530而沿著圖的下方向移動(圖6的狀態(tài)(a))。若從圖6的狀態(tài)(a)經(jīng)過一定時間,則虛擬自動裝置500為了把持虛擬工件530而進一步接近虛擬工件530 (圖6的狀態(tài)(b))。然后,若從圖6的狀態(tài)(b)經(jīng)過一定時間,則成為通過虛擬自動裝置500的把持用的臂夾持的(把持對象物的)把持空間與虛擬工件530重疊的狀態(tài)。這里,在把持空間的體積中、由虛擬工件530所占的體積成為了預(yù)先設(shè)定的基準(zhǔn)值以上(例如,5成以上)的情況下,使虛擬工件530追隨虛擬自動裝置500的活動的追隨條件成立。然后,若虛擬自動裝置500沿著圖的上方向移動,則虛擬工件530追隨虛擬自動裝置500的活動而沿著圖的箭頭(上)方向移動(圖6的狀態(tài)(C))。顯示表示虛擬自動裝置500把持著虛擬工件530的模擬結(jié)果。另外,虛擬自動裝置500的把持空間預(yù)先設(shè)定為與實際空間的自動裝置的把持空間對應(yīng)。
[0086](流程圖)
[0087]圖7是表示實施方式I的模擬的控制的流程的流程圖。另外,圖7所示的各步驟基本上通過CPU901執(zhí)行控制程序10的模擬而實現(xiàn)。
[0088]參照圖7,模擬部806通過執(zhí)行機械控制模擬器,設(shè)定虛擬工件(圖6中的虛擬工件530)的初始位置(步驟S302)。若以圖6為例進行說明,則虛擬工件530的初始位置被設(shè)定為虛擬支架550的中心附近。
[0089]接著,模擬部806通過執(zhí)行機械控制模擬器,根據(jù)控制程序10而開始虛擬機械(圖6中的虛擬自動裝置500)的控制(步驟S304)。
[0090]模擬部806通過執(zhí)行機械控制模擬器,基于對于虛擬機械的動作指令來執(zhí)行時序控制(步驟S306)。接著,模擬部806通過執(zhí)行機械控制模擬器,基于對于虛擬機械的動作指令來執(zhí)行動作控制(步驟S308)。更具體而言,模擬部806計算基于經(jīng)由用戶接口部802的來自用戶的動作指令的指令值。
[0091]然后,模擬部806計算作為動作控制的結(jié)果的虛擬機械以及虛擬工件的狀態(tài)(步驟S310),并將表示計算出的虛擬機械以及虛擬工件的狀態(tài)的信息發(fā)送到3D模擬器(步驟S312)。然后,模擬部806通過執(zhí)行機械控制模擬器,重復(fù)從步驟S306的處理。
[0092]接著,模擬部806通過執(zhí)行3D模擬器,接收從機械控制模擬器發(fā)送的表示虛擬機械以及虛擬工件的狀態(tài)的信息(步驟S110)。
[0093]接著,模擬部806通過執(zhí)行3D模擬器,判斷是否執(zhí)行使虛擬工件追隨虛擬機械的活動的追隨動作控制(步驟S111)。更具體而言,模擬部806判斷后述的步驟S120中的追隨動作控制是否開始。
[0094]在追隨動作控制沒有開始的情況下(步驟Slll中“否”的情況下),模擬部806執(zhí)行從后述的步驟S114的處理。相對于此,在追隨動作控制已經(jīng)開始的情況下(步驟Slll中“是”的情況下),模擬部806通過執(zhí)行3D模擬器,計算追隨虛擬機械的虛擬工件的狀態(tài)(通過虛擬機械的活動而移動的虛擬工件的狀態(tài))(步驟S112)。
[0095]然后,基于虛擬機械的狀態(tài)以及虛擬工件的狀態(tài),將虛擬機械以及虛擬工件顯示在監(jiān)視器907的3D空間中(步驟SI 14)。此時,與顯示數(shù)據(jù)制作部804交接該顯示所需的執(zhí)行結(jié)果數(shù)據(jù)。
[0096]通過進行上述的時序控制以及動作控制等,圖6所示的各狀態(tài)顯示在監(jiān)視器907中。更具體而言,在使虛擬工件追隨虛擬自動裝置500的追隨動作控制沒有開始的情況下(步驟Slll中“否”的情況下),在監(jiān)視器907中顯示相對于配置在虛擬支架550的中心附近的虛擬工件530,虛擬自動裝置500沿著圖的下方向移動的狀態(tài)(圖6的狀態(tài)(a))或虛擬自動裝置500接近虛擬工件530的狀態(tài)(圖6的狀態(tài)(b))。S卩,在監(jiān)視器907中顯示虛擬工件530不追隨虛擬自動裝置500的狀態(tài)。
[0097]相對于此,在后述的步驟S120中追隨動作控制開始的情況下(步驟Slll中“是”的情況下),在監(jiān)視器907中顯示虛擬工件530追隨虛擬自動裝置500 (被把持的)狀態(tài)(圖6的狀態(tài)(C))。
[0098]再次參照圖7,模擬部806通過執(zhí)行3D模擬器,執(zhí)行判定用于使虛擬工件追隨虛擬機械的活動的追隨條件是否成立的處理(步驟S116)。[0099]圖8是表示實施方式I的追隨條件的判定處理的流程的流程圖。在這里,說明圖6所示的使虛擬工件530追隨虛擬自動裝置500的活動時的追隨條件。
[0100]參照圖8,模擬部806通過執(zhí)行3D模擬器,將通過虛擬自動裝置500的把持用的兩個臂夾持的把持空間分割為預(yù)先設(shè)定的大小的單位區(qū)域(例如,長方體)(步驟S502)。
[0101]圖9是用于說明實施方式I的虛擬自動裝置500的把持空間的分割方式的圖。
[0102]參照圖9,模擬部806基于虛擬自動裝置500的模型數(shù)據(jù),提取虛擬自動裝置500的把持空間。然后,模擬部806將所提取的把持空間分割為單位區(qū)域。該例表示把持空間被分割為75個單位區(qū)域的情況。
[0103]再次參照圖8,模擬部806將表示包含虛擬工件530的單位區(qū)域的個數(shù)的變量t設(shè)置為0 (步驟S504)。即,變量t表示在把持空間的體積中、虛擬工件530所占的(重疊的)部分的體積。因此,在把持空間全部由虛擬工件530所占的情況下,變量t的值成為75,在把持空間中不存在虛擬工件530 (在把持空間中完全不包含虛擬工件530)的情況下,變量t的值成為O。
[0104]接著,模擬部806將在存儲部件(例如,RAM903)中存儲的變量n設(shè)置為I (步驟S505)。在實施方式I中,在RAM903中,作為變量N而保持有分割了把持空間的單位區(qū)域的個數(shù)。換言之,變量N表示把持空間的全部體積。
[0105]接著,模擬部806判斷第n個單位區(qū)域是否為包含虛擬工件530的區(qū)域(是否由虛擬工件530所占)(步驟S506)。
[0106]圖10是用于說明圖8所示的步驟S506的判斷處理方式的圖。參照圖10,模擬部806例如判定第8個(n = 8)單位區(qū)域為包含虛擬工件530的區(qū)域(判定為“是”),判定第23個(n = 23)單位區(qū)域不是包含虛擬工件530的區(qū)域(判定為“否”)。
[0107]再次參照圖8,在第n個單位區(qū)域不是包含虛擬工件530的區(qū)域的情況下(步驟S506中“否”),模擬部806執(zhí)行步驟S510的處理。相對于此,在第n個單位區(qū)域為包含虛擬工件530的區(qū)域的情況下,(步驟S506中“是”),模擬部806增加變量t的值(步驟S508),并執(zhí)行步驟S510的處理。
[0108]接著,模擬部806判斷變量n是否與變量N—致(步驟S510)。更具體而言,判斷步驟S506的判斷處理是否對全部單位區(qū)域執(zhí)行。
[0109]在變量n與變量N不一致的情況下(步驟S510中“否”),模擬部806增加變量n的值(步驟S511),重復(fù)步驟S506以后的處理。相對于此,在變量n與變量N—致的情況下(步驟S510中“是”),模擬部806判斷變量t的值是否為預(yù)先設(shè)定的基準(zhǔn)值以上(步驟S512)。更具體而言,例如,作為使虛擬工件530追隨虛擬自動裝置500的活動的追隨條件,以虛擬工件530占據(jù)把持空間的體積中的5成以上作為條件的情況下,基準(zhǔn)值設(shè)定為把持空間的體積的一半的值。這里,由于把持空間的體積為75,所以作為基準(zhǔn)值而設(shè)定了 38。
[0110]在變量t的值為基準(zhǔn)值以上的情況下(步驟S512中“是”),模擬部806判定為追隨條件成立(步驟S514),將處理返回到主處理(返回)。相對于此,在變量t的值不是基準(zhǔn)值以上(小于基準(zhǔn)值)的情況下(步驟S512中“否”),模擬部806判定為追隨條件不成立(步驟S516),將處理返回到主處理(返回)。
[0111]另外,在上述中,說明了通過模擬部806計算在把持空間的體積中虛擬工件530所占的部分的體積來判定追隨條件的成立與否,但也可以計算在把持空間的全部體積中虛擬工件530沒有占據(jù)(沒有重疊)的部分的體積。更具體而言,模擬部806在判定為第n個單位區(qū)域為包含虛擬工件530的區(qū)域的情況下,增加表示不包含虛擬工件530的單位區(qū)域的個數(shù)的變量i。但是,此時,模擬部806在變量i的值小于基準(zhǔn)值時判定為追隨條件成立,在變量i的值為基準(zhǔn)值以上的情況下判定為追隨條件不成立。
[0112]再次參照圖7,模擬部806通過執(zhí)行3D模擬器,基于步驟S116的判定處理來判斷追隨條件是否成立(步驟S118)。換言之,模擬部806判斷是否應(yīng)使虛擬工件追隨虛擬機械的活動。在追隨條件成立的情況下(步驟S118中“是”),模擬部806開始使虛擬工件追隨虛擬機械的活動的追隨動作控制(步驟S120),執(zhí)行從步驟SllO的處理。
[0113]相對于此,在追隨條件不成立的情況下(步驟S118中“否”),模擬部806執(zhí)行從步驟SllO的處理。S卩,模擬部806不開始上述的追隨動作控制而執(zhí)行從步驟SllO的處理。
[0114]在步驟S120中,使虛擬工件追隨虛擬機械的活動的追隨動作控制開始的情況下,模擬部806通過執(zhí)行3D模擬器,反映了該追隨動作控制的虛擬機械以及虛擬工件的狀態(tài)顯示在監(jiān)視器907的3D空間中。即,例如,如圖6的狀態(tài)(c)所示,使虛擬工件530追隨虛擬自動裝置500的活動,虛擬自動裝置500把持虛擬工件530的狀況顯示在監(jiān)視器907的3D空間中。
[0115]根據(jù)實施方式1,在虛擬自動裝置的把持空間被虛擬工件占據(jù)了一定以上的情況下,使虛擬工件追隨虛擬自動裝置的活動。因此,能夠?qū)⒃趯嶋H空間中自動裝置可把持的工件以可被把持的方式進行模擬,能夠?qū)⒃趯嶋H空間中自動裝置不能把持的工件以不能被把持的方式進行模擬。即,能夠更高精度地模擬實際空間中的自動裝置以及工件的活動。
[0116][實施方式2]
[0117]在實施方式I中,說明了進行在機械為自動裝置的情況下的模擬的例子。在實施方式2中,說明在機械為氣筒的情況下的模擬。另外,實施方式2與實施方式I相比,在圖8中說明的追隨條件的判定方式不同。
[0118]在實施方式2中,由于<控制系統(tǒng)的整體結(jié)構(gòu)>、<PC6的硬件結(jié)構(gòu)> 以及<功能結(jié)構(gòu)>與實施方式I基本相同,所以不重復(fù)其詳細(xì)的說明。
[0119]<模擬部的功能結(jié)構(gòu)>
[0120]說明實施方式2的模擬部806的功能。由于除了模擬控制部820中的判斷部824的功能稍微不同之外與實施方式I相同,所以關(guān)于相同部分不重復(fù)其詳細(xì)的說明。
[0121]在實施方式2中,判斷部824基于被虛擬機械所處理且與對象物對應(yīng)的虛擬對象物的模型數(shù)據(jù)和虛擬機械的模型數(shù)據(jù),判斷可供虛擬機械作用的作用空間(在實施方式2中為后述的可動空間)與虛擬對象物重疊的區(qū)域的體積是否為預(yù)先設(shè)定的基準(zhǔn)值以上。更具體而言,判斷部824將虛擬對象物分割為多個單位區(qū)域,判定經(jīng)分割而成的各單位區(qū)域是否包含在作用空間中。然后,判斷部824基于判定為包含在作用空間的單位區(qū)域的個數(shù),計算在虛擬對象物的體積中、與作用空間重疊的部分的體積。
[0122]<模擬控制的流程>
[0123](概略)
[0124]圖11是表示實施方式2中的模擬的3D空間的圖。
[0125]參照圖11,在實施方式2中,在與實際空間對應(yīng)的虛擬的空間即3D空間中,配置有與實際空間的氣筒對應(yīng)的虛擬氣筒600、與實際空間的工件對應(yīng)的虛擬工件630、與實際空間的輸送機對應(yīng)的虛擬輸送機650、655。更具體而言,虛擬工件630基本上放置在虛擬輸送機650的上面,通過虛擬輸送機650的傳輸帶被驅(qū)動而沿著傳輸帶被驅(qū)動的方向(圖的搬運方向)移動。但是,在使虛擬工件630追隨虛擬氣筒600的活動的條件成立的情況下,若虛擬氣筒600將活塞沿著圖的右方向(擠壓方向)擠壓,則虛擬工件630沿著圖的右方向推出。之后,虛擬工件630放置在虛擬輸送機655的上面而沿著圖的右下方向移動。一般,氣筒具有通過氣壓被加壓而活塞被擠壓的機構(gòu)。
[0126]大致上,模擬部806通過執(zhí)行3D模擬器,在3D空間中顯示目標(biāo)(在實施方式2中為虛擬氣筒600、虛擬工件630以及虛擬輸送機650、655)。此外,3D模擬器判斷使被虛擬氣筒600所處理的虛擬工件630追隨虛擬氣筒600的活動的追隨條件是否成立。更具體而言,3D模擬器在虛擬工件630的體積中、與虛擬氣筒600的可動空間重疊(包含)的部分的體積為一定以上的情況下(追隨條件成立的情況下),使虛擬工件630追隨虛擬氣筒600的活動。S卩,3D模擬器開始使虛擬工件630追隨虛擬氣筒600的活動的追隨動作控制。
[0127]此外,模擬部806通過執(zhí)行機械控制模擬器來控制虛擬氣筒600以及虛擬輸送機650。
[0128]圖12是表示實施方式2的模擬的狀況的圖。
[0129]參照圖12,虛擬氣筒600根據(jù)擠壓活塞的動作指令,將活塞沿著圖的右方向擠壓。此時,在虛擬氣筒600的(活塞的)可動范圍(可動空間)中基本上不包含虛擬工件630的情況下(對應(yīng)于圖12的狀態(tài)(a)、(c)),即使擠壓虛擬氣筒600的活塞,虛擬工件630也不會沿著右方向移動。相對于此,在虛擬氣筒600的可動空間中包含一定以上的虛擬工件630的情況下(對應(yīng)于圖12的狀態(tài)(b)),若虛擬氣筒600的活塞被擠壓,則虛擬工件630沿著右方向移動,通過虛擬輸送機655搬運。S卩,在虛擬工件630的體積中、包含在可動空間中的部分的體積為一定以上的情況下,使虛擬工件630追隨虛擬氣筒600的活動的追隨條件成立。另外,虛擬氣筒600的可動空間被預(yù)先設(shè)定為與實際空間的氣筒的可動空間對應(yīng)。
[0130]上述的模擬結(jié)果反映如下情況:在實際空間中,在氣筒的可動空間中基本上不包含工件的情況下(對應(yīng)于3D空間中的圖12的狀態(tài)(a)、(c)),即使擠壓活塞,也僅僅是工件的方向發(fā)生變化而不會推出。此外,在氣筒的活塞的可動空間中包含一定以上的工件的情況下(對應(yīng)于3D空間中的圖12的狀態(tài)(b)),若擠壓活塞,則工件被推出。
[0131](追隨條件的判定處理)
[0132]這里,說明實施方式2中的追隨條件的判定處理的流程(相當(dāng)于圖7中的步驟S116的部分)。另外,由于模擬部806的整體的控制的流程與實施方式I中的圖7基本相同,所以不重復(fù)其詳細(xì)的說明。
[0133]圖13是表示實施方式2的追隨條件的判定處理的流程的流程圖。實施方式2的步驟S600相當(dāng)于實施方式I的步驟S116。
[0134]參照圖13,模擬部806通過執(zhí)行3D模擬器,將虛擬工件630分割為預(yù)先設(shè)定的大小的單位區(qū)域(例如,長方體)(步驟S602)。
[0135]圖14是用于說明實施方式2的虛擬工件630的分割方式的圖。
[0136]參照圖14,模擬部806基于虛擬工件630的模型數(shù)據(jù),將虛擬工件630分割為多個單位區(qū)域。這個例子表示虛擬工件630被分割為24個單位區(qū)域的情況。
[0137]再次參照圖13,模擬部806將表示在虛擬氣筒600的可動空間中包含的單位區(qū)域的個數(shù)的變量t設(shè)置為O (步驟S604)。變量t表示在虛擬工件630的體積中包含在可動空間的部分的體積。例如,在虛擬工件630的全部包含在可動空間中的情況下,變量t的值成為24,在虛擬工件630不在可動空間中存在的情況下,變量t的值成為O。
[0138]接著,模擬部806將在RAM903中存儲的變量n設(shè)置I (步驟S605)。在實施方式2中,在RAM903中,作為變量N而保持有分割了虛擬工件630的單位區(qū)域的個數(shù)。換言之,變量N表示虛擬工件630的全部體積。
[0139]接著,模擬部806判斷第n個單位區(qū)域是否包含在可動空間中(步驟S606)。
[0140]圖15是用于說明圖14所示的步驟S606的判定處理方式的圖。參照圖15,模擬部806例如判定為第11個(n= 11)單位區(qū)域包含在可動空間中,判定為第I個(n = I)單位區(qū)域不包含在可動空間中。
[0141]再次參照圖13,在第n個單位區(qū)域不包含在可動空間中的情況下(步驟S606中“否”),執(zhí)行步驟S610的處理。相對于此,在第n個單位區(qū)域包含在可動空間中的情況下(步驟S606中“是”),模擬部806增加變量t的值(步驟S608),并執(zhí)行步驟S610的處理。
[0142]接著,模擬部806判斷變量n是否與變量N—致(步驟S610)。更具體而言,模擬部806判斷是否對全部單位區(qū)域執(zhí)行了步驟S606中的判斷處理。
[0143]在變量n與變量N不一致的情況下(步驟S610中“否”),模擬部806增加變量n的值(步驟S611),并重復(fù)從步驟S606的處理。相對于此,在變量n與變量N—致的情況下(步驟S610中“是”),模擬部806判斷變量t的值是否為基準(zhǔn)值以上(步驟S612)。更具體而言,例如,作為追隨條件,以在虛擬工件630的體積中5成以上包含在可動空間中作為條件的情況下,基準(zhǔn)值被設(shè)定為虛擬工件630的體積的一半的值。在這里,由于虛擬工件630的體積為24,所以作為基準(zhǔn)值而設(shè)定了 12。
[0144]在變量t的值為基準(zhǔn)值以上的情況下(步驟S612中“是”),模擬部806判定為追隨條件成立(步驟S614),將處理返回到主處理(返回)。相對于此,在變量t的值不是基準(zhǔn)值以上(小于基準(zhǔn)值)的情況下(步驟S612中“否”),模擬部806判定為追隨條件不成立(步驟S616),將處理返回到主處理(返回)。
[0145]另外,也可以通過與實施方式I相同的想法,計算在虛擬工件630的全部體積中、不包含在可動空間中的體積。更具體而言,模擬部806在判斷為第n個單位區(qū)域不包含在可動空間中的情況下,增加表示在可動空間中不包含的體積的變量i。此時,模擬部806在變量i的值小于基準(zhǔn)值時判定為追隨條件成立,在為基準(zhǔn)值以上時判定為追隨條件不成立。
[0146]此外,也可以根據(jù)虛擬工件630的形狀(球、長方體、三角錐)、種類、重量等的規(guī)格,變更步驟S606中的基準(zhǔn)值而進行判斷。更具體而言,也可以按每個虛擬工件630作為模型數(shù)據(jù)而存儲該基準(zhǔn)值,模擬部806基于該基準(zhǔn)值而執(zhí)行步驟S612的處理。
[0147]通過如上述那樣執(zhí)行追隨條件的判定處理,能夠在虛擬空間中高精度地模擬在實際空間中的氣筒與工件的活動。例如,作為本實施方式的追隨條件的判定處理的比較例,考慮以虛擬氣筒600與虛擬工件630成為了一定距離以下作為條件,使虛擬工件630追隨虛擬氣筒600的活動的情況。
[0148]圖16是表示比較例的模擬的狀況的圖。
[0149]參照圖16,虛擬氣筒600根據(jù)擠壓活塞的動作指令,將活塞沿著圖的右方向擠壓。此時,虛擬氣筒600與虛擬工件630的最短距離d在圖16的狀態(tài)(a)?(c)中全部相同。即,若只要虛擬工件630稍微包含在虛擬氣筒600的可動空間中,則最短距離d成為相同的值。這里,由于在最短距離d為一定距離以下的情況下追隨條件成立,所以能夠使虛擬工件630追隨虛擬氣筒600的活動。因此,表示在圖16的狀態(tài)(a)?(c)的所有狀態(tài)中,若虛擬氣筒600的活塞沿著右方向被擠壓,則虛擬工件630沿著右方向移動的狀況。
[0150]因此,在上述的比較例中,當(dāng)實際上(實際空間上)在氣筒的可動范圍中基本不包含工件的情況下(圖16的狀態(tài)(a)、(c)),盡管即使擠壓了活塞,(僅僅是工件的方向發(fā)生了變化)工件也不能被適當(dāng)?shù)赝瞥?,但是在圖16的狀態(tài)(a)、(c)中,成為追隨虛擬氣筒600的活動而虛擬工件630被推出的模擬結(jié)果。因此,可知在比較例中不能高精度地模擬實際空間的氣筒以及工件的活動。
[0151]相對于此,在實施方式2的追隨條件的判定處理中,如圖12所示,能夠高精度地模擬在實際空間中氣筒以及工件的活動。此外,根據(jù)實施方式2,由于以在可動空間中包含的虛擬工件630的體積為基準(zhǔn)來判定追隨條件,所以模擬結(jié)果也難以依賴于虛擬工件630的形狀、或者搬運來的虛擬工件630的方向,能夠更高精度地模擬虛擬機械以及虛擬工件的活動。
[0152](追隨條件的判定處理的變形例)
[0153]另外,也可以通過與在實施方式I中將把持空間分割為單位區(qū)域時相同的想法,作為變形例,將實施方式2中的可動空間分割為單位區(qū)域。即,模擬部806通過執(zhí)行3D模擬器,將虛擬氣筒600的可動空間分割為單位區(qū)域(例如,長方體)。
[0154]圖17是用于說明實施方式2的變形例的虛擬氣筒600的可動空間的分割方式的圖。
[0155]參照圖17,模擬部806基于虛擬氣筒600的模型數(shù)據(jù),將虛擬氣筒600的可動空間分割為多個單位區(qū)域(例如,長方體)。這個例子表示單位區(qū)域被分割為40個單位區(qū)域的情況。
[0156]在上述的情況下,模擬部806判斷第n個單位區(qū)域是否為包含虛擬工件630的區(qū)域。
[0157]圖18是用于說明實施方式2的變形例的單位區(qū)域是否為包含虛擬工件630的區(qū)域的判斷方式的圖。
[0158]參照圖18,模擬部806例如判斷為第3個(n = 3)單位區(qū)域為包含虛擬工件630的區(qū)域,判斷為第18個(n = 18)單位區(qū)域為不包含虛擬工件630的區(qū)域。
[0159][實施方式3]
[0160]在實施方式I中,說明了在圖8中說明的追隨條件的判定處理中,作為單位區(qū)域而分割為長方體的例子。但在實施方式3中,說明在追隨條件的判定處理中,將虛擬工件530的表面分割為多個單位區(qū)域(例如,長方形)的情況。
[0161]在實施方式3中,由于關(guān)于<控制系統(tǒng)的整體結(jié)構(gòu)>、< PC6的硬件結(jié)構(gòu)> 以及<功能結(jié)構(gòu)>與實施方式I基本相同,所以不重復(fù)其詳細(xì)的說明。即,與實施方式I相比,實施方式3的不同點在于,在圖8中說明的追隨條件。
[0162]<模擬部的功能結(jié)構(gòu)>
[0163]說明實施方式3的模擬部806的功能。由于除了模擬控制部820中的判斷部824的功能稍微不同之外與實施方式I相同,所以對于相同部分不重復(fù)其詳細(xì)的說明。[0164]在實施方式3中,判斷部824基于被虛擬機械所處理且與對象物對應(yīng)的虛擬對象物的模型數(shù)據(jù)和虛擬機械的模型數(shù)據(jù),判斷可供虛擬機械作用的作用空間(在實施方式3中為把持空間)與虛擬對象物重疊的部分的虛擬對象物的表面積是否為基準(zhǔn)值以上。更具體而言,判斷部824將虛擬對象物的表面分割為多個單位區(qū)域,判定經(jīng)分割而成的各單位區(qū)域是否包含在作用空間中。然后,判斷部824基于判定為包含的單位區(qū)域的個數(shù),計算在虛擬對象物的全部表面積中、與作用空間重疊的部分的表面積。
[0165]<模擬控制的流程>
[0166]在實施方式3中,假設(shè)實施方式I中的圖5的場景。此外,由于模擬部806的全體的控制的流程與實施方式I中的圖7基本相同,所以不重復(fù)其詳細(xì)的說明。
[0167]以下,說明實施方式3的追隨條件的判定處理的流程(相當(dāng)于圖7中的步驟S116的部分)。
[0168](追隨條件的判定處理)
[0169]圖19是表示實施方式3的追隨條件的判定處理的流程的流程圖。實施方式3的步驟S700相當(dāng)于實施方式I的步驟S116。
[0170]參照圖19,模擬部806通過執(zhí)行3D模擬器,將虛擬工件530的表面分割為預(yù)先設(shè)定的大小的單位區(qū)域(例如,長方形)(步驟S702)。
[0171]圖20是用于說明實施方式3的虛擬工件530的分割方式的圖。
[0172]參照圖20,模擬部806基于虛擬工件530的模型數(shù)據(jù),將虛擬工件530的表面分割為多個單位區(qū)域。在這個例子中,示出了單位區(qū)域被分割為52個單位區(qū)域的例子。
[0173]再次參照圖19,模擬部806將表示在虛擬自動裝置500的把持空間中包含的單位區(qū)域的個數(shù)的變量t設(shè)置為0 (步驟S704)。變量t表示在虛擬工件530的全部的表面積中、在把持空間中包含的部分的表面積。例如,在虛擬工件530的全部的表面包含在把持空間中的情況下,變量t的值成為52,在把持空間中完全不包含虛擬工件530的情況下,變量t的值成為O。
[0174]接著,模擬部806對在RAM903中存儲的變量n設(shè)置I (步驟S705)。在實施方式3中,在RAM903中,作為變量N而保持有分割了虛擬工件530的表面的單位區(qū)域的個數(shù)。換言之,變量N表示虛擬工件530的全部表面積。
[0175]接著,模擬部806判斷第n個單位區(qū)域是否包含在把持空間中(步驟S706)。
[0176]圖21是用于說明圖20所示的步驟S706的判定處理方式的圖。
[0177]參照圖21,模擬部806例如判定為第12個(n = 12)單位區(qū)域包含在把持空間中,判定為第I個(n = I)單位區(qū)域不包含在把持空間中。
[0178]再次參照圖19,在第n個單位區(qū)域不包含在把持空間中的情況下(步驟S706中“否”),模擬部806執(zhí)行步驟S710的處理。相對于此,在第n個單位區(qū)域包含在把持空間中的情況下(步驟S706中“是”),模擬部806增加變量t的值(步驟S708),執(zhí)行步驟S710的處理。
[0179]接著,模擬部806判斷變量n是否與變量N—致(步驟S710)。更具體而言,模擬部806判斷是否對全部單位區(qū)域執(zhí)行了步驟S706中的判斷處理。
[0180]在變量n與變量N不一致的情況下(步驟S710中“否”),增加變量n的值(步驟S711),模擬部806重復(fù)步驟S706以后的處理。相對于此,在變量n與變量N—致的情況下(步驟S710中“是”),模擬部806判斷變量t的值是否為基準(zhǔn)值以上(步驟S712)。更具體而言,例如,作為追隨條件,在以在虛擬工件530的表面中的5成以上包含在把持空間中作為條件的情況下,基準(zhǔn)值被設(shè)定為虛擬工件530的表面積的一半的值。在這里,由于虛擬工件530的表面積為52,所以作為基準(zhǔn)值而設(shè)定26。
[0181]在變量t的值為基準(zhǔn)值以上的情況下(步驟S712中“是”),模擬部806判定為追隨條件成立(步驟S714),將處理返回到主處理(返回)。相對于此,在變量t的值不是基準(zhǔn)值以上(小于基準(zhǔn)值)的情況下(步驟S712中“否”),模擬部806判定為追隨條件不成立(步驟S716),將處理返回到主處理(返回)。
[0182]根據(jù)實施方式3,在虛擬自動裝置的把持空間中包含一定以上的虛擬工件的表面的情況下,使虛擬工件追隨虛擬自動裝置的活動。因此,能夠?qū)⒃趯嶋H空間中自動裝置可把持的工件以可被把持的方式進行模擬,能夠?qū)⒃趯嶋H空間中自動裝置不能把持的工件以不能被把持的方式進行模擬。即,能夠更高精度地模擬實際空間中的自動裝置以及工件的活動。
[0183][其他的實施方式]
[0184]在上述的實施方式I中,說明了在追隨條件的判定處理中將把持空間分割為單位區(qū)域的情況,但也可以通過與實施方式2相同的想法,將虛擬工件530分割為單位區(qū)域。即,模擬部806通過執(zhí)行3D模擬器,將虛擬工件530分割為單位區(qū)域(例如,長方體)。模擬部806執(zhí)行第n個單位區(qū)域是否包含在把持空間中的判斷處理。然后,模擬部806在虛擬工件530的體積中、在把持空間中包含的部分的體積為一定以上的情況下判定為追隨條件成立,在小于基準(zhǔn)值的情況下判定為追隨條件不成立。
[0185]此外,在上述的實施方式中,虛擬機械對應(yīng)于實際空間的機械,虛擬對象物對應(yīng)于實際空間的對象物(工件)。但是,并不限定于此,也可以僅存在于作為虛擬空間的3D空間。據(jù)此,例如,能夠在制作實際的裝置之前,驗證在控制程序的模擬中對象物是否追隨機械的活動。
[0186]此外,在上述的實施方式中,說明了模擬部806執(zhí)行的模擬器被分為3D模擬器以及機械控制模擬器的兩個的情況。但是,并不限定于此,這兩個也可以合并。若這樣,則可以不進行在各個模擬器之間的數(shù)據(jù)的交換,所以能夠高效地執(zhí)行模擬。
[0187]另外,也能夠提供通過使計算機起作用而執(zhí)行在上述的流程圖中說明的控制的程序。這樣的程序也可以記錄在附屬于計算機的軟盤、⑶一 R0M、R0M、RAM以及存儲卡等的不是臨時的計算機可讀取的記錄介質(zhì)中,作為程序產(chǎn)品而提供。或者,也可以記錄在內(nèi)置于計算機的硬盤等的記錄介質(zhì)中來提供程序。此外,也可以通過經(jīng)由網(wǎng)絡(luò)的下載來提供程序。
[0188]程序也可以是在作為計算機的操作系統(tǒng)(OS)的一部分而被提供的程序模塊中、將需要的模塊以規(guī)定的排列且在規(guī)定的定時調(diào)用而執(zhí)行處理者。此時,程序本身不包含上述模塊,與OS協(xié)作而執(zhí)行處理。這樣的不包含模塊的程序也可包含在本實施方式的程序中。
[0189]此外,本實施方式的程序也可以是編入其他的程序的一部分中而提供者。此時,在程序本身中也不包含在上述其他程序中包含的模塊,與其他程序協(xié)作而執(zhí)行處理。這樣的編入其他程序中的程序也可包含在本實施方式的程序中。
[0190]應(yīng)認(rèn)為本次公開的實施方式在所有方面只是例示,并不是限制性的。本發(fā)明的范圍是由權(quán)利要求書的范圍所表示而不是上述說明,意圖包含與權(quán)利要求書的范圍等同的含義以及范圍內(nèi)的全部變更。
[0191]【標(biāo)號說明】
[0192]2服務(wù)器、4網(wǎng)絡(luò)、8控制器支持程序、10,15控制程序、12,902R0M、14控制器、16控制對象裝置、17電動機驅(qū)動器、18電動機、500虛擬自動裝置、530,630虛擬工件、550虛擬支架、600虛擬氣筒、650,655虛擬輸送機、802用戶接口部、804顯示數(shù)據(jù)制作部、806模擬部、808控制程序存儲部、810控制程序編輯部、812控制器接口部、820模擬控制部、822動作控制部、824判斷部、826追隨控制部、830執(zhí)行結(jié)果數(shù)據(jù)存儲部、840模型數(shù)據(jù)存儲部、901CPU、903RAM、904HDD、905 鍵盤、906 鼠標(biāo)、907 監(jiān)視器、908CD — ROM 驅(qū)動裝置、909 通信 IF、910 內(nèi)部總線。
【權(quán)利要求】
1.一種模擬裝置,包括執(zhí)行控制程序的模擬的處理器,該控制程序在對處理對象物的機械的活動進行控制的控制器中執(zhí)行, 所述處理器包括: 動作控制部件,根據(jù)所述控制程序,在虛擬空間中基于用于使與所述機械對應(yīng)的虛擬機械活動的動作指令來控制所述虛擬機械的活動; 判斷部件,基于被所述虛擬機械所處理且與所述對象物對應(yīng)的虛擬對象物的模型數(shù)據(jù)和所述虛擬機械的模型數(shù)據(jù),判斷可供所述虛擬機械作用的作用空間與所述虛擬對象物重疊的區(qū)域的體積是否為預(yù)先設(shè)定的基準(zhǔn)值以上;以及 追隨部件,在所述體積為所述基準(zhǔn)值以上的情況下,使所述虛擬對象物追隨基于所述動作指令的所述虛擬機械的活動。
2.如權(quán)利要求1所述的模擬裝置,其中, 所述判斷部件將所述作用空間分割為多個單位區(qū)域,判定所述經(jīng)分割而成的各單位區(qū)域是否為包含所述虛擬對象物的區(qū)域,并基于判定為是包含所述虛擬對象物的區(qū)域的單位區(qū)域的個數(shù),計算所述作用空間的體積中的所述虛擬對象物所占的部分的體積。
3.如權(quán)利要求1所述的模擬裝置,其中, 所述判斷部件將所述虛擬對象物分割為多個單位區(qū)域,判定所述經(jīng)分割而成的各單位區(qū)域是否包含在所述作用空間中,并基于判定為所述包含在所述作用空間中的單位區(qū)域的個數(shù),計算所述虛擬對象物的體積中的與所述作用空間重疊的部分的體積。
4.如權(quán)利要求3所述的模擬裝置,其中, 對所述虛擬對象物的每個模型數(shù)據(jù)決定所述基準(zhǔn)值。`
5.如權(quán)利要求1至4的任一項所述的模擬裝置,其中, 所述作用空間包含預(yù)先設(shè)定為與所述機械的可動范圍對應(yīng)的所述虛擬機械的可動范圍。
6.—種在計算機中進行的模擬方法, 所述計算機包括執(zhí)行控制程序的模擬的處理器,該控制程序在對處理對象物的機械的活動進行控制的控制器中執(zhí)行, 所述模擬方法包括: 所述處理器根據(jù)所述控制程序,在虛擬空間中基于用于使與所述機械對應(yīng)的虛擬機械活動的動作指令來控制所述虛擬機械的活動的步驟; 所述處理器基于被所述虛擬機械所處理且與所述對象物對應(yīng)的虛擬對象物的模型數(shù)據(jù)和所述虛擬機械的模型數(shù)據(jù),判斷可供所述虛擬機械作用的作用空間與所述虛擬對象物重疊的區(qū)域的體積是否為預(yù)先設(shè)定的基準(zhǔn)值以上的步驟;以及 所述處理器在所述體積為所述基準(zhǔn)值以上的情況下,使所述虛擬對象物追隨基于所述動作指令的所述虛擬機械的活動的步驟。
7.一種在計算機中執(zhí)行的模擬程序, 所述計算機包括執(zhí)行控制程序的模擬的處理器,該控制程序在對處理對象物的機械的活動進行控制的控制器中執(zhí)行, 所述模擬程序使所述處理器執(zhí)行如下步驟: 根據(jù)所述控制程序,在虛擬空間中基于用于使與所述機械對應(yīng)的虛擬機械活動的動作指令來控制所述虛擬機械的活動的步驟; 基于被所述虛擬機械所處理且與所述對象物對應(yīng)的虛擬對象物的模型數(shù)據(jù)和所述虛擬機械的模型數(shù)據(jù),判斷可供所述虛擬機械作用的作用空間與所述虛擬對象物重疊的區(qū)域的體積是否為預(yù)先設(shè)定的基準(zhǔn)值以上的步驟;以及 在所述體積為所述基準(zhǔn)值以上的情況下,使所述虛擬對象物追隨基于所述動作指令的所述虛擬機械的活動的步驟。
8.一種模擬裝置,包括執(zhí)行控制程序的模擬的處理器,該控制程序在對處理對象物的機械的活動進行控制的控制器中執(zhí)行, 所述處理器包括: 動作控制部件,根據(jù)所述控制程序,在虛擬空間中基于用于使與所述機械對應(yīng)的虛擬機械活動的動作指令來控制所述虛擬機械的活動; 判斷部件,基于被所述虛擬機械所處理且與所述對象物對應(yīng)的虛擬對象物的模型數(shù)據(jù)和所述虛擬機械的模型數(shù)據(jù),判斷可供所述虛擬機械作用的作用空間與所述虛擬對象物重疊的部分的所述虛擬對象物的表面積是否為預(yù)先設(shè)定的基準(zhǔn)值以上;以及 追隨部件,在所述表面積為所述基準(zhǔn)值以上的情況下,使所述虛擬對象物追隨基于所述動作指令的所述虛擬機械的活動。
9.一種模擬裝置,包括執(zhí)行控制程序的模擬的處理器,該控制程序在對處理對象物的機械的活動進行控制的控制器中執(zhí)行, 所述處理器包括: 動作控制部件,根據(jù)所述控制程序,在虛擬空間中基于用于使與所述機械對應(yīng)的虛擬機械活動的動作指令來控制所述虛擬機械的活動; 判斷部件,基于被所述虛擬機械所處理且與所述對象物對應(yīng)的虛擬對象物的模型數(shù)據(jù)和所述虛擬機械的模型數(shù)據(jù),判斷可供所述虛擬機械作用的作用空間與所述虛擬對象物不重疊的區(qū)域的體積是否小于預(yù)先設(shè)定的基準(zhǔn)值;以及 追隨部件,在所述體積小于所述基準(zhǔn)值的情況下,使所述虛擬對象物追隨基于所述動作指令的所述虛擬機械的活動。
【文檔編號】G05B17/02GK103676662SQ201310428973
【公開日】2014年3月26日 申請日期:2013年9月18日 優(yōu)先權(quán)日:2012年9月21日
【發(fā)明者】森谷俊洋, 柴田義也, 島川春奈, 浪江正樹, 阪口泰規(guī) 申請人:歐姆龍株式會社