KR101534496B1 - Method for extracting kinetic model from 3d geometric model - Google Patents

Method for extracting kinetic model from 3d geometric model Download PDF

Info

Publication number
KR101534496B1
KR101534496B1 KR1020150033369A KR20150033369A KR101534496B1 KR 101534496 B1 KR101534496 B1 KR 101534496B1 KR 1020150033369 A KR1020150033369 A KR 1020150033369A KR 20150033369 A KR20150033369 A KR 20150033369A KR 101534496 B1 KR101534496 B1 KR 101534496B1
Authority
KR
South Korea
Prior art keywords
obb
contact
model
parts
collision
Prior art date
Application number
KR1020150033369A
Other languages
Korean (ko)
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 KR1020150033369A priority Critical patent/KR101534496B1/en
Application granted granted Critical
Publication of KR101534496B1 publication Critical patent/KR101534496B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects

Landscapes

  • Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Computer Graphics (AREA)
  • Geometry (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Processing Or Creating Images (AREA)

Abstract

The present invention relates to a method for extracting a movement model from a 3D geometric model, which comprises: a first step of dividing a 3D assembly model into a plurality of parts in order to search a contact surface between first and second parts contacted to each other among the parts; a second step of distinguishing whether the first and second parts contacted to each other among the parts are a cylinder type contact or not; a third step of generating a central axis of a cylinder in case of the cylinder type contact; a fourth step of determining whether the first and second parts are a prismatic joint or a revolute joint by using the central axis, wherein in the fourth step, the first and second parts are determined as the revolute joint if the collision of the first and second parts is generated in the two directions by moving the first and second parts along the central axis, and the first and second parts are determined as the prismatic joint if the collision is generated only in one direction or not generated.

Description

3차원 기하 모델에서 운동 모델 추출방법{METHOD FOR EXTRACTING KINETIC MODEL FROM 3D GEOMETRIC MODEL}METHOD FOR EXTRACTING KINETIC MODEL FROM 3D GEOMETRIC MODEL [0002]

본 발명은 3차원 기하 모델에서 부품간에 접촉 유무를 판단하여 어떤 운동에 관련된 관절인지를 판단하는 운동 모델 추출방법에 관한 것이다.
The present invention relates to a method of extracting a motion model for judging whether or not a part is in contact with a part in a three-dimensional geometric model to determine a joint related to a certain motion.

일반적으로, CAD 프로그램 중에 하나인 CATIA와 같은 상용 소프트웨어에서는 조립품의 운동 모델(kinetic model)을 정의할 수 있는 기능이 있다. 본 발명에서 중점을 두는 회전운동 관절(revolute joint), 직선운동 관절(prismatic joint) 이외에도 여러 가지 관절을 정의할 수 있다. 하지만 이를 위해서는 사용자가 직접 제품의 접촉면, 운동 축 관절의 종류 등을 직접 설정해야 하며, 복잡한 위치에 있는 접촉면을 선택할 때는 더욱 불편함이 따른다. 이는 어셈블리 모델(assembly model)을 운동 모델(kinetic model)로 정의하는데 있어서 시간 낭비를 발생시키며 종류가 다른 다수의 어셈블리 모델(assembly model)을 각각 정의하는 것은 개수에 따라 비례적으로 시간 낭비를 초래하게 된다. In general, commercial software such as CATIA, which is one of CAD programs, has a function to define a kinetic model of an assembly. In addition to the revolute joint and the prismatic joint, which are emphasized in the present invention, various joints can be defined. However, this requires the user to directly set the contact surface of the product and the kind of the motion shaft joint, and it is more inconvenient to select the contact surface in a complicated position. This leads to waste of time in defining an assembly model as a kinetic model. Defining a plurality of different assembly models of different types causes a proportional waste of time depending on the number of assemblies do.

따라서, 제품의 디자인 변경이 빈번하게 일어날 경우 그와 관련된 어셈블리 모델의 디자인도 변경이 발생할 수 있으며 운동 모델을 재정의해야 하는 낭비가 발생할 수 있다. 이를 보완하기 위한 연구 중에 하나는 자동적으로 운동 모델을 정의할 수 있지만 제한된 어셈블리 모델에 한해서 적용할 수 있다. Therefore, when a design change of the product frequently occurs, the design of the associated assembly model may change, and a waste of redefining the exercise model may occur. One of the studies to supplement this is to automatically define the motion model, but it can only be applied to the limited assembly model.

뿐만 아니라, 가상 공장 시뮬레이션에서 운동 모델을 요구하는 수많은 어셈블리 모델이 존재한다. 현재 운동 모델을 정의하기 위해서는 사용자가 직접 관절의 종류, 부품간의 접촉면, 운동의 기준이 되는 축 등을 정의해야 한다. 따라서 사용자는 어셈블리 모델에 대한 전문적인 지식과 CAD에 대한 전문적인 지식을 모두 갖추어야 하는 문제가 있다.
In addition, there are a number of assembly models that require motion models in virtual plant simulations. To define the current motion model, the user must directly define the kind of joint, the contact surface between the parts, and the axis that is the basis of motion. Therefore, the user has to have both expert knowledge of the assembly model and expert knowledge of CAD.

본 발명은 전술한 문제 및 다른 문제를 해결하는 것을 목적으로 한다. 또 다른 목적은 다양한 종류의 어셈블리 모델에 적용할 수 있는 운동 모델 추출방법을 제공하는 것을 그 목적으로 한다.
The present invention is directed to solving the above-mentioned problems and other problems. Another object of the present invention is to provide a method of extracting a motion model that can be applied to various kinds of assembly models.

상기 또는 다른 목적을 달성하기 위해 본 발명의 일 측면에 따르면, 3차원의 어셈블리 모델을 다수의 부분으로 구분하여 상기 다수의 부분 중 서로 접촉하는 제1 및 제2 부분간의 접촉면을 탐색하는 제1 단계와, 상기 다수의 부분 중 서로 접촉하는 제1 및 제2 부분이 실린더형 접촉인지 구별하는 제2 단계와, 실린더형 접촉인 경우 실린더의 중심축을 생성하는 제3 단계, 및 상기 중심축을 이용하여 상기 제1 및 제2 부분이 직선운동 관절인지 회전운동 관절인지를 판단하는 제4 단계를 포함하고, 상기 제4 단계는 상기 중심축의 축방향을 따라 상기 제1 부분 또는 제2 부분을 이동시켜 상기 제1 부분 및 제2 부분의 충돌이 양 방향에서 충돌이 발생하면 회전운동 관절(revolute joint)로 판단하고, 일 방향에서만 충돌이 발생하거나 충돌이 발생하지 않으면 직선운동 관절(prismatic joint)로 판단하는 것을 특징으로 하는 3차원 기하 모델에서 운동 모델을 추출하는 방법이 제공될 수 있다.According to an aspect of the present invention, there is provided a method of searching for a contact surface between a first portion and a second portion of a plurality of portions by dividing a three-dimensional assembly model into a plurality of portions, A second step of discriminating whether the first and second portions contacting each other among the plurality of portions are cylindrical contacts, a third step of creating a central axis of the cylinder in the case of a cylindrical contact, And a fourth step of determining whether the first portion and the second portion are linear motion joints or rotary joints, wherein the fourth step includes moving the first portion or the second portion along the axial direction of the central axis, When a collision between the first part and the second part occurs in both directions, it is determined that the joint is a revolute joint. If a collision occurs only in one direction or a collision does not occur, A method of extracting a motion model from a three-dimensional geometric model can be provided, wherein the motion model is determined as a prismatic joint.

본 발명의 일 측면에 따르면, 상기 제1 단계는 상기 다수의 부분간의 접촉 여부를 판단하기 위하여 상기 제1 부분 및 제2 부분을 각각 하나 이상의 OBB(Oriented Bounding Box) 박스로 분할하는 단계와, 상기 제1 부분 및 제2 부분의 OBB 박스 간에 충돌이 발생하는지 확인하는 단계와, 상기 OBB 박스 간에 충돌이 발생하면, 충돌이 발생한 OBB 박스 부분을 다수의 삼각형으로 분할 형성하는 단계, 및 상기 분할 형성된 다수의 삼각형 중 서로 접촉하는 삼각형이 있는 경우에 상기 제1 및 제2 부분이 접촉하는 것으로 판단하는 단계를 포함할 수 있다.According to an aspect of the present invention, the first step includes dividing the first portion and the second portion into at least one OBB (Oriented Bounding Box) box to determine whether the plurality of portions are in contact with each other, Comprising the steps of: determining whether a collision occurs between the OBB boxes of the first part and the second part; dividing the OBB box part where the collision occurred into a plurality of triangles when a collision occurs between the OBB boxes; And determining that the first and second portions are in contact with each other when there is a triangle which is in contact with each other among the triangles of the triangle.

본 발명의 일 측면에 따르면, 상기 OBB 박스는 직육면체일 수 있다.According to an aspect of the present invention, the OBB box may be a rectangular parallelepiped.

본 발명의 일 측면에 따르면, 상기 OBB 박스 간에 충돌이 발생하는 경우, 상기 충돌이 발생한 OBB 박스를 보다 작은 크기의 서브 OBB 박스로 분할한 후, 상기 서브 OBB 박스 간에 충돌이 발생하는지 확인하는 단계를 더 포함할 수 있다.According to an aspect of the present invention, when a collision occurs between the OBB boxes, the step of dividing the OBB box in which the collision has occurred into sub-OBB boxes of a smaller size, .

본 발명의 일 측면에 따르면, 상기 삼각형이 접촉하는 것으로 판단하는 단계는, 이웃하는 삼각형이 서로 교차하거나, 기설정된 오차 범위 내의 위치에 존재하는 경우일 수 있다.According to an aspect of the present invention, the step of determining that the triangle is in contact may be a case where neighboring triangles intersect with each other or exist at a position within a predetermined error range.

본 발명의 일 측면에 따르면, 상기 제2 단계에서는 상기 제1 및 제2 부분의 접촉면에 해당되는 하나 이상의 삼각형의 단위 법선벡터의 시점(始點)을 가우스 구(gauss sphere)의 중심에 대입했을 때 상기 단위 법선 벡터가 원을 그리면 상기 접촉면을 실린더 형상으로 판단할 수 있다.According to an aspect of the present invention, in the second step, a start point of a unitary normal vector of one or more triangles corresponding to the contact surfaces of the first and second portions is assigned to the center of a gaussphere The contact surface can be determined to be a cylinder shape when the unit normal vector is drawn in a circle.

본 발명의 일 측면에 따르면, 상기 제3 단계에서는 상기 가우스 구에서 원을 그리는 단위 법선 벡터들 중 두 개를 외적하여 중심축의 방향을 구할 수 있다.According to an aspect of the present invention, in the third step, the direction of the central axis can be obtained by externally extracting two of the unit normal vectors that draw a circle in the Gaussian sphere.

본 발명의 일 측면에 따르면, 상기 접촉면을 구성하는 다수의 삼각형 중심의 단위 법선 벡터를 이용하여 실린더 중심점을 구하여 중심축을 생성할 수 있다.According to an aspect of the present invention, a central axis can be created by calculating a cylinder center point using a unit normal vector of a plurality of triangular centers constituting the contact surface.

본 발명의 일 측면에 따르면, 상기 제1 단계는 GPU의 병렬 컴퓨팅 기법을 이용할 수 있다.
According to an aspect of the present invention, the first step may utilize the GPU's parallel computing technique.

본 발명의 실시 예들 중 적어도 하나에 의하면, 각 모델에 따라서 접촉면, 기준 축, 관절의 종류를 자동적으로 정의하게 되어 운동 모델을 추출하는데 걸리는 시간을 단축시킬 수 있다. According to at least one of the embodiments of the present invention, the contact surface, the reference axis, and the kind of joint are automatically defined according to each model, and the time taken to extract the motion model can be shortened.

또한, CAD에 대한 전문지식이 없더라도 충분히 운동 모델을 정의할 수 있어 비용을 절감할 수 있다. In addition, without the CAD expertise, you can define the motion model enough to save money.

도 1a는 본 발명의 일 실시예를 설명하기 위한 클램프의 사시도이다.
도 1b는 도 1a의 부분 확대도이다.
도 2는 본 발명의 일 실시예와 관련된 OBB 트리의 예시도이다.
도 3은 본 발명의 일 실시예와 관련된 가우스 맵(Gauss map)을 이용한 중심축을 찾는 방법을 설명하기 위한 도면이다.
도 4는 본 발명의 일 실시예와 관련된 실린더 형상의 중심축을 가시화한 도면이다.
도 5는 본 발명의 일 실시예와 관련된 중심축을 양방향으로 평행이동시키는 것을 나타내는 도면이다.
도 6은 본 발명의 일 실시예에 따른 3차원 기하 모델에서 운동 모델을 추출하는 방법의 흐름도이다.
1A is a perspective view of a clamp for explaining an embodiment of the present invention.
FIG. 1B is a partial enlarged view of FIG. 1A. FIG.
2 is an exemplary diagram of an OBB tree associated with an embodiment of the present invention.
3 is a diagram for explaining a method of finding a central axis using a Gauss map according to an embodiment of the present invention.
4 is a view showing a central axis of a cylinder shape according to an embodiment of the present invention.
Figure 5 is a diagram illustrating bi-directional translation of a central axis in accordance with one embodiment of the present invention.
6 is a flowchart of a method of extracting a motion model from a three-dimensional geometric model according to an embodiment of the present invention.

이하, 첨부된 도면을 참조하여 본 명세서에 개시된 실시 예를 상세히 설명하되, 동일하거나 유사한 구성요소에는 동일·유사한 도면 부호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다. 이하의 설명에서 사용되는 구성요소에 대한 접미사 "모듈" 및 "부"는 명세서 작성의 용이함만이 고려되어 부여되거나 혼용되는 것으로서, 그 자체로 서로 구별되는 의미 또는 역할을 갖는 것은 아니다. 또한, 본 명세서에 개시된 실시 예를 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 본 명세서에 개시된 실시 예의 요지를 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다. 또한, 첨부된 도면은 본 명세서에 개시된 실시 예를 쉽게 이해할 수 있도록 하기 위한 것일 뿐, 첨부된 도면에 의해 본 명세서에 개시된 기술적 사상이 제한되지 않으며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.Hereinafter, embodiments of the present invention will be described in detail with reference to the accompanying drawings, wherein like or similar elements are denoted by the same or similar reference numerals, and a duplicate description thereof will be omitted. The suffix "module" and " part "for the components used in the following description are given or mixed in consideration of ease of specification, and do not have their own meaning or role. In the following description of the embodiments of the present invention, a detailed description of related arts will be omitted when it is determined that the gist of the embodiments disclosed herein may be blurred. It is to be understood that both the foregoing general description and the following detailed description are exemplary and explanatory and are intended to provide further explanation of the invention as claimed. , ≪ / RTI > equivalents, and alternatives.

제1, 제2 등과 같이 서수를 포함하는 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되지는 않는다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다.Terms including ordinals, such as first, second, etc., may be used to describe various elements, but the elements are not limited to these terms. The terms are used only for the purpose of distinguishing one component from another.

어떤 구성요소가 다른 구성요소에 "연결되어"있다거나 "접속되어"있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어"있다거나 "직접 접속되어"있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다.It is to be understood that when an element is referred to as being "connected" or "connected" to another element, it may be directly connected or connected to the other element, . On the other hand, when an element is referred to as being "directly connected" or "directly connected" to another element, it should be understood that there are no other elements in between.

단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. The singular expressions include plural expressions unless the context clearly dictates otherwise.

본 출원에서, "포함한다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
In the present application, the terms "comprises", "having", and the like are used to specify that a feature, a number, a step, an operation, an element, a component, But do not preclude the presence or addition of one or more other features, integers, steps, operations, elements, components, or combinations thereof.

3차원 그래픽스 기술의 발달로 최근 복잡한 기하 모델의 운동을 포함하는 시뮬레이션이 조립, 정비, 공정 자동화 등의 다양한 분야에서 활용되고 있다. 이를 위해서는 주어진 3차원 기하 모델(Geometric Model)에 운동 모델 (Kinetic Model)을 접목하여야 하는데 기존에는 이러한 일이 작업자의 경험에 기반하여 수작업으로 이루어지므로 시간적, 비용적 낭비가 발생하였다. With the development of 3D graphics technology, simulation including motion of complex geometry model has been utilized in various fields such as assembly, maintenance, and process automation. In order to achieve this, a kinetic model should be applied to a given three-dimensional geometric model. In the past, this work has been manually performed based on the experience of the operator, resulting in a waste of time and money.

본 발명은 3차원 기하 모델이 주어지면 자동으로 운동 모델을 추출하는 알고리즘을 사용하여 이러한 낭비를 없애고자 하였다. The present invention attempts to eliminate such waste by using an algorithm that automatically extracts a motion model when a three-dimensional geometric model is given.

즉, 본 발명의 일 실시예에서는 기하 모델 사이의 접촉면을 탐색하고, 실린더형 접촉면인지 구별하고, 중심축을 생성한 다음, 충돌 검사를 통하여 회전운동 또는 직선운동 관절인지를 판단하는 단계를 거친다. 이때, 실린더 형상의 접촉면을 구별하는 이유는 본 발명의 일 실시예에서 다루는 관절은 대부분 실린더 형상의 접촉면을 가지고 있기 때문이다. 따라서, 본 발명의 일 실시예에서는 가장 많이 사용되는 회전운동 관절(revolute joint)과 직선운동 관절(prismatic joint)만을 고려하였다.That is, in one embodiment of the present invention, a contact surface between geometric models is searched, a cylindrical contact surface is distinguished, a center axis is created, and then a collision inspection is performed to determine whether the joint is a rotary motion or a linear motion joint. The reason for distinguishing the cylindrical contact surfaces is that the joints covered in one embodiment of the present invention mostly have cylindrical contact surfaces. Therefore, in the embodiment of the present invention, only the most commonly used revolute joint and prismatic joint are considered.

먼저, 도 6은 본 발명의 일 실시예에 따른 3차원 기하 모델에서 운동 모델을 추출하는 방법의 흐름도인데, 이하에서는 도 6을 참조하여 설명하기로 한다.6 is a flowchart of a method of extracting a motion model from a three-dimensional geometric model according to an embodiment of the present invention. Hereinafter, a description will be made with reference to FIG.

본 발명의 일 실시예에서의 3차원 기하 모델에서 운동 모델을 추출하는 방법은 3차원의 어셈블리 모델을 다수의 부분으로 구분하여 상기 다수의 부분간의 접촉면을 탐색(S11)하고, 상기 다수의 부분 중 서로 접촉하는 제1 및 제2 부분이 실린더형 접촉인지 구별(S12)한 다음, 실린더형 접촉인 경우 실린더의 중심축을 생성(S13)한다. 이후, 상기 중심축을 이용하여 상기 제1 및 제2 부분이 직선운동 관절인지 회전운동 관절인지를 판단(S14)한다.A method of extracting a motion model from a three-dimensional geometric model according to an embodiment of the present invention includes: searching a contact surface between the plurality of parts by dividing a three-dimensional assembly model into a plurality of parts (S11) The first and second portions that contact each other are distinguished whether they are cylindrical contacts (S12), and if they are cylindrical contacts, the center axis of the cylinder is created (S13). Then, it is determined whether the first and second portions are linear motion joints or rotary joints using the central axis (S14).

이때, 상기 중심축의 축방향을 따라 상기 제1 부분 또는 제2 부분을 이동시켜 상기 제1 부분 및 제2 부분의 충돌이 양 방향에서 충돌이 발생하면 회전운동 관절(revolute joint)로 판단하고, 일 방향에서만 충돌이 발생하거나 충돌이 발생하지 않으면 직선운동 관절(prismatic joint)로 판단한다.At this time, when the first portion or the second portion is moved along the axial direction of the central axis to determine that the collision of the first portion and the second portion is a revolute joint when a collision occurs in both directions, If there is a collision only in the direction or no collision, it is judged as a prismatic joint.

이때, 상기 다수의 부분간의 접촉 여부를 판단하기 위하여 상기 어셈블리 모델을 다수의 부분으로 나눈 다음, 접촉 가능성이 높은 부분을 제1 부분 및 제2 부분으로 정의하여, 상기 제1 부분 및 제2 부분을 각각 하나 이상의 OBB(Oriented Bounding Box) 박스로 분할한다. 예를 들면, 상기 어셈블리 모델을 A 부터 Z까지의 다수의 부분(일예로, 어셈블리 모델의 부품)으로 구분한 경우, OBB 박스는 26개가 된다. 이때, X 부분(부품)과 Y 부분(부품)이 서로 인접하여 접촉가능성이 있는 경우에 X를 X1부터 X10까지 분할하고, Y를 Y1부터 Y10까지 분할한다. 이 경우, OBB 박스는 20개가 생성된다. 이와 같이 어셈블리 모델을 다수의 부분(부품)으로 나누고, 각각의 부분들 중 접촉 가능한 부분들을 다시 세분할 수 있다. At this time, the assembly model is divided into a plurality of parts to determine whether or not there is contact between the plurality of parts, and a part having a high possibility of contact is defined as a first part and a second part, Each of which is divided into at least one OBB (Oriented Bounding Box) box. For example, if the assembly model is divided into a plurality of parts A to Z (for example, parts of an assembly model), the number of OBB boxes is 26. At this time, when there is a possibility that the X part (part) and the Y part (part) are adjacent to each other, X is divided from X1 to X10, and Y is divided from Y1 to Y10. In this case, 20 OBB boxes are created. Thus, the assembly model can be divided into a plurality of parts (parts), and the contactable parts of each part can be refined again.

이후, X1이 상기 Y1부터 Y10 중 어느 부분과 충돌하는지를 조사하고, X2부터 X10까지 각각에 대하여 Y1부터 Y10까지에 대하여 개별적으로 충돌 여부를 조사한다. 이와 같이 실시하게 되면 총 100(=10X10)회에 걸쳐 검사를 실시하게 된다. Thereafter, it is checked whether X1 collides with any one of Y1 to Y10, and whether or not the collision is individually checked for Y1 to Y10 is examined for each of X2 to X10. If the test is performed in this way, the test is performed for a total of 100 (= 10 × 10) times.

그러나, X1 내지 X10 중 X1만이 Y1 내지 Y10 중 어느 하나 이상과 충돌가능성이 있는 것으로 판단되는 경우에는 X1이 Y1 내지 Y10 중 어느 부분과 충돌하는지 여부만을 조사할 수도 있다. However, when it is determined that only X1 among X1 to X10 is likely to collide with any one of Y1 to Y10, it may be checked whether X1 collides with any of Y1 to Y10.

이와 같이, 상기 OBB 박스 간에 충돌이 발생하는 경우, 상기 충돌이 발생한 OBB 박스를 보다 작은 크기의 서브 OBB 박스로 분할하여 서브 OBB 박스 간에 충돌이 발생하는지 확인하는 과정이 추가될 수도 있다. 즉, 앞서 설명한 바와 같이, 어셈블리 모델을 A부터 Z까지의 부분으로 나누고, 각각의 부분에 대하여 하나씩의 OBB 박스를 형성하게 되면, 26개의 OBB 박스가 생성되는데, X와 Y 사이에서만 접촉이 의심되면, A부터 W까지의 부분(OBB 박스)은 제외하고, X와 Y에 대하여만 새롭게 OBB 박스를 10개씩 형성할 수도 있다. 이로써 OBB 박스 간의 충돌 여부 확인은 종료된다.As described above, when a collision occurs between the OBB boxes, a process of dividing the OBB box in which the collision has occurred into sub-OBB boxes of a smaller size to check whether there is a collision between the sub-OBB boxes may be added. That is, as described above, if the assembly model is divided into parts from A to Z and one OBB box is formed for each part, 26 OBB boxes are created. If contact is suspected only between X and Y , 10 OBB boxes may be newly formed only for X and Y, except for the portions A to W (OBB box). This completes the check of whether or not there is a collision between the OBB boxes.

이후, 상기 제1 부분(예를 들면, X의 OBB 박스 중 X1) 및 제2 부분(예를 들면, Y의 OBB 박스 중 Y1)의 OBB 박스 간에 충돌이 발생하는지 확인한 다음, 상기 OBB 박스 간에 충돌이 발생하면, 충돌이 발생한 OBB 박스 부분을 다수의 삼각형으로 분할 형성한다. 상기 OBB 박스는 직육면체 형상일 수 있다. 만약, 상기 X1이 Y1과 충돌하는 것으로 판단되면, X1 및 Y1을 다수의 삼각형으로 분할 형성한다. 상기 삼각형은 X1 및 Y1의 표면을 미세하게 나눈 것으로 미소 삼각형이다. 예를 들면, 도 3a에 도시된 바와 같이 어셈블리 모델의 특정 부분의 표면을 미소 삼각형으로 분할한 것이다. Thereafter, it is checked whether a collision occurs between the OBB boxes of the first part (for example, X1 of the OBB box of X) and the second part of the OBB box of Y (for example, Y1 of the OBB box of Y) The OBB box portion where the collision occurs is divided into a plurality of triangles. The OBB box may have a rectangular parallelepiped shape. If it is determined that X1 collides with Y1, X1 and Y1 are divided into a plurality of triangles. The triangles are micro-triangles obtained by finely dividing the surfaces of X1 and Y1. For example, the surface of a specific part of the assembly model is divided into minute triangles as shown in Fig. 3A.

본 발명의 일 실시예에서는 각 부분간의 접촉면을 빠르게 탐색하기 위해서 OBB(Oriented Bounding Box) binary tree를 통해 GPU를 이용한 병렬컴퓨팅 기법을 사용하였다. OBB binary tree는 각 파트의 형태에 따라서 최소한의 정육면체 또는 직육면체를 생성하여 간섭유무를 확인하며 좀 더 빠르게 접촉검증을 하기 위한 구조체이다. 이와 더불어 병렬 컴퓨팅 기법은 많은 연산을 필요로 하는 경우에 유용하게 사용할 수 있다. 접촉면을 탐색하는 경우에는 수천 가지의 삼각형들을 검사하게 되는데 이때 병렬 컴퓨팅 기법을 이용하여 동시에 여러 가지 연산을 수행할 수 있어 접촉면 탐색 속도 향상에 큰 도움을 준다. 이렇게 검색된 접촉면은 도 1b에서 볼 수 있으며, 관절부분의 접촉면은 실린더 형태임을 확인할 수 있다. In an embodiment of the present invention, a GPU-based parallel computing technique is used through an OBB (Bounding Box) OBB (Boundary Box) The OBB binary tree is a structure to check the existence of interference and generate a rectangular parallelepiped or a rectangular parallelepiped according to the shape of each part. In addition, parallel computing techniques can be useful in cases where many operations are required. When searching the contact surface, thousands of triangles are inspected. In this case, parallel computation can be used to perform various computations at the same time. The contact surface thus searched can be seen in FIG. 1B, and it can be confirmed that the contact surface of the joint part is a cylinder shape.

상기 분할 형성된 다수의 미소 삼각형 중 서로 접촉하는 삼각형이 있는 경우에 상기 제1 및 제2 부분(X,Y)이 접촉하는 것으로 판단하게 된다. 이때, 상기 미소 삼각형이 서로 접촉하는지 여부는 이웃하는 미소 삼각형이 서로 교차되어 형성되거나, 기설정된 오차 범위 내의 가까운 위치에 존재하는 경우를 삼각형이 접촉하는 것으로 판단하게 된다.It is determined that the first and second portions X and Y are in contact with each other when there are triangles that contact each other among the plurality of minute triangles formed by division. At this time, whether or not the micro triangles contact each other is determined by the fact that the triangles are in contact with each other in the case where neighboring micro triangles are formed to intersect with each other or exist in a predetermined position within a predetermined error range.

본 발명의 일 실시예에서는 3차원의 어셈블리 모델의 다수의 부분간에 접촉면을 탐색하기 위해서 Tomas Moller의 삼각형 간의 충돌검사 알고리즘을 기반으로 수행하였으며, 수많은 삼각형들의 접촉면을 빨리 계산하기 위해서 OBB(Oriented Bounding Box)를 이용하여 불필요한 검사 횟수를 줄였다. 즉, 어셈블리 모델을 A 내지 Z까지 분할한 다음, 실제 접촉 가능성이 있는 X 및 Y의 접촉 여부만을 판단하고, A 내지 W와, X 또는 Y와의 접촉 여부는 검사하지 않아도 되므로 불필요한 검사 회수를 줄일 수 있게 된다. 또한, 본 발명의 일 실시예에서는 GPU를 이용한 병렬 컴퓨팅 기법으로 단순 계산을 동시에 처리하여 처리 시간을 단축할 수 있도록 하였다. In one embodiment of the present invention, Tomas Moller's triangle collision detection algorithm was used to search the contact surface between multiple parts of the three-dimensional assembly model. In order to quickly calculate the contact surface of many triangles, an OBB ) To reduce the number of unnecessary tests. That is, after dividing the assembly model into A to Z, it is only necessary to determine whether or not the X and Y contacts are actually in contact with each other, and it is not necessary to check whether or not the contact between A and W and X or Y is contacted. . In addition, in the embodiment of the present invention, the parallel computation using the GPU can simultaneously process the simple calculations, thereby shortening the processing time.

그리고, 본 발명의 일 실시예에서는 탐색된 접촉면들 중에서 실린더 형상의 접촉면을 구별하기 위해서 가우스 맵(Gauss map)을 사용한다. 제1 및 제2 부분의 접촉면을 다수의 삼각형으로 분할 형성한 다음, 각각의 삼각형의 중심(무게중심)에서의 단위 법선 벡터의 시점(始點)을 가우스구(gauss sphere)의 중심에 대입했을 때 각각의 단위 법선 벡터가 원을 그린다면 실린더 형상으로 판단한다. 즉, 상기 제1 및 제2 부분(X,Y)의 접촉면에 해당되는 하나 이상의 삼각형의 단위 법선 벡터의 시점을 가우스 구(gauss sphere)의 중심에 대입했을 때 상기 단위 법선 벡터들이 도 3b에서와 같이 원을 그리면 상기 접촉면을 실린더 형상으로 판단하게 된다.In an embodiment of the present invention, a Gauss map is used to distinguish the cylindrical contact surfaces among the contact surfaces detected. The contact surfaces of the first and second portions are divided into a plurality of triangles and then the start point of the unit normal vector at the center (center of gravity) of each triangle is assigned to the center of the gauss sphere When each unit normal vector is drawn in a circle, it is judged as a cylinder shape. That is, when the start point of one or more triangular unit normal vectors corresponding to the contact surfaces of the first and second parts X and Y is substituted into the center of the gaussphere, When the circle is drawn as well, the contact surface is judged to be a cylinder shape.

본 발명의 일 실시예에서는 실린더 형태의 접촉인지를 판단해야 하는데, 이는 회전운동 또는 직선운동이라는 두 개의 관절 형태(revolute, prismatic)가 대부분 실린더 형태의 접촉으로 이루어져 있기 때문에 실린더형 접촉면을 찾는 것은 관절을 정의하기 위한 필수 과정이다.In an embodiment of the present invention, it is necessary to judge whether the contact is in the form of a cylinder. Since the two revolute or prismatic forms of the rotational motion or the linear motion are mostly in the form of a cylinder, It is a necessary process to define.

본 발명의 일 실시예에서는 실린더 형태의 접촉면을 구분하기 위해서 가우스 맵(가우스 구)을 이용하였다. 이는 도 3a와 같이 미소 삼각형으로 이루어진 곡면 위의 한 점에서 단위 법선 벡터(unit normal vector)를 평행이동시켜 가우스 구(gauss sphere) 위의 점으로 나타낼 수 있는 방법을 말한다. 이 방법을 본 발명의 일 실시예에 적용하기 위해서 접촉면 탐색으로 얻어진 다수의 부분의 미소 삼각형들의 단위 법선 벡터를 이용하여 가우스 맵에 적용했을 경우, 도 3b와 같이 가우스 구 위에 원을 그린다면 실린더형 접촉면으로 판단할 수 있다. In one embodiment of the present invention, a Gauss map (Gaussian) is used to distinguish the cylindrical contact surfaces. This means that a unit normal vector at a point on a curved surface composed of a minute triangle as shown in FIG. 3A can be translated as a point on a gauss sphere. In order to apply this method to an embodiment of the present invention, when applied to a Gauss map using a unit normal vector of a plurality of minute triangles obtained by a contact surface search, if a circle is drawn on the Gaussphere as shown in FIG. 3B, It can be judged as the contact surface.

만약, 일반적인 평면의 접촉이라면 상기 미소 삼각형의 무게중심에서의 단위 법선 벡터는 가우스 구 내에서 한 점으로 나타날 것이다. If it is a normal plane of contact, the unit normal vector at the center of gravity of the triangle will appear as a point in the Gaussian.

또한, 본 발명의 일 실시예에서는 상기 실린더 형상의 중심축을 구하기 위하여, 상기 가우스 구에서 원을 그리는 단위 법선 벡터들 중 두 개를 외적하여 중심축의 방향을 구한 다음, 상기 접촉면을 구성하는 다수의 삼각형 중심의 단위 법선 벡터를 이용하여 실린더 중심점을 구하여 중심축을 생성한다.In addition, in order to obtain the central axis of the cylinder shape, the direction of the central axis is obtained externally of two unit normal vectors for drawing a circle in the Gauss sphere, and then a plurality of triangles The central axis is obtained by calculating the cylinder center point using the center unit normal vector.

이와 같이, 본 발명의 일 실시예에서는 실린더형 접촉면을 탐색한 후에 중심축을 생성하기 위해서 단위 법선 벡터간의 외적을 이용한다. 외적을 이용하면 두 벡터의 수직인 벡터를 구할 수 있기 때문에 가우스 구에서 원을 그리는 단위 법선 벡터들의 외적을 구하면 도 3b와 같이 중심축을 구할 수 있다. 그리고 이렇게 구한 벡터는 관절의 종류를 구별할 때와 관절의 운동을 정의하기 위한 필수적인 요소가 된다. 참고로, 도 4는 본 발명의 일 실시예에 따라 실린더 형상의 접촉면을 탐색 후 공통축을 생성한 도면이다. Thus, in one embodiment of the present invention, the outer product between the unitary normal vectors is used to create the central axis after searching for the cylindrical contact surface. Since the vector perpendicular to the two vectors can be obtained using the outer product, the outer product of the unit normal vectors for drawing a circle in the Gaussian sphere can be obtained, and the central axis can be obtained as shown in FIG. 3b. And the vector thus obtained becomes an indispensable element in distinguishing the kind of joint and defining the motion of the joint. For reference, FIG. 4 illustrates a common axis created after searching for a cylindrical contact surface according to an embodiment of the present invention.

이와 같이, 본 발명의 일 실시예에서는 상기 실린더 형상에 맞는 중심축 생성을 위해서 가우스 구에 원을 그리는 법선 벡터들을 이용하여 이와 수직인 벡터를 구할 수 있고, 각 삼각형 중점(무게중심)에서의 단위 법선 벡터들의 평균값을 이용하여 실린더 중심점을 구할 수 있는데 이 두 가지를 이용하여 실린더 형상 기하 물체의 중심점을 지나는 수직인 벡터 방향으로 중심축을 생성할 수 있다.As described above, in the embodiment of the present invention, in order to generate the central axis corresponding to the cylinder shape, a vector perpendicular to the cylinder can be obtained by using normal vectors which draw a circle in the Gauss sphere, and a unit at each triangular center (center of gravity) Using the average of the normal vectors, the cylinder center point can be obtained. By using these two methods, the center axis can be created in the vector direction perpendicular to the center point of the cylindrical geometry object.

또한, 본 발명의 일 실시예에서는 어셈블리 모델에서의 관절의 종류를 결정하기 위해서 앞서 생성된 중심축을 이용한다. 실린더 형상의 접촉면을 이루는 두 개의 부분(X,Y) 중 하나를 중심축의 축 방향으로 미리 허용된 오차만큼 이동시킨다. 이때, 양 방향 모두 충돌이 발생한다면 회전운동 관절(revolute joint)로 정의할 수 있고, 그렇지 않다면 직선운동 관절(prismatic joint)로 정의한다. 일반적으로 회전운동 관절을 이루는 두 개의 부품은 회전운동을 하기 위해 직선운동을 하지 못하도록 서로 고정시켜 주기 때문에 이와 같은 방법을 이용하여 관절을 구분할 수 있다. Also, in one embodiment of the present invention, the previously generated center axis is used to determine the kind of joint in the assembly model. And moves one of the two portions (X, Y) constituting the contact surface of the cylindrical shape by an allowable error in the axial direction of the central axis. If there is a collision in both directions, it can be defined as a revolute joint, otherwise it is defined as a prismatic joint. In general, two parts constituting rotary joints are fixed to each other so that they can not perform linear motion in order to perform rotational motion. Therefore, joints can be distinguished by using such a method.

즉, 본 발명의 일 실시예에서는 관절의 종류를 정의하기 위해 충돌검사를 이용한 알고리즘을 활용하였다. 본 발명의 일 실시예에서는 앞서 언급한 바와 같이 가장 많이 이용되고 있는 두 가지 관절(revolute, prismatic)에 대해서만 다룬다. That is, in one embodiment of the present invention, an algorithm using collision inspection is used to define the kind of joint. In one embodiment of the present invention, only the two most commonly used joints (revolute, prismatic) are mentioned.

회전운동 관절(Revolute joint)은 중심축을 기준으로 회전운동을 하는 관절로써 도 5b와 같이 직선운동을 할 수 없도록 다른 부품이 고정시키는 구조를 가지는 것이 특징이다. 이에 반해, 직선운동 관절(Prismatic joint)은 중심축을 기준으로 정해진 길이만큼의 직선운동을 하는 관절이지만 회전운동을 한다고 해도 두 개의 부품은 서로 충돌하지 않는 것이 특징이다. 다시 말해 상기 회전운동 관절 및 직선운동 관절은 가우스 맵으로 구한 중심축을 이용하여 양 방향으로 허용하는 오차만큼 이동시켰을 때, 충돌이 발생한다면 회전운동 관절로 판단하고, 그렇지 않으면 직선운동 관절로 판단할 수 있다. 이때, 충돌여부는 원래 위치에서 부품간의 거리와 직선 운동을 한 후의 부품간의 거리를 비교하여 변화가 있다면 충돌한 것으로 정의한다.(도 5b 참조)The revolute joint is a joint that rotates about a central axis and has a structure in which other components are fixed so that linear motion can not be performed as shown in FIG. 5B. On the other hand, a prismatic joint is a joint that performs a linear motion of a predetermined length with respect to a central axis, but even if it is rotated, the two parts do not collide with each other. In other words, when the rotary joint and the linear motion joint are shifted by an allowable error in both directions using the Gauss map-derived center axis, it is determined that the joint is a rotary joint if a collision occurs, have. At this time, the collision is defined as a collision if there is a change by comparing the distance between the parts at the original position and the distance between the parts after the linear movement (see FIG. 5B).

상술한 바와 같이, 본 발명의 일 실시예에서는 어셈블리 모델로부터 자동적으로 운동 모델을 정의할 수 있다. As described above, in one embodiment of the present invention, a motion model can be automatically defined from an assembly model.

이하에서는 도 1 내지 도 5를 참조하여 본 발명의 일 실시예에 따른 3차원 어셈블리 모델에서의 운동 모델 추출방법에 대하여 설명하기로 한다.Hereinafter, a method of extracting a motion model in a three-dimensional assembly model according to an embodiment of the present invention will be described with reference to FIGS. 1 to 5. FIG.

도 1a는 본 발명의 일 실시예를 설명하기 위한 클램프(clamp)의 사시도이고, 도 1b는 도 1a의 부분 확대도이다. 도 1b는 본 발명의 일 실시예에 따른 접촉면 탐색(S11)을 설명하기 위한 도면이다. 도 1a 및 도 1b에서의 어셈블리 모델은 4개의 부품으로 이루어진 어셈블리 모델이며 빠른 탐색을 위해 OBB(Oriented Bounding Box) Tree와 GPU를 이용하여 접촉면 계산을 수행하였다. 도 1b에서 파란색 부분이 접촉면에 해당하는 부분인데 접촉 형상은 구별하지 않고 모두 탐색한 결과를 나타낸 것이다. 즉, 도 1b에서는 실린더 형상의 접촉면 뿐만 아니라, 면접촉 형상의 접촉면도 모두 포함한다. 이와 같이, 어셈블리 모델에서의 접촉면에는 실린더 형상의 접촉면 뿐만 아니라 면접촉 형상의 접촉면도 존재하므로, 이를 구별할 필요가 있으며, 이를 구분함으로써 실린더 형상의 접촉면의 중심축을 찾을 수 있게 된다.FIG. 1A is a perspective view of a clamp for explaining an embodiment of the present invention, and FIG. 1B is a partial enlarged view of FIG. 1A. 1B is a view for explaining a contact surface search S11 according to an embodiment of the present invention. The assembly model in FIGS. 1A and 1B is an assembly model composed of four parts, and the contact surface calculation is performed using an OBB (Oriented Bounding Box) tree and a GPU for fast searching. In FIG. 1B, the blue portion corresponds to the contact surface, but the contact shape is not discriminated, and all the search results are shown. That is, in FIG. 1B, not only the cylindrical contact surface but also the contact surface of the surface contact shape is included. As described above, since the contact surface in the assembly model includes not only the cylindrical contact surface but also the contact surface having the surface contact shape, it is necessary to distinguish it, and by distinguishing it, the center axis of the cylindrical contact surface can be found.

도 2는 본 발명의 일 실시예와 관련된 OBB 트리의 예시도인데, 도 2에서는 2차원인 평면의 경우를 예로 설명한 것이다. 즉, 도 2의 첫 번째 그림은 binary tree를 나타낸 것이고, 두 번째 그림은 어셈블리 모델 중 일 부분(A)을 평면상에 나타낸 것이다. 상기 A 부분과 다른 부분(미도시)과의 접촉을 판단하기 위하여 세 번째 그림과 같이 두 개의 파트(B,C)로 세분할 수 있다. 상기 두 개의 파트(B,C) 중 어느 하나와 다른 부분(미도시)과의 충돌 여부를 확인할 수도 있으나, 보다 세밀하게 검사하기 위하여는 네 번째 그림에서와 같이 네 개의 파트(D,E,F,G)로 세분한 다음 다른 부분(미도시)과의 충돌 여부를 확인할 수도 있다. 이와 같이, 두 부분 간에 충돌 여부를 먼저 확인한 다음, 충돌되는 부분이 있다면, 충돌되는 부분을 작은 미소 삼각형으로 분할 형성함으로써 접촉 여부를 확인하게 되는 것이다.FIG. 2 is an example of an OBB tree according to an embodiment of the present invention. FIG. 2 illustrates an example of a two-dimensional plane. In other words, the first figure in Fig. 2 shows a binary tree, and the second figure shows a part (A) of the assembly model on a plane. In order to determine the contact between the part A and another part (not shown), it can be divided into two parts B and C as shown in the third figure. It is possible to check whether or not any of the two parts B and C is collided with another part (not shown). However, in order to inspect more finely, it is possible to check four parts (D, E, F , G), and then check whether there is a collision with another part (not shown). As described above, if there is a collision between the two parts, the collision part is divided into small triangles to check whether or not the collision occurs.

이와 같이, 본 발명의 일 실시예에서는 OBB 박스들 간의 충돌 검사를 할 때 모든 OBB 박스의 불필요한 접촉면 검사를 줄이기 위해서 사용된 OBB(Oriented Bounding Box) binary tree가 사용될 수 있다. 즉, OBB 박스끼리 충돌하는 경우에만 접촉면 검사를 수행하기 때문에 계산 시간을 줄일 수 있다.As described above, in the embodiment of the present invention, an OBB (Bounding Box) binary tree used to reduce unnecessary contact surface inspection of all OBB boxes can be used when performing a collision check between OBB boxes. That is, since the contact surface inspection is performed only when the OBB boxes collide with each other, the calculation time can be reduced.

도 3은 본 발명의 일 실시예와 관련된 가우스 맵(Gauss map)을 이용한 중심축을 찾는 방법을 설명하기 위한 도면인데, 미소 삼각형으로 이루어진 물체의 법선벡터를 이용하여 단위 구(가우스 구)에 표현하는 방법에 대한 도면이다. 도 3a에서 왼쪽의 미소 삼각형들로 이루어진 삼각망에서 각 법선벡터를 단위 구에 표현하게 되면 그에 대응되는 점으로 나타난다. 도 3b에서와 같이 실린더의 법선 벡터를 단위 구에 표현하게 되면 원이 나타나기 때문에 이를 이용하여 실린더 형상의 접촉면을 구별할 수 있다. 이는 무분별하게 탐색된 접촉면 중 실린더 형상의 접촉면을 구별할 수 있으며, 실린더 형상의 중심축을 생성할 수 있다. 이렇게 생성된 중심축은 관절의 종류를 구별하는데 이용될 뿐 아니라 관절이 운동을 하는데 기준축이 된다.FIG. 3 is a view for explaining a method of finding a central axis using a Gauss map according to an embodiment of the present invention. In FIG. 3, a unit vector (Gauss sphere) is expressed using a normal vector of an object made up of a small triangle Fig. In FIG. 3A, in a triangular network composed of the small triangles on the left, each normal vector is represented by a unit point, which corresponds to the unit vector. As shown in FIG. 3B, when a normal vector of a cylinder is expressed in a unit sphere, a circle appears, so that it is possible to distinguish a cylinder-shaped contact surface using the circle. This makes it possible to distinguish the contact surfaces of the cylindrical shape among the contact surfaces that are searched indiscriminately, and it is possible to generate the central axis of the cylinder shape. The generated central axis is used not only to distinguish the kind of joint but also to be a reference axis for joint motion.

도 4는 본 발명의 일 실시예와 관련된 실린더 형상의 중심축을 가시화한 도면인데, Gauss map을 이용하여 실린더 형상의 접촉면을 구별한 후에 해당 실린더의 중심축을 생성하여 가시화한 도면이다. 이는 본 발명의 일 실시예에서 관절을 구별하는데 이용될 수 있고, 회전운동과 직선운동의 기준축이 될 수 있다.FIG. 4 is a view showing a central axis of a cylinder shape according to an embodiment of the present invention. FIG. 4 is a view showing the center axis of the cylinder after visualizing the contact surfaces of the cylinder shape using a Gauss map. This may be used to distinguish the joints in one embodiment of the present invention and may be a reference axis for rotational motion and linear motion.

또한, 도 5는 본 발명의 일 실시예와 관련된 중심축을 양방향으로 평행이동시키는 것을 나타내는 도면인데, 중심축을 생성한 후에 해당 실린더의 접촉면을 이루는 부품 중 하나를 중심축의 양방향으로 허용 오차만큼 평행이동시킨다. 이때, 양방향 모두 충돌이 발생한다면 회전운동 관절로 정의하고, 그렇지 않다면 직선운동 관절로 정의한다. 양방향 모두 충돌한다는 것은 직선 운동을 아예 하지 못하도록 고정된 상태임을 의미하기 때문에 회전운동밖에 할 수 없다는 것을 의미한다. 한쪽이라도 충돌이 발생하지 않는다면 이는 직선운동이 가능함을 의미하기 때문에 직선운동 관절이라 정의할 수 있다.5 is a diagram illustrating parallel movement of the central axis in accordance with an embodiment of the present invention in which the center axis is moved in parallel with one of the parts constituting the contact surface of the cylinder in both directions of the central axis by a tolerance . In this case, if both collisions occur in both directions, it is defined as a rotational joint, and otherwise, it is defined as a linear joint. A collision in both directions implies that the robot is stationary and can not do straight motion. If there is no collision on either side, it means that it is possible to perform linear motion, so it can be defined as a linear motion joint.

본 발명은 본 발명의 정신 및 필수적 특징을 벗어나지 않는 범위에서 다른 특정한 형태로 구체화될 수 있음은 당업자에게 자명하다. 따라서, 상기의 상세한 설명은 모든 면에서 제한적으로 해석되어서는 아니되고 예시적인 것으로 고려되어야 한다. 본 발명의 범위는 첨부된 청구항의 합리적 해석에 의해 결정되어야 하고, 본 발명의 등가적 범위 내에서의 모든 변경은 본 발명의 범위에 포함된다.It will be apparent to those skilled in the art that the present invention may be embodied in other specific forms without departing from the spirit or essential characteristics thereof. Accordingly, the above description should not be construed in a limiting sense in all respects and should be considered illustrative. The scope of the present invention should be determined by rational interpretation of the appended claims, and all changes within the scope of equivalents of the present invention are included in the scope of the present invention.

Claims (9)

3차원의 어셈블리 모델을 다수의 부분으로 구분하여 상기 다수의 부분 중 서로 접촉하는 제1 및 제2 부분간의 접촉면을 탐색하는 제1 단계;
상기 다수의 부분 중 서로 접촉하는 제1 및 제2 부분이 실린더형 접촉인지 구별하는 제2 단계;
실린더형 접촉인 경우 실린더의 중심축을 생성하는 제3 단계; 및
상기 중심축을 이용하여 상기 제1 및 제2 부분이 직선운동 관절인지 회전운동 관절인지를 판단하는 제4 단계를 포함하고,
상기 제4 단계는,
상기 중심축의 축방향을 따라 상기 제1 부분 또는 제2 부분을 이동시켜 상기 제1 부분 및 제2 부분의 충돌이 양 방향에서 충돌이 발생하면 회전운동 관절(revolute joint)로 판단하고, 일 방향에서만 충돌이 발생하거나 충돌이 발생하지 않으면 직선운동 관절(prismatic joint)로 판단하는 것을 특징으로 하는 3차원 기하 모델에서 운동 모델을 추출하는 방법.
A first step of dividing a three-dimensional assembly model into a plurality of parts and searching for a contact surface between the first and second parts of the plurality of parts;
A second step of distinguishing whether the first and second portions of the plurality of portions that are in contact with each other are cylindrical contacts;
A third step of creating a central axis of the cylinder in the case of a cylindrical contact; And
And a fourth step of determining whether the first and second parts are linear motion joints or rotary joints using the center axis,
In the fourth step,
The first portion or the second portion is moved along the axial direction of the central axis to determine that the collision of the first portion and the second portion is a revolute joint when a collision occurs in both directions, Wherein the motion model is determined as a prismatic joint if a collision occurs or a collision does not occur.
제1항에 있어서,
상기 제1 단계는,
상기 다수의 부분간의 접촉 여부를 판단하기 위하여 상기 제1 부분 및 제2 부분을 각각 하나 이상의 OBB(Oriented Bounding Box) 박스로 분할하는 단계;
상기 제1 부분 및 제2 부분의 OBB 박스 간에 충돌이 발생하는지 확인하는 단계;
상기 OBB 박스 간에 충돌이 발생하면, 충돌이 발생한 OBB 박스 부분을 다수의 삼각형으로 분할 형성하는 단계;
상기 다수의 삼각형 중 이웃하는 삼각형이 서로 교차하거나, 기설정된 오차 범위 내의 위치에 존재하면, 상기 삼각형이 서로 접촉하는 것으로 판단하는 단계; 및
상기 분할 형성된 다수의 삼각형 중 서로 접촉하는 삼각형이 있는 경우에 상기 제1 및 제2 부분이 접촉하는 것으로 판단하는 단계를 포함하는 것을 특징으로 하는 3차원 기하 모델에서 운동 모델을 추출하는 방법.
The method according to claim 1,
In the first step,
Dividing the first portion and the second portion into at least one OBB (Oriented Bounding Box) box to determine whether the plurality of portions are in contact with each other;
Confirming whether a collision occurs between the OBB boxes of the first part and the second part;
Dividing an OBB box portion where a collision occurs into a plurality of triangles when a collision occurs between the OBB boxes;
Determining that the triangles are in contact with each other if neighboring triangles of the plurality of triangles cross each other or exist at a position within a predetermined error range; And
And determining that the first and second portions are in contact with each other when the triangles are in contact with each other among the plurality of divided triangles.
제2항에 있어서,
상기 OBB 박스는 직육면체인 것을 특징으로 하는 3차원 기하 모델에서 운동 모델을 추출하는 방법.
3. The method of claim 2,
Wherein the OBB box is a rectangular parallelepiped.
제2항에 있어서,
상기 OBB 박스 간에 충돌이 발생하는 경우, 상기 충돌이 발생한 OBB 박스를 보다 작은 크기의 서브 OBB 박스로 분할한 후, 상기 서브 OBB 박스 간에 충돌이 발생하는지 확인하는 단계를 더 포함하는 것을 특징으로 하는 3차원 기하 모델에서 운동 모델을 추출하는 방법.
3. The method of claim 2,
Further comprising the step of, when a collision occurs between the OBB boxes, dividing the OBB box in which the collision has occurred into sub-OBB boxes of a smaller size, and checking whether a collision occurs between the sub-OBB boxes A method of extracting a motion model from a dimensional geometry model.
삭제delete 제3항에 있어서,
상기 제2 단계에서는,
상기 제1 및 제2 부분의 접촉면에 해당되는 하나 이상의 삼각형의 단위 법선벡터의 시점(始點)을 가우스 구(gauss sphere)의 중심에 대입했을 때 상기 단위 법선 벡터가 원을 그리면 상기 접촉면을 실린더 형상으로 판단하는 것을 특징으로 하는 3차원 기하 모델에서 운동 모델을 추출하는 방법.
The method of claim 3,
In the second step,
When a start point of one or more triangular unit normal vectors corresponding to the contact surfaces of the first and second portions is substituted into the center of a gauss sphere and the unit normal vector forms a circle, Dimensional geometric model of the vehicle.
제6항에 있어서,
상기 제3 단계에서는,
상기 가우스 구에서 원을 그리는 단위 법선 벡터들 중 두 개를 외적하여 중심축의 방향을 구하는 것을 특징으로 하는 3차원 기하 모델에서 운동 모델을 추출하는 방법.
The method according to claim 6,
In the third step,
Wherein a direction of the central axis is obtained by externally extracting two of the unit normal vectors for drawing a circle in the Gaussian sphere, and extracting the motion model from the three-dimensional geometric model.
제7항에 있어서,
상기 접촉면을 구성하는 다수의 삼각형 중심의 단위 법선 벡터를 이용하여 실린더 중심점을 구하여 중심축을 생성하는 것을 특징으로 하는 3차원 기하 모델에서 운동 모델을 추출하는 방법.
8. The method of claim 7,
Wherein a center point of the cylinder is obtained by using a unit normal vector of a plurality of triangular centers constituting the contact surface to generate a central axis.
제1항에 있어서,
상기 제1 단계는,
GPU의 병렬 컴퓨팅 기법을 이용하는 것을 특징으로 하는 3차원 기하 모델에서 운동 모델을 추출하는 방법.
The method according to claim 1,
In the first step,
A method of extracting a motion model from a three-dimensional geometric model characterized by using a parallel computing technique of a GPU.
KR1020150033369A 2015-03-10 2015-03-10 Method for extracting kinetic model from 3d geometric model KR101534496B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020150033369A KR101534496B1 (en) 2015-03-10 2015-03-10 Method for extracting kinetic model from 3d geometric model

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020150033369A KR101534496B1 (en) 2015-03-10 2015-03-10 Method for extracting kinetic model from 3d geometric model

Publications (1)

Publication Number Publication Date
KR101534496B1 true KR101534496B1 (en) 2015-07-09

Family

ID=53792324

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020150033369A KR101534496B1 (en) 2015-03-10 2015-03-10 Method for extracting kinetic model from 3d geometric model

Country Status (1)

Country Link
KR (1) KR101534496B1 (en)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20080051112A (en) * 2005-05-06 2008-06-10 블루쉬프트 테크놀로지스, 인코포레이티드. Systems and methods for generating 3d simulations
KR20150015724A (en) * 2013-08-01 2015-02-11 한국항공우주산업 주식회사 3D Model Materialization Device of the Helicopter Roter and Handling Method for the Same

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20080051112A (en) * 2005-05-06 2008-06-10 블루쉬프트 테크놀로지스, 인코포레이티드. Systems and methods for generating 3d simulations
KR20150015724A (en) * 2013-08-01 2015-02-11 한국항공우주산업 주식회사 3D Model Materialization Device of the Helicopter Roter and Handling Method for the Same

Similar Documents

Publication Publication Date Title
Bobrow A direct minimization approach for obtaining the distance between convex polyhedra
Spitz et al. Accessibility analysis for planning of dimensional inspection with coordinate measuring machines
JP3854033B2 (en) Mechanism simulation apparatus and mechanism simulation program
US20080034023A1 (en) Contact geometry calculation device, contact geometry calculation method, and computer program product
Park et al. Reverse engineering with a structured light system
Sabri et al. Fixtureless profile inspection of non-rigid parts using the numerical inspection fixture with improved definition of displacement boundary conditions
WO2011073361A1 (en) A micro-architecture system and method for ray tracing and collision detection
KR101534496B1 (en) Method for extracting kinetic model from 3d geometric model
Borro et al. Approximation of optimal voxel size for collision detection in maintainability simulations within massive virtual environments
JP2018185812A (en) Highly parallelizable algorithm for detecting intersection of shape
CN112749423A (en) Quick analysis method for removability of supporting structure in any direction
WO2015133723A1 (en) Construction method for connecting structures using simulation
Hussien et al. Automated inspection planning system for CMMs
JP3390817B2 (en) Data processing apparatus and method for machine design
CN104050336A (en) Method for judging restrained condition of three-dimensional geometrical elements based on track intersection
CN105719310B (en) Collision detection method and device
Davrajh et al. An automated apparatus for dynamic inspection of mass‐produced custom parts
CN107145642B (en) Dynamic collision detection method and device
Bahubalendruni An efficient method for exploded view generation through assembly coherence data and precedence relations
Yu et al. Geometric design model and object scanning mode based virtual assembly and repair analysis
JP2022094386A (en) Information processing device, detection method and program
Bayrak et al. Otomotıv Üretım Hatlarindakı 3D Parçalarin Kalıte Kontrolü İçın Endüstrı 4.0 İle Uyumlu Yapay Görme Sıstemının Gelıştırılmesı
Xie Research on the industrial robot grasping method based on multisensor data fusion and binocular vision
Inui et al. Clearance measurement of 3D objects using accessibility cone
Nag et al. Analytical determination of a sphere inside which the stewart platform translates without suffering any leg interference

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20190702

Year of fee payment: 5