KR102520793B1 - Method for blending motion route of robot and apparatus thereof - Google Patents

Method for blending motion route of robot and apparatus thereof Download PDF

Info

Publication number
KR102520793B1
KR102520793B1 KR1020210105991A KR20210105991A KR102520793B1 KR 102520793 B1 KR102520793 B1 KR 102520793B1 KR 1020210105991 A KR1020210105991 A KR 1020210105991A KR 20210105991 A KR20210105991 A KR 20210105991A KR 102520793 B1 KR102520793 B1 KR 102520793B1
Authority
KR
South Korea
Prior art keywords
motion
blending
robot
node
current node
Prior art date
Application number
KR1020210105991A
Other languages
Korean (ko)
Other versions
KR20230024002A (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 KR1020210105991A priority Critical patent/KR102520793B1/en
Publication of KR20230024002A publication Critical patent/KR20230024002A/en
Application granted granted Critical
Publication of KR102520793B1 publication Critical patent/KR102520793B1/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/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/0084Programme-controlled manipulators comprising a plurality of manipulators
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/18Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form
    • G05B19/416Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form characterised by control of velocity, acceleration or deceleration
    • HELECTRICITY
    • H01ELECTRIC ELEMENTS
    • H01LSEMICONDUCTOR DEVICES NOT COVERED BY CLASS H10
    • H01L21/00Processes or apparatus adapted for the manufacture or treatment of semiconductor or solid state devices or of parts thereof
    • H01L21/67Apparatus specially adapted for handling semiconductor or electric solid state devices during manufacture or treatment thereof; Apparatus specially adapted for handling wafers during manufacture or treatment of semiconductor or electric solid state devices or components ; Apparatus not specifically provided for elsewhere
    • H01L21/677Apparatus specially adapted for handling semiconductor or electric solid state devices during manufacture or treatment thereof; Apparatus specially adapted for handling wafers during manufacture or treatment of semiconductor or electric solid state devices or components ; Apparatus not specifically provided for elsewhere for conveying, e.g. between different workstations
    • H01L21/67739Apparatus specially adapted for handling semiconductor or electric solid state devices during manufacture or treatment thereof; Apparatus specially adapted for handling wafers during manufacture or treatment of semiconductor or electric solid state devices or components ; Apparatus not specifically provided for elsewhere for conveying, e.g. between different workstations into and out of processing chamber
    • H01L21/67742Mechanical parts of transfer devices
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/40Robotics, robotics mapping to robotics vision
    • G05B2219/40449Continuous, smooth robot motion
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/40Robotics, robotics mapping to robotics vision
    • G05B2219/40466Plan for minimum time trajectory, at least one joint maximum torque

Landscapes

  • Engineering & Computer Science (AREA)
  • Robotics (AREA)
  • Manufacturing & Machinery (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Mechanical Engineering (AREA)
  • Condensed Matter Physics & Semiconductors (AREA)
  • Computer Hardware Design (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Power Engineering (AREA)
  • Human Computer Interaction (AREA)
  • Automation & Control Theory (AREA)
  • Numerical Control (AREA)
  • Manipulator (AREA)

Abstract

로봇의 모션 경로 블렌딩 방법 및 그 장치가 제공된다. 본 발명의 실시예에 따른 로봇의 모션 경로 블렌딩 방법은 로봇에 대한 경로 이동 명령이 순차적으로 큐에 저장되는 단계, 현재 경로 이동 명령을 수행중인 현재 노드에 대한 모션을 처리하는 단계, 현재 노드가 블렌딩 조건을 만족하는지의 여부를 결정하는 단계, 현재 노드가 블렌딩 조건을 만족하는 경우, 다음 노드에 대한 모션을 동시에 처리하는 단계, 현재 노드에 대한 모션과 다음 노드에 대한 모션을 동일 좌표계로 변환하는 단계, 및 현재 노드에 대한 모션 경로와 다음 노드에 대한 모션 경로의 일부가 겹쳐지도록 블렌딩하는 단계를 포함한다.A robot motion path blending method and apparatus are provided. A method for blending a motion path of a robot according to an embodiment of the present invention includes sequentially storing a path movement command for the robot in a queue, processing a motion of a current node that is currently executing a path movement command, and blending the current node. Determining whether a condition is satisfied, processing the motion of the next node at the same time if the current node satisfies the blending condition, converting the motion of the current node and the motion of the next node into the same coordinate system. , and blending so that parts of the motion path for the current node and the motion path for the next node overlap.

Description

로봇의 모션 경로 블렌딩 방법 및 그 장치{Method for blending motion route of robot and apparatus thereof} Method for blending motion path of robot and apparatus thereof

본 발명은 로봇의 모션 경로 블렌딩 방법 및 그 장치에 관한 것으로, 특히, 제조 공정에 사용되는 산업용 로봇의 모션 컨트롤러에 적용할 수 있는 로봇의 모션 경로 블렌딩 방법 및 그 장치에 관한 것이다. The present invention relates to a motion path blending method and apparatus of a robot, and more particularly, to a motion path blending method and apparatus applicable to a motion controller of an industrial robot used in a manufacturing process.

일반적으로, 로봇이 둘 이상의 단위 모션을 순차적으로 수행할 때, 현재 수행되고 있는 모션과 다음에 수행되어야 할 모션의 일부를 겹치게 하여 블렌딩함으로써, 로봇이 정지하지 않고 연속으로 모션을 수행할 수 있다. 블렌딩으로 인한 연속모션의 장점으로는 모션의 수행 시간을 단축할 수 있으며 소음이나 진동을 감소시킬 수 있다.In general, when a robot sequentially performs two or more unit motions, the robot can continuously perform the motions without stopping by overlapping and blending parts of the currently performed motion and the next motion to be performed. As advantages of continuous motion due to blending, motion execution time can be shortened and noise or vibration can be reduced.

그러나 종래의 로봇의 모션 블렌딩은 동일한 좌표계에서 표현되는 단위 모션들을 블렌딩하거나 조인트(Joint) 모션과 조인트 모션을 또는 태스크(Task) 모션과 태스크 모션을 블렌딩 할 수 있다. 만일 모션을 표현하는 좌표계가 달라지거나, 조인트 모션과 태스크 모션과 같이 모션을 표현하는 공간(space)이 달라지면 블렌딩에 어려움이 있다.However, motion blending of conventional robots may blend unit motions expressed in the same coordinate system, blend joint motions with joint motions, or blend task motions with task motions. If the coordinate system representing the motion is different or the space representing the motion is different, such as joint motion and task motion, there is difficulty in blending.

KRKR 10-2020-0022043 10-2020-0022043 AA

상기와 같은 종래 기술의 문제점을 해결하기 위해, 본 발명의 일 실시예는 로봇의 여러 좌표계에서 표현되는 단위 모션들이나 조인트 공간 또는 태스크 공간에서 표현되는 단위 모션들을 블렌딩할 수 있는 로봇의 모션 경로 블렌딩 방법 및 그 장치를 제공하고자 한다.In order to solve the above problems of the prior art, an embodiment of the present invention is a robot motion path blending method capable of blending unit motions expressed in various coordinate systems of the robot or unit motions expressed in a joint space or task space. And to provide the device.

위와 같은 과제를 해결하기 위한 본 발명의 일 측면에 따르면, 로봇에 대한 경로 이동 명령이 순차적으로 큐에 저장되는 단계; 현재 경로 이동 명령을 수행중인 현재 노드에 대한 모션을 처리하는 단계; 상기 현재 노드가 블렌딩 조건을 만족하는지의 여부를 결정하는 단계; 상기 현재 노드가 상기 블렌딩 조건을 만족하는 경우, 다음 노드에 대한 모션을 동시에 처리하는 단계; 상기 현재 노드에 대한 모션과 상기 다음 노드에 대한 모션을 동일 좌표계로 변환하는 단계; 및 상기 현재 노드에 대한 모션 경로와 상기 다음 노드에 대한 모션 경로의 일부가 겹쳐지도록 블렌딩하는 단계;를 포함하는 로봇의 모션 경로 블렌딩 방법이 제공된다.According to one aspect of the present invention for solving the above problems, path movement commands for the robot are sequentially stored in a queue; processing a motion for a current node that is currently executing a path movement command; determining whether the current node satisfies a blending condition; simultaneously processing motion for a next node when the current node satisfies the blending condition; transforming the motion of the current node and the motion of the next node into the same coordinate system; and blending a motion path for the current node and a part of the motion path for the next node to overlap each other.

일 실시예에서, 상기 변환하는 단계는 상기 현재 노드 및 상기 다음 노드가 서로 상이한 좌표계인 경우, 상기 현재 노드 및 상기 다음 노드 중 조인트 공간의 조인트 좌표계를 태스크 공간의 베이스 좌표계로 변환할 수 있다.In an embodiment, the converting may include converting a joint coordinate system of a joint space among the current node and the next node to a base coordinate system of the task space when the current node and the next node have different coordinate systems.

일 실시예에서, 상기 변환하는 단계는 상기 로봇의 정기구학(Forward kinematics)에 의해 좌표 변환할 수 있다.In one embodiment, the transforming step may transform coordinates by forward kinematics of the robot.

일 실시예에서, 상기 결정하는 단계는, 상기 현재 노드에 대한 모션 처리를 이동 거리의 절반 이상 수행하고, 상기 큐에 다음 노드가 존재하며, 상기 현재 노드에 대한 모션의 남은 수행 시간이 상기 다음 노드의 블렌딩 시간 범위 내이면, 블렌딩 조건을 만족하는 것으로 결정할 수 있다.In one embodiment, the determining step may include performing motion processing for the current node at least half of a moving distance, a next node in the queue, and the remaining execution time of motion for the current node being the next node. If it is within the blending time range of , it may be determined that the blending condition is satisfied.

일 실시예에서, 상기 다음 노드에 대한 블렌딩 시간은 시간에 대한 이동거리를 구하는 미리 정해진 프로파일 함수에 대한 역함수로 산출될 수 있다.In one embodiment, the blending time for the next node may be calculated as an inverse function of a predetermined profile function for obtaining a movement distance with respect to time.

일 실시예에서, 상기 블렌딩하는 단계는 하기의 식으로 블렌딩된 위치(p)를 연산할 수 있다 :In one embodiment, the blending step may calculate the blended position ( p ) by the following equation:

Figure 112021092681384-pat00001
Figure 112021092681384-pat00001

여기서, x 0는 상기 현재 노드에 대한 모션 경로 상의 위치를 나타내는 벡터이고, x 1은 상기 다음 노드에 대한 모션 경로 상의 위치를 나타내는 벡터이며, p 0는 상기 다음 노드의 위치를 나타내는 벡터이다.Here, x 0 is a vector representing a position of the current node on a motion path, x 1 is a vector representing a position of the next node on a motion path, and p 0 is a vector representing the position of the next node.

일 실시예에서, 상기 로봇의 모션 경로 블렌딩 방법은 상기 블렌딩 단계 이후에, 태스크 공간의 위치를 조인트 공간의 위치로 변환하고, 조인트 공간에서의 각도를 생성하여 상기 로봇으로 조인트 구동 명령을 전달하는 단계를 더 포함할 수 있다.In one embodiment, the method of blending the motion path of the robot may include, after the blending step, converting a position of a task space into a position of a joint space, generating an angle in the joint space, and transmitting a joint driving command to the robot. may further include.

일 실시예에서, 상기 현재 노드에 대한 모션을 처리하는 단계 및 상기 다음 노드에 대한 모션을 동시에 처리하는 단계 각각은 각 노드에 대한 모션 경로 상에서 이동량을 정규화한 후 보간에 의해 상기 모션 경로 상의 위치를 산출할 수 있다.In one embodiment, each of the step of processing the motion for the current node and the step of simultaneously processing the motion for the next node normalizes the movement amount on the motion path for each node and then calculates the position on the motion path by interpolation. can be calculated

일 실시예에서, 상기 현재 노드가 상기 블렌딩 조건을 만족하지 않는 경우, 보간에 의해 상기 현재 노드에 대한 모션 처리를 완료할 수 있다.In one embodiment, when the current node does not satisfy the blending condition, motion processing for the current node may be completed by interpolation.

본 발명의 다른 측면에 따르면, 로봇에 대한 경로 이동 명령이 순차적으로 저장되는 큐; 및 상기 큐에 저장된 상기 경로 이동 명령을 순차적으로 수행하는 제어부를 포함하고, 상기 제어부는. 현재 경로 이동 명령을 수행중인 현재 노드에 대한 모션을 처리하며, 상기 현재 노드가 블렌딩 조건을 만족하는지의 여부를 결정하고, 상기 현재 노드가 상기 블렌딩 조건을 만족하는 경우, 상기 큐로부터 수신된 다음 경로 이동 명령에 기초하여 다음 노드에 대한 모션을 동시에 처리하며, 상기 현재 노드에 대한 모션과 상기 다음 노드에 대한 모션을 동일 좌표계로 변환하고, 상기 현재 노드에 대한 모션 경로와 상기 다음 노드에 대한 모션 경로의 일부가 겹쳐지도록 블렌딩하는 로봇의 모션 경로 블렌딩 장치가 제공된다. According to another aspect of the present invention, a queue in which path movement commands for the robot are sequentially stored; and a control unit sequentially executing the path moving command stored in the queue. Processes a motion for a current node that is executing a current path movement command, determines whether the current node satisfies a blending condition, and if the current node satisfies the blending condition, the next path received from the queue Based on the move command, motion for the next node is simultaneously processed, the motion for the current node and the motion for the next node are converted into the same coordinate system, and the motion path for the current node and the motion path for the next node are converted. An apparatus for blending a motion path of a robot that blends so that a part of is overlapped is provided.

일 실시예에서, 상기 제어부는 상기 현재 노드 및 상기 다음 노드가 서로 상이한 좌표계인 경우, 상기 현재 노드 및 상기 다음 노드 중 조인트 공간의 조인트 좌표계를 태스크 공간의 베이스 좌표계로 변환할 수 있다.In an embodiment, when the current node and the next node have different coordinate systems, the controller may convert a joint coordinate system of a joint space among the current node and the next node into a base coordinate system of the task space.

일 실시예에서, 상기 제어부는 상기 로봇의 정기구학에 의해 좌표 변환할 수 있다.In one embodiment, the control unit may transform the coordinates by the regular kinematics of the robot.

일 실시예에서, 상기 제어부는, 상기 현재 노드에 대한 모션 처리를 이동 거리의 절반 이상 수행하고, 상기 큐에 다음 노드가 존재하며, 상기 현재 노드에 대한 모션의 남은 수행 시간이 상기 다음 노드의 블렌딩 시간 범위 내이면, 블렌딩 조건을 만족하는 것으로 결정할 수 있다.In one embodiment, the control unit performs motion processing for the current node by half or more of the moving distance, a next node exists in the queue, and the remaining execution time of the motion for the current node is determined by blending of the next node. If it is within the time range, it may be determined that the blending condition is satisfied.

일 실시예에서, 상기 제어부는 시간에 대한 이동거리를 구하는 미리 정해진 프로파일 함수에 대한 역함수에 의해 상기 다음 노드에 대한 블렌딩 시간을 산출할 수 있다.In one embodiment, the control unit may calculate the blending time for the next node by an inverse function of a predetermined profile function for obtaining a movement distance with respect to time.

일 실시예에서, 상기 제어부는 하기의 식으로 블렌딩된 위치(p)를 연산할 수 있다 :In one embodiment, the control unit may calculate the blended position ( p ) by the following equation:

Figure 112021092681384-pat00002
Figure 112021092681384-pat00002

여기서, x 0는 상기 현재 노드에 대한 모션 경로 상의 위치를 나타내는 벡터이고, x 1은 상기 다음 노드에 대한 모션 경로 상의 위치를 나타내는 벡터이며, p 0는 상기 다음 노드의 위치를 나타내는 벡터이다.Here, x 0 is a vector representing a position of the current node on a motion path, x 1 is a vector representing a position of the next node on a motion path, and p 0 is a vector representing the position of the next node.

일 실시예에서, 상기 제어부는 상기 블렌딩 후 태스크 공간의 위치를 조인트 공간의 위치로 변환하고, 조인트 공간에서의 각도를 생성하여 상기 로봇으로 조인트 구동 명령을 전달할 수 있다.In one embodiment, the control unit may transmit a joint drive command to the robot by converting a position of the task space into a position of the joint space after the blending and generating an angle in the joint space.

일 실시예에서, 상기 제어부는 상기 현재 노드에 대한 모션을 처리하는 경우 및 상기 다음 노드에 대한 모션을 동시에 처리하는 경우, 각 노드에 대한 모션 경로 상에서 이동량을 정규화한 후 보간에 의해 상기 모션 경로 상의 위치를 산출할 수 있다.In one embodiment, when processing motion for the current node and simultaneously processing motion for the next node, the control unit normalizes a movement amount on the motion path for each node and then interpolates on the motion path. location can be calculated.

일 실시예에서, 상기 제어부는 상기 현재 노드가 상기 블렌딩 조건을 만족하지 않는 경우, 보간에 의해 상기 현재 노드에 대한 모션 처리를 완료할 수 있다.In one embodiment, when the current node does not satisfy the blending condition, the controller may complete motion processing for the current node by interpolation.

본 발명의 일 실시예에 따른 로봇의 모션 경로 블렌딩 방법 및 그 장치는 블렌딩 조건에 따라 원호, 선분, 조인트 각 이동 등의 단위 모션을 블렌딩함으로써, 제조 공정상에서 로봇의 연속 모션을 신속하게 구현할 수 있으므로 로봇의 작업 시간을 단축할 수 있다.The robot motion path blending method and apparatus according to an embodiment of the present invention blend unit motions such as arcs, segments, and joint angular movements according to blending conditions, so that continuous motion of the robot can be quickly implemented in the manufacturing process. The robot's working time can be shortened.

본 발명의 일 실시예에 따른 로봇의 모션 경로 블렌딩 방법 및 그 장치는 상이한 좌표계나 공간에 대하여 단위 모션을 블렌딩함으로써, 제조 공정상에서 로봇의 연속 모션을 신속하면서도 안정적으로 구현할 수 있으므로 로봇의 작업 신뢰성을 향상시킬 수 있다. A method and apparatus for blending motion paths of a robot according to an embodiment of the present invention can quickly and stably implement continuous motion of a robot in a manufacturing process by blending unit motions with respect to different coordinate systems or spaces, thus improving the reliability of robot operation. can improve

도 1은 본 발명의 실시예에 따른 로봇의 모션 경로 블렌딩 장치를 나타낸 블록도이다.
도 2는 로봇 좌표계를 나타내는 도면으로서, (a)는 6축 로봇에 대한 좌표계, (b)는 로봇에 대한 좌표계를 나타낸 도면이다.
도 3은 태스크 공간과 조인트 공간 사이의 변환을 나타내는 도면이다.
도 4는 경로 이동 명령 함수에 따른 이동 경로를 나타낸 도면으로서, (a)조인트, (b)는 원호, (c)는 직선, (d)는 원에 대한 이동 경로를 나타낸 도면이다.
도 5는 두 개의 경로 이동 명령을 순차적으로 진행하는 과정을 나타낸 도면으로서, (a)는 경로 이동 명령 함수에 따른 이동 경로, (b)는 경로 이동 명령의 처리 과정을 나타낸 도면이다.
도 6은 경로 이동 점들의 보간 방법을 설명하기 위한 도면으로서, (a)는 원호의 회전 위치 산출을 설명하기 위한 도면, (b)는 원호의 회전각도 산출을 설명하기 위한 도면이다.
도 7은 본 발명의 실시예에 따른 로봇의 모션 경로 블렌딩 장치의 동작을 설명하기 위한 도면으로서, (a)는 기본 구성, (b)는 하나의 노드에 대한 보간시, (c)는 두 노드에 대한 블렌딩시 동작을 설명하기 위한 도면이다.
도 8은 본 발명의 실시예에 따른 로봇의 모션 경로 블렌딩 장치의 보간을 설명하기 위한 도면이다.
도 9는 본 발명의 실시예에 따른 로봇의 모션 경로 블렌딩 장치의 블렌딩 조건을 설명하기 위한 도면으로서, (a)는 정규화, (b)는 블렌딩 길이와 시간을 설명하기 위한 도면이다.
도 10은 본 발명의 실시예에 따른 로봇의 모션 경로 블렌딩 장치의 블렌딩 동작을 설명하기 위한 도면이다.
도 11은 본 발명의 실시예에 따른 로봇의 모션 경로 블렌딩 장치의 블렌딩을 위한 변환을 설명하기 위한 도면으로서, (a)는 두 노드가 모두 조인트 공간인 경우, (b)는 현재 노드만 조인트 공간인 경우, (c)는 두 노드가 모두 태스크 공간인 경우, (d)는 현재 노드만 태스크 공간인 경우를 나타낸 도면이다.
도 12는 본 발명의 실시예에 따른 로봇의 모션 경로 블렌딩 장치의 블렌딩 위치 산출을 설명하기 위한 도면이다.
도 13은 본 발명의 실시예에 따른 로봇의 모션 경로 블렌딩 장치의 로봇으로 조인트 구동 명령을 전달하는 과정을 설명하기 위한 도면이다.
도 14는 본 발명의 실시예에 따른 로봇의 모션 경로 블렌딩 방법을 나타낸 순서도이다.
1 is a block diagram showing a motion path blending device for a robot according to an embodiment of the present invention.
Figure 2 is a diagram showing a robot coordinate system, (a) is a coordinate system for a 6-axis robot, (b) is a diagram showing a coordinate system for the robot.
3 is a diagram illustrating transformation between a task space and a joint space.
4 is a diagram showing a movement path according to a path movement command function, (a) a joint, (b) a circular arc, (c) a straight line, and (d) a movement path for a circle.
5 is a diagram showing a process of sequentially proceeding two route movement commands, wherein (a) is a movement path according to a route movement command function, and (b) is a diagram showing a process of processing a route movement command.
6 is a diagram for explaining an interpolation method of path movement points, (a) is a diagram for explaining the calculation of the rotational position of the arc, and (b) is a diagram for explaining the calculation of the rotation angle of the arc.
7 is a diagram for explaining the operation of a motion path blending device for a robot according to an embodiment of the present invention, (a) is a basic configuration, (b) is interpolation for one node, (c) is two nodes It is a diagram for explaining the operation when blending for .
8 is a diagram for explaining interpolation of an apparatus for blending a motion path of a robot according to an embodiment of the present invention.
9 is a diagram for explaining blending conditions of a robot motion path blending apparatus according to an embodiment of the present invention, where (a) is normalization and (b) is a diagram for explaining blending length and time.
10 is a diagram for explaining a blending operation of a motion path blending device for a robot according to an embodiment of the present invention.
11 is a diagram for explaining transformation for blending of a motion path blending apparatus of a robot according to an embodiment of the present invention, (a) is a joint space for both nodes, and (b) is a joint space for only the current node. , (c) shows a case where both nodes are task spaces, and (d) shows a case where only the current node is a task space.
12 is a diagram for explaining blending position calculation of a motion path blending device for a robot according to an embodiment of the present invention.
13 is a diagram for explaining a process of transmitting a joint driving command to a robot of a motion path blending device of a robot according to an embodiment of the present invention.
14 is a flowchart illustrating a motion path blending method of a robot according to an embodiment of the present invention.

이하, 첨부한 도면을 참고로 하여 본 발명의 실시예에 대하여 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다. 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 동일 또는 유사한 구성요소에 대해서는 동일한 참조부호를 붙였다.Hereinafter, with reference to the accompanying drawings, embodiments of the present invention will be described in detail so that those skilled in the art can easily carry out the present invention. This invention may be embodied in many different forms and is not limited to the embodiments set forth herein. In order to clearly describe the present invention in the drawings, parts irrelevant to the description are omitted, and the same reference numerals are assigned to the same or similar components throughout the specification.

이하에서는 도면을 참조하여 본 발명의 실시예에 따른 로봇의 모션 경로 블렌딩 장치를 보다 상세히 설명하도록 한다. 도 1은 본 발명의 실시예에 따른 로봇의 모션 경로 블렌딩 장치를 나타낸 블록도이다.Hereinafter, a motion path blending device for a robot according to an embodiment of the present invention will be described in more detail with reference to the drawings. 1 is a block diagram showing a motion path blending device for a robot according to an embodiment of the present invention.

도 1을 참조하면, 본 발명의 일 실시예에 따른 로봇의 모션 경로 블렌딩 장치(100)는 큐(110) 및 제어부(120)를 포함한다. Referring to FIG. 1 , an apparatus 100 for blending a motion path of a robot according to an embodiment of the present invention includes a queue 110 and a control unit 120.

로봇의 모션 경로 블렌딩 장치(100)는 하나 이상의 로봇(10)의 이동 명령이 주어질 때, 각 명령에 의해 생성되는 이동 경로들을 블렌딩하기 위한 것으로서, 여러 개의 경로 이동 명령이 큐(110)로 입력되고, 이를 제어부(120)가 해석하고 실행하여 최종적으로 로봇(10)의 조인트 구동 명령을 제공할 수 있다.The robot motion path blending device 100 is for blending the movement paths generated by each command when one or more robot 10 movement commands are given, and several path movement commands are input to the queue 110. , the control unit 120 may interpret and execute the command to finally provide a joint drive command for the robot 10 .

보다 구체적으로, 먼저, 로봇의 모션 경로 블렌딩 장치(100)로 입력되는 로봇 스크립(Robot Script)에는 입력 포트로부터 입력값을 읽고 로봇(10)을 움직이고 출력 포트로 출력을 내보내는 등 로봇(10)이 주어진 임무를 수행할 수 있도록 세분화된 동작들을 기술한다. 여기서, 로봇(10)의 모션(motion)은 로봇(10)의 말단이 연속적으로 이동해야 할 경로 이동 명령에 의해 주어진다. More specifically, first, in the robot script input to the motion path blending device 100 of the robot, the robot 10 reads an input value from an input port, moves the robot 10, and outputs an output to an output port. It describes subdivided operations to perform a given task. Here, the motion of the robot 10 is given by a path movement command to move the end of the robot 10 continuously.

이러한 경로 이동 명령은 순차적으로 큐(Queue)(110)에 입력되어 저장될 수 있다. 이때, 제어부(120)는 큐(110)에 저장된 명령을 먼저 입력된 것부터 하나씩 순차적으로 해석하고 수행함으로써 로봇(10)의 각 관절을 움직이는 조인트 구동 명령을 생성하여 로봇(10)으로 출력할 수 있다.These path movement commands may be sequentially input to and stored in the queue 110 . At this time, the control unit 120 sequentially interprets and executes commands stored in the queue 110 one by one from the first input, thereby generating joint drive commands that move each joint of the robot 10 and outputting the commands to the robot 10. .

이하, 본 발명의 일 실시예에 따른 로봇의 모션 경로 블렌딩 장치(100)의 구조에 대한 이해를 돕고 블렌딩 알고리즘에 대한 설명을 명확히 하기 위해, 도 2 및 도 3을 참조하여, 로봇이 사용하는 좌표계(Coordinate system) 및 조인트/태스크 공간 사이의 변환에 대하여 설명한다. Hereinafter, in order to help understand the structure of the motion path blending device 100 of the robot according to an embodiment of the present invention and to clarify the description of the blending algorithm, a coordinate system used by the robot is referred to with reference to FIGS. 2 and 3 (Coordinate system) and transformation between joint/task spaces are explained.

도 2는 로봇 좌표계를 나타내는 도면으로서, (a)는 6축 로봇에 대한 좌표계, (b)는 로봇에 대한 좌표계를 나타낸 도면이다. Figure 2 is a diagram showing a robot coordinate system, (a) is a coordinate system for a 6-axis robot, (b) is a diagram showing a coordinate system for the robot.

도 2의 (a)를 참조하면, 로봇이 사용하는 좌표계는 크게 조인트 공간과 태스크 공간으로 나누어진다. 여기서, 태스크 공간에서는 툴(Tool) 좌표계와 태스크 좌표계로 나뉜다. 도 2의 (b)에 도시된 바와 같이, 툴 좌표계는 로봇의 작업 부위인 말단을 기준으로 하는 좌표계이다. Referring to (a) of FIG. 2, the coordinate system used by the robot is largely divided into a joint space and a task space. Here, the task space is divided into a tool coordinate system and a task coordinate system. As shown in (b) of FIG. 2, the tool coordinate system is a coordinate system based on the end, which is the working part of the robot.

태스크 좌표계는 좌표계가 설정된 위치에 따라 베이스(Base) 좌표계, 월드(World) 좌표계 및 워크(Work) 좌표계로 구분된다. 도 2의 (b)에 도시된 바와 같이, 베이스 좌표계는 로봇의 베이스를 기준으로 하는 좌표계이고, 월드 좌표계는 국제 표준 좌표계이며, 워크 좌표계는 작업 대상물을 기준으로 하는 좌표계이다. 여기서, 3개의 좌표계 상에서 표시된 점들은 변환 행렬을 통해 각각의 좌표계 상의 점들로 변환이 가능하다.The task coordinate system is divided into a base coordinate system, a world coordinate system, and a work coordinate system according to the location where the coordinate system is set. As shown in (b) of FIG. 2, the base coordinate system is a coordinate system based on the base of the robot, the world coordinate system is an international standard coordinate system, and the work coordinate system is a coordinate system based on the work object. Here, points displayed on three coordinate systems can be converted into points on each coordinate system through a transformation matrix.

본 명세서에서, 수학식의 표현에서 미지수의 앞이나 뒤에 붙는 첨자가 B, O 및 W 문자로 표시되는 경우, 이는 미지수에 할당된 좌표계의 종류를 의미한다. 즉, B는 베이스 좌표계, 0는 월드 좌표계 또는 오리진(Origin) 좌표계, W는 워크 좌표계를 의미한다. In this specification, when subscripts attached before or after an unknown in the expression of a mathematical expression are indicated by letters B, O, and W, this means the type of coordinate system assigned to the unknown. That is, B denotes a base coordinate system, 0 denotes a world coordinate system or an origin coordinate system, and W denotes a work coordinate system.

도 3은 태스크 공간과 조인트 공간 사이의 변환을 나타내는 도면이다.3 is a diagram illustrating transformation between a task space and a joint space.

도 3을 참조하면, 로봇의 정기구학(forward kinematics)과 역기구학(inverse kinemtaics)을 통하여 조인트 공간과 태스크 공간에서의 점의 위치를 상호 변환 가능하다. Referring to FIG. 3 , the position of a point in a joint space and a task space can be mutually converted through forward kinematics and inverse kinematics of a robot.

조인트 공간은 로봇의 관절 하나당 하나의 좌표계 축을 가지는 좌표 공간이다. 일례로, 6축 수직 다관절 로봇인 경우, 6개의 관절이 있기 때문에 6개의 축을 가지는 공간으로 생각할 수 있으며 수학적으로는 단지 6개의 원소를 가지는 벡터가 된다.The joint space is a coordinate space with one coordinate system axis per joint of the robot. For example, in the case of a 6-axis vertical multi-joint robot, since there are 6 joints, it can be considered as a space having 6 axes, and mathematically, it becomes a vector having only 6 elements.

태스크 공간은 3차원 공간에 대한 x, y, z 축을 가지는 좌표 공간으로, 로봇 말단(End effector)의 위치(x, y, z)와 회전 방향(Euler angle; phi, theta, psi)으로 구성되는 최대 6개의 원소를 가지는 벡터로 표시할 수 있다.The task space is a coordinate space with x, y, and z axes in a three-dimensional space, and is composed of the robot end effector's position (x, y, z) and rotation direction (Euler angle; phi, theta, psi). It can be expressed as a vector with up to 6 elements.

로봇 말단이 태스크 공간에서 목표 위치와 방위에 도달하도록 하기 위해서는 로봇의 관절들을 특정 각으로 회전하여야 한다. 태스크 공간에서 목표 위치가 주어진 경우, 로봇의 역기구학을 연산하여 로봇의 관절 각들을 연산할 수 있다. 반대로, 로봇의 관절 각을 알고 있는 경우, 로봇(10)의 정기구학을 연산하여 로봇 말단의 위치와 방위를 알 수 있다.In order for the end of the robot to reach the target position and orientation in the task space, the joints of the robot must be rotated at a specific angle. When a target position is given in the task space, joint angles of the robot may be calculated by calculating inverse kinematics of the robot. Conversely, when the joint angle of the robot is known, the position and orientation of the robot end can be known by calculating the forward kinematics of the robot 10 .

도 4는 경로 이동 명령 함수에 따른 이동 경로를 나타낸 도면으로서, (a)조인트, (b)는 원호, (c)는 직선, (d)는 원에 대한 이동 경로를 나타낸 도면이다.4 is a diagram showing a movement path according to a path movement command function, (a) a joint, (b) a circular arc, (c) a straight line, and (d) a movement path for a circle.

경로 이동 명령은 로봇의 동작을 프로그래밍하는 스크립트 언어에서 함수형태로 작성된다. 도 4에 도시된 바와 같이, 조인트 공간에서의 이동 명령에는 MoveJoint() 함수가 있고, 태스크 공간에서의 이동 명령에는 MoveLine() 함수, MoveArc() 함수, MoveCircel() 함수가 있다. The path movement command is written in the form of a function in a script language that programs the motion of the robot. As shown in FIG. 4 , a move command in joint space includes a MoveJoint() function, and a move command in task space includes a MoveLine() function, a MoveArc() function, and a MoveCircel() function.

이러한 이동 명령은 현재 점 a를 기준으로 목표 위치 점인 b 또는 c를 설정함으로 생성된다. MoveJoint() 명령과 MoveLine() 명령은 목표위치 점인 b만을 필요로 한다. MoveArc() 명령과 MoveCircel() 명령은 원호를 구성하는데 3개의 점(a, b, c)이 필요하기 때문에 경유 위치 점인 b와 목표 위치점인 c를 필요로 한다.This movement command is generated by setting the target position point b or c based on the current point a. The MoveJoint() command and MoveLine() command require only the target position point b. The MoveArc() command and the MoveCircel() command require three points (a, b, c) to form a circular arc, so they need b as the route location point and c as the target location point.

조인트 공간에서의 목표점은 하기의 수학식 1과 같이 구성된다.The target point in the joint space is configured as in Equation 1 below.

Figure 112021092681384-pat00003
Figure 112021092681384-pat00003

여기서, 로봇의 관절 수 n만큼 조인트 위치(jk)가 존재한다.Here, joint positions (j k ) exist as many as n of the joints of the robot.

태스크 공간에서의 목표점은 하기의 수학식 2와 같이 구성된다.The target point in the task space is configured as in Equation 2 below.

Figure 112021092681384-pat00004
Figure 112021092681384-pat00004

여기서,

Figure 112021092681384-pat00005
는 3차원 공간에서의 위치를 나타내고,
Figure 112021092681384-pat00006
는 3차원 공간에서 z-y-x 축 순서의 오일러 각(Euler angle) 회전을 나타낸다. here,
Figure 112021092681384-pat00005
represents a position in a three-dimensional space,
Figure 112021092681384-pat00006
represents the Euler angle rotation of the order of the zyx axis in 3D space.

도 4의 (b)에서, MoveLine() 함수에 표시된 a점은 B로 표시되는 베이스 좌표계상의 점인데, 명령의 인자인 b를 사용자가 설정할 때는 베이스 좌표계(B), 월드 좌표계(O) 및 워크 좌표계(W) 중 하나의 좌표계를 기준으로 점의 위치를 지정한다. 하지만 함수 내부에서 좌표 변환을 통해 모든 점은 베이스 좌표계를 기준으로 변환한 위치가 저장된다. In (b) of FIG. 4, the point a indicated by the MoveLine() function is a point on the base coordinate system indicated by B. When the user sets the command factor b, the base coordinate system (B), the world coordinate system (O) and the work Specify the position of the point based on one of the coordinate systems (W). However, through coordinate transformation inside the function, all points are stored with the transformed position relative to the base coordinate system.

또한, 롤(roll), 피치(pitch) 및 요(yaw) 회전으로 표시되는 각도는 쿼터니언(Quaternion)으로 저장되며, 이러한 회전각도 베이스 좌표계를 기준으로 변환한 각도가 저장된다.In addition, angles represented by roll, pitch, and yaw rotations are stored as quaternions, and angles converted based on the rotation angle base coordinate system are stored.

도 5는 두 개의 경로 이동 명령을 순차적으로 진행하는 과정을 나타낸 도면으로서, (a)는 경로 이동 명령 함수에 따른 이동 경로, (b)는 경로 이동 명령의 처리 과정을 나타낸 도면이다.5 is a diagram showing a process of sequentially proceeding two route movement commands, wherein (a) is a movement path according to a route movement command function, and (b) is a diagram showing a process of processing a route movement command.

도 5를 참조하면, 두 개의 경로 이동 명령이 순차적으로 내려지는 과정을 고려해보자.Referring to FIG. 5 , consider a process in which two route movement commands are issued sequentially.

도 5의 (a)에서, MoveLine() 명령은 이미 일련의 과정을 거쳐 큐(110)에 입력된 상태이고, 이제, MoveArc() 명령이 처리되어야 하는 상황이라면, a점은 이미 베이스 좌표계를 기준으로 하는 점으로 변환되었고, MoveArc() 명령의 인자로 넘어온 b와 c점(사용자가 선택한 좌표계 상의 점)을 베이스 좌표계로 변환해야 한다. In (a) of FIG. 5, the MoveLine() command has already been input to the queue 110 through a series of processes, and now, if the MoveArc() command is to be processed, point a is already based on the base coordinate system. , and the b and c points (points on the coordinate system selected by the user) passed as arguments of the MoveArc() command must be converted to the base coordinate system.

도 5의 (b)에서, 경로 이동 명령의 인자로 사용되는 점들의 처리 과정을 나타낸다. 여기서, 제어부(120)는 변환부(121-1), 경로 체크부(121-2) 및 리미트 체크부((121-3)를 포함할 수 있다.In (b) of FIG. 5, a process of processing dots used as arguments of a path movement command is shown. Here, the controller 120 may include a conversion unit 121-1, a path checker 121-2, and a limit checker (121-3).

변환부(121-1)는 입력되는 점

Figure 112021092681384-pat00007
의 위치와 방위에 대하여 하기의 수학식 3을 이용하여 베이스 좌표계 상의 점으로 변환된다. 즉, 점 b와 c는 베이스 좌표계가 아닌 모르는 좌표계이므로, 이를 베이스 좌표계로 변환된다. The conversion unit 121-1 is an input point
Figure 112021092681384-pat00007
The position and direction of is converted to a point on the base coordinate system using Equation 3 below. That is, since the points b and c are not in the base coordinate system but in an unknown coordinate system, they are converted into the base coordinate system.

Figure 112021092681384-pat00008
Figure 112021092681384-pat00008

여기서, Quat() 함수는 스칼라 값과 벡터 값을 받아 쿼터니언으로 변환하는 함수이다. c점은 b점과 동일한 연산이 이루어지기 때문에 수식은 생략한다. 그리고 베이스 좌표계, 월드 좌표계 및 워크 좌표계 변환에 사용되는 변환 행렬 T와 쿼터니언 q는 하기의 수학식 4와 같다.Here, the Quat() function is a function that converts scalar and vector values into quaternions. Since point c is the same operation as point b, the formula is omitted. In addition, the transformation matrix T and the quaternion q used for transforming the base coordinate system, the world coordinate system, and the work coordinate system are as shown in Equation 4 below.

Figure 112021092681384-pat00009
Figure 112021092681384-pat00009

경로 체크부(121-2)는 a,b,c 점을 잇는 경로에서 정변환(Forward)/역변환(Inverse)이 가능한지를 체크한다. 여기서, 체크 결과가 실패하면, 더 이상 이후 과정을 수행하지 않고 경고를 표시한다.The path checking unit 121-2 checks whether forward/inverse transformation is possible in the path connecting the points a, b, and c. Here, if the check result fails, a warning is displayed without further processing.

리미트 체크부(121-3)는 조인트 공간/태스크 공간의 리미트 내에 있는지를 체크한다. 여기서, 체크 결과가 실패하면, 더 이상 이후 과정을 수행하지 않고 경고를 표시한다.The limit check unit 121-3 checks whether the joint space/task space is within the limits. Here, if the check result fails, a warning is displayed without further processing.

한편, 경로 이동 명령은 목표 위치만으로 주어지기 때문에, 로봇 말단이 현재 위치에서 목표 위치까지 이동하기 위한 연속적인 경로가 필요하다. 두 점이 주어졌을 때, 이 경로를 생성하는 방법을 보간이라 하며, 경로 이동 점들의 보간법에는 이동 형태에 따라 4가지로 나뉜다. 즉, 경로 이동 점들의 보간법은 조인트 보간(Joint interpolation), 선분 보간(Line interpolation), 원호 보간(Arc interpolation) 및 원 보간(Circle interpolation)을 포함할 수 있다. 이 중 원호 보간과 원 보간은 유사함으로 하나의 항목으로 설명한다.Meanwhile, since the path movement command is given only to the target position, a continuous path is required for the robot end to move from the current position to the target position. When two points are given, the method of generating this path is called interpolation, and the interpolation method of the path movement points is divided into four types according to the movement type. That is, the interpolation method of moving points of a path may include joint interpolation, line interpolation, arc interpolation, and circle interpolation. Among them, circular interpolation and circular interpolation are described as one item because they are similar.

조인트 보간은 도 4의 (a)에 도시된 바와 같이, 조인트 공간에서 두 점 a, b가 주어졌을 때, 두 점을 잇는 선분을 따라 이동하는 보간법이다. 일례로, 수직 다관절 로봇의 경우, 조인트 공간에서는 직선을 따라 이동하지만 태스크 공간에서는 도 4의 (a)와 같이 곡선을 따라 이동한다. Joint interpolation is an interpolation method that moves along a line segment connecting two points when two points a and b are given in the joint space, as shown in (a) of FIG. 4 . For example, in the case of a vertical multi-joint robot, it moves along a straight line in joint space, but moves along a curve as shown in FIG. 4(a) in task space.

이러한 조인트 보간은 두 점

Figure 112021092681384-pat00010
를 잇는 선분상의 한 점을 연산하는 것으로, 하기의 수학식 5와 같이 간단한 수식으로 표현할 수 있다. 여기서, 선분 상의 한 점 x는 변수 s에 의해 결정된다.These joint interpolations are two points
Figure 112021092681384-pat00010
By calculating a point on the line segment connecting , it can be expressed by a simple formula as shown in Equation 5 below. Here, a point x on the line segment is determined by the variable s.

Figure 112021092681384-pat00011
Figure 112021092681384-pat00011

선분 보간은 도 4의 (c)에 도시된 바와 같이, 태스크 공간에서 두 점 a, b가 주어졌을 때, 두 점을 잇는 선분을 따라 이동하는 보간법이다. 이러한 선분 보간법은 두 점

Figure 112021092681384-pat00012
를 잇는 선분 상의 한 점을 연산한다. As shown in (c) of FIG. 4, line segment interpolation is an interpolation method that moves along a line segment connecting two points when two points a and b are given in the task space. This line segment interpolation method is
Figure 112021092681384-pat00012
Calculate a point on the line segment connecting .

여기서. 두 점 a b는 3차원 공간상에서 위치와 회전을 나타내는데, 위치를 나타내는

Figure 112021092681384-pat00013
벡터와 쿼터니언 회전을 나타내는
Figure 112021092681384-pat00014
벡터로 구성된다. 이때, 선분 상의 한 점 x는 변수 s에 의해 하기의 수학식 6식으로 결정된다. here. The two points a and b represent position and rotation in 3D space.
Figure 112021092681384-pat00013
Representing vector and quaternion rotations
Figure 112021092681384-pat00014
made up of vectors. At this time, a point x on the line segment is determined by Equation 6 below by a variable s.

Figure 112021092681384-pat00015
Figure 112021092681384-pat00015

여기서, Slerp() 함수는 하기의 수학식 7과 같다.Here, the Slerp() function is as shown in Equation 7 below.

Figure 112021092681384-pat00016
Figure 112021092681384-pat00016

여기서, p0 및 p1은 각각 회전에 의한 원호 상의 a점 및 b점의 위치이고, t는 0≤t≤1이다. Here, p 0 and p 1 are positions of points a and b on a circular arc due to rotation, respectively, and t is 0≤t≤1.

도 6은 경로 이동 점들의 보간 방법을 설명하기 위한 도면으로서, (a)는 원호의 회전 위치 산출을 설명하기 위한 도면, (b)는 원호의 회전각도 산출을 설명하기 위한 도면이다. 6 is a diagram for explaining an interpolation method of path movement points, (a) is a diagram for explaining the calculation of the rotational position of the arc, and (b) is a diagram for explaining the calculation of the rotation angle of the arc.

원호(또는 원) 보간은 태스크 공간에서 세 점 a, b, c가 주어졌을 때, 세 점을 잇는 원호(또는 원)를 따라 이동하는 보간법이다. 이러한 원호(또는 원) 보간을 위해서는 원호(또는 원)의 중심 o와 원호를 포함하는 평면의 회전량 R을 알아야 한다. Circular (or circular) interpolation is an interpolation method that moves along an arc (or circle) connecting three points when three points a , b, and c are given in the task space. For such arc (or circle) interpolation, it is necessary to know the center o of the arc (or circle) and the amount of rotation R of the plane containing the arc.

도 6의 (a)을 참조하면, 원호 보간을 위해, 원호의 반지름 r과 o, R 값이 알려져 있다면, 먼저, 원점 o를 기준으로 하는 좌표계상에서 θ만큼 회전한 위치의 점

Figure 112021092681384-pat00017
를 하기의 수학식 9로 연산한다. Referring to (a) of FIG. 6, for circular interpolation, if the radii r, o , and R values of the arc are known, first, a point rotated by θ on the coordinate system based on the origin o
Figure 112021092681384-pat00017
is calculated by Equation 9 below.

Figure 112021092681384-pat00018
Figure 112021092681384-pat00018

이 점은 o를 기준으로 하는 좌표계 상의 점이기 때문에, 이 점을 베이스 좌표계 상의 점으로 변환하기 위해서는 하기의 수학식 9와 같이, R을 곱하고 o만큼 이동해야 한다. 회전에 대한 보간은 선분 보간에서와 동일하게 Slerp() 함수를 사용하여 보간한다.Since this point is a point on the coordinate system based on o, in order to convert this point to a point on the base coordinate system, it is multiplied by R and moved by o as shown in Equation 9 below. Interpolation for rotation is performed using the Slerp() function in the same way as for segment interpolation.

Figure 112021092681384-pat00019
Figure 112021092681384-pat00019

도 6의 (b)에 도시된 바와 같이, 3개의 점

Figure 112021092681384-pat00020
가 주어졌을 때, 원호의 중심
Figure 112021092681384-pat00021
를 연산하는 방법은 다음과 같다.As shown in (b) of FIG. 6, three points
Figure 112021092681384-pat00020
Given , the center of the arc
Figure 112021092681384-pat00021
The way to compute is as follows.

세 점 p 0 , p 1 , p 2 가 지나는 평면에 수직인 벡터 n은 하기의 수학식 10과 같다.A vector n perpendicular to the plane through which the three points p 0 , p 1 , and p 2 pass is expressed in Equation 10 below.

Figure 112021092681384-pat00022
Figure 112021092681384-pat00022

그리고 세 점으로부터 원의 중심 c까지의 거리 r은 일정하기 때문에 하기의 수학식 11이이 성립한다.And since the distance r from the three points to the center c of the circle is constant, Equation 11 below holds.

Figure 112021092681384-pat00023
Figure 112021092681384-pat00023

원의 중심 c에서 점 p 0 를 향하는 벡터를

Figure 112021092681384-pat00024
라고 하면, nu에 수직인 벡터
Figure 112021092681384-pat00025
를 연산할 수 있고, 중심에서 u, v, n 벡터로 회전 행렬 R을 하기의 수학식 12로 나타낼 수 있다. The vector pointing from the center c of the circle to the point p 0
Figure 112021092681384-pat00024
, the vector perpendicular to n and u
Figure 112021092681384-pat00025
can be calculated, and the rotation matrix R with vectors u , v , and n at the center can be expressed by Equation 12 below.

Figure 112021092681384-pat00026
Figure 112021092681384-pat00026

3점이 만드는 평면의 방정식은

Figure 112021092681384-pat00027
이 성립하고, 이 식을 풀면 하기의 수학식 13이 만들어진다.The equation of the plane formed by 3 points is
Figure 112021092681384-pat00027
If this holds and this equation is solved, the following equation (13) is created.

Figure 112021092681384-pat00028
Figure 112021092681384-pat00028

그리고 반지름 r이 동일하기 때문에

Figure 112021092681384-pat00029
이 성립하고, 수학식 13에 각각의 점을 대입하여 하기의 수학식 14를 만들 수 있다.And since the radius r is the same
Figure 112021092681384-pat00029
When this is established, the following Equation 14 can be made by substituting each point into Equation 13.

Figure 112021092681384-pat00030
Figure 112021092681384-pat00030

수학식 13과 수학식 14를 연립하여 풀면 중심 c는 하기의 수학식 15와 같이 구할 수 있다.When Equations 13 and 14 are combined and solved, the centroid c can be obtained as in Equation 15 below.

Figure 112021092681384-pat00031
Figure 112021092681384-pat00031

수학식 15와 같이, 중심 c를 구했다면, 수학식 12에 점들을 대입하여 회전 행렬 R을 구할 수 있다.As in Equation 15, if the center c is obtained, the rotation matrix R can be obtained by substituting points into Equation 12.

이와 같이, 중심 c와 회전 행렬 R을 구했다면, p 0 점을 기준으로 p 1 , p 2 점이 회전한 각도를 알아야 한다. 이를 위해, 점 p 0, p 1, p 2 를 따라가는 원호의 회전 방향을 판별해야 한다. 즉, 각 점에 대한 원호 상에서의 회전이 시계방향 회전인지 반시계방향 회전인지를 알아야 한다. 원호의 중심 c를 원점으로 하고, p 0 점을 x축으로 하는 좌표계를 가정하고 하기의 수학식 16과 같이, p 1 p 2 점을 이 좌표계 상의 점으로 변환한다. In this way, if you have obtained the center c and the rotation matrix R , you need to know the rotation angles of the points p 1 and p 2 with respect to the point p 0 . To do this, it is necessary to determine the direction of rotation of the circular arc along the points p 0, p 1, p 2 . That is, it is necessary to know whether the rotation on the circular arc for each point is a clockwise rotation or a counterclockwise rotation. Assuming a coordinate system in which the center c of the arc is the origin and the x-axis is the point p 0 , the points p 1 and p 2 are converted into points on this coordinate system as shown in Equation 16 below.

Figure 112021092681384-pat00032
Figure 112021092681384-pat00032

그리고 두 점의 각도

Figure 112021092681384-pat00033
Figure 112021092681384-pat00034
를 하기의 수학식 17과 같이 연산한다.and the angle between the two points
Figure 112021092681384-pat00033
class
Figure 112021092681384-pat00034
is calculated as in Equation 17 below.

Figure 112021092681384-pat00035
Figure 112021092681384-pat00035

하기의 수학식 18과 같이, 두 점의 각도가 0에서 2π 범위 내가 되게 한다.As shown in Equation 18 below, the angle between the two points is within the range of 0 to 2π.

Figure 112021092681384-pat00036
Figure 112021092681384-pat00036

이때,

Figure 112021092681384-pat00037
Figure 112021092681384-pat00038
의 크기를 비교해 보면, 회전 방향을 알 수 있다. 만일
Figure 112021092681384-pat00039
Figure 112021092681384-pat00040
보다 크다면, 하기의 수학식 19와 같이
Figure 112021092681384-pat00041
Figure 112021092681384-pat00042
에서 2π를 뺌으로 회전 방향을 반대로 바꿀 수 있다. At this time,
Figure 112021092681384-pat00037
class
Figure 112021092681384-pat00038
By comparing the size of , the direction of rotation can be determined. if
Figure 112021092681384-pat00039
class
Figure 112021092681384-pat00040
If greater than, as shown in Equation 19 below
Figure 112021092681384-pat00041
class
Figure 112021092681384-pat00042
By subtracting 2π from , the direction of rotation can be reversed.

Figure 112021092681384-pat00043
Figure 112021092681384-pat00043

도 7은 본 발명의 실시예에 따른 로봇의 모션 경로 블렌딩 장치의 동작을 설명하기 위한 도면으로서, (a)는 기본 구성, (b)는 하나의 노드에 대한 보간시, (c)는 두 노드에 대한 블렌딩시 동작을 설명하기 위한 도면이다. 7 is a diagram for explaining the operation of a motion path blending device for a robot according to an embodiment of the present invention, (a) is a basic configuration, (b) is interpolation for one node, (c) is two nodes It is a diagram for explaining the operation when blending for .

도 7을 참조하면, 제어부(120)는 모션 처리부(122), 보간부(124) 및 블렌딩 보간부(126)를 포함할 수 있다. 모션 처리부(122)는 큐(110)에서 인출된 경로 이동 명령에 따라 하나의 노드에 대한 모션을 처리할 수 있다. 이때, 모션 처리부(122)는 각 노드에 대하여 활성화되며, 블렌딩과 같이 두 노드에 대한 처리가 필요한 경우, 모션 처리부(122-1) 및 모션 처리부(122-2)의 두 개의 모듈이 활성화될 수 있다. 또한, 모션 처리부(122)는 프로파일부(122a) 및 로봇 기구학부(122b)를 포함할 수 있다.Referring to FIG. 7 , the controller 120 may include a motion processing unit 122 , an interpolation unit 124 , and a blending interpolation unit 126 . The motion processing unit 122 may process motion for one node according to a path movement command fetched from the queue 110 . At this time, the motion processing unit 122 is activated for each node, and when processing for two nodes is required, such as blending, two modules of the motion processing unit 122-1 and the motion processing unit 122-2 may be activated. there is. In addition, the motion processing unit 122 may include a profile unit 122a and a robot kinematics unit 122b.

프로파일부(122a)는 노드가 가진 프로파일 정보로부터 로봇(10) 말단이 따라가야 할 궤적 상의 한 점을 생성할 수 있다. 여기서, 노드는 경로 이동 명령, 출발점, 끝점으로 구성된 정보이고, 프로파일 정보는 가속도, 감속도, 최고속도 등의 이동 속성을 결정하는 정보이며, 로봇(10) 말단은 로봇(10)에 대한 실질적인 제어 대상으로서 그리퍼, 용접 봉의 끝 등일 수 있다. The profile unit 122a may generate a point on the trajectory to be followed by the end of the robot 10 from the profile information of the node. Here, the node is information composed of a path movement command, a starting point, and an end point, the profile information is information for determining movement properties such as acceleration, deceleration, and maximum speed, and the end of the robot 10 is the actual control for the robot 10. The target may be a gripper or the tip of a welding rod.

로봇 기구학부(122b)는 프로파일부(122a)에서 생성된 궤적 상의 한 점이 태스크 공간이나 조인트 공간에서 표현될 때, 로봇(10)에 대한 정기구학이나 역기구학을 연산하여 두 공간 사이에 매핑되는 점을 연산할 수 있다.When a point on the trajectory generated by the profile unit 122a is expressed in the task space or the joint space, the robot kinematics unit 122b computes the forward kinematics or inverse kinematics of the robot 10 and maps it between the two spaces. can be computed.

이와 같이 구성된 로봇의 모션 경로 블렌딩 장치(100)는 큐(110)에 경로 이동 명령이 순차적으로 저장되고, 제어부(120)는 큐(110)에서 명령을 하나씩 인출하여 수행하게 된다. 즉, 도 7의 (a)와 같이, 제어부(120)는 하나의 명령에 대한 수행을 완료하고, 큐(110)에서 다음 명령을 인출하여 수행하는 과정을 반복적으로 진행한다. 따라서 제어부(120)는 현재 경로 이동 명령을 수행중인 현재 노드에 대한 모션을 처리할 수 있다.In the robot motion path blending device 100 configured as described above, path movement commands are sequentially stored in the queue 110, and the control unit 120 fetches commands from the queue 110 one by one and executes them. That is, as shown in (a) of FIG. 7 , the control unit 120 repeatedly proceeds with the process of completing execution of one command, fetching the next command from the queue 110 and executing the execution. Accordingly, the control unit 120 may process the motion of the current node that is currently executing the path movement command.

이때, 제어부(120)는 현재 노드가 블렌딩 조건을 만족하는지의 여부를 결정할 수 있다.In this case, the controller 120 may determine whether the current node satisfies the blending condition.

만일 블렌딩이 필요없다면, 즉, 현재 노드가 블렌딩 조건을 만족하지 않는 경우, 제어부(120)는 도 7의 (b)와 같이 보간에 의해 현재 노드에 대한 모션 처리를 완료할 수 있다. 이와 같이, 모션 처리부(122)가 블렌딩 없이 단일 노드에 대하여 처리하는 경우, 모션 처리부(122-1)만 활성화될 수 있다. 즉, 프로파일부 1(122a-2) 및 로봇 기구학부 1(122b-2)만 활성화될 수 있다.If blending is not necessary, that is, if the current node does not satisfy the blending condition, the controller 120 may complete motion processing for the current node by interpolation as shown in (b) of FIG. 7 . In this way, when the motion processing unit 122 processes a single node without blending, only the motion processing unit 122-1 may be activated. That is, only the profile part 1 (122a-2) and the robot kinematics part 1 (122b-2) can be activated.

이 경우, 하나의 노드에 대한 모션 처리가 완료되면, 다음 노드에 대한 모션 처리가 수행될 수 있다. 따라서 두 개의 노드가 동시에 처리될 필요가 없으므로 하나의 모션 처리부(122-1)만 활성화될 수 있다. 따라서 보간부(124)에 의해 이동 경로가 생성될 수 있다.In this case, when motion processing for one node is completed, motion processing for the next node may be performed. Therefore, since two nodes do not need to be processed simultaneously, only one motion processing unit 122-1 can be activated. Accordingly, a movement path may be generated by the interpolator 124 .

한편, 블렌딩이 필요하다면, 하나의 명령에 대한 처리가 종료되기 전에 다음 명령이 겹쳐서 수행되는 구간이 존재하게 된다. 이와 같이, 블렌딩을 위해 두 개의 프로파일이 정합될 수 있으므로 프로파일부(122a)와 로봇 기구학부(122b)는 2개의 모듈이 활성화되어야 한다. On the other hand, if blending is required, there is a section in which the next command overlaps and is performed before the processing of one command ends. In this way, since two profiles can be matched for blending, two modules of the profile part 122a and the robot kinematics part 122b must be activated.

도 7의 (c)에 도시된 바와 같이, 모션 처리부(122)가 블렌딩을 위해 두 개의 노드를 동시에 처리하는 경우, 두 개의 모션 처리부(122-1, 122-2)가 모두 활성화될 수 있다. 즉, 프로파일부 0(122a-1) 및 로봇 기구학부 0(122b-1)와 함께 프로파일부 1(122a-2) 및 로봇 기구학부 1(122b-2)가 모두 활성화될 수 있다. 따라서 두 개의 프로파일이 동시에 생성되어 블렌딩 보간부(126)에 의해 합성될 수 있다.As shown in (c) of FIG. 7 , when the motion processor 122 simultaneously processes two nodes for blending, both motion processors 122-1 and 122-2 may be activated. That is, both the profile part 1 (122a-2) and the robot kinematics part 1 (122b-2) may be activated together with the profile part 0 (122a-1) and the robot kinematics part 0 (122b-1). Accordingly, two profiles may be simultaneously generated and synthesized by the blending interpolation unit 126 .

이와 같이, 제어부(120)는 현재 노드가 블렌딩 조건을 만족하는 경우, 큐(110)로부터 수신된 다음 경로 이동 명령에 기초하여 다음 노드에 대한 모션을 동시에 처리할 수 있다. 이때, 제어부(120)는 현재 노드에 대한 모션 경로와 다음 노드에 대한 모션 경로의 일부가 겹쳐지도록 블렌딩할 수 있다.As such, when the current node satisfies the blending condition, the controller 120 may simultaneously process motion for the next node based on the next path movement command received from the queue 110 . In this case, the controller 120 may blend a motion path for the current node and a part of the motion path for the next node to overlap each other.

이에 의해, 본 발명의 일 실시예에 따른 로봇의 모션 경로 블렌딩 장치(100)는 제조 공정상에서 로봇의 연속 모션을 신속하게 구현할 수 있으므로 로봇의 작업 시간을 단축할 수 있다.Accordingly, the motion path blending apparatus 100 of the robot according to an embodiment of the present invention can quickly implement the continuous motion of the robot in the manufacturing process, thereby reducing the robot's working time.

도 8은 본 발명의 실시예에 따른 로봇의 모션 경로 블렌딩 장치의 보간을 설명하기 위한 도면이다. 8 is a diagram for explaining interpolation of an apparatus for blending a motion path of a robot according to an embodiment of the present invention.

도 8을 참조하면, 제어부(120)는 정규화부(123)를 더 포함할 수 있다. 이때, 제어부(120)는 현재 노드에 대한 모션을 처리하는 경우 및 다음 노드에 대한 모션을 동시에 처리하는 경우, 각 노드에 대한 모션 경로 상에서 이동량을 정규화한 후 보간에 의해 모션 경로 상의 위치를 산출할 수 있다.Referring to FIG. 8 , the control unit 120 may further include a normalization unit 123. At this time, the control unit 120 calculates the position on the motion path by interpolation after normalizing the movement amount on the motion path for each node when processing the motion for the current node and the motion for the next node at the same time. can

즉, 프로파일부(122a)는 하나의 명령이 생성하는 단위 경로의 길이 dmax에 대한 이동량 d를 산출할 수 있다. 여기서, 단위 경로는 선분, 원호 및 원 중 어느 하나일 수 있다. That is, the profile unit 122a may calculate the movement amount d for the length d max of a unit path generated by one command. Here, the unit path may be any one of a line segment, an arc, and a circle.

정규화부(123)는 프로파일부(122a)에서 산출된 이동량 d를 정규화(d/dmax)할 수 있다. The normalization unit 123 may normalize (d/d max ) the movement amount d calculated by the profile unit 122a.

보간부(124)는 하기의 수학식 20과 같이 단위 경로 상의 한 점 x를 연산할 수 있다.The interpolator 124 may calculate a point x on a unit path as shown in Equation 20 below.

Figure 112021092681384-pat00044
Figure 112021092681384-pat00044

도 9는 본 발명의 실시예에 따른 로봇의 모션 경로 블렌딩 장치의 블렌딩 조건을 설명하기 위한 도면으로서, (a)는 정규화, (b)는 블렌딩 길이와 시간을 설명하기 위한 도면이다.9 is a diagram for explaining blending conditions of a robot motion path blending apparatus according to an embodiment of the present invention, where (a) is normalization and (b) is a diagram for explaining blending length and time.

도 9의 (a)에 도시된 바와 같이, 원호를 예로 하여 프로파일의 생성과 보간 점을 연산하는 방법을 도식화하였다. 원호의 길이와 동일한 1차원 선분을 만들고, 이 선분의 길이를 dmax라 한다면, 프로파일부(122a)는 시간이 흐름에 따라 이 선분상을 가감속하여 이동하는 점의 위치 d를 연산한다. 정규화부(123)는 선분 상에서 d만큼 이동한 점을 d/dmax로 정규화한다. As shown in (a) of FIG. 9, a method of generating a profile and calculating an interpolation point is illustrated by taking a circular arc as an example. If a one-dimensional line segment equal to the length of the circular arc is created and the length of this line segment is denoted by d max , the profile unit 122a calculates the position d of the moving point by accelerating and decelerating on this line segment over time. The normalization unit 123 normalizes a point moved by d on the line segment to d/d max .

최종적으로, 보간부(124)는 원호 상의 점 x로 변환할 수 있다. 이는 상술한 바와 같은 3가지 경로 이동 점들의 보간법에서 각각의 보간 식(수학식 5 및 수학식 6)에서 인자 s에 대한 값이다. Finally, the interpolator 124 can convert the point x on the circular arc. This is a value for the factor s in each interpolation equation (Equation 5 and Equation 6) in the interpolation method of three path movement points as described above.

한편, 블렌딩이 설정되어 있다면, 현재 노드(n1)에 대한 모션 처리가 끝나기 전에 다음 노드(nnext)에 대한 모션 처리가 개시되어 두 경로가 블렌딩되어야 한다. 이를 위해서는 현재 노드에 대한 모션 처리가 수행되는 동안 다음 노드에 대한 모션 처리의 수행 조건을 체크하여 수행조건(블렌딩 조건)이 성립한다면 다음 노드에 대한 모션 처리가 수행되어야 한다.On the other hand, if blending is set, motion processing for the next node (n next ) must be started before motion processing for the current node (n 1 ) ends, and the two paths must be blended. To this end, while motion processing for the current node is being performed, motion processing for the next node should be performed if the execution condition (blending condition) is satisfied by checking the execution condition for the motion processing for the next node.

이때, 제어부(120)는 다음 노드에 대한 모션 처리의 수행조건을 다음의 3가지 조건의 만족 여부에 따라 결정할 수 있다.In this case, the control unit 120 may determine conditions for performing motion processing for the next node according to whether the following three conditions are satisfied.

첫 번째로, 현재 노드에 대한 모션 처리를 이동 거리의 절반 이상 수행해야 한다. 즉, 하기의 수학식 21을 만족해야 한다. First, motion processing for the current node should be performed at least half of the moving distance. That is, the following Equation 21 must be satisfied.

Figure 112021092681384-pat00045
Figure 112021092681384-pat00045

두 번째로, 큐(110)에 다음 노드가 존재해야 한다. 즉, 하기의 수학식 22를 만족해야 한다. Second, there must be a next node in the queue 110. That is, the following Equation 22 must be satisfied.

Figure 112021092681384-pat00046
Figure 112021092681384-pat00046

마지막으로, 현재 노드에 대한 모션의 남은 수행 시간이 다음 노드의 블렌딩 시간 범위 내이어야 한다. 즉, 하기의 수학식 23을 만족해야 한다. Finally, the remaining execution time of the motion for the current node must be within the blending time range of the next node. That is, the following Equation 23 must be satisfied.

Figure 112021092681384-pat00047
Figure 112021092681384-pat00047

이때, 수학식 23을 판단하기 위해서는 블렌딩 길이(blend_length)를 알아야 하고 블렌딩 시간(blend_time)이 미리 연산도어 있어야 한다. blend_length는 사용자가 노드에 미리 설정하는 값이기 때문에 알려져 있다. 하지만 blend_time은 연산에 의해 구해야 한다. 만일 특정 시간 t에 이동 거리 s를 구하는 프로파일 함수

Figure 112021092681384-pat00048
를 알고 있다면, 하기의 수학식 24와 같이, 이 함수의 역함수를 사용하여 blend_time을 산출할 수 있다. At this time, in order to determine Equation 23, the blending length (blend_length) must be known and the blending time (blend_time) must be calculated in advance. blend_length is known because it is a value preset for a node by the user. However, blend_time must be obtained through calculation. If the profile function to find the moving distance s at a specific time t
Figure 112021092681384-pat00048
If is known, blend_time can be calculated using the inverse function of this function, as shown in Equation 24 below.

Figure 112021092681384-pat00049
Figure 112021092681384-pat00049

이와 같이, 제어부(120)는 시간에 대한 이동거리를 구하는 미리 정해진 프로파일 함수에 대한 역함수에 의해 다음 노드에 대한 블렌딩 시간을 산출할 수 있다.As such, the control unit 120 may calculate the blending time for the next node by using an inverse function of a predetermined profile function for obtaining a movement distance with respect to time.

그리고 노드 n에 대한 RemainTime() 함수는 하기의 수학식 25로 산출할 수 있다.And the RemainTime() function for node n can be calculated by Equation 25 below.

Figure 112021092681384-pat00050
Figure 112021092681384-pat00050

상기와 같은 3가지 조건을 모두 만족하면, 제어부(120)는 다음 노드가 블렌딩 조건을 만족하는 것으로 결정할 수 있다. 이와 같이 제어부(120)는 상술한 바와 같은 3가지 조건이 만족하면 큐(110)로부터 다음 노드를 인출하여 프로파일부 1(122a-2)과 로봇 기구학부 1(122b-2)에 할당할 수 있다.If all three conditions are satisfied, the control unit 120 may determine that the next node satisfies the blending condition. In this way, if the above three conditions are satisfied, the control unit 120 may fetch the next node from the queue 110 and allocate it to the profile unit 1 (122a-2) and the robot kinematics unit 1 (122b-2). .

도 10은 본 발명의 실시예에 따른 로봇의 모션 경로 블렌딩 장치의 블렌딩 동작을 설명하기 위한 도면이다. 10 is a diagram for explaining a blending operation of a motion path blending device for a robot according to an embodiment of the present invention.

도 10을 참조하면, 다음 노드에 대한 블렌딩 조건이 만족한 경우, 두 개의 프로파일부(프로파일부 0과 프로파일부 1)가 동시에 수행될 수 있다. 프로파일부 0(122a-1)은 이미 수행중인 상태이기 때문에 계속 수행되다가 결국 종료될 것이다. 하지만 프로파일부 1(122a-2)는 수행이 시작된다. 여기서, 정규화부(123-1, 123-2) 및 보간부(124-1, 124-2)를 통하여 각 노드에 대한 이동 점을 산출할 수 있다. Referring to FIG. 10 , when the blending condition for the next node is satisfied, two profile units (profile unit 0 and profile unit 1) may be simultaneously performed. Because profile unit 0 (122a-1) is already running, it will continue to run and eventually end. However, the profile unit 1 (122a-2) starts to run. Here, a movement point for each node may be calculated through the normalization units 123-1 and 123-2 and the interpolators 124-1 and 124-2.

이때, 블렌딩 보간부(126)는 도 7의 (c)와 같이, 이 두 개의 프로파일이 수행되면서 생성되는 두 점 x 0x 1을 블렌딩할 수 있다.In this case, the blending interpolator 126 may blend two points x 0 and x 1 generated while the two profiles are performed, as shown in (c) of FIG. 7 .

이와 같은 블렌딩을 위해서는 모든 점은 동일한 좌표계 상에서 표현되어야 한다. 상술한 바와 같이, 경로 이동 명령이 큐(110)에 저장될 때, 태스크 공간에서의 월드 좌표계 또는 워크 좌표계 상의 점들은 모두 베이스 좌표계로 변환되었다. 하지만, 조인트 공간에서의 점들은 그대로 큐(110)에 저장된다. For such blending, all points must be expressed on the same coordinate system. As described above, when the path movement command is stored in the queue 110, all points on the world coordinate system or the work coordinate system in the task space are converted to the base coordinate system. However, points in the joint space are stored in the queue 110 as they are.

따라서 제어부(120)는 만일 x 0x 1의 점이 서로 다른 공간에서 표현된 경우, 태스크 공간을 우성으로 하여 이 두 점을 변환할 수 있다.Therefore, if the points of x 0 and x 1 are expressed in different spaces, the controller 120 may convert these two points by making the task space dominant.

도 11은 본 발명의 실시예에 따른 로봇의 모션 경로 블렌딩 장치의 블렌딩을 위한 변환을 설명하기 위한 도면으로서, (a)는 두 노드가 모두 조인트 공간인 경우, (b)는 현재 노드만 조인트 공간인 경우, (c)는 두 노드가 모두 태스크 공간인 경우, (d)는 현재 노드만 태스크 공간인 경우를 나타낸 도면이다. 11 is a diagram for explaining transformation for blending of a motion path blending apparatus of a robot according to an embodiment of the present invention, (a) is a joint space for both nodes, and (b) is a joint space for only the current node. , (c) shows a case where both nodes are task spaces, and (d) shows a case where only the current node is a task space.

도 11을 참조하면, 제어부(120)는 현재 노드에 대한 모션과 다음 노드에 대한 모션을 동일 좌표계로 변환할 수 있다. 즉, 제어부(120)는 현재 노드 및 다음 노드가 서로 상이한 좌표계인 경우, 현재 노드 및 다음 노드가 중 조인트 공간의 조인트 좌표계를 태스크 공간의 베이스 좌표계로 변환할 수 있다. 여기서, 제어부(120)는 블렌딩부(125) 및 제1변환부(125-1)를 포함할 수 있다. Referring to FIG. 11 , the controller 120 may transform motions for a current node and motions for a next node into the same coordinate system. That is, when the current node and the next node have different coordinate systems, the controller 120 may convert the joint coordinate system of the joint space between the current node and the next node into the base coordinate system of the task space. Here, the control unit 120 may include a blending unit 125 and a first conversion unit 125-1.

도 11의 (a)에 도시된 바와 같이, 상술한 바와 같이 각 노드의 두 점 x 0x 1이 모두 조인트 공간인 경우, 제1변환부(125-1)는 생략될 수 있다. 이 경우, 블렌딩부(125)는 조인트 공간에서 표시된 점 q를 출력할 수 있다.As shown in (a) of FIG. 11 , as described above, when both points x 0 and x 1 of each node are joint spaces, the first transform unit 125-1 may be omitted. In this case, the blending unit 125 may output the marked point q in the joint space.

도 11의 (b)에 도시된 바와 같이, 한 점 x 0은 조인트 공간이고, 다른 한 점 x 1은 태스크 공간인 경우, 제1변환부(125-1)는 조인트 공간의 x 0를 태스크 공간 공간으로 변환할 수 있다. 이 경우, 블렌딩부(125)는 태스크 공간에서 표시된 점 p를 출력할 수 있다.As shown in (b) of FIG. 11, when one point x 0 is a joint space and the other point x 1 is a task space, the first transform unit 125-1 transforms x 0 of the joint space into a task space. can be converted into space. In this case, the blending unit 125 may output the point p displayed in the task space.

도 11의 (c)에 도시된 바와 같이, 두 점 x 0x 1이 모두 태스크 공간인 경우, 제1변환부(125-1)는 생략될 수 있다. 이 경우, 블렌딩부(125)는 태스크 공간에서 표시된 점 p를 출력할 수 있다.As shown in (c) of FIG. 11, when both points x 0 and x 1 are task spaces, the first transform unit 125-1 may be omitted. In this case, the blending unit 125 may output the point p displayed in the task space.

도 11의 (d)에 도시된 바와 같이, 한 점 x 0은 태스크 공간이고, 다른 한 점 x 1은 조인트 공간인 경우, 제1변환부(125-1)는 조인트 공간의 x 1를 태스크 공간으로 변환할 수 있다. 이 경우, 블렌딩부(125)는 태스크 공간에서 표시된 점 p를 출력할 수 있다.As shown in (d) of FIG. 11, when one point x 0 is a task space and the other point x 1 is a joint space, the first transform unit 125-1 transforms x 1 of the joint space into a task space. can be converted to In this case, the blending unit 125 may output the point p displayed in the task space.

이때, 제1변환부(125-1)는 로봇(10)의 정기구학에 의해 조인트 공간에서 표현된 점을 태스크 공간의 베이스 좌표계 상의 점으로 변환할 수 있다. 여기서, 로봇의 정기구학은 로봇의 종류에 따라 변환식이 달라지고 복잡한 연산 과정을 거치기 때문에 구체적인 설명은 생략한다.In this case, the first conversion unit 125-1 may convert a point expressed in the joint space by the forward kinematics of the robot 10 into a point on the base coordinate system of the task space. Here, a detailed description of the robot kinematics is omitted because the transformation formula varies depending on the type of robot and undergoes a complicated calculation process.

이에 의해, 본 발명의 일 실시예에 따른 로봇의 모션 경로 블렌딩 장치(100)는 제조 공정상에서 로봇의 연속 모션을 신속하면서도 안정적으로 구현할 수 있으므로 로봇의 작업 신뢰성을 향상시킬 수 있다. Accordingly, the motion path blending apparatus 100 of the robot according to an embodiment of the present invention can rapidly and stably implement the continuous motion of the robot in the manufacturing process, thereby improving the reliability of the robot operation.

도 12는 본 발명의 실시예에 따른 로봇의 모션 경로 블렌딩 장치의 블렌딩 위치 산출을 설명하기 위한 도면이다.12 is a diagram for explaining blending position calculation of a motion path blending device for a robot according to an embodiment of the present invention.

상술한 바와 같이, 서로 다른 공간상에서 표현된 두 점을 같은 공간상의 점으로 변환하면, 블렌딩부(125)는 두 점을 블렌딩하여 하나의 점으로 생성할 수 있다.As described above, when two points expressed in different spaces are converted into points in the same space, the blending unit 125 may blend the two points to create a single point.

도 12를 참조하면, 먼저, n-1에서 n0를 연결하는 경로 상의 점 x 0 가 있고, n0에서 n1를 연결하는 경로 상의 점 x 1 이 있다고 하자. 여기서, 점 x 0 은 현재 노드에 대한 모션 경로 상의 점이고, 점 x 1 은 다음 노드에 대한 모션 경로 상의 점이다.Referring to FIG. 12 , it is assumed that there is a point x 0 on a path connecting n −1 to n 0 and a point x 1 on a path connecting n 0 to n 1 . Here, point x 0 is a point on the motion path for the current node, and point x 1 is a point on the motion path for the next node.

여기서, x 0 x 1 은 베이스 좌표계를 기준으로 표현되는 벡터이므로, 두 점을 바로 더할 수는 없다. 따라서 다음 노드의 출발점 p 0 을 기준으로 x 1 으로 이동한 벡터를 사용하여 연산해야 한다.Here, since x 0 and x 1 are vectors expressed based on the base coordinate system, two points cannot be directly added. Therefore, the vector moved to x 1 based on the starting point p 0 of the next node must be used for calculation.

따라서 블렌딩부(125)는 하기의 수학식 26에 의해 블렌딩된 위치(p)를 연산할 수 있다.Accordingly, the blending unit 125 may calculate the blended position ( p ) by Equation 26 below.

Figure 112021092681384-pat00051
Figure 112021092681384-pat00051

여기서, x 0는 현재 노드에 대한 모션 경로 상의 위치를 나타내는 벡터이고, x 1은 다음 노드에 대한 모션 경로 상의 위치를 나타내는 벡터이며, p 0는 다음 노드의 위치를 나타내는 벡터이다. Here, x 0 is a vector representing the position of the current node on the motion path, x 1 is a vector representing the position of the next node on the motion path, and p 0 is a vector representing the position of the next node.

도 13은 본 발명의 실시예에 따른 로봇의 모션 경로 블렌딩 장치의 로봇으로 조인트 구동 명령을 전달하는 과정을 설명하기 위한 도면이다. 13 is a diagram for explaining a process of transmitting a joint driving command to a robot of a motion path blending device of a robot according to an embodiment of the present invention.

상술한 바와 같이, 블렌딩까지 완료된 점을 생성하였지만, 아직 여전히 조인트 공간에서 표현되는 점들과 태스크 공간에서 표현되는 점들이 혼재되어 있다. 도 13에서, p 점은 태스크 공간에서 표시된 점을 의미하고, q점은 조인트 공간에서 표시된 점을 의미한다.As described above, even though the blending has been completed, the points expressed in the joint space and the points expressed in the task space are still mixed. In FIG. 13 , point p denotes a point marked in the task space, and point q denotes a marked point in the joint space.

따라서 로봇(10)을 구동하기 위해서는 조인트 공간에서의 위치로 모든 점들을 변환해야 하다. 이때, 제어부(120)는 제2변환부(127) 및 조인트 구동 명령부(128)를 포함할 수 있다.Therefore, in order to drive the robot 10, all points must be transformed into positions in the joint space. At this time, the control unit 120 may include a second conversion unit 127 and a joint drive command unit 128.

제2변환부(127)는 블렌딩 후에 태스크 공간의 위치를 조인트 공간의 위치로 변환할 수 있다. The second conversion unit 127 may convert the position of the task space into the position of the joint space after blending.

조인트 구동 명령부(128)는 변환된 조인트 공간에서의 각도를 생성하여 로봇(10)으로 조인트 구동 명령을 전달할 수 있다.The joint drive command unit 128 may generate an angle in the converted joint space and transmit a joint drive command to the robot 10 .

이하, 도 14를 참조하여 본 발명의 실시예에 따른 로봇의 모션 경로 블렌딩 방법을 설명한다.Hereinafter, a motion path blending method of a robot according to an embodiment of the present invention will be described with reference to FIG. 14 .

도 14는 본 발명의 실시예에 따른 로봇의 모션 경로 블렌딩 방법을 나타낸 순서도이다.14 is a flowchart illustrating a motion path blending method of a robot according to an embodiment of the present invention.

로봇의 모션 경로 블렌딩 방법(200)은 블렌딩 조건을 확인하는 단계(S210), 블렌딩 단계(S220 내지 S240), 현재 노드에 대한 보간 단계(S250) 및 조인트 구동 명령 단계(S260)를 포함한다. The robot motion path blending method 200 includes a step of checking a blending condition (S210), a blending step (S220 to S240), an interpolation step for a current node (S250), and a joint driving command step (S260).

보다 상세히 설명하면, 도 14에 도시된 바와 같이, 먼저, 로봇의 모션 경로 블렌딩 장치(100)는 현재 노드가 블렌딩 조건을 만족하는지의 여부를 결정한다(단계 S210). 여기서, 블렌딩 조건을 결정하기 이전에 노드 처리를 개시한다. More specifically, as shown in FIG. 14, first, the motion path blending apparatus 100 of the robot determines whether the current node satisfies the blending condition (step S210). Here, node processing is initiated prior to determining blending conditions.

구체적으로, 로봇의 모션 경로 블렌딩 장치(100)는 로봇(10)에 대한 경로 이동 명령을 순차적으로 큐에 저장한다. 이때, 로봇의 모션 경로 블렌딩 장치(100)는 현재 경로 이동 명령을 수행중인 현재 노드에 대한 모션을 처리할 수 있다. 여기서, 로봇의 모션 경로 블렌딩 장치(100)는 노드에 대한 모션 경로 상에서 이동량을 정규화한 후 보간에 의해 모션 경로 상의 위치를 산출할 수 있다.Specifically, the robot motion path blending device 100 sequentially stores path movement commands for the robot 10 in a queue. At this time, the motion path blending device 100 of the robot may process the motion of the current node that is currently executing the path movement command. Here, the motion path blending apparatus 100 of the robot may calculate a position on the motion path by interpolation after normalizing a movement amount on the motion path for the node.

이때, 블렌딩 조건은 다음의 3가지 조건의 만족 여부에 따라 결정될 수 있다. 현재 노드에 대한 모션 처리를 이동 거리의 절반 이상 수행하였는지의 여부와, 큐(110)에 다음 노드가 존재하는지의 여부와, 현재 노드에 대한 모션의 남은 수행 시간이 다음 노드의 블렌딩 시간 범위 내인지의 여부를 모두 만족하면 블렌딩 조건을 만족하는 것으로 결정할 수 있다. At this time, the blending condition may be determined according to whether the following three conditions are satisfied. Whether motion processing for the current node has been performed for more than half of the moving distance, whether there is a next node in the queue 110, and whether the remaining motion execution time for the current node is within the blending time range of the next node It can be determined that the blending condition is satisfied if all whether or not are satisfied.

여기서, 다음 노드에 대한 블렌딩 시간은 도 9 및 수학식 23 내지 25를 통하여 설명한 바와 같이, 시간에 대한 이동거리를 구하는 미리 정해진 프로파일 함수에 대한 역함수로 산출될 수 있다.Here, the blending time for the next node may be calculated as an inverse function of a predetermined profile function for obtaining a movement distance with respect to time, as described through FIG. 9 and Equations 23 to 25.

단계 S210의 결정결과, 현재 노드가 상기 블렌딩 조건을 만족하는 경우, 로봇의 모션 경로 블렌딩 장치(100)는 다음 노드에 대한 모션을 처리한다(단계 S220). 즉, 로봇의 모션 경로 블렌딩 장치(100)는 현재 노드에 대한 모션 처리와 동시에 다음 노드에 대한 모션 처리를 개시하여 두 노드에 대하여 동시에 처리할 수 있다.As a result of the determination in step S210, if the current node satisfies the blending condition, the robot motion path blending apparatus 100 processes the motion of the next node (step S220). That is, the motion path blending apparatus 100 of the robot may initiate motion processing for the current node and motion processing for the next node at the same time to simultaneously process the two nodes.

이때, 로봇의 모션 경로 블렌딩 장치(100)는 다음 노드에 대한 모션 경로 상에서 이동량을 정규화한 후 보간에 의해 모션 경로 상의 위치를 산출할 수 있다.In this case, the motion path blending apparatus 100 of the robot may calculate a position on the motion path by interpolation after normalizing a movement amount on the motion path for the next node.

다음으로, 로봇의 모션 경로 블렌딩 장치(100)는 현재 노드에 대한 모션과 다음 노드에 대한 모션을 동일 좌표계로 변환한다(단계 S230). 즉, 현재 노드 및 다음 노드가 서로 상이한 좌표계인 경우, 로봇의 모션 경로 블렌딩 장치(100)는 현재 노드 및 다음 노드 중 조인트 공간의 조인트 좌표계를 태스크 공간의 베이스 좌표계로 변환할 수 있다. 이때, 로봇의 모션 경로 블렌딩 장치(100)는 로봇(10)의 정기구학(Forward kinematics)에 의해 좌표 변환할 수 있다.Next, the motion path blending device 100 of the robot transforms the motion for the current node and the motion for the next node into the same coordinate system (step S230). That is, when the current node and the next node have different coordinate systems, the robot motion path blending apparatus 100 may convert the joint coordinate system of the joint space among the current node and the next node to the base coordinate system of the task space. At this time, the motion path blending device 100 of the robot may transform coordinates by forward kinematics of the robot 10 .

다음으로, 로봇의 모션 경로 블렌딩 장치(100)는 현재 노드에 대한 모션 경로와 다음 노드에 대한 모션 경로의 일부가 겹쳐지도록 블렌딩한다(단계 S240). 이때, 로봇의 모션 경로 블렌딩 장치(100)는 수학식 26으로 블렌딩된 위치(p)를 연산할 수 있다.Next, the motion path blending apparatus 100 of the robot blends parts of the motion path for the current node and the motion path for the next node so that they overlap (step S240). At this time, the motion path blending apparatus 100 of the robot may calculate the blended position p using Equation 26.

단계 S210의 결정결과, 현재 노드가 상기 블렌딩 조건을 만족하지 않는 경우, 로봇의 모션 경로 블렌딩 장치(100)는 현재 노드에 대한 보간 처리한다(단계 S250). 즉, 로봇의 모션 경로 블렌딩 장치(100)는 보간에 의해 현재 노드에 대한 모션 처리를 완료할 수 있다.As a result of the determination in step S210, if the current node does not satisfy the blending condition, the motion path blending device 100 of the robot interpolates the current node (step S250). That is, the robot motion path blending apparatus 100 may complete motion processing for the current node through interpolation.

이와 같이, 현재 노드에 대한 처리가 완료되면, 즉, 단계 S240에서와 같이 현재 노드와 다음 노드에 대한 블렌딩이 완료되거나 단계 S250과 같이 현재 노드에 대한 보간이 완료되면, 로봇의 모션 경로 블렌딩 장치(100)는 로봇(10)으로 조인트 구동 명령을 전달한다(단계 S260). 이때, 로봇의 모션 경로 블렌딩 장치(100)는 태스크 공간의 위치를 조인트 공간의 위치로 변환하고, 조인트 공간에서의 각도를 생성하여 로봇으로 조인트 구동 명령을 전달할 수 있다.In this way, when the processing of the current node is completed, that is, when blending of the current node and the next node is completed as in step S240 or interpolation of the current node is completed as in step S250, the motion path blending device of the robot ( 100 transmits a joint drive command to the robot 10 (step S260). In this case, the motion path blending apparatus 100 of the robot may convert the position of the task space into a position of the joint space, generate an angle in the joint space, and transmit a joint drive command to the robot.

상기와 같은 방법들은 도 1에 도시된 바와 같은 로봇의 모션 경로 블렌딩 장치(100)에 의해 구현될 수 있고, 특히, 이러한 단계들을 수행하는 소프트웨어 프로그램으로 구현될 수 있으며, 이 경우, 이러한 프로그램들은 컴퓨터 판독가능한 기록 매체에 저장되거나 전송 매체 또는 통신망에서 반송파와 결합된 컴퓨터 데이터 신호에 의하여 전송될 수 있다. The above methods may be implemented by the motion path blending device 100 of the robot as shown in FIG. 1, and in particular, may be implemented by a software program that performs these steps. In this case, these programs can be implemented by a computer. It may be stored in a readable recording medium or transmitted by a computer data signal combined with a carrier wave in a transmission medium or communication network.

이때, 컴퓨터 판독가능한 기록 매체는 컴퓨터 시스템에 의해 판독가능한 데이터가 저장되는 모든 종류의 기록 장치를 포함하며, 예를 들면, ROM, RAM, CD-ROM, DVD-ROM, DVD-RAM, 자기 테이프, 플로피 디스크, 하드 디스크, 광 데이터 저장장치 등일 수 있다. At this time, the computer-readable recording medium includes all types of recording devices in which data readable by a computer system is stored, and includes, for example, ROM, RAM, CD-ROM, DVD-ROM, DVD-RAM, magnetic tape, It may be a floppy disk, a hard disk, an optical data storage device, and the like.

이상에서 본 발명의 일 실시예에 대하여 설명하였으나, 본 발명의 사상은 본 명세서에 제시되는 실시예에 제한되지 아니하며, 본 발명의 사상을 이해하는 당업자는 동일한 사상의 범위 내에서, 구성요소의 부가, 변경, 삭제, 추가 등에 의해서 다른 실시예를 용이하게 제안할 수 있을 것이나, 이 또한 본 발명의 사상범위 내에 든다고 할 것이다.Although one embodiment of the present invention has been described above, the spirit of the present invention is not limited to the embodiments presented herein, and those skilled in the art who understand the spirit of the present invention may add elements within the scope of the same spirit. However, it will be possible to easily suggest other embodiments by means of changes, deletions, additions, etc., but this will also be said to fall within the scope of the present invention.

100 : 로봇의 모션 경로 블렌딩 장치
110 : 큐 120 : 제어부
121-1 : 변환부 121-2 : 경로 체크부
121-3 : 리미트 체크부 122 : 모션 처리부
122a : 프로파일부 122b : 로봇 기구학부
123 : 정규화부 124 : 보간부
125 : 블렌딩부 125-1 : 제1변환부
126 : 블렌딩 보간부 127 : 제2변환부
128 : 조인트 구동 명령부 10 : 로봇
100: robot motion path blending device
110: queue 120: control unit
121-1: conversion unit 121-2: path check unit
121-3: limit check unit 122: motion processing unit
122a: profile part 122b: robot kinematics part
123: normalization unit 124: interpolation unit
125: blending unit 125-1: first conversion unit
126: blending interpolation unit 127: second conversion unit
128: joint drive command unit 10: robot

Claims (18)

로봇에 대한 경로 이동 명령이 순차적으로 큐에 저장되는 단계;
현재 경로 이동 명령을 수행중인 현재 노드에 대한 모션을 처리하는 단계;
상기 현재 노드가 블렌딩 조건을 만족하는지의 여부를 결정하는 단계;
상기 현재 노드가 상기 블렌딩 조건을 만족하는 경우, 다음 노드에 대한 모션을 동시에 처리하는 단계;
상기 현재 노드에 대한 모션과 상기 다음 노드에 대한 모션을 동일 좌표계로 변환하는 단계; 및
상기 현재 노드에 대한 모션 경로와 상기 다음 노드에 대한 모션 경로의 일부가 겹쳐지도록 블렌딩하는 단계;
를 포함하며,
상기 결정하는 단계는,
상기 현재 노드에 대한 모션 처리를 이동 거리의 절반 이상 수행하고,
상기 큐에 다음 노드가 존재하며,
상기 현재 노드에 대한 모션의 남은 수행 시간이 상기 다음 노드의 블렌딩 시간 범위 내이면, 블렌딩 조건을 만족하는 것으로 결정하고,
상기 다음 노드에 대한 블렌딩 시간은 시간에 대한 이동거리를 구하는 미리 정해진 프로파일 함수에 대한 역함수로 산출되는 로봇의 모션 경로 블렌딩 방법.
sequentially storing path movement commands for the robot in a queue;
processing a motion for a current node that is currently executing a path movement command;
determining whether the current node satisfies a blending condition;
simultaneously processing motion for a next node when the current node satisfies the blending condition;
transforming the motion of the current node and the motion of the next node into the same coordinate system; and
blending a motion path for the current node and a part of the motion path for the next node to overlap;
Including,
The determining step is
Motion processing for the current node is performed at least half of the moving distance;
The next node exists in the queue,
If the remaining execution time of the motion for the current node is within a blending time range of the next node, it is determined that a blending condition is satisfied;
The blending time for the next node is calculated as an inverse function to a predetermined profile function for obtaining a moving distance with respect to time.
제1항에서
상기 변환하는 단계는 상기 현재 노드 및 상기 다음 노드가 서로 상이한 좌표계인 경우, 상기 현재 노드 및 상기 다음 노드 중 조인트 공간의 조인트 좌표계를 태스크 공간의 베이스 좌표계로 변환하는 로봇의 모션 경로 블렌딩 방법.
in paragraph 1
In the converting, if the current node and the next node have different coordinate systems, converting a joint coordinate system of a joint space among the current node and the next node into a base coordinate system of a task space.
제2항에서
상기 변환하는 단계는 상기 로봇의 정기구학(Forward kinematics)에 의해 좌표 변환하는 로봇의 모션 경로 블렌딩 방법.
in paragraph 2
The transforming step is a method of blending a motion path of a robot in which coordinates are transformed by forward kinematics of the robot.
삭제delete 삭제delete 제1항에 있어서,
상기 블렌딩하는 단계는 하기의 식으로 블렌딩된 위치(p)를 연산하는 로봇의 모션 경로 블렌딩 방법.
Figure 112021092681384-pat00052

여기서, x 0는 상기 현재 노드에 대한 모션 경로 상의 위치를 나타내는 벡터이고,
x 1은 상기 다음 노드에 대한 모션 경로 상의 위치를 나타내는 벡터이며,
p 0는 상기 다음 노드의 위치를 나타내는 벡터
According to claim 1,
The blending step is a motion path blending method of a robot that calculates a blended position ( p ) by the following equation.
Figure 112021092681384-pat00052

Here, x 0 is a vector representing a position on a motion path relative to the current node,
x 1 is a vector representing a position on the motion path to the next node,
p 0 is a vector representing the position of the next node
제1항에 있어서,
상기 블렌딩 단계 이후에,
태스크 공간의 위치를 조인트 공간의 위치로 변환하고, 조인트 공간에서의 각도를 생성하여 상기 로봇으로 조인트 구동 명령을 전달하는 단계를 더 포함하는 로봇의 모션 경로 블렌딩 방법.
According to claim 1,
After the blending step,
The method of blending a motion path of a robot, further comprising converting a position in the task space to a position in the joint space, generating an angle in the joint space, and transmitting a joint drive command to the robot.
제1항에 있어서,
상기 현재 노드에 대한 모션을 처리하는 단계 및 상기 다음 노드에 대한 모션을 동시에 처리하는 단계 각각은 각 노드에 대한 모션 경로 상에서 이동량을 정규화한 후 보간에 의해 상기 모션 경로 상의 위치를 산출하는 로봇의 모션 경로 블렌딩 방법.
According to claim 1,
Each of the steps of processing the motion for the current node and the step of simultaneously processing the motion for the next node normalizes the movement amount on the motion path for each node and then calculates the position on the motion path by interpolation. path blending method.
제1항에 있어서,
상기 현재 노드가 상기 블렌딩 조건을 만족하지 않는 경우, 보간에 의해 상기 현재 노드에 대한 모션 처리를 완료하는 로봇의 모션 경로 블렌딩 방법.
According to claim 1,
When the current node does not satisfy the blending condition, motion processing for the current node is completed by interpolation.
로봇에 대한 경로 이동 명령이 순차적으로 저장되는 큐; 및
상기 큐에 저장된 상기 경로 이동 명령을 순차적으로 수행하는 제어부를 포함하고,
상기 제어부는.
현재 경로 이동 명령을 수행중인 현재 노드에 대한 모션을 처리하며,
상기 현재 노드가 블렌딩 조건을 만족하는지의 여부를 결정하고,
상기 현재 노드가 상기 블렌딩 조건을 만족하는 경우, 상기 큐로부터 수신된 다음 경로 이동 명령에 기초하여 다음 노드에 대한 모션을 동시에 처리하며,
상기 현재 노드에 대한 모션과 상기 다음 노드에 대한 모션을 동일 좌표계로 변환하고,
상기 현재 노드에 대한 모션 경로와 상기 다음 노드에 대한 모션 경로의 일부가 겹쳐지도록 블렌딩하며,
상기 제어부는,
상기 현재 노드에 대한 모션 처리를 이동 거리의 절반 이상 수행하고,
상기 큐에 다음 노드가 존재하며,
상기 현재 노드에 대한 모션의 남은 수행 시간이 상기 다음 노드의 블렌딩 시간 범위 내이면, 블렌딩 조건을 만족하는 것으로 결정하고,
시간에 대한 이동거리를 구하는 미리 정해진 프로파일 함수에 대한 역함수에 의해 상기 다음 노드에 대한 블렌딩 시간을 산출하는 로봇의 모션 경로 블렌딩 장치.
a queue in which route movement commands for the robot are sequentially stored; and
And a control unit for sequentially performing the route movement command stored in the queue,
The control unit.
Process motion for the current node that is currently executing the path movement command,
determining whether the current node satisfies a blending condition;
When the current node satisfies the blending condition, simultaneously processing motion for a next node based on a next path movement command received from the queue;
Transforming the motion for the current node and the motion for the next node into the same coordinate system;
blending so that a part of the motion path for the current node and the motion path for the next node overlap;
The control unit,
Motion processing for the current node is performed at least half of the moving distance;
The next node exists in the queue,
If the remaining execution time of the motion for the current node is within a blending time range of the next node, it is determined that a blending condition is satisfied;
A motion path blending device for a robot that calculates a blending time for the next node by an inverse function to a predetermined profile function for obtaining a movement distance with respect to time.
제10항에 있어서,
상기 제어부는 상기 현재 노드 및 상기 다음 노드가 서로 상이한 좌표계인 경우, 상기 현재 노드 및 상기 다음 노드 중 조인트 공간의 조인트 좌표계를 태스크 공간의 베이스 좌표계로 변환하는 로봇의 모션 경로 블렌딩 장치.
According to claim 10,
Wherein the control unit transforms a joint coordinate system of a joint space among the current node and the next node into a base coordinate system of a task space when the current node and the next node have different coordinate systems.
제11항에 있어서,
상기 제어부는 상기 로봇의 정기구학에 의해 좌표 변환하는 로봇의 모션 경로 블렌딩 장치.
According to claim 11,
The control unit is a motion path blending device of a robot that converts coordinates by the regular kinematics of the robot.
삭제delete 삭제delete 제10항에 있어서,
상기 제어부는 하기의 식으로 블렌딩된 위치(p)를 연산하는 로봇의 모션 경로 블렌딩 장치.
Figure 112021092681384-pat00053

여기서, x 0는 상기 현재 노드에 대한 모션 경로 상의 위치를 나타내는 벡터이고,
x 1은 상기 다음 노드에 대한 모션 경로 상의 위치를 나타내는 벡터이며,
p 0는 상기 다음 노드의 위치를 나타내는 벡터
According to claim 10,
The control unit calculates a blended position ( p ) by the following formula. Motion path blending device of a robot.
Figure 112021092681384-pat00053

Here, x 0 is a vector representing a position on a motion path relative to the current node,
x 1 is a vector representing a position on the motion path to the next node,
p 0 is a vector representing the position of the next node
제10항에 있어서,
상기 제어부는 상기 블렌딩 후 태스크 공간의 위치를 조인트 공간의 위치로 변환하고, 조인트 공간에서의 각도를 생성하여 상기 로봇으로 조인트 구동 명령을 전달하는 로봇의 모션 경로 블렌딩 장치.
According to claim 10,
The control unit converts a position of the task space to a position of the joint space after the blending, generates an angle in the joint space, and transmits a joint driving command to the robot.
제10항에 있어서,
상기 제어부는 상기 현재 노드에 대한 모션을 처리하는 경우 및 상기 다음 노드에 대한 모션을 동시에 처리하는 경우, 각 노드에 대한 모션 경로 상에서 이동량을 정규화한 후 보간에 의해 상기 모션 경로 상의 위치를 산출하는 로봇의 모션 경로 블렌딩 장치.
According to claim 10,
The controller calculates a position on the motion path by interpolation after normalizing a movement amount on the motion path for each node when processing the motion for the current node and the motion for the next node at the same time. motion path blending device.
제10항에 있어서,
상기 제어부는 상기 현재 노드가 상기 블렌딩 조건을 만족하지 않는 경우, 보간에 의해 상기 현재 노드에 대한 모션 처리를 완료하는 로봇의 모션 경로 블렌딩 장치.
According to claim 10,
Wherein the control unit completes motion processing for the current node by interpolation when the current node does not satisfy the blending condition.
KR1020210105991A 2021-08-11 2021-08-11 Method for blending motion route of robot and apparatus thereof KR102520793B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020210105991A KR102520793B1 (en) 2021-08-11 2021-08-11 Method for blending motion route of robot and apparatus thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020210105991A KR102520793B1 (en) 2021-08-11 2021-08-11 Method for blending motion route of robot and apparatus thereof

Publications (2)

Publication Number Publication Date
KR20230024002A KR20230024002A (en) 2023-02-20
KR102520793B1 true KR102520793B1 (en) 2023-04-12

Family

ID=85329216

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210105991A KR102520793B1 (en) 2021-08-11 2021-08-11 Method for blending motion route of robot and apparatus thereof

Country Status (1)

Country Link
KR (1) KR102520793B1 (en)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050067995A1 (en) * 2003-09-30 2005-03-31 Rockwell Automation Technologies, Inc. Method and system for generating multi-dimensional motion profiles
US20110307096A1 (en) 2007-07-31 2011-12-15 Rockwell Automation Technologies, Inc. blending algorithm for trajectory planning

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20120005082A (en) * 2010-07-08 2012-01-16 대우조선해양 주식회사 Continuous motion blending method of robot and robot control system for realizing the method
JP6178791B2 (en) 2011-09-02 2017-08-09 ブルックス オートメーション インコーポレイテッド Time-optimal trajectory of robot transfer device
KR101795429B1 (en) * 2015-12-29 2017-11-09 동아대학교 산학협력단 Humanoid robot, method for controlling motion of humanoid robot, and apparatus for executing the method

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050067995A1 (en) * 2003-09-30 2005-03-31 Rockwell Automation Technologies, Inc. Method and system for generating multi-dimensional motion profiles
US20110307096A1 (en) 2007-07-31 2011-12-15 Rockwell Automation Technologies, Inc. blending algorithm for trajectory planning

Also Published As

Publication number Publication date
KR20230024002A (en) 2023-02-20

Similar Documents

Publication Publication Date Title
JP6766186B2 (en) How to plan the trajectory of point-to-point movement in robot joint space
EP2835228B1 (en) Robot apparatus and robot controlling method
US8560122B2 (en) Teaching and playback method based on control of redundancy resolution for robot and computer-readable medium controlling the same
US20140031982A1 (en) Robotic system and robot control device
US9827675B2 (en) Collision avoidance method, control device, and program
US8290620B2 (en) Route creation method and route creation device
KR100262382B1 (en) Method and apparatus for velosity calculation of robot
WO2023024317A1 (en) Robot obstacle avoidance method and apparatus, and robot
WO2023024279A1 (en) Dynamic obstacle avoidance method and apparatus for robot, and robot
JP5458769B2 (en) Robot control device
JP2013132731A (en) Robot control system, robot system and robot control method
CN102785248A (en) Motion control method of decoupling type 6-DOF (six degrees of freedom) industrial robot
EP3511127B1 (en) Controller for robot and inverse transform method for robot
US11433538B2 (en) Trajectory generation system and trajectory generating method
JP2012187697A (en) Robot trajectory planning system and trajectory planning method
JP2016055404A (en) Locus generation method, locus generation device, robot device, program, and recording medium
JP2009134352A (en) Robot motion path creating device, and robot motion path creating method
JP4667764B2 (en) Route setting method
CN113650011B (en) Method and device for planning splicing path of mechanical arm
EP3978203A1 (en) Singularity-free kinematic parameterization of soft robot manipulators
CN112356032B (en) Posture smooth transition method and system
KR102520793B1 (en) Method for blending motion route of robot and apparatus thereof
Ji et al. E-RRT*: Path Planning for Hyper-Redundant Manipulators
US11577391B2 (en) Trajectory generation device, trajectory generation method, and robot system
Zhang et al. Kuka youBot arm shortest path planning based on geodesics

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right