KR20210085946A - Apparatus, method and computer program for controlling robot - Google Patents
Apparatus, method and computer program for controlling robot Download PDFInfo
- Publication number
- KR20210085946A KR20210085946A KR1020190179547A KR20190179547A KR20210085946A KR 20210085946 A KR20210085946 A KR 20210085946A KR 1020190179547 A KR1020190179547 A KR 1020190179547A KR 20190179547 A KR20190179547 A KR 20190179547A KR 20210085946 A KR20210085946 A KR 20210085946A
- Authority
- KR
- South Korea
- Prior art keywords
- motion
- motions
- robot
- continuous
- joint
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 44
- 238000004590 computer program Methods 0.000 title claims description 3
- 230000033001 locomotion Effects 0.000 claims abstract description 491
- 230000008569 process Effects 0.000 description 12
- 238000010586 diagram Methods 0.000 description 11
- 238000012545 processing Methods 0.000 description 9
- 230000006870 function Effects 0.000 description 4
- 238000004891 communication Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000003860 storage Methods 0.000 description 2
- 230000001133 acceleration Effects 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000010422 painting Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 238000000844 transformation Methods 0.000 description 1
- 238000003466 welding Methods 0.000 description 1
Images
Classifications
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/16—Programme controls
- B25J9/1656—Programme controls characterised by programming, planning systems for manipulators
- B25J9/1664—Programme controls characterised by programming, planning systems for manipulators characterised by motion, path, trajectory planning
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J13/00—Controls for manipulators
- B25J13/06—Control stands, e.g. consoles, switchboards
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/02—Programme-controlled manipulators characterised by movement of the arms, e.g. cartesian coordinate type
- B25J9/04—Programme-controlled manipulators characterised by movement of the arms, e.g. cartesian coordinate type by rotating at least one arm, excluding the head movement itself, e.g. cylindrical coordinate type or polar coordinate type
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/02—Programme-controlled manipulators characterised by movement of the arms, e.g. cartesian coordinate type
- B25J9/04—Programme-controlled manipulators characterised by movement of the arms, e.g. cartesian coordinate type by rotating at least one arm, excluding the head movement itself, e.g. cylindrical coordinate type or polar coordinate type
- B25J9/046—Revolute coordinate type
- B25J9/047—Revolute coordinate type the pivoting axis of the first arm being offset to the vertical axis
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/16—Programme controls
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/16—Programme controls
- B25J9/1615—Programme controls characterised by special kind of manipulator, e.g. planar, scara, gantry, cantilever, space, closed chain, passive/active joints and tendon driven manipulators
Landscapes
- Engineering & Computer Science (AREA)
- Robotics (AREA)
- Mechanical Engineering (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Orthopedic Medicine & Surgery (AREA)
- Manipulator (AREA)
Abstract
Description
본 발명의 실시예들은 하나 이상의 모션을 연속하여 수행하도록 로봇을 제어하는 로봇 제어 장치, 방법 및 컴퓨터 프로그램에 관한 것이다.Embodiments of the present invention relate to a robot control apparatus, method, and computer program for controlling a robot to continuously perform one or more motions.
기술의 급격한 발전에 따라 로봇(Robot)은 사람을 대신하여 각종 작업을 수행하는 도구로서 중요한 역할을 수행하고 있다. 로봇은 주로 사람의 팔을 대신하여 제조업 생산 라인에서 물류, 조립, 용접, 페인팅을 비롯한 여러 형태의 작업의 자동화에 사용됨으로써 생산성 향상에 기여한다.With the rapid development of technology, robots are playing an important role as a tool that performs various tasks on behalf of humans. Robots are mainly used to automate various types of tasks, including logistics, assembly, welding, and painting, in manufacturing production lines instead of human arms, contributing to productivity improvement.
이러한 로봇은 연속적인 수 개의 모션을 수행하도록 설계되는 것이 일반적이다. 그러나 로봇에 대해 연속하여 복수개의 모션을 수행하도록 하면 로봇은 개별 모션의 수행 후 정지하였다가 다음 모션을 수행하는 방식으로 동작하여, 부드럽게 연결되는 연속 모션의 수행이 불가능하였고, 이로 인해 공정 시간 단축에 장애가 되는 현상이 발생한다.These robots are typically designed to perform several motions in succession. However, when a plurality of motions are continuously performed on the robot, the robot stops after performing an individual motion and then operates in a manner that performs the next motion, making it impossible to perform a continuous motion that is smoothly connected, thereby reducing the process time. obstacles occur.
본 발명은 전술한 문제점을 해결하기 위한 것으로, 로봇이 복수개의 모션의 수행에 있어서 멈춤 없이 자연스럽게 모션을 수행할 수 있도록 하고자 한다.SUMMARY OF THE INVENTION The present invention is to solve the above-described problems, and it is intended to enable a robot to perform a motion naturally without stopping in performing a plurality of motions.
본 발명의 일 실시예에 따른 하나 이상의 모션을 연속하여 수행하도록 로봇을 제어하는 방법은, 연속하여 수행할 하나 이상의 모션을 입력 받는 단계; 상기 하나 이상의 모션 중 적어도 어느 하나의 모션에 대해서, 상기 어느 하나의 모션의 수행 중 상기 어느 하나의 모션에 연속하여 수행되는 다음 모션을 시작하는 시작점을 입력 받는 단계; 상기 하나 이상의 모션 및 상기 하나 이상의 모션 각각에 대한 시작점을 참조하여, 상기 하나 이상의 모션이 연속하도록 연결된 연속 모션을 생성하는 단계; 및 상기 연속 모션에 따라 상기 로봇을 구동하는 단계;를 포함할 수 있다.A method for controlling a robot to continuously perform one or more motions according to an embodiment of the present invention includes: receiving input of one or more motions to be continuously performed; receiving an input of a starting point for starting a next motion that is continuously performed with respect to at least any one of the one or more motions during the execution of the one or more motions; generating a continuous motion connected such that the one or more motions are continuous by referring to the one or more motions and a starting point for each of the one or more motions; and driving the robot according to the continuous motion.
상기 하나 이상의 모션을 입력 받는 단계는 상기 하나 이상의 모션 각각에 대해서, 모션의 시작 시 상기 로봇의 기준 파트의 3차원 공간상에서의 위치 및 모션 종료 시 상기 기준 파트의 상기 3차원 공간상에서의 위치를 포함하는 모션 정보를 입력 받는 단계;를 포함할 수 있다.The step of receiving the one or more motions includes, for each of the one or more motions, a position in the three-dimensional space of the reference part of the robot at the start of the motion and the position in the three-dimensional space of the reference part at the end of the motion. It may include; receiving the motion information to be input.
상기 하나 이상의 모션을 입력 받는 단계는 상기 하나 이상의 모션 각각에 대해서, 모션의 수행 시 상기 기준 파트가 이동하는 속도를 더 포함하는 상기 모션 정보를 입력 받는 단계;를 포함할 수 있다.The receiving of the one or more motions may include receiving, for each of the one or more motions, the motion information further including a speed at which the reference part moves when the motion is performed.
상기 시작점을 입력 받는 단계는 제1 모션에 따라 상기 로봇의 기준 파트가 3차원 공간상에서 지나가는 복수의 위치 중 어느 하나의 위치를 제2 모션을 시작하는 상기 시작점으로 입력 받는 단계;를 포함할 수 있다. 이때 상기 제1 모션 및 상기 제2 모션은 상기 하나 이상의 모션에 포함되는 모션으로, 상기 제2 모션은 상기 제1 모션에 연속하여 수행되는 다음 모션일 수 있다.The receiving of the starting point may include receiving, as the starting point of starting a second motion, any one position among a plurality of positions at which the reference part of the robot passes in a three-dimensional space according to a first motion. . In this case, the first motion and the second motion may be motions included in the one or more motions, and the second motion may be a next motion continuously performed to the first motion.
상기 복수의 위치 중 어느 하나의 위치를 상기 시작점으로 입력 받는 단계는 상기 복수의 위치를 표시하는 단계; 상기 표시된 복수의 위치 중 어느 하나의 위치에 대한 선택 입력을 획득하는 단계; 및 상기 선택 입력에 대응되는 위치를 상기 시작점으로 결정하는 단계;를 포함할 수 있다.The step of receiving one of the plurality of locations as the starting point may include: displaying the plurality of locations; obtaining a selection input for any one of the displayed plurality of positions; and determining a position corresponding to the selection input as the starting point.
상기 시작점을 입력 받는 단계는 제1 모션의 시작 시점과 제2 모션의 시작 시점간의 시간 간격을 입력 받고, 상기 시간 간격에 기초하여 상기 시작점을 산출하는 단계;를 포함할 수 있다. 이때 상기 제1 모션 및 상기 제2 모션은 상기 하나 이상의 모션에 포함되는 모션으로, 상기 제2 모션은 상기 제1 모션에 연속하여 수행되는 다음 모션일 수 있다.The receiving of the starting point may include receiving a time interval between the start time of the first motion and the starting time of the second motion, and calculating the starting point based on the time interval. In this case, the first motion and the second motion may be motions included in the one or more motions, and the second motion may be a next motion continuously performed to the first motion.
상기 로봇은 상기 모션에 따라 구동되는 제1 관절을 포함하고, 상기 연속 모션을 생성하는 단계는 상기 시작점에 대응되는 시점부터 제1 모션의 종료에 대응되는 시점까지의 상기 제1 관절의 구동 속도가 제1 모션에 따른 상기 제1 관절의 구동 속도와 제2 모션에 따른 상기 제1 관절의 구동 속도의 합에 대응되도록 하는 제2 연속 모션을 생성하는 단계;를 포함할 수 있다. 이때 상기 제1 모션 및 상기 제2 모션은 상기 하나 이상의 모션에 포함되는 모션으로, 상기 제2 모션은 상기 제1 모션에 연속하여 수행되는 다음 모션일 수 있다.The robot includes a first joint driven according to the motion, and the step of generating the continuous motion includes the driving speed of the first joint from a time point corresponding to the starting point to a time point corresponding to the end of the first motion. generating a second continuous motion to correspond to the sum of the driving speed of the first joint according to the first motion and the driving speed of the first joint according to the second motion; may include. In this case, the first motion and the second motion may be motions included in the one or more motions, and the second motion may be a next motion continuously performed to the first motion.
상기 연속 모션을 생성하는 단계는 상기 제1 모션의 시작에 대응되는 시점부터 상기 시작점에 대응되는 시점 까지의 상기 제1 관절의 구동 속도가 상기 제1 모션에 따른 상기 제1 관절의 구동 속도에 대응되도록 하는 제1 연속 모션을 생성하는 단계; 및 상기 제1 모션의 종료에 대응되는 시점부터 상기 제2 모션의 종료에 대응되는 시점 까지의 상기 제1 관절의 구동 속도가 상기 제2 모션에 따른 상기 제1 관절의 구동 속도에 대응되도록 하는 제3 연속 모션을 생성하는 단계;를 포함할 수 있다.In the step of generating the continuous motion, the driving speed of the first joint from a time corresponding to the start of the first motion to a time corresponding to the starting point corresponds to the driving speed of the first joint according to the first motion. generating a first continuous motion to be made; And the first joint driving speed from the time corresponding to the end of the first motion to the time corresponding to the end of the second motion to correspond to the driving speed of the first joint according to the second motion It may include; generating three continuous motions.
상기 연속 모션은 상기 제1 연속 모션, 상기 제2 연속 모션 및 상기 제3 연속 모션이 연결된 모션일 수 있다.The continuous motion may be a motion in which the first continuous motion, the second continuous motion, and the third continuous motion are connected.
본 발명의 일 실시예에 따른 하나 이상의 모션을 연속하여 수행하도록 로봇을 제어하는 로봇 제어 장치는, 연속하여 수행할 하나 이상의 모션을 입력 받고, 상기 하나 이상의 모션 중 적어도 어느 하나의 모션에 대해서, 상기 어느 하나의 모션의 수행 중 상기 어느 하나의 모션에 연속하여 수행되는 다음 모션을 시작하는 시작점을 입력 받고, 상기 하나 이상의 모션 및 상기 하나 이상의 모션 각각에 대한 시작점을 참조하여, 상기 하나 이상의 모션이 연속하도록 연결된 연속 모션을 생성하고, 상기 연속 모션에 따라 상기 로봇을 구동할 수 있다.The robot control apparatus for controlling the robot to continuously perform one or more motions according to an embodiment of the present invention receives one or more motions to be performed continuously, and for at least any one of the one or more motions, the Receives a starting point for starting the next motion that is performed continuously to the one motion during execution of any one motion, and referring to the one or more motions and a starting point for each of the one or more motions, the one or more motions are continuous It is possible to generate a continuous motion connected to do so, and drive the robot according to the continuous motion.
상기 로봇 제어 장치는 상기 하나 이상의 모션 각각에 대해서, 모션의 시작 시 상기 로봇의 기준 파트의 3차원 공간상에서의 위치 및 모션 종료 시 상기 기준 파트의 상기 3차원 공간상에서의 위치를 포함하는 모션 정보를 입력 받을 수 있다.The robot control device receives motion information including, for each of the one or more motions, the position in the three-dimensional space of the reference part of the robot at the start of the motion and the position in the three-dimensional space of the reference part at the end of the motion. can be input.
상기 로봇 제어 장치는 상기 하나 이상의 모션 각각에 대해서, 모션의 수행 시 상기 기준 파트가 이동하는 속도를 더 포함하는 상기 모션 정보를 입력 받을 수 있다.The robot control device may receive, for each of the one or more motions, the motion information further including a speed at which the reference part moves when the motion is performed.
상기 로봇 제어 장치는 제1 모션에 따라 상기 로봇의 기준 파트가 3차원 공간상에서 지나가는 복수의 위치 중 어느 하나의 위치를 제2 모션을 시작하는 상기 시작점으로 입력 받을 수 있다. 이때 상기 제1 모션 및 상기 제2 모션은 상기 하나 이상의 모션에 포함되는 모션으로, 상기 제2 모션은 상기 제1 모션에 연속하여 수행되는 다음 모션일 수 있다.The robot control device may receive any one position among a plurality of positions at which the reference part of the robot passes in a three-dimensional space according to the first motion as the starting point for starting the second motion. In this case, the first motion and the second motion may be motions included in the one or more motions, and the second motion may be a next motion continuously performed to the first motion.
상기 로봇 제어 장치는 상기 복수의 위치를 표시하고, 상기 표시된 복수의 위치 중 어느 하나의 위치에 대한 선택 입력을 획득하고, 상기 선택 입력에 대응되는 위치를 상기 시작점으로 결정할 수 있다.The robot control apparatus may display the plurality of positions, obtain a selection input for any one position among the displayed plurality of positions, and determine a position corresponding to the selection input as the starting point.
상기 로봇 제어 장치는 제1 모션의 시작 시점과 제2 모션의 시작 시점간의 시간 간격을 입력 받고, 상기 시간 간격에 기초하여 상기 시작점을 산출할 수 있다. 이때 상기 제1 모션 및 상기 제2 모션은 상기 하나 이상의 모션에 포함되는 모션으로, 상기 제2 모션은 상기 제1 모션에 연속하여 수행되는 다음 모션일 수 있다.The robot control apparatus may receive a time interval between the start time of the first motion and the start time of the second motion, and calculate the start point based on the time interval. In this case, the first motion and the second motion may be motions included in the one or more motions, and the second motion may be a next motion continuously performed to the first motion.
상기 로봇은 상기 모션에 따라 구동되는 제1 관절을 포함하고, 상기 로봇 제어 장치는 상기 시작점에 대응되는 시점부터 제1 모션의 종료에 대응되는 시점까지의 상기 제1 관절의 구동 속도가 제1 모션에 따른 상기 제1 관절의 구동 속도와 제2 모션에 따른 상기 제1 관절의 구동 속도의 합에 대응되도록 하는 제2 연속 모션을 생성할 수 있다. 이때 상기 제1 모션 및 상기 제2 모션은 상기 하나 이상의 모션에 포함되는 모션으로, 상기 제2 모션은 상기 제1 모션에 연속하여 수행되는 다음 모션일 수 있다.The robot includes a first joint driven according to the motion, and the robot control device determines that the driving speed of the first joint from a time point corresponding to the start point to a time point corresponding to the end of the first motion is the first motion. It is possible to generate a second continuous motion corresponding to the sum of the driving speed of the first joint according to and the driving speed of the first joint according to the second motion. In this case, the first motion and the second motion may be motions included in the one or more motions, and the second motion may be a next motion continuously performed to the first motion.
상기 로봇 제어 장치는 상기 제1 모션의 시작에 대응되는 시점부터 상기 시작점에 대응되는 시점 까지의 상기 제1 관절의 구동 속도가 상기 제1 모션에 따른 상기 제1 관절의 구동 속도에 대응되도록 하는 제1 연속 모션을 생성하고, 상기 제1 모션의 종료에 대응되는 시점부터 상기 제2 모션의 종료에 대응되는 시점 까지의 상기 제1 관절의 구동 속도가 상기 제2 모션에 따른 상기 제1 관절의 구동 속도에 대응되도록 하는 제3 연속 모션을 생성할 수 있다. The robot control device is a second so that the driving speed of the first joint from the time corresponding to the start of the first motion to the time corresponding to the starting point corresponds to the driving speed of the first joint according to the first motion One continuous motion is generated, and the driving speed of the first joint from a time point corresponding to the end of the first motion to a time point corresponding to the end of the second motion is the driving speed of the first joint according to the second motion. A third continuous motion can be created to correspond to the speed.
상기 연속 모션은 상기 제1 연속 모션, 상기 제2 연속 모션 및 상기 제3 연속 모션이 연결된 모션일 수 있다.The continuous motion may be a motion in which the first continuous motion, the second continuous motion, and the third continuous motion are connected.
전술한 것 외의 다른 측면, 특징, 이점이 이하의 도면, 특허청구범위 및 발명의 상세한 설명으로부터 명확해질 것이다.Other aspects, features and advantages other than those described above will become apparent from the following drawings, claims, and detailed description of the invention.
본 발명에 따르면 로봇이 복수개의 모션의 수행에 있어서, 멈춤 없이 자연스럽고 부드럽게 모션을 수행할 수 있다.According to the present invention, when the robot performs a plurality of motions, it is possible to perform the motions naturally and smoothly without stopping.
또한 본 발명에 따르면, 모션 전환시에 로봇이 정지할 것을 요하지 않으므로, 전체적인 작업 수행 시간을 감소시킬 수 있다.In addition, according to the present invention, since the robot does not need to stop when the motion is switched, the overall work execution time can be reduced.
또한 본 발명에 따르면 로봇에 의한 복수개의 모션의 동시 수행이 가능하다.In addition, according to the present invention, it is possible to simultaneously perform a plurality of motions by the robot.
도 1은 본 발명의 일 실시예에 따른 로봇 시스템을 개략적으로 도시한 도면이다.
도 2는 본 발명의 일 실시예에 따른 로봇(200)에 의해 수행되는 복수의 모션의 예시를 도시한 도면이다.
도 3은 본 발명의 일 실시예에 따른 제어부(110)가 모션을 입력 받는 화면(310)을 도시한 도면이다.
도 4는 본 발명의 일 실시예에 따른 제어부(110)가 시작점을 입력 받는 화면(320)을 도시한 도면이다.
도 5a, 도 5b 및 도 5c는 본 발명의 일 실시예에 따른 제어부(110)가 연속 모션을 생성하는 방법을 설명하기 위한 도면이다.
도 6은 본 발명의 일 실시예에 따른 로봇 제어 장치(100)에 의해 수행되는 로봇 제어 방법을 설명하기 위한 흐름도이다.1 is a diagram schematically illustrating a robot system according to an embodiment of the present invention.
2 is a diagram illustrating an example of a plurality of motions performed by the
3 is a diagram illustrating a
4 is a diagram illustrating a
5A, 5B, and 5C are diagrams for explaining a method for the
6 is a flowchart illustrating a robot control method performed by the
본 발명은 다양한 변환을 가할 수 있고 여러 가지 실시 예를 가질 수 있는 바, 특정 실시 예들을 도면에 예시하고 상세한 설명에 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변환, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 본 발명을 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 본 발명의 요지를 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다. Since the present invention can apply various transformations and can have various embodiments, specific embodiments are illustrated in the drawings and described in detail in the detailed description. However, this is not intended to limit the present invention to specific embodiments, and it should be understood to include all modifications, equivalents, and substitutes included in the spirit and scope of the present invention. In describing the present invention, if it is determined that a detailed description of a related known technology may obscure the gist of the present invention, the detailed description thereof will be omitted.
이하의 실시예에서, 제1, 제2 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 구성요소들은 용어들에 의해 한정되어서는 안 된다. 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. In the following embodiments, terms such as first, second, etc. may be used to describe various components, but the components should not be limited by the terms. The terms are used only for the purpose of distinguishing one component from another.
이하의 실시예에서 사용한 용어는 단지 특정한 실시 예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 이하의 실시예에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.Terms used in the following examples are only used to describe specific examples, and are not intended to limit the present invention. The singular expression includes the plural expression unless the context clearly dictates otherwise. In the following examples, terms such as “comprise” or “have” are intended to designate that a feature, number, step, operation, component, part, or combination thereof described in the specification is present, but one or more It should be understood that this does not preclude the possibility of addition or presence of other features or numbers, steps, operations, components, parts, or combinations thereof.
본 발명의 실시예들은 기능적인 블록 구성들 및 다양한 처리 단계들로 나타내어질 수 있다. 이러한 기능 블록들은 특정 기능들을 실행하는 다양한 개수의 하드웨어 또는/및 소프트웨어 구성들로 구현될 수 있다. 예를 들어, 본 발명의 실시예들은 하나 이상의 마이크로프로세서들의 제어 또는 다른 제어 장치들에 의해서 다양한 기능들을 실행할 수 있는, 메모리, 프로세싱, 로직(logic), 룩업 테이블(look-up table) 등과 같은 직접 회로 구성들을 채용할 수 있다. 본 발명의 실시예의 구성 요소들이 소프트웨어 프로그래밍 또는 소프트웨어 요소들로 실행될 수 잇는 것과 유사하게, 본 발명의 실시예는 데이터 구조, 프로세스들, 루틴들 또는 다른 프로그래밍 구성들의 조합으로 구현되는 다양한 알고리즘을 포함하여, C, C++, 자바(Java), 어셈블러(assembler), 파이썬(python) 등과 같은 프로그래밍 또는 스크립팅 언어로 구현될 수 있다. 기능적인 측면들은 하나 이상의 프로세서들에서 실행되는 알고리즘으로 구현될 수 있다. 또한, 본 발명의 실시예들은 전자적인 환경 설정, 신호 처리, 및/또는 데이터 처리 등을 위하여 종래 기술을 채용할 수 있다. 매커니즘, 요소, 수단, 구성과 같은 용어는 넓게 사용될 수 있으며, 기계적이고 물리적인 구성들로서 한정되는 것은 아니다. 상기 용어는 프로세서 등과 연계하여 소프트웨어의 일련의 처리들(routines)의 의미를 포함할 수 있다.Embodiments of the present invention may be represented by functional block configurations and various processing steps. These functional blocks may be implemented in any number of hardware and/or software configurations that perform specific functions. For example, embodiments of the present invention may be implemented directly, such as memory, processing, logic, look-up table, etc., capable of executing various functions by control of one or more microprocessors or other control devices. Circuit configurations may be employed. Similar to how components of an embodiment of the invention may be implemented as software programming or software elements, embodiments of the invention may include various algorithms implemented as data structures, processes, routines, or combinations of other programming constructs. , C, C++, Java, assembler, Python, etc. may be implemented in a programming or scripting language. Functional aspects may be implemented in an algorithm running on one or more processors. Also, embodiments of the present invention may employ conventional techniques for electronic configuration, signal processing, and/or data processing, and the like. Terms such as mechanism, element, means, and configuration may be used broadly and are not limited to mechanical and physical configurations. The term may include the meaning of a series of routines of software in association with a processor or the like.
도 1은 본 발명의 일 실시예에 따른 로봇 시스템을 개략적으로 도시한 도면이다.1 is a diagram schematically illustrating a robot system according to an embodiment of the present invention.
본 발명의 일 실시예에 따른 로봇 시스템은 로봇(200)이 하나 이상의 모션을 연속하여 수행하도록 로봇(200)을 제어할 수 있다. 이를 위해 본 발명의 일 실시예에 따른 로봇 시스템은 도 1에 도시된 바와 같이 로봇 제어 장치(100) 및 로봇(200)을 포함할 수 있다.The robot system according to an embodiment of the present invention may control the
본 발명에서 로봇(200)은 하나 이상의 엑츄에이터 및 하나 이상의 파트를 포함하는 기계 장치일 수 있다. In the present invention, the
본 발명에서 로봇(200)의 엑츄에이터(Actuator)는 제어신호에 기초하여 전기에너지를 운동에너지로 변환하는 다양한 장치를 의미할 수 있다. 가령 엑츄에이터는 직류(DC) 서보 모터, 교류(AC) 서보 모터, 스테핑 모터, 리니어 모터, 유압 실린더, 유압 모터, 공기압 실린더 및 공기압 모터 중 어느 하나 일 수 있다. 다만 이는 예시적인 것으로 본 발명의 사상이 이에 제한되는 것은 아니다. 이와 같은 엑츄에이터는 로봇(200)의 관절을 구동하는데 사용될 수 있다.In the present invention, the actuator of the
본 발명에서 로봇(200)의 파트(Part)는 전술한 엑츄에이터를 특정 위치에 고정시키는 구조물 또는 엑츄에이터에 고정되어 운동하는 구조물을 의미할 수 있다.In the present invention, a part of the
본 발명에서 로봇(200)은 다양한 형태의 로봇을 포함하는 개념일 수 있다. 가령 로봇(200)은 다관절 로봇, 스카라 로봇 및 원통 좌표 로봇 중 어느 하나일 수 있다. 이때 다관절 로봇(Articulated Robot)은 하나 이상의 관절 및 관절과 다른 관절을 연결하는 파트(또는 바디)를 포함하는 로봇일 수 있다. 스카라 로봇(Scara Robot)은 로봇의 암(Arm)이 특정 평면 내에서 동작하는 로봇일 수 있다. 원동 좌표 로봇(Cylindrical Robot)은 로봇의 암(Arm)이 적어도 1개의 회전 관절과 적어도 1개의 직진 관절을 갖는 로봇을 의미할 수 있다. In the present invention, the
다만 상술한 로봇의 형태는 예시적인 것이며, 본 발명의 사상이 이에 제한되는 것은 아니다. 따라서 전술한 바와 같이 하나 이상의 엑츄에이터 및 하나 이상의 파트를 포함하고 제어신호에 따라 동작하는 기계 장치는 본 발명의 로봇에 해당할 수 있다.However, the above-described form of the robot is exemplary, and the spirit of the present invention is not limited thereto. Therefore, as described above, a mechanical device including one or more actuators and one or more parts and operating according to a control signal may correspond to the robot of the present invention.
이하에서는 설명의 편의를 위하여 로봇(200)이 도 1에 도시된 바와 같은 다관절 로봇으로, 복수의 관절과 각 관절을 연결하는 파트를 포함하는 것을 전제로 설명한다. 바꾸어 말하면, 로봇(200)이 여섯 개의 관절(211, 212, 213, 214, 215, 216) 및 여섯 개의 파트(221, 222, 223, 224, 225, 226)를 포함하는 것을 전제로 설명한다. 또한 로봇(200)의 여섯 개의 파트 중 어느 하나의 파트(221)가 지면에 고정되어 있으며, 가장 말단 파트가 기준 파트(226)인 것을 전제로 설명한다.Hereinafter, for convenience of explanation, it is assumed that the
본 발명에서 로봇(200)의 '모션'은 로봇(200)의 3차원 공간상에서의 이동 및/또는 움직임을 의미할 수 있다. 이와 같은 로봇(200)의 모션은 가령 모션의 시작 시 로봇(200)의 기준 파트(226)의 3차원 공간상에서의 위치 및 모션 종료 시 기준 파트(226)의 3차원 공간상에서의 위치의 형태로 입력될 수 있다. 이러한 경우 모션은 기준 파트(226)가 시작 위치에서 종료 위치로 이동하는 일련의 과정에서의 각 관절의 회전 각도, 회전 속도 및 회전 시점 등으로 정의될 수 있다. 또한 해당 위치들은 작업자에 의한 직접교시와 작업자의 수치 입력 등, 어느 하나 또는 조합에 의하여 해당 값들이 로봇(200)에 입력이 될 수 있다.In the present invention, 'motion' of the
본 발명에서 로봇(200)이 모션을 '연속하여 수행'하는 것은 로봇(200)이 두 개 이상의 모션을 멈춤 없이 수행하거나, 로봇(200)이 적어도 일부 시구간에서 두 개 이상의 모션을 중첩하여 수행하는 것을 의미할 수 있다. 이에 대한 상세한 설명은 후술한다.In the present invention, in the present invention, the
본 발명의 일 실시예에 따른 로봇 제어 장치(100)는 로봇의 제어 및/또는 조작을 위한 장치로, 제어부(110), 디스플레이부(120) 및 입력부(130)를 포함할 수 있다.The
본 발명의 일 실시예에 따른 제어부(110)는 로봇(200)이 하나 이상의 모션을 연속하여 수행하도록 하는 연속 모션을 생성하고, 생성된 연속 모션에 따라 로봇(200)을 제어할 수 있다. 이때 제어부(110)는 프로세서(processor)와 같이 데이터를 처리할 수 있는 모든 종류의 장치를 포함할 수 있다. 여기서, '프로세서(processor)'는, 예를 들어 프로그램 내에 포함된 코드 또는 명령으로 표현된 기능을 수행하기 위해 물리적으로 구조화된 회로를 갖는, 하드웨어에 내장된 데이터 처리 장치를 의미할 수 있다. 이와 같이 하드웨어에 내장된 데이터 처리 장치의 일 예로써, 마이크로프로세서(microprocessor), 중앙처리장치(central processing unit: CPU), 프로세서 코어(processor core), 멀티프로세서(multiprocessor), ASIC(application-specific integrated circuit), FPGA(field programmable gate array) 등의 처리 장치를 망라할 수 있으나, 본 발명의 범위가 이에 한정되는 것은 아니다.The
본 발명의 일 실시예에 따른 디스플레이부(120)는 사용자가 로봇(200)의 모션을 입력하기 위한 화면을 표시할 수 있다. 이와 같은 디스플레이부(120)는 도형, 문자 또는 영상을 표시하는 표시장치를 의미할 수 있다. 예컨대, 디스플레이부(120)는 CRT(Cathode Ray Tube), LCD(Liquid Crystal Display), PDP (Plasma Display Panel), LED(Light-Emitting Diode) 및 OLED(Organic Light Emitting Diode) 중 어느 하나로 구성될 수 있으나, 본 발명의 사상은 이에 제한되지 않는다.The
본 발명의 일 실시예에 따른 입력부(130)는 사용자의 입력을 획득하는 다양한 수단을 의미할 수 있다. 예컨대, 입력부(130)는 키보드, 마우스, 트랙볼, 마이크 및 버튼 중 어느 하나이거나 하나 이상의 조합일 수 있다. 또한 입력부(130)는 전술한 디스플레이부(120)상에 입력을 수행하는 터치 감지 수단을 의미할 수도 있다. 또한 사용자에 의한 직접교시에 의하여 로봇의 각 위치나 각도 및 움직임들이 입력이 될 수 있다. 다만 이는 예시적인 것으로 본 발명의 사상이 이에 제한되는 것은 아니다. The
도면에는 도시되지 않았지만, 본 발명의 일 실시예에 따른 로봇 제어 장치(100)는 통신부(미도시) 및 메모리(미도시)를 더 포함할 수 있다.Although not shown in the drawings, the
이때 통신부(미도시)는 로봇 제어 장치(100)가 로봇(200)과 같은 외부장치와 유무선 연결을 통해 제어 신호를 송수신하기 위해 필요한 하드웨어 및 소프트웨어를 포함하는 장치일 수 있다. In this case, the communication unit (not shown) may be a device including hardware and software necessary for the
메모리(미도시)는 로봇 제어 장치(100)가 처리하는 데이터를 일시적 또는 영구적으로 저장하는 기능을 수행한다. 가령 메모리(미도시)는 사용자가 입력한 로봇(200)의 모션을 저장할 수 있다. 메모리(미도시)에 저장된 모션은 제어부(110)가 로봇(200)의 모션을 제어하는데 사용될 수 있다. 이때 메모리는 자기 저장 매체(magnetic storage media) 또는 플래시 저장 매체(flash storage media)를 포함할 수 있으나, 본 발명의 범위가 이에 한정되는 것은 아니다.A memory (not shown) performs a function of temporarily or permanently storing data processed by the
본 발명의 일 실시예에 따른 로봇 제어 장치(100)는 도 1에 도시된 바와 같이 로봇(200) 및/또는 로봇(200)의 구동을 위한 장치(미도시, 예를 들어 엑추에이터의 구동 드라이버 등)와 별도로 구비되는 장치일 수 있다. 또한 도시된 바와 달리, 로봇 제어 장치(100)는 로봇(200) 및/또는 로봇(200)의 구동을 위한 장치(미도시)에 포함된 장치일 수 있다. The
바꾸어 말하면, 로봇(200) 또는 로봇(200)의 구동을 위한 장치(미도시)는 본 발명의 일 실시예에 따른 로봇의 제어 방법을 수행할 수 있다. 다만 이하에서는 설명의 편의를 위하여 도 1에 도시된 바와 같이 로봇 제어 장치(100)가 나머지 구성요소와 별도로 구비됨을 전제로 설명한다.In other words, the
도 2는 본 발명의 일 실시예에 따른 로봇(200)에 의해 수행되는 복수의 모션의 예시를 도시한 도면이다.2 is a diagram illustrating an example of a plurality of motions performed by the
도 2를 참조하여, 로봇(200)이 제1 위치(410)에서 제2 위치(420)로 이동하는 제1 모션(M1) 및 제2 위치(420)에서 제3 위치(430)로 이동하는 제2 모션(M2)을 연속하여 수행하는 경우를 가정하여 설명한다. 이때 각 위치(410, 420, 430)는 로봇의 기준 파트(도 1의 226)가 위치하는 지점을 의미할 수 있다.Referring to FIG. 2 , the
종래기술에 따르면, 로봇(200)이 상술한 바와 같이 두 개의 모션(M1, M2)을 연속하여 수행하는 경우, 로봇(200)은 제1 모션(M1)의 수행 후 제2 위치(420)에서 정지하고 다시 제2 모션(M2)을 수행하기에, 연속하는(즉 멈춤이 없는) 모션의 수행이 용이하지 않았다.According to the prior art, when the
본 발명은 로봇(200)에 의해 가령 모션(MC)과 같이 두 개 이상의 모션(M1, M2)이 멈춤 없이 수행될 수 있도록 하여, 보다 자연스럽고 부드러운 로봇(200)의 모션 구현이 가능하도록 한다.The present invention enables two or more motions M1 and M2 to be performed by the
이하에서는 설명의 편의를 위하여, 도 2에 도시된 바와 같이 로봇(200)이 두 개의 모션(M1, M2)을 연속하여 수행하는 경우를 가정하여 설명한다. Hereinafter, for convenience of description, it is assumed that the
본 발명의 일 실시예에 따른 로봇 제어 장치(100)의 제어부(110)는 로봇(200)이 연속하여 수행할 하나 이상의 모션을 입력 받을 수 있다.The
가령 제어부(110)는 모션에 대한 3차원 공간상의 위치를 입력 받는 방식으로 모션을 입력 받을 수 있다. 보다 구체적으로, 제어부(110)는 개별 모션에 대해서 모션의 시작 시 로봇(200)의 기준 파트(226)의 3차원 공간상에서의 위치 및 모션 종료 시 기준 파트(220)의 3차원 공간상에서의 위치를 포함하는 모션 정보를 입력 받을 수 있다.For example, the
도 3은 본 발명의 일 실시예에 따른 제어부(110)가 모션을 입력 받는 화면(310)을 도시한 도면이다. 이와 같은 화면(310)은 디스플레이부(120)에 표시되어 사용자에게 제공될 수 있다.3 is a diagram illustrating a
도 3을 참조하면, 화면(310)은 사용자가 입력한 모션과 관련된 위치들을 가상의 3차원 공간상에 표시해주는 영역(311), 사용자가 입력한 모션과 관련된 정보들을 표시해 주는 영역(312, 313) 및 모션을 추가하기 위한 버튼(314)을 포함할 수 있다.Referring to FIG. 3 , the
사용자는 버튼(314)에 대한 입력을 수행하여, 모션과 관련된 3차원 공간상에서의 위치를 입력하는 방식으로 연속하여 수행하고자 하는 하나 이상의 모션을 입력할 수 있다. 가령 사용자는 모션 2의 입력에 있어서, 모션 2의 시작 시 로봇(200)의 기준 파트(226)의 3차원 공간상에서의 위치(P2) 및 모션 종료 시 기준 파트(220)의 3차원 공간상에서의 위치(P3)를 좌표값의 형태로 입력할 수 있다.The user may input one or more motions to be continuously performed by performing an input to the
선택적 실시예에서, 사용자는 화면상에 표시되는 가상의 3차원 공간상의 점들(미도시)중 어느 하나를 선택하는 방식으로 모션과 관련된 위치를 입력할 수도 있다.In an optional embodiment, the user may input a motion-related position by selecting any one of points (not shown) in a virtual three-dimensional space displayed on the screen.
제어부(110)는 상술한 바와 같은 사용자의 좌표값 입력 또는 위치 선택 입력에 따라 모션 정보를 입력 받을 수 있다.The
선택적 실시예에서, 제어부(110)는 개별 모션에 대해서 모션과 관련된 두 개의 위치 외에, 모션의 수행 시 기준 파트(226)가 이동하는 속도를 포함하는 모션 정보를 입력 받을 수도 있다. 가령 제어부(110)는 기준 파트(226)가 제1 구간에서는 가속하여 이동하도록 하고, 제2 구간에서는 등속으로 이동하도록 하고, 제3 구간에서는 감속하여 이동하도록 하는 이동 속도를 포함하는 모션 정보를 입력 받을 수 있다. 사용자는 모션과 관련된 정보들을 표시해 주는 영역(312, 313)에 표시되는 속도 편집 인터페이스(312-1, 313-1)에 대한 입력을 수행하여 기준 파트(226)가 이동하는 속도를 입력 및/또는 편집할 수 있다.In an optional embodiment, the
본 발명의 일 실시예에 따른 제어부(110)는 상술한 과정에 따라 입력 받은 모션 중 적어도 어느 하나의 모션에 대해서, 해당 모션의 수행 중 다음 모션을 시작하는 시작점을 입력 받을 수 있다. The
본 발명에서 다음 모션을 시작하는 '시작점'은 다음 모션을 시작하기 위한 기준 파트(226)의 3차원 공간상에서의 위치를 의미할 수도 있고, 다음 모션을 시작하는 시점(시간)을 의미할 수도 있다.In the present invention, the 'start point' at which the next motion starts may mean the position in the three-dimensional space of the
본 발명의 일 실시예에 따른 제어부(110)는 다양한 방식으로 이와 같은 시작점을 입력 받을 수 있다.The
가령 본 발명의 일 실시예에 따른 제어부(110)는 도 4에 도시된 화면(320)과 같이, 로봇(200)의 기준 파트(226)가 선택된 제1 모션(모션 1)에 따라 3차원 공간상에서 지나가는 복수의 위치를 표시하고, 표시된 위치 중 어느 하나의 위치에 대한 사용자의 입력을 획득하는 방식으로 다음 모션인 제2 모션(모션 2)을 시작하는 시작점(Pm1)을 입력 받을 수 있다. 이러한 경우 제어부(110)는 도 4에 도시된 화면(320)과 같이 시작점 설정을 위한 소정의 인터페이스(321)를 제공하여 사용자로부터 시작점 입력을 획득할 수 있다. For example, the
다만 도 4에 도시된 인터페이스는 예시적인 것으로, 사용자가 선택 가능한 복수의 지점을 제공하고 그에 대한 사용자의 입력을 획득하는 인터페이스는 본 발명의 시작점을 입력 받는 인터페이스로 사용될 수 있다.However, the interface shown in FIG. 4 is exemplary, and an interface for providing a plurality of points selectable by a user and obtaining a user's input therefor may be used as an interface for receiving the starting point of the present invention.
본 발명의 다른 실시예에서, 제어부(110)는 제1 모션의 시작 시점과 제2 모션의 시작 시점간의 시간 간격을 입력 받고, 입력된 시간 간격에 기초하여 제2 모션의 시작점을 산출할 수도 있다. 가령 제어부(110)는 시간 간격을 '3초'와 같이 시간의 형태로 입력 받고, 제1 모션의 시작 시점으로부터 3초가 경과한 시점에서의 기준 파트(226)의 위치를 산출하여 시작점을 결정(또는 산출)할 수 있다.In another embodiment of the present invention, the
본 발명의 또 다른 실시예에서, 제어부(110)는 제1 모션의 진행 정도를 입력 받고, 이에 기초하여 제2 모션의 시작점을 산출할 수도 있다. 가령 제어부(110)는 제1 모션의 진행 정도로 70%를 입력 받고, 제1 모션이 70% 진행되었을 때의 기준 파트(226)의 위치 및/또는 시점(시간)을 산출하여 시작점을 결정(또는 산출)할 수도 있다.In another embodiment of the present invention, the
본 발명의 일 실시예에 따른 제어부(110)는 상술한 과정에 따라 입력된 모션 정보 및 시작점을 관절 제어 정보로 변환할 수 있다. 전술한 과정에서는 모션의 시작 시 기준 파트(226)의 3차원 공간상에서의 위치, 모션의 종료 시 기준 파트(226)의 3차원 공간상에서의 위치 및 모션의 수행 시 기준 파트(226)의 이동 속도의 형태로, 즉 기준 파트(226)를 기준으로 모션에 관한 정보를 입력 받았다. 따라서 제어부(110)는 이와 같은 모션에 관한 정보에 기초하여 로봇(200)의 제어하기 위해, 모션에 관한 정보에 기초하여 관절 제어 정보를 생성할 수 있다. 가령 제어부(110)는 도 2에 도시된 두 개의 모션(M1, M2)에 따른 로봇(200)의 각 관절(211, 212, 213, 214, 215, 216)의 구동 시점, 구동 속도 및 구동 지속 시간 등을 포함하는 관절 제어 정보를 생성할 수 있다.The
본 발명의 일 실시예에 따른 제어부(110)는 하나 이상의 모션 및 하나 이상의 모션 각각에 대한 시작점을 참조하여, 하나 이상의 모션이 연속하도록 연결된 연속 모션을 생성할 수 있다. 가령 제어부(110)는 전술한 과정에 따라 생성된 관절 제어 정보를 참조하여, 연속 모션을 생성할 수 있다.The
도 5a, 도 5b 및 도 5c는 본 발명의 일 실시예에 따른 제어부(110)가 연속 모션을 생성하는 방법을 설명하기 위한 도면이다. 이하에서는 설명의 편의를 위하여 관절(211)에 대해서만 살펴보며, 제1 모션에 따른 관절(211)의 회전 속도는 도 5a에 도시된 바와 같으며, 제2 모션에 따른 관절(211)의 회전 속도는 도 5b에 도시된 바와 같음을 가정하여 설명한다.5A, 5B, and 5C are diagrams for explaining a method for the
본 발명의 일 실시예에 따른 제어부(110)는 하나 이상의 모션에 따른 각 관절의 구동 속도에 기초하여 연속 모션을 생성할 수 있다. 보다 구체적으로, 본 발명의 일 실시예에 따른 제어부(110)는 시작점에 대응되는 시점(T1M)부터 제1 모션의 종료에 대응되는 시점(T1E)까지의 관절(211)의 구동 속도가 제1 모션(M1)에 따른 관절(211)의 구동 속도(W1)와 제2 모션(M2)에 제1 관절(211)의 구동 속도(W3)의 합(W1+W3)에 대응되도록 하는 제2 연속 모션을 생성할 수 있다. The
따라서 시점(T1M)과 시점(T1E)으로 정의되는 구간(S2)에서의 연속 모션인 제2 연속 모션에 따르면, 관절(211)은 제1 모션(M1)에 따른 관절(211)의 구동 속도(W1)와 제2 모션(M2)에 제1 관절(211)의 구동 속도(W3)의 합(W1+W3)에 대응되는 속도로 구동될 수 있다.Therefore, according to the second continuous motion, which is a continuous motion in the section S2 defined by the time point T1M and the time point T1E, the joint 211 is the driving speed of the joint 211 according to the first motion M1 ( W1) and the second motion M2 may be driven at a speed corresponding to the sum (W1+W3) of the driving speed W3 of the first joint 211 .
또한 본 발명의 일 실시예에 따른 제어부(110)는 제1 모션(M1)의 시작에 대응되는 시점(T1S)부터 시작점에 대응되는 시점(T1M) 까지의 관절(211)의 구동 속도가 제1 모션(M1)에 따른 관절(211)의 구동 속도(W1)에 대응되도록 하는 제1 연속 모션을 생성할 수 있다.In addition, the
따라서 시점(T1S)과 시점(T1M)으로 정의되는 구간(S1)에서의 연속 모션인 제1 연속 모션에 따르면, 관절(211)은 제1 모션(M1)에 따른 관절(211)의 구동 속도(W1)에 대응되는 속도로 구동될 수 있다.Therefore, according to the first continuous motion, which is a continuous motion in the section S1 defined by the time point T1S and the time point T1M, the joint 211 is the driving speed of the joint 211 according to the first motion M1 ( It can be driven at a speed corresponding to W1).
또한 본 발명의 일 실시예에 따른 제어부(110)는 제1 모션(M1)의 종료에 대응되는 시점(T1E) 제2 모션(M2)의 종료에 대응되는 시점(TAE) 까지의 관절(211)의 구동 속도가 제2 모션(M2)에 따른 관절(211)의 구동 속도(W3)에 대응되도록 하는 제3 연속 모션을 생성할 수 있다.In addition, the
따라서 시점(T1E)과 시점(TAE)으로 정의되는 구간(S3)에서의 연속 모션인 제3 연속 모션에 따르면, 관절(211)은 제2 모션(M2)에 따른 관절(211)의 구동 속도(W3)에 대응되는 속도로 구동될 수 있다.Therefore, according to the third continuous motion, which is a continuous motion in the section S3 defined by the time point T1E and the time point TAE, the joint 211 is the driving speed of the joint 211 according to the second motion M2 ( It can be driven at a speed corresponding to W3).
본 발명의 일 실시예에 따른 제어부(110)는 상술한 과정에 따라 생성된 제1 연속 모션, 제2 연속 모션 및 제3 연속 모션이 연결된 연속 모션을 생성할 수 있다. 또한 본 발명의 일 실시예에 따른 제어부(110)는 로봇(200)의 나머지 관절(212, 213, 214, 215, 216) 각각에 대해서 관절(211)과 마찬가지 방법으로 연속 모션을 생성할 수 있다.The
본 발명의 일 실시예에 따른 제어부(110)는 생성된 연속 모션에 따라 로봇(200)을 제어할 수 있다.The
이로써 본 발명은 로봇(200)에 의해 두 개 이상의 모션이 멈춤 없이 수행될 수 있도록 하며, 보다 자연스럽고 부드러운 로봇(200)의 모션 구현이 가능하도록 한다.Accordingly, the present invention enables two or more motions to be performed by the
한편 도 2 내지 도 5c에서는 두 개의 모션이 연속하여 수행되는 예시를 중심으로 설명하였지만, 본 발명의 사상이 이에 한정되는 것은 아니며 두 개 이상의 모션(예를 들어 5개의 모션)이 연속하여 수행되는 경우에도 제어부(110)는 상술한 방법에 따라 모션을 수행할 수 있다. Meanwhile, in FIGS. 2 to 5C , the description has been focused on an example in which two motions are continuously performed, but the spirit of the present invention is not limited thereto. When two or more motions (for example, five motions) are continuously performed However, the
본 발명의 일 실시예에 따른 제어부(110)는 곡선을 근사(近似)하는 미소한 직선들 각각에 대응되는 모션들이 연속하여 수행함으로써, 전체적으로 곡선에 해당하는 연속 모션을 생성하고 로봇이 생성된 연속 모션을 수행하도록 할 수 있다. 이와 같이 본 발명은 곡선인 모션을 보다 손쉽게 생성하도록 할 수 있다.The
도 6은 본 발명의 일 실시예에 따른 로봇 제어 장치(100)에 의해 수행되는 로봇 제어 방법을 설명하기 위한 흐름도이다. 이하에서는 도 1 내지 도 5c를 함께 참조하여 설명하되, 도 1 내지 도 5c와 중복되는 내용의 설명은 생략한다.6 is a flowchart illustrating a robot control method performed by the
본 발명의 일 실시예에 따른 로봇 제어 장치(100)는 로봇(200)이 연속하여 수행할 하나 이상의 모션을 입력 받을 수 있다.(S610) 가령 로봇 제어 장치(100)는 모션에 대한 3차원 공간상의 위치를 입력 받는 방식으로 모션을 입력 받을 수 있다. 보다 구체적으로, 로봇 제어 장치(100)는 개별 모션에 대해서 모션의 시작 시 로봇(200)의 기준 파트(226)의 3차원 공간상에서의 위치 및 모션 종료 시 기준 파트(220)의 3차원 공간상에서의 위치를 포함하는 모션 정보를 입력 받을 수 있다.The
도 3은 본 발명의 일 실시예에 따른 로봇 제어 장치(100)가 모션을 입력 받는 화면(310)을 도시한 도면이다. 이와 같은 화면(310)은 디스플레이부(120)에 표시되어 사용자에게 제공될 수 있다.3 is a diagram illustrating a
도 3을 참조하면, 화면(310)은 사용자가 입력한 모션과 관련된 위치들을 가상의 3차원 공간상에 표시해주는 영역(311), 사용자가 입력한 모션과 관련된 정보들을 표시해 주는 영역(312, 313) 및 모션을 추가하기 위한 버튼(314)을 포함할 수 있다.Referring to FIG. 3 , the
사용자는 버튼(314)에 대한 입력을 수행하여, 모션과 관련된 3차원 공간상에서의 위치를 입력하는 방식으로 연속하여 수행하고자 하는 하나 이상의 모션을 입력할 수 있다. 가령 사용자는 모션 2의 입력에 있어서, 모션 2의 시작 시 로봇(200)의 기준 파트(226)의 3차원 공간상에서의 위치(P2) 및 모션 종료 시 기준 파트(220)의 3차원 공간상에서의 위치(P3)를 좌표값의 형태로 입력할 수 있다.The user may input one or more motions to be continuously performed by performing an input to the
선택적 실시예에서, 사용자는 화면상에 표시되는 가상의 3차원 공간상의 점들(미도시)중 어느 하나를 선택하는 방식으로 모션과 관련된 위치를 입력할 수도 있다.In an optional embodiment, the user may input a motion-related position by selecting any one of points (not shown) in a virtual three-dimensional space displayed on the screen.
로봇 제어 장치(100)는 상술한 바와 같은 사용자의 좌표값 입력 또는 위치 선택 입력에 따라 모션 정보를 입력 받을 수 있다.The
선택적 실시예에서, 로봇 제어 장치(100)는 개별 모션에 대해서 모션과 관련된 두 개의 위치 외에, 모션의 수행 시 기준 파트(226)가 이동하는 속도를 포함하는 모션 정보를 입력 받을 수도 있다. 가령 로봇 제어 장치(100)는 기준 파트(226)가 제1 구간에서는 가속하여 이동하도록 하고, 제2 구간에서는 등속으로 이동하도록 하고, 제3 구간에서는 감속하여 이동하도록 하는 이동 속도를 포함하는 모션 정보를 입력 받을 수 있다. 사용자는 모션과 관련된 정보들을 표시해 주는 영역(312, 313)에 표시되는 속도 편집 인터페이스(312-1, 313-1)에 대한 입력을 수행하여 기준 파트(226)가 이동하는 속도를 입력 및/또는 편집할 수 있다.In an optional embodiment, the
본 발명의 일 실시예에 따른 로봇 제어 장치(100)는 단계 S610에서 입력 받은 모션 중 적어도 어느 하나의 모션에 대해서, 해당 모션의 수행 중 다음 모션을 시작하는 시작점을 입력 받을 수 있다.(S620)The
본 발명에서 다음 모션을 시작하는 '시작점'은 다음 모션을 시작하기 위한 기준 파트(226)의 3차원 공간상에서의 위치를 의미할 수도 있고, 다음 모션을 시작하는 시점(시간)을 의미할 수도 있다.In the present invention, the 'start point' at which the next motion starts may mean the position in the three-dimensional space of the
본 발명의 일 실시예에 따른 로봇 제어 장치(100)는 다양한 방식으로 이와 같은 시작점을 입력 받을 수 있다.The
가령 본 발명의 일 실시예에 따른 로봇 제어 장치(100)는 도 4에 도시된 화면(320)과 같이, 로봇(200)의 기준 파트(226)가 선택된 제1 모션(모션 1)에 따라 3차원 공간상에서 지나가는 복수의 위치를 표시하고, 표시된 위치 중 어느 하나의 위치에 대한 사용자의 입력을 획득하는 방식으로 다음 모션인 제2 모션(모션 2)을 시작하는 시작점(Pm1)을 입력 받을 수 있다. 이러한 경우 로봇 제어 장치(100)는 도 4에 도시된 화면(320)과 같이 시작점 설정을 위한 소정의 인터페이스(321)를 제공하여 사용자로부터 시작점 입력을 획득할 수 있다. For example, the
다만 도 4에 도시된 인터페이스는 예시적인 것으로, 사용자가 선택 가능한 복수의 지점을 제공하고 그에 대한 사용자의 입력을 획득하는 인터페이스는 본 발명의 시작점을 입력 받는 인터페이스로 사용될 수 있다.However, the interface shown in FIG. 4 is exemplary, and an interface for providing a plurality of points selectable by a user and obtaining a user's input therefor may be used as an interface for receiving the starting point of the present invention.
본 발명의 다른 실시예에서, 로봇 제어 장치(100)는 제1 모션의 시작 시점과 제2 모션의 시작 시점간의 시간 간격을 입력 받고, 입력된 시간 간격에 기초하여 제2 모션의 시작점을 산출할 수도 있다. 가령 로봇 제어 장치(100)는 시간 간격을 '3초'와 같이 시간의 형태로 입력 받고, 제1 모션의 시작 시점으로부터 3초가 경과한 시점에서의 기준 파트(226)의 위치를 산출하여 시작점을 결정(또는 산출)할 수 있다.In another embodiment of the present invention, the
본 발명의 또 다른 실시예에서, 로봇 제어 장치(100)는 제1 모션의 진행 정도를 입력 받고, 이에 기초하여 제2 모션의 시작점을 산출할 수도 있다. 가령 로봇 제어 장치(100)는 제1 모션의 진행 정도로 70%를 입력 받고, 제1 모션이 70% 진행되었을 때의 기준 파트(226)의 위치 및/또는 시점(시간)을 산출하여 시작점을 결정(또는 산출)할 수도 있다.In another embodiment of the present invention, the
본 발명의 일 실시예에 따른 로봇 제어 장치(100)는 상술한 과정에 따라 입력된 모션 정보 및 시작점을 관절 제어 정보로 변환할 수 있다. 전술한 과정에서는 모션의 시작 시 기준 파트(226)의 3차원 공간상에서의 위치, 모션의 종료 시 기준 파트(226)의 3차원 공간상에서의 위치 및 모션의 수행 시 기준 파트(226)의 이동 속도의 형태로, 즉 기준 파트(226)를 기준으로 모션에 관한 정보를 입력 받았다. 따라서 로봇 제어 장치(100)는 이와 같은 모션에 관한 정보에 기초하여 로봇(200)의 제어하기 위해, 모션에 관한 정보에 기초하여 관절 제어 정보를 생성할 수 있다. 가령 로봇 제어 장치(100)는 도 2에 도시된 두 개의 모션(M1, M2)에 따른 로봇(200)의 각 관절(211, 212, 213, 214, 215, 216)의 구동 시점, 구동 속도 및 구동 지속 시간 등을 포함하는 관절 제어 정보를 생성할 수 있다.The
본 발명의 일 실시예에 따른 로봇 제어 장치(100)는 하나 이상의 모션 및 하나 이상의 모션 각각에 대한 시작점을 참조하여, 하나 이상의 모션이 연속하도록 연결된 연속 모션을 생성할 수 있다.(S630) 가령 로봇 제어 장치(100)는 전술한 과정에 따라 생성된 관절 제어 정보를 참조하여, 연속 모션을 생성할 수 있다.The
도 5a, 도 5b 및 도 5c는 본 발명의 일 실시예에 따른 로봇 제어 장치(100)가 연속 모션을 생성하는 방법을 설명하기 위한 도면이다. 이하에서는 설명의 편의를 위하여 관절(211)에 대해서만 살펴보며, 제1 모션에 따른 관절(211)의 회전 속도는 도 5a에 도시된 바와 같으며, 제2 모션에 따른 관절(211)의 회전 속도는 도 5b에 도시된 바와 같음을 가정하여 설명한다.5A, 5B and 5C are diagrams for explaining a method of generating a continuous motion by the
본 발명의 일 실시예에 따른 로봇 제어 장치(100)는 하나 이상의 모션에 따른 각 관절의 구동 속도에 기초하여 연속 모션을 생성할 수 있다. 보다 구체적으로, 본 발명의 일 실시예에 따른 로봇 제어 장치(100)는 시작점에 대응되는 시점(T1M)부터 제1 모션의 종료에 대응되는 시점(T1E)까지의 관절(211)의 구동 속도가 제1 모션(M1)에 따른 관절(211)의 구동 속도(W1)와 제2 모션(M2)에 제1 관절(211)의 구동 속도(W3)의 합(W1+W3)에 대응되도록 하는 제2 연속 모션을 생성할 수 있다. The
따라서 시점(T1M)과 시점(T1E)으로 정의되는 구간(S2)에서의 연속 모션인 제2 연속 모션에 따르면, 관절(211)은 제1 모션(M1)에 따른 관절(211)의 구동 속도(W1)와 제2 모션(M2)에 제1 관절(211)의 구동 속도(W3)의 합(W1+W3)에 대응되는 속도로 구동될 수 있다.Therefore, according to the second continuous motion, which is a continuous motion in the section S2 defined by the time point T1M and the time point T1E, the joint 211 is the driving speed of the joint 211 according to the first motion M1 ( W1) and the second motion M2 may be driven at a speed corresponding to the sum (W1+W3) of the driving speed W3 of the first joint 211 .
또한 본 발명의 일 실시예에 따른 로봇 제어 장치(100)는 제1 모션(M1)의 시작에 대응되는 시점(T1S)부터 시작점에 대응되는 시점(T1M) 까지의 관절(211)의 구동 속도가 제1 모션(M1)에 따른 관절(211)의 구동 속도(W1)에 대응되도록 하는 제1 연속 모션을 생성할 수 있다.In addition, the
따라서 시점(T1S)과 시점(T1M)으로 정의되는 구간(S1)에서의 연속 모션인 제1 연속 모션에 따르면, 관절(211)은 제1 모션(M1)에 따른 관절(211)의 구동 속도(W1)에 대응되는 속도로 구동될 수 있다.Therefore, according to the first continuous motion, which is a continuous motion in the section S1 defined by the time point T1S and the time point T1M, the joint 211 is the driving speed of the joint 211 according to the first motion M1 ( It can be driven at a speed corresponding to W1).
또한 본 발명의 일 실시예에 따른 로봇 제어 장치(100)는 제1 모션(M1)의 종료에 대응되는 시점(T1E) 제2 모션(M2)의 종료에 대응되는 시점(TAE) 까지의 관절(211)의 구동 속도가 제2 모션(M2)에 따른 관절(211)의 구동 속도(W3)에 대응되도록 하는 제3 연속 모션을 생성할 수 있다.In addition, the
따라서 시점(T1E)과 시점(TAE)으로 정의되는 구간(S3)에서의 연속 모션인 제3 연속 모션에 따르면, 관절(211)은 제2 모션(M2)에 따른 관절(211)의 구동 속도(W3)에 대응되는 속도로 구동될 수 있다.Therefore, according to the third continuous motion, which is a continuous motion in the section S3 defined by the time point T1E and the time point TAE, the joint 211 is the driving speed of the joint 211 according to the second motion M2 ( It can be driven at a speed corresponding to W3).
본 발명의 일 실시예에 따른 로봇 제어 장치(100)는 상술한 과정에 따라 생성된 제1 연속 모션, 제2 연속 모션 및 제3 연속 모션이 연결된 연속 모션을 생성할 수 있다. 또한 본 발명의 일 실시예에 따른 로봇 제어 장치(100)는 로봇(200)의 나머지 관절(212, 213, 214, 215, 216) 각각에 대해서 관절(211)과 마찬가지 방법으로 연속 모션을 생성할 수 있다.The
본 발명의 일 실시예에 따른 로봇 제어 장치(100)는 생성된 연속 모션에 따라 로봇(200)을 제어할 수 있다.(S640)The
이로써 본 발명은 로봇(200)에 의해 두 개 이상의 모션이 멈춤 없이 수행될 수 있도록 하며, 보다 자연스럽고 부드러운 로봇(200)의 모션 구현이 가능하도록 한다.Accordingly, the present invention enables two or more motions to be performed by the
본 발명의 실시예에 따른 로봇의 제어 방법은 컴퓨터로 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의해 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 컴퓨터가 읽을 수 있는 기록매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피 디스크, 광데이터, SD카드, USB메모리 저장장치 등이 있다. 또한, 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다. 그리고, 본 발명을 구현하기 위한 기능적인(functional) 프로그램, 코드 및 코드 세그먼트들은 본 발명이 속하는 기술분야의 프로그래머들에 의해 용이하게 추론될 수 있다.The robot control method according to an embodiment of the present invention can be implemented as computer-readable codes on a computer-readable recording medium. The computer-readable recording medium includes all types of recording devices in which data that can be read by a computer system is stored. Examples of computer-readable recording media include ROM, RAM, CD-ROM, magnetic tape, floppy disk, optical data, SD card, and USB memory storage device. In addition, the computer-readable recording medium is distributed in a computer system connected through a network, so that the computer-readable code can be stored and executed in a distributed manner. In addition, functional programs, codes, and code segments for implementing the present invention can be easily inferred by programmers in the technical field to which the present invention pertains.
본 발명은 첨부된 도면에 도시된 일 실시예를 참고로 설명되었으나, 이는 예시적인 것에 불과하며, 당해 기술분야에서 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 수 있을 것이다.Although the present invention has been described with reference to one embodiment shown in the accompanying drawings, this is merely an example, and those skilled in the art will appreciate that various modifications and equivalent other embodiments are possible therefrom. You will understand.
100: 로봇 제어 장치
110: 제어부
120: 디스플레이부
130: 입력부
200: 로봇
211, 212, 213, 214, 215, 216: 관절
221, 222, 223, 224, 225, 226: 파트 100: robot control unit
110: control unit
120: display unit
130: input unit
200: robot
211, 212, 213, 214, 215, 216: joint
221, 222, 223, 224, 225, 226: parts
Claims (17)
연속하여 수행할 하나 이상의 모션을 입력 받는 단계;
상기 하나 이상의 모션 중 적어도 어느 하나의 모션에 대해서, 상기 어느 하나의 모션의 수행 중 상기 어느 하나의 모션에 연속하여 수행되는 다음 모션을 시작하는 시작점을 입력 받는 단계;
상기 하나 이상의 모션 및 상기 하나 이상의 모션 각각에 대한 시작점을 참조하여, 상기 하나 이상의 모션이 연속하도록 연결된 연속 모션을 생성하는 단계; 및
상기 연속 모션에 따라 상기 로봇을 구동하는 단계;를 포함하는, 로봇 제어 방법.A method of controlling a robot to continuously perform one or more motions, the method comprising:
receiving one or more motions to be continuously performed;
receiving an input of a starting point for starting a next motion that is continuously performed with respect to at least any one of the one or more motions during the execution of the one or more motions;
generating a continuous motion connected such that the one or more motions are continuous by referring to the one or more motions and a starting point for each of the one or more motions; and
Including; driving the robot according to the continuous motion; robot control method.
상기 하나 이상의 모션을 입력 받는 단계는
상기 하나 이상의 모션 각각에 대해서, 모션의 시작 시 상기 로봇의 기준 파트의 3차원 공간상에서의 위치 및 모션 종료 시 상기 기준 파트의 상기 3차원 공간상에서의 위치를 포함하는 모션 정보를 입력 받는 단계;를 포함하는, 로봇 제어 방법.The method according to claim 1
The step of receiving the one or more motions
For each of the one or more motions, receiving motion information including the position in the 3D space of the reference part of the robot at the start of the motion and the position in the 3D space of the reference part at the end of the motion; Including, a robot control method.
상기 하나 이상의 모션을 입력 받는 단계는
상기 하나 이상의 모션 각각에 대해서, 모션의 수행 시 상기 기준 파트가 이동하는 속도를 더 포함하는 상기 모션 정보를 입력 받는 단계;를 포함하는, 로봇 제어 방법.3. The method according to claim 2
The step of receiving the one or more motions
For each of the one or more motions, receiving the motion information further including a speed at which the reference part moves when the motion is performed;
상기 시작점을 입력 받는 단계는
제1 모션에 따라 상기 로봇의 기준 파트가 3차원 공간상에서 지나가는 복수의 위치 중 어느 하나의 위치를 제2 모션을 시작하는 상기 시작점으로 입력 받는 단계;를 포함하고,
상기 제1 모션 및 상기 제2 모션은 상기 하나 이상의 모션에 포함되는 모션으로, 상기 제2 모션은 상기 제1 모션에 연속하여 수행되는 다음 모션인, 로봇 제어 방법.The method according to claim 1
The step of receiving the input of the starting point is
Including; receiving any one position among a plurality of positions at which the reference part of the robot passes in a three-dimensional space according to the first motion as the starting point for starting the second motion;
The first motion and the second motion are motions included in the one or more motions, and the second motion is a next motion performed successively to the first motion.
상기 복수의 위치 중 어느 하나의 위치를 상기 시작점으로 입력 받는 단계는
상기 복수의 위치를 표시하는 단계;
상기 표시된 복수의 위치 중 어느 하나의 위치에 대한 선택 입력을 획득하는 단계; 및
상기 선택 입력에 대응되는 위치를 상기 시작점으로 결정하는 단계;를 포함하는, 로봇 제어 방법.5. The method according to claim 4
The step of receiving any one position among the plurality of positions as the starting point includes:
displaying the plurality of locations;
obtaining a selection input for any one of the displayed plurality of positions; and
Determining a position corresponding to the selection input as the starting point; including, a robot control method.
상기 시작점을 입력 받는 단계는
제1 모션의 시작 시점과 제2 모션의 시작 시점간의 시간 간격을 입력 받고, 상기 시간 간격에 기초하여 상기 시작점을 산출하는 단계;를 포함하고,
상기 제1 모션 및 상기 제2 모션은 상기 하나 이상의 모션에 포함되는 모션으로, 상기 제2 모션은 상기 제1 모션에 연속하여 수행되는 다음 모션인, 로봇 제어 방법.The method according to claim 1
The step of receiving the input of the starting point is
Including; receiving a time interval between the start time of the first motion and the start time of the second motion, and calculating the starting point based on the time interval;
The first motion and the second motion are motions included in the one or more motions, and the second motion is a next motion performed successively to the first motion.
상기 로봇은 상기 모션에 따라 구동되는 제1 관절을 포함하고,
상기 연속 모션을 생성하는 단계는
상기 시작점에 대응되는 시점부터 제1 모션의 종료에 대응되는 시점까지의 상기 제1 관절의 구동 속도가 제1 모션에 따른 상기 제1 관절의 구동 속도와 제2 모션에 따른 상기 제1 관절의 구동 속도의 합에 대응되도록 하는 제2 연속 모션을 생성하는 단계;를 포함하고,
상기 제1 모션 및 상기 제2 모션은 상기 하나 이상의 모션에 포함되는 모션으로, 상기 제2 모션은 상기 제1 모션에 연속하여 수행되는 다음 모션인, 로봇 제어 방법.The method according to claim 1
The robot includes a first joint driven according to the motion,
The step of generating the continuous motion is
The driving speed of the first joint from the time corresponding to the starting point to the time corresponding to the end of the first motion is the driving speed of the first joint according to the first motion and the driving of the first joint according to the second motion Including; generating a second continuous motion to correspond to the sum of the velocities;
The first motion and the second motion are motions included in the one or more motions, and the second motion is a next motion performed successively to the first motion.
상기 연속 모션을 생성하는 단계는
상기 제1 모션의 시작에 대응되는 시점부터 상기 시작점에 대응되는 시점 까지의 상기 제1 관절의 구동 속도가 상기 제1 모션에 따른 상기 제1 관절의 구동 속도에 대응되도록 하는 제1 연속 모션을 생성하는 단계; 및
상기 제1 모션의 종료에 대응되는 시점부터 상기 제2 모션의 종료에 대응되는 시점 까지의 상기 제1 관절의 구동 속도가 상기 제2 모션에 따른 상기 제1 관절의 구동 속도에 대응되도록 하는 제3 연속 모션을 생성하는 단계;를 포함하고,
상기 연속 모션은
상기 제1 연속 모션, 상기 제2 연속 모션 및 상기 제3 연속 모션이 연결된 모션인, 로봇 제어 방법.8. The method of claim 7
The step of generating the continuous motion is
A first continuous motion is generated such that the driving speed of the first joint from a time corresponding to the start of the first motion to a time corresponding to the starting point corresponds to the driving speed of the first joint according to the first motion. to do; and
A third such that the driving speed of the first joint from a time point corresponding to the end of the first motion to a time point corresponding to the end of the second motion corresponds to the drive speed of the first joint according to the second motion Including; generating a continuous motion;
The continuous motion is
The first continuous motion, the second continuous motion and the third continuous motion are connected motions.
청구항 1 내지 청구항 8 중 어느 한 항의 방법을 실행하기 위하여 매체에 저장된 컴퓨터 프로그램.using a computer
A computer program stored in a medium for executing the method of any one of claims 1 to 8.
연속하여 수행할 하나 이상의 모션을 입력 받고,
상기 하나 이상의 모션 중 적어도 어느 하나의 모션에 대해서, 상기 어느 하나의 모션의 수행 중 상기 어느 하나의 모션에 연속하여 수행되는 다음 모션을 시작하는 시작점을 입력 받고,
상기 하나 이상의 모션 및 상기 하나 이상의 모션 각각에 대한 시작점을 참조하여, 상기 하나 이상의 모션이 연속하도록 연결된 연속 모션을 생성하고,
상기 연속 모션에 따라 상기 로봇을 구동하는, 로봇 제어 장치.A robot control device for controlling a robot to continuously perform one or more motions, wherein the robot control device comprises:
Receive one or more motions to be performed in succession,
With respect to at least any one of the one or more motions, receiving an input of a starting point for starting the next motion that is performed continuously to the any one of the one or more motions,
With reference to the one or more motions and a starting point for each of the one or more motions, generating a continuous motion connected so that the one or more motions are continuous,
A robot control device that drives the robot according to the continuous motion.
상기 로봇 제어 장치는
상기 하나 이상의 모션 각각에 대해서, 모션의 시작 시 상기 로봇의 기준 파트의 3차원 공간상에서의 위치 및 모션 종료 시 상기 기준 파트의 상기 3차원 공간상에서의 위치를 포함하는 모션 정보를 입력 받는, 로봇 제어 장치.11. The method of claim 10
The robot control device
For each of the one or more motions, receiving motion information including a position in a three-dimensional space of the reference part of the robot at the start of a motion and a position in the three-dimensional space of the reference part at the end of a motion, robot control Device.
상기 로봇 제어 장치는
상기 하나 이상의 모션 각각에 대해서, 모션의 수행 시 상기 기준 파트가 이동하는 속도를 더 포함하는 상기 모션 정보를 입력 받는, 로봇 제어 장치.12. The method of claim 11
The robot control device
For each of the one or more motions, receiving the motion information further including the speed at which the reference part moves when the motion is performed, the robot control device.
상기 로봇 제어 장치는
제1 모션에 따라 상기 로봇의 기준 파트가 3차원 공간상에서 지나가는 복수의 위치 중 어느 하나의 위치를 제2 모션을 시작하는 상기 시작점으로 입력 받고,
상기 제1 모션 및 상기 제2 모션은 상기 하나 이상의 모션에 포함되는 모션으로, 상기 제2 모션은 상기 제1 모션에 연속하여 수행되는 다음 모션인, 로봇 제어 장치.11. The method of claim 10
The robot control device
According to the first motion, any one position among a plurality of positions at which the reference part of the robot passes in a three-dimensional space is input as the starting point for starting a second motion,
The first motion and the second motion are motions included in the one or more motions, and the second motion is a next motion performed successively to the first motion.
상기 로봇 제어 장치는
상기 복수의 위치를 표시하고,
상기 표시된 복수의 위치 중 어느 하나의 위치에 대한 선택 입력을 획득하고,
상기 선택 입력에 대응되는 위치를 상기 시작점으로 결정하는, 로봇 제어 장치.14. The method of claim 13
The robot control device
indicate the plurality of locations,
obtaining a selection input for any one position among the displayed plurality of positions;
A robot control device that determines a position corresponding to the selection input as the starting point.
상기 로봇 제어 장치는
제1 모션의 시작 시점과 제2 모션의 시작 시점간의 시간 간격을 입력 받고, 상기 시간 간격에 기초하여 상기 시작점을 산출하고,
상기 제1 모션 및 상기 제2 모션은 상기 하나 이상의 모션에 포함되는 모션으로, 상기 제2 모션은 상기 제1 모션에 연속하여 수행되는 다음 모션인, 로봇 제어 장치.11. The method of claim 10
The robot control device
receiving the time interval between the start time of the first motion and the start time of the second motion, and calculating the starting point based on the time interval,
The first motion and the second motion are motions included in the one or more motions, and the second motion is a next motion performed successively to the first motion.
상기 로봇은 상기 모션에 따라 구동되는 제1 관절을 포함하고,
상기 로봇 제어 장치는
상기 시작점에 대응되는 시점부터 제1 모션의 종료에 대응되는 시점까지의 상기 제1 관절의 구동 속도가 제1 모션에 따른 상기 제1 관절의 구동 속도와 제2 모션에 따른 상기 제1 관절의 구동 속도의 합에 대응되도록 하는 제2 연속 모션을 생성하고,
상기 제1 모션 및 상기 제2 모션은 상기 하나 이상의 모션에 포함되는 모션으로, 상기 제2 모션은 상기 제1 모션에 연속하여 수행되는 다음 모션인, 로봇 제어 장치.11. The method of claim 10
The robot includes a first joint driven according to the motion,
The robot control device
The driving speed of the first joint from the time corresponding to the starting point to the time corresponding to the end of the first motion is the driving speed of the first joint according to the first motion and the driving of the first joint according to the second motion create a second continuous motion to correspond to the sum of the velocities;
The first motion and the second motion are motions included in the one or more motions, and the second motion is a next motion performed successively to the first motion.
상기 로봇 제어 장치는
상기 제1 모션의 시작에 대응되는 시점부터 상기 시작점에 대응되는 시점 까지의 상기 제1 관절의 구동 속도가 상기 제1 모션에 따른 상기 제1 관절의 구동 속도에 대응되도록 하는 제1 연속 모션을 생성하고,
상기 제1 모션의 종료에 대응되는 시점부터 상기 제2 모션의 종료에 대응되는 시점 까지의 상기 제1 관절의 구동 속도가 상기 제2 모션에 따른 상기 제1 관절의 구동 속도에 대응되도록 하는 제3 연속 모션을 생성하고,
상기 연속 모션은
상기 제1 연속 모션, 상기 제2 연속 모션 및 상기 제3 연속 모션이 연결된 모션인, 로봇 제어 장치.17. The method of claim 16
The robot control device
A first continuous motion is generated such that the driving speed of the first joint from a time corresponding to the start of the first motion to a time corresponding to the starting point corresponds to the driving speed of the first joint according to the first motion. and,
A third such that the driving speed of the first joint from a time point corresponding to the end of the first motion to a time point corresponding to the end of the second motion corresponds to the drive speed of the first joint according to the second motion create continuous motion,
The continuous motion is
The first continuous motion, the second continuous motion and the third continuous motion are connected motions.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020190179547A KR20210085946A (en) | 2019-12-31 | 2019-12-31 | Apparatus, method and computer program for controlling robot |
PCT/KR2020/018669 WO2021137486A1 (en) | 2019-12-31 | 2020-12-18 | Robot control device, method and computer program |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020190179547A KR20210085946A (en) | 2019-12-31 | 2019-12-31 | Apparatus, method and computer program for controlling robot |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20210085946A true KR20210085946A (en) | 2021-07-08 |
Family
ID=76686006
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020190179547A KR20210085946A (en) | 2019-12-31 | 2019-12-31 | Apparatus, method and computer program for controlling robot |
Country Status (2)
Country | Link |
---|---|
KR (1) | KR20210085946A (en) |
WO (1) | WO2021137486A1 (en) |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008254074A (en) * | 2007-03-30 | 2008-10-23 | Sega Corp | Motion editing device, and its program |
KR20120005082A (en) * | 2010-07-08 | 2012-01-16 | 대우조선해양 주식회사 | Continuous motion blending method of robot and robot control system for realizing the method |
KR101337650B1 (en) * | 2011-11-02 | 2013-12-05 | 삼성중공업 주식회사 | Realtime weaving motion control device and realtime weaving motion control method |
KR101328101B1 (en) * | 2012-05-30 | 2013-11-13 | (주)동부로봇 | Robot contol device, and the contol method |
KR20190029284A (en) * | 2017-09-12 | 2019-03-20 | 한화에어로스페이스 주식회사 | Apparatus, method and computer program for controlling robot |
-
2019
- 2019-12-31 KR KR1020190179547A patent/KR20210085946A/en not_active Application Discontinuation
-
2020
- 2020-12-18 WO PCT/KR2020/018669 patent/WO2021137486A1/en active Application Filing
Also Published As
Publication number | Publication date |
---|---|
WO2021137486A1 (en) | 2021-07-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6311421B2 (en) | Teaching system, robot system, and teaching method | |
JP6379874B2 (en) | Teaching system, robot system, and teaching method | |
JP4441409B2 (en) | Robot simulation apparatus and simulation program | |
US7734358B2 (en) | Data processing apparatus for arc welding | |
JP4256353B2 (en) | Servo control device and servo system adjustment method | |
JP5729404B2 (en) | Teaching system and teaching method | |
EP3582934B1 (en) | A method for controlling an industrial robot during lead-through programming of the robot and an industrial robot | |
KR20150044812A (en) | Teaching system and teaching method | |
JP6598454B2 (en) | Teaching data creation method, creation device, and creation program | |
JPWO2019092792A1 (en) | Display control apparatus, display control method, and display control program | |
JP2015174184A (en) | Controller | |
US11203117B2 (en) | Teaching data generation system for vertical multi-joint robot | |
KR20210085946A (en) | Apparatus, method and computer program for controlling robot | |
KR20120005082A (en) | Continuous motion blending method of robot and robot control system for realizing the method | |
KR20190029284A (en) | Apparatus, method and computer program for controlling robot | |
JP5961077B2 (en) | Robot control apparatus and robot control method | |
CN115362420A (en) | Numerical control device and numerical control method | |
JP5133185B2 (en) | Arc welding robot | |
JP7424097B2 (en) | Robot control device and robot control method | |
KR20190020484A (en) | Apparatus, method and system for teaching robot | |
WO2023073883A1 (en) | Auxiliary file-generating simulation device and control system | |
US20230286153A1 (en) | Path generation for manual robot teaching | |
JPS60215216A (en) | Controller of robot | |
JP2005138245A (en) | Controller of human intervention type robot | |
JP2016218934A (en) | Correcting device and method for robot language programs, and program |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E902 | Notification of reason for refusal |