KR20090019112A - System and method for simulation of virtual equipment by 3d image processing - Google Patents

System and method for simulation of virtual equipment by 3d image processing Download PDF

Info

Publication number
KR20090019112A
KR20090019112A KR1020070083296A KR20070083296A KR20090019112A KR 20090019112 A KR20090019112 A KR 20090019112A KR 1020070083296 A KR1020070083296 A KR 1020070083296A KR 20070083296 A KR20070083296 A KR 20070083296A KR 20090019112 A KR20090019112 A KR 20090019112A
Authority
KR
South Korea
Prior art keywords
simulation
actuator
model
image processing
unit
Prior art date
Application number
KR1020070083296A
Other languages
Korean (ko)
Other versions
KR100917747B1 (en
Inventor
임홍재
성상준
주재환
장시열
정재일
신동훈
Original Assignee
국민대학교산학협력단
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 국민대학교산학협력단 filed Critical 국민대학교산학협력단
Priority to KR1020070083296A priority Critical patent/KR100917747B1/en
Publication of KR20090019112A publication Critical patent/KR20090019112A/en
Application granted granted Critical
Publication of KR100917747B1 publication Critical patent/KR100917747B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/20Design optimisation, verification or simulation
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B82NANOTECHNOLOGY
    • B82YSPECIFIC USES OR APPLICATIONS OF NANOSTRUCTURES; MEASUREMENT OR ANALYSIS OF NANOSTRUCTURES; MANUFACTURE OR TREATMENT OF NANOSTRUCTURES
    • B82Y10/00Nanotechnology for information processing, storage or transmission, e.g. quantum computing or single electron logic
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/31Programming languages or programming paradigms
    • G06F8/315Object-oriented languages
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/34Graphical or visual programming
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/16Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Chemical & Material Sciences (AREA)
  • Nanotechnology (AREA)
  • Computing Systems (AREA)
  • Computer Hardware Design (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • Mathematical Physics (AREA)
  • Crystallography & Structural Chemistry (AREA)
  • Processing Or Creating Images (AREA)

Abstract

A simulation system of the virtual equipment by 3D image processing and method are provided to verify the reliability of the equipment control software by using the virtual equipment. The simulation system of the virtual equipment through 3D image processing comprises the view class processing unit(100), and the model class processing unit(200) and dialog box class processing unit(300). The view class processing unit manages the graphics window in the screen. The model class processing unit is connected to the view class processing unit. The model class processing unit produces or deletes the object and supervises the command mounting actuator or the sensor to the generated object. The virtual equipment simulator is connected to the model class processing unit processes.

Description

3D 영상처리를 통한 가상장비의 시뮬레이션 시스템 및 그 방법{System and method for simulation of virtual equipment by 3D image processing}System and method for simulation of virtual equipment by 3D image processing}

본 발명은 가상장비의 시뮬레이션에 관한 것으로, 특히 가상장비를 이용하여 장비 제어 소프트웨어의 신뢰성을 검증하여 실물장비가 출시되기 전 단계에서도 장비제어 소프트웨어의 개발이 가능하도록 하기에 적당하도록 한 3D(Three Dimension, 3차원) 영상처리를 통한 가상장비의 시뮬레이션 시스템 및 그 방법에 관한 것이다.The present invention relates to the simulation of virtual equipment, and in particular, to verify the reliability of the equipment control software using the virtual machine to be suitable for the development of the equipment control software even before the real equipment is released 3D (Three Dimension And a 3D) image processing system for a virtual machine and a method thereof.

일반적으로 연구목적 일반적으로 장비 제어 소프트웨어를 개발하기 위해서는, 개발된 제어 소프트웨어의 작동 유무 및 신뢰성을 실물장비를 통해서 반드시 검증하여야 한다.In general, for the purpose of research, in order to develop the equipment control software, the operation and reliability of the developed control software must be verified through real equipment.

종래기술은 개발된 제어 소프트웨어의 작동 유무 및 신뢰성을 실물장비를 통해서 반드시 검증해야 하는데, 이 경우에 장비제어 소프트웨어 개발팀은 1차 소프트웨어 개발을 완료했어도 실물장비의 개발이 완료될 때까지 소프트웨어 검증시험을 기다려야 하며, 실물장비를 통한 소프트웨어는 제어 소프트웨어의 오류로 인해 하드웨어에 손상을 줄 수도 있고, 다양한 단위 테스트 및 일련의 종합 시스템 테스트에 여러 가지 어려움이 발생할 수 있는 문제점이 있었다.The prior art must verify the operation and reliability of the developed control software through real equipment. In this case, the equipment control software development team performs the software verification test until the development of the real equipment is completed even though the first software development is completed. There is a problem that the software through the real equipment may damage the hardware due to the error of the control software, and may cause various difficulties in various unit tests and a series of comprehensive system tests.

이에 본 발명은 상기와 같은 종래의 제반 문제점을 해결하기 위해 제안된 것으로, 본 발명의 목적은 가상장비를 이용하여 장비 제어 소프트웨어의 신뢰성을 검증하여 실물장비가 출시되기 전 단계에서도 장비제어 소프트웨어의 개발이 가능하도록 할 수 있는 3D 영상처리를 통한 가상장비의 시뮬레이션 시스템 및 그 방법을 제공하는데 있다.Therefore, the present invention has been proposed to solve the conventional problems as described above, and the object of the present invention is to verify the reliability of the equipment control software using a virtual machine to develop the equipment control software even before the actual equipment is released. It is to provide a simulation system and a method of virtual equipment through 3D image processing that can enable this.

도 2는 본 발명의 일 실시예에 의한 3D 영상처리를 통한 가상장비의 시뮬레이션 시스템의 블록구성도이다.2 is a block diagram of a simulation system of a virtual device through 3D image processing according to an embodiment of the present invention.

이에 도시된 바와 같이, 화면에 보이는 그래픽스(Graphics) 창을 관리하는 뷰 클래스(View Class) 처리부(100)와; 상기 뷰 클래스 처리부(100)와 연결되고, 객체(object)를 생성하거나 삭제하고, 생성된 객체에 액츄에이터 또는 센서를 장착 하는 명령을 주관하고, 가상장비 시뮬레이터를 구동시키는 부분이 있으면 구동시키는 부분이 정상 작동하도록 처리하는 모델 클래스(Model Class) 처리부(200)와; 상기 모델 클래스 처리부(200)와 연결되고, 사용자 직접 입력해주어야 하는 값들에 대한 대화창을 관할하는 대화창 클래스(Dialog Class) 처리부(300);를 포함하여 구성된 것을 특징으로 한다.As shown therein, a view class processing unit 100 which manages a graphics window displayed on the screen; It is connected to the view class processing unit 100, creates or deletes an object, manages an instruction to mount an actuator or a sensor on the generated object, and if there is a part that drives the virtual machine simulator, the driving part is normal. A model class processing unit 200 for processing to operate; And a dialog class processing unit 300 connected to the model class processing unit 200 and managing a dialog window for values that must be directly input by the user.

상기 뷰 클래스 처리부(100)는, 가상장비 시뮬레이션에 필요한 모델을 생성하고 삭제하는 모델링부(Model List)(110)와; 외부 통신 수단과 연결하여 제어 명령이 들어올 수 있도록 처리하는 네트워크 연결부(NetworkDlg)(120)와; 단축키와 키보드를 이용하여 모델의 작동 여부를 미리 확인할 수 있도록 처리하는 키보드 테스트부(Simple Test)(130)와; 외부 통신 수단을 통해 입력된 제어명령에 의해 제어를 받아 입력된 명령을 화면에 나타내서 실제 기계와 같은 움직임을 표현하는 시뮬레이션부(Simulation View)(140);를 포함하여 구성된 것을 특징으로 한다.The view class processing unit 100 may include a modeling unit 110 for generating and deleting a model required for virtual device simulation; A network connection unit (NetworkDlg) 120 for connecting to an external communication unit and processing a control command to enter; A keyboard test unit (Simple Test) (130) for processing so that the operation of the model in advance by using a shortcut key and the keyboard; And a simulation unit (Simulation View) 140 that represents a motion such as a real machine by displaying the input command received on the screen under control by a control command input through an external communication means.

상기 모델링부(110)는, 모델 생성시에는 모델의 형상 정보, ID number, 위치 정보, geometry 정보, 이름, 색상, 투명도 값 중에서 하나 이상을 지정하여 생성하는 것을 특징으로 한다.The modeling unit 110 may generate and designate one or more of shape information, ID number, location information, geometry information, name, color, and transparency value of the model.

상기 모델링부(110)는, 모델 삭제시에는 그룹화가 되어 있는지 확인한 후 그룹을 삭제하고 모델을 지우고, 만약 모델에 링크 관계나 액츄에이터(actuator)가 장착되어 있다면 링크 삭제 또는 액츄에이터 삭제를 실행한 후 모델을 삭제하는 것을 특징으로 한다.When the model is deleted, the modeling unit 110 checks whether the group is deleted, deletes the group, and deletes the model. If the model is equipped with a link relationship or an actuator, the model is executed after deleting the link or deleting the actuator. It characterized in that to delete.

상기 모델 클래스(200) 처리부는, 액츄에이터의 구성 성분 또는 작동을 처리 하는 액츄에이터 처리부(Actuator)(210)와; 객체(Object)를 생성하는 함수를 관장하는 객체 관리부(Model Object)(220)와; 상기 객체 관리부(220)에서 설정해 놓은 도형의 형식에 맞춰 도형을 생성하는 도형 생성부(Model Part)(230)와; 상기 도형 생성부(230)에 의해 생성된 도형의 충돌을 미리 감지하거나 객체(object)의 위치를 추적하는 센서 처리부(Sensor)(240);를 포함하여 구성된 것을 특징으로 한다.The model class 200 processing unit includes: an actuator processing unit 210 for processing a component or an operation of an actuator; An object manager 220 that manages a function of generating an object; A figure generator 230 generating a figure according to a type of a figure set by the object manager 220; And a sensor processor 240 for detecting a collision of a figure generated by the figure generating unit 230 in advance or tracking a position of an object.

상기 액츄에이터 처리부(210)는, 액츄에이터의 장착 시에는 구동 축과 구동 속도를 입력 받고, 액츄에이터의 내부적인 변환에는 D3DXVECTOR4를 사용하며, 액츄에이터의 작동 범위를 설정할 때는 D3DXVECTOR3을 사용하며, 입력된 값에 의한 변환행렬은 내부 프레임을 움직이는 형식으로 프레임 이동(Frame Move) 함수를 이용하는 것을 특징으로 한다.The actuator processor 210 receives a drive shaft and a drive speed when the actuator is mounted, uses a D3DXVECTOR4 for internal conversion of the actuator, and uses a D3DXVECTOR3 to set the actuator's operating range. The transformation matrix is characterized by using a frame move function to move an internal frame.

상기 액츄에이터 처리부(210)는, 심플 테스트 모드(Simple test mode)와 시뮬레이션 모드(Simulation mode)로 구현되고, 상기 심플 테스트 모드에서 스카라(scara) 기구물에 대해서는 지정된 위치로 핸드(hand) 부분을 움직일 수 있도록 하며, 상기 시뮬레이션 모드에서는 속도, 가속도, 감속도를 포함하여 계산하여 액츄에이터의 구동이 완료되면 회전, 이동 결과 행렬을 계산하는 것을 특징으로 한다.The actuator processor 210 may be implemented in a simple test mode and a simulation mode, and move a hand portion to a designated position with respect to a scara mechanism in the simple test mode. In the simulation mode, the rotation, movement result matrix is calculated when the driving of the actuator is completed by calculating the speed, acceleration, and deceleration.

상기 객체 관리부(220)는, 인덱스 버퍼(index buffer)와 버텍스 버퍼(vertex buffer)를 이용해서 STL((Stereo Lithography) 임포트(import)를 설계할 수 있도록 하는 것을 특징으로 한다.The object manager 220 may design an STL (Stereo Lithography) import using an index buffer and a vertex buffer.

상기 도형 생성부(230)는, 생성된 모델간 링크 관계를 생성하거나 삭제를 할 수 있으며 액츄에이터나 센서를 장착 또는 삭제하는 함수들이 구현되어 있는 것을 특징으로 한다.The figure generator 230 may generate or delete a link relationship between the generated models, and the functions of mounting or deleting an actuator or a sensor may be implemented.

상기 도형 생성부(230)는, 충돌 체크 관련 함수들이 구현되고, 무한 직선과의 충돌을 이용해서 픽킹(picking) 관련 기능이 구현되고, 모델 간의 충돌과 센서와의 충돌이 처리되도록 하고, 모델링 수행에서 충돌하고 있는 물체는 충돌 무시 리스트에 추가해서 충돌이 감지되지 않도록 처리하는 것을 특징으로 한다.The figure generator 230 implements collision check-related functions, implements picking-related functions using collisions with infinite straight lines, processes collisions between models and collisions with sensors, and performs modeling. Objects colliding at are added to the ignore collision list so that collision is not detected.

상기 센서 처리부(240)는, 초기 상태에서 객체가 움직이는지 여부를 표시하고, 객체와 센서와의 간섭 여부를 측정하며, 설정한 축에 대해 객체의 표면과 센서의 중심과의 거리를 측정하고, 글로벌(global) 좌표의 중심점을 기준으로 센서의 중심 사이의 상대 거리를 측정하는 것을 포함하여 수행하는 것을 특징으로 한다.The sensor processor 240 displays whether the object moves in an initial state, measures whether the object interferes with the sensor, measures the distance between the surface of the object and the center of the sensor with respect to the set axis. And measuring a relative distance between the centers of the sensors with respect to the center point of the global coordinates.

도 8은 본 발명의 일 실시예에 의한 3D 영상처리를 통한 가상장비의 시뮬레이션 방법을 보인 흐름도이고, 도 9는 도 8에서 모델링 단계의 상세흐름도이다.8 is a flowchart illustrating a simulation method of a virtual device through 3D image processing according to an embodiment of the present invention, and FIG. 9 is a detailed flowchart of a modeling step in FIG. 8.

이에 도시된 바와 같이, 가상장비 시뮬레이션에 필요한 모델링을 수행하는 제 1 단계(ST1)와; 상기 제 1 단계 후 키보드 입력을 통해 간단히 시뮬레이션을 수행하도록 하는 제 2 단계(ST2)와; 상기 제 2 단계 후 구동 요청 프로그램인 3D 클라이언트와의 연결을 수행하여 가상장비에 대한 시뮬레이션이 수행되도록 하는 제 3 단계(ST3);를 포함하여 수행하는 것을 특징으로 한다.As shown therein, a first step (ST1) of performing modeling required for virtual machine simulation; A second step ST2 for simply performing a simulation through a keyboard input after the first step; And a third step (ST3) for performing a simulation on the virtual device by performing a connection with the 3D client, which is a driving request program after the second step.

상기 제 1 단계는, 모델링 수행시, 모델을 추가(ADD MODEL)하도록 하거나 또는 이미 모델링해서 CNT(Contents) 포맷으로 저장해 놓을 파일을 다시 불러들이는 임포트(IMPORT)를 수행하도록 하거나 또는 외부 프로그램에서 모델링한 STL(STereo Lithography) 파일을 불러올 수 있도록 하여 모델링을 수행하도록 하는 제 11 단계(ST11 ~ ST13)와; 상기 제 11 단계 후 액츄에이터를 장착할 때 움직이는 부분을 설정할 수 있도록 모델들 사이의 종속 관계를 정의하도록 하여 링크(LINK) 연결이 수행되도록 하는 제 12 단계(ST14)와; 상기 제 12 단계 후 액츄에이터(ACTUATOR)를 장착하여 설정할 수 있도록 하는 제 13 단계(ST15);를 포함하여 수행하는 것을 특징으로 한다.The first step is to add the model when performing the modeling, or to perform the import (IMPORT) of re-importing a file that has already been modeled and stored in the CNT (Contents) format, or modeled in an external program. An eleventh step (ST11 to ST13) to perform modeling by loading a STL (STereo Lithography) file; A twelfth step ST14 for defining a dependency relationship between the models so as to set a moving part when mounting the actuator after the eleventh step so that a link is performed; And a thirteenth step ST15 for mounting and setting an actuator after the twelfth step.

상기 제 11 단계는, 모델 추가에 의한 모델링 수행시 ball, box, cylinder, frustum, cone, polygon 중에서 하나 이상을 포함한 모델링을 수행하도록 하는 것을 특징으로 한다.In the eleventh step, modeling including one or more of ball, box, cylinder, frustum, cone, and polygon may be performed when modeling by adding a model.

상기 제 11 단계는, 모델 추가에 의한 모델링 수행시, 모델의 이름(name), 형태(type), 초기 위치(initial position), 초기 회전각(initial rotation), 기하학적 배열(geometry), 색상(color) 중에서 하나 이상을 포함하여 설정하도록 하는 것을 특징으로 한다.The eleventh step may include a name, a type, an initial position, an initial rotation, a geometry, and a color of the model when performing modeling by adding a model. It is characterized in that it is set to include one or more of.

상기 제 11 단계는, STL 파일을 불러올 때 색상 정보, 링크 정보, 액츄에이터 정보 중에서 하나 이상을 설정하여 STL 파일을 불러오도록 하는 것을 특징으로 한다.In the eleventh step, when the STL file is loaded, one or more of color information, link information, and actuator information may be set to load the STL file.

상기 제 12 단계는, 모델링 버튼을 이용하여 링크 설정이 수행되도록 하는 것을 특징으로 한다.In the twelfth step, link setting may be performed using a modeling button.

상기 제 12 단계는, 트리 뷰(Tree View)에서 드래그앤드롭(Drag and Drop)을 이용하여 링크 설정이 수행되도록 하는 것을 특징으로 한다.In the twelfth step, link setting may be performed by using drag and drop in a tree view.

본 발명에 의한 3D 영상처리를 통한 가상장비의 시뮬레이션 시스템 및 그 방법은 가상장비를 이용하여 장비 제어 소프트웨어의 신뢰성을 검증하여 실물장비가 출시되기 전 단계에서도 장비제어 소프트웨어의 개발이 가능하도록 할 수 있는 효과가 있게 된다.The simulation system and method of the virtual machine through the 3D image processing according to the present invention can verify the reliability of the machine control software using the virtual machine to enable the development of the machine control software even before the real machine is released. It will work.

이와 같이 구성된 본 발명에 의한 3D 영상처리를 통한 가상장비의 시뮬레이션 시스템 및 그 방법의 바람직한 실시예를 첨부한 도면에 의거하여 상세히 설명하면 다음과 같다. 하기에서 본 발명을 설명함에 있어 관련된 공지 기능 또는 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략할 것이다. 그리고 후술되는 용어들은 본 발명에서의 기능을 고려하여 정의된 용어들로서, 이는 사용자, 운용자의 의도 또는 판례 등에 따라 달라질 수 있으며, 이에 따라 각 용어의 의미는 본 명세서 전반에 걸친 내용을 토대로 해석되어야 할 것이다.Referring to the accompanying drawings, a preferred embodiment of a simulation system and a method of a virtual device through the 3D image processing according to the present invention configured as described above are as follows. In the following description of the present invention, detailed descriptions of well-known functions or configurations will be omitted if it is determined that the detailed description of the present invention may unnecessarily obscure the subject matter of the present invention. In addition, terms to be described below are terms defined in consideration of functions in the present invention, which may vary according to intention or precedent of a user or an operator, and thus, the meaning of each term should be interpreted based on the contents throughout the present specification. will be.

먼저 본 발명은 가상장비를 이용하여 장비 제어 소프트웨어의 신뢰성을 검증하여 실물장비가 출시되기 전 단계에서도 장비제어 소프트웨어의 개발이 가능하도록 하고자 한 것이다.First, the present invention is intended to enable the development of equipment control software even before the actual equipment is released by verifying the reliability of the equipment control software using virtual equipment.

이러한 본 발명에 대해 상세히 설명하면 다음과 같다.The present invention will be described in detail as follows.

일반적으로 장비 제어 소프트웨어를 개발하기 위해서는, 개발된 제어 소프트웨어의 작동 유무 및 신뢰성을 실물장비를 통해서 반드시 검증하여야 한다. 이 경우에 장비제어 소프트웨어 개발팀은 1차 소프트웨어 개발을 완료했어도 실물장비의 개발이 완료될 때까지 소프트웨어 검증시험을 기다려야 하며, 실물장비를 통한 소프트웨어는 제어 소프트웨어의 오류로 인해 하드웨어에 손상을 줄 수도 있고, 다양한 단위 테스트 및 일련의 종합 시스템 테스트에 여러 가지 어려움이 발생할 수 있다. 따라서 본 발명에서는 실물장비가 아직 출시되기 전 단계에서도 장비제어 소프트웨어의 개발이 가능할 수 있도록 하기 위해, 가상 장비를 이용한 장비 제어 소프트웨어의 신뢰성을 검증할 수 있는 가상장비 시뮬레이션 시스템 및 그 방법을 제안하는 것이다.In general, in order to develop the equipment control software, the operation and reliability of the developed control software must be verified through real equipment. In this case, the equipment control software development team must wait for the software verification test until the development of the actual equipment is completed even though the primary software development is completed, and the software through the physical equipment may damage the hardware due to the error of the control software. However, various difficulties can occur in various unit tests and a series of comprehensive system tests. Therefore, the present invention proposes a virtual machine simulation system and method for verifying the reliability of equipment control software using virtual equipment in order to enable the development of equipment control software even before the actual equipment is still released. .

도 1은 본 발명이 적용되는 3D 영상처리를 통한 가상장비의 시뮬레이션 시스템의 전체적인 예를 보인 개념도이다.1 is a conceptual diagram illustrating an overall example of a simulation system of a virtual device through 3D image processing to which the present invention is applied.

그래서 구동 요청부에서 API(Application Program Interface)를 통해 가상장비 시뮬레이터를 구동시키면 가상장비를 이용한 시뮬레이션이 가능하게 된다.Therefore, when the virtual machine simulator is driven through the API (Application Program Interface) in the driving request unit, the simulation using the virtual machine becomes possible.

도 2는 본 발명의 일 실시예에 의한 3D 영상처리를 통한 가상장비의 시뮬레이션 시스템의 블록구성도이다.2 is a block diagram of a simulation system of a virtual device through 3D image processing according to an embodiment of the present invention.

그래서 본 발명은 뷰 클래스 처리부(100), 모델 클래스 처리부(200), 대화창 클래스 처리부(300)를 구비할 수 있다. 또한 뷰 클래스 처리부(100)는 모델링부(110), 네트워크 연결부(120), 키보드 테스트부(130), 시뮬레이션부(140)로 구성할 수 있고, 모델 클래스 처리부(200)는 액츄에이터 처리부(210), 객체 관리 부(220), 도형 생성부(230), 센서 처리부(240)를 구비할 수 있다. 이에 대한 상세 설명은 하기에서 한다.Thus, the present invention may include a view class processing unit 100, a model class processing unit 200, and a chat window class processing unit 300. In addition, the view class processing unit 100 may be configured as a modeling unit 110, a network connection unit 120, a keyboard test unit 130, a simulation unit 140, the model class processing unit 200 is the actuator processing unit 210 , An object manager 220, a figure generator 230, and a sensor processor 240 may be provided. Detailed description thereof will be given below.

도 3은 본 발명의 일 실시예에 의한 3D 영상처리를 통한 가상장비의 시뮬레이션 시스템에서 3D 영상 생성 및 가상 시뮬레이터의 개념을 보인 개념도이다.3 is a conceptual diagram illustrating a concept of a 3D image generation and a virtual simulator in a simulation system of a virtual device through 3D image processing according to an embodiment of the present invention.

그래서 원시 객체(Primitive object), 캐드 데이터의 로딩(Cad data loading), 배치 및 동특성 부여에 의해 3D 영상을 생성하고, 3D 영상정보 데이터를 이용하여 3D 영상구동 엔진인 시뮬레이터에서 구동시키면 가상 시뮬레이션이 가능하게 된다.Therefore, 3D image can be generated by primitive object, CAD data loading, placement, and dynamic characteristics, and it can be simulated by driving it in the simulator, which is a 3D image driving engine, using 3D image information data. Done.

도 4는 본 발명이 적용되는 기구운동엔진에서 지정할 수 있는 기구운동의 예를 보인 개념도이다.Figure 4 is a conceptual diagram showing an example of the mechanical motion that can be specified in the mechanical motion engine to which the present invention is applied.

그래서 도 4의 좌측에는 Z축으로 상승/하강하는 실린더의 예를 보이고 있고, 여기서는 Z방향 실린더의 특성을 지정하는 예를 보이고 있다. 또한 도 4의 우측에는 머리가 90도 회전하고 Z방향으로 이동하며 전체와 XY운동하는 그룹의 특성을 지정하는 예를 보이고 있고, 여기서는 회전운동 지정과 Z방향 직성운동을 지정하는 예와 그룹으로 묶어서 XY방향의 직선운동을 지정하는 예를 보이고 있다.4 shows an example of a cylinder rising / falling on the Z axis, and an example of designating characteristics of the cylinder in the Z direction is shown. In addition, the right side of FIG. 4 shows an example in which the head is rotated 90 degrees, moves in the Z direction, and specifies the characteristics of the group that is XY motion with the whole. An example of specifying the linear motion in the XY direction is shown.

도 5는 본 발명에서 가상장비 시뮬레이터의 작동 원리 및 사례 화면을 보인 개념도이다.5 is a conceptual diagram showing an operation principle and a case screen of the virtual machine simulator in the present invention.

그래서 구동 요청부는 API와 연결되고, API는 가상장비 시뮬레이터와 연결된다. 구동 요청부의 프로그램에서 API를 통해 가상장비 시뮬레이션을 구현할 수 있다.Thus, the driving request unit is connected to the API, and the API is connected to the virtual machine simulator. The virtual machine simulation can be implemented through the API in the program of the driving request unit.

한편 가상장비의 시뮬레이션 시스템인 가상장비 시뮬레이터는 뷰 클래스(View Class) 처리부(100), 모델 클래스(Model Class) 처리부(200), 대화창 클래스(Dialog Class) 처리부(300)로 구성할 수 있다.The virtual machine simulator, which is a simulation system of the virtual machine, may be configured as a view class processor 100, a model class processor 200, and a dialog class processor 300.

그리고 가상장비 시뮬레이터의 개발 언어는 마이크로소프트의 DirectX를 사용할 수 있다.And the development language for the virtual machine simulator can use Microsoft's DirectX.

Microsoft DirectX는 마이크로 소프트 Windows 운영체제에 구축되어 있는 멀티미디어 APIs(Application Programming Interfaces)의 향상된 슈트를 말한다. DirectX는 Windows 기반 PC를 위한 표준 개발 플랫폼을 제공하는데, 개발자들로 하여금 특정 하드웨어에만 한정된 코드를 쓰지 않고서도 전문 하드웨어 기능에 액세스 할 수 있도록 해준다. DirectX는 1995년에 처음 도입되어 현재는 윈도우 플랫폼에서 멀티미디어 어플리케이션을 개발하는 하나의 표준으로 인식되고 있다. Windows 기반의 PC(Personal Computer)에서 사용 가능한 표준 개발 플랫폼을 제공하여 특정 하드웨어에 국한되지 않은 범용적인 프로그램 개발을 가능하게 해준다. 또한 DirectX 7.0 버전 이후부터는 확장 라이브러리를 제공한다. 이 라이브러리는 산술 연산이나 텍스처와 이미지 작업, mesh 작업, shader 작업등과 같은 공통적인 3D 그래픽 작업을 위한 함수와 클래스, interface 기능을 포함하고 있다.Microsoft DirectX is an enhanced suite of multimedia APIs (Application Programming Interfaces) built into the Microsoft Windows operating system. DirectX provides a standard development platform for Windows-based PCs that allows developers to access specialized hardware features without writing code specific to specific hardware. DirectX was first introduced in 1995 and is now recognized as a standard for developing multimedia applications on the Windows platform. It provides a standard development platform that can be used on Windows-based personal computers (PCs), enabling general program development that is not limited to specific hardware. Also, since DirectX 7.0 version, extension library is provided. This library contains functions, classes, and interface functions for common 3D graphics tasks such as arithmetic operations, texture and image operations, mesh operations, and shader operations.

이러한 Direct X 라이브러리의 장점은 다음과 같다.The advantages of these Direct X libraries are as follows:

첫째, 산술 연산이나 텍스처와 이미지 작업, mesh 작업, shader 작업등과 같은 공통적인 3D 그래픽 작업을 위한 함수와 클래스, 인터페이스 등을 포함하고 있다. 따라서 반복되는 작업을 수행할 때 좀 더 편리한 개발자 환경을 제공해 준다.First, it contains functions, classes, and interfaces for common 3D graphics tasks such as arithmetic operations, texture and image operations, mesh operations, and shader operations. This provides a more convenient developer environment when performing repetitive tasks.

둘째, 3D외에 키보드나 마우스, 네트워크, 동영상, 카메라, 사운드 등을 위한 라이브러리도 포함하고 있어서 다양한 작업을 편리하게 수행할 수 있게 해준다.Second, in addition to 3D, it also includes a library for keyboards, mice, networks, videos, cameras, sounds, etc., so that various tasks can be conveniently performed.

셋째, Freeware인 DirectX runtime만 설치되어 있으면 어느 컴퓨터에서든지 사용이 가능하므로 범용성이 우수하다.Third, if only DirectX runtime which is freeware is installed, it can be used on any computer, so it is excellent in generality.

그리고 본 발명의 이해를 위한 수학적 배경 지식에 대해 설명하면 다음과 같다.And the mathematical background for understanding of the present invention will be described as follows.

- 3D Vector-3D Vector

벡터는 크기와 방향을 모두 나타내기 때문에 공간상에서 물리량을 나타내기에 적합한 표현 양식이다. 벡터로 표현할 때 위치는 벡터의 속성이 아니기 때문에 다른 위치에 있더라도 크기와 방향이 같으면 동일한 벡터로 취급된다.Since vectors represent both magnitude and direction, they are an appropriate form of representation of physical quantities in space. Since the position is not an attribute of the vector when expressed as a vector, it is treated as the same vector if the size and the direction are the same even if the position is different.

벡터의 위치는 벡터의 속성을 변경하지 않으므로, 좌표 시스템의 원점에 꼬리가 일치하도록 벡터들을 평행하게 배치할 수 있다. 벡터의 꼬리가 원점과 일치하면 벡터가 표준 점에 위치한 것이 된다.Since the position of the vector does not change the properties of the vector, the vectors can be placed in parallel so that the tail coincides with the origin of the coordinate system. If the tail of the vector coincides with the origin, the vector is located at the standard point.

Direct X의 라이브러리에서는 3D 공간 내의 벡터를 표현하기 위해 D3DXVECTOR3 클래스를 사용하며 이는 D3DVECTOR에서 성분을 상속받는다.The DirectX library uses the D3DXVECTOR3 class to represent vectors in 3D space, which inherits components from D3DVECTOR.

- Matrix-Matrix

D3DX(Direct Three Dimension X) 어플리케이션(application)을 프로그래밍 할 때는 4*4 행렬과 1*4 행 벡터만을 사용한다. 벡터와 행렬의 곱으로 1*4행 벡터를 생성하고 행렬과 행렬의 곱으로 4*4행렬을 생성한다.When programming a Direct Three Dimension X (D3DX) application, use only 4 * 4 matrices and 1 * 4 row vectors. Create a 1 * 4 row vector by the product of a vector and a matrix, and a 4 * 4 matrix by the product of a matrix and a matrix.

그리고 행렬(Matrix)에서 벡터의 기본적인 변환은 다음과 같다.The basic transformation of a vector in a matrix is

D3DX에서 1*4행 벡터를 표현하기 위해서는 D3DXVECTOR3과 D3DXVECTOR4 클래스를 이용하는데, D3DXVECTOR3의 네 번째 성분은 1또는 0으로 표현한다. 이는 3*3 행렬로는 표현할 수 없는 변환(예를 들어 이동, 투영 또는 반사등의 변환)들이 4*4 행렬에서는 표현이 가능하므로 좀 더 다양한 변환을 시도하기 위함이다. 따라서 벡터와 행렬과의 곱을 정의하기 위해서는 4D 행 벡터에 3D 포인트 또는 벡터를 보충해서 동치시켜야 한다.The D3DXVECTOR3 and D3DXVECTOR4 classes are used to represent 1 * 4 row vectors in D3DX. The fourth component of D3DXVECTOR3 is expressed as 1 or 0. This is to attempt more various transformations because transformations that cannot be represented by 3 * 3 matrix (for example, transformation, projection, or reflection) can be represented in 4 * 4 matrix. Therefore, to define the product of a vector and a matrix, a 3D point or vector must be supplemented and equalized in a 4D row vector.

여기서 중요한 점은 포인트나 벡터를 보충해 줄 때 차이가 있다는 것이다. 1*4행 벡터에 포인트를 배치할 때는 4행 성분을 1로 지정해야 포인트의 이동을 정확히 정의할 수 있다. 그러나 벡터를 배치할 때는 4행 성분을 0으로 지정해야 벡터의 의미 없는 이동을 막을 수 있다. 앞서 설명한 벡터의 특징에 의해 위치의 변화는 아무런 의미가 없기 때문이다.The important thing here is that there are differences when you supplement points or vectors. When placing points in a 1 * 4 row vector, specify the 4 row component as 1 to define the movement of the point precisely. However, when placing a vector, set the four-row component to 0 to avoid meaningless movement of the vector. This is because a change in position has no meaning due to the characteristics of the vector described above.

그리고 이동 행렬은 다음과 같다.The shift matrix is

(x, y, z, 1) 인 벡터를 각 축마다 A단위만큼 이동시키기 위해 다음과 같은 행렬이 필요하다.To move a vector of (x, y, z, 1) by A unit for each axis, the following matrix is needed.

Figure 112007059853371-PAT00001
Figure 112007059853371-PAT00001

이러한 수학식 1은 이동행렬이다.Equation 1 is a moving matrix.

D3DX에서는 D3DMatrixTranslation( ) 함수를 이용해서 표현을 할 수 있다. 이 함수에서는 Ax, Ay, Az를 float 값으로 입력해서 함수를 구현한다.In D3DX, you can express using the D3DMatrixTranslation () function. This function implements the function by entering Ax, Ay, and Az as float values.

또한 회전 행렬은 다음과 같다.Also, the rotation matrix is

회전 행렬을 이용하면 각 축에서 라디안 회전을 할 수 있으며 그 각도는 축을 내려다 볼 때 회전된 축을 기준으로 시계방향으로 측정한다.Using the rotation matrix, radians can be rotated on each axis and the angle is measured clockwise relative to the rotated axis when looking down the axis.

도 6은 본 발명의 적용시 Z축으로 30도 반 시계 방향 회전의 예를 보인 개념도이다.6 is a conceptual diagram showing an example of a 30 degree counterclockwise rotation in the Z axis when applying the present invention.

D3DX에서는 D3DMatrixRotationX(또는 Y, Z)( ) 함수를 이용해서 표현한다. 이 함수에서는 회전각을 float 값으로 입력해서 함수를 구현한다.In D3DX, this is expressed using the D3DMatrixRotationX (or Y, Z) () function. This function implements the function by entering the rotation angle as a float value.

Figure 112007059853371-PAT00002
Figure 112007059853371-PAT00002

Figure 112007059853371-PAT00003
Figure 112007059853371-PAT00003

Figure 112007059853371-PAT00004
Figure 112007059853371-PAT00004

여기서 수학식 2는 X축 회전 행렬이고, 수학식 3은 Y축 회전 행렬이며, 수학식 4는 Z축 회전 행렬이다.Equation 2 is an X-axis rotation matrix, Equation 3 is a Y-axis rotation matrix, and Equation 4 is a Z-axis rotation matrix.

또한 크기 변환 행렬은 다음과 같다.Also, the size transformation matrix is as follows.

객체(Object)의 크기를 변환 할 때는 크기 변환 행렬을 벡터에 곱해서 각 축마다 원하는 만큼 벡터의 크기를 변환할 수 있으며, D3DX에서는 D3DMatrix Scaling( ) 함수를 이용해서 표현한다.When converting the size of an object, you can multiply the size transformation matrix by a vector and convert the size of the vector as desired on each axis. In D3DX, the size is expressed using the D3DMatrix Scaling () function.

Figure 112007059853371-PAT00005
Figure 112007059853371-PAT00005

여기서 수학식 5는 크기 변환 행렬이다.Equation 5 is a magnitude transformation matrix.

D3DX에서 4*4 행렬을 나타내기 위해 D3DMATRIX 클래스를 사용하며 D3DMATRIX 구조체에서 성분을 상속 받는다. D3DMATRIX 클래스에는 행렬의 각종 연산자가 포함되어 있다.In D3DX, we use the D3DMATRIX class to represent 4 * 4 matrices and inherit the components from the D3DMATRIX structure. The D3DMATRIX class contains various operators for matrices.

- 평면-Flat

평면은 하나의 벡터와 그 평면상의 포인트로 구성이 된다. 벡터는 평면의 법선 벡터이므로 평면과는 수직을 이루고 있다. D3DX에서는 D3DXPLANE 구조체를 이용해서 구현을 하며 구성 성분으로는 법선 벡터와 포인트 즉 4D 벡터로 구성된다. 평면을 표현하기 위해서는 법선 벡터 n 과 포인트 p가 필요하며 포인트 p0 이 특정 평면을 표현하는 포인트일 때 다음의 수학식 6을 만족한다.A plane consists of a vector and points on that plane. The vector is perpendicular to the plane because it is a normal vector of planes. In D3DX, the implementation is done using the D3DXPLANE structure, which consists of a normal vector and a point, a 4D vector. The normal vector n and the point p are required to represent a plane, and the following equation 6 is satisfied when the point p 0 is a point representing a specific plane.

n * (p - p0 ) = 0n * (p-p 0 ) = 0

특정 평면을 표현할 때는 수학식 6을 다음의 수학식 7과 같이 표현하는 것이 일반적이다.When expressing a specific plane, it is common to express Equation 6 as Equation 7 below.

n * p + d = 0n * p + d = 0

단, 여기서 d = - n * p0 Where d =-n * p 0

수학식 7은 평면과 포인트의 상대적인 위치를 추적하는데 유용하게 사용될 수 있다.Equation 7 may be useful for tracking the relative position of the plane and the point.

n * p + d = 0 라면, p는 평면과 같은 면에 존재한다.If n * p + d = 0, p is on the same plane as the plane.

n * p + d > 0 라면, p는 평면의 앞쪽에 존재한다.If n * p + d> 0, p is in front of the plane.

n * p + d < 0 라면, p는 평면의 뒤쪽에 존재한다.If n * p + d <0, p is behind the plane.

또한 평면은 세 개의 포인트를 이용해 두 개의 벡터를 구성하고, 그 두 벡터의 외적을 얻어서 평면의 법선 벡터를 계산한다.In addition, the plane consists of two vectors using three points, and calculates the normal vector of the plane by obtaining the cross product of the two vectors.

한편 시뮬레이터의 구조에 대해 상세히 설명하면 다음과 같다.Meanwhile, the structure of the simulator will be described in detail as follows.

먼저 앞에서 설명한 기본 지식을 바탕으로 가상 장비 시뮬레이터 설계를 수행했다. Primitive object (ball, box, cylinder, polygon, frustum, cone)와 mesh 모델을 모델링 할 수 있게 프로그램을 설계해서 간편하게 모델링을 할 수 있도록 하였다. Mesh 모델은 STL(Stereo Lithography) 형식의 파일을 지원하기 때문에 본 프로그램에서 primitive 모델만으로 할 수 없는 복잡한 형상의 객체(object)도 모델링 할 수 있다.First, the virtual machine simulator design was done based on the basic knowledge described earlier. We designed the program to model primitive objects (balls, boxes, cylinders, polygons, frustums, cones) and mesh models for easy modeling. Mesh model supports files in STL (Stereo Lithography) format, so it is possible to model complex shaped objects that cannot be done only with primitive model in this program.

그래서 뷰 클래스(VIEW class) 처리부(100)는 화면에 보이는 그래픽스 창의 전반을 관할하는 부분으로서, 초기 모델링 단계인 모델링부(Model List)(110), 통신프로그램과 연결 부분인 네트워크 연결부(NetworkDlg)(120), 모델링 완성 후 액츄에이터(actuator)를 장착하여 미리 설정한 키(Key)로 정상 작동을 확인할 수 있는 키보드 테스트부(Simple Test)(130), 그리고 통신 프로그램과 연결한 후 외부 명령에 따른 작동 상황을 보여주는 시뮬레이션부(Simulation View)(140) 등 총 4개의 파트로 구성되어져 있다.Thus, the view class processing unit 100 is a part of the overall graphics window that is visible on the screen, the modeling unit (Model List) 110 which is an initial modeling stage, a network connection unit (NetworkDlg) (which is connected to a communication program) ( 120), after the modeling is completed, the actuator (actuator) is mounted, the keyboard test unit (Simple Test 130) to check the normal operation with a predetermined key (Key) (130), and the operation according to the external command after connecting to the communication program Consists of a total of four parts, such as a simulation view (140) showing the situation.

모델링부(ModelList)(110)는 모델을 생성하고 삭제하는 등의 모델링 전반에 대한 코드가 구현되어 있다. Primitive object는 각각의 형상에 고유 식별 번호를 부여해서 프로그램 내부에서는 그 식별 번호에 따라 생성 또는 삭제가 이루어진다. 모델 생성시에는 모델의 형상 정보, ID number, 위치 정보, geometry 정보, 이름, 색상, 그리고 투명도 값을 지정한다. 따라서 모델 생성 단계에서 object가 갖는 위치 정보 및 색상 정보 등을 설정하므로 보다 빠른 시간 안에 모델링이 가능하도록 했다.The modeling unit 110 implements code for overall modeling such as creating and deleting a model. Primitive objects are assigned a unique identification number to each shape and created or deleted in the program according to the identification number. When creating a model, the model's shape information, ID number, location information, geometry information, name, color, and transparency values are specified. Therefore, by setting the location information and the color information of the object in the model generation step, modeling can be made faster.

모델을 추가할 경우 Primitive object 외에 외부 프로그램에서 모델링 한 object를 사용할 수 있는 데, import 형식은 STL을 사용한다. 이 포맷을 형상의 외부 꼭지점 정보와 법선 벡터만을 포함하므로 용량이 작다는 장점이 있다.If you add a model, you can use objects modeled by external programs in addition to primitive objects. The import type uses STL. The format includes only the outer vertex information of the shape and the normal vector, so the capacity is small.

모델을 삭제할 때는 그룹화가 되어 있는지 확인한 후 그룹을 삭제하고 모델 을 지운다. 만약 모델에 링크 관계나 actuator가 장착되어 있다면 프로그램 내부적으로 링크 삭제, actuator 삭제를 시행한 후 모델을 삭제한다. 사용자는 모델만 삭제하면 내부 구성요소 즉 링크관계, actuator 그리고 sensor는 자동으로 삭제가 되도록 설계했다.When deleting a model, make sure that it is grouped, then delete the group and delete the model. If the model is equipped with a link relationship or an actuator, delete the model after deleting the link or actuator in the program. When the user deletes only the model, the internal components such as link relationship, actuator and sensor are automatically deleted.

Actuator는 link 관계가 설정된 후에 장착을 할 수 있는데 이는 움직이는 부분의 기준을 명확하게 나타내 준다. Actuator 장착 시 작동 방향 및 속도를 설정할 수 있도록 설계했다.The actuator can be mounted after the link relationship is established, which clearly indicates the reference of the moving part. It is designed to set the direction and speed of operation when actuator is installed.

Sensor는 움직이는 object가 좀 더 정확히 움직일 수 있도록 도와준다. 위치 정보 등을 감지하여 사용자에게 알려주어 세밀한 제어가 가능하다.Sensors help move objects move more accurately. By detecting location information and notifying the user, fine control is possible.

모델이 추가됨에 따라 모델 구성 요소를 화면 좌측에 tree로 표현을 해서 사용자가 쉽게 알아 볼 수 있도록 했다. 또한 drag & drop 기능을 이용해서 tree 상에서 link 관계를 설정할 수 있도록 해 모델링이 수월하도록 설계했다.As the model was added, the model components were represented as a tree on the left side of the screen so that the user could easily recognize them. It is also designed to facilitate modeling by enabling the link relationship in the tree using drag & drop.

네크워크 연결부(NetworkDlg)(120)는 외부 통신 프로그램과 연결하는 부분으로 이 부분을 통해 제어 명령이 들어온다.Network connection unit (NetworkDlg) (120) is a part for connecting with an external communication program through the control command comes through this part.

키보드 테스트부(SimpleTest)(130)는 모델링 과정 중에 actuator를 장착하게 되면 키보드로 조작할 수 있도록 단축키를 설정하는데, 설정한 단축키를 사용해서 모델의 작동 여부를 미리 확인할 수 있게 된다. 모델에는 actuator와 센서를 장착하게 되는데 keyboard test 과정 중에 프로그램의 좌측에 actuator와 센서에 대한 정보가 나타나게 된다. 사용자는 이를 확인하여 충돌 또는 간섭여부를 수치적으로 확인할 수 있다.When the actuator is mounted during the modeling process, the keyboard test unit (SimpleTest) 130 sets a shortcut key so that the keyboard can be operated by using the keyboard. The model is equipped with an actuator and a sensor. During the keyboard test, information about the actuator and sensor is displayed on the left side of the program. The user can numerically check for collision or interference by checking this.

시뮬레이션부(SimulationView)(140)에서의 기본적인 동작은 키보드 테스트부(SimpleTest)(130)와 같다. 다른 점은 motion 제어를 키보드 상에서 하지 않고 외부 프로그램에서 명령을 입력함으로써 제어한다는 점이다. 가상 장비의 제어 소프트웨어를 사용하기 위해서는 가장 중요한 부분으로 입력된 명령을 화면에 나타내서 실제 기계와 같은 움직임을 표현한다.Basic operations of the simulation unit 140 are the same as the keyboard test unit 130. The difference is that motion control is done by entering commands in an external program rather than on the keyboard. In order to use the control software of the virtual machine, the most important part is to display the input command on the screen to express the movement like a real machine.

모델 클래스(Model Class) 처리부(200)는 Object를 생성하거나 삭제하고 생성된 object에 actuator 또는 sensor를 장착하는 명령을 주관한다. 또한 구동되는 부분이 있으면 구동 부를 정상 작동을 할 수 있도록 해준다. 화면에서 마우스를 이용해서 object를 선택할 경우 무한 직선과의 충돌을 체크하는 방식으로 픽킹(picking)이 이루어진다. 따라서 객체 간 충돌 또는 간섭 체크도 이 부분에서 구현이 된다.The model class processor 200 manages a command for generating or deleting an object and mounting an actuator or a sensor to the generated object. The presence of the driven part also allows the drive to operate normally. When the object is selected using the mouse on the screen, picking is performed by checking collision with an infinite straight line. Therefore, collision or interference checking between objects is also implemented here.

이러한 모델 클래스 처리부(200)는, 액츄에이터 처리부(Actuator)(210), 객체 관리부(Model Object)(220), 도형 생성부(Model Part)(230), 센서 처리부(Sensor)(240)로 구현할 수 있다.The model class processor 200 may be implemented by an actuator processor 210, an object manager 220, a figure part 230, and a sensor 240. have.

액츄에이터 처리부(Actuator)(210)는 Actuator의 구성 성분 또는 작동에 관해 구현한다. 장착 시에는 구동 축과 구동 속도를 입력 받을 수 있다. 내부적인 변환에는 D3DXVECTOR4가 사용되며 작동 범위를 설정할 때는 D3DXVECTOR3을 사용한다. 입력된 값에 의한 변환행렬은 내부 프레임을 움직이는 형식으로 Frame Move 함수를 이용한다. 이 함수는 rotation과 translation으로 나뉘어져 있다. 또한 Simple test mode와 Simulation mode를 구별해서 구현되었다. Simple test mode에서 스카 라 기구물에 대해서는 지정된 위치로 hand 부분을 움직일 수 있게 설계했다. 시뮬레이션 mode에서는 속도, 가속도, 감속도 등을 계산하여 구동이 완료되면 회전, 이동 결과 행렬을 계산한다.Actuator 210 implements the components or operation of the actuator. When installed, the drive shaft and drive speed can be input. D3DXVECTOR4 is used for internal conversion and D3DXVECTOR3 is used to set the operating range. The conversion matrix by the input value uses the Frame Move function to move the internal frame. This function is divided into rotation and translation. In addition, it is implemented by distinguishing between Simple test mode and Simulation mode. In the simple test mode, the scaffolding mechanism is designed to move the hand to the designated position. In simulation mode, speed, acceleration, deceleration, etc. are calculated, and when the drive is completed, the rotation and movement result matrix is calculated.

객체 관리부(Model Object)(220)는 Object를 생성하는 함수를 관장하는 부분이다. 먼저 index buffer와 vertex buffer를 이용해서 STL import를 설계해서 보다 다양한 모델을 사용할 수 있도록 구현했다. STL은 정교한 모델링이 가능하기 때문에 프로그램에 무리가 없게 하기 위해 62535개의 mesh를 사용할 수 있도록 설계를 했다. STL 정보는 처음에는 text mode로 불러오고 text mode가 실패하면 binary mode로 읽어 온다.The object manager 220 is a part that manages a function for generating an object. First, we designed STL import using index buffer and vertex buffer to implement various models. STL is designed to be able to use 62535 meshes so that the modeling can be sophisticated. The STL information is initially loaded in text mode and, if text mode fails, in binary mode.

Primitive 모델은 각 형상마다 필요한 구성성분을 변수화 해서 함수를 구현했고 변수화 내용은 도 7과 같다. 도 7은 본 발명에서 사용하는 프리미티브(Primitive) 함수명과 변수의 예를 보인 표이다.The primitive model implements a function by variableizing components required for each shape, and the content of the parameterization is shown in FIG. 7. 7 is a table showing examples of primitive function names and variables used in the present invention.

또한 Render Alpha 함수를 이용해서 선택된 object의 투명도를 조절한다. 이 함수는 유리 및 투명 아크릴 재질 등 투명한 속성을 갖고 있는 물체를 모델링 하는데 사용된다.You can also adjust the transparency of the selected object using the Render Alpha function. This function is used to model objects with transparent properties, such as glass and transparent acrylic materials.

또한 Object를 포함하는 bounding box를 생성해서 충돌 및 간섭 체크를 구현한다. 초기 모델링 시에 접촉 또는 충돌이 있는 모델은 시뮬레이션 상에서는 충돌 체크가 되지 않는다.We also implement a collision and interference check by creating a bounding box containing the Object. At initial modeling, models with contact or collision are not checked for collision in the simulation.

도형 생성부(ModelPart)(230)는 객체 관리부(Model Object)(220)에서 설정해 놓은 도형의 형식에 맞춰서 도형을 생성한다. mesh 모델도 이 부분에서 불러온다. 생성된 모델간 링크 관계를 생성하거나 삭제를 할 수 있으며, actuator나 sensor를 장착 또는 삭제하는 함수들이 구현되어 있다. 구동부는 Frame Move 함수를 이용해서 구동하며 child부는 if문을 통해 동시에 작동하도록 구현했다.The figure generator 230 generates a figure in accordance with the shape of the figure set by the model object 220. The mesh model is also imported in this section. You can create or delete the link relationship between the created models and implement functions to install or delete actuators or sensors. The driving part is driven by using the Frame Move function, and the child part is implemented to operate simultaneously through the if statement.

구동 후에는 render 함수를 사용해서 모델, 센서, Actuator를 구분해서 render를 실행한다.After running, the render function is used to separate models, sensors, and actuators to execute the render.

시뮬레이션 상에서 실시간으로 object를 선택해서 child로 추가 및 제거 하는 기능이 이 부분에서 구현된다. 본 발명에서는 웨이퍼의 흐름을 제어하는데 이 기능이 사용되어 현실감 있는 시뮬레이션을 가능하게 했다.In this part, the ability to select objects in real time and add and remove them as children in the simulation is implemented. In the present invention, this function is used to control the flow of the wafer to enable realistic simulation.

충돌 체크 관련 함수들도 이 부분에서 구현이 되는데 무한 직선과의 충돌을 이용해서 picking 관련 기능이 구현되고 모델 간의 출동과, 센서와의 충돌이 구현된다. 여기서 충돌의 기준은 도형이 갖고 있는 bounding box가 기준이 된다. 이 곳에서 충돌을 무시하는 경우에 대해 세부적으로 설계를 하는데 모델링 단계에서 충돌하고 있는 물체는 충돌 무시 리스트에 추가를 해서 충돌이 감지되지 않도록 한다.Collision check functions are also implemented here. Picking-related functions are implemented using collisions with infinite straight lines, dispatch between models, and collisions with sensors. The criterion for collision is based on the bounding box of the figure. In this case, we design details of the case of ignoring collisions. In the modeling stage, objects colliding are added to the collision ignore list so that collisions are not detected.

Translation과 Rotation의 경우 child가 있는 경우와 없는 경우를 구별해서 각각의 함수로 구현했다. Child가 있는 경우에는 부모의 이동에 따라 child의 상대 좌표를 다시 구하지만 그렇지 않은 경우에는 즉 child만 이동한 경우에는 독립적으로 좌표를 구한다. 완료된 후에는 setpose 함수를 통해 새로운 위치를 계산한다.In case of Translation and Rotation, each function is implemented to distinguish between the case of child and the case of no child. If there is a child, the relative coordinates of the child are obtained again according to the movement of the parent. Otherwise, if only the child is moved, the coordinates are independently obtained. After that is done, setpose calculates the new position.

선택된 두 object의 최단거리를 구하는 기능은 두 가지 옵션이 있다. 두 object 사이의 최단 거리를 구하는 기능과 각 축 별 최단거리를 구하는 기능이 있 다. 거리를 측정하는 기준은 물체의 외형을 둘러싸고 있는 bounding box간의 최단거리를 측정한다.There are two options for finding the shortest distance between two selected objects. There is a function to find the shortest distance between two objects and to find the shortest distance for each axis. The criterion for measuring distance is to measure the shortest distance between bounding boxes surrounding an object's appearance.

센서 처리부(Sensor)(240)는 충돌을 미리 감지하거나 object의 위치 등을 추적할 때 유용하다.The sensor 240 is useful when detecting a collision in advance or tracking the position of an object.

Laser 는 object가 초기 상태에서 움직이지 않을 때는 false를 나타내고 움직이기 시작하면 true를 나타낸다.Laser indicates false when the object is not moving in the initial state and true when it starts moving.

Contact 은 object와 센서와의 간섭 여부를 측정한다. 진행 방향이나 중심의 앞뒤를 구별하지 않고 물체의 표면과 충돌하고 있으면 true를 나타낸다. 두 물체의 bounding box의 충돌과는 별개로 물체 표면과 센서 표면과의 충돌을 체크한다.Contact measures the interference between the object and the sensor. True if the object is colliding with the surface of the object without distinguishing the direction of travel or the center. The collision between the object surface and the sensor surface is checked separately from the collision of the bounding boxes of the two objects.

Calc.dist 는 설정한 축에 대해서 물체의 표면과 센서의 중심과의 거리를 측정한다. 센서의 진행 방향을 기준으로 중심 위치를 지나게 되면 무한대를 표시하게 된다. 또한 진행 방향으로 측정할 물체가 없으면 무한대를 표시한다.Calc.dist measures the distance between the surface of the object and the center of the sensor with respect to the axis you set. If you go through the center position based on the direction of the sensor will display infinity. It also displays infinity if there is no object to measure in the direction of travel.

Calc.position 은 global 좌표의 중심점을 기준으로 센서의 중심 사이의 상대 거리를 측정한다Calc.position measures the relative distance between the centers of the sensors with respect to the center point of the global coordinates.

그리고 기타 클래스(class)로는 대화창 클래스(Dialog class)(300)가 있다.The other class is a dialog class 300.

대화창 클래스(Dialog class)(300)는 프로그램 내에서 사용자가 직접 입력해 주어야 하는 값들에 대한 대화 창을 관할한다. 주된 프로그램의 구성이 사용자가 직접 입력을 받을 수 있도록 설계되어 있기 때문에 다양한 설정이 가능하다. 모델을 생성하거나 actuator를 장착하고 센서를 장착하는 등의 대화 창을 생성한다. 예를 들어 회전 행렬에 대한 설정은 다음과 같다. 회전각은 radian과 degree로 설정 할 수 있고 회전 순서를 XYZ, ZYX, XYX 등 세 가지로 선택할 수 있다.The dialog class 300 manages a dialog window for values that a user must input directly in a program. Since the main program configuration is designed to receive input directly, various settings are possible. Create dialogs, such as creating a model, mounting actuators, and mounting sensors. For example, the setting for the rotation matrix is as follows. The rotation angle can be set to radian and degree, and the rotation order can be selected in three ways: XYZ, ZYX, and XYX.

한편 본 발명에 의해 구현한 프로그램 운용의 목적은 제어 소프트웨어의 신뢰성 검증이기 때문에 실제 장비와 같은 구동이 가능하여야 하며 충돌 및 간섭 체크가 이루어져야 한다. 프로그램을 운용하는 방법에는 세 가지가 있다. 첫째로 모델링을 주관하는 모델 list와 키보드 입력을 통해 간단히 시뮬레이션 할 수 있는 keyboard test, 마지막으로 구동 요청 프로그램인 3D client와 연결을 할 수 있는 simulation으로 구성된다.On the other hand, since the purpose of the program operation implemented by the present invention is to verify the reliability of the control software, it must be possible to operate like an actual device and a collision and interference check should be made. There are three ways to run the program. First, it consists of a model list that manages modeling, a keyboard test that can be easily simulated through keyboard input, and a simulation that can be connected to a 3D client, a driving request program.

도 8은 본 발명의 일 실시예에 의한 3D 영상처리를 통한 가상장비의 시뮬레이션 방법을 보인 흐름도이다.8 is a flowchart illustrating a simulation method of a virtual device through 3D image processing according to an embodiment of the present invention.

- 모델링(Model list)(ST1)Model list (ST1)

먼저 모델링에서는 프로그램 운용에서 중요한 부분인 모델링을 담당한다.First, modeling is in charge of modeling, which is an important part of program operation.

도 9는 도 8에서 모델링 단계의 상세흐름도이다.FIG. 9 is a detailed flowchart of a modeling step in FIG. 8.

또한 프로그램을 구동하면 도 10과 같이 시작된다.In addition, when the program is driven, it starts as shown in FIG.

도 10은 도 8의 적용시 프로그램 초기화면의 예를 보인 도면이다.FIG. 10 is a diagram illustrating an example of a program initial screen upon application of FIG. 8.

모델링은 세 가지 방법으로 할 수 있다.Modeling can be done in three ways.

즉, 모델 추가(ADD MODEL)(ST11), 임포트(IMPORT)(ST12), STL(STereo Lithography)불러오기(ST13) 이다.That is, ADD MODEL (ST11), IMPORT (ST12), and STL (Sereo Lithography) import (ST13).

모델 추가(ADD MODEL)(ST11)는 본 발명에서 제공하는 기본 도형으로 모델링을 하는 방법으로 ball, box, cylinder, frustum, cone, polygon을 모델링 할 수 있다. 또한 이 단계에서 모델 name, type, initial position, initial rotation, geometry, color등 을 설정할 수 있다. Mesh 모델은 STL 형식의 파일을 불러올 때 사용하며 INCLUDE MESH는 STL 파일을 포함하는 CNT파일을 불러온 때 사용한다.ADD MODEL (ST11) is a method for modeling with the basic figure provided by the present invention can model ball, box, cylinder, frustum, cone, polygon. You can also set the model name, type, initial position, initial rotation, geometry and color at this stage. Mesh model is used to import STL file and INCLUDE MESH is used to import CNT file containing STL file.

도 11은 도 9에서 모델 추가 단계의 수행시 설정창의 예를 보인 도면이다.FIG. 11 is a diagram illustrating an example of a setting window when the model adding step is performed in FIG. 9.

임포트(IMPORT)(ST12)는 이미 모델링 해서 CNT format으로 저장해 놓은 파일을 다시 불러들이는 방법이다. 처음 모델링 할 때 이미 위치나 회전, 색상 정보 등을 입력한 후이기 때문에 ADD 모델에서와 같은 설정 창은 나타나지 않고 일반적인 file open창이 나타난다.IMPORT (ST12) is a method of reloading files that have been modeled and saved in CNT format. When modeling for the first time, after inputting position, rotation, color information, etc., the setting window like the ADD model does not appear, and the general file open window appears.

STL(STereo Lithography) 불러오기(ST13)에 의해 외부 프로그램에서 모델링 한 파일을 불러올 수 있다. 상용 CAD 프로그램인 CATIA나 SOLID EDGE와 같은 프로그램에서 정교한 모델링을 한 후에 이 파일을 STL format으로 저장한 후 primitive 모델링과 같은 순서대로 색상 정보, link정보, actuator정보 등을 설정해 주면 도 12와 같은 복잡한 형상도 모델링 할 수 있다.You can import files modeled by external programs using STL (Sereo Lithography) Import (ST13). After sophisticated modeling in a commercial CAD program such as CATIA or SOLID EDGE, save this file in STL format and set the color information, link information, and actuator information in the same order as primitive modeling. Can also be modeled.

도 12는 도 9에서 STL 불러오기 단계의 수행시 웨이퍼 변환(Wafer Transfer)의 예를 보인 개념도이다.FIG. 12 is a conceptual diagram illustrating an example of a wafer transfer when the STL import step is performed in FIG. 9.

STL은 모든 면을 삼각형으로 분할하여 면의 법선 벡터와 3개의 꼭지점의 좌표를 저장한 것으로써, SolidWorks, AutoCAD, Pro/Engineer, CATIA 등의 소프트웨어에서 STL Translator를 지원하고 있다. 또한 IGES, VDAFS, STEP, PDES 등의 CAD 교환 데이터를 STL 파일로 변환시키는 소프트웨어들이 개발되고 있다. STL format은 형상의 외형 정보만 포함하고 있기 때문에 용량이 작아서 다루기가 용이하다. 정보가 간단하기 때문에 다른 프로그램과 호환하는데 주로 사용되는 형식이다.STL divides all faces into triangles, storing the normals of the faces and the coordinates of the three vertices. STL Translator is supported by software such as SolidWorks, AutoCAD, Pro / Engineer, and CATIA. Software is also being developed to convert CAD interchange data such as IGES, VDAFS, STEP, and PDES into STL files. Since the STL format only contains the shape information, it is easy to handle due to its small capacity. Because of the simplicity of the information, this format is often used for compatibility with other programs.

도 13은 도 9에서 STL 불러오기 단계의 수행시 STL 포맷 정보의 예를 보인 개념도이다. 그래서 포함되는 외형 정보는 도 13과 같이 3개의 vertex 정보와 세 vertex가 이루는 면의 법선 벡터로 이루어져 있다.FIG. 13 is a conceptual diagram illustrating an example of STL format information when the STL import step is performed in FIG. 9. Thus, the outline information included is composed of three vertex information and a normal vector of a plane formed by three vertices as shown in FIG. 13.

그리고 링크 설정(LINK)(ST14)은 모델들 간에 종속 관계를 정의하기 위해 link 연결을 수행하는 것이다. 이는 actuator를 장착 할 때 움직이는 부분을 설정하기 위함이다. Link 연결에서 parent object는 움직임의 기준이 되고, child object는 움직이는 부분이 된다.Link establishment (LINK) (ST14) is to perform a link link to define the dependency relationship between the models. This is to set the moving part when mounting the actuator. In a Link connection, the parent object is the base of the movement, and the child object is the moving part.

하나의 parent object는 여러 개의 child object를 가질 수 있지만, 하나의 child object가 여러 개의 parent object를 가질 수는 없다.A parent object can have multiple child objects, but a child object can't have multiple parent objects.

본 발명에서는 두 가지 방법으로 링크 관계를 설정할 수 있다.In the present invention, the link relationship can be established in two ways.

첫째, 모델링 button 이용First, use modeling button

프로그램 좌측에 있는 Link 모델 버튼을 누르고 link를 설정하는 방법으로 pop-up tree view에서 parent와 child를 클릭해서 설정한다.Click the Link model button on the left side of the program and set the link by clicking parent and child in the pop-up tree view.

도 14는 도 9에서 링크 설정 단계의 수행시 설정창의 예를 보인 도면이다. 그래서 설정창은 도 14와 같다.FIG. 14 is a diagram illustrating an example of a setting window when performing a link setting step in FIG. 9. Thus, the setting window is as shown in FIG.

둘째, Tree view에서 drag & drop 이용Second, using drag & drop in tree view

프로그램 좌측에 있는 tree view에서 child object를 클릭한 후 drag하고 parent object의 이름 위에 drop하여 link 관계를 설정한다. Child object 선택 후 drag하면 parent object로 선택될 이름이 활성화되어 쉽게 알아볼 수 있다.In the tree view on the left side of the program, click and drag the child object and drop it on the parent object's name to set the link relationship. If you drag after selecting the child object, the name to be selected as the parent object is activated and can be easily recognized.

도 15는 도 9에서 링크 설정 단계의 수행시 트리 뷰(Tree View)에서 드래그 앤드롭을 이용하는 예를 설명하기 위한 도면이다.FIG. 15 is a diagram for describing an example of using drag and drop in a tree view when performing a link setting step in FIG. 9.

액츄에이터(ACTUATOR) 설정(ST15)은 모델 사이에 link 설정이 완료된 후에 Actuator를 장착하는 것이다. Actuator는 세 가지가 있으며 translation과 rotation은 장착 방법이 일치하며 scara는 이와 유사하나 약간의 차이점이 있다. Scara는 scara1과 scara2를 선택하는데 scara1은 회전 축에 가까운 object이고 scara2는 hand 부분이다. Scara2에는 센서를 장착하여 정확한 위치에 hand가 위치하도록 한다.Actuator setting (ST15) is to mount the actuator after link setting is completed between models. There are three actuators, translation and rotation are the same as the mounting method, scara is similar but there are some differences. Scara selects scara1 and scara2, where scara1 is an object close to the axis of rotation and scara2 is the hand part. The Scara2 is equipped with a sensor so the hand is placed in the correct position.

도 16은 도 9에서 액츄에이터 설정 단계의 수행시 설정창의 예를 보인 도면이다. 그래서 액츄에이터의 장착 방법은 도 16과 같다. 도 16에서 Axis는 작동하는 축을 설정하는 부분이고, Anchor는 작동 기준점을 설정하는 부분이다.FIG. 16 is a diagram illustrating an example of a setting window when an actuator setting step is performed in FIG. 9. Thus, the mounting method of the actuator is shown in FIG. In FIG. 16, Axis is a part for setting an operating axis, and Anchor is a part for setting an operation reference point.

이와 같이 모델링(ST1)을 수행한 후 키보드 테스트(Keyboard Test)(ST2)를 수행한다.In this way, after performing modeling ST1, a keyboard test ST2 is performed.

즉, 모델링이 완료되면 구동 요청 프로그램과 연결하기 전에 각 구동부위가 정상적으로 작동을 하는지 알아보기 위해 keyboard test를 수행한다. Actuator를 장착할 때 이미 설정했던 키를 통해서 실시간 시뮬레이션을 해 볼 수 있으며, 이 단계에서 충돌체크가 가능하다. 실제 시뮬레이션을 위해서는 이 단계에서는 작동 여부를 테스트하고 외부 프로그램과 연동한 시뮬레이션은 시뮬레이션 mode에서 수행한다.That is, when modeling is completed, the keyboard test is performed to check whether each driving part operates normally before connecting to the driving request program. Real-time simulation can be performed using the keys already set when the actuator is mounted, and collision checking is possible at this stage. For the actual simulation, this step is tested for operation and the simulation with the external program is performed in the simulation mode.

시뮬레이션(Simulation)(ST13)은 Keyboard test 결과 구동 부위가 이상 없이 작동한다면 구동 요청 프로그램과 연결을 수행하는 것이다. 시뮬레이션 mode로 전 환하고 3D client프로그램을 구동하고 본 프로그램의 중앙 하단부에 있는 connect 버튼을 클릭한다. State view에 현재 시간과 함께 CONN STATE CHANGED[1->3]이란 정보가 표시되면 정상적으로 연결에 성공한 것이다. 3D client 프로그램으로 가서 통신 연결 상태를 보면 Pair connect가 표시된다. 프로그램 우측 상단에 있는 get version 버튼을 클릭하여 버전 정보를 읽어온 후에 Update 모델 info 버튼을 클릭하여 모델 정보를 수집한다. 3D client를 통해 구동 명령이 내려지면 본 프로그램에서 보여지는 object가 구동하는 것을 볼 수 있다.Simulation (ST13) is to connect with the driving request program if the driving part is working properly as a result of keyboard test. Switch to the simulation mode, run the 3D client program and click the connect button at the bottom center of the program. If the state view shows CONN STATE CHANGED [1-> 3] with the current time, the connection was successful. If you go to 3D client program and see the communication connection status, Pair connect is displayed. Click the get version button on the upper right of the program to read the version information, and then click the Update model info button to collect the model information. When the driving command is given through the 3D client, the object shown in this program can be seen running.

한편, 시제품 생산에 있어서 제품을 생산하기 전에 문제점을 미리 확인해 보려는 시도가 대두되고 있다. 시제품이 제작되기 전에 문제점을 확인하는 방법으로, 3D 모델을 생성하여 각종 부품의 간섭과 여유공간을 확인하는 Digital Mock-Up이 있으며, 최근 국내에서도 자동차 회사를 중심으로 활발히 도입되고 있다. 또 최근 RP(Rapid Prototyping) System에 대한 연구가 활발하게 진행되고 있고, 인터넷을 통한 Virtual Reality에서 입체적으로 시뮬레이션 해보려는 시도도 연구되고 있다.Meanwhile, in the production of prototypes, attempts have been made to identify problems in advance before producing products. As a way to check the problems before the prototype is produced, there is a digital mock-up that generates 3D models and checks the interference and free space of various parts. Recently, research on the rapid prototyping (RP) system has been actively conducted, and attempts to simulate three-dimensionally in Virtual Reality through the Internet are being studied.

본 발명은 개발된 장비 제어 소프트웨어의 작동 유무 및 신뢰성을 컴퓨터 상에서 가상 장비를 통해서 검증할 수 있는 3차원 영상처리 소프트웨어 구동 프로그램을 개발하는 것이다. 현재 장비제어 소프트웨어 개발팀은 1차 소프트웨어 개발을 완료했어도 실물장비의 개발이 완료될 때까지 소프트웨어 검증시험을 기다려야 하며, 실물장비를 통한 소프트웨어는 제어 소프트웨어의 오류로 인해 하드웨어에 손상을 줄 수도 있고, 다양한 단위 테스트 및 일련의 종합 시스템 테스트에 여러 가지 어려움이 발생할 수 있다. 또한 장비 제어 시뮬레이션뿐만 아니라 여러 기구 장 치의 효율적인 배치를 미리 시뮬레이션을 해 볼 수 있어서 많은 개발 비용의 절감을 기대 할 수 있다. 본 발명에서는 실물장비가 아직 출시되기 전 단계에서도 장비제어 소프트웨어의 개발이 가능할 수 있도록 하기 위해, 가상 장비를 이용한 장비 제어 소프트웨어의 신뢰성을 검증할 수 있는 가상장비 시뮬레이터를 아래와 같이 개발하였다.The present invention is to develop a three-dimensional image processing software driving program that can verify the operation and reliability of the developed equipment control software through a virtual device on a computer. Currently, the equipment control software development team has to wait for the software verification test until the development of the real equipment is completed even though the first software development is completed, and the software through the real equipment may damage the hardware due to the error of the control software, Difficulties can arise with unit testing and a series of comprehensive system tests. In addition to the simulation of machine control, the efficient placement of multiple instrument devices can be simulated in advance, which can lead to significant development cost savings. In the present invention, in order to enable the development of equipment control software even before the actual equipment is still released, a virtual equipment simulator for verifying the reliability of the equipment control software using virtual equipment was developed as follows.

첫째, Direct X를 활용하여 프로그램을 설계하였기 때문에 본 프로그램은 범용성을 갖도록 설계 하였다.First, since the program was designed using Direct X, this program was designed to have general purpose.

둘째, 3차원 CAD Data를 용이하게 이용하기 위하여 CATIA, Solid Edge 등에서 제공하고 있는 STL 포맷을 사용할 수 있도록 하였으며, 실제 장비 모델 데이터를 이용한 시뮬레이션을 통하여 검증하였다.Second, in order to use 3D CAD data easily, STL format provided by CATIA, Solid Edge, etc. can be used and verified through simulation using actual equipment model data.

셋째, 본 발명에서 개발된 3차원 영상처리 소프트웨어 시뮬레이션 프로그램은 범용성을 갖고 있으므로 다양한 장비를 컴퓨터상에 가상 장비로 모델링하고, 제어 소프트웨어를 통신 프로그램과 연동시켜 개발된 소프트웨어의 신뢰성 및 타당성 검토에 적용할 수 있다.Third, since the three-dimensional image processing software simulation program developed in the present invention has a general purpose, it is possible to model various devices as virtual devices on a computer, and apply the control software to the reliability and validity of the software developed by interworking with a communication program. Can be.

본 발명에 의해 구현한 프로그램의 기능을 정리하면 다음과 같다.The function of the program implemented by the present invention is summarized as follows.

- Primitive object 생성 및 삭제-Create and delete primitive objects

- Translation, Rotation actuator 장착-Translation, Rotation actuator installed

- 네 가지 기능의 sensor 장착-4 function sensor

- Drag & drop 기능-Drag & drop function

- Redo & undo 기능-Redo & undo function

- 외부 제어 프로그램과의 연동-Link with external control program

- 모델 삭제 시 내부 구성요소 자동 삭제-Automatic deletion of internal components when deleting a model

- Grouping 기능-Grouping function

- STL format 지원-STL format support

- 모델링 정보를 네트워크를 통해 제어 프로그램으로 전송-Send modeling information to control program via network

- 충돌 감지 기능Collision Detection

- Hide / Show 기능-Hide / Show function

- 투명 속성 지정 기능-Transparent property designation function

- 물체간 최단거리 및 각 축 별 최단거리 측정 기능-Measure the shortest distance between objects and the shortest distance for each axis

- 6개의 View mode 지원-6 view modes

- 실시간 링크 연결 지원-Real time link connection

본 발명에 의해 구현된 프로그램을 이용하여 장비 제어 소프트웨어 개발팀은 하드웨어의 개발 완료 유무와 상관없이 소프트웨어 검증시험을 수행할 수 있으며 다양한 변화에 대해 시뮬레이션 할 수 있다. 또한 실물장비를 통한 소프트웨어 제어를 보다 안정적으로 수행 할 수 있다.Using the program implemented by the present invention, the equipment control software development team can perform software verification tests with or without hardware development and can simulate various changes. In addition, software control through real equipment can be more stably performed.

이처럼 본 발명은 가상장비를 이용하여 장비 제어 소프트웨어의 신뢰성을 검증하여 실물장비가 출시되기 전 단계에서도 장비제어 소프트웨어의 개발이 가능하게 되는 것이다.As such, the present invention enables the development of equipment control software even before the actual equipment is released by verifying the reliability of the equipment control software using virtual equipment.

이상에서 본 발명의 바람직한 실시예에 한정하여 설명하였으나, 본 발명은 이에 한정되지 않고 다양한 변화와 변경 및 균등물을 사용할 수 있다. 따라서 본 발명은 상기 실시예를 적절히 변형하여 응용할 수 있고, 이러한 응용도 하기 특허청구범위에 기재된 기술적 사상을 바탕으로 하는 한 본 발명의 권리범위에 속하게 됨은 당연하다 할 것이다.Although the above has been described as being limited to the preferred embodiment of the present invention, the present invention is not limited thereto and various changes, modifications, and equivalents may be used. Therefore, the present invention can be applied by appropriately modifying the above embodiments, it will be obvious that such application also belongs to the scope of the present invention based on the technical idea described in the claims below.

도 1은 본 발명이 적용되는 3D 영상처리를 통한 가상장비의 시뮬레이션 시스템의 전체적인 예를 보인 개념도이다.1 is a conceptual diagram illustrating an overall example of a simulation system of a virtual device through 3D image processing to which the present invention is applied.

도 2는 본 발명의 일 실시예에 의한 3D 영상처리를 통한 가상장비의 시뮬레이션 시스템의 블록구성도이다.2 is a block diagram of a simulation system of a virtual device through 3D image processing according to an embodiment of the present invention.

도 3은 본 발명의 일 실시예에 의한 3D 영상처리를 통한 가상장비의 시뮬레이션 시스템에서 3D 영상 생성 및 가상 시뮬레이터의 개념을 보인 개념도이다.3 is a conceptual diagram illustrating a concept of a 3D image generation and a virtual simulator in a simulation system of a virtual device through 3D image processing according to an embodiment of the present invention.

도 4는 본 발명이 적용되는 기구운동엔진에서 지정할 수 있는 기구운동의 예를 보인 개념도이다.Figure 4 is a conceptual diagram showing an example of the mechanical motion that can be specified in the mechanical motion engine to which the present invention is applied.

도 5는 본 발명에서 가상장비 시뮬레이터의 작동 원 및 사례 화면을 보인 개념도이다.5 is a conceptual diagram showing an operating circle and a case screen of the virtual machine simulator in the present invention.

도 6은 본 발명의 적용시 Z축으로 30도 반 시계 방향 회전의 예를 보인 개념도이다.6 is a conceptual diagram showing an example of a 30 degree counterclockwise rotation in the Z axis when applying the present invention.

도 7은 본 발명에서 사용하는 프리미티브(Primitive) 함수명과 변수의 예를 보인 표이다.7 is a table showing examples of primitive function names and variables used in the present invention.

도 8은 본 발명의 일 실시예에 의한 3D 영상처리를 통한 가상장비의 시뮬레이션 방법을 보인 흐름도이다.8 is a flowchart illustrating a simulation method of a virtual device through 3D image processing according to an embodiment of the present invention.

도 9는 도 8에서 모델링 단계의 상세흐름도이다.FIG. 9 is a detailed flowchart of a modeling step in FIG. 8.

도 10은 도 8의 적용시 프로그램 초기화면의 예를 보인 도면이다.FIG. 10 is a diagram illustrating an example of a program initial screen upon application of FIG. 8.

도 11은 도 9에서 모델 추가 단계의 수행시 설정창의 예를 보인 도면이다.FIG. 11 is a diagram illustrating an example of a setting window when the model adding step is performed in FIG. 9.

도 12는 도 9에서 STL 불러오기 단계의 수행시 웨이퍼 변환(Wafer Transfer)의 예를 보인 개념도이다.FIG. 12 is a conceptual diagram illustrating an example of a wafer transfer when the STL import step is performed in FIG. 9.

도 13은 도 9에서 STL 불러오기 단계의 수행시 STL 포맷 정보의 예를 보인 개념도이다.FIG. 13 is a conceptual diagram illustrating an example of STL format information when the STL import step is performed in FIG. 9.

도 14는 도 9에서 링크 설정 단계의 수행시 설정창의 예를 보인 도면이다.FIG. 14 is a diagram illustrating an example of a setting window when performing a link setting step in FIG. 9.

도 15는 도 9에서 링크 설정 단계의 수행시 트리 뷰(Tree View)에서 드래그앤드롭을 이용하는 예를 설명하기 위한 도면이다.FIG. 15 is a diagram for describing an example of using drag and drop in a tree view when performing a link setting step in FIG. 9.

도 16은 도 9에서 액츄에이터 설정 단계의 수행시 설정창의 예를 보인 도면이다.FIG. 16 is a diagram illustrating an example of a setting window when an actuator setting step is performed in FIG. 9.

* 도면의 주요 부분에 대한 부호의 설명 *Explanation of symbols on the main parts of the drawings

100 : 뷰 클래스(View Class) 처리부100: view class processing unit

110 : 모델링부(Model List)110: Model List

120 : 네트워크 연결부(NetworkDlg)120: network connection unit (NetworkDlg)

130 : 키보드 테스트부(Simple Test)130: keyboard test unit (Simple Test)

140 : 시뮬레이션부(Simulation View) 140: simulation view

200 : 모델 클래스(Model Class) 처리부200: model class processing unit

210 : 액츄에이터 처리부(Actuator)210: Actuator processing unit

220 : 객체 관리부(Model Object)220: object management unit (Model Object)

230 : 도형 생성부(Model Part)230: Shape generation unit (Model Part)

240 : 센서 처리부(Sensor)240: sensor processing unit (Sensor)

300 : 대화창 클래스(Dialog Class) 처리부300: Dialog class processing unit

Claims (18)

화면에 보이는 그래픽스 창을 관리하는 뷰 클래스 처리부와;A view class processing unit which manages the graphics window displayed on the screen; 상기 뷰 클래스 처리부와 연결되고, 객체를 생성하거나 삭제하고, 생성된 객체에 액츄에이터 또는 센서를 장착하는 명령을 주관하고, 가상장비 시뮬레이터를 구동시키는 부분이 있으면 구동시키는 부분이 정상 작동하도록 처리하는 모델 클래스 처리부와;Model class connected to the view class processing unit, creates or deletes an object, manages an instruction to mount an actuator or a sensor on the generated object, and processes the driving unit to operate normally if there is a part driving the virtual machine simulator. A processing unit; 상기 모델 클래스 처리부와 연결되고, 사용자 직접 입력해주어야 하는 값들에 대한 대화창을 관할하는 대화창 클래스 처리부;A dialog class processing unit connected to the model class processing unit and managing a dialog window for values to be input by a user; 를 포함하여 구성된 것을 특징으로 하는 3D 영상처리를 통한 가상장비의 시뮬레이션 시스템.Simulation system of a virtual device through 3D image processing, characterized in that configured to include. 청구항 1에 있어서,The method according to claim 1, 상기 뷰 클래스 처리부는,The view class processing unit, 가상장비 시뮬레이션에 필요한 모델을 생성하고 삭제하는 모델링부와;A modeling unit which generates and deletes a model required for virtual machine simulation; 외부 통신 수단과 연결하여 제어 명령이 들어올 수 있도록 처리하는 네트워크 연결부와;A network connection unit connected to an external communication unit to process a control command; 단축키와 키보드를 이용하여 모델의 작동 여부를 미리 확인할 수 있도록 처리하는 키보드 테스트부와;A keyboard test unit configured to check whether the model operates in advance by using a shortcut key and a keyboard; 외부 통신 수단을 통해 입력된 제어명령에 의해 제어를 받아 입력된 명령을 화면에 나타내서 실제 기계와 같은 움직임을 표현하는 시뮬레이션부;A simulation unit which is controlled by a control command input through an external communication means and displays an input command on a screen and expresses a movement like a real machine; 를 포함하여 구성된 것을 특징으로 하는 3D 영상처리를 통한 가상장비의 시뮬레이션 시스템.Simulation system of a virtual device through 3D image processing, characterized in that configured to include. 청구항 2에 있어서,The method according to claim 2, 상기 모델링부는,The modeling unit, 모델 생성시에는 모델의 형상 정보, ID number, 위치 정보, geometry 정보, 이름, 색상, 투명도 값 중에서 하나 이상을 지정하여 생성하는 것을 특징으로 하는 3D 영상처리를 통한 가상장비의 시뮬레이션 시스템.When the model is generated, the simulation system of the virtual machine through 3D image processing, characterized in that the generation of at least one of the shape information, ID number, position information, geometry information, name, color, transparency values of the model. 청구항 2에 있어서,The method according to claim 2, 상기 모델링부는,The modeling unit, 모델 삭제시에는 그룹화가 되어 있는지 확인한 후 그룹을 삭제하고 모델을 지우고, 만약 모델에 링크 관계나 액츄에이터가 장착되어 있다면 링크 삭제 또는 액츄에이터 삭제를 실행한 후 모델을 삭제하는 것을 특징으로 하는 3D 영상처리를 통한 가상장비의 시뮬레이션 시스템.When deleting a model, check if it is grouped, delete the group, and delete the model.If the model is equipped with a link relationship or an actuator, the 3D image processing may be performed after deleting the link or deleting the actuator. Virtual machine simulation system. 청구항 1 내지 청구항 4 중 어느 하나의 항에 있어서,The method according to any one of claims 1 to 4, 상기 모델 클래스 처리부는,The model class processing unit, 액츄에이터의 구성 성분 또는 작동을 처리하는 액츄에이터 처리부와;An actuator processing unit for processing a component or an operation of the actuator; 객체를 생성하는 함수를 관장하는 객체 관리부와;An object manager that manages a function that creates an object; 상기 객체 관리부에서 설정해 놓은 도형의 형식에 맞춰 도형을 생성하는 도형 생성부와;A figure generating unit generating a figure according to a type of a figure set by the object manager; 상기 도형 생성부에 의해 생성된 도형의 충돌을 미리 감지하거나 객체의 위치를 추적하는 센서 처리부;A sensor processor for detecting a collision of a figure generated by the figure generating unit in advance or tracking a position of an object; 를 포함하여 구성된 것을 특징으로 하는 3D 영상처리를 통한 가상장비의 시뮬레이션 시스템.Simulation system of a virtual device through 3D image processing, characterized in that configured to include. 청구항 5에 있어서,The method according to claim 5, 상기 액츄에이터 처리부는,The actuator processing unit, 액츄에이터의 장착 시에는 구동 축과 구동 속도를 입력 받고, 액츄에이터의 내부적인 변환에는 D3DXVECTOR4를 사용하며, 액츄에이터의 작동 범위를 설정할 때는 D3DXVECTOR3을 사용하며, 입력된 값에 의한 변환행렬은 내부 프레임을 움직이는 형식으로 프레임 이동 함수를 이용하는 것을 특징으로 하는 3D 영상처리를 통한 가상장비의 시뮬레이션 시스템.When the actuator is mounted, the drive shaft and the drive speed are input, D3DXVECTOR4 is used for the internal conversion of the actuator, D3DXVECTOR3 is used for setting the actuator's operating range, and the conversion matrix based on the input value moves the internal frame. Simulation system of a virtual machine through 3D image processing, characterized in that using a frame shift function. 청구항 5에 있어서,The method according to claim 5, 상기 액츄에이터 처리부는,The actuator processing unit, 심플 테스트 모드와 시뮬레이션 모드로 구현되고, 상기 심플 테스트 모드에서 스카라 기구물에 대해서는 지정된 위치로 핸드 부분을 움직일 수 있도록 하며, 상기 시뮬레이션 모드에서는 속도, 가속도, 감속도를 포함하여 계산하여 액츄에이터의 구동이 완료되면 회전, 이동 결과 행렬을 계산하는 것을 특징으로 하는 3D 영상처리를 통한 가상장비의 시뮬레이션 시스템.Implemented in the simple test mode and the simulation mode, the hand part can be moved to the designated position with respect to the SCARA device in the simple test mode, and the simulation mode includes the speed, acceleration, and deceleration to complete the operation of the actuator. And a simulation system of the virtual machine through 3D image processing, characterized in that for calculating the resultant rotation and movement matrix. 청구항 5에 있어서,The method according to claim 5, 상기 객체 관리부는,The object management unit, 인덱스 버퍼와 버텍스 버퍼를 이용해서 STL 임포트를 설계할 수 있도록 하는 것을 특징으로 하는 3D 영상처리를 통한 가상장비의 시뮬레이션 시스템.Virtual machine simulation system using 3D image processing, characterized in that STL import can be designed using index buffer and vertex buffer. 청구항 5에 있어서,The method according to claim 5, 상기 도형 생성부는,The figure generating unit, 생성된 모델간 링크 관계를 생성하거나 삭제를 할 수 있으며 액츄에이터나 센서를 장착 또는 삭제하는 함수들이 구현되어 있는 것을 특징으로 하는 3D 영상처리를 통한 가상장비의 시뮬레이션 시스템.A simulation system of a virtual machine through 3D image processing, which can generate or delete a link relationship between generated models and implements functions of mounting or deleting an actuator or a sensor. 청구항 5에 있어서,The method according to claim 5, 상기 도형 생성부는,The figure generating unit, 충돌 체크 관련 함수들이 구현되고, 무한 직선과의 충돌을 이용해서 픽킹 관련 기능이 구현되고, 모델 간의 충돌과 센서와의 충돌이 처리되도록 하고, 모델링 수행에서 충돌하고 있는 물체는 충돌 무시 리스트에 추가해서 충돌이 감지되지 않도록 처리하는 것을 특징으로 하는 3D 영상처리를 통한 가상장비의 시뮬레이션 시스템.Collision check-related functions are implemented, picking-related functions are implemented using collisions with infinite straight lines, collisions between models and collisions with sensors are handled, and objects that are collided during modeling are added to the collision ignore list. Virtual system simulation system through the 3D image processing, characterized in that the collision is not detected. 청구항 5에 있어서,The method according to claim 5, 상기 센서 처리부는,The sensor processing unit, 초기 상태에서 객체가 움직이는지 여부를 표시하고, 객체와 센서와의 간섭 여부를 측정하며, 설정한 축에 대해 객체의 표면과 센서의 중심과의 거리를 측정하고, 글로벌 좌표의 중심점을 기준으로 센서의 중심 사이의 상대 거리를 측정하는 것을 포함하여 수행하는 것을 특징으로 하는 3D 영상처리를 통한 가상장비의 시뮬레이션 시스템.Indicates whether the object is moving in the initial state, measures whether the object interferes with the sensor, measures the distance between the object's surface and the sensor's center with respect to the axis you set, and measures the sensor based on the center of global coordinates. Simulation system of the virtual machine through the 3D image processing, characterized in that comprising the step of measuring the relative distance between the center of the. 가상장비 시뮬레이션에 필요한 모델링을 수행하는 제 1 단계와;A first step of performing modeling necessary for virtual machine simulation; 상기 제 1 단계 후 키보드 입력을 통해 간단히 시뮬레이션을 수행하도록 하는 제 2 단계와;A second step of performing a simulation simply through a keyboard input after the first step; 상기 제 2 단계 후 구동 요청 프로그램인 3D 클라이언트와의 연결을 수행하여 가상장비에 대한 시뮬레이션이 수행되도록 하는 제 3 단계;A third step of performing a connection to a 3D client which is a driving request program after the second step so that a simulation of a virtual device is performed; 를 포함하여 구성된 것을 특징으로 하는 3D 영상처리를 통한 가상장비의 시뮬레이션 방법.Simulation method of a virtual device through 3D image processing, characterized in that configured to include. 청구항 12에 있어서,The method according to claim 12, 상기 제 1 단계는,The first step is, 모델링 수행시, 모델을 추가하도록 하거나 또는 이미 모델링해서 CNT 포맷으로 저장해 놓을 파일을 다시 불러들이는 임포트를 수행하도록 하거나 또는 외부 프로그램에서 모델링한 STL 파일을 불러올 수 있도록 하여 모델링을 수행하도록 하는 제 11 단계와;The eleventh step of modeling by adding a model, importing a file that has already been modeled and saved in CNT format, or importing an STL file modeled by an external program. Wow; 상기 제 11 단계 후 액츄에이터를 장착할 때 움직이는 부분을 설정할 수 있도록 모델들 사이의 종속 관계를 정의하도록 하여 링크 연결이 수행되도록 하는 제 12 단계와;A twelfth step of allowing linkage to be performed by defining a dependency relationship between the models so as to set a moving part when mounting the actuator after the eleventh step; 상기 제 12 단계 후 액츄에이터를 장착하여 설정할 수 있도록 하는 제 13 단계;A thirteenth step to mount and set an actuator after the twelfth step; 를 포함하여 구성된 것을 특징으로 하는 3D 영상처리를 통한 가상장비의 시뮬레이션 방법.Simulation method of a virtual device through 3D image processing, characterized in that configured to include. 청구항 13에 있어서,The method according to claim 13, 상기 제 11 단계는,The eleventh step, 모델 추가에 의한 모델링 수행시 ball, box, cylinder, frustum, cone, polygon 중에서 하나 이상을 포함한 모델링을 수행하도록 하는 것을 특징으로 하는 3D 영상처리를 통한 가상장비의 시뮬레이션 방법.Simulation method of a virtual machine through 3D image processing, characterized in that when performing the modeling by adding the model including one or more of the ball, box, cylinder, frustum, cone, polygon. 청구항 13에 있어서,The method according to claim 13, 상기 제 11 단계는,The eleventh step, 모델 추가에 의한 모델링 수행시, 모델의 이름, 형태, 초기 위치, 초기 회전각, 기하학적 배열, 색상 중에서 하나 이상을 포함하여 설정하도록 하는 것을 특징으로 하는 3D 영상처리를 통한 가상장비의 시뮬레이션 방법.When performing modeling by adding a model, the simulation method of the virtual machine through the 3D image processing, characterized in that it is set to include one or more of the model name, shape, initial position, initial rotation angle, geometric arrangement, color. 청구항 13에 있어서,The method according to claim 13, 상기 제 11 단계는,The eleventh step, STL 파일을 불러올 때 색상 정보, 링크 정보, 액츄에이터 정보 중에서 하나 이상을 설정하여 STL 파일을 불러오도록 하는 것을 특징으로 하는 3D 영상처리를 통한 가상장비의 시뮬레이션 방법.When importing an STL file, at least one of color information, link information, and actuator information is set so that the STL file is loaded. 청구항 13 내지 청구항 16 중 어느 하나의 항에 있어서,The method according to any one of claims 13 to 16, 상기 제 12 단계는,The twelfth step, 모델링 버튼을 이용하여 링크 설정이 수행되도록 하는 것을 특징으로 하는 3D 영상처리를 통한 가상장비의 시뮬레이션 방법.Simulation method of a virtual machine through 3D image processing, characterized in that the link setting is performed using a modeling button. 청구항 13 내지 청구항 16 중 어느 하나의 항에 있어서,The method according to any one of claims 13 to 16, 상기 제 12 단계는,The twelfth step, 트리 뷰에서 드래그앤드롭을 이용하여 링크 설정이 수행되도록 하는 것을 특징으로 하는 3D 영상처리를 통한 가상장비의 시뮬레이션 방법.A simulation method of a virtual device through 3D image processing, characterized in that the link setting is performed using drag and drop in the tree view.
KR1020070083296A 2007-08-20 2007-08-20 System and method for simulation of developing nano imprint stage equipment KR100917747B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020070083296A KR100917747B1 (en) 2007-08-20 2007-08-20 System and method for simulation of developing nano imprint stage equipment

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020070083296A KR100917747B1 (en) 2007-08-20 2007-08-20 System and method for simulation of developing nano imprint stage equipment

Publications (2)

Publication Number Publication Date
KR20090019112A true KR20090019112A (en) 2009-02-25
KR100917747B1 KR100917747B1 (en) 2009-09-15

Family

ID=40686984

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020070083296A KR100917747B1 (en) 2007-08-20 2007-08-20 System and method for simulation of developing nano imprint stage equipment

Country Status (1)

Country Link
KR (1) KR100917747B1 (en)

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7286975B2 (en) * 2002-10-24 2007-10-23 Visteon Global Technologies, Inc. Method for developing embedded code for system simulations and for use in a HMI
EP1672549A1 (en) * 2004-12-20 2006-06-21 Dassault Systèmes Product edition and simulation database system with user interaction graphical tool

Also Published As

Publication number Publication date
KR100917747B1 (en) 2009-09-15

Similar Documents

Publication Publication Date Title
US8543611B1 (en) Managing dynamic state of a physical system
Seth et al. SHARP: a system for haptic assembly and realistic prototyping
US9594856B2 (en) System and method to embed behavior in a CAD-based physical simulation
Howard et al. Desktop haptic virtual assembly using physically based modelling
US20060279575A1 (en) Systems and methods for generating 3d simulations
US9953108B2 (en) Method and system for dynamically manipulating an assembly of objects in a three-dimensional scene of a system of computer-aided design
Ng et al. GARDE: a gesture-based augmented reality design evaluation system
Dai et al. Virtual prototyping: An approach using VR-techniques
KR102023782B1 (en) Computer-implemented method for defining initial conditions for dynamic simulation of an assembly of objects in a three-dimensional scene of a system of computer-aided design
Liu et al. Virtual assembly with physical information: a review
Seth et al. Development of a dual-handed haptic assembly system: SHARP
Bordegoni et al. Data exchange and multi-layered architecture for a collaborative design process in virtual environments
Waurich et al. Interactive FMU-Based Visualization for an Early Design Experience.
US8380467B1 (en) Representing geometry of a system in a modeling environment
US7974820B1 (en) System and method for synchronizing and using a three dimensional view with a block diagram model
KR100917747B1 (en) System and method for simulation of developing nano imprint stage equipment
Horváth et al. A use case of the simulation-based approach to mobile robot algorithm development
Snyder ObjectSim-A Reusable Object Oriented DIS Visual Simulation
US8738784B1 (en) Managing dynamic state of a physical system
US8674983B1 (en) System and method for synchronizing and using a three dimensional view with a block diagram model
Sung et al. Creating Effects with Particle Systems
Adak Developing a 3D finite element software with an object-oriented approach
Gao et al. A survey of the virtual rebuilding of manufacturing process based on virtual and reality technologies
Scarano et al. Environment based on Augmented Reality and interactive simulation for product design review
Chipperfield et al. Virtual Reality Interactive Design Utilizing Meshless Stress Re-Analysis

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20120910

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20130827

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20140818

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20150603

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20160705

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20170710

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20180627

Year of fee payment: 10