[go: up one dir, main page]

KR102819245B1 - Calculation device and method for performing bias acceleration calculation for Operational Space Formulation(OSF) - Google Patents

Calculation device and method for performing bias acceleration calculation for Operational Space Formulation(OSF) Download PDF

Info

Publication number
KR102819245B1
KR102819245B1 KR1020230012353A KR20230012353A KR102819245B1 KR 102819245 B1 KR102819245 B1 KR 102819245B1 KR 1020230012353 A KR1020230012353 A KR 1020230012353A KR 20230012353 A KR20230012353 A KR 20230012353A KR 102819245 B1 KR102819245 B1 KR 102819245B1
Authority
KR
South Korea
Prior art keywords
robot
bias acceleration
control
workspace
priority
Prior art date
Legal status (The legal status 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 status listed.)
Active
Application number
KR1020230012353A
Other languages
Korean (ko)
Other versions
KR20240120033A (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 KR1020230012353A priority Critical patent/KR102819245B1/en
Publication of KR20240120033A publication Critical patent/KR20240120033A/en
Application granted granted Critical
Publication of KR102819245B1 publication Critical patent/KR102819245B1/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/1628Programme controls characterised by the control loop
    • B25J9/163Programme controls characterised by the control loop learning, adaptive, model based, rule based expert control
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J13/00Controls for manipulators
    • B25J13/006Controls for manipulators by means of a wireless system for controlling one or several manipulators
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J13/00Controls for manipulators
    • B25J13/06Control stands, e.g. consoles, switchboards
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Robotics (AREA)
  • Mechanical Engineering (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Manipulator (AREA)

Abstract

작업공간제어를 위한 바이어스 가속도 연산을 수행하는 로봇 제어 장치 및 방법이 개시된다. 로봇 제어 장치는 로봇의 작업공간제어와 관련된 사용자 입력을 수신하는 통신부 및 수신된 사용자 입력을 수식 내부에서 상쇄되는 불필요한 항들이 제거된 바이어스 가속도 연산식에 적용하여 바이어스 가속도를 산출하고, 산출된 바이어스 가속도를 이용하여 작업공간제어의 수행을 지원하는 제어부를 포함한다.A robot control device and method for performing bias acceleration calculation for workspace control are disclosed. The robot control device includes a communication unit for receiving user input related to workspace control of a robot, and a control unit for calculating bias acceleration by applying the received user input to a bias acceleration calculation formula from which unnecessary terms that are canceled out within the formula are removed, and supporting performance of workspace control using the calculated bias acceleration.

Description

작업공간제어를 위한 바이어스 가속도 연산을 수행하는 로봇 제어 장치 및 방법{Calculation device and method for performing bias acceleration calculation for Operational Space Formulation(OSF)}Robot control device and method for performing bias acceleration calculation for operational space formation (OSF)

본 발명은 바이어스 가속 연산에 관한 것으로, 더욱 상세하게는 다양한 로봇 제어에 활용되고 있는 작업공간제어의 연산 효율을 향상시키는 작업공간제어를 위한 바이어스 가속도 연산을 수행하는 로봇 제어 장치 및 방법에 관한 것이다.The present invention relates to bias acceleration calculation, and more specifically, to a robot control device and method for performing bias acceleration calculation for workspace control that improves the calculation efficiency of workspace control utilized in various robot controls.

일반적으로 로봇의 작업공간제어(Operational Space Formulation, OSF)는 여유자유도(Redundancy) 로봇을 활용하여 다중 작업(multi-tasks)을 구현하고자 할 때, 사용될 수 있는 가장 대표적인 방법이다.In general, operational space formulation (OSF) of a robot is the most representative method that can be used when trying to implement multi-tasks using a redundant robot.

작업공간제어는 로봇이 수행할 작업들을 동역학적으로 분리(decouple)시켜 제어할 수 있게 해주는 효과적인 방법이지만, 많은 연산을 요구한다는 단점을 가지고 있다.Workspace control is an effective method for dynamically decoupled and controlled tasks to be performed by a robot, but it has the disadvantage of requiring a lot of computation.

따라서 현재의 작업공간제어는 로봇의 실시간 제어에 어려움이 있기 때문에 실시간 제어에 적용하기 위해서 연산 효율을 높일 수 있는 방안이 필요한 실정이다.Therefore, since the current workspace control has difficulty in real-time control of robots, a method to increase computational efficiency is needed in order to apply it to real-time control.

한국공개특허공보 제10-2022-0038500호(2022.03.28.)Korean Patent Publication No. 10-2022-0038500 (2022.03.28.)

본 발명이 해결하고자 하는 과제는, 다중 로봇, 휴머노이드, 수중 로봇 등 다양한 로봇 제어에 활용되고 있는 작업공간제어의 연산 효율을 높이기 위해 작업공간제어 전체 연산의 약 30% ~ 50%를 차지하는 바이어스 가속도 연산을 효율적으로 수행하는 작업공간제어를 위한 바이어스 가속도 연산을 수행하는 연산 장치 및 방법을 제공하는 것이다. The problem to be solved by the present invention is to provide a computational device and method for performing bias acceleration computation for workspace control, which efficiently performs bias acceleration computation, which accounts for about 30% to 50% of the total computation of workspace control, in order to increase computational efficiency of workspace control utilized in controlling various robots such as multi-robots, humanoids, and underwater robots.

상기 과제를 해결하기 위해 본 발명에 따른 로봇 제어 장치는 로봇의 작업공간제어와 관련된 사용자 입력을 수신하는 통신부 및 상기 수신된 사용자 입력을 수식 내부에서 상쇄되는 불필요한 항들이 제거된 바이어스 가속도 연산식에 적용하여 바이어스 가속도를 산출하고, 상기 산출된 바이어스 가속도를 이용하여 상기 작업공간제어의 수행을 지원하는 제어부를 포함한다.In order to solve the above problem, the robot control device according to the present invention includes a communication unit that receives user input related to workspace control of the robot, and a control unit that calculates a bias acceleration by applying the received user input to a bias acceleration calculation formula from which unnecessary terms that are canceled out within the formula are removed, and supports performance of the workspace control using the calculated bias acceleration.

또한 상기 제어부는, 코리올리/원심력 및 중력과 관련된 항들이 제거된 바이어스 가속도 연산식을 이용하여 상기 바이어스 가속도를 산출하는 것을 특징으로 한다.In addition, the control unit is characterized in that it calculates the bias acceleration using a bias acceleration calculation formula from which terms related to Coriolis/centrifugal force and gravity are removed.

또한 상기 제어부는, 하기 수학식을 이용하여 상기 바이어스 가속도를 산출하는 것을 특징으로 한다.In addition, the control unit is characterized by calculating the bias acceleration using the following mathematical formula.

[수학식][Mathematical formula]

는 바이어스 가속도를 의미하고, 는 자코비안 행렬을 의미하며, 는 j번째 작업보다 우선순위가 높은 모든 작업들의 널 공간에 투영한 우선순위 자코비안의 역수를 의미하고, 는 j번째 작업보다 우선순위가 높은 모든 작업들의 널 공간에 투영한 우선순위 목표 가속도를 의미하고, 는 j번째 작업보다 우선순위가 높은 모든 작업들의 널 공간에 투영한 우선순위 자코비안의 1차 도함수를 의미하며, 는 관절 속도를 의미한다. stands for bias acceleration, stands for Jacobian matrix, is the inverse of the priority Jacobian projected onto the null space of all tasks with priorities higher than the jth task, is the priority target acceleration projected onto the null space of all tasks with a priority higher than the jth task, denotes the first derivative of the priority Jacobian projected onto the null space of all tasks with priorities higher than the jth task, stands for joint velocity.

본 발명에 따른 로봇 제어 방법은 로봇 제어 장치가 로봇의 작업공간제어와 관련된 사용자 입력을 수신하는 단계, 상기 로봇 제어 장치가 상기 수신된 사용자 입력을 수식 내부에서 상쇄되는 불필요한 항들이 제거된 바이어스 가속도 연산식에 적용하여 바이어스 가속도를 산출하는 단계 및 상기 로봇 제어 장치가 상기 산출된 바이어스 가속도를 이용하여 상기 작업공간제어의 수행을 지원하는 단계를 포함한다.A robot control method according to the present invention includes a step in which a robot control device receives a user input related to workspace control of a robot, a step in which the robot control device applies the received user input to a bias acceleration calculation formula from which unnecessary terms that are offset within the formula are removed to calculate a bias acceleration, and a step in which the robot control device supports performance of the workspace control using the calculated bias acceleration.

본 발명에 따른 로봇 제어 시스템은 복수의 관절로 이루어지고, 작업공간제어에 따라 동작하는 로봇 및 상기 로봇에 구비되고, 상기 로봇의 작업공간제어를 지원하는 로봇 제어 장치를 포함하되, 상기 로봇 제어 장치는, 상기 작업공간제어와 관련된 사용자 입력을 수신하는 통신부 및 상기 수신된 사용자 입력을 수식 내부에서 상쇄되는 불필요한 항들이 제거된 바이어스 가속도 연산식에 적용하여 바이어스 가속도를 산출하고, 상기 산출된 바이어스 가속도를 이용하여 상기 작업공간제어의 수행을 지원하는 제어부를 포함하는 것을 특징으로 한다.A robot control system according to the present invention comprises a robot having a plurality of joints and operating according to workspace control, and a robot control device provided to the robot and supporting workspace control of the robot, wherein the robot control device comprises a communication unit which receives a user input related to the workspace control, and a control unit which calculates a bias acceleration by applying the received user input to a bias acceleration calculation formula from which unnecessary terms that are offset within the formula are removed, and which supports performance of the workspace control using the calculated bias acceleration.

본 발명의 실시예에 따르면, 종래의 바이어스 가속도 연산에 포함된 코리올리/원심력 및 중력과 관련된 항들을 바이어스 가속도 수식 내부에서 상쇄시킴으로써, 코리올리/원심력 및 중력을 고려하지 않고 바이어스 가속도 연산을 수행하여 종래 대비 연산 시간을 현저히 감소시킬 수 있다.According to an embodiment of the present invention, by canceling out terms related to Coriolis/centrifugal force and gravity included in a conventional bias acceleration calculation within the bias acceleration formula, the bias acceleration calculation can be performed without considering Coriolis/centrifugal force and gravity, thereby significantly reducing the calculation time compared to the conventional method.

이를 통해 본 발명은 로봇의 실시간 작업공간제어를 가능하게 할 수 있다.Through this, the present invention can enable real-time workspace control of a robot.

도 1은 본 발명의 실시예에 따른 로봇 제어 시스템을 설명하기 위한 구성도이다.
도 2는 본 발명의 실시예에 따른 로봇 제어 장치를 설명하기 위한 블록도이다.
도 3은 본 발명의 실시예에 따른 로봇 제어 방법을 설명하기 위한 순서도이다.
도 4는 종래의 바이어스 가속도 연산과 본 발명의 실시예에 따른 바이어스 가속도 연산을 양팔 형상의 로봇에 적용하여 시뮬레이션한 결과를 설명하기 위한 도면이다.
도 5는 본 발명의 실시예에 따른 컴퓨팅 장치를 설명하기 위한 블록도이다.
Figure 1 is a configuration diagram for explaining a robot control system according to an embodiment of the present invention.
FIG. 2 is a block diagram for explaining a robot control device according to an embodiment of the present invention.
Figure 3 is a flowchart for explaining a robot control method according to an embodiment of the present invention.
FIG. 4 is a drawing for explaining the simulation result of applying the conventional bias acceleration calculation and the bias acceleration calculation according to the embodiment of the present invention to a two-arm robot.
FIG. 5 is a block diagram illustrating a computing device according to an embodiment of the present invention.

아래에서는 첨부한 도면을 참고로 하여 본 발명의 실시예에 대하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다. 그리고 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다. Hereinafter, with reference to the attached drawings, embodiments of the present invention will be described in detail so that those skilled in the art can easily practice the present invention. However, the present invention may be implemented in various different forms and is not limited to the embodiments described herein. In addition, in order to clearly describe the present invention in the drawings, parts that are not related to the description are omitted, and similar parts are assigned similar drawing reference numerals throughout the specification.

본 명세서 및 도면(이하 '본 명세서')에서, 동일한 구성요소에 대해서 중복된 설명은 생략한다.In this specification and drawings (hereinafter referred to as “this specification”), duplicate descriptions of identical components are omitted.

또한 본 명세서에서, 어떤 구성요소가 다른 구성요소에 '연결되어' 있다거나 '접속되어' 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에 본 명세서에서, 어떤 구성요소가 다른 구성요소에 '직접 연결되어' 있다거나 '직접 접속되어' 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다.Also, in this specification, when it is mentioned that a component is 'connected' or 'connected' to another component, it should be understood that it may be directly connected or connected to that other component, but that there may be other components in between. On the other hand, in this specification, when it is mentioned that a component is 'directly connected' or 'directly connected' to another component, it should be understood that there are no other components in between.

또한, 본 명세서에서 사용되는 용어는 단지 특정한 실시예를 설명하기 위해 사용되는 것으로써, 본 발명을 한정하려는 의도로 사용되는 것이 아니다. Additionally, the terms used herein are only used to describe particular embodiments and are not intended to limit the present invention.

또한 본 명세서에서, 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함할 수 있다. Also, in this specification, singular expressions may include plural expressions unless the context clearly indicates otherwise.

또한 본 명세서에서, '포함하다' 또는 '가지다' 등의 용어는 명세서에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품, 또는 이들을 조합한 것이 존재함을 지정하려는 것일 뿐, 하나 또는 그 이상의 다른 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 할 것이다.In addition, in this specification, it should be understood that terms such as “include” or “have” only specify the presence of a feature, number, step, operation, component, part, or combination thereof described in the specification, and do not exclude in advance the possibility of the presence or addition of one or more other features, numbers, steps, operations, components, parts, or combinations thereof.

또한 본 명세서에서, '및/또는' 이라는 용어는 복수의 기재된 항목들의 조합 또는 복수의 기재된 항목들 중의 어느 항목을 포함한다. 본 명세서에서, 'A 또는 B'는, 'A', 'B', 또는 'A와 B 모두'를 포함할 수 있다.Also, in this specification, the term 'and/or' includes a combination of multiple listed items or any one of multiple listed items. In this specification, 'A or B' can include 'A', 'B', or 'both A and B'.

또한 본 명세서에서, 본 발명의 요지를 흐리게 할 수 있는 공지 기능 및 구성에 대한 상세한 설명은 생략될 것이다.Additionally, in this specification, detailed descriptions of well-known functions and configurations that may obscure the gist of the present invention will be omitted.

도 1은 본 발명의 실시예에 따른 로봇 제어 시스템을 설명하기 위한 구성도이다.Figure 1 is a schematic diagram for explaining a robot control system according to an embodiment of the present invention.

도 1을 참조하면, 로봇 제어 시스템(400)은 다중 로봇, 휴머노이드, 수중 로봇 등 다양한 로봇 제어에 활용되고 있는 작업공간제어의 연산 효율을 높이기 위해 작업공간제어 전체 연산의 약 30% ~ 50%를 차지하는 바이어스 가속도 연산을 효율적으로 수행한다. 이를 통해 로봇 제어 시스템(400)은 빠르게 연산을 수행함으로써, 실시간 작업공간제어를 지원할 수 있다. 로봇 제어 시스템(400)은 로봇 제어 장치(100) 및 로봇(200)을 포함하고, 사용자 단말(300)을 더 포함할 수 있다.Referring to FIG. 1, the robot control system (400) efficiently performs bias acceleration calculations, which account for about 30% to 50% of the total calculations of the workspace control, in order to increase the calculation efficiency of the workspace control utilized in various robot controls such as multi-robots, humanoids, and underwater robots. Through this, the robot control system (400) can support real-time workspace control by performing calculations quickly. The robot control system (400) includes a robot control device (100) and a robot (200), and may further include a user terminal (300).

로봇 제어 장치(100)는 로봇(200)에 구비되고, 로봇(200)이 작업공간제어를 통해 다중 작업을 수행하도록 제어한다. 로봇 제어 장치(100)는 작업공간제어에 포함된 바이어스 가속도 연산을 효율적으로 수행하여 연산에 소요되는 시간을 현저히 감소시킬 수 있다. 이를 위해 로봇 제어 장치(100)는 종래의 바이어스 가속도 연산식의 수식 내부에서 상쇄되는 불필요한 항들이 제거된 바이어스 가속도 연산식을 이용할 수 있다. 바람직하게는 로봇 제어 장치(100)는 코리올리/원심력 및 중력과 관련된 항들이 제거된 바이어스 가속도 연산식을 이용할 수 있다. 로봇 제어 장치(100)는 바이어스 가속도를 기반으로 작업공간제어를 수행하기 위한 제어신호를 생성한다.The robot control device (100) is provided in the robot (200) and controls the robot (200) to perform multiple tasks through workspace control. The robot control device (100) can efficiently perform bias acceleration calculation included in workspace control, thereby significantly reducing the time required for the calculation. To this end, the robot control device (100) can use a bias acceleration calculation formula from which unnecessary terms that are canceled out in the formula of a conventional bias acceleration calculation formula are removed. Preferably, the robot control device (100) can use a bias acceleration calculation formula from which terms related to Coriolis/centrifugal force and gravity are removed. The robot control device (100) generates a control signal for performing workspace control based on the bias acceleration.

로봇(200)은 복수의 관절을 가지는 로봇으로써, 로봇 제어 장치(100)를 구비한다. 로봇(200)은 로봇 제어 장치(100) 및 사용자 단말(300)과 통신을 수행한다. The robot (200) is a robot having multiple joints and is equipped with a robot control device (100). The robot (200) communicates with the robot control device (100) and a user terminal (300).

로봇(200)은 사용자로부터 작업공간제어와 관련된 사용자 입력을 직접 입력받고, 해당 사용자 입력을 로봇 제어 장치(100)로 전송할 수 있다. 여기서 사용자 입력은 작업공간제어를 수행하기 위한 다양한 수치(설정값 등)가 포함될 수 있다. 로봇(200)은 로봇 제어 장치(100)로부터 작업공간제어와 관련된 제어신호를 수신한다. 로봇 제어 장치(100)는 수신된 제어신호에 따라 동작을 수행하여 적어도 하나의 작업(task)을 수행한다. 바람직하게는 로봇(200)은 실시간으로 제어신호를 수신하고, 수신된 제어신호에 따라 동작을 수행할 수 있다. The robot (200) can directly receive user input related to workspace control from a user and transmit the user input to the robot control device (100). Here, the user input can include various numerical values (setting values, etc.) for performing workspace control. The robot (200) receives a control signal related to workspace control from the robot control device (100). The robot control device (100) performs an operation according to the received control signal to perform at least one task. Preferably, the robot (200) can receive the control signal in real time and perform an operation according to the received control signal.

또한 로봇(200)은 모니터링 정보를 사용자 단말(300)로 전송할 수 있다. 로봇(200)은 작업공간제어와 관련된 동작에 대한 모니터링 정보를 생성하고, 생성된 모니터링 정보를 사용자 단말(300)로 전송할 수 있다. 모니터링 정보는 로봇(200)의 위치정보, 방향정보, 토크정보, 작업정보, 전원정보 등을 포함할 수 있다.In addition, the robot (200) can transmit monitoring information to the user terminal (300). The robot (200) can generate monitoring information on operations related to workspace control and transmit the generated monitoring information to the user terminal (300). The monitoring information can include position information, direction information, torque information, work information, power information, etc. of the robot (200).

사용자 단말(300)은 사용자(관리자)가 사용하는 단말로써, 로봇(200)의 작업공간제어와 관련된 사용자 입력을 로봇 제어 장치(100) 또는 로봇(200)으로 전송할 수 있다. 즉 사용자 단말(300)은 사용자로부터 사용자 입력을 입력받고, 입력된 사용자 입력을 전송할 수 있다. 또한 사용자 단말(300)은 로봇(200)으로부터 작업공간제어와 관련된 동작에 대한 모니터링 정보를 수신하고, 수신된 모니터링 정보를 출력할 수 있다. 이를 통해 사용자 단말(300)은 사용자가 로봇(200)에 대한 동작을 직관적으로 인지하여 원활한 로봇 운영을 하도록 지원할 수 있다.The user terminal (300) is a terminal used by a user (manager) and can transmit user input related to workspace control of the robot (200) to the robot control device (100) or the robot (200). That is, the user terminal (300) can receive user input from a user and transmit the input user input. In addition, the user terminal (300) can receive monitoring information on operations related to workspace control from the robot (200) and output the received monitoring information. Through this, the user terminal (300) can support smooth robot operation by allowing the user to intuitively recognize operations for the robot (200).

한편 로봇 제어 시스템(400)은 로봇 제어 장치(100), 로봇(200) 및 사용자 단말(300) 사이에 통신망(450)을 구축하여 서로 간에 통신이 이루어지도록 지원한다. 통신망(450)은 백본망과 가입자망으로 구성될 수 있다. 백본망은 X.25 망, Frame Relay 망, ATM망, MPLS(Multi-Protocol Label Switching) 망 및 GMPLS(Generalized Multi-Protocol Label Switching) 망 등 중에 하나 또는 복수의 통합된 망으로 구성될 수 있다. 가입자망은 FTTH(Fiber To The Home), ADSL(Asymmetric Digital Subscriber Line), 케이블망, 지그비(zigbee), 블루투스(bluetooth), Wireless LAN(IEEE 802.11b, IEEE 802.11a, IEEE 802.11g, IEEE 802.11n), Wireless Hart(ISO/IEC62591-1), ISA100.11a(ISO/IEC 62734), CoAP(Constrained Application Protocol), MQTT(Message Queuing Telemetry Transport), WIBro(Wireless Broadband), Wimax, 3G, HSDPA(High Speed Downlink Packet Access), 4G, 5G 및 6G 등일 수 있다. 일부 실시예로, 통신망(150)은 인터넷망일 수 있고, 이동 통신망일 수 있다. 또한 통신망(150)은 기타 널리 공지되었거나 향후 개발될 모든 무선통신 또는 유선통신 방식을 포함할 수 있다.Meanwhile, the robot control system (400) constructs a communication network (450) between the robot control device (100), the robot (200), and the user terminal (300) to support communication between them. The communication network (450) may be composed of a backbone network and a subscriber network. The backbone network may be composed of one or more integrated networks among an X.25 network, a Frame Relay network, an ATM network, an MPLS (Multi-Protocol Label Switching) network, and a GMPLS (Generalized Multi-Protocol Label Switching) network. The subscriber network may be FTTH (Fiber To The Home), ADSL (Asymmetric Digital Subscriber Line), cable network, zigbee, bluetooth, Wireless LAN (IEEE 802.11b, IEEE 802.11a, IEEE 802.11g, IEEE 802.11n), Wireless Hart (ISO/IEC62591-1), ISA100.11a (ISO/IEC 62734), CoAP (Constrained Application Protocol), MQTT (Message Queuing Telemetry Transport), WIBro (Wireless Broadband), Wimax, 3G, HSDPA (High Speed Downlink Packet Access), 4G, 5G, and 6G. In some embodiments, the communication network (150) may be the Internet or a mobile communication network. In addition, the communication network (150) may include any other widely known or future-developed wireless or wired communication method.

도 2는 본 발명의 실시예에 따른 로봇 제어 장치를 설명하기 위한 블록도이다.FIG. 2 is a block diagram for explaining a robot control device according to an embodiment of the present invention.

도 1 및 도 2를 참조하면, 로봇 제어 장치(100)는 통신부(10) 및 제어부(30)를 포함하고, 저장부(50)를 더 포함할 수 있다.Referring to FIGS. 1 and 2, the robot control device (100) includes a communication unit (10) and a control unit (30), and may further include a storage unit (50).

통신부(10)는 로봇(200) 및 사용자 단말(300)과의 통신을 수행한다. 통신부(10)는 로봇(200)으로부터 로봇의 작업공간제어와 관련된 사용자 입력을 수신하고, 작업공간제어와 관련된 제어신호를 로봇(200)으로 전송할 수 있다. 통신부(10)는 사용자 단말(300)로부터 로봇의 작업공간제어와 관련된 사용자 입력을 수신할 수 있다.The communication unit (10) performs communication with the robot (200) and the user terminal (300). The communication unit (10) can receive user input related to the workspace control of the robot from the robot (200) and transmit a control signal related to the workspace control to the robot (200). The communication unit (10) can receive user input related to the workspace control of the robot from the user terminal (300).

제어부(30)는 로봇 제어 장치(100)의 전반적인 제어를 수행한다. 제어부(30)는 수신된 사용자 입력을 기반으로 작업공간제어를 위한 연산을 수행한다. 이때 제어부(30)는 수식 내부에서 상쇄되는 불필요한 항들이 제거된 바이어스 가속도 연산식을 이용하여 바이어스 가속도를 산출한다. 여기서 불필요한 항들은 코리올리/원심력 및 중력과 관련된 항들일 수 있다. The control unit (30) performs overall control of the robot control device (100). The control unit (30) performs calculations for workspace control based on received user input. At this time, the control unit (30) calculates the bias acceleration using a bias acceleration calculation formula from which unnecessary terms that are canceled out within the formula are removed. Here, the unnecessary terms may be terms related to Coriolis/centrifugal force and gravity.

제어부(30)는 코리올리/원심력 및 중력과 관련된 항들이 제거된 바이어스 가속도 연산식을 하기와 같이 도출할 수 있다.The control unit (30) can derive a bias acceleration calculation formula from which terms related to Coriolis/centrifugal force and gravity are removed, as follows.

관절 좌표계에서 로봇 동역학은 [수학식 1]과 같이 표현될 수 있다. In the joint coordinate system, robot dynamics can be expressed as [Mathematical Equation 1].

여기서 는 각각 관절 각도, 관절 각도의 1차 도함수인 관절 속도, 관절 각도의 2차 도함수인 관절 가속도를 의미하고, 은 관성 행렬(inertia matrix)을 의미하며, 는 코리올리/원심력(Coriolis/centrifugal force)를 의미하고, 는 중력을 의미하며, 는 관절 토크를 의미한다. Here represent the joint angle, the joint velocity which is the first derivative of the joint angle, and the joint acceleration which is the second derivative of the joint angle, respectively. stands for inertia matrix, stands for Coriolis/centrifugal force, means gravity, stands for joint torque.

우선순위(priority)가 기 설정된 k개의 작업을 로봇(200)이 수행한다고 가정할 때, 제어부(30)는 i>j인 경우, i번째 작업의 우선순위가 j번째 작업보다 낮다고 정의한다. 여기서 i번째 작업에 대한 작업 좌표 벡터(task coordinate vector) 및 자코비안 행렬(Jacobian matrix)은 각각 , 로 표기되고, mi는 i번째 작업에 요구되는 자유도(Degrees of Freedom, DOF)를 의미한다. 제어부(30)는 i번째 작업에 대해 목표 가속도(reference acceleration)()가 주어진 경우, [수학식 2]와 같이 i번째 작업에 대한 가속도()가 목표 가속도 벡터와 동일하게 되는 것을 작업공간제어에서의 제어 목적으로 설정한다. When it is assumed that a robot (200) performs k tasks with preset priorities, the control unit (30) defines that if i>j, the priority of the i-th task is lower than that of the j-th task. Here, the task coordinate vector and the Jacobian matrix for the i-th task are respectively , is denoted as , and m i represents the degrees of freedom (DOF) required for the i-th task. The control unit (30) determines the target acceleration (reference acceleration) for the i-th task. ) is given, the acceleration ( for the i-th task as in [Mathematical Formula 2] ) is set to be the same as the target acceleration vector as the control objective in workspace control.

이때 제어부(30)는 자코비안 행렬()을 i번째 작업보다 우선순위가 높은 모든 작업들의 널 공간(null space)에 투영(projection)한 우선순위 자코비안 행렬(prioritized Jacobian)()을 [수학식 3]과 같이 정의한다.At this time, the control unit (30) determines the Jacobian matrix ( ) is the prioritized Jacobian matrix projected onto the null space of all tasks with priorities higher than the i-th task. ) is defined as in [Mathematical Formula 3].

여기서 Ni는 널 공간 프로젝터(null space projector)으로써, [수학식 4]와 같이 정의한다.Here, N i is the null space projector, which is defined as in [Mathematical Formula 4].

여기서 I는 단위 행렬을 의미하고, 는 우선순위 자코비안 행렬의 역수를 의미하며 [수학식 5]와 같이 표현될 수 있다. Here, I stands for the identity matrix, means the inverse of the priority Jacobian matrix and can be expressed as in [Mathematical Formula 5].

여기서 은 관성 행렬의 역행렬을 의미하고, 은 우선순위 자코비안 행렬의 전치행렬을 의미하며, 은 j번째 작업에 대한 고유치 행렬을 의미한다. 고유치 행렬은 [수학식 6]과 같이 표현될 수 있다.Here means the inverse matrix of the inertia matrix, stands for the transpose of the priority Jacobian matrix, denotes the eigenvalue matrix for the jth task. The eigenvalue matrix can be expressed as in [Mathematical Formula 6].

제어부(30)는 우선순위 자코비안 행렬()을 통해 이전 (i-1)개 작업들의 모션에 영향을 주지 않는 속도()를 [수학식 7]과 같이 정의한다.The control unit (30) is a priority Jacobian matrix ( ) at a speed that does not affect the motion of the previous (i-1) tasks. ) is defined as in [Mathematical Formula 7].

제어부(30)는 작업공간제어를 위해 각 작업 공간에 대한 동역학 식을 활용할 수 있다. 즉 제어부(30)는 [수학식 1]의 양변에 우선순위 자코비안 행렬의 전치행렬 역수()를 곱하여 [수학식 8]을 도출할 수 있다.The control unit (30) can utilize the dynamic equation for each workspace for workspace control. That is, the control unit (30) can use the inverse of the transpose of the priority Jacobian matrix on both sides of [Mathematical Formula 1] ( ) can be multiplied to derive [Mathematical Formula 8].

여기서 는 i번째 작업에 대한 작업공간 힘(operational space force)를 의미하고, 는 작업 공간에서의 코리올리/원심력을 의미하며, 는 작업 공간에서의 중력을 의미한다. 작업 공간에서의 코리올리/원심력 및 중력은 각각 [수학식 9] 및 [수학식 10]과 같이 표현될 수 있다.Here denotes the operational space force for the i-th task, stands for Coriolis/centrifugal force in the working space, refers to the gravity in the work space. The Coriolis/centrifugal force and gravity in the work space can be expressed as [Mathematical Formula 9] and [Mathematical Formula 10], respectively.

여기서 제어부(30)는 가속도()에 대한 목표 가속도를 와 같이 표현할 때, [수학식 8]로부터 를 만족시키기 위한 제어 힘(control force)()를 [수학식 11]과 같이 도출할 수 있다.Here, the control unit (30) accelerates ( ) for target acceleration When expressed as , from [Mathematical Formula 8] Control force to satisfy ( ) can be derived as in [Mathematical Formula 11].

또한 제어부(30)는 작업공간 힘과 관절공간 토크 사이에 성립하는 관계를 통해 [수학식 11]로부터 도출된 제어 힘()를 관절공간 토크()로 [수학식 12]와 같이 변환할 수 있다.In addition, the control unit (30) derives the control force (from [Mathematical Formula 11]) through the relationship established between the workspace force and the joint space torque. ) is the joint space torque ( ) can be converted as in [Mathematical Formula 12].

여기서 [수학식 11]을 [수학식 12]에 대입하면 관절공간 토크()는 [수학식 13]과 같이 표현된다.Here, by substituting [Equation 11] into [Equation 12], the joint space torque ( ) is expressed as [Mathematical Formula 13].

제어부(30)는 최종적으로 전체 k개의 작업을 만족시키기 위해 [수학식 14]와 같이 각각의 관절공간 토크인 (i=1, 2, …, k)들을 단순 합산하여 제어 토크()를 얻는다.The control unit (30) finally satisfies the total k tasks by calculating the joint space torque as in [Mathematical Formula 14]. (i=1, 2, …, k) is simply added to obtain the control torque ( ) to get.

여기서 [수학식 11]에서 산출된 제어 힘()을 [수학식 8]에 대입하여 이 달성되는 것을 확인할 수 있다. 하지만 최종 제어 목적은 이 아닌 이므로, 제어부(30)는 를 통해 이 실현되도록 작업공간제어에서의 바이어스 가속도()를 [수학식 15]로 산출한다. Here, the control force (produced in [Equation 11]) ) into [Mathematical Formula 8] You can see that this is being achieved. But the ultimate control goal is Not this Therefore, the control unit (30) Through Bias acceleration in workspace control to make this happen ( ) is calculated using [Mathematical Formula 15].

여기서 i번째 고유치, 코리올리/원심력 및 중력은 각각 [수학식 16], [수학식 17], [수학식 18]로 산출될 수 있다.Here, the i-th eigenvalue, Coriolis/centrifugal force, and gravity can be calculated by [Mathematical Equation 16], [Mathematical Equation 17], and [Mathematical Equation 18], respectively.

이때 제어부(30)는 [수학식 19]와 같이 로부터 만큼 편향(bias)된 값을 으로 적용하도록 설정한다. At this time, the control unit (30) is as in [Mathematical Formula 19]. From A value that is biased as much as Set to apply as .

한편 제어부(30)는 [수학식 15]의 수식 내부에서 상쇄되는 항들을 파악하고, 파악된 불필요한 항들을 추가적으로 제거하여 연산을 최적화할 수 있다.Meanwhile, the control unit (30) can identify terms that are offset within the equation of [Mathematical Formula 15] and additionally remove the identified unnecessary terms to optimize the operation.

상세하게는 제어부(30)는 [수학식 9], [수학식 10], [수학식 17], [수학식 18]로부터 [수학식 15]에 기재된 코리올리/원심력 및 중력 항들을 [수학식 20] 및 [수학식 21]과 같이 표현할 수 있다.Specifically, the control unit (30) can express the Coriolis/centrifugal force and gravity terms described in [Mathematical Formula 15] from [Mathematical Formula 9], [Mathematical Formula 10], [Mathematical Formula 17], and [Mathematical Formula 18] as [Mathematical Formula 20] and [Mathematical Formula 21].

또한 제어부(30)는 [수학식 20] 및 [수학식 21]을 [수학식 15]에 대입하여 [수학식 22]와 같이 정리할 수 있다.In addition, the control unit (30) can substitute [Mathematical Expression 20] and [Mathematical Expression 21] into [Mathematical Expression 15] to organize it as in [Mathematical Expression 22].

제어부(30)는 [수학식 3], [수학식 4]로부터 를 [수학식 23]과 같이 나타낼 수 있고, [수학식 23]를 [수학식 22]의 우변에 있는 에 대입하여 [수학식 24]와 같이 정리할 수 있다.The control unit (30) is derived from [Mathematical Formula 3] and [Mathematical Formula 4]. can be expressed as [Mathematical Formula 23], and [Mathematical Formula 23] can be expressed as the right side of [Mathematical Formula 22]. By substituting it into [Equation 24], it can be organized as follows.

또한 제어부(30)는 [수학식 5]를 [수학식 24]에 대입하여 [수학식 25]와 같이 정리를 하고, 다시 [수학식 25]를 [수학식 26]과 같이 표현할 수 있다.In addition, the control unit (30) can substitute [Mathematical Expression 5] into [Mathematical Expression 24] to organize it as [Mathematical Expression 25], and then express [Mathematical Expression 25] as [Mathematical Expression 26].

여기서 제어부(30)는 [수학식 9] 및 [수학식 10]을 [수학식 13]에 대입하여 관절공간 토크()를 [수학식 27]과 같이 정리하고, [수학식 27]을 [수학식 26]에 대입하여 [수학식 28]과 같이 정리할 수 있다.Here, the control unit (30) substitutes [Mathematical Equation 9] and [Mathematical Equation 10] into [Mathematical Equation 13] to obtain the joint space torque ( ) can be rearranged as in [Mathematical Expression 27], and by substituting [Mathematical Expression 27] into [Mathematical Expression 26], it can be rearranged as in [Mathematical Expression 28].

마지막으로 제어부(30)는 [수학식 5]를 이용하여 [수학식 28]을 정리함으로써, 코리올리/원심력 및 중력을 포함하지 않는 가속도 수준의 바이어스 가속도 연산식을 [수학식 29]와 같이 얻을 수 있다.Finally, the control unit (30) can obtain a bias acceleration calculation equation for an acceleration level that does not include Coriolis/centrifugal force and gravity as in [Mathematical Equation 29] by organizing [Mathematical Equation 28] using [Mathematical Equation 5].

제어부(30)는 [수학식 29]를 이용하여 산출된 바이어스 가속도를 이용하여 작업공간제어를 수행하기 위한 제어신호를 생성한다. 이때 제어부(30)는 바이어스 가속도를 빠르게 산출함으로써, 실시간으로 작업공간제어를 수행하기 위한 제어신호를 생성할 수 있다. 제어부(30)는 생성된 제어신호를 로봇(200)으로 전송시켜 로봇(200)이 작업공간제어를 수행하도록 지원한다.The control unit (30) generates a control signal for performing workspace control using the bias acceleration calculated using [Mathematical Formula 29]. At this time, the control unit (30) can generate a control signal for performing workspace control in real time by quickly calculating the bias acceleration. The control unit (30) transmits the generated control signal to the robot (200) to support the robot (200) to perform workspace control.

저장부(50)는 로봇 제어 장치(100)를 구동하기 위한 프로그램 또는 알고리즘이 저장된다. 저장부(50)는 작업공간제어와 관련된 사용자 입력이 저장된다. 저장부(50)는 코리올리/원심력 및 중력과 관련된 항들이 제거된 바이어스 가속도 연산식이 저장되고, 저장된 바이어스 가속도 연산식으로부터 산출된 바이어스 가속도가 저장된다. 저장부(50)는 작업공간제어와 관련된 제어신호가 저장된다. 저장부(50)는 플래시 메모리 타입(flash memory type), 하드디스크 타입(hard disk type), 미디어 카드 마이크로 타입(multimedia card micro type), 카드 타입의 메모리(예를 들어 SD 또는 XD 메모리 등), 램(Random Access Memory, RAM), SRAM(Static Random Access Memory), 롬(Read-Only Memory, ROM), EEPROM(Electrically Erasable Programmable Read-Only Memory), PROM(Programmable Read-Only Memory), 자기메모리, 자기 디스크 및 광디스크 중 적어도 하나의 저장매체를 포함할 수 있다. The storage unit (50) stores a program or algorithm for driving the robot control device (100). The storage unit (50) stores user input related to workspace control. The storage unit (50) stores a bias acceleration calculation formula from which terms related to Coriolis/centrifugal force and gravity are removed, and stores a bias acceleration calculated from the stored bias acceleration calculation formula. The storage unit (50) stores a control signal related to workspace control. The storage unit (50) may include at least one storage medium among a flash memory type, a hard disk type, a multimedia card micro type, a card type memory (for example, an SD or XD memory, etc.), a random access memory (RAM), a static random access memory (SRAM), a read-only memory (ROM), an electrically erasable programmable read-only memory (EEPROM), a programmable read-only memory (PROM), a magnetic memory, a magnetic disk, and an optical disk.

도 3은 본 발명의 실시예에 따른 로봇 제어 방법을 설명하기 위한 순서도이다.Figure 3 is a flowchart for explaining a robot control method according to an embodiment of the present invention.

도 1 및 도 3을 참조하면, 로봇 제어 방법은 종래의 바이어스 가속도 연산에 포함된 코리올리/원심력 및 중력과 관련된 항들을 바이어스 가속도 수식 내부에서 상쇄시킴으로써, 코리올리/원심력 및 중력을 고려하지 않고 바이어스 가속도 연산을 수행하여 종래 대비 연산 시간을 현저히 감소시킬 수 있다. 이를 통해 로봇 제어 방법은 로봇(200)의 실시간 작업공간제어를 가능하게 할 수 있다.Referring to FIGS. 1 and 3, the robot control method can significantly reduce the calculation time compared to the conventional method by performing the bias acceleration calculation without considering the Coriolis/centrifugal force and gravity by offsetting the terms related to the Coriolis/centrifugal force and gravity included in the conventional bias acceleration calculation within the bias acceleration formula. Through this, the robot control method can enable real-time workspace control of the robot (200).

S110 단계에서, 로봇 제어 장치(100)는 작업공간제어와 관련된 사용자 입력을 수신한다. 로봇 제어 장치(100)는 로봇(200)으로부터 로봇의 작업공간제어와 관련된 사용자 입력을 수신할 수 있다. 또한 로봇 제어 장치(100)는 사용자 단말(300)로부터 로봇의 작업공간제어와 관련된 사용자 입력을 수신할 수 있다.In step S110, the robot control device (100) receives user input related to workspace control. The robot control device (100) can receive user input related to workspace control of the robot from the robot (200). In addition, the robot control device (100) can receive user input related to workspace control of the robot from the user terminal (300).

S120 단계에서, 로봇 제어 장치(100)는 바이어스 가속도를 산출한다. 로봇 제어 장치(100)는 사용자 입력을 코리올리/원심력 및 중력과 관련된 항들이 제거된 바이어스 가속도 연산식에 적용하여 바이어스 가속도를 산출한다. 여기서 바이어스 가속도 연산식은 상술된 [수학식 29]일 수 있다.At step S120, the robot control device (100) calculates the bias acceleration. The robot control device (100) calculates the bias acceleration by applying the user input to the bias acceleration calculation formula from which terms related to Coriolis/centrifugal force and gravity are removed. Here, the bias acceleration calculation formula may be the above-described [Mathematical Formula 29].

S130 단계에서, 로봇 제어 장치(100)는 작업공간제어의 수행을 지원한다. 로봇 제어 장치(100)는 산출된 바이어스 가속도를 기반으로 작업공간제어와 관련된 제어신호를 생성한다. 로봇 제어 장치(100)는 생성된 제어신호를 로봇(200)으로 전송하여 로봇(200)이 작업공간제어를 수행하도록 도와준다.In step S130, the robot control device (100) supports the performance of workspace control. The robot control device (100) generates a control signal related to workspace control based on the calculated bias acceleration. The robot control device (100) transmits the generated control signal to the robot (200) to help the robot (200) perform workspace control.

도 4는 종래의 바이어스 가속도 연산과 본 발명의 실시예에 따른 바이어스 가속도 연산을 양팔 형상의 로봇에 적용하여 시뮬레이션한 결과를 설명하기 위한 도면이다.FIG. 4 is a drawing for explaining the simulation result of applying the conventional bias acceleration calculation and the bias acceleration calculation according to the embodiment of the present invention to a two-arm robot.

도 1 및 도 4를 참조하면, 17자유도(DOF) 양팔 형상의 가상 로봇 모델(200)을 실시간 리눅스 기반의 OS에서 구동되는 컴퓨터에 적용한 후, 종래의 바이어스 가속도 연산 방법과 본 발명의 바이어스 가속도 연산 방법에 소요되는 연산 시간을 각각 측정하는 검증 실험을 수행하였다. Referring to FIGS. 1 and 4, a 17-degree-of-freedom (DOF) dual-arm virtual robot model (200) was applied to a computer running on a real-time Linux-based OS, and then a verification experiment was performed to measure the computational time required for a conventional bias acceleration computation method and a bias acceleration computation method of the present invention, respectively.

여기서 가상 로봇 모델(200)은 5자유도를 가지는 몸통(210), 6자유도를 가지는 왼팔(220) 및 6자유도를 가지는 오른팔(230)를 포함한다. 또한 검증에 사용된 컴퓨터는 1.6GHz 사양의 CPU(central processing unit)를 탑재하였으며 실시간 제어 주기는 1ms로 설정하였다. 검증 시나리오는 몸통 형상 조작 작업, 왼팔 말단 조작 작업 및 오른팔 말단 조작 작업으로 구성된 3개의 작업을 포함하였다.Here, the virtual robot model (200) includes a torso (210) with 5 degrees of freedom, a left arm (220) with 6 degrees of freedom, and a right arm (230) with 6 degrees of freedom. In addition, the computer used for verification is equipped with a 1.6 GHz CPU (central processing unit), and the real-time control cycle is set to 1 ms. The verification scenario included three tasks consisting of a torso shape manipulation task, a left arm terminal manipulation task, and a right arm terminal manipulation task.

종래의 바이어스 가속도 연산 방법을 적용하였을 때, 바이어스 가속도 연산에 평균 0.102ms가 소요되었으나, 본 발명의 바이어스 가속도 연산 방법을 적용하였을 때, 바이어스 가속도 연산에 평균 0.011ms가 소요되었다. When the conventional bias acceleration calculation method was applied, an average of 0.102 ms was required for the bias acceleration calculation, but when the bias acceleration calculation method of the present invention was applied, an average of 0.011 ms was required for the bias acceleration calculation.

즉 본 발명은 종래보다 약 11%에 해당하는 시간만으로 바이어스 가속도를 산출하였다. That is, the present invention calculates the bias acceleration in only about 11% of the time compared to the conventional method.

도 5는 본 발명의 실시예에 따른 컴퓨팅 장치를 설명하기 위한 블록도이다.FIG. 5 is a block diagram illustrating a computing device according to an embodiment of the present invention.

도 5를 참조하면, 컴퓨팅 장치(TN100)는 본 명세서에서 기술된 장치(예를 들면 로봇 제어 장치, 로봇, 사용자 단말 등) 일 수 있다. Referring to FIG. 5, the computing device (TN100) may be a device described in this specification (e.g., a robot control device, a robot, a user terminal, etc.).

컴퓨팅 장치(TN100)는 적어도 하나의 프로세서(TN110), 송수신 장치(TN120), 및 메모리(TN130)를 포함할 수 있다. 또한, 컴퓨팅 장치(TN100)는 저장 장치(TN140), 입력 인터페이스 장치(TN150), 출력 인터페이스 장치(TN160) 등을 더 포함할 수 있다. 컴퓨팅 장치(TN100)에 포함된 구성 요소들은 버스(bus)(TN170)에 의해 연결되어 서로 통신을 수행할 수 있다.The computing device (TN100) may include at least one processor (TN110), a transceiver (TN120), and a memory (TN130). In addition, the computing device (TN100) may further include a storage device (TN140), an input interface device (TN150), an output interface device (TN160), etc. The components included in the computing device (TN100) may be connected by a bus (TN170) to communicate with each other.

프로세서(TN110)는 메모리(TN130) 및 저장 장치(TN140) 중에서 적어도 하나에 저장된 프로그램 명령(program command)을 실행할 수 있다. 프로세서(TN110)는 중앙 처리 장치(CPU: central processing unit), 그래픽 처리 장치(GPU: graphics processing unit), 또는 본 발명의 실시예에 따른 방법들이 수행되는 전용의 프로세서를 의미할 수 있다. 프로세서(TN110)는 본 발명의 실시예와 관련하여 기술된 절차, 기능, 및 방법 등을 구현하도록 구성될 수 있다. 프로세서(TN110)는 컴퓨팅 장치(TN100)의 각 구성 요소를 제어할 수 있다.The processor (TN110) can execute a program command stored in at least one of the memory (TN130) and the storage device (TN140). The processor (TN110) may mean a central processing unit (CPU), a graphics processing unit (GPU), or a dedicated processor on which methods according to embodiments of the present invention are performed. The processor (TN110) may be configured to implement procedures, functions, methods, etc. described in relation to embodiments of the present invention. The processor (TN110) may control each component of the computing device (TN100).

메모리(TN130) 및 저장 장치(TN140) 각각은 프로세서(TN110)의 동작과 관련된 다양한 정보를 저장할 수 있다. 메모리(TN130) 및 저장 장치(TN140) 각각은 휘발성 저장 매체 및 비휘발성 저장 매체 중에서 적어도 하나로 구성될 수 있다. 예를 들어, 메모리(TN130)는 읽기 전용 메모리(ROM: read only memory) 및 랜덤 액세스 메모리(RAM: random access memory) 중에서 적어도 하나로 구성될 수 있다. Each of the memory (TN130) and the storage device (TN140) can store various information related to the operation of the processor (TN110). Each of the memory (TN130) and the storage device (TN140) can be configured with at least one of a volatile storage medium and a nonvolatile storage medium. For example, the memory (TN130) can be configured with at least one of a read-only memory (ROM) and a random access memory (RAM).

송수신 장치(TN120)는 유선 신호 또는 무선 신호를 송신 또는 수신할 수 있다. 송수신 장치(TN120)는 네트워크에 연결되어 통신을 수행할 수 있다. The transceiver (TN120) can transmit or receive wired or wireless signals. The transceiver (TN120) can be connected to a network and perform communications.

한편, 본 발명의 실시예는 지금까지 설명한 장치 및/또는 방법을 통해서만 구현되는 것은 아니며, 본 발명의 실시예의 구성에 대응하는 기능을 실현하는 프로그램 또는 그 프로그램이 기록된 기록 매체를 통해 구현될 수도 있으며, 이러한 구현은 상술한 실시예의 기재로부터 본 발명이 속하는 기술 분야의 통상의 기술자라면 쉽게 구현할 수 있는 것이다. Meanwhile, the embodiments of the present invention are not implemented only through the devices and/or methods described so far, but may also be implemented through a program that realizes a function corresponding to the configuration of the embodiments of the present invention or a recording medium on which the program is recorded, and such implementation can be easily implemented by a person skilled in the art in the technical field to which the present invention belongs from the description of the embodiments described above.

이상에서 본 발명의 실시예에 대하여 상세하게 설명하였지만 본 발명의 권리범위는 이에 한정되는 것은 아니고 다음의 청구범위에서 정의하고 있는 본 발명의 기본 개념을 이용한 통상의 기술자의 여러 변형 및 개량 형태 또한 본 발명의 권리범위에 속하는 것이다.Although the embodiments of the present invention have been described in detail above, the scope of the present invention is not limited thereto, and various modifications and improvements made by those skilled in the art using the basic concept of the present invention defined in the following claims also fall within the scope of the present invention.

100: 로봇 제어 장치
200: 로봇
300: 사용자 단말
400: 로봇 제어 시스템
450: 통신망
100: Robot control device
200: Robot
300: User Terminal
400: Robot Control System
450: Communications Network

Claims (5)

로봇의 작업공간제어와 관련된 사용자 입력을 수신하는 통신부; 및
상기 수신된 사용자 입력을 수식 내부에서 상쇄되는 불필요한 항들이 제거된 바이어스 가속도 연산식에 적용하여 바이어스 가속도를 산출하고, 상기 산출된 바이어스 가속도를 이용하여 상기 작업공간제어의 수행을 지원하는 제어부;를 포함하되,
상기 제어부는,
코리올리/원심력 및 중력과 관련된 항들이 제거된 바이어스 가속도 연산식인 하기 수학식을 이용하여 상기 바이어스 가속도를 산출하는 것을 특징으로 하는 로봇 제어 장치.
[수학식]

(는 바이어스 가속도를 의미하고, 는 자코비안 행렬을 의미하며, 는 j번째 작업보다 우선순위가 높은 모든 작업들의 널 공간에 투영한 우선순위 자코비안의 역수를 의미하고, 는 j번째 작업보다 우선순위가 높은 모든 작업들의 널 공간에 투영한 우선순위 목표 가속도를 의미하고, 는 j번째 작업보다 우선순위가 높은 모든 작업들의 널 공간에 투영한 우선순위 자코비안의 1차 도함수를 의미하며, 는 관절 속도를 의미함)
A communication unit for receiving user input related to control of the robot's workspace; and
A control unit for calculating a bias acceleration by applying the received user input to a bias acceleration calculation formula from which unnecessary terms that are canceled out within the formula are removed, and supporting the execution of the workspace control using the calculated bias acceleration; including,
The above control unit,
A robot control device characterized in that the bias acceleration is calculated using the following mathematical formula, which is a bias acceleration calculation formula from which terms related to Coriolis/centrifugal force and gravity are removed.
[Mathematical formula]

( stands for bias acceleration, stands for Jacobian matrix, is the inverse of the priority Jacobian projected onto the null space of all tasks with priorities higher than the jth task, is the priority target acceleration projected onto the null space of all tasks with a priority higher than the jth task, denotes the first derivative of the priority Jacobian projected onto the null space of all tasks with priorities higher than the jth task, ) stands for joint velocity
삭제delete 삭제delete 로봇 제어 장치가 로봇의 작업공간제어와 관련된 사용자 입력을 수신하는 단계;
상기 로봇 제어 장치가 상기 수신된 사용자 입력을 수식 내부에서 상쇄되는 불필요한 항들이 제거된 바이어스 가속도 연산식에 적용하여 바이어스 가속도를 산출하는 단계; 및
상기 로봇 제어 장치가 상기 산출된 바이어스 가속도를 이용하여 상기 작업공간제어의 수행을 지원하는 단계;를 포함하되,
상기 산출하는 단계는,
코리올리/원심력 및 중력과 관련된 항들이 제거된 바이어스 가속도 연산식인 하기 수학식을 이용하여 상기 바이어스 가속도를 산출하는 것을 특징으로 하는 로봇 제어 방법.
[수학식]

(는 바이어스 가속도를 의미하고, 는 자코비안 행렬을 의미하며, 는 j번째 작업보다 우선순위가 높은 모든 작업들의 널 공간에 투영한 우선순위 자코비안의 역수를 의미하고, 는 j번째 작업보다 우선순위가 높은 모든 작업들의 널 공간에 투영한 우선순위 목표 가속도를 의미하고, 는 j번째 작업보다 우선순위가 높은 모든 작업들의 널 공간에 투영한 우선순위 자코비안의 1차 도함수를 의미하며, 는 관절 속도를 의미함)
A step for a robot control device to receive user input related to control of a workspace of a robot;
The step of the robot control device calculating the bias acceleration by applying the received user input to a bias acceleration calculation formula from which unnecessary terms that are offset within the formula are removed; and
A step for supporting the execution of the workspace control by using the calculated bias acceleration by the robot control device; including,
The above calculating steps are:
A robot control method characterized in that the bias acceleration is calculated using the following mathematical formula, which is a bias acceleration calculation formula from which terms related to Coriolis/centrifugal force and gravity are removed.
[Mathematical formula]

( stands for bias acceleration, stands for Jacobian matrix, is the inverse of the priority Jacobian projected onto the null space of all tasks with priorities higher than the jth task, is the priority target acceleration projected onto the null space of all tasks with a priority higher than the jth task, denotes the first derivative of the priority Jacobian projected onto the null space of all tasks with priorities higher than the jth task, ) stands for joint velocity
복수의 관절로 이루어지고, 작업공간제어에 따라 동작하는 로봇; 및
상기 로봇에 구비되고, 상기 로봇의 작업공간제어를 지원하는 로봇 제어 장치;를 포함하되,
상기 로봇 제어 장치는,
상기 작업공간제어와 관련된 사용자 입력을 수신하는 통신부; 및
상기 수신된 사용자 입력을 수식 내부에서 상쇄되는 불필요한 항들이 제거된 바이어스 가속도 연산식에 적용하여 바이어스 가속도를 산출하고, 상기 산출된 바이어스 가속도를 이용하여 상기 작업공간제어의 수행을 지원하는 제어부;를 포함하고,
상기 제어부는,
코리올리/원심력 및 중력과 관련된 항들이 제거된 바이어스 가속도 연산식인 하기 수학식을 이용하여 상기 바이어스 가속도를 산출하는 것을 특징으로 하는 로봇 제어 시스템.
[수학식]

(는 바이어스 가속도를 의미하고, 는 자코비안 행렬을 의미하며, 는 j번째 작업보다 우선순위가 높은 모든 작업들의 널 공간에 투영한 우선순위 자코비안의 역수를 의미하고, 는 j번째 작업보다 우선순위가 높은 모든 작업들의 널 공간에 투영한 우선순위 목표 가속도를 의미하고, 는 j번째 작업보다 우선순위가 높은 모든 작업들의 널 공간에 투영한 우선순위 자코비안의 1차 도함수를 의미하며, 는 관절 속도를 의미함)
A robot consisting of multiple joints and operating according to workspace control; and
A robot control device provided in the above robot and supporting workspace control of the robot; including:
The above robot control device,
A communication unit for receiving user input related to the above workspace control; and
A control unit for calculating a bias acceleration by applying the received user input to a bias acceleration calculation formula from which unnecessary terms that are canceled out within the formula are removed, and supporting the execution of the workspace control using the calculated bias acceleration;
The above control unit,
A robot control system characterized in that the bias acceleration is calculated using the following mathematical formula, which is a bias acceleration calculation formula from which terms related to Coriolis/centrifugal force and gravity are removed.
[Mathematical formula]

( stands for bias acceleration, stands for Jacobian matrix, is the inverse of the priority Jacobian projected onto the null space of all tasks with priorities higher than the jth task, is the priority target acceleration projected onto the null space of all tasks with a priority higher than the jth task, denotes the first derivative of the priority Jacobian projected onto the null space of all tasks with priorities higher than the jth task, ) stands for joint velocity
KR1020230012353A 2023-01-31 2023-01-31 Calculation device and method for performing bias acceleration calculation for Operational Space Formulation(OSF) Active KR102819245B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020230012353A KR102819245B1 (en) 2023-01-31 2023-01-31 Calculation device and method for performing bias acceleration calculation for Operational Space Formulation(OSF)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020230012353A KR102819245B1 (en) 2023-01-31 2023-01-31 Calculation device and method for performing bias acceleration calculation for Operational Space Formulation(OSF)

Publications (2)

Publication Number Publication Date
KR20240120033A KR20240120033A (en) 2024-08-07
KR102819245B1 true KR102819245B1 (en) 2025-06-11

Family

ID=92379305

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020230012353A Active KR102819245B1 (en) 2023-01-31 2023-01-31 Calculation device and method for performing bias acceleration calculation for Operational Space Formulation(OSF)

Country Status (1)

Country Link
KR (1) KR102819245B1 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102642245B1 (en) * 2023-11-24 2024-02-29 주식회사 나우로보틱스 Work space force/acceleration disturbance observer and robot including the same

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007108955A (en) * 2005-10-12 2007-04-26 Sony Corp Operation space physical quantity calculation device and operation space physical quantity calculation method
JP4595727B2 (en) * 2005-07-22 2010-12-08 ソニー株式会社 External force estimation system, external force estimation method, and computer program
JP2012081568A (en) * 2010-10-14 2012-04-26 Sony Corp Device and method for controlling robot, and computer program
JP6712037B2 (en) * 2017-01-27 2020-06-17 株式会社FADrone Inertial measurement method, inertial measurement device, and inertial measurement program

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102019121628B3 (en) 2019-08-12 2020-08-20 Franka Emika Gmbh Method for operating a robot manipulator with an increased mass of a load

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4595727B2 (en) * 2005-07-22 2010-12-08 ソニー株式会社 External force estimation system, external force estimation method, and computer program
JP2007108955A (en) * 2005-10-12 2007-04-26 Sony Corp Operation space physical quantity calculation device and operation space physical quantity calculation method
JP2012081568A (en) * 2010-10-14 2012-04-26 Sony Corp Device and method for controlling robot, and computer program
JP6712037B2 (en) * 2017-01-27 2020-06-17 株式会社FADrone Inertial measurement method, inertial measurement device, and inertial measurement program

Also Published As

Publication number Publication date
KR20240120033A (en) 2024-08-07

Similar Documents

Publication Publication Date Title
KR102819245B1 (en) Calculation device and method for performing bias acceleration calculation for Operational Space Formulation(OSF)
US20200177495A1 (en) Route control method and route setting device
JP7251555B2 (en) Robot control system and robot control method
CN112925308B (en) Path planning method, path planning device and computer storage medium
WO2023024279A1 (en) Dynamic obstacle avoidance method and apparatus for robot, and robot
CN106375142A (en) Application program test method and apparatus
US20130104128A1 (en) Apparatus, method of managing a plurality of virtual machines, and recording medium
JPH0934524A (en) Automatic generation method for moving path of robot manipulator
CN119238495A (en) An adaptive obstacle avoidance method for collaborative robotic arms in dynamic scenarios
JP3737560B2 (en) Distributed processing method and system in network
CN114967465A (en) Trajectory planning method, device, electronic device and storage medium
Guo et al. Balancing efficiency and unpredictability in multi-robot patrolling: A marl-based approach
Xu et al. Kinematic performance-based path planning for cable-driven parallel robots using modified adaptive RRT
CN114253604A (en) Method for improving calculation performance of robot based on ROS2 and robot
García et al. Optimal path planning for autonomous mobile robot navigation using ant colony optimization and a fuzzy cost function evaluation
CN116197919B (en) Robot control system and control method
KR20190005100A (en) Robot control method, control server and cloud processing server
Sato et al. Multi-Agent Task Allocation Based on Reciprocal Trust in Distributed Environments
KR20250023813A (en) Apparatus and method for estimating pose of object based on RGB image and depth information
KR20200133705A (en) Interaction System and Interaction Method for Human-Robot Interaction
CN115437372B (en) Robot path planning method, device, electronic equipment and storage medium
CN113915741B (en) Instruction sending method, device and system
KR20230087691A (en) Remote control device and system for remotely controlling robot using various work contents in virtual space
KR20240136591A (en) Device and method for optimizing span of adjustment pipe
JP7431092B2 (en) Control platform and control method

Legal Events

Date Code Title Description
PA0109 Patent application

St.27 status event code: A-0-1-A10-A12-nap-PA0109

PA0201 Request for examination

St.27 status event code: A-1-2-D10-D11-exm-PA0201

R18-X000 Changes to party contact information recorded

St.27 status event code: A-3-3-R10-R18-oth-X000

D13-X000 Search requested

St.27 status event code: A-1-2-D10-D13-srh-X000

PG1501 Laying open of application

St.27 status event code: A-1-1-Q10-Q12-nap-PG1501

R18-X000 Changes to party contact information recorded

St.27 status event code: A-3-3-R10-R18-oth-X000

E902 Notification of reason for refusal
PE0902 Notice of grounds for rejection

St.27 status event code: A-1-2-D10-D21-exm-PE0902

E13-X000 Pre-grant limitation requested

St.27 status event code: A-2-3-E10-E13-lim-X000

P11-X000 Amendment of application requested

St.27 status event code: A-2-2-P10-P11-nap-X000

P13-X000 Application amended

St.27 status event code: A-2-2-P10-P13-nap-X000

E701 Decision to grant or registration of patent right
PE0701 Decision of registration

St.27 status event code: A-1-2-D10-D22-exm-PE0701

PG1601 Publication of registration

St.27 status event code: A-4-4-Q10-Q13-nap-PG1601

R18-X000 Changes to party contact information recorded

St.27 status event code: A-5-5-R10-R18-oth-X000