KR102643316B1 - Detecting device and method for calculating amount of impact of robot manipulator - Google Patents

Detecting device and method for calculating amount of impact of robot manipulator Download PDF

Info

Publication number
KR102643316B1
KR102643316B1 KR1020220050820A KR20220050820A KR102643316B1 KR 102643316 B1 KR102643316 B1 KR 102643316B1 KR 1020220050820 A KR1020220050820 A KR 1020220050820A KR 20220050820 A KR20220050820 A KR 20220050820A KR 102643316 B1 KR102643316 B1 KR 102643316B1
Authority
KR
South Korea
Prior art keywords
robot manipulator
joint
amount
impulse
range
Prior art date
Application number
KR1020220050820A
Other languages
Korean (ko)
Other versions
KR20230151296A (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 KR1020220050820A priority Critical patent/KR102643316B1/en
Publication of KR20230151296A publication Critical patent/KR20230151296A/en
Priority to KR1020240024051A priority patent/KR102645792B1/en
Application granted granted Critical
Publication of KR102643316B1 publication Critical patent/KR102643316B1/en

Links

Images

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J13/00Controls for manipulators
    • B25J13/08Controls for manipulators by means of sensing devices, e.g. viewing or touching devices
    • B25J13/088Controls for manipulators by means of sensing devices, e.g. viewing or touching devices with position, velocity or acceleration sensors
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J17/00Joints
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J19/00Accessories fitted to manipulators, e.g. for monitoring, for viewing; Safety devices combined with or specially adapted for use in connection with manipulators
    • B25J19/02Sensing devices
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1602Programme controls characterised by the control system, structure, architecture
    • B25J9/1607Calculation of inertia, jacobian matrixes and inverses
    • 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/1633Programme controls characterised by the control loop compliant, force, torque control, e.g. combined with position control
    • 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/1653Programme controls characterised by the control loop parameters identification, estimation, stiffness, accuracy, error analysis

Abstract

로봇 매니퓰레이터의 충격량을 산출하는 검출장치 및 방법이 개시된다. 검출장치는 로봇 매니퓰레이터의 관절에 대한 관절각도를 수신하는 인터페이스부 및 관절각도를 이용하여 관절의 각속도 및 각가속도를 산출하고, 관절각도, 각속도 및 각가속도를 로봇 기구학에 의해 결정되는 자코비안 행렬에 적용하여 외부와의 충돌로 발생되는 힘인 충격량을 산출하는 제어부를 포함한다.A detection device and method for calculating the amount of impact of a robot manipulator are disclosed. The detection device calculates the angular velocity and angular acceleration of the joint using the joint angle and the interface unit that receives the joint angle for the joint of the robot manipulator, and applies the joint angle, angular velocity, and angular acceleration to the Jacobian matrix determined by robot kinematics. It includes a control unit that calculates the amount of impact, which is the force generated by collision with the outside.

Description

로봇 매니퓰레이터의 충격량을 산출하는 검출장치 및 방법{Detecting device and method for calculating amount of impact of robot manipulator}Detecting device and method for calculating amount of impact of robot manipulator}

본 발명은 충격량 검출 기술에 관한 것으로, 더욱 상세하게는 외부 충격으로부터 로봇 매니퓰레이터에 발생되는 충격량을 산출하는 로봇 매니퓰레이터의 충격량을 산출하는 검출장치 및 방법에 관한 것이다.The present invention relates to impact detection technology, and more specifically, to a detection device and method for calculating the impact amount of a robot manipulator, which calculates the impact amount generated in the robot manipulator from an external impact.

최근 로봇 매니퓰레이터를 이용한 작업은 많은 분야에서 사용 중에 있으며, 그 핵심은 다양한 환경과의 상호작용에 있다. 이러한 작업은 접촉과 비접촉 작업으로 나눌 수 있고, 접촉 작업에 대한 수유가 꾸준히 증가하고 있어 협동 로봇과 같이 환경 및 사람과의 접촉이 용이한 로봇에 대한 연구가 활발히 이루어지고 있다.Recently, work using robot manipulators has been used in many fields, and its core lies in interaction with various environments. These tasks can be divided into contact and non-contact tasks, and as the number of contact tasks is steadily increasing, research is being actively conducted on robots that can easily contact the environment and people, such as collaborative robots.

접촉 작업의 경우, 접촉면에서의 다양한 상호작용을 위해 로봇 말단에서 환경에 가하는 힘을 제어하거나 운동의 구속이 필요하다. 이 과정에서 로봇은 비접촉에서 접촉으로 넘어가는 천이과정을 필요로 한다. 이때 로봇이 사람 및 환경과의 상호작용을 위해 접근을 시도하고, 로봇 말단과 접촉 지점의 위치 오차 등에 의해 충돌이 발생하게 된다. 이러한 충돌에 의해 사람이 다치거나 로봇 말단의 장치 및 작업 대상의 손상을 유발할 수 있다.For contact tasks, it is necessary to control the force exerted by the robot end on the environment or to constrain its movements for various interactions at the contact surface. In this process, the robot requires a transition process from non-contact to contact. At this time, the robot attempts to approach to interact with people and the environment, and a collision occurs due to positional errors between the end of the robot and the point of contact. Such collisions may injure people or cause damage to devices at the end of the robot and work objects.

이를 극복하기 위해 충격량을 검출하고 힘 제어를 수행하는 것이 필요하다. 하지만 충격량을 검출하는 것은 로봇에 추가적으로 외력 측정 장치를 요구하거나, 복잡한 연산을 필요로 하는 어려움을 가지고 있다. 따라서 이러한 문제점을 해결할 방법이 필요한 실정이다.To overcome this, it is necessary to detect the impulse and perform force control. However, detecting the amount of impact has the difficulty of requiring an additional external force measuring device on the robot or complex calculations. Therefore, a method to solve these problems is needed.

한국등록특허공보 제10-2226122호 (2021.03.11.)Korean Patent Publication No. 10-2226122 (2021.03.11.)

본 발명이 해결하고자 하는 과제는 로봇 매니퓰레이터의 관절 기반 변수(관절각도, 각속도, 각가속도)와 시간지연제어기법(Time-delay control, TDC)을 이용하여 외부 충돌로 인해 발생되는 충격량을 산출하는 로봇 매니퓰레이터의 충격량을 산출하는 검출장치 및 방법을 제공하는 것이다. The problem that the present invention aims to solve is a robot manipulator that calculates the amount of impact generated by an external collision using the joint-based variables (joint angle, angular velocity, and angular acceleration) of the robot manipulator and time-delay control (TDC). To provide a detection device and method for calculating the amount of impact.

상기 과제를 해결하기 위해 본 발명에 따른 로봇 매니퓰레이터의 충격량을 산출하는 검출장치는 로봇 매니퓰레이터의 관절에 대한 관절각도를 수신하는 인터페이스부 및 상기 관절각도를 이용하여 상기 관절의 각속도 및 각가속도를 산출하고, 상기 관절각도, 상기 각속도 및 상기 각가속도를 로봇 기구학에 의해 결정되는 자코비안 행렬에 적용하여 외부와의 충돌로 발생되는 힘인 충격량을 산출하는 제어부를 포함한다.In order to solve the above problem, a detection device for calculating the amount of impact of a robot manipulator according to the present invention calculates the angular velocity and angular acceleration of the joint using an interface unit that receives the joint angle of the joint of the robot manipulator and the joint angle, It includes a control unit that applies the joint angle, the angular velocity, and the angular acceleration to a Jacobian matrix determined by robot kinematics to calculate the amount of impulse, which is a force generated by a collision with an external force.

또한 상기 제어부는, 상기 관절각도의 원하는 위치와 실제 위치를 차이를 나타내는 관절각도 오차, 상기 관절각도 오차를 미분한 관절의 각속도 오차, 상기 관절의 원하는 각가속도 및 실제 각가속도를 이용하여 상기 충격량을 산출하는 것을 특징으로 한다.In addition, the control unit calculates the amount of impact using a joint angle error indicating the difference between the desired position and the actual position of the joint angle, the angular velocity error of the joint obtained by differentiating the joint angle error, the desired angular acceleration of the joint, and the actual angular acceleration. It is characterized by

또한 상기 제어부는, 하기 수학식을 이용하여 상기 충격량을 산출하는 것을 특징으로 한다.In addition, the control unit is characterized in that it calculates the amount of impact using the following equation.

[수학식][Equation]

여기서 I는 충격량을 의미하고, J는 자코비안 행렬을 의미하며, 는 관성 게인 행렬을 의미하고, 는 사용자가 원하는 관절의 각가속도를 의미하며, 는 한 제어 샘플 주기의 이전 시점에서의 각가속도를 의미하고, 는 양의 상수 대각행렬의 형태를 가지는 댐핑 상수와 관련된 피드백 게인 행렬이며, 는 각속도의 오차 벡터(1차미분)를 의미하고, 는 양의 상수 대각행렬의 형태를 가지는 스프링 상수와 관련된 피드백 게인 행렬을 의미하며, 는 위치 오차 벡터를 의미하고, βt는 제어 샘플 주기를 의미한다.Here, I means the impulse, J means the Jacobian matrix, means the inertia gain matrix, means the angular acceleration of the joint desired by the user, means the angular acceleration at the previous point in one control sample period, is the feedback gain matrix associated with the damping constant, which has the form of a positive constant diagonal matrix, means the error vector (first derivative) of the angular velocity, refers to the feedback gain matrix related to the spring constant in the form of a positive constant diagonal matrix, means the position error vector, and βt means the control sample period.

본 발명에 따른 로봇 매니퓰레이터의 충격량을 산출하는 검출장치는 로봇 매니퓰레이터의 모터에 대한 전류량을 수신하는 인터페이스부 및 상기 전류량을 이용하여 상기 로봇 매니퓰레이터의 관절에 대한 현재 시점의 토크 및 이전 시점의 토크를 산출하고, 상기 현재 시점의 토크 및 상기 이전 시점의 토크에 대한 토크 변화량을 로봇 기구학에 의해 결정되는 자코비안 행렬에 적용하여 외부와의 충돌로 발생되는 힘인 충격량을 산출하는 제어부를 포함한다.The detection device for calculating the amount of impact of a robot manipulator according to the present invention uses an interface unit that receives the amount of current for the motor of the robot manipulator and calculates the torque at the current time and the torque at the previous time for the joint of the robot manipulator using the amount of current. And a control unit that calculates the amount of impact, which is a force generated by a collision with an external force, by applying the torque change amount with respect to the torque at the current time and the torque at the previous time to the Jacobian matrix determined by robot kinematics.

또한 상기 제어부는, 상기 토크 변화량을 상기 자코비안 행렬에 적용하여 충돌의 발생 시에 상응하는 힘을 산출하고, 상기 산출된 힘 및 제어 샘플 주기를 이용하여 상기 충격량을 산출하는 것을 특징으로 한다.In addition, the control unit calculates the corresponding force when a collision occurs by applying the torque change to the Jacobian matrix, and calculates the amount of impact using the calculated force and the control sample period.

또한 상기 제어부는, 하기 수학식을 이용하여 상기 충격량을 산출하는 것을 특징으로 한다.In addition, the control unit is characterized in that it calculates the amount of impact using the following equation.

[수학식][Equation]

여기서 I는 충격량을 의미하고, 는 충돌이 발생 시, 이에 상응하는 힘을 의미하며, J는 자코비안 행렬을 의미하고, 는 현재 관절 토크를 의미하며, 는 한 제어 샘플 주기의 이전 시점에서의 관절 토크를 의미하고, βt는 제어 샘플 주기를 의미한다.Here I means the impulse, means the corresponding force when a collision occurs, J means the Jacobian matrix, means the current joint torque, means the joint torque at the previous point of one control sample period, and βt means the control sample period.

또한 상기 제어부는, 상기 산출된 충격량의 크기에 따라 범위를 설정하고, 상기 설정된 범위에 따라 상기 로봇 매니퓰레이터의 제어를 하는 것을 특징으로 한다.Additionally, the control unit sets a range according to the size of the calculated impulse and controls the robot manipulator according to the set range.

또한 상기 제어부는, 상기 충격량이 제1 범위에 포함되면 상기 로봇 매니퓰레이터의 구동 속도를 낮추는 제어, 구동 힘을 낮추는 제어 및 구동 패턴을 기 설정된 움직임 패턴으로 변경하는 제어 중 적어도 하나의 제어로 상기 로봇 매니퓰레이터를 구동시키고, 상기 충격량이 상기 제1 범위보다 큰 제2 범위에 포함되면 상기 로봇 매니퓰레이터의 구동을 일시 정지시키며, 상기 충격량이 상기 제2 범위보다 큰 제3 범위에 포함되면 상기 로봇 매니퓰레이터의 구동을 완전 정지시키는 것을 특징으로 한다.In addition, the control unit controls the robot manipulator to control at least one of a control for lowering the driving speed of the robot manipulator when the impulse amount is within the first range, a control for lowering the driving force, and a control for changing the drive pattern to a preset movement pattern. drives the robot manipulator when the impulse amount falls within a second range that is larger than the first range, and when the impulse quantity falls within a third range that is larger than the second range, the operation of the robot manipulator is stopped. It is characterized by complete stoppage.

본 발명에 따른 로봇 매니퓰레이터의 충격량을 산출하는 검출방법은 검출장치가 로봇 매니퓰레이터의 관절에 대한 관절각도를 수신하는 단계, 상기 검출장치가 상기 관절각도를 이용하여 상기 관절의 각속도 및 각가속도를 산출하는 단계 및 상기 검출장치가 상기 관절각도, 상기 각속도 및 상기 각가속도를 로봇 기구학에 의해 결정되는 자코비안 행렬에 적용하여 외부와의 충돌로 발생되는 힘인 충격량을 산출하는 단계를 포함한다.The detection method for calculating the amount of impact of a robot manipulator according to the present invention includes the steps of receiving a joint angle for a joint of a robot manipulator by a detection device, and calculating the angular velocity and angular acceleration of the joint using the joint angle by the detection device. And a step where the detection device applies the joint angle, the angular velocity, and the angular acceleration to a Jacobian matrix determined by robot kinematics to calculate an impulse, which is a force generated by a collision with an external device.

본 발명에 따른 로봇 매니퓰레이터의 충격량을 산출하는 검출방법은 검출장치가 로봇 매니퓰레이터의 모터에 대한 전류량을 수신하는 단계, 상기 검출장치가 상기 전류량을 이용하여 상기 로봇 매니퓰레이터의 관절에 대한 현재 시점의 토크 및 이전 시점의 토크를 산출하는 단계 및 상기 검출장치가 상기 현재 시점의 토크 및 상기 이전 시점의 토크에 대한 토크 변화량을 로봇 기구학에 의해 결정되는 자코비안 행렬에 적용하여 외부와의 충돌로 발생되는 힘인 충격량을 산출하는 단계를 포함한다.The detection method for calculating the amount of impact of the robot manipulator according to the present invention includes the steps of a detection device receiving the amount of current for the motor of the robot manipulator, the detection device using the amount of current to determine the current torque for the joint of the robot manipulator and Calculating the torque at a previous point in time, and the detection device applying the torque at the current point in time and the amount of torque change relative to the torque at the previous point in time to the Jacobian matrix determined by robot kinematics to generate an impulse amount that is a force generated by a collision with the outside. It includes the step of calculating .

본 발명의 실시예에 따르면 별도의 토크센서 또는 충격센서 없이, 로봇 매니퓰레이터의 관절 기반 변수(관절각도, 각속도, 각가속도)와 시간지연제어기법을 이용하여 외부 충돌로 인해 발생되는 충격량을 산출함으로써, 기존의 로봇 매니퓰레이터와의 호환을 용이하게 하여 설치 비용을 절감할 수 있다.According to an embodiment of the present invention, without a separate torque sensor or impact sensor, the amount of impact generated due to an external collision is calculated using the joint-based variables (joint angle, angular velocity, angular acceleration) of the robot manipulator and a time delay control technique, Installation costs can be reduced by facilitating compatibility with robot manipulators.

또한 충격량의 크기에 따라 범위를 설정한 후, 해당 범위에 맞는 로봇 매니퓰레이터 제어를 하여 안전하면서도 구동 공백을 최소화시켜 제품의 생산성을 늘릴 수 있다. In addition, after setting the range according to the size of the impact, you can control the robot manipulator appropriate for the range to increase product productivity by minimizing drive gaps while being safe.

도 1은 본 발명의 실시예에 따른 검출시스템을 설명하기 위한 도면이다.
도 2는 본 발명의 실시예에 따른 검출장치를 설명하기 위한 블록도이다.
도 3은 본 발명의 실시예에 따른 토크 변화량을 기반으로 충격량을 산출하는 과정을 설명하기 위한 도면이다.
도 4는 본 발명의 실시예에 따른 관절각도 기반의 변수값을 기반으로 충격량을 산출하는 과정을 설명하기 위한 도면이다.
도 5는 도 4의 충격량을 산출하는 과정을 간략하게 설명하기 위한 도면이다.
도 6은 본 발명의 실시예에 따른 토크 변화량을 기반으로 충격량을 산출하는 검출방법을 설명하기 위한 순서도이다.
도 7은 본 발명의 실시예에 따른 관절각도 기반의 변수값을 기반으로 충격량을 산출하는 검출방법을 설명하기 위한 순서도이다.
도 8은 본 발명의 실시예에 따른 컴퓨팅 장치를 설명하기 위한 블록도이다.
1 is a diagram for explaining a detection system according to an embodiment of the present invention.
Figure 2 is a block diagram for explaining a detection device according to an embodiment of the present invention.
Figure 3 is a diagram for explaining the process of calculating the amount of impact based on the amount of torque change according to an embodiment of the present invention.
Figure 4 is a diagram for explaining the process of calculating the amount of impact based on joint angle-based variable values according to an embodiment of the present invention.
Figure 5 is a diagram briefly explaining the process of calculating the amount of impact in Figure 4.
Figure 6 is a flowchart illustrating a detection method for calculating the amount of impact based on the amount of torque change according to an embodiment of the present invention.
Figure 7 is a flowchart for explaining a detection method for calculating the amount of impact based on a joint angle-based variable value according to an embodiment of the present invention.
Figure 8 is a block diagram for explaining a computing device according to an embodiment of the present invention.

아래에서는 첨부한 도면을 참고로 하여 본 발명의 실시예에 대하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다. 그리고 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다. Below, 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 implement the present invention. However, the present invention may be implemented in many different forms and is not limited to the embodiments described herein. In order to clearly explain the present invention in the drawings, parts that are not related to the description are omitted, and similar parts are given similar reference numerals throughout the specification.

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

또한 본 명세서에서, 어떤 구성요소가 다른 구성요소에 '연결되어' 있다거나 '접속되어' 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에 본 명세서에서, 어떤 구성요소가 다른 구성요소에 '직접 연결되어' 있다거나 '직접 접속되어' 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다.Additionally, in this specification, when a component is mentioned as being 'connected' or 'connected' to another component, it may be directly connected or connected to the other component, but may be connected to the other component in the middle. It should be understood that may exist. 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 in this specification are merely used to describe specific embodiments and are not intended to limit the present invention.

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

또한 본 명세서에서, '포함하다' 또는 '가지다' 등의 용어는 명세서에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품, 또는 이들을 조합한 것이 존재함을 지정하려는 것일 뿐, 하나 또는 그 이상의 다른 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 할 것이다.In addition, in this specification, terms such as 'include' or 'have' are only intended to designate the presence of features, numbers, steps, operations, components, parts, or combinations thereof described in the specification, and one or more It should be understood that this does not exclude in advance the presence or addition of 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 a plurality of listed items or any of the plurality of listed items. In this specification, 'A or B' may 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은 본 발명의 실시예에 따른 검출시스템을 설명하기 위한 도면이다.1 is a diagram for explaining a detection system according to an embodiment of the present invention.

도 1을 참조하면, 검출시스템(300)은 로봇 매니퓰레이터(200)의 관절 기반 변수(관절각도, 각속도, 각가속도)와 시간지연제어기법(Time-delay control, TDC)을 이용하여 외부 충돌로 인해 발생되는 충격량을 산출한다. 검출시스템(300)은 검출장치(100) 및 로봇 매니퓰레이터(200)를 포함한다.Referring to FIG. 1, the detection system 300 uses the joint-based variables (joint angle, angular velocity, and angular acceleration) of the robot manipulator 200 and time-delay control (TDC) to detect collisions caused by external collisions. Calculate the amount of impact. The detection system 300 includes a detection device 100 and a robot manipulator 200.

검출장치(100)는 외부와의 충돌 여부를 판단한다. 검출장치(100)는 충돌이 발생되었다고 판단하는 경우, 충돌로 발생되는 힘인 충격량을 산출하고, 산출된 충격량을 이용하여 로봇 매니퓰레이터(200)을 제어한다. 검출장치(100)는 로봇 매니퓰레이터(200) 말단인 엔드 이펙터(end-effector)에 별도의 힘/토크 센서를 구비하지 않아도 시간지연제어기법을 기반으로 충격량을 산출할 수 있다. 이때 검출장치(100)는 로봇 매니퓰레이터(200)의 관절에 대한 토크 변화량 또는 관절 기반 변수값(관절각도, 각속도, 각가속도)을 이용하여 충격량을 산출할 수 있다. 여기서 관절에 대한 토크는 모터(240)에 대한 전류량을 이용하여 산출될 수 있고, 관절 기반 변수값 중 관절각도는 로봇 매니퓰레이터(200)에 기본적으로 구비된 관절각도 측정센서(엔코더 등)로부터 측정되고, 각속도 및 각가속도는 측정된 관절각도를 이용하여 산출될 수 있다. 검출장치(100)는 산출된 충격량을 단계별로 구분하고, 구분된 단계에 대응되는 명령에 따라 로봇 매니퓰레이터(200)를 제어한다.The detection device 100 determines whether there is a collision with the outside. When the detection device 100 determines that a collision has occurred, it calculates the amount of impact, which is the force generated by the collision, and controls the robot manipulator 200 using the calculated amount of impact. The detection device 100 can calculate the amount of impulse based on a time delay control technique without requiring a separate force/torque sensor at the end-effector (end-effector) of the robot manipulator 200. At this time, the detection device 100 may calculate the amount of impact using the torque change or joint-based variable values (joint angle, angular velocity, and angular acceleration) for the joints of the robot manipulator 200. Here, the torque for the joint can be calculated using the amount of current for the motor 240, and the joint angle among the joint-based variable values is measured from a joint angle measurement sensor (encoder, etc.) basically provided in the robot manipulator 200. , angular velocity and angular acceleration can be calculated using the measured joint angles. The detection device 100 divides the calculated impulse amount into stages and controls the robot manipulator 200 according to commands corresponding to the divided stages.

로봇 매니퓰레이터(200)는 n-자유도(Degree of Freedom, DOF)를 가지는 매니퓰레이터를 포함한다. 로봇 매니퓰레이터(200)는 매니퓰레이터(210), 엔드 이펙터(230) 및 모터(250)를 포함한다. The robot manipulator 200 includes a manipulator with n-degrees of freedom (DOF). The robot manipulator 200 includes a manipulator 210, an end effector 230, and a motor 250.

매니퓰레이터(210)는 로봇암으로써, 베이스(211), 복수의 암(212) 및 복수의 관절(213)을 포함한다. 베이스(211)는 복수의 암(212) 및 복수의 관절(213)을 지지한다. 베이스(211)는 산업용 로봇의 몸체, 인간형 로봇의 몸체, 차량형 로봇의 몸체 등이 될 수 있다. 베이스(211)는 복수의 암(212) 중 최하부의 암과 커플링된다. 복수의 암(212)은 사이에 연결된 적어도 하나의 관절(213)을 매개로 연결되고, 복수의 관절(213)을 통하여 충분한 자유도를 획득할 수 있다. 각 관절(213)은 각 매니퓰레이터(210)의 동작에 따른 위치를 측정할 수 있는 엔코더(미도시)를 포함한다.The manipulator 210 is a robot arm and includes a base 211, a plurality of arms 212, and a plurality of joints 213. The base 211 supports a plurality of arms 212 and a plurality of joints 213. The base 211 may be the body of an industrial robot, a humanoid robot, or a vehicle-type robot. The base 211 is coupled to the lowest arm of the plurality of arms 212. The plurality of arms 212 are connected via at least one joint 213 connected therebetween, and a sufficient degree of freedom can be obtained through the plurality of joints 213. Each joint 213 includes an encoder (not shown) that can measure the position according to the operation of each manipulator 210.

엔드 이펙터(230)는 매니퓰레이터(210)의 암(212)에 탈착 방식으로 연결되고, 본체(231) 및 작업툴(232)를 포함한다. 일반적인 경우, 본체(231)는 복수의 암(212) 중 최상부(말단)의 암에 연결된다. 즉 본체(231)는 일단에 최상부의 암과 연결되고, 타단에 작업툴(232)이 연결된다. 작업툴(232)은 로봇 매니퓰레이터(200)가 수행해야 할 작업의 종류에 따라 교체될 수 있다. 예를 들어 작업툴(232)은 그리퍼, 툴 체인저, 측정 지그 등을 포함할 수 있으나, 이에 한정하지 않는다. The end effector 230 is detachably connected to the arm 212 of the manipulator 210 and includes a main body 231 and a work tool 232. In a general case, the main body 231 is connected to the uppermost (terminal) arm of the plurality of arms 212. That is, the main body 231 is connected to the uppermost arm at one end, and the work tool 232 is connected to the other end. The work tool 232 may be replaced depending on the type of work the robot manipulator 200 must perform. For example, the work tool 232 may include, but is not limited to, a gripper, a tool changer, a measuring jig, etc.

모터(250)는 베이스(211)와 연결되어 베이스(211)와 연결된 복수의 암(212) 및 복수의 관절(213)을 구동시킨다. 모터(250)는 전류량에 대한 정보를 검출장치(100)로 전송한다. 이때 모터(250)는 외부의 충돌이 발생된 이전의 전류량과 현재의 전류량을 검출장치(100)로 전송할 수 있으나, 이에 한정하지 않고 기 설정된 주기 또는 실시간으로 전류량을 검출장치(100)로 전송할 수 있다.The motor 250 is connected to the base 211 and drives a plurality of arms 212 and a plurality of joints 213 connected to the base 211. The motor 250 transmits information about the amount of current to the detection device 100. At this time, the motor 250 may transmit the amount of current before the external collision occurred and the current amount to the detection device 100, but is not limited to this and may transmit the amount of current to the detection device 100 at a preset period or in real time. there is.

여기서 외부와의 충돌은 외부 환경(장애물, 구조물 등) 또는 사람과의 부딪힘을 의미하고, 매니퓰레이터(210) 또는 엔드 이펙터(230)에서 발생될 수 있다. 또한 충돌은 매니퓰레이터(210)에서 발생되더라도 엔드 이펙터(230)로 충돌에 따른 영향이 전달되고, 엔드 이펙터(230)에서 발생되더라도 매니퓰레이터(210)로 충돌에 따른 영향이 전달될 수 있다. 이로 인해 검출장치(100)는 각 관절(213)에 포함된 엔코더로부터 측정된 관절의 위치값(관절각도)을 기반으로 충돌 여부를 판단할 수 있다.Here, a collision with the outside means a collision with an external environment (obstacle, structure, etc.) or a person, and may occur in the manipulator 210 or the end effector 230. Additionally, even if a collision occurs in the manipulator 210, the impact of the collision may be transmitted to the end effector 230, and even if a collision occurs in the end effector 230, the effects of the collision may be transmitted to the manipulator 210. Because of this, the detection device 100 can determine whether there is a collision based on the position value (joint angle) of the joint measured from the encoder included in each joint 213.

도 2는 본 발명의 실시예에 따른 검출장치를 설명하기 위한 블록도이고, 도 3은 본 발명의 실시예에 따른 토크 변화량을 기반으로 충격량을 산출하는 과정을 설명하기 위한 도면이며, 도 4는 본 발명의 실시예에 따른 관절각도 기반의 변수값을 기반으로 충격량을 산출하는 과정을 설명하기 위한 도면이고, 도 5는 도 4의 충격량을 산출하는 과정을 간략하게 설명하기 위한 도면이다.Figure 2 is a block diagram for explaining a detection device according to an embodiment of the present invention, Figure 3 is a diagram for explaining the process of calculating the amount of impact based on the amount of torque change according to an embodiment of the present invention, and Figure 4 is This is a diagram for explaining a process for calculating the amount of impact based on a joint angle-based variable value according to an embodiment of the present invention, and FIG. 5 is a diagram for briefly explaining the process for calculating the amount of impact in FIG. 4.

도 1 내지 도 5를 참조하면, 검출장치(100)는 인터페이스부(10) 및 제어부(30)를 포함하고, 저장부(50)를 더 포함할 수 있다.Referring to FIGS. 1 to 5 , the detection device 100 includes an interface unit 10 and a control unit 30, and may further include a storage unit 50.

인터페이스부(10)는 로봇 매니퓰레이터(200)와의 통신을 수행한다. 인터페이스부(10)는 각 관절(213)에 포함된 엔코더로부터 관절각도를 수신한다. 바람직하게는 인터페이스(10)는 복수의 관절(213) 중 최상부(말단) 암과 연결된 관절의 엔코더로부터 관절각도를 수신할 수 있으나, 이에 한정하지 않고 모든 관절의 엔코더로부터 관절각도를 수신할 수 있다. 또한 인터페이스부(10)는 모터(250)로부터 전류량을 수신한다.The interface unit 10 performs communication with the robot manipulator 200. The interface unit 10 receives joint angles from an encoder included in each joint 213. Preferably, the interface 10 may receive a joint angle from an encoder of a joint connected to the uppermost (distal) arm of the plurality of joints 213, but is not limited to this and may receive a joint angle from an encoder of all joints. . Additionally, the interface unit 10 receives the amount of current from the motor 250.

제어부(30)는 검출장치(100)의 전반적인 제어를 수행한다. 제어부(30)는 외부 충돌로 인해 발생되는 충격량을 산출한다. 이때 제어부(30)는 로봇 동역학 계산을 피하기 위해 시간지연제어기법을 이용하여 간단하게 충격량을 산출할 수 있다.The control unit 30 performs overall control of the detection device 100. The control unit 30 calculates the amount of impact generated due to an external collision. At this time, the control unit 30 can simply calculate the amount of impact using a time delay control technique to avoid calculating robot dynamics.

일반적으로 n-자유도를 가지는 로봇 매니퓰레이터의 동역학 수학식은 관절 공간에서 [수학식 1]과 같이 표현될 수 있다.In general, the dynamics equation of a robot manipulator with n-degrees of freedom can be expressed as [Equation 1] in joint space.

는 관절각들로 구성된 벡터로써, 실제 관절각도를 의미하고, 는 관절각들로 구성된 벡터를 1차 미분한 각속도를 의미하며, 는 관절각들로 구성된 벡터를 2차 미분한 각가속도를 의미하고, 는 관절 공간에서의 관성행렬을 의미하며, 는 관절 공간에서의 코리올리(Coriolis) 및 원심력을 의미하고, 는 관절 공간에서의 중력의 의미하며, 는 관절 마찰토크를 의미하고, 는 외란(disturbance)을 포함한 모델링되지 않은 동역학 항을 의미하며, 는 각 관절에 인가되는 제어 입력인 관절 토크를 의미한다. 이때 는 모터(250)에 인가할 전류로 변환된 토크로 검출장치(100)에서 직접 얻거나, 추정하는 것이 가능하다. 또한 간단한 표현을 위해 시간 t는 생략하였다. is a vector composed of joint angles, meaning the actual joint angle, means the angular velocity obtained by first derivative of the vector composed of joint angles, means the angular acceleration obtained by second-differentiating the vector composed of joint angles, means the inertia matrix in joint space, means Coriolis and centrifugal force in the joint space, means the force of gravity in the joint space, means joint friction torque, refers to unmodeled dynamic terms including disturbances, means joint torque, which is a control input applied to each joint. At this time It is possible to directly obtain or estimate the torque converted into a current to be applied to the motor 250 from the detection device 100. Also, for simple expression, time t is omitted.

관성 게인 행렬인 (상수 대각행렬)를 이용하는 경우, 를 [수학식 1]에 적용하게 되면 [수학식 2]와 같이 표현된다.Inertial gain matrix When using (constant diagonal matrix), When applied to [Equation 1], it is expressed as [Equation 2].

는 관성 게인 행렬을 의미하고, 는 로봇 동역학을 포함하는 알려지지 않은 불확실성 벡터를 의미한다. means the inertia gain matrix, refers to the unknown uncertainty vector containing the robot dynamics.

일반적으로 [수학식 2]를 제어하기 위한 제어 입력은 [수학식 4]과 같이 구성될 수 있다.In general, the control input for controlling [Equation 2] can be configured as in [Equation 4].

는 N의 추정(estimation) 벡터를 의미하고, 는 제어 입력 벡터를 의미한다. 는 사용자가 원하는 관절각도를 의미하고, 는 사용자가 원하는 관절의 각속도를 의미하며, 는 사용자가 원하는 관절의 각가속도를 의미한다. means the estimation vector of N, means the control input vector. means the joint angle desired by the user, means the angular velocity of the joint desired by the user, means the angular acceleration of the joint desired by the user.

제어부(30)는 시간지연추정기법(Time-delay estimation)을 통해 를 간단하게 산출할 수 있다. 제어부(30)는 시각지연추정기법을 이용하는 경우, 현재 시간 t에서의 를 산출하기 위해 한 제어 샘플 주기()의 이전 시점인 에서의 을 이용하여 추정할 수 있다. 이를 통해 제어부(30)는 [수학식 2]를 기반으로 [수학식 5]와 같이 산출될 수 있다. The control unit 30 uses time-delay estimation. can be calculated easily. When using the time delay estimation technique, the control unit 30 determines the One control sample period to calculate ( ) at the time before in It can be estimated using . Through this, the control unit 30 can calculate [Equation 5] based on [Equation 2].

은 로봇 동역학을 포함하는 알려지지 않은 불확실성 벡터를 의미하고, 는 현재시간(t)에 대한 N의 추정 벡터를 의미하며, 는 한 제어 샘플 주기의 이전 시점에서의 N를 의미하고, 는 한 제어 샘플 주기의 이전 시점에서의 관절 토크를 의미하며, 는 한 제어 샘플 주기의 이전 시점에서의 각가속도를 의미한다. refers to the unknown uncertainty vector containing the robot dynamics, means the estimated vector of N for the current time (t), refers to N at the previous time point of one control sample period, refers to the joint torque at the previous point in one control sample period, means the angular acceleration at the previous point in one control sample period.

이때 제어부(30)는 로봇 매니퓰레이터(200)에 원하는 모션을 얻기 위해 [수학식 4]의 에 오차 동역학을 할당한다. 이를 위해 위치 오차 벡터 로 정의한다. 는 사용자가 원하는 관절각도를 의미하고, 는 관절각들로 구성된 벡터로써, 실제 관절각도를 의미한다. 또한 로 정의한다. 즉 제어부(30)는 인 경우, [수학식 5]를 이용하여 원하는 오차 동역학을 [수학식 6]과 같이 얻을 수 있다.At this time, the control unit 30 uses [Equation 4] to obtain the desired motion in the robot manipulator 200. Assign error dynamics to . For this purpose, the position error vector Is It is defined as means the joint angle desired by the user, is a vector composed of joint angles, meaning the actual joint angle. also Is It is defined as That is, the control unit 30 In this case, the desired error dynamics can be obtained as in [Equation 6] using [Equation 5].

는 관절에 대한 각가속도의 오차 벡터를 의미하고, 는 양의 상수 대각행렬의 형태를 가지는 댐핑 상수와 관련된 피드백 게인 행렬이며, 는 관절에 대한 각속도의 오차 벡터를 의미하고, 는 양의 상수 대각행렬의 형태를 가지는 스프링 상수와 관련된 피드백 게인 행렬을 의미하며, 는 관절각도의 위치 오차 벡터이고, 로 정의한다. 즉 는 관절의 원하는 위치와 실제 위치에 대한 각도 차이를 나타낸다. means the error vector of the angular acceleration for the joint, is the feedback gain matrix associated with the damping constant, which has the form of a positive constant diagonal matrix, means the error vector of the angular velocity for the joint, refers to the feedback gain matrix related to the spring constant in the form of a positive constant diagonal matrix, is the position error vector of the joint angle, It is defined as in other words represents the angle difference between the desired and actual positions of the joint.

따라서 제어부(30)는 [수학식 5]의 시간지연추정기법과, [수학식 6]의 오차 동역학을 이용하여 시간지연제어기법을 [수학식 7]과 같은 방정식으로 표현할 수 있다.Therefore, the control unit 30 can express the time delay control technique in an equation such as [Equation 7] using the time delay estimation technique of [Equation 5] and the error dynamics of [Equation 6].

제어부(30)는 현지 시점 t에서 관절 토크 와 한 제어 샘플 주기의 전 시점 에 대한 을 이용하여 로봇 매니퓰레이터(200)의 엔드 이펙터(230)에 작용하는 힘을 산출하면 [수학식 8]과 같이 산출한다.The control unit 30 controls the joint torque at local time t and all time points of one control sample cycle. for The force acting on the end effector 230 of the robot manipulator 200 is calculated using Equation 8.

는 로봇 매니퓰레이터의 말단인 엔드 이펙터에 외부 충돌로 발생되는 힘(데미지)을 의미하고, 는 현재 시점에서 로봇 매니퓰레이터의 엔드 이펙트에 작용되는 힘을 의미하며, 는 한 제어 샘플 주기의 이전 시점에서의 로봇 매니퓰레이터의 엔드 이펙트에 작용되는 힘을 의미하고, J는 로봇 매니퓰레이터의 자코비안 행렬을 의미한다. 여기서 충돌로 인한 충격 발생 시, 로봇 매니퓰레이터(200)의 각 관절에 발생하는 위치 오차 벡터 는 상대적으로 큰 값을 가지며, 이러한 위치 오차는 상당히 변화된 제어 입력 를 생성한다. 따라서 제어부(30)는 충돌이 발생 시, 이에 상응하는 힘인 를 산출할 수 있다. 또한 제어부(30)는 를 이용하여 충격량을 [수학식 9]와 같이 산출할 수 있다. 즉 제어부(30)는 토크 변화량을 자코비안 행렬에 적용하여 충돌의 발생 시에 상응하는 힘을 산출하고, 산출된 힘 및 제어 샘플 주기를 이용하여 충격량을 산출할 수 있다(도 3 참조). refers to the force (damage) generated by external collision at the end effector, which is the end of the robot manipulator, refers to the force applied to the end effect of the robot manipulator at the current point, means the force applied to the end effect of the robot manipulator at the previous point of one control sample cycle, and J means the Jacobian matrix of the robot manipulator. Here, when shock due to collision occurs, the position error vector generated at each joint of the robot manipulator 200 has a relatively large value, and this position error is significantly changed by the control input creates . Therefore, when a collision occurs, the control unit 30 generates the corresponding force can be calculated. Additionally, the control unit 30 The impulse can be calculated as in [Equation 9] using . That is, the control unit 30 can apply the torque change to the Jacobian matrix to calculate the corresponding force when a collision occurs, and calculate the amount of impact using the calculated force and the control sample period (see FIG. 3).

I는 외부 충돌로 발생되는 충격량을 의미한다.I refers to the amount of shock generated by an external collision.

한편 제어부(30)는 [수학식 7]의 시간지연제어기법을 이용하여 [수학식 10]을 유도할 수 있다.Meanwhile, the control unit 30 can derive [Equation 10] using the time delay control technique of [Equation 7].

한편 [수학식 10]을 통해 로 대체하여 사용 가능함을 알 수 있으므로, 제어부(30)는 [수학식 9]를 [수학식 11]과 같이 변환할 수 있다(도 4, 도 5 참조). 즉 제어부(30)는 관절각도의 원하는 위치와 실제 위치를 차이를 나타내는 관절각도 오차(), 관절각도 오차를 미분한 관절의 각속도 오차(), 관절의 원하는 각가속도 및 실제 각가속도를 이용하여 상기 충격량을 산출한다.Meanwhile, through [Equation 10], go Since it can be seen that it can be used instead of , the control unit 30 can convert [Equation 9] to [Equation 11] (see FIGS. 4 and 5). That is, the control unit 30 provides a joint angle error (joint angle error) representing the difference between the desired position and the actual position of the joint angle. ), the angular velocity error of the joint obtained by differentiating the joint angle error ( ), the impulse is calculated using the desired angular acceleration and actual angular acceleration of the joint.

는 관절의 원하는 위치와 실제 위치의 차이를 나타내는 관절각도의 오차 벡터를 의미하고, 를 1차 미분하여 관절에 대한 각속도의 오차 벡터를 의미한다. 또한 는 각가속도의 원하는 값을 의미하고, 는 실제 각가속도의 값을 의미한다. 따라서 제어부(30)는 [수학식 11]을 통해 토크 또는 전류를 사용하지 않고, 관절위치, 속도, 가속도에 대한 값들로 충격량을 산출할 수 있다. means the error vector of the joint angle, which represents the difference between the desired position and the actual position of the joint, Is It means the error vector of the angular velocity for the joint by first differentiation. also means the desired value of angular acceleration, means the actual angular acceleration value. Therefore, the control unit 30 can calculate the amount of impact using values for joint position, speed, and acceleration without using torque or current through [Equation 11].

제어부(30)는 산출된 충격량의 크기에 따라 범위를 설정하고, 설정된 범위에 따라 로봇 매니퓰레이터(200)의 제어를 한다. 예를 들어 제어부(30)는 충격량이 0 ~ 3(N·s)이면 제1 범위로 설정하고, 충격량이 4(N·s) ~ 10(N·s)이면 제2 범위로 설정하며, 충격량이 11(N·s) 이상이면 제3 범위로 설정할 수 있으나, 이에 한정하지 않는다. The control unit 30 sets a range according to the size of the calculated impulse and controls the robot manipulator 200 according to the set range. For example, the control unit 30 sets the first range if the impulse amount is 0 to 3 (N·s), sets the second range if the impulse amount is 4 (N·s) to 10 (N·s), and sets the impulse amount to the first range. If it is 11 (N·s) or more, it can be set as the third range, but it is not limited to this.

제어부(30)는 충격량이 제1 범위에 포함되면 로봇 매니퓰레이터(200)의 구동 속도를 낮추는 제어, 구동 힘을 낮추는 제어 및 구동 패턴을 기 설정된 움직임 패턴으로 변경하는 제어 중 적어도 하나의 제어로 로봇 매니퓰레이터(200)를 구동시킨다. 여기서 구동 속도를 낮추는 제어는 로봇 매니퓰레이터(200)를 구동할 때 움직이는 속도를 기본 설정된 속도보다 낮추는 것을 의미하고, 구동 힘을 낮추는 제어는 로봇 매니퓰레이터(200)가 구동할 때 움직이는 힘을 기본 설정된 힘보다 낮추는 것을 의미한다. 또한 구동 패턴을 변경하는 제어는 로봇 매니퓰레이터(200)를 구동할 때 기본 설정된 움직임 패턴을 다음 우선순위로 설정된 움직임 패턴으로 변경하거나, 충돌이 발생된 위치를 회피하는 움직임 패턴으로 변경하는 것을 의미한다. 제어부(30)는 충격량이 제1 범위보다 큰 제2 범위에 포함되면 로봇 매니퓰레이터(200)의 구동을 일시 정지시키며, 충격량이 제2 범위보다 큰 제3 범위에 포함되면 로봇 매니퓰레이터의 구동을 완전 정지시킨다. The control unit 30 controls the robot manipulator 200 with at least one of a control to lower the driving speed of the robot manipulator 200 when the impulse amount is within the first range, a control to lower the driving force, and a control to change the drive pattern to a preset movement pattern. (200) is driven. Here, the control for lowering the driving speed means lowering the moving speed when driving the robot manipulator 200 than the default setting speed, and the control for lowering the driving force means lowering the moving force when driving the robot manipulator 200 than the default setting force. It means lowering. Additionally, control to change the driving pattern means changing the default movement pattern when driving the robot manipulator 200 to a movement pattern set as the next priority, or changing it to a movement pattern that avoids the location where a collision occurred. The control unit 30 temporarily stops the operation of the robot manipulator 200 when the impulse amount falls within the second range greater than the first range, and completely stops the operation of the robot manipulator 200 when the impulse quantity falls within the third range greater than the second range. I order it.

저장부(50)는 검출장치(100)를 구동하기 위한 알고리즘 또는 프로그램이 저장된다. 저장부(50)는 로봇 매니퓰레이터(100)의 관절각도, 관절의 각속도, 각가속도가 저장되고, 모터(250)의 전류량이 저장된다. 저장부(50)는 충격량에 따른 대응책이 각 단계별로 저장되고, 해당 정보가 룩업 테이블(lookup table) 형태로 저장될 수 있다. 저장부(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 an algorithm or program for driving the detection device 100. The storage unit 50 stores the joint angle, angular velocity, and angular acceleration of the robot manipulator 100, and stores the current amount of the motor 250. The storage unit 50 stores countermeasures according to the amount of impact at each stage, and the corresponding information may be stored in the form of a lookup table. The storage unit 50 includes a flash memory type, hard disk type, multimedia card micro type, card type memory (for example, SD or XD memory, etc.), Random Access Memory (RAM), Static Random Access Memory (SRAM), Read-Only Memory (ROM), Electrically Erasable Programmable Read-Only Memory (EEPROM), Programmable Read-Only Memory (PROM), magnetic memory, It may include at least one storage medium of a magnetic disk and an optical disk.

도 6은 본 발명의 실시예에 따른 토크 변화량을 기반으로 충격량을 산출하는 검출방법을 설명하기 위한 순서도이다.Figure 6 is a flowchart illustrating a detection method for calculating the amount of impact based on the amount of torque change according to an embodiment of the present invention.

도 1 및 도 6을 참조하면, 검출방법은 별도의 토크센서 또는 충격센서 없이, 시간지연제어기법을 이용하여 외부 충돌로 인해 발생되는 충격량을 산출한다. Referring to Figures 1 and 6, the detection method calculates the amount of impact generated by an external collision using a time delay control technique without a separate torque sensor or impact sensor.

S110 단계에서, 검출장치(100)는 모터(250)에 대한 전류량을 수신한다. 여기서 수신된 전류량은 관절의 토크를 간접적으로 추정하는 값이 된다. 즉 검출장치(100)는 별도의 토크센서 없이도 관절의 토크를 추정할 수 있다.In step S110, the detection device 100 receives the amount of current for the motor 250. Here, the amount of current received becomes a value that indirectly estimates the torque of the joint. That is, the detection device 100 can estimate the torque of the joint without a separate torque sensor.

S120 단계에서, 검출장치(100)는 외부와의 충돌로 발생되는 힘인 충격량을 산출한다. 검출장치(100)는 수신된 전류량을 이용하여 로봇 매니퓰레이터(200)의 관절에 대한 현재 시점의 토크 및 이전 시점의 토크를 산출한다. 검출장치(100)는 현재 시점의 토크 및 이전 시점의 토크에 대한 토크 변화량을 로봇 기구학에 의해 결정되는 자코비안 행렬에 적용하여 충격량을 산출한다. 이때 검출장치(100)는 전술된 [수학식 9]를 이용하여 충격량을 산출할 수 있다.In step S120, the detection device 100 calculates the amount of impact, which is the force generated by a collision with the outside. The detection device 100 uses the received amount of current to calculate the torque at the current time and the torque at the previous time for the joints of the robot manipulator 200. The detection device 100 calculates the amount of impulse by applying the torque change amount with respect to the torque at the current time and the torque at the previous time to the Jacobian matrix determined by robot kinematics. At this time, the detection device 100 can calculate the amount of impact using [Equation 9] described above.

S130 단계에서, 검출장치(100)는 산출된 충격량에 대응되는 구동 제어를 수행한다. 검출장치(100)는 충격량의 크기에 따라 범위를 설정하고, 설정된 범위에 따라 로봇 매니퓰레이터(200)의 제어를 한다. In step S130, the detection device 100 performs drive control corresponding to the calculated impulse amount. The detection device 100 sets a range according to the size of the impulse and controls the robot manipulator 200 according to the set range.

도 7은 본 발명의 실시예에 따른 관절각도 기반의 변수값을 기반으로 충격량을 산출하는 검출방법을 설명하기 위한 순서도이다.Figure 7 is a flowchart illustrating a detection method for calculating the amount of impact based on a joint angle-based variable value according to an embodiment of the present invention.

도 1 및 도 7을 참조하면, 검출방법은 별도의 토크센서 또는 충격센서 없이, 로봇 매니퓰레이터의 관절 기반 변수(관절각도, 각속도, 각가속도)를 이용하여 외부 충돌로 인해 발생되는 충격량을 산출한다. Referring to Figures 1 and 7, the detection method calculates the amount of shock generated by an external collision using joint-based variables (joint angle, angular velocity, and angular acceleration) of the robot manipulator without a separate torque sensor or impact sensor.

S210 단계에서, 검출장치(100)는 관절각도 기반의 변수값을 수신한다. 즉 검출장치(100)는 각 관절(213)에 포함된 엔코더로부터 관절각도를 수신한다. 바람직하게는 인터페이스(10)는 복수의 관절(213) 중 최상부(말단) 암과 연결된 관절의 엔코더로부터 관절각도를 수신할 수 있으나, 이에 한정하지 않고 모든 관절의 엔코더로부터 관절각도를 수신할 수 있다.In step S210, the detection device 100 receives a variable value based on the joint angle. That is, the detection device 100 receives the joint angle from the encoder included in each joint 213. Preferably, the interface 10 may receive a joint angle from an encoder of a joint connected to the uppermost (distal) arm of the plurality of joints 213, but is not limited to this and may receive a joint angle from an encoder of all joints. .

S220 단계에서, 검출장치(100)는 외부와의 충돌로 발생되는 힘인 충격량을 산출한다. 검출장치(100)는 수신된 관절각도를 이용하여 로봇 매니퓰레이터(200)의 관절에 대한 각속도 및 각가속도를 산출한다. 검출장치(100)는 관절각도, 각속도 및 각가속도를 로봇 기구학에 의해 결정되는 자코비안 행렬에 적용하여 충격량을 산출한다. 이때 검출장치(100)는 전술된 [수학식 11]을 이용하여 충격량을 산출할 수 있다. In step S220, the detection device 100 calculates the amount of impact, which is the force generated by the collision with the outside. The detection device 100 calculates the angular velocity and angular acceleration of the joints of the robot manipulator 200 using the received joint angles. The detection device 100 calculates the impulse by applying the joint angle, angular velocity, and angular acceleration to the Jacobian matrix determined by robot kinematics. At this time, the detection device 100 can calculate the amount of impact using [Equation 11] described above.

S230 단계에서, 검출장치(100)는 산출된 충격량에 대응되는 구동 제어를 수행한다. 검출장치(100)는 충격량의 크기에 따라 범위를 설정하고, 설정된 범위에 따라 로봇 매니퓰레이터(200)의 제어를 한다. In step S230, the detection device 100 performs drive control corresponding to the calculated impulse amount. The detection device 100 sets a range according to the size of the impulse and controls the robot manipulator 200 according to the set range.

도 8은 본 발명의 실시예에 따른 컴퓨팅 장치를 설명하기 위한 블록도이다. 도 8의 컴퓨팅 장치(TN100)는 본 명세서에서 기술된 장치(예, 검출장치 등) 일 수 있다. Figure 8 is a block diagram for explaining a computing device according to an embodiment of the present invention. The computing device TN100 of FIG. 8 may be a device (eg, a detection device, etc.) described herein.

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

프로세서(TN110)는 메모리(TN130) 및 저장 장치(TN140) 중에서 적어도 하나에 저장된 프로그램 명령(program command)을 실행할 수 있다. 프로세서(TN110)는 중앙 처리 장치(CPU: central processing unit), 그래픽 처리 장치(GPU: graphics processing unit), 또는 본 발명의 실시예에 따른 방법들이 수행되는 전용의 프로세서를 의미할 수 있다. 프로세서(TN110)는 본 발명의 실시예와 관련하여 기술된 절차, 기능, 및 방법 등을 구현하도록 구성될 수 있다. 프로세서(TN110)는 컴퓨팅 장치(TN100)의 각 구성 요소를 제어할 수 있다.The processor TN110 may execute a program command stored in at least one of the memory TN130 and the storage device TN140. The processor TN110 may refer to 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. Processor TN110 may be configured to implement procedures, functions, and methods described in connection with 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 may be comprised of at least one of a volatile storage medium and a non-volatile storage medium. For example, the memory TN130 may be comprised of at least one of read only memory (ROM) and random access memory (RAM).

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

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

이상에서 본 발명의 실시예에 대하여 상세하게 설명하였지만 본 발명의 권리범위는 이에 한정되는 것은 아니고 다음의 청구범위에서 정의하고 있는 본 발명의 기본 개념을 이용한 통상의 기술자의 여러 변형 및 개량 형태 또한 본 발명의 권리범위에 속하는 것이다.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 are also possible. It falls within the scope of invention rights.

10: 인터페이스부
30: 제어부
50: 저장부
100: 검출장치
200: 로봇 매니퓰레이터
210: 매니퓰레이터
211: 베이스
212: 암
213: 관절
230: 엔드 이펙터
231: 본체
232: 센서
233: 작업툴
250: 모터
300: 검출시스템
10: Interface part
30: control unit
50: storage unit
100: detection device
200: Robot manipulator
210: Manipulator
211: base
212: cancer
213: joints
230: End effector
231: body
232: sensor
233: Work tools
250: motor
300: detection system

Claims (10)

로봇 매니퓰레이터의 관절에 대한 관절각도를 수신하는 인터페이스부; 및
상기 관절각도를 이용하여 상기 관절의 각속도 및 각가속도를 산출하고, 상기 관절각도, 상기 각속도 및 상기 각가속도를 로봇 기구학에 의해 결정되는 자코비안 행렬에 적용하여 외부와의 충돌로 발생되는 힘인 충격량을 산출하고, 상기 산출된 충격량의 크기에 따라 범위를 설정하며, 상기 설정된 범위에 따라 상기 로봇 매니퓰레이터의 제어를 하는 제어부;를 포함하되,
상기 제어부는,
상기 충격량이 제1 범위에 포함되면 상기 로봇 매니퓰레이터의 구동 속도를 낮추는 제어, 구동 힘을 낮추는 제어 및 구동 패턴을 기 설정된 움직임 패턴으로 변경하는 제어 중 적어도 하나의 제어로 상기 로봇 매니퓰레이터를 구동시키고, 상기 충격량이 상기 제1 범위보다 큰 제2 범위에 포함되면 상기 로봇 매니퓰레이터의 구동을 일시 정지시키며, 상기 충격량이 상기 제2 범위보다 큰 제3 범위에 포함되면 상기 로봇 매니퓰레이터의 구동을 완전 정지시키는 것을 특징으로 하는 로봇 매니퓰레이터의 충격량을 산출하는 검출장치.
An interface unit that receives joint angles for joints of the robot manipulator; and
Calculate the angular velocity and angular acceleration of the joint using the joint angle, and apply the joint angle, the angular velocity, and the angular acceleration to the Jacobian matrix determined by robot kinematics to calculate the impulse, which is a force generated by collision with the outside, , a control unit that sets a range according to the size of the calculated impulse and controls the robot manipulator according to the set range;
The control unit,
When the impulse amount falls within the first range, the robot manipulator is driven by at least one control selected from the group consisting of a control for lowering the driving speed of the robot manipulator, a control for lowering the driving force, and a control for changing the drive pattern to a preset movement pattern, When the impulse amount falls within a second range greater than the first range, the operation of the robot manipulator is temporarily stopped, and when the impulse quantity falls within a third range greater than the second range, the operation of the robot manipulator is completely stopped. A detection device that calculates the amount of impact of a robot manipulator.
제 1항에 있어서,
상기 제어부는,
상기 관절각도의 원하는 위치와 실제 위치를 차이를 나타내는 관절각도 오차, 상기 관절각도 오차를 미분한 관절의 각속도 오차, 상기 관절의 원하는 각가속도 및 실제 각가속도를 이용하여 상기 충격량을 산출하는 것을 특징으로 하는 로봇 매니퓰레이터의 충격량을 산출하는 검출장치.
According to clause 1,
The control unit,
A robot characterized in that the impulse is calculated using a joint angle error representing the difference between the desired position and the actual position of the joint angle, the angular velocity error of the joint obtained by differentiating the joint angle error, and the desired angular acceleration and actual angular acceleration of the joint. A detection device that calculates the amount of impulse of the manipulator.
제 2항에 있어서,
상기 제어부는,
하기 수학식을 이용하여 상기 충격량을 산출하는 것을 특징으로 하는 로봇 매니퓰레이터의 충격량을 산출하는 검출장치.
[수학식]

(여기서 I는 충격량을 의미하고, J는 자코비안 행렬을 의미하며, 는 관성 게인 행렬을 의미하고, 는 사용자가 원하는 관절의 각가속도를 의미하며, 는 한 제어 샘플 주기의 이전 시점에서의 각가속도를 의미하고, 는 양의 상수 대각행렬의 형태를 가지는 댐핑 상수와 관련된 피드백 게인 행렬이며, 는 각속도의 오차 벡터(1차미분)를 의미하고, 는 양의 상수 대각행렬의 형태를 가지는 스프링 상수와 관련된 피드백 게인 행렬을 의미하며, 는 위치 오차 벡터를 의미하고, βt는 제어 샘플 주기를 의미함)
According to clause 2,
The control unit,
A detection device for calculating the amount of impact of a robot manipulator, characterized in that the amount of impact is calculated using the following equation.
[Equation]

(Here I refers to the impulse, J refers to the Jacobian matrix, means the inertia gain matrix, means the angular acceleration of the joint desired by the user, means the angular acceleration at the previous point in one control sample period, is the feedback gain matrix associated with the damping constant, which has the form of a positive constant diagonal matrix, means the error vector (first derivative) of the angular velocity, refers to the feedback gain matrix related to the spring constant in the form of a positive constant diagonal matrix, means the position error vector, and βt means the control sample period)
삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 검출장치가 로봇 매니퓰레이터의 관절에 대한 관절각도를 수신하는 단계;
상기 검출장치가 상기 관절각도를 이용하여 상기 관절의 각속도 및 각가속도를 산출하는 단계;
상기 검출장치가 상기 관절각도, 상기 각속도 및 상기 각가속도를 로봇 기구학에 의해 결정되는 자코비안 행렬에 적용하여 외부와의 충돌로 발생되는 힘인 충격량을 산출하는 단계; 및
상기 검출장치가 상기 산출된 충격량의 크기에 따라 범위를 설정하고, 상기 설정된 범위에 따라 상기 로봇 매니퓰레이터를 제어하는 단계;를 포함하되,
상기 로봇 매니퓰레이터의 제어를 하는 단계는,
상기 충격량이 제1 범위에 포함되면 상기 로봇 매니퓰레이터의 구동 속도를 낮추는 제어, 구동 힘을 낮추는 제어 및 구동 패턴을 기 설정된 움직임 패턴으로 변경하는 제어 중 적어도 하나의 제어로 상기 로봇 매니퓰레이터를 구동시키고, 상기 충격량이 상기 제1 범위보다 큰 제2 범위에 포함되면 상기 로봇 매니퓰레이터의 구동을 일시 정지시키며, 상기 충격량이 상기 제2 범위보다 큰 제3 범위에 포함되면 상기 로봇 매니퓰레이터의 구동을 완전 정지시키는 것을 특징으로 하는 로봇 매니퓰레이터의 충격량을 산출하는 검출방법.
A detection device receiving joint angles for joints of a robot manipulator;
calculating, by the detection device, the angular velocity and angular acceleration of the joint using the joint angle;
Calculating an impulse, which is a force generated by a collision with an outside, by the detection device applying the joint angle, the angular velocity, and the angular acceleration to a Jacobian matrix determined by robot kinematics; and
Including, the detection device setting a range according to the size of the calculated impulse, and controlling the robot manipulator according to the set range,
The step of controlling the robot manipulator is,
When the impulse amount falls within the first range, the robot manipulator is driven by at least one control selected from the group consisting of a control for lowering the driving speed of the robot manipulator, a control for lowering the driving force, and a control for changing the drive pattern to a preset movement pattern, When the impulse amount falls within a second range greater than the first range, the operation of the robot manipulator is temporarily stopped, and when the impulse quantity falls within a third range greater than the second range, the operation of the robot manipulator is completely stopped. A detection method for calculating the amount of impact of a robot manipulator.
삭제delete
KR1020220050820A 2022-04-25 2022-04-25 Detecting device and method for calculating amount of impact of robot manipulator KR102643316B1 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020220050820A KR102643316B1 (en) 2022-04-25 2022-04-25 Detecting device and method for calculating amount of impact of robot manipulator
KR1020240024051A KR102645792B1 (en) 2022-04-25 2024-02-20 Detecting device and method for calculating amount of impact of robot manipulator

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020220050820A KR102643316B1 (en) 2022-04-25 2022-04-25 Detecting device and method for calculating amount of impact of robot manipulator

Related Child Applications (1)

Application Number Title Priority Date Filing Date
KR1020240024051A Division KR102645792B1 (en) 2022-04-25 2024-02-20 Detecting device and method for calculating amount of impact of robot manipulator

Publications (2)

Publication Number Publication Date
KR20230151296A KR20230151296A (en) 2023-11-01
KR102643316B1 true KR102643316B1 (en) 2024-03-04

Family

ID=88746528

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020220050820A KR102643316B1 (en) 2022-04-25 2022-04-25 Detecting device and method for calculating amount of impact of robot manipulator
KR1020240024051A KR102645792B1 (en) 2022-04-25 2024-02-20 Detecting device and method for calculating amount of impact of robot manipulator

Family Applications After (1)

Application Number Title Priority Date Filing Date
KR1020240024051A KR102645792B1 (en) 2022-04-25 2024-02-20 Detecting device and method for calculating amount of impact of robot manipulator

Country Status (1)

Country Link
KR (2) KR102643316B1 (en)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003025272A (en) * 2001-05-08 2003-01-29 Mitsubishi Electric Corp Robot control device

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101214685B1 (en) * 2011-03-23 2013-01-09 고려대학교 산학협력단 Method for controlling robot manipulator device based on frequency analysys of impact on the device
KR102226122B1 (en) 2020-04-22 2021-03-11 주식회사 뉴로메카 Method for setting collision sensitivity automatically for cooperative robot

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003025272A (en) * 2001-05-08 2003-01-29 Mitsubishi Electric Corp Robot control device

Also Published As

Publication number Publication date
KR20240026170A (en) 2024-02-27
KR102645792B1 (en) 2024-03-07
KR20230151296A (en) 2023-11-01

Similar Documents

Publication Publication Date Title
US10828769B2 (en) Ascertaining an input command for a robot, said input command being entered by manually exerting a force onto the robot
JP5327722B2 (en) Robot load estimation apparatus and load estimation method
JP6895242B2 (en) Robot control device, robot control method and picking device
KR101973709B1 (en) Method of collision detection of robot arm manipulator
US8483877B2 (en) Workspace safe operation of a force- or impedance-controlled robot
De Schutter A study of active compliant motion control methods for rigid manipulators based on a generic scheme
Karayiannidis et al. In-hand manipulation using gravity and controlled slip
JP6044511B2 (en) Robot control method and robot system
EP3646996B1 (en) Control apparatus and robot teaching control method
US11602863B2 (en) Device, method and program for estimating weight and position of gravity center of load by using robot
EP3946819A1 (en) Multi-body controller and robot
CN108748144A (en) A kind of collision recognition method of man-machine collaboration mechanical arm
KR102643316B1 (en) Detecting device and method for calculating amount of impact of robot manipulator
Safeea et al. Precise hand-guiding of redundant manipulators with null space control for in-contact obstacle navigation
Carelli et al. Algorithms for stable control of mobile robots with obstacle avoidance
JP5569953B2 (en) Robot control system, robot control method, robot control apparatus, and program applied to high-speed and high-precision contact work
JPH01310889A (en) Controller for industrial robot
Shimamoto et al. Performance Evaluation of Force Control and Reaction Force Estimation in Force Sensorless Hybrid Control for Workspace Based Controller
JP2017019058A (en) Robot control device, robot, and robot system
Wu et al. Off-line programmed error compensation of an industrial robot in ship hull welding
KR101968751B1 (en) Collision sensing apparatus, end effector having the same, robot, and collision detection method using the same
CN114643581B (en) Double-mechanical-arm collision avoidance track planning method and system based on improved artificial potential field method
WO2024050729A1 (en) Robot teleoperation system and method
CN117400257A (en) Robot control method, apparatus, device and computer readable storage medium
CN117086870A (en) Model processing method, mechanical arm control method, device, equipment and storage medium

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
A107 Divisional application of patent
E701 Decision to grant or registration of patent right
GRNT Written decision to grant