KR101991364B1 - Apparatus and method for automatically generating the kinematic software for modules based robot - Google Patents

Apparatus and method for automatically generating the kinematic software for modules based robot Download PDF

Info

Publication number
KR101991364B1
KR101991364B1 KR1020170116516A KR20170116516A KR101991364B1 KR 101991364 B1 KR101991364 B1 KR 101991364B1 KR 1020170116516 A KR1020170116516 A KR 1020170116516A KR 20170116516 A KR20170116516 A KR 20170116516A KR 101991364 B1 KR101991364 B1 KR 101991364B1
Authority
KR
South Korea
Prior art keywords
module
coordinate system
connection point
block
joint
Prior art date
Application number
KR1020170116516A
Other languages
Korean (ko)
Other versions
KR20190029844A (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 KR1020170116516A priority Critical patent/KR101991364B1/en
Publication of KR20190029844A publication Critical patent/KR20190029844A/en
Application granted granted Critical
Publication of KR101991364B1 publication Critical patent/KR101991364B1/en

Links

Images

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1656Programme controls characterised by programming, planning systems for manipulators
    • B25J9/1661Programme controls characterised by programming, planning systems for manipulators characterised by task planning, object-oriented languages
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1656Programme controls characterised by programming, planning systems for manipulators
    • B25J9/1664Programme controls characterised by programming, planning systems for manipulators characterised by motion, path, trajectory planning
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1656Programme controls characterised by programming, planning systems for manipulators
    • B25J9/1671Programme controls characterised by programming, planning systems for manipulators characterised by simulation, either to verify existing program or to create and verify new program, CAD/CAM oriented, graphic oriented programming systems

Abstract

본 발명은 모듈 기반 로봇의 기구학 소프트웨어를 자동으로 생성하는 장치 및 방법에 관한 것으로서, 본 발명에 따른 모듈 기반 로봇의 기구학 소프트웨어를 자동으로 생성하는 장치는 블록 모듈의 연결점에 정의된 모듈 좌표계 사이의 관계를 설정하여 두 블록 모듈을 상기 연결점에서 가상으로 결합시키는 블록 결합부, 상기 연결점에서의 연결점 좌표계를 설정하는 연결점 좌표계 설정부, 각 연결점에 설정된 연결점 좌표계들 사이의 기구학적 관계를 구하는 기구학 관계 설정부 및 상기 연결점 좌표계 사이의 기구학적 관계를 기초로 결합된 전체 블록 모듈에 대한 기구학 라이브러리를 생성하는 기구학 라이브러리 생성부를 포함하는 것을 특징으로 한다. The present invention relates to an apparatus and method for automatically generating a kinematic software of a module-based robot, and an apparatus for automatically generating kinematic software of a module-based robot according to the present invention is characterized in that a relationship between module coordinate systems A connection point coordinate system setting unit for setting a connection point coordinate system at the connection point, a kinematic relationship setting unit for obtaining a kinematic relationship between the connection point coordinate systems set at each connection point, And a kinematic library generating unit for generating a kinematic library for the entire block module combined based on the kinematic relationship between the joint point coordinate system.

Description

모듈 기반 로봇의 기구학 소프트웨어를 자동으로 생성하는 장치 및 방법{APPARATUS AND METHOD FOR AUTOMATICALLY GENERATING THE KINEMATIC SOFTWARE FOR MODULES BASED ROBOT}[0001] APPARATUS AND METHOD FOR AUTOMATICALLY GENERATING THE KINEMATIC SOFTWARE FOR MODULES [0002] BASED ROBOT [0003]

본 발명은 모듈 기반 로봇의 기구학 소프트웨어를 자동으로 생성하는 장치 및 방법에 관한 것으로서, 보다 상세하게는 모듈화된 블록 모듈을 이용하여 임의의 형태의 로봇을 가상으로 모델링하고, 모델링된 로봇의 정/역 기구학 라이브러리를 자동으로 생성할 수 있는 모듈 기반 로봇의 기구학 소프트웨어를 자동으로 생성하는 장치 및 방법에 관한 것이다. More particularly, the present invention relates to an apparatus and method for automatically generating a kinematic software of a module-based robot, and more particularly, The present invention relates to an apparatus and method for automatically generating a kinematic software of a module-based robot capable of automatically generating a kinematic library.

최근에는 산업 현장 뿐만 아니라 실생활에서 사용되는 다양한 형태의 로봇이 개발되고 있다. 이러한 로봇은 사용 목적에 따라서 복수의 관절이 다양하게 제어 가능하게 결합하여 동작하게 된다. Recently, various types of robots used in real life as well as industrial fields are being developed. Such a robot can be operated by variously controllably combining a plurality of joints according to the purpose of use.

로봇을 개발하는 과정에서 로봇의 동작을 제어하는 제어 프로그램은 실제 제작하려는 로봇을 컴퓨터로 모델링하고 시뮬레이션하여 얻은 정보를 기초로 제작하는 것이 일반적이다. 예를 들어, 로봇의 엔드 이펙트가 A 지점에서 B 지점으로 움직일 때 장애물을 회피할 수 있는 최적의 이동 경로에 관한 정보 및 이동 경로에 따른 각 관절의 움직임에 관한 정보를 시뮬레이션 프로그래밍을 통해 획득하여 이를 기초로 제어 프로그램을 제작할 수가 있다.In general, the control program that controls the motion of the robot in the process of developing the robot is based on the information obtained by modeling and simulating the robot to be manufactured. For example, when the robot's end effect moves from point A to point B, information about the optimal path to avoid obstacles and information about the motion of each joint along the path is acquired through simulation programming, A control program can be produced on the basis of this.

이때, 서로 다른 형태의 로봇을 제작할 때마다 각 로봇에 대응하는 시뮬레이션 프로그램을 개별적으로 제작하는 것은 비용 및 시간의 낭비를 초래할 수가 있다. At this time, it is costly and time-consuming to individually produce the simulation programs corresponding to the robots each time a different type of robot is manufactured.

대한민국 공개특허 10-2014-0090601Korean Patent Publication No. 10-2014-0090601

따라서, 본 발명의 목적은 이와 같은 문제점을 해결하기 위한 것으로서, 모듈화된 블록 모듈을 이용하여 각 블록 모듈이 결합될 때 연결점 좌표계를 설정하며 임의의 형태의 로봇을 가상으로 모델링하고, 연결점 좌표계 사이의 기구학적 관계를 기초로 모델링된 로봇의 정/역 기구학 소프트웨어를 자동으로 생성할 수 있는 모듈 기반 로봇의 기구학 소프트웨어를 자동으로 생성하는 장치 및 방법을 제공함에 있다.Accordingly, an object of the present invention is to solve such a problem, and it is an object of the present invention to solve the above-mentioned problems, and it is an object of the present invention to provide a method for designing a connection point coordinate system when each block module is combined using a modularized block module, And an apparatus and method for automatically generating kinematic software of a module-based robot capable of automatically generating the inverse kinematics software of a robot modeled on a kinematic relationship.

본 발명이 해결하고자 하는 과제들은 이상에서 언급한 과제들로 제한되지 않으며, 언급되지 않은 또 다른 과제들은 아래의 기재로부터 당업자에게 명확하게 이해될 수 있을 것이다.The problems to be solved by the present invention are not limited to the above-mentioned problems, and other matters not mentioned can be clearly understood by those skilled in the art from the following description.

상기 목적은, 본 발명에 따라, 블록 모듈의 연결점에 정의된 모듈 좌표계 사이의 관계를 설정하여 두 블록 모듈을 상기 연결점에서 가상으로 결합시키는 블록 결합부; 상기 연결점에서의 연결점 좌표계를 설정하는 연결점 좌표계 설정부; 연결점에 설정된 연결점 좌표계들 사이의 기구학적 관계를 구하는 기구학 관계 설정부; 및 상기 연결점 좌표계 사이의 기구학적 관계를 기초로 결합된 전체 블록 모듈에 대한 기구학 라이브러리를 생성하는 기구학 라이브러리 생성부를 포함하는 모듈 기반 로봇의 기구학 소프트웨어를 자동으로 생성하는 장치에 의해 달성될 수가 있다. According to the present invention, the above objects can be accomplished by providing a method of controlling a system, comprising: a block combining unit for establishing a relationship between module coordinate systems defined at connection points of a block module to virtually combine two block modules at the connection point; A connection point coordinate system setting unit for setting a connection point coordinate system at the connection point; A kinematic relation setting unit for obtaining a kinematic relationship between coordinate points set at a connection point; And a kinematic library generator for generating a kinematic library for the entire block module coupled based on the kinematic relationship between the joint point coordinate system.

여기서, 상기 모듈 좌표계는 상기 연결점에서의 회전축을 제 1 축으로 상기 회전축에 수직인 면에 임의의 지정된 방향을 제 2 축으로 정의될 수가 있다. Here, the module coordinate system may be defined as a first axis, a rotation axis at the connection point, and a second axis, a predetermined direction on the plane perpendicular to the rotation axis.

여기서, 상기 모듈 좌표계는 상기 블록 모듈의 글로벌 좌표계를 기준으로 위치 및 방향의 이동으로 정의될 수가 있다.Here, the module coordinate system can be defined as a position and a direction movement based on the global coordinate system of the block module.

여기서, 상기 블록 결합부는 부모 블록 모듈의 연결점과 자식 블록 모듈의 연결점에 정의된 모듈 좌표계의 x축, -x축, y축, -y축, z축, -z축 중 두 쌍의 축을 일치시켜 결합시킬 수가 있다. In this case, the block combining unit sets two pairs of axes of the x, -x, y, -y, z, and -z axes of the module coordinate system defined at the connection point of the parent block module and the child block module Can be combined.

여기서, 상기 블록 결합부는 부모 블록 모듈의 연결점과 자식 블록 모듈의 연결점에 정의된 모듈 좌표계의 회전축인 상기 제 1 축을 일치시키고 상기 제 2 축 사이의 오프셋을 설정하여 결합시킬 수가 있다. Here, the block combining unit may match the first axis, which is the rotation axis of the module coordinate system defined at the connection point of the parent block module and the connection point of the child block module, and set the offset between the second axes.

여기서, 상기 블록 모듈의 연결점에는 회전 운동이 가능한 조인트 관절 및 회전 운동이 불가능한 어셈블리 관절이 정의되어 있고, 상기 블록 결합부는 두 블록 모듈 사이의 연결점이 모두 조인트 관절인 경우 두 블록 모듈을 결합시킬 수 없다. In this case, a joint joint capable of rotating and a joint joint capable of rotating are defined at the connection point of the block module, and the block joint can not be coupled to the two block modules when the connection points between the two block modules are all joint joints .

여기서, 상기 블록 모듈의 연결점에는 회전 운동이 가능한 조인트 관절 및 회전 운동이 불가능한 어셈블리 관절이 정의되어 있고, 상기 블록 결합부는 두 블록 모듈 사이의 연결점이 모두 어셈블리 관절인 경우 두 블록 모듈을 고정 결합시킬 수가 있다. In this case, a joint joint capable of rotating and a joint joint capable of rotating can be defined at a connection point of the block module, and when the connection points between the two block modules are all joint joints, have.

여기서, 상기 연결점 좌표계 설정부는 두 블록 모듈이 상기 연결점에서 결합되었을 때 상기 연결점에서의 부모 블록 모듈의 좌표계 또는 자식 블록 모듈의 좌표계 중 어느 하나를 이용하여 상기 연결점 좌표계를 설정할 수가 있다. The connection point coordinate system setting unit may set the connection point coordinate system using either the coordinate system of the parent block module at the connection point or the coordinate system of the child block module when the two block modules are combined at the connection point.

여기서, 상기 연결점 좌표계 설정부는 상기 연결점에서의 부모 블록 모듈의 좌표계 또는 자식 블록 모듈의 좌표계 중 어느 하나의 좌표계에서 직교하는 두 축을 선택하여 상기 연결점 좌표계를 수동으로 설정할 수가 있다. Here, the connection point coordinate system setting unit can manually set the connection point coordinate system by selecting two axes orthogonal to any one of the coordinate system of the parent block module or the child block module at the connection point.

여기서, 상기 연결점 좌표계 설정부는 상기 연결점에서의 부모 블록 모듈의 좌표계 또는 자식 블록 모듈의 좌표계 중 어느 하나의 좌표계에서 회전축인 제 1 축과 상기 회전축에 수직인 면에 임의의 지정된 방향으로 정의되는 제 2 축을 이용하여 상기 연결점 좌표계를 자동으로 설정할 수가 있다. In this case, the connection point coordinate system setting unit sets the connection point coordinate system based on the coordinate system of the parent block module or the coordinate system of the child block module at the connection point, the first axis being the rotation axis and the second axis Axis coordinate system can be automatically set using the axis.

여기서, 상기 연결점 좌표계는 글로벌 좌표계를 기준으로 설정될 수가 있다. Here, the connection point coordinate system can be set based on the global coordinate system.

또한, 상기 목적은, 본 발명에 따라, 블록 모듈의 연결점에 정의된 모듈 좌표계 사이의 관계를 설정하여 부모 블록 모듈의 연결점에 자식 블록 모듈의 연결점을 가상으로 결합시키는 단계; 및 상기 연결점에서의 연결점 좌표계를 설정하는 단계를 반복하여 복수의 블록 모듈로 형성되는 가상의 로봇을 형성하는 단계; 각 연결점에 설정된 연결점 좌표계들 사이의 기구학적 관계를 구하는 단계; 및 상기 연결점 좌표계 사이의 기구학적 관계를 기초로 상기 로봇에 대한 기구학 라이브러리를 생성하는 단계를 포함하는 모듈 기반 로봇의 기구학 소프트웨어를 자동을 생성하는 방법에 의해 달성될 수가 있다. According to another aspect of the present invention, there is provided a method of controlling an image processing apparatus, the method comprising: establishing a relationship between module coordinate systems defined at a connection point of a block module to virtually connect a connection point of a child block module to a connection point of the parent block module; And setting a connection point coordinate system at the connection point to form a virtual robot formed of a plurality of block modules; Obtaining a kinematic relationship between the joint point coordinate systems set at the respective joint points; And generating a kinematic library for the robot based on the kinematic relationship between the joint point coordinate system and the joint point coordinate system.

여기서, 상기 모듈 좌표계는 상기 연결점에서의 회전축을 제 1 축으로 상기 회전축에 수직인 면에 임의의 지정된 방향을 제 2 축으로 정의될 수가 있다. Here, the module coordinate system may be defined as a first axis, a rotation axis at the connection point, and a second axis, a predetermined direction on the plane perpendicular to the rotation axis.

여기서, 상기 모듈 좌표계는 상기 블록 모듈의 글로벌 좌표계를 기준으로 위치 및 방향의 이동으로 정의될 수가 있다. Here, the module coordinate system can be defined as a position and a direction movement based on the global coordinate system of the block module.

여기서, 상기 연결점에서 부모 블록 모듈에 자식 블록 모듈을 가상으로 결합시키는 단계는 상기 부모 블록 모듈의 연결점과 상기 자식 블록 모듈의 연결점에 정의된 모듈 좌표계의 x축, -x축, y축, -y축, z축, -z축 중 두 쌍의 축을 일치시켜 결합시킬 수가 있다. Here, the step of virtually coupling the parent block module to the parent block module at the connection point may include a step of connecting the child block module to the parent block module through the x-axis, the -x axis, the y- Axis, the z-axis, and the -z axis.

여기서, 상기 연결점에서 부모 블록 모듈에 자식 블록 모듈을 가상으로 결합시키는 단계는 부모 블록 모듈의 연결점과 자식 블록 모듈의 연결점에 정의된 모듈 좌표계의 회전축인 상기 제 1 축을 일치시키고 상기 제 2 축 사이의 오프셋을 설정하여 결합시킬 수가 있다. Herein, the step of virtually coupling the parent block module to the parent block module at the connection point is performed by matching the first axis which is the rotation axis of the module coordinate system defined at the connection point of the parent block module with the connection point of the child block module, The offset can be set and combined.

여기서, 상기 블록 모듈의 연결점에는 회전 운동이 가능한 조인트 관절 및 회전 운동이 불가능한 어셈블리 관절이 정의되어 있고, 상기 연결점에서 부모 블록 모듈에 자식 블록 모듈을 가상으로 결합시키는 단계에서 상기 부모 블록 모듈과 상기 자식 블록 모듈 사이의 연결점이 모두 조인트 관절인 경우 상기 부모 블록 모듈에 상기 자식 블록 모듈을 결합시킬 수 없다.In this case, a joint joint capable of rotating movement and an assembly joint impossible to rotate are defined at the connection point of the block module, and in the step of virtually coupling the parent block module to the parent block module at the connection point, The child block module can not be coupled to the parent block module when all of the connection points between the block modules are joint joints.

여기서, 상기 블록 모듈의 연결점에는 회전 운동이 가능한 조인트 관절 및 회전 운동이 불가능한 어셈블리 관절이 정의되어 있고, 상기 연결점에서 부모 블록 모듈에 자식 블록 모듈을 가상으로 결합시키는 단계에서 상기 부모 블록 모듈과 상기 자식 블록 모듈 사이의 연결점이 모두 어셈블리 관절인 경우 두 블록 모듈은 고정 결합될 수가 있다. In this case, a joint joint capable of rotating movement and an assembly joint impossible to rotate are defined at the connection point of the block module, and in the step of virtually coupling the parent block module to the parent block module at the connection point, If the connection points between the block modules are all assembly joints, the two block modules can be fixedly coupled.

여기서, 상기 연결점 좌표계를 설정하는 단계는 상기 부모 블록 모듈에 상기 자식 블록 모듈이 연결점에서 결합되었을 때 상기 연결점에서의 부모 블록 모듈의 좌표계 또는 자식 블록 모듈의 좌표계 중 어느 하나를 이용하여 상기 연결점 좌표계를 설정할 수가 있다. Here, the step of setting the connection point coordinate system may include a step of setting the connection point coordinate system using the coordinate system of the parent block module at the connection point or the coordinate system of the child block module when the child block module is coupled at the connection point to the parent block module Can be set.

여기서, 상기 연결점 좌표계를 설정하는 단계는 상기 연결점에서의 부모 블록 모듈의 좌표계 또는 자식 블록 모듈의 좌표계 중 어느 하나의 좌표계에서 직교하는 두 축을 선택하여 상기 연결점 좌표계를 수동으로 설정할 수가 있다. Here, the step of setting the joint point coordinate system may manually set the joint point coordinate system by selecting two axes orthogonal to one of the coordinate system of the parent block module or the child block module of the child block module at the connection point.

여기서, 상기 연결점 좌표계를 설정하는 단계는 상기 연결점에서의 부모 블록 모듈의 좌표계 또는 자식 블록 모듈의 좌표계 중 어느 하나의 좌표계에서 회전축인 제 1 축과 상기 회전축에 수직인 면에 임의의 지정된 방향으로 정의되는 제 2 축을 이용하여 상기 연결점 좌표계를 자동으로 설정할 수가 있다. Here, the step of setting the connection point coordinate system may include defining a first axis as a rotation axis and a predetermined direction in a plane perpendicular to the rotation axis in a coordinate system of the coordinate system of the parent block module or the coordinate system of the child block module at the connection point The coordinate system of the connection point can be automatically set using the second axis.

여기서, 상기 연결점 좌표계는 글로벌 좌표계를 기준으로 설정될 수가 있다. Here, the connection point coordinate system can be set based on the global coordinate system.

상기한 바와 같은 본 발명의 모듈 기반 로봇의 기구학 소프트웨어를 자동으로 생성하는 장치 및 방법에 따르면 모듈화된 블록 모듈을 결합하여 다양한 형태의 로봇에 대한 정/역기구학 해석을 위한 라이브러리를 자동으로 생성할 수가 있어서 로봇의 제작에 소요되는 시간과 비용을 줄일 수 있다는 장점이 있다. According to the apparatus and method for automatically generating the kinematic software of the module-based robot of the present invention as described above, a library for the inverse kinematic analysis of various types of robots can be automatically generated by combining the modularized block modules And thus it is possible to reduce the time and cost required for manufacturing the robot.

또한, 각 블록 모듈의 연결점에 회전 운동이 가능한 조인트 관절 및 회전 운동이 불가능한 어셈블리 관절로 제한 조건을 설정하여 실제 하드웨어의 환경에 부합하도록 로봇을 모델링할 수 있다는 장점도 있다.In addition, there is an advantage that the robot can be modeled to meet the environment of the actual hardware by setting the constraint condition of the joint joint capable of rotating at the connection point of each block module and the assembly joint impossible to rotate.

또한, 각 블록 모듈을 결합시킬 때 직교 결합 뿐만 아니라 임의 각도의 회전 결합도 가능하여 실제 하드웨어 환경에 부합하도록 로봇을 모델링할 수 있다는 장점도 있다. In addition, when combining each block module, it is possible to model not only the orthogonal coupling but also the rotational coupling at an arbitrary angle, so that the robot can be modeled in accordance with the actual hardware environment.

도 1은 본 발명의 일 실시예에 따른 모듈 기반 로봇의 기구학 소프트웨어의 개략적인 구조도를 도시한다.
도 2는 블록 모듈의 다양한 예를 도시한다.
도 3은 본 발명의 일 실시예에 따른 모듈 기반 로봇의 기구학 소프트웨어를 자동으로 생성하는 장치에 의해 부모 블록 모듈에 자식 블록 모듈을 결합하는 모습을 보여주는 도면이다.
도 4는 블록 모듈에 정의되는 모듈 좌표계의 일 예를 도시한다.
도 5는 블록 모듈 사이의 직교 결합의 일 예를 도시한다.
도 6은 블록 모듈 사이의 회전 결합의 일 예를 도시한다.
도 7은 본 발명의 일 실시예에 따른 모듈 기반 로봇의 기구학 소프트웨어를 자동으로 생성하는 장치에 의해 최종적으로 모델링된 로봇의 일 예를 도시한다.
도 8은 도 7의 모델링된 로봇에 대하여 자동으로 생성되어 블록 모듈 사이의 연결관계를 표현하는 파일 내용의 일 예를 나타낸다.
도 9는 본 발명의 일 실시예에 따른 모듈 기반 로봇의 기구학 소프트웨어를 자동으로 생성하는 방법의 순서도이다.
1 shows a schematic diagram of a kinematic software of a module-based robot according to an embodiment of the present invention.
Figure 2 shows various examples of block modules.
FIG. 3 is a view showing a child block module coupled to a parent block module by an apparatus for automatically generating a kinematic software of a module-based robot according to an embodiment of the present invention.
Fig. 4 shows an example of a module coordinate system defined in a block module.
Figure 5 shows an example of orthogonal coupling between block modules.
Figure 6 shows an example of rotational coupling between block modules.
FIG. 7 illustrates an example of a robot finally modeled by an apparatus for automatically generating the kinematic software of a module-based robot according to an embodiment of the present invention.
FIG. 8 shows an example of file contents automatically generated for the modeled robot of FIG. 7 to express the connection relationship between the block modules.
9 is a flowchart of a method for automatically generating kinematic software of a module-based robot according to an embodiment of the present invention.

실시예들의 구체적인 사항들은 상세한 설명 및 도면들에 포함되어 있다.The details of the embodiments are included in the detailed description and the drawings.

본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하고, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다. 명세서 전체에 걸쳐 동일 참조 부호는 동일 구성 요소를 지칭한다 BRIEF DESCRIPTION OF THE DRAWINGS The advantages and features of the present invention and the manner of achieving them will become apparent with reference to the embodiments described in detail below with reference to the accompanying drawings. The present invention may, however, be embodied in many different forms and should not be construed as limited to the embodiments set forth herein. Rather, these embodiments are provided so that this disclosure will be thorough and complete, and will fully convey the scope of the invention to those skilled in the art. To fully disclose the scope of the invention to those skilled in the art, and the invention is only defined by the scope of the claims. Like reference numerals refer to like elements throughout the specification.

이하, 본 발명의 실시예들에 의하여 모듈 기반 로봇의 기구학 소프트웨어를 자동으로 생성하는 장치 및 방법을 설명하기 위한 도면들을 참고하여 본 발명에 대해 설명하도록 한다.Hereinafter, the present invention will be described with reference to the drawings for explaining an apparatus and method for automatically generating kinematic software of a module-based robot according to embodiments of the present invention.

도 1은 본 발명의 일 실시예에 따른 모듈 기반 로봇의 기구학 소프트웨어의 개략적인 구조도를 도시하고, 도 2는 블록 모듈의 다양한 예를 도시하고, 도 3은 본 발명의 일 실시예에 따른 모듈 기반 로봇의 기구학 소프트웨어를 자동으로 생성하는 장치에 의해 부모 블록 모듈에 자식 블록 모듈을 결합하는 모습을 보여주는 도면이고, 도 4는 블록 모듈에 정의되는 모듈 좌표계의 일 예를 도시하고, 도 5는 블록 모듈 사이의 직교 결합의 일 예를 도시하고, 도 6은 블록 모듈 사이의 회전 결합의 일 예를 도시하고, 도 7은 본 발명의 일 실시예에 따른 모듈 기반 로봇의 기구학 소프트웨어를 자동으로 생성하는 장치에 의해 최종적으로 모델링된 로봇의 일 예를 도시하고, 도 8은 도 7의 모델링된 로봇에 대하여 자동으로 생성되어 블록 모듈 사이의 연결관계를 표현하는 파일 내용의 일 예를 나타낸다.FIG. 1 shows a schematic structural view of a module-based robot's kinematic software according to an embodiment of the present invention, FIG. 2 shows various examples of a block module, FIG. 3 shows a module- FIG. 4 shows an example of a module coordinate system defined in a block module, FIG. 5 shows an example of a module coordinate system defined in a block module, FIG. Fig. 6 shows an example of rotational coupling between block modules, and Fig. 7 is a block diagram of an apparatus for automatically generating kinematic software of a module-based robot according to an embodiment of the present invention. Fig. 8 shows an example of a robot finally modeled by the robot, Fig. It shows an example of the contents of the file to.

도 1에 도시되어 있는 것과 같이, 본 발명의 일 실시예에 따른 모듈 기반 로봇의 기구학 소프트웨어를 자동으로 생성하는 장치(100)는 블록 결합부(110), 연결점 좌표계 설정부(120), 기구학 관계 설정부(130) 및 기구학 라이브러리 생성부(140)를 포함하여 구성될 수가 있다.  1, an apparatus 100 for automatically generating a kinematic software of a module-based robot according to an embodiment of the present invention includes a block coupling unit 110, a connection point coordinate system setting unit 120, A setting unit 130 and a kinematic library generating unit 140. [

블록 결합부(110)는 미리 형태가 정의된 복수의 블록 모듈(200)을 이용하여 각 블록 모듈(200)의 연결점(205)에 정의된 모듈 좌표계 사이의 관계를 설정하여 두 블록 모듈(200)을 연결점(205)에서 가상으로 결합시킨다. The block joining unit 110 sets the relationship between module coordinate systems defined in the connection point 205 of each block module 200 using a plurality of block modules 200 defined in advance, At the connection point 205.

도 2는 다양한 형태의 블록 모듈(200a, 200b, 200c, 200d, 200e)을 도시하고 있는데, 각 블록 모듈(200a, 200b, 200c, 200d, 200e)의 소정의 위치에는 연결점(205)이 존재한다. 연결점(205)은 하드웨어 상에서 로봇을 구성하는 각 링크들이 결합되는 관절 지점을 의미하는 것으로, 두 블록 모듈(200)에 형성된 연결점(205)을 접합시킴으로써 두 블록 모듈(200)을 가상으로 결합시킬 수가 있다. FIG. 2 shows various types of block modules 200a, 200b, 200c, 200d, and 200e. A connection point 205 exists at a predetermined position of each of the block modules 200a, 200b, 200c, 200d, and 200e . The connection point 205 is a joint point where each link constituting the robot is coupled on hardware. By connecting the connection point 205 formed in the two block modules 200, it is possible to virtually combine the two block modules 200 have.

이때, 도 2에 도시되어 있는 것과 같이 각 블록 모듈(200a, 200b, 200c, 200d, 200e)에는 복수의 연결점(205)이 형성될 수가 있으며, 각 연결점(205)에는 임의의 모듈 좌표계가 미리 설정되어 있을 수가 있다. 도 4는 도 2에 도시된 블록 모듈(200a, 200b, 200c, 200d, 200e) 중에서 도 2의 (d)와 도 2의 (e)의 블록 모듈(200d, 200e)에 대해서 미리 정의된 모듈 좌표계의 일 예를 도시하고 있는데, 이때 모듈 좌표계는 연결점(205)에서의 회전축(연결점(205)에서 블록 모듈(200)의 바디로부터 나오는 방향)을 제 1 축으로(x축, y축, z축, -x축, -y축, -z축 중 예를 들어 z축으로) 설정하고 회전축인 제 1 축에 수직인 면에 속하는 방향으로 임의의 지정된 방향을 제 2 축으로(예를 들어, x축으로) 정의될 수가 있는데, 이에 한정되는 것은 아니다. 이때, 상기와 같은 방법으로 제 1 축과 제 2 축이 정의되면 나머지 축(예를 들어 y축)은 자동으로 정의될 수가 있다. 2, a plurality of connection points 205 may be formed in each of the block modules 200a, 200b, 200c, 200d, and 200e, and an arbitrary module coordinate system may be preset . FIG. 4 is a block diagram illustrating a module coordinate system (hereinafter, referred to as " module coordinate system ") predefined for the block modules 200d and 200e shown in FIG. 2 (d) (The direction from the body of the block module 200 at the connection point 205) of the connection point 205 to the first axis (x-axis, y-axis, z-axis) (e.g., x-axis, -y axis, or -z axis, for example, z axis), and a predetermined direction in a direction belonging to a plane perpendicular to the first axis, which is a rotation axis, Axis), but is not limited thereto. At this time, if the first axis and the second axis are defined as described above, the remaining axes (e.g., the y axis) can be automatically defined.

이때, 블록 모듈(200)의 연결점(205)에 미리 정의되는 모듈 좌표계는 블록 모듈(200)의 글로벌 좌표계를 기준으로 위치와 방향의 이동으로 표시될 수가 있다. 이때, 위치는 모듈 좌표계의 원점의 좌표이며, 방향은 글로벌 좌표계의 x축, y축, z축을 중심으로 모듈 좌표계의 회전각도를 의미할 수가 있다. At this time, the module coordinate system defined in advance at the connection point 205 of the block module 200 can be displayed as the movement of the position and the direction with reference to the global coordinate system of the block module 200. In this case, the position is the coordinate of the origin of the module coordinate system, and the direction can be the rotation angle of the module coordinate system around the x, y, and z axes of the global coordinate system.

블록 모듈(200)의 형상, 연결점(205)의 위치, 각 모듈 좌표계의 정의는 도 2 및 도 4에 도시된 것을 기초로 설명한 것에 한정되는 것이 아니라 다양하게 변형 및 추가가 가능할 수가 있다. The shape of the block module 200, the position of the connection point 205, and the definition of each module coordinate system are not limited to those described with reference to FIGS. 2 and 4, but may be variously modified and added.

도 3은 본 발명의 일 실시예에 따른 모듈 기반 로봇의 기구학 소프트웨어를 자동으로 생성하는 장치를 이용하여 블록 모듈(200)을 연결시키며 로봇을 모델링하는 과정을 도시하고 있는데, 일측에 있는 창(310)에는 모델링 과정에서 사용할 수 있는 다양한 형태의 블록 모듈(200)의 리스트가 도시되어 있고, 이로부터 결합하고자 하는 블록 모듈(200d)을 선택하여 현재 모델링되어 있는 블록 모듈(200)의 연결점(205)에 추가로 결합시키는 방법으로 로봇의 모델링 작업이 수행될 수가 있다. FIG. 3 illustrates a process of modeling a robot by connecting a block module 200 using an apparatus for automatically generating a kinematic software of a module-based robot according to an embodiment of the present invention. Shows a list of various types of block modules 200 that can be used in the modeling process and selects a block module 200d to be coupled and selects a connection point 205 of the block module 200, The robot modeling operation can be performed by combining the robot model with the robot model.

이때, 블록 결합부(110)에 의해 두 블록 모듈(200)을 결합시킬 때 본 발명에서는 직교 결합 방법과 회전 결합 방법의 두 가지의 방법을 사용할 수가 있다. At this time, when the two block modules 200 are coupled by the block coupling unit 110, two methods of the present invention can be used: the orthogonal coupling method and the rotational coupling method.

먼저, 블록 결합부(110)는 부모 블록 모듈의 연결점과 자식 블록 모듈의 연결점에 정의된 모듈 좌표계의 x축, -x축, y축, -y축, z축, -z축 중 어느 두 쌍의 축 방향을 일치시키는 방법으로 두 블록 모듈을 직교 결합시킬 수가 있다. 이때, 일치할 두 쌍의 축이 결정되면 나머지 한 쌍의 축은 자동으로 결정될 수가 있다. First, the block combining unit 110 determines which of two pairs of x-axis, -x axis, y-axis, -y-axis, z-axis, and -z axis of the module coordinate system defined at the connection point of the parent block module and the connection point of the child block module So that the two block modules can be orthogonally coupled. At this time, if two pairs of axes to be matched are determined, the other pair of axes can be automatically determined.

도 4의 (a)와 (b)에 도시된 모듈 좌표계가 설정된 두 블록 모듈(200d, 200f)이 직교 결합에 의해 결합되는 경우의 모든 예를 도 5에 도시하고 있다. 전술한 바와 같이 모듈 좌표계는 미리 정의되거나 사용자에 의해 설정되는 좌표계인데, 이때 두 블록 모듈(200d, 200f)의 연결점(205)에서 두 블록 모듈(200d, 200f)을 결합시킬 때 각 모듈 좌표계의 두 축을 일치시키기 위해서는 도시되어 있는 것과 같이 90도의 각도로 회전하며 결합하는 네 가지 방법의 결합을 고려할 수가 있다. FIG. 5 shows all examples of the case where the two block modules 200d and 200f having the module coordinate system shown in FIGS. 4 (a) and 4 (b) are coupled by the orthogonal coupling. As described above, the module coordinate system is predefined or set by the user. When combining the two block modules 200d and 200f at the connection point 205 of the two block modules 200d and 200f, In order to match the axes, it is possible to consider the combination of the four methods of rotating and coupling at an angle of 90 degrees as shown.

또한, 블록 결합부(110)는 부모 블록 모듈(200d)의 연결점(205)에서의 회전축인 제 1 축(도 6에서 AP2의 z축)과 자식 블록 모듈(200e)의 연결점(205)에서의 회전축인 제 1 축(도 6에서 BP1의 z축)을 일치(여기서 일치라고 하면 도 6에 도시되어 있는 것과 같이 두 z축이 겹쳐지고 방향이 서로 반대인 경우를 포함 함)시키고, 회전축인 제 1 축에 수직인 면에 임의로 지정된 제 2 축 사이의 오프셋을 사용자가 임의로 설정하는 방법으로 회전 결합시킬 수가 있다. 참고로, 도 6에서 두 모듈 좌표계 사이에 x축 또는 y축은 서로 직교하거나 겹쳐지지 않고 소정의 각도로 오프셋되어 있음을 알 수 있다. 6) of the parent block module 200d and the connection point 205 between the child block module 200e and the first axis (the z axis of AP 2 in FIG. 6) match the rotational axis of the first axis (z-axis in the BP 1 in Fig. 6) (if that match here is the two z-axis override, as shown in Figure 6 including the case where the direction is opposite to each other), and the rotational axis The offset between the second axes arbitrarily specified on the plane perpendicular to the first axis, which is the first axis, can be arbitrarily set by the user. In FIG. 6, it can be seen that the x-axis or the y-axis between two module coordinate systems are orthogonal to each other or offset at a predetermined angle without overlapping.

도 5를 참조로 전술한 직교 결합의 경우 두 블록 모듈(200d, 200e) 사이에 네 가지 경우의 결합만이 가능하나, 도 6의 회전 결합의 경우 사용자가 오프셋 값을 임의로 설정함으로써 다양한 각도로 두 블록 모듈(200d, 200e)을 결합시킬 수가 있다. 따라서, 회전 결합의 방법을 사용하는 경우 실제 하드웨어 결합과 같이 다양한 각도로 두 블록 모듈(200)을 결합시킬 수가 있다. In the case of the orthogonal coupling described above with reference to FIG. 5, only four types of coupling are possible between the two block modules 200d and 200e, but in the case of the rotational coupling of FIG. 6, The block modules 200d and 200e can be coupled. Accordingly, when the rotational coupling method is used, the two block modules 200 can be coupled at various angles, such as actual hardware coupling.

또한, 본 발명에서는 블록 모듈(200)의 연결점(205)에는 미리 회전 운동이 가능한 조인트 관절 및 회전 운동이 불가능한 어셈블리 관절이 정의되어 있을 수가 있다. 여기서 회전 운동이 가능한 조인트 관절이라고 하면 실제 하드웨어에서 모터가 장착되어 회전 운동을 하는 관절 지점을 의미할 수가 있고, 회전 운동이 불가능한 어셈블리 관절은 실제 하드웨어에서 모터가 장착되지 않고 단순 결합만 하는 관절 지점을 의미할 수가 있다. Also, in the present invention, a joint joint capable of rotating in advance and an assembly joint in which rotation can not be performed may be defined in the connection point 205 of the block module 200. Here, joint joints that can be rotated can mean joint points where a motor is mounted and rotate in actual hardware. Assembly joints that can not be rotated can not be mounted on motors in actual hardware, It can mean.

이때, 본 발명에서는 블록 모듈(200)이 결합되는 두 연결점(205)이 각각 조인트 관절과 어셈블리 관절로 각기 다르게 설정된 경우에는 두 블록 모듈(200) 사이의 결합이 가능하며, 또한 조인트 관절에 의해 결합 부위에서의 회전 운동이 가능할 수가 있다. In this case, in the present invention, when the two connection points 205 to which the block module 200 is coupled are respectively set to joint joints and assembly joints, coupling between the two block modules 200 is possible, It is possible to perform rotational motion in the region.

또한, 블록 모듈(200)이 결합되는 두 연결점(205)이 모두 어셈블리 관절로 설정된 경우에는 두 블록 모듈(200) 사이의 결합은 가능하나, 결합 부위에서의 회전 운동은 불가능할 수가 있다. When both of the connection points 205 to which the block module 200 is coupled are all set as assembly joints, coupling between the two block modules 200 is possible, but rotational movement at the coupling site may not be possible.

하지만, 본 발명에서 두 블록 모듈(200)이 결합되는 연결점(205)이 모두 조인트 관절로 설정된 경우에는 두 블록 모듈(200) 사이의 결합이 불가능할 수가 있다. 두 연결점(205)이 모두 조인트 관절로 설정되었다 함은 실제 하드웨어에서 모터가 장착된 두 관절이 결합되어 있는 것을 의미하는데, 실제 하드웨어에서 관절에 두 모터가 동시에 장착되는 경우 특정 각도의 관절의 회전을 설정하기 위해 수 많은 경우의 수가 발생하기 때문에, 후술하는 기구학 관계 설정부(130)에서 이웃하는 블록 모듈(200) 사이의 기구학적 관계를 계산하는 것이 불가능하게 된다. 따라서, 본 실시예에서는 블록 모듈(200)의 연결점(205)을 조인트 관절 또는 어셈블리 관절로 미리 정의를 하되, 두 연결점(205)이 모두 조인트 관절인 경우에는 블록 모듈(200) 사이의 결합이 불가능하도록 설정하여 실제 하드웨어에서의 연결과 근사시키도록 할 수 있다. However, in the present invention, when the connection points 205 connecting the two block modules 200 are all set as joint joints, coupling between the two block modules 200 may not be possible. The two joints 205 are all set as joint joints, which means that two joints equipped with motors are combined in actual hardware. In actual hardware, when two motors are simultaneously mounted on a joint, It is impossible to calculate the kinematic relationship between the neighboring block modules 200 in the kinematic relation setting section 130 described later. Therefore, in the present embodiment, the connection point 205 of the block module 200 is defined in advance as a joint joint or an assembly joint, and when both of the connection points 205 are joint joints, coupling between the block modules 200 is not possible To approximate the connection in real hardware.

연결점 좌표계 설정부(120)는 두 블록 모듈(200) 사이에 결합되는 연결점(205)에서의 연결점 좌표계를 설정한다. 연결점 좌표계 설정부(120)는 후술하는 기구학 관계 설정부(130)에서의 기구학 해석을 위해 필요한 연결점(205)에서의 좌표계를 설정하는 것이다. The connection point coordinate system setting unit 120 sets a connection point coordinate system at a connection point 205 coupled between the two block modules 200. The connection point coordinate system setting unit 120 sets the coordinate system at the connection point 205 necessary for the kinematic analysis in the kinematic relationship setting unit 130 to be described later.

이때, 연결점 좌표계의 값은 글로벌 좌표계를 기준으로 설정되거나, 또는 연결되는 부모 블록 모듈(200)의 좌표계 또는 자식 블록 모듈(200)의 좌표계를 기준으로 설정될 수가 있다. At this time, the value of the connection point coordinate system may be set based on the global coordinate system, or may be set based on the coordinate system of the parent block module 200 or the coordinate system of the child block module 200 to be connected.

또한, 연결점 좌표계는 연결점(205)에서의 부모 블록 모듈(200)의 좌표계 또는 자식 블록 모듈(200)의 좌표계 중 어느 하나를 이용하여 설정될 수가 있다. 본 발명에서 사용자가 임의로 설정하는 수동 설정 방법과 블록 결합부(110)에 의해 블록 모듈(200)의 결합 시 자동으로 설정되는 자동 설정 방법으로 연결점 좌표계를 설정할 수가 있다.The connection point coordinate system can be set using either the coordinate system of the parent block module 200 at the connection point 205 or the coordinate system of the child block module 200. In the present invention, a connection point coordinate system can be set by a manual setting method that a user arbitrarily sets and an automatic setting method that is set automatically when the block module 200 is combined by the block combining unit 110. [

수동 설정 방법은 부모 블록 모듈의 연결점(205)에서의 좌표계 또는 자식 블록 모듈의 연결점(205)에서의 좌표계에서 임의의 두 축을 사용자가 설정하도록 하여 연결점 좌표계를 설정한다. 직교 좌표계에서 임의의 두 축이 결정되면 나머지 축은 자동으로 정의될 수가 있기 때문이다. In the manual setting method, the user sets the arbitrary two axes in the coordinate system at the connection point 205 of the parent block module or the connection point 205 of the child block module, thereby setting the connection point coordinate system. If any two axes are determined in the Cartesian coordinate system, the remaining axes can be defined automatically.

자동 설정 방법은 두 블록 모듈(200)이 결합될 때 회전축과 모듈 좌표계의 정의 시 회전축에 수직인 면에 임의의 지정된 방향으로 정의되는 축을 두 축으로 설정하는 방법으로 연결 좌표계를 자동으로 설정할 수가 있다. In the automatic setting method, when the two block modules 200 are combined, the connection coordinate system can be automatically set by defining an axis defined in a predetermined direction in two axes on the plane perpendicular to the rotation axis when defining the rotation axis and the module coordinate system .

도 7은 본 발명에 따라 블록 모듈(200)을 이용하여 최종적으로 모델링된 로봇을 도시한다. 도면에서 번호는 각 블록 모듈(200)을 나타내며, 이때 앞선 번호가 부모 블록 모듈(200)이고 이어지는 다음 번호가 자식 블록 모듈(200)이다. 참고로, 연결점 좌표계는 블록 모듈 1과 블록 모듈 2 사이의 연결점(205)과 블록 모듈 2와 블록 모듈 3 사이의 연결점(205)에만 도시되어 있다. Figure 7 illustrates a robot eventually modeled using the block module 200 in accordance with the present invention. In the figure, the number indicates each block module 200, and the number preceding the block module 200 is the parent block module 200, and the next number is the child block module 200. For reference, the joint point coordinate system is shown only at the connection point 205 between the block module 1 and the block module 2 and at the connection point 205 between the block module 2 and the block module 3.

도 7에서 모델링된 로봇에 관하여 자동으로 생성된 소스코드가 도 8에 도시되어 있다. The automatically generated source code for the robot modeled in Fig. 7 is shown in Fig.

도 8에서 part id는 블록 모듈(200)의 번호이며, parent id는 현재의 블록 모듈이 결합되는 부모 블록 모듈의 번호이며, parentAssemblyJointIndex는 부모 블록 모듈의 연결점(205)에서의 관절 조건(조인트 관절 또는 어셈블리 관절인지의 여부)을, assemblyjointIndex는 현재 블록 모듈의 연결점(205)에서의 관절 조건을, parentAxis1과 childAxis1은 각각 두 블록 모듈이 직교 결합할 때 부모 블록 모듈과 자식 블록 모듈의 모듈 좌표계에서의 일치되는 제 1 축을, parentAxis2와 childAxis2는 각각 두 블록 모듈이 직교 결합할 때 부모 블록 모듈과 자식 블록 모듈의 모듈 좌표계에서의 일치되는 제 2 축을, rotaionAxisZ와 rotationAxisX는 각각 글로벌 좌표계를 기준으로 연결점 좌표계의 Z축과 X축을 나타낸다. 8, the part id is the number of the block module 200, the parent id is the number of the parent block module to which the current block module is coupled, and the parentAssemblyJointIndex is the joint condition The assembly joint ID is the joint condition at the connection point 205 of the current block module, and parentAxis1 and child Axis1 are the coincidence in the module coordinate system of the parent block module and the child block module when the two block modules are orthogonal joined, ParentAxis2 and childAxis2 are the second axes corresponding to each other in the module coordinate system of the parent block module and the child block module when the two block modules are orthogonal to each other, respectively. RotaionAxisZ and rotationAxisX are the coordinate axes of the connecting point coordinate system Z Axis and X-axis.

기구학 관계 설정부(130)는 상기와 같이 최종적으로 모델링된 로봇에 대해서 DH(Denavit-Hatenberg) 파라미터 또는 mDH(modified Denavit-Hatenberg) 파라미터 등의 연결점 좌표계를 사이의 기구학적 관계를 구한다. The kinematic relation setting unit 130 obtains the kinematic relationship between the connection point coordinate system such as DH (Denavit-Hatenberg) parameter or mDH (modified Denavit-Hatenberg) parameter for the finally modeled robot.

기구학 라이브러리 생성부(140)는 기구학 관계 설정부(130)에서 구한 연결점 좌표계 사이의 기구학적 관계를 기초로 모델링된 전체 로봇에 대한 정역 기구학 라이브러리를 자동으로 생성한다. The kinematic library generating unit 140 automatically generates a normal and kinematic library for all the robots modeled on the basis of the kinematic relationship between the joint point coordinate systems obtained by the kinematic relationship setting unit 130.

이하, 도 9를 참조로 본 발명의 일 실시예에 따른 모듈 기반 로봇의 기구학 소프트웨어를 자동을 생성하는 방법에 대해서 설명하기로 한다.Hereinafter, a method for automatically generating kinematic software of a module-based robot according to an embodiment of the present invention will be described with reference to FIG.

도 9는 본 발명의 일 실시예에 따른 모듈 기반 로봇의 기구학 소프트웨어를 자동으로 생성하는 방법의 순서도이다. 9 is a flowchart of a method for automatically generating kinematic software of a module-based robot according to an embodiment of the present invention.

먼저, 블록 결합부(110)는 블록 모듈(200)의 연결점(205)에 정의된 모듈 좌표계 사이의 관계를 설정하여 부모 블록 모듈(200)의 연결점(205)에 자식 블록 모듈(200)의 연결점(205)을 가상으로 결합시킨다(S410). 이때, 도 2 내지 도 6을 참조로 설명한 바와 같이, 블록 모듈(200)의 형상 및 연결점에서의 모듈 좌표계는 미리 정의되어 있고, 두 블록 모듈(200)을 결합시키기 위해 각 블록 모듈(200)의 연결점(205)에 정의된 모듈 좌표계 사이의 관계를 설정하는 방법으로 직교 결합 방법과 회전 결합 방법 중 어느 하나를 사용하여 두 블록 모듈을 가상으로 결합시킬 수가 있다. First, the block combining unit 110 sets the relationship between the module coordinate systems defined in the connection point 205 of the block module 200 to connect the connection point 205 of the parent block module 200 to the connection point 205 of the child block module 200 (Step S410). 2 to 6, the module coordinate system at the shape and connection point of the block module 200 is defined in advance. In order to couple the two block modules 200, Two block modules can be virtually combined using either the orthogonal coupling method or the rotational coupling method by setting the relation between the module coordinate systems defined at the connection point 205. [

다음, 부모 블록 모듈(200)에 자식 블록 모듈(200)이 가상으로 결합되면 연결점 좌표계 설정부(120)는 결합되는 연결점(205)에서 연결점 좌표계를 설정한다(S420). 연결점 좌표계는 전술한 바와 같이 사용자에 의해 임의의 두 축을 지정하여 설정되는 수동 설정 방법과 회전축을 중심으로 자동으로 설정되는 자동 설정 방법으로 설정될 수가 있다. Next, when the child block module 200 is virtually coupled to the parent block module 200, the connection point coordinate system setting unit 120 sets a connection point coordinate system at the connection point 205 to be coupled (S420). The connection point coordinate system can be set by a manual setting method which is set by designating arbitrary two axes by the user and an automatic setting method which is automatically set around the rotation axis as described above.

상기와 같은 방법으로 블록 모듈(200)을 연속하여 결합시키는 방법으로 최종적으로 모델링된 로봇을 생성할 수가 있다. By finally connecting the block modules 200 in the same manner as described above, a finally modeled robot can be created.

다음, 기구학 관계 설정부(130)는 최종적으로 모델링된 로봇에 대해서 연결점 좌표계 사이의 기구학적 관계를 구하고(S430), 기구학 라이브러리 생성부(140)는 이러한 기구학적 관계를 기초로 정역기구학 해석이 가능한 시뮬레이션 소프트웨어를 생성한다(S440). Next, the kinematic relation establishing unit 130 obtains a kinematic relationship between the connection point coordinate systems for the finally modeled robot (S430), and the kinematic library generating unit 140 generates a kinematic relation Simulation software is generated (S440).

본 발명의 권리범위는 상술한 실시예에 한정되는 것이 아니라 첨부된 특허청구범위 내에서 다양한 형태의 실시예로 구현될 수 있다. 특허청구범위에서 청구하는 본 발명의 요지를 벗어남이 없이 당해 발명이 속하는 기술 분야에서 통상의 지식을 가진 자라면 누구든지 변형 가능한 다양한 범위까지 본 발명의 청구범위 기재의 범위 내에 있는 것으로 본다.The scope of the present invention is not limited to the above-described embodiments, but may be embodied in various forms of embodiments within the scope of the appended claims. It will be understood by those skilled in the art that various changes in form and details may be made therein without departing from the spirit and scope of the present invention as defined by the appended claims.

100: 모듈 기반 로봇의 기구학 소프트웨어를 자동으로 생성하는 장치
110: 블록 결합부
120: 연결점 좌표계 설정부
130: 기구학 관계 설정부
140: 기구학 라이브러리 생성부
200: 블록 모듈
205: 연결점
100: Device for automatically generating kinematic software of a module-based robot
110:
120: Connection point coordinate system setting unit
130: Kinematics relation setting section
140: Kinematic library generating unit
200: Block module
205: Connection point

Claims (22)

블록 모듈의 연결점에 정의된 모듈 좌표계 사이의 관계를 설정하여 두 블록 모듈을 상기 연결점에서 가상으로 결합시키는 블록 결합부;
상기 연결점에서의 연결점 좌표계를 설정하는 연결점 좌표계 설정부;
각 연결점에 설정된 연결점 좌표계들 사이의 기구학적 관계를 구하는 기구학 관계 설정부; 및
상기 연결점 좌표계 사이의 기구학적 관계를 기초로 결합된 전체 블록 모듈에 대하여 각 연결점 사이의 정기구학 및 역기구학 라이브러리를 생성하는 기구학 라이브러리 생성부를 포함하는 모듈 기반 로봇의 기구학 소프트웨어를 자동으로 생성하는 장치.
A block combining unit configured to virtually combine the two block modules at the connection point by setting a relationship between module coordinate systems defined at connection points of the block modules;
A connection point coordinate system setting unit for setting a connection point coordinate system at the connection point;
A kinematic relation setting unit for obtaining a kinematic relationship between coordinate points set at each connection point; And
And a kinematic library generator for generating a periodic inverse and inverse kinematics library between each connection point for all the combined block modules based on the kinematic relationship between the joint point coordinate system.
제 1 항에 있어서,
상기 모듈 좌표계는
상기 연결점에서의 회전축을 제 1 축으로 상기 회전축에 수직인 면에 임의의 지정된 방향을 제 2 축으로 정의되는 모듈 기반 로봇의 로봇 기구학 소프트웨어를 자동으로 생성하는 장치.
The method according to claim 1,
The module coordinate system
Wherein the rotation axis at the connection point is defined as a first axis, and the arbitrary designated direction is defined as a second axis on a plane perpendicular to the rotation axis, and the robot kinematics software of the module-based robot is automatically generated.
제 1항에 있어서,
상기 모듈 좌표계는 상기 블록 모듈의 글로벌 좌표계를 기준으로 위치 및 방향의 이동으로 정의되는 모듈 기반 로봇의 기구학 소프트웨어를 자동으로 생성하는 장치.
The method according to claim 1,
Wherein the module coordinate system is defined as a movement of position and direction based on a global coordinate system of the block module.
제 2 항에 있어서,
상기 블록 결합부는 부모 블록 모듈의 연결점과 자식 블록 모듈의 연결점에 정의된 모듈 좌표계의 x축, -x축, y축, -y축, z축, -z축 중 두 쌍의 축을 일치시켜 결합시키는 모듈 기반 로봇의 로봇 기구학 소프트웨어를 자동으로 생성하는 장치.
3. The method of claim 2,
The block combining unit combines two pairs of axes of the x-axis, -x axis, y-axis, -y-axis, z-axis, and -z-axis of the module coordinate system defined at the connection point of the parent block module and the connection point of the child block module A device for automatically generating robot kinematic software of a module-based robot.
제 2 항에 있어서,
상기 블록 결합부는 부모 블록 모듈의 연결점과 자식 블록 모듈의 연결점에 정의된 모듈 좌표계의 회전축인 상기 제 1 축을 일치시키고 상기 제 2 축 사이의 오프셋을 설정하여 결합시키는 모듈 기반 로봇의 기구학 소프트웨어를 자동으로 생성하는 장치.
3. The method of claim 2,
Wherein the block combining unit automatically executes the module-based robot's kinematics software that matches the first axis, which is the rotation axis of the module coordinate system defined at the connection point of the parent block module and the connection point of the child block module, and sets the offset between the second axes, The device to generate.
제 1 항에 있어서,
상기 블록 모듈의 연결점에는 회전 운동이 가능한 조인트 관절 및 회전 운동이 불가능한 어셈블리 관절이 정의되어 있고,
상기 블록 결합부는 두 블록 모듈 사이의 연결점이 모두 조인트 관절인 경우 두 블록 모듈을 결합시킬 수 없는 모듈 기반 로봇의 기구학 소프트웨어를 자동으로 생성하는 장치.
The method according to claim 1,
The joint point of the block module defines a joint joint capable of rotational movement and an assembly joint impossible to rotate,
Wherein the block coupling unit automatically generates the kinematic software of the module-based robot that can not combine the two block modules when the connection points between the two block modules are both joint joints.
제 1 항에 있어서,
상기 블록 모듈의 연결점에는 회전 운동이 가능한 조인트 관절 및 회전 운동이 불가능한 어셈블리 관절이 정의되어 있고,
상기 블록 결합부는 두 블록 모듈 사이의 연결점이 모두 어셈블리 관절인 경우 두 블록 모듈을 고정 결합시키는 모듈 기반 로봇의 기구학 소프트웨어를 자동으로 생성하는 장치.
The method according to claim 1,
The joint point of the block module defines a joint joint capable of rotational movement and an assembly joint impossible to rotate,
Wherein the block coupling unit automatically generates the kinematic software of the module based robot in which the two block modules are fixedly coupled when the connection points between the two block modules are both assembly joints.
제 1 항에 있어서,
상기 연결점 좌표계 설정부는 두 블록 모듈이 상기 연결점에서 결합되었을 때 상기 연결점에서의 부모 블록 모듈의 좌표계 또는 자식 블록 모듈의 좌표계 중 어느 하나를 이용하여 상기 연결점 좌표계를 설정하는 모듈 기반 로봇의 기구학 소프트웨어를 자동으로 생성하는 장치.
The method according to claim 1,
The connection point coordinate system setting unit sets the connection point coordinate system using either the coordinate system of the parent block module or the coordinate system of the child block module at the connection point when the two block modules are combined at the connection point, .
제 8 항에 있어서,
상기 연결점 좌표계 설정부는 상기 연결점에서의 부모 블록 모듈의 좌표계 또는 자식 블록 모듈의 좌표계 중 어느 하나의 좌표계에서 직교하는 두 축을 선택하여 상기 연결점 좌표계를 수동으로 설정하는 모듈 기반 로봇의 기구학 소프트웨어를 자동으로 생성하는 장치.
9. The method of claim 8,
The connection point coordinate system setting unit automatically generates the kinematic software of the module-based robot that manually sets the coordinate system of the connection point by selecting two axes orthogonal to one of the coordinate system of the parent block module at the connection point or the coordinate system of the child block module .
제 8 항에 있어서,
상기 연결점 좌표계 설정부는 상기 연결점에서의 부모 블록 모듈의 좌표계 또는 자식 블록 모듈의 좌표계 중 어느 하나의 좌표계에서 회전축인 제 1 축과 상기 회전축에 수직인 면에 임의의 지정된 방향으로 정의되는 제 2 축을 이용하여 상기 연결점 좌표계를 자동으로 설정하는 모듈 기반 로봇의 기구학 소프트웨어를 자동으로 생성하는 장치.
9. The method of claim 8,
The connection point coordinate system setting unit sets a first axis which is a rotation axis and a second axis which is defined in an arbitrary designated direction on a plane perpendicular to the rotation axis in a coordinate system of either the coordinate system of the parent block module or the child block module at the connection point To automatically generate kinematic software of a module-based robot that automatically sets the joint point coordinate system.
제 1 항에 있어서,
상기 연결점 좌표계는 글로벌 좌표계를 기준으로 설정되는 모듈 기반 로봇의 기구학 소프트웨어를 자동으로 생성하는 장치.
The method according to claim 1,
Wherein the joint point coordinate system is set based on a global coordinate system, and automatically generates a kinematic software of a module-based robot.
블록 모듈의 연결점에 정의된 모듈 좌표계 사이의 관계를 설정하여 부모 블록 모듈의 연결점에 자식 블록 모듈의 연결점을 가상으로 결합시키는 단계; 및
상기 연결점에서의 연결점 좌표계를 설정하는 단계를 반복하여 복수의 블록 모듈로 형성되는 가상의 로봇을 형성하는 단계;
각 연결점에 설정된 연결점 좌표계들 사이의 기구학적 관계를 구하는 단계; 및
상기 연결점 좌표계 사이의 기구학적 관계를 기초로 상기 로봇에 대하여 각 연결점 사이의 정기구학 및 역기구학 라이브러리를 생성하는 단계를 포함하는 모듈 기반 로봇의 기구학 소프트웨어를 자동을 생성하는 방법.
Setting a relation between module coordinate systems defined at a connection point of the block module and virtually coupling a connection point of the child block module to a connection point of the parent block module; And
Setting a connection point coordinate system at the connection point to form a virtual robot formed of a plurality of block modules;
Obtaining a kinematic relationship between the joint point coordinate systems set at the respective joint points; And
And generating a periodic inverse and inverse kinematics library between each connection point for the robot based on the kinematic relationship between the joint point coordinate system.
제 12 항에 있어서,
상기 모듈 좌표계는
상기 연결점에서의 회전축을 제 1 축으로 상기 회전축에 수직인 면에 임의의 지정된 방향을 제 2 축으로 정의되는 모듈 기반 로봇의 기구학 소프트웨어를 자동으로 생성하는 방법.
13. The method of claim 12,
The module coordinate system
Wherein a rotational axis at the connecting point is defined as a first axis, and a predetermined direction is defined as a second axis on a plane perpendicular to the rotational axis, and a kinematic software of the module-based robot is automatically generated.
제 12 항에 있어서,
상기 모듈 좌표계는 상기 블록 모듈의 글로벌 좌표계를 기준으로 위치 및 방향의 이동으로 정의되는 모듈 기반 로봇의 기구학 소프트웨어를 자동으로 생성하는 방법.
13. The method of claim 12,
Wherein the module coordinate system is defined as a movement of a position and a direction based on a global coordinate system of the block module.
제 13 항에 있어서,
상기 연결점에서 부모 블록 모듈에 자식 블록 모듈을 가상으로 결합시키는 단계는
상기 부모 블록 모듈의 연결점과 상기 자식 블록 모듈의 연결점에 정의된 모듈 좌표계의 x축, -x축, y축, -y축, z축, -z축 중 두 쌍의 축을 일치시켜 결합시키는 모듈 기반 로봇의 기구학 소프트웨어를 자동으로 생성하는 방법.
14. The method of claim 13,
The step of virtually coupling the child block module to the parent block module at the connection point
Module basis in which two pairs of axes of x, -x, y, -y, z, and -z axes of the module coordinate system defined at the connection point of the parent block module and the connection point of the child block module are matched and combined How to automatically generate robot kinematics software.
제 13 항에 있어서,
상기 연결점에서 부모 블록 모듈에 자식 블록 모듈을 가상으로 결합시키는 단계는
부모 블록 모듈의 연결점과 자식 블록 모듈의 연결점에 정의된 모듈 좌표계의 회전축인 상기 제 1 축을 일치시키고 상기 제 2 축 사이의 오프셋을 설정하여 결합시키는 모듈 기반 로봇의 기구학 소프트웨어를 자동으로 생성하는 방법.
14. The method of claim 13,
The step of virtually coupling the child block module to the parent block module at the connection point
A method of automatically generating a kinematic software of a module based robot that matches the first axis, which is a rotation axis of a module coordinate system defined at a connection point of a parent block module and a connection point of a child block module, and sets an offset between the second axes.
제 12 항에 있어서,
상기 블록 모듈의 연결점에는 회전 운동이 가능한 조인트 관절 및 회전 운동이 불가능한 어셈블리 관절이 정의되어 있고,
상기 연결점에서 부모 블록 모듈에 자식 블록 모듈을 가상으로 결합시키는 단계에서 상기 부모 블록 모듈과 상기 자식 블록 모듈 사이의 연결점이 모두 조인트 관절인 경우 상기 부모 블록 모듈에 상기 자식 블록 모듈을 결합시킬 수 없는 모듈 기반 로봇의 기구학 소프트웨어를 자동으로 생성하는 방법.
13. The method of claim 12,
The joint point of the block module defines a joint joint capable of rotational movement and an assembly joint impossible to rotate,
Wherein when the connection point between the parent block module and the child block module is a joint joint in the step of virtually coupling the child block module to the parent block module at the connection point, Method of automatically generating kinematic software of a robot based on.
제 12 항에 있어서,
상기 블록 모듈의 연결점에는 회전 운동이 가능한 조인트 관절 및 회전 운동이 불가능한 어셈블리 관절이 정의되어 있고,
상기 연결점에서 부모 블록 모듈에 자식 블록 모듈을 가상으로 결합시키는 단계에서 상기 부모 블록 모듈과 상기 자식 블록 모듈 사이의 연결점이 모두 어셈블리 관절인 경우 두 블록 모듈은 고정 결합되는 모듈 기반 로봇의 기구학 소프트웨어를 자동으로 생성하는 방법.
13. The method of claim 12,
The joint point of the block module defines a joint joint capable of rotational movement and an assembly joint impossible to rotate,
In the step of virtually coupling the child block module to the parent block module at the connection point, if both of the connection points between the parent block module and the child block module are assembly joints, the two block modules are fixedly coupled. / RTI >
제 12 항에 있어서,
상기 연결점 좌표계를 설정하는 단계는
상기 부모 블록 모듈에 상기 자식 블록 모듈이 연결점에서 결합되었을 때 상기 연결점에서의 부모 블록 모듈의 좌표계 또는 자식 블록 모듈의 좌표계 중 어느 하나를 이용하여 상기 연결점 좌표계를 설정하는 모듈 기반 로봇의 기구학 소프트웨어를 자동으로 생성하는 방법.
13. The method of claim 12,
The step of setting the joint point coordinate system
The kinematic software of the module-based robot which sets the coordinate system of the connection point using the coordinate system of the parent block module or the coordinate system of the child block module at the connection point when the child block module is coupled to the parent block module at the connection point, / RTI >
제 19 항에 있어서,
상기 연결점 좌표계를 설정하는 단계는
상기 연결점에서의 부모 블록 모듈의 좌표계 또는 자식 블록 모듈의 좌표계 중 어느 하나의 좌표계에서 직교하는 두 축을 선택하여 상기 연결점 좌표계를 수동으로 설정하는 모듈 기반 로봇의 기구학 소프트웨어를 자동으로 생성하는 방법.
20. The method of claim 19,
The step of setting the joint point coordinate system
And automatically selecting two axes orthogonal to the coordinate system of the parent block module or the child block module of the child block module at the connection point to manually set the coordinate system of the connection point.
제 19 항에 있어서,
상기 연결점 좌표계를 설정하는 단계는
상기 연결점에서의 부모 블록 모듈의 좌표계 또는 자식 블록 모듈의 좌표계 중 어느 하나의 좌표계에서 회전축인 제 1 축과 상기 회전축에 수직인 면에 임의의 지정된 방향으로 정의되는 제 2 축을 이용하여 상기 연결점 좌표계를 자동으로 설정하는 모듈 기반 로봇의 기구학 소프트웨어를 자동으로 생성하는 방법.
20. The method of claim 19,
The step of setting the joint point coordinate system
A first axis which is a rotation axis and a second axis which is defined in an arbitrary designated direction on a plane perpendicular to the rotation axis in a coordinate system of either the coordinate system of the parent block module or the coordinate system of the child block module at the connection point, How to automatically generate kinematics software for module based robot.
제 12 항에 있어서,
상기 연결점 좌표계는 글로벌 좌표계를 기준으로 설정되는 모듈 기반 로봇의 기구학 소프트웨어를 자동으로 생성하는 방법.

13. The method of claim 12,
Wherein the joint point coordinate system is set based on a global coordinate system.

KR1020170116516A 2017-09-12 2017-09-12 Apparatus and method for automatically generating the kinematic software for modules based robot KR101991364B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020170116516A KR101991364B1 (en) 2017-09-12 2017-09-12 Apparatus and method for automatically generating the kinematic software for modules based robot

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020170116516A KR101991364B1 (en) 2017-09-12 2017-09-12 Apparatus and method for automatically generating the kinematic software for modules based robot

Publications (2)

Publication Number Publication Date
KR20190029844A KR20190029844A (en) 2019-03-21
KR101991364B1 true KR101991364B1 (en) 2019-06-24

Family

ID=66036958

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170116516A KR101991364B1 (en) 2017-09-12 2017-09-12 Apparatus and method for automatically generating the kinematic software for modules based robot

Country Status (1)

Country Link
KR (1) KR101991364B1 (en)

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013037693A2 (en) 2011-09-15 2013-03-21 Convergent Information Technologies Gmbh System and method for the automatic generation of robot programs
KR101286141B1 (en) * 2011-11-04 2013-07-15 홍익대학교 산학협력단 SYSTEM AND METHOD FOR Automatic Generation of UML Design Model for Multi-jointed Robot

Also Published As

Publication number Publication date
KR20190029844A (en) 2019-03-21

Similar Documents

Publication Publication Date Title
US8972056B2 (en) Method of finding feasible joint trajectories for an n-dof robot with rotation invariant process (n>5)
JP2017094406A (en) Simulation device, simulation method, and simulation program
Fang et al. Orientation planning of robot end-effector using augmented reality
Cortés et al. Probabilistic motion planning for parallel mechanisms
Smith Using multiple genetic operators to reduce premature convergence in genetic assembly planning
Andersen et al. Definition and initial case-based evaluation of hardware-independent robot skills for industrial robotic co-workers
Johansson et al. Sensor integration in task‐level programming and industrial robotic task execution control
EP2523786B1 (en) Method of finding feasible joint trajectories for an n-dof robot with rotation invariant process (n>5)
Dimic et al. VIRTUAL ENVIRONMENT IN CONTROL AND PROGRAMMING SYSTEM FOR RECONFIGURABLE MACHINING ROBOT.
KR20170024769A (en) Robot control apparatus
Gogouvitis et al. Construction of a virtual reality environment for robotic manufacturing cells
WO2015137162A1 (en) Control device, robot system, and method for generating control data
Wang et al. Digital twin implementation of autonomous planning arc welding robot system
KR101991364B1 (en) Apparatus and method for automatically generating the kinematic software for modules based robot
Wögerer et al. LOCOBOT-low cost toolkit for building robot co-workers in assembly lines
AbuQassem Simulation and Interfacing of 5 DOF Educational Robot Arm
Espinosa et al. Electronics proposal for telerobotics operation of P3-DX units
JP2019081204A (en) Robot control method, control terminal, and robot system
US20200147794A1 (en) Techniques for cad-informed robotic assembly
Vasey et al. Human and robot collaboration enabling the fabrication and assembly of a filament-wound structure
Vosniakos et al. Industrial robot path planning in a constraint-based computer-aided design and kinematic analysis environment
Yin et al. Off-line programming of robotic system based on dxf files of 3d models
Larkin et al. Offline programming for short batch robotic welding
Khiabani et al. Visual servoing simulator by using ros and gazebo
Sita et al. Robot companion for industrial process monitoring based on virtual fixtures

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