[go: up one dir, main page]

KR102772458B1 - Method for preventing collision between human and robot in realtime and system for preventing collision in realtime using the same - Google Patents

Method for preventing collision between human and robot in realtime and system for preventing collision in realtime using the same Download PDF

Info

Publication number
KR102772458B1
KR102772458B1 KR1020240165123A KR20240165123A KR102772458B1 KR 102772458 B1 KR102772458 B1 KR 102772458B1 KR 1020240165123 A KR1020240165123 A KR 1020240165123A KR 20240165123 A KR20240165123 A KR 20240165123A KR 102772458 B1 KR102772458 B1 KR 102772458B1
Authority
KR
South Korea
Prior art keywords
robot
motion vector
person
information
skeleton
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
KR1020240165123A
Other languages
Korean (ko)
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 KR1020240165123A priority Critical patent/KR102772458B1/en
Application granted granted Critical
Publication of KR102772458B1 publication Critical patent/KR102772458B1/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/1674Programme controls characterised by safety, monitoring, diagnostic
    • B25J9/1676Avoiding collision or forbidden zones
    • 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
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1656Programme controls characterised by programming, planning systems for manipulators
    • B25J9/1664Programme controls characterised by programming, planning systems for manipulators characterised by motion, path, trajectory planning
    • B25J9/1666Avoiding collision or forbidden zones
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1694Programme controls characterised by use of sensors other than normal servo-feedback from position, speed or acceleration sensors, perception control, multi-sensor controlled systems, sensor fusion
    • B25J9/1697Vision controlled systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/70Determining position or orientation of objects or cameras
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V40/00Recognition of biometric, human-related or animal-related patterns in image or video data
    • G06V40/20Movements or behaviour, e.g. gesture recognition

Landscapes

  • Engineering & Computer Science (AREA)
  • Mechanical Engineering (AREA)
  • Robotics (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Human Computer Interaction (AREA)
  • Psychiatry (AREA)
  • Multimedia (AREA)
  • Social Psychology (AREA)
  • Computer Graphics (AREA)
  • Geometry (AREA)
  • Software Systems (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Manipulator (AREA)

Abstract

본 발명은 서울특별시 서울산업진흥원 2023년도 로봇 기술사업화 지원사업 (RO230017) "서비스 현장에 적합한 그리퍼 경량화 및 파지 성공률 90% 이상 정형/비정형 객체 인식 시스템 개발"을 통해 개발된 기술이다.
본 발명에 의하면, 사람과 로봇 간의 충돌을 방지하기 위한 실시간 충돌 방지 시스템에 있어서, 사람의 스켈레톤 정보를 추출하도록 구성된 사람 스켈레톤 추출부, 로봇의 스켈레톤 정보를 추출하도록 구성된 로봇 스켈레톤 추출부, 사람의 스켈레톤 정보 및 로봇의 스켈레톤 정보를 이용하여 각각 상기 사람의 움직임 벡터 및 상기 로봇의 움직임 벡터를 생성하도록 구성된 움직임 벡터 생성부, 및 사람의 움직임 벡터 및 로봇의 움직임 벡터에 기초하여 사람과 로봇 간의 충돌 위험도를 판단하도록 구성된 충돌 위험도 판단부를 포함하고, 사람의 스켈레톤 정보 및 로봇의 스켈레톤 정보는 각각 복수의 포인트에 대한 복수의 3차원 좌표 정보를 포함하는 것인, 실시간 충돌 방지 시스템을 제공할 수 있다.
The present invention is a technology developed through the Seoul Business Agency's 2023 Robot Technology Commercialization Support Project (RO230017) of the Seoul Metropolitan Government, "Development of a lightweight gripper suitable for service sites and a standardized/non-standardized object recognition system with a gripping success rate of 90% or higher."
According to the present invention, a real-time collision avoidance system for preventing collision between a person and a robot can be provided, comprising: a human skeleton extraction unit configured to extract human skeleton information; a robot skeleton extraction unit configured to extract robot skeleton information; a motion vector generation unit configured to generate a motion vector of the person and a motion vector of the robot using the human skeleton information and the robot skeleton information, respectively; and a collision risk determination unit configured to determine a collision risk between the person and the robot based on the human motion vector and the robot motion vector, wherein the human skeleton information and the robot skeleton information each include a plurality of three-dimensional coordinate information for a plurality of points.

Description

사람과 로봇 간의 충돌을 방지하기 위한 실시간 충돌 방지 방법 및 이를 이용한 실시간 충돌 방지 시스템{METHOD FOR PREVENTING COLLISION BETWEEN HUMAN AND ROBOT IN REALTIME AND SYSTEM FOR PREVENTING COLLISION IN REALTIME USING THE SAME}{METHOD FOR PREVENTING COLLISION BETWEEN HUMAN AND ROBOT IN REALTIME AND SYSTEM FOR PREVENTING COLLISION IN REALTIME USING THE SAME}

본 발명은 사람과 로봇 간의 충돌을 방지하기 위한 실시간 충돌 방지 방법 및 이를 이용한 실시간 충돌 방지 시스템에 관한 것이다. 보다 구체적으로, 본 발명은 로봇 공학 및 인간-로봇 상호작용 분야에 속하며, 사람과 로봇 간의 물리적 상호 작용중에 안전성을 향상시키기 위한 기술로, 특히 사람과 로봇의 3차원 스켈레톤 데이터를 이용하여 로봇의 동작을 제어함으로써 실시간 충돌을 방지하는 방법 및 시스템에 관한 것이다.The present invention relates to a real-time collision avoidance method for preventing collisions between humans and robots and a real-time collision avoidance system using the same. More specifically, the present invention belongs to the field of robotics and human-robot interaction, and is a technology for improving safety during physical interaction between humans and robots, and particularly relates to a method and system for preventing real-time collisions by controlling the movement of a robot using three-dimensional skeleton data of a human and a robot.

본 발명은 서울특별시 서울산업진흥원 2023년도 로봇 기술사업화 지원사업 (RO230017) "서비스 현장에 적합한 그리퍼 경량화 및 파지 성공률 90% 이상 정형/비정형 객체 인식 시스템 개발"을 통해 개발된 기술이다.The present invention is a technology developed through the Seoul Business Agency's 2023 Robot Technology Commercialization Support Project (RO230017) of the Seoul Metropolitan Government, "Development of a lightweight gripper suitable for service sites and a standardized/non-standardized object recognition system with a gripping success rate of 90% or higher."

최근 로봇 기술의 발달로 산업 현장과 서비스 분야 등에서 로봇의 활용이 증가함에 따라 사람과 로봇이 동일한 공간에서 작업하는 사례가 늘어나고 있다. 이에 따라 로봇과 인간의 물리적 상호작용이 증가함에 따라, 사람과 로봇 간의 충돌 위험이 존재하며, 안정성 확보가 중요한 과제로 대두되고 있다. Recently, with the development of robot technology, the use of robots in industrial sites and service fields has increased, and cases of people and robots working in the same space are increasing. Accordingly, as the physical interaction between robots and humans increases, the risk of collision between people and robots exists, and securing safety is emerging as an important issue.

기존의 로봇 충돌 방지 시스템은 주로 단순한 거리 센서나 2D 비전 시스템에 의존하여 정확성과 대응 방법에 한계가 있었다. 특히, 이러한 방법은 로봇의 작업 효율을 감소시키거나 복잡한 작업 환경에서 정확한 충돌 예측이 어려운 문제가 있다. 따라서, 보다 정교하고 효과적인 충돌 방지 및 안정성 향상 기술이 요구되고 있다. 특히, 사람의 움직임을 실시간으로 추적하고, 로봇의 움직임을 조정하는 기술이 필수적이다.Existing robot collision avoidance systems mainly rely on simple distance sensors or 2D vision systems, and have limitations in accuracy and response methods. In particular, these methods have problems in reducing the work efficiency of robots or making it difficult to accurately predict collisions in complex work environments. Therefore, more sophisticated and effective collision avoidance and stability enhancement technologies are required. In particular, technologies that track human movements in real time and adjust robot movements are essential.

(특허 문헌 0001) 대한민국 등록특허 제10-2369062호(Patent Document 0001) Republic of Korea Registered Patent No. 10-2369062

본 발명은 사람과 로봇의 움직임 벡터를 분석하여 충돌 위험도를 판단하고 로봇의 동작을 제어함으로써 사람과 로봇 간의 충돌을 방지할 수 있는 방법 및 시스템을 제공하는 것을 목적으로 한다.The purpose of the present invention is to provide a method and system capable of preventing collision between a person and a robot by analyzing the movement vectors of the person and the robot to determine the risk of collision and controlling the movement of the robot.

또한, 본 발명은 사람과 로봇의 스켈레톤 데이터를 이용하여 보다 효율적으로 사람과 로봇의 충돌 위험 판단하고 로봇의 움직임을 제어할 수 있는 방법 및 시스템을 제공하는 것을 목적으로 한다.In addition, the present invention aims to provide a method and system capable of more efficiently determining the risk of collision between a person and a robot and controlling the movement of a robot by using skeleton data of a person and a robot.

또한, 본 발명은 사람의 움직임을 실시간으로 추적하면서 충돌 위험도를 낮출 수 있는 로봇의 움직임 벡터 조정을 통해 보다 정교하고 효과적인 충돌 방지 및 안전성 향상 시스템을 제공하는 것을 목적으로 한다.In addition, the present invention aims to provide a more sophisticated and effective collision prevention and safety enhancement system by adjusting the motion vector of a robot that can reduce the risk of collision while tracking human movements in real time.

또한, 본 발명은 로봇과 사람의 작업 및 서비스 환경에서의 안전성을 향상시키고, 로봇의 작업 효율을 유지할 수 있는 방법 및 시스템을 제공하는 것을 목적으로 한다.In addition, the present invention aims to provide a method and system capable of improving safety in work and service environments of robots and humans and maintaining work efficiency of robots.

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

본 발명의 일 실시예에 따르면, 사람과 로봇 간의 충돌을 방지하기 위한 실시간 충돌 방지 시스템에 있어서,사람의 스켈레톤 정보를 추출하도록 구성된 사람 스켈레톤 추출부; 로봇의 스켈레톤 정보를 추출하도록 구성된 로봇 스켈레톤 추출부; 상기 사람의 스켈레톤 정보 및 상기 로봇의 스켈레톤 정보를 이용하여 각각 상기 사람의 움직임 벡터 및 상기 로봇의 움직임 벡터를 생성하도록 구성된 움직임 벡터 생성부; 및 상기 사람의 움직임 벡터 및 상기 로봇의 움직임 벡터에 기초하여 상기 사람과 상기 로봇 간의 충돌 위험도를 판단하도록 구성된 충돌 위험도 판단부를 포함하고, 상기 사람의 스켈레톤 정보 및 상기 로봇의 스켈레톤 정보는 각각 복수의 포인트에 대한 복수의 3차원 좌표 정보를 포함하는 것인, 실시간 충돌 방지 시스템을 제공할 수 있다.According to one embodiment of the present invention, a real-time collision avoidance system for preventing collision between a person and a robot can be provided, comprising: a human skeleton extraction unit configured to extract skeleton information of a person; a robot skeleton extraction unit configured to extract skeleton information of a robot; a motion vector generation unit configured to generate a motion vector of the person and a motion vector of the robot, respectively, using the skeleton information of the person and the skeleton information of the robot; and a collision risk determination unit configured to determine a collision risk between the person and the robot based on the motion vector of the person and the motion vector of the robot, wherein the skeleton information of the person and the skeleton information of the robot each include a plurality of pieces of three-dimensional coordinate information for a plurality of points.

또한, 상기 충돌 위험도 판단부는 상기 사람의 스켈레톤 정보에 포함된 복수의 3차원 좌표 정보와 상기 로봇의 스켈레톤 정보에 포함된 복수의 3차원 좌표 정보를 이용하여 상기 사람과 상기 로봇 사이의 최단 거리를 추출하고, 상기 최단 거리의 크기에 기초하여 상기 충돌 위험도를 판단하도록 구성될 수 있다.In addition, the collision risk determination unit may be configured to extract the shortest distance between the person and the robot by using a plurality of three-dimensional coordinate information included in the skeleton information of the person and a plurality of three-dimensional coordinate information included in the skeleton information of the robot, and determine the collision risk based on the size of the shortest distance.

또한, 상기 움직임 벡터 생성부는 미리 설정된 시간 간격에 따라 저장된 복수의 포인트에 대한 3차원 좌표 정보를 이용하여 이전 프레임과 현재 프레임 간의 차이를 이용하여 상기 사람의 움직임 벡터 및 상기 로봇의 움직임 벡터를 생성하도록 구성될 수 있다.In addition, the motion vector generation unit may be configured to generate the motion vector of the person and the motion vector of the robot by using the difference between the previous frame and the current frame using three-dimensional coordinate information for a plurality of points stored according to a preset time interval.

또한, 상기 움직임 벡터 생성부에서 생성된 복수의 움직임 벡터 중 적어도 하나의 특정 움직임 벡터를 필터링하도록 구성된 벡터 필터링부를 더 포함하고, 상기 충돌 위험도 판단부는 상기 벡터 필터링부에서 필터링된 움직임 벡터를 이용하여 상기 사람과 상기 로봇 간의 충돌 위험도를 판단하도록 구성될 수 있다.In addition, the device may further include a vector filtering unit configured to filter at least one specific motion vector among a plurality of motion vectors generated by the motion vector generating unit, and the collision risk determination unit may be configured to determine the collision risk between the person and the robot using the motion vector filtered by the vector filtering unit.

또한, 상기 벡터 필터링부는 복수의 포인트 중 미리 설정된 특정 영역의 포인트에 대한 움직임 벡터를 필터링하도록 구성될 수 있다.Additionally, the vector filtering unit may be configured to filter a motion vector for a point in a preset specific area among a plurality of points.

또한, 상기 벡터 필터링부는 상기 사람과 상기 로봇의 포인트 사이의 거리, 벡터의 크기 및 영역 정보 중 적어도 하나에 기초하여 움직임 벡터를 필터링하도록 구성될 수 있다.Additionally, the vector filtering unit may be configured to filter the motion vector based on at least one of the distance between the point of the person and the robot, the size of the vector, and area information.

또한, 상기 영역 정보는 손 또는 얼굴 영역인지 여부와 관련된 정보이며, 상기 영역 정보에 기초한 가중치를 적용하여 상기 움직임 벡터를 계산하도록 구성될 수 있다.Additionally, the region information is information related to whether it is a hand or face region, and can be configured to calculate the motion vector by applying a weight based on the region information.

또한, 상기 충돌 위험도 판단부는 상기 사람의 움직임 벡터 및 상기 로봇의 움직임 벡터의 거리, 속도, 방향 중 적어도 하나를 이용하여 상기 충돌 위험도를 판단하도록 구성될 수 있다.In addition, the collision risk determination unit may be configured to determine the collision risk using at least one of the distance, speed, and direction of the motion vector of the person and the motion vector of the robot.

또한, 상기 충돌 위험도가 미리 결정된 기준 이상인 경우 충돌 위험도를 낮추기 위해 상기 로봇의 움직임 경로를 변경하도록 구성된 로봇 움직임 조정부를 더 포함할 수 있다.In addition, the robot movement control unit may further be configured to change the movement path of the robot to reduce the collision risk if the collision risk exceeds a predetermined standard.

또한, 상기 로봇 움직임 조정부는 상기 충돌 위험도가 제1 레벨인 경우 상기 로봇의 움직임 속도를 감소시키도록 구성되고, 상기 충돌 위험도가 상기 제1 레벨보다 높은 제2 레벨인 경우 상기 로봇의 움직임 속도 및 방향을 모두 변경하도록 구성될 수 있다.Additionally, the robot movement control unit may be configured to reduce the movement speed of the robot when the collision risk is at the first level, and may be configured to change both the movement speed and direction of the robot when the collision risk is at a second level higher than the first level.

또한, 상기 로봇 움직임 조정부는 상기 사람의 움직임 벡터를 이용하여 조정된 로봇의 움직임 벡터에 기초하여 상기 로봇의 움직임 경로를 변경하도록 구성될 수 있다.Additionally, the robot movement control unit may be configured to change the movement path of the robot based on a motion vector of the robot adjusted using the motion vector of the human.

또한, 상기 로봇 스켈레톤 추출부는 상기 로봇의 관절 각도에 기초하여 로봇 좌표계와 카메라 좌표계의 변환을 이용하여 상기 로봇의 3차원 스켈레톤 데이터를 획득하도록 구성될 수 있다.In addition, the robot skeleton extraction unit may be configured to obtain three-dimensional skeleton data of the robot by using transformation of the robot coordinate system and the camera coordinate system based on the joint angle of the robot.

본 발명의 다른 실시예에 따르면, 사람과 로봇 간의 충돌을 방지하기 위한 실시간 충돌 방지 방법에 있어서, 사람 스켈레톤 추출부에 의해 사람의 스켈레톤 정보를 추출하는 단계; 로봇 스켈레톤 추출부에 의해 로봇의 스켈레톤 정보를 추출하는 단계; 움직임 벡터 생성부에 의해, 상기 사람의 스켈레톤 정보 및 상기 로봇의 스켈레톤 정보를 이용하여 각각 상기 사람의 움직임 벡터 및 상기 로봇의 움직임 벡터를 생성하는 단계; 및 충돌 위험도 판단부에 의해, 상기 사람의 움직임 벡터 및 상기 로봇의 움직임 벡터에 기초하여 상기 사람과 상기 로봇 간의 충돌 위험도를 판단하는 단계를 포함하고, 상기 사람의 스켈레톤 정보 및 상기 로봇의 스켈레톤 정보는 각각 복수의 포인트에 대한 복수의 3차원 좌표 정보를 포함하는 것인, 실시간 충돌 방지 방법을 제공할 수 있다.According to another embodiment of the present invention, a real-time collision avoidance method for preventing collision between a person and a robot can be provided, comprising: a step of extracting skeleton information of a person by a human skeleton extraction unit; a step of extracting skeleton information of a robot by a robot skeleton extraction unit; a step of generating a motion vector of the person and a motion vector of the robot, respectively, by a motion vector generation unit using the skeleton information of the person and the skeleton information of the robot; and a step of determining a collision risk between the person and the robot based on the motion vector of the person and the motion vector of the robot, wherein the skeleton information of the person and the skeleton information of the robot each include a plurality of three-dimensional coordinate information for a plurality of points.

본 발명에 의하면, 사람과 로봇의 움직임 벡터를 분석하여 충돌 위험도를 판단하고 로봇의 동작을 제어함으로써 사람과 로봇 간의 충돌을 방지할 수 있는 방법 및 시스템을 제공할 수 있다.According to the present invention, a method and system capable of preventing collision between a person and a robot can be provided by analyzing the movement vectors of a person and a robot to determine the risk of collision and controlling the movement of the robot.

또한, 본 발명에 의하면, 사람과 로봇의 스켈레톤 데이터를 이용하여 보다 효율적으로 사람과 로봇의 충돌 위험 판단하고 로봇의 움직임을 제어할 수 있는 방법 및 시스템을 제공할 수 있다.In addition, according to the present invention, a method and system can be provided that can more efficiently determine the risk of collision between a person and a robot and control the movement of a robot by using skeleton data of a person and a robot.

또한, 본 발명에 의하면, 사람의 움직임을 실시간으로 추적하면서 충돌 위험도를 낮출 수 있는 로봇의 움직임 벡터 조정을 통해 보다 정교하고 효과적인 충돌 방지 및 안전성 향상 시스템을 제공할 수 있다.In addition, according to the present invention, a more sophisticated and effective collision prevention and safety enhancement system can be provided by adjusting the motion vector of a robot to reduce the risk of collision while tracking human movement in real time.

또한, 본 발명에 의하면, 로봇과 사람의 작업 및 서비스 환경에서의 안전성을 향상시키고, 로봇의 작업 효율을 유지할 수 있는 방법 및 시스템을 제공할 수 있다.In addition, according to the present invention, a method and system can be provided that can improve safety in the work and service environment of robots and humans and maintain the work efficiency of the robot.

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

도 1은 본 발명의 일 실시예에 따른 사람과 로봇 간의 실시간 충돌 방지 시스템의 구성을 설명하기 위한 블록도이다.
도 2a 내지 도 2c는 본 발명의 일 실시예에 따른 사람의 스켈레톤을 추출하기 위한 과정을 설명하기 위한 예시도이다.
도 3a 내지 도 3d는 본 발명의 일 실시예에 따른 로봇의 스켈레톤을 추출하기 위한 과정을 설명하기 위한 예시도이다.
도 4는 본 발명의 일 실시예에 따른 벡터 생성 과정을 설명하기 위한 예시도이다.
도 5는 본 발명의 일 실시예에 사람과 로봇 간의 충돌을 방지하기 위한 실시간 충돌 방지 방법을 설명하기 위한 흐름도이다.
FIG. 1 is a block diagram illustrating the configuration of a real-time collision avoidance system between a person and a robot according to one embodiment of the present invention.
FIGS. 2A to 2C are exemplary diagrams for explaining a process for extracting a human skeleton according to one embodiment of the present invention.
FIGS. 3A to 3D are exemplary diagrams for explaining a process for extracting a skeleton of a robot according to one embodiment of the present invention.
Figure 4 is an exemplary diagram for explaining a vector generation process according to one embodiment of the present invention.
FIG. 5 is a flowchart illustrating a real-time collision avoidance method for preventing collision between a person and a robot according to one embodiment of the present invention.

아래에서는 첨부한 도면을 참조하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 본 발명의 실시예가 상세하게 설명된다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다. 그리고, 도면에서 본 발명의 실시예를 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략되었다.Below, with reference to the attached drawings, embodiments of the present invention are 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 embodiments of the present invention in the drawings, parts that are not related to the description are omitted.

본 명세서에서 사용된 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도로 사용된 것이 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함할 수 있다.The terminology used in this specification is for the purpose of describing particular embodiments only and is not intended to limit the invention. The singular expression may include the plural expression unless the context clearly indicates otherwise.

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

또한, 본 발명의 실시예에 나타나는 구성부들은 서로 다른 특징적인 기능들을 나타내기 위해 독립적으로 도시되는 것으로, 각 구성부들이 분리된 하드웨어나 하나의 소프트웨어 구성단위로 이루어짐을 의미하지 않는다. 즉, 각 구성부는 설명의 편의상 각각의 구성부로 나열하여 기술되고, 각 구성부 중 적어도 두 개의 구성부가 합쳐져 하나의 구성부로 이루어지거나, 하나의 구성부가 복수 개의 구성부로 나뉘어져 기능을 수행할 수 있다. 이러한 각 구성부의 통합된 실시예 및 분리된 실시예도 본 발명의 본질에서 벗어나지 않는 한 본 발명의 권리 범위에 포함된다.In addition, the components shown in the embodiments of the present invention are independently depicted to indicate different characteristic functions, and do not mean that each component is formed as a separate hardware or software configuration unit. That is, each component is described by listing each component for convenience of explanation, and at least two components among each component may be combined to form one component, or one component may be divided into multiple components to perform a function. Such integrated embodiments and separated embodiments of each component are also included in the scope of the rights of the present invention as long as they do not deviate from the essence of the present invention.

또한, 이하의 실시예들은 당 업계에서 평균적인 지식을 가진 자에게 보다 명확하게 설명하기 위해서 제공되는 것으로서, 도면에서의 요소들의 형상 및 크기 등은 보다 명확한 설명을 위해 과장될 수 있다.In addition, the following examples are provided to more clearly explain to a person having average knowledge in the art, and the shapes and sizes of elements in the drawings may be exaggerated for more clear explanation.

이하, 첨부된 도면을 참조하여, 본 발명에 따른 바람직한 실시예에 대하여 설명한다.Hereinafter, with reference to the attached drawings, a preferred embodiment according to the present invention will be described.

도 1은 본 발명의 일 실시예에 따른 사람과 로봇 간의 실시간 충돌 방지 시스템의 구성을 설명하기 위한 블록도이다.FIG. 1 is a block diagram illustrating the configuration of a real-time collision avoidance system between a person and a robot according to one embodiment of the present invention.

도 1을 참조하면, 사람과 로봇 간의 충돌을 방지하기 위한 실시간 충돌 방지 시스템(100)은 통신부(110), 카메라부(120), 처리부(130)를 포함할 수 있으며, 필요에 따라 일부 구성 요소는 생략되거나 추가 구성 요소가 부가될 수도 있다.Referring to FIG. 1, a real-time collision avoidance system (100) for preventing collision between a person and a robot may include a communication unit (110), a camera unit (120), and a processing unit (130), and some components may be omitted or additional components may be added as needed.

여기서, 통신부(110)는 네트워크를 통해 실시간 충돌 방지 시스템(100) 내 각 구성 요소들의 통신을 수행하도록 구성되고, 또한 네트워크를 통해 외부 서버 또는 외부 장치로부터 필요한 정보를 수신하거나 획득한 정보를 외부 서버 또는 외부 장치로 송신하도록 구성되며, 여기서, 네트워크는 유선 또는 무선으로 연결되는 네트워크일 수 있다. 또한, 연결 네트워크는 외부 장치와 이동형 로봇이 직접 연결된 네트워크일 수 있으며, 중계기가 생성한 사설 네트워크일 수도 있다. 네트워크가 무선 통신망일 경우, 셀룰러 통신 또는 근거리 통신을 포함할 수 있다. 예컨대, 셀룰러 통신은 LTE(Long-Term Evolution), LTE-A(LTE Advanced), 5G(5th Generation), 6G(6th Generation), CDMA(Code Division Multiple Access), WCDMA(Wideband CDMA), UMTS(Universal Mobile Telecommunications System), WiBro(Wireless Broadband), 또는 GSM(Global System for Mobile Communications) 등 중 적어도 하나를 포함할 수 있다. 또한, 근거리 통신은 Wi-Fi(Wireless Fidelity), 블루투스(Bluetooth), 지그비(Zigbee), NFC(Near Field Communication) 또는 RFID(Radio Frequency Identification) 등 적어도 하나를 포함할 수 있다. 그러나, 통신 방법은 이에 한정되는 것은 아니며 차후 개발되는 무선 통신의 기술도 포함될 것이다.Here, the communication unit (110) is configured to perform communication between each component in the real-time collision avoidance system (100) through a network, and is also configured to receive necessary information from an external server or an external device through the network, or transmit acquired information to the external server or the external device. Here, the network may be a network connected wired or wirelessly. In addition, the connection network may be a network in which an external device and a mobile robot are directly connected, and may also be a private network created by a repeater. When the network is a wireless communication network, it may include cellular communication or short-range communication. For example, the cellular communication may include at least one of LTE (Long-Term Evolution), LTE-A (LTE Advanced), 5G (5th Generation), 6G (6th Generation), CDMA (Code Division Multiple Access), WCDMA (Wideband CDMA), UMTS (Universal Mobile Telecommunications System), WiBro (Wireless Broadband), or GSM (Global System for Mobile Communications). Additionally, the short-range communication may include at least one of Wi-Fi (Wireless Fidelity), Bluetooth, Zigbee, NFC (Near Field Communication), or RFID (Radio Frequency Identification). However, the communication method is not limited thereto, and future wireless communication technologies may also be included.

카메라부(120)는 실시간으로 작업 공간 내에서 사람 또는 로봇을 촬영하고 이미지를 획득하여 처리부(130)에 전달하여 이미지 처리를 수행하도록 구성될 수 있으며, 예컨대 각 물체의 RGB 이미지와 깊이(depth) 이미지를 획득하도록 구성될 수 있으며, 필요에 따라 복수의 카메라로 구성될 수 있다.The camera unit (120) can be configured to photograph a person or robot in a work space in real time, acquire an image, and transmit it to a processing unit (130) to perform image processing. For example, it can be configured to acquire an RGB image and a depth image of each object, and can be configured with a plurality of cameras as needed.

처리부(130)는 사람과 로봇의 3차원 스켈레톤 데이터를 추출하고, 시간에 따른 움직임 벡터를 분석하여 충돌 위험도를 판단하고, 이에 따라 현재 로봇의 움직임 벡터를 조정하고 제어함으로써 사람과 로봇 간의 충돌 위험도 판단 및 방지 프로세스를 수행하도록 구성되며, 중앙 처리 장치(CPU), 어플리케이션 프로세서(AP) 등을 포함할 수 있으며, 주문 제품 전달 시스템 내에 설치되거나 또는 통신부(110)를 통해 연결되도록 별도의 장치 또는 서버 내에 구성될 수도 있다.The processing unit (130) is configured to extract three-dimensional skeleton data of a human and a robot, analyze a motion vector over time to determine a collision risk, and adjust and control the current motion vector of the robot accordingly, thereby performing a collision risk determination and prevention process between a human and a robot. The processing unit may include a central processing unit (CPU), an application processor (AP), etc., and may be installed in the order product delivery system or configured in a separate device or server to be connected via a communication unit (110).

처리부(130)는 예컨대 사람 스켈레톤 추출부(131), 로봇 스켈레톤 추출부(132), 움직임 벡터 생성부(133), 벡터 필터링부(134), 충돌 위험도 판단부(135) 및 로봇 움직임 조정부(136)를 포함할 수 있으며, 이들 각각의 처리부에 포함된 프로그램 또는 프로그램 모듈들은 운영 체제(operating system), 어플리케이션 프로그램(application program) 또는 프로그램 등의 형태로 구성될 수 있으며, 널리 사용되는 다양한 종류의 저장 장치 상에 물리적으로 저장될 수 있다. 이와 같은 프로그램 또는 프로그램 모듈은 하나 이상의 루틴(routine), 서브루틴(subroutine), 프로그램(program), 오브젝트(object), 콤포넌트(component), 명령(instructions), 데이터 구조(data structure) 및 특정 작업(task)을 수행하거나 특정 데이터 유형을 실행하기 위한 다양한 형태를 포함할 수 있으며, 이들 형태로 제한되지 않는다. 이하에서는 처리부(130)의 각 구성 요소의 동작에 대해 순서대로 살펴볼 것이다.The processing unit (130) may include, for example, a human skeleton extraction unit (131), a robot skeleton extraction unit (132), a motion vector generation unit (133), a vector filtering unit (134), a collision risk determination unit (135), and a robot movement adjustment unit (136), and the programs or program modules included in each of these processing units may be configured in the form of an operating system, an application program, or a program, and may be physically stored on various types of widely used storage devices. Such a program or program module may include one or more routines, subroutines, programs, objects, components, instructions, data structures, and various forms for performing a specific task or executing a specific data type, but is not limited to these forms. Hereinafter, the operation of each component of the processing unit (130) will be examined in order.

사람 스켈레톤 추출부(131)Human Skeleton Extraction Unit (131)

사람 스켈레톤 추출부(131)는 카메라부(120)를 통해 획득한 이미지를 이용하여 사람의 스켈레톤 정보를 추출하도록 구성되며, 인간의 주요 관절 포인트를 감지하고 위치를 추정하는 역할을 수행한다. 사람 스켈레톤 추정에는 센서 데이터(주로 이미지나 깊이 정보)를 이용하는 방법 등 다양한 방법이 있을 수 있으며, 본 발명은 특정 방법에 한정되지 않으며, 다양한 스켈레톤 추정 방법을 적용할 수 있다.The human skeleton extraction unit (131) is configured to extract human skeleton information using an image acquired through the camera unit (120), and performs the role of detecting major human joint points and estimating their positions. There may be various methods for estimating a human skeleton, such as a method using sensor data (mainly images or depth information), and the present invention is not limited to a specific method, and various skeleton estimation methods can be applied.

사람 스켈레톤 추정 방법의 일 예시로서, YOLOv8과 같은 포즈 추정 비전 인공지능(AI) 모델과 깊이(Depth) 카메라의 깊이 정보를 결합하여 3차원 관절 좌표를 추정할 수 있다.As an example of a human skeleton estimation method, a pose estimation vision artificial intelligence (AI) model such as YOLOv8 and depth information from a depth camera can be combined to estimate 3D joint coordinates.

먼저, 데이터 수집 단계에서 카메라부(120)를 통해 RGB 이미지와 깊이 정보를 획득하고, 예컨대 도 2a에서와 같이 실시간으로 사람의 컬러 이미지를 수집하고, 깊이 정보는 Depth 카메라를 사용하여 각 픽셀에 대한 깊이 데이터를 얻을 수 있다. 이 깊이 정보는 카메라로부터 물체까지의 거리를 나타내며, RGB 이미지와 깊이 정보는 동기화되어 동일한 시간에 캡쳐되도록 한다.First, in the data collection stage, RGB images and depth information are acquired through the camera unit (120), and, for example, a color image of a person is collected in real time as in Fig. 2a, and depth information can be acquired by using a depth camera to obtain depth data for each pixel. This depth information indicates the distance from the camera to the object, and the RGB image and depth information are synchronized so that they are captured at the same time.

다음으로, YOLOv8과 같은 인공지능 모델을 이용한 2D(2차원) 포즈 추정을 수행할 수 있다. YOLOv8은 실시간 객체 검출 및 포즈 추정을 위한 최신 딥러닝 모델로, 입력된 RGB 이미지를 처리하여 사람을 감지하고 2D 관절 위치를 추정할 수 있다. 이와 같은 인공지능 모델은 각 관절 i에 대한 2D 좌표 (u_i, v_i)를 출력하며, 주요 관절에는 머리, 어깨, 팔꿈치, 손목, 엉덩이, 무릎, 발목 등이 포함된다. 도 2b에서와 같이 총 N = 17개의 관절을 추정하여, 이와 같은 2D 포즈 모델의 기본 설정에서는 17개의 키포인트가 있으며, 각 키포인트는 인체의 특정 부위를 나타낸다. 예컨대, 각 인덱스와 해당 신체 관절의 매핑은 다음과 같다: 0번은 코, 1번은 왼쪽 눈, 2번은 오른쪽 눈, 3번은 왼쪽 귀, 4번은 오른쪽 귀, 5번은 왼쪽 어깨, 6번은 오른쪽 어깨, 7번은 왼쪽 팔꿈치, 8번은 오른쪽 팔꿈치, 9번은 왼쪽 손목, 10번은 오른쪽 손목, 11번은 왼쪽 엉덩이, 12번은 오른쪽 엉덩이, 13번은 왼쪽 무릎, 14번은 오른쪽 무릎, 15번은 왼쪽 발목, 16번은 오른쪽 발목이다.Next, 2D (two-dimensional) pose estimation can be performed using an AI model such as YOLOv8. YOLOv8 is a state-of-the-art deep learning model for real-time object detection and pose estimation, which can detect people by processing the input RGB image and estimate 2D joint positions. Such an AI model outputs 2D coordinates (u_i, v_i) for each joint i, and the major joints include the head, shoulder, elbow, wrist, hip, knee, and ankle. As shown in Fig. 2b, a total of N = 17 joints are estimated, and there are 17 keypoints in the default setting of such a 2D pose model, and each keypoint represents a specific part of the human body. For example, the mapping of each index to its corresponding body joint is: 0 is the nose, 1 is the left eye, 2 is the right eye, 3 is the left ear, 4 is the right ear, 5 is the left shoulder, 6 is the right shoulder, 7 is the left elbow, 8 is the right elbow, 9 is the left wrist, 10 is the right wrist, 11 is the left hip, 12 is the right hip, 13 is the left knee, 14 is the right knee, 15 is the left ankle, and 16 is the right ankle.

마지막으로, 3차원 좌표로의 변환을 수행할 수 있다. 각 2D 관절 위치 (u_i, v_i)에 대응하는 깊이 값 d_i를 Depth 이미지에서 추출하고, 이 깊이 값은 해당 관절이 카메라로부터 얼마나 떨어져 있는지를 나타낸다. 이와 같이 인공지능 모델을 통해 획득한 2D 좌표와 깊이 이미지에서 추출한 깊이 정보를 결합하여 각 포인트에 대한 3차원 좌표를 최종적으로 얻음으로써, 사람의 3차원 스켈레톤 데이터를 획득할 수 있다.Finally, conversion to 3D coordinates can be performed. The depth value d_i corresponding to each 2D joint position (u_i, v_i) is extracted from the depth image, and this depth value indicates how far the corresponding joint is from the camera. In this way, by combining the 2D coordinates acquired through the AI model and the depth information extracted from the depth image, the 3D coordinates for each point are finally obtained, thereby obtaining 3D skeleton data of a person.

로봇 스켈레톤 추출부(132)Robot skeleton extraction unit (132)

로봇 스켈레톤 추출부(132)는 로봇의 스켈레톤 정보를 추출하도록 구성되고, 다관절로 구성되는 로봇의 주요 관절 포인트를 감지하고 위치를 추정하는 역할을 수행한다. 로봇 스켈레톤 추정에는 사람 스켈레톤 추출부(131)와 유사하게 카메라 이미지를 통해 수행가능할 것이나, 보다 정확하게 로봇의 API(application programming interface)를 이용하는 방법 등을 사용할 수 있다. 본 발명은 특정 로봇이나 방법에 한정되지 않으며, 다양한 로봇 스켈레톤 추정 방법을 적용할 수 있다는 것이다. 사용되는 센서나 라이브러리는 시스템의 요구사항과 로봇의 종류에 따라 변경될 수 있다.The robot skeleton extraction unit (132) is configured to extract skeleton information of the robot, and detects major joint points of the robot composed of multiple joints and estimates the positions. The robot skeleton estimation can be performed similarly to the human skeleton extraction unit (131) through a camera image, but more accurately, a method using the robot's API (application programming interface) can be used. The present invention is not limited to a specific robot or method, and various robot skeleton estimation methods can be applied. The sensors or libraries used can be changed according to the system requirements and the type of robot.

일 예시로, UR(Universal Robots) 로봇의 RTDE(Real-Time Data Exchange) 라이브러리를 이용하여 관절 각도와 같은 관절 관련 데이터를 얻은 다음, 도 3a에 도시된 바와 같은 Denavit-Hartenberg(DH) 파라미터를 활용하여 각 관절의 3차원 좌표로 변환하는 방법을 이용할 수 있다. 또한, 로봇의 로봇 팔의 손끝 좌표의 경우 Tool Center Point(TCP)를 API로부터 직접 가져와 사용할 수도 있다. 또한, 사람의 3차원 스켈레톤과 비교하기 위해 로봇 좌표계를 카메라 좌표계로 변환하는 작업을 수행할 수 있다.As an example, the RTDE (Real-Time Data Exchange) library of the Universal Robots (UR) robot can be used to obtain joint-related data such as joint angles, and then convert them into 3D coordinates of each joint using the Denavit-Hartenberg (DH) parameters as shown in Fig. 3a. In addition, for the coordinates of the fingertips of the robot arm of the robot, the Tool Center Point (TCP) can be obtained directly from the API and used. In addition, the robot coordinate system can be converted into the camera coordinate system in order to compare it with the 3D skeleton of a human.

보다 구체적으로, 로봇의 관절 각도란 로봇의 각 관절이 얼마나 회전하거나 이동했는지를 나타내는 값으로서, Denavit-Hartenberg(DH) 파라미터는 로봇의 각 링크와 관절의 관계를 수학적으로 표현하는 방법으로, 로봇의 기구학 모델을 구축하는 데 사용된다. 전방 기구학(Forward Kinematics)은 로봇의 관절 각도를 알고 있을 때, 로봇의 각 부위의 위치와 자세를 계산하는 방법이고, 캘리브레이션은 서로 다른 좌표계(예: 로봇 좌표계와 카메라 좌표계) 사이의 관계를 구하여 좌표를 변환할 수 있도록 하는 과정이다.More specifically, the joint angle of a robot is a value representing how much each joint of the robot rotates or moves, and the Denavit-Hartenberg (DH) parameter is a method to mathematically express the relationship between each link and joint of the robot, and is used to build a kinematic model of the robot. Forward kinematics is a method to calculate the position and posture of each part of the robot when the joint angle of the robot is known, and calibration is the process of finding the relationship between different coordinate systems (e.g., robot coordinate system and camera coordinate system) so that the coordinates can be converted.

먼저, 데이터 수집 단계에서 관절 각도(Joint Angle)를 획득하고, 로봇의 실시간 라이브러리를 이용하여 실시간으로 각 관절의 각도 값 θ_j를 수집할 수 있다. 로봇은 일반적으로 복수 개의 관절(예컨대 6개)을 가지고 있으며, 각 관절은 회전 운동을 수행한다.First, in the data collection stage, the joint angle is obtained, and the angle value θ_j of each joint can be collected in real time using the robot's real-time library. The robot generally has multiple joints (e.g., 6), and each joint performs a rotational motion.

그 다음으로, 3차원 좌표로의 변환을 수행한다. Denavit-Hartenberg(DH) 파라미터를 사용하여 로봇의 각 관절과 링크의 기하학적 관계를 나타내고, 이를 통해 전방 기구학(Forward Kinematics)을 수행하고, 각 링크에 대해 DH 파라미터 (aj, αj, dj, θj)를 정의할 수 있다. 여기서 aj는 링크 길이, αj는 링크의 꼬임 각도, dj는 링크 오프셋, θj는 관절 각도(실시간으로 측정된 값)이다. 로봇팔의 TCP(Tool Center Point) 좌표는 마지막 관절까지의 변환행렬을 이용하여 계산할 수 있으며, 또는 UR 로봇의 RTDE 라이브러리를 이용하여 직접 얻은 TCP(Tool Center Point) 좌표를 사용할 수도 있다. 이와 같은 과정을 통해 도 3b에서와 같이 로봇 베이스 좌표계를 기준으로 각 관절의 3차원 위치를 얻을 수 있다.Next, the transformation to 3D coordinates is performed. Using the Denavit-Hartenberg (DH) parameters, the geometric relationship between each joint and link of the robot can be expressed, and forward kinematics can be performed, and the DH parameters (a j , α j , d j , θ j ) can be defined for each link. Here, a j is the link length, α j is the twist angle of the link, d j is the link offset, and θ j is the joint angle (a value measured in real time). The TCP (Tool Center Point) coordinate of the robot arm can be calculated using the transformation matrix to the last joint, or the TCP (Tool Center Point) coordinate obtained directly using the RTDE library of the UR robot can be used. Through this process, the 3D position of each joint can be obtained with respect to the robot base coordinate system, as shown in Fig. 3b.

다음으로, 좌표계 변환을 수행한다. 사람의 스켈레톤 데이터와 비교하기 위해 로봇의 좌표계를 카메라 좌표계로 변환을 수행한다. 이를 위해 도 3c에서와 같이 아이 투 핸드 캘리브레이션(Eye To Hand Calibration)을 수행하여 두 좌표계 사이의 변환 행렬을 얻을 수 있다.Next, coordinate system transformation is performed. In order to compare with the human skeleton data, the robot's coordinate system is transformed into the camera coordinate system. To this end, as in Fig. 3c, eye-to-hand calibration can be performed to obtain a transformation matrix between the two coordinate systems.

최종적으로 카메라 좌표계를 기준으로 로봇의 각 관절에 대한 3차원 좌표를 획득함으로써 로봇의 스켈레톤 데이터를 추출할 수 있으며, 이 데이터는 이후 사람의 스켈레톤 데이터와 비교하여 충돌 방지 알고리즘에 활용될 수 있다.Finally, by obtaining the three-dimensional coordinates for each joint of the robot based on the camera coordinate system, the robot's skeleton data can be extracted, and this data can be used in a collision avoidance algorithm by comparing it with human skeleton data.

움직임 벡터 생성부(133)Motion vector generation unit (133)

움직임 벡터 생성부(133)는 사람의 스켈레톤 정보 및 로봇의 스켈레톤 정보를 이용하여 각각 사람의 움직임 벡터 및 로봇의 움직임 벡터를 생성하도록 구성되며, 미리 설정된 시간 간격에 따라 저장된 복수의 포인트에 대한 3차원 좌표 정보를 이용하여 이전 프레임과 현재 프레임 간의 차이를 이용하여 사람의 움직임 벡터 및 로봇의 움직임 벡터를 생성하도록 구성될 수 있다.The motion vector generation unit (133) is configured to generate a motion vector of a person and a motion vector of a robot, respectively, using the skeleton information of a person and the skeleton information of a robot, and may be configured to generate a motion vector of a person and a motion vector of a robot, using the difference between a previous frame and a current frame, using three-dimensional coordinate information for a plurality of points stored according to a preset time interval.

움직임 벡터 생성부(133)는 시간에 따른 사람과 로봇의 3차원 스켈레톤 데이터를 저장하고, 이를 기반으로 각 관절 포인트의 움직임 벡터를 추적하는 역할을 수행하며, 실시간으로 입력되는 스켈레톤 데이터를 프레임 단위로 저장하며, 과거 일정 시간 동안의 데이터를 유지하여 움직임 분석에 활용할 수 있다.The motion vector generation unit (133) stores three-dimensional skeleton data of a person and a robot over time, and tracks the motion vector of each joint point based on this. It stores skeleton data input in real time in frame units, and can maintain data for a certain period of time in the past to be used for motion analysis.

예컨대 데이터 저장 구조에 대해 살펴보면, 시간 창(Time Window)은 현재 프레임을 기준으로 과거 N개의 프레임에 대한 스켈레톤 데이터를 저장할 수 있다. 예를 들어, N = 10인 경우 도 4에 도시된 바와 같이 현재 프레임을 포함하여 총 10개의 프레임 데이터를 보유할 수 있다. 여기서, 데이터 구조는 사람 스켈레톤 데이터(Person Skeleton Data) Pi(t)와 로봇 스켈레톤 데이터(Robot Skeleton Data) Rj(t)로 구성된다. 여기서 Pi(t)는 i번째 관절 포인트의 시간 t에서의 3차원 좌표이며, Pi(t) = (xi(t), yi(t), zi(t))로 표현된다. 마찬가지로 Rj(t)는 j번째 관절 포인트의 시간 t에서의 3차원 좌표로, Rj(t) = (xj(t), yj(t), zj(t))로 표현된다.For example, looking at the data storage structure, the time window can store skeleton data for the past N frames based on the current frame. For example, when N = 10, a total of 10 frame data including the current frame can be held as shown in FIG. 4. Here, the data structure consists of person skeleton data Pi(t) and robot skeleton data Rj(t). Here, Pi(t) is the 3D coordinate of the ith joint point at time t, and is expressed as Pi(t) = (x i (t), y i (t), z i (t)). Similarly, Rj(t) is the 3D coordinate of the jth joint point at time t, and is expressed as Rj(t) = (x j (t), y j (t), z j (t)).

이때 움직임 벡터 생성 방법은 다음과 같다. 먼저 시간 간격을 설정하여 벡터를 생성하기 위해 비교할 두 시점 t_1과 t_2를 선택한다. 일반적으로 현재 프레임 시간 t와 과거의 특정 시간 t-Δt를 사용한다. 예를 들어, 현재 프레임 시간 t와 과거 프레임 시간 t'=t-k·Δt를 비교하는데, 여기서 k는 프레임 간격이고 Δt는 프레임 간 시간 간격이다.At this time, the method of generating a motion vector is as follows. First, select two points t_1 and t_2 to be compared to generate a vector by setting a time interval. Generally, the current frame time t and a specific time t-Δt in the past are used. For example, the current frame time t and the past frame time t'=t-k Δt are compared, where k is the frame interval and Δt is the time interval between frames.

[수학식: 각 프레임과 시간의 상관 관계][Mathematical formula: Correlation between each frame and time]

스켈레톤 움직임 벡터 생성은 각 관절 포인트 i에 대해 벡터 V_i(t)를 계산하는 것으로 이루어진다. 벡터 계산 수식은 Vi(t) = Pi(t) - Pi(t')이며, 여기서 Vi(t)는 시간 t'에서 t까지 i번째 관절의 움직임 벡터이고, Pi(t)와 Pi(t')는 각각 시간 t와 t'에서의 i번째 관절의 위치이다.Skeleton motion vector generation consists of computing the vector V_i(t) for each joint point i. The vector computing formula is Vi(t) = Pi(t) - Pi(t'), where Vi(t) is the motion vector of the ith joint from time t' to t, and Pi(t) and Pi(t') are the positions of the ith joint at times t and t', respectively.

[수학식: 스켈레톤 움직임 벡터 계산][Mathematical formula: Calculating skeleton movement vector]

활용 예시로는 5프레임 이전의 데이터와 현재 데이터 비교가 있다. 프레임 레이트가 30fps인 경우 k = 5이고 Δt = 1/30초이며, 과거 시간은 t'=t - 5 · 1/30 = t - 1/6 초가 된다. 이를 통해 사람의 각 관절에 대한 움직임 벡터 V_i(t)를 계산하여 최근 1/6초 동안의 움직임을 파악할 수 있다.An example of its use is comparing data from 5 frames ago with current data. If the frame rate is 30 fps, k = 5 and Δt = 1/30 seconds, and the past time is t' = t - 5 1/30 = t - 1/6 seconds. Through this, the motion vector V_i(t) for each joint of a person can be calculated to determine the movement for the last 1/6 seconds.

[수학식: 프레임 시간 예시][Math: Frame Time Example]

움직임 벡터 생성부(133)의 동작은 먼저 데이터 수집 및 저장 단계에서 실시간으로 입력되는 사람과 로봇의 3차원 스켈레톤 데이터를 프레임 단위로 저장한다. 최대 N개의 프레임 데이터를 유지하며, 새로운 데이터가 입력되면 가장 오래된 데이터를 삭제한다. 다음으로 벡터 생성 단계에서 설정된 시간 간격에 따라 과거와 현재의 스켈레톤 데이터를 사용하여 움직임 벡터를 생성한다. 각 관절 포인트에 대해 벡터를 계산하고 저장한다. 마지막으로 데이터 출력 단계에서는 생성된 벡터가 이후 단계의 위험도 판단이나 로봇 벡터 조정 및 제어에서 사용되고, 벡터 데이터는 움직임의 크기, 방향 등의 속성 분석에 활용될 수 있다.The operation of the motion vector generation unit (133) first stores the 3D skeleton data of a person and a robot input in real time in the data collection and storage stage in units of frames. Up to N frame data are maintained, and when new data is input, the oldest data is deleted. Next, in the vector generation stage, a motion vector is generated using past and present skeleton data according to a set time interval. The vector is calculated and stored for each joint point. Finally, in the data output stage, the generated vector is used in risk assessment or robot vector adjustment and control in the subsequent stage, and the vector data can be utilized for attribute analysis such as the size and direction of movement.

이와 같이 스켈레톤 추출에 의해 생성된 움직임 벡터를 통해 시간에 따른 관절 포인트들의 위치 변화를 벡터 형태로 표현함으로써 움직임의 방향성과 속도를 파악할 수 있으며, 이를 통해 충돌 위험 예측, 움직임 패턴 분석, 로봇 동작 계획 등에 활용할 수 있다.In this way, the direction and speed of movement can be identified by expressing the change in position of joint points over time in vector form through the motion vector generated by skeleton extraction, which can be used for collision risk prediction, movement pattern analysis, robot motion planning, etc.

벡터 필터링부(134)Vector filtering unit (134)

벡터 필터링부(134)는 움직임 벡터 생성부에서 생성된 복수의 움직임 벡터 중 적어도 하나의 중요하다고 판단되는 특정 움직임 벡터를 필터링하거나 가중치를 적용하도록 구성될 수 있다. 충돌 위험도 판단부(135)는 벡터 필터링부(134)에서 필터링된 움직임 벡터를 이용하거나 가중치가 적용된 벡터값을 이용하여 사람과 로봇 간의 충돌 위험도를 판단하도록 구성될 수 있다. 여기서, 벡터 필터링부는 복수의 포인트 중 미리 설정된 특정 영역의 포인트에 대한 움직임 벡터를 필터링하도록 구성될 수 있으며, 예컨대 특정 영역은 사람의 손 또는 얼굴 영역, 로봇의 손끝 또는 회전 반경이 큰 영역 등 충돌 가능성이 높거나 충돌 시 위험한 영역 등이 미리 설정될 수 있다.The vector filtering unit (134) may be configured to filter or apply weights to at least one specific motion vector determined to be important among a plurality of motion vectors generated by the motion vector generating unit. The collision risk determining unit (135) may be configured to determine the collision risk between a person and a robot by using the motion vector filtered by the vector filtering unit (134) or by using a vector value to which a weight is applied. Here, the vector filtering unit may be configured to filter motion vectors for points of a specific area preset among a plurality of points, and for example, the specific area may be preset as an area with a high possibility of collision or a dangerous area in the event of a collision, such as a human hand or face area, a robot's fingertips, or an area with a large turning radius.

또한, 벡터 필터링부(134)는 사람과 로봇 사이의 거리, 벡터의 크기 및 영역 정보 중 적어도 하나에 기초하여 움직임 벡터를 필터링하거나, 사람과 로봇 사이의 거리, 벡터의 크기 및 영역 정보 중 적어도 하나에 기초하여 움직임 벡터에 가중치를 적용하도록 구성될 수 있다.Additionally, the vector filtering unit (134) may be configured to filter a motion vector based on at least one of the distance between a person and a robot, the size of the vector, and area information, or to apply a weight to a motion vector based on at least one of the distance between a person and a robot, the size of the vector, and area information.

이와 같이 벡터 필터링부(134)는 사람과 로봇의 스켈레톤 데이터에서 중요하다고 판단되는 대표 벡터를 선택함으로써 보다 효율적으로 충돌 위험성을 판단하고 안전성을 향상시키기 위한 동작을 수행한다.In this way, the vector filtering unit (134) selects representative vectors that are deemed important from the skeleton data of humans and robots, thereby more efficiently determining the risk of collision and performing operations to improve safety.

본 발명에서 특정 벡터를 필터링하는 3가지 방법에 대해서 설명하며, 이들 방법이 조합되어 사용될 수 있다.The present invention describes three methods for filtering a specific vector, and these methods can be used in combination.

첫 번째 예시로, 최단 거리 기반 선정방법은 사람과 로봇 사이의 거리 측면에서 가장 위험한 지점을 파악하기 위한 것이다. 사람의 스켈레톤 포인트 P_i(t)와 로봇의 스켈레톤 포인트 R_j(t) 간의 유클리드 거리 D_ij(t)를 아래식을 이용하여 계산하여 최소 거리를 갖는 포인트 쌍 (i*, j*)을 선정하여, 최단 거리를 갖는 포인트의 움직임 벡터들을 필터링할 수 있다. 또한, 미리 결정된 기준 내의 거리를 갖는 포인트 쌍을 필터링하여 해당 움직임 벡터들을 필터링할 수 있다.As a first example, the shortest distance-based selection method is intended to identify the most dangerous point in terms of the distance between a human and a robot. The Euclidean distance D_ij(t) between the human skeleton point P_i(t) and the robot skeleton point R_j(t) is calculated using the equation below, and the point pair (i * , j * ) with the minimum distance is selected, so that the motion vectors of the points with the shortest distance can be filtered. In addition, the point pairs with distances within a predetermined criterion can be filtered, so that the corresponding motion vectors can be filtered.

[수학식: 유클리드 거리 계산 기반 최단 거리 기반 선정식][Mathematical formula: Selection formula based on shortest distance calculation based on Euclidean distance]

두 번째 예시로, 운동량 기반 선정 방법은 움직임이 가장 활발한 부위에서의 충돌 위험을 파악하기 위한 것으로서, 각 스켈레톤 벡터의 크기값(속도)을 아래 식을 이용하여 계산하여 벡터 크기가 최대인 관절 포인트를 각각 선정하여, 벡터 크기가 가장 큰 벡터들을 필터링할 수 있다. 또한, 벡터 크기값이 미리 결정된 기준 이상인 해당 움직임 벡터들을 필터링할 수 있다.As a second example, the momentum-based selection method is intended to identify collision risks in the most active areas of movement. The magnitude (velocity) of each skeleton vector is calculated using the formula below, and the joint points with the largest vector magnitude are selected, thereby filtering out vectors with the largest vector magnitudes. In addition, the corresponding motion vectors with vector magnitudes greater than a predetermined criterion can be filtered.

[수학식: 벡터 운동량 기반 선정식] [Mathematical formula: Selection formula based on vector momentum]

세 번째 예시로, 가중치 기반 선정 방법은 예컨대 사람의 손, 얼굴 영역, 또는 로봇의 손 끝(핑거) 등 충돌 시 위험도가 높은 특정 영역의 중요도를 높여 위험도 평가에 반영하는 것이다. 손, 얼굴 영역과 같은 특정 영역에 해당하는 각 관절 포인트에 가중치 를 부여하여 중요도를 조절하고, 가중치가 적용된 벡터 크기 Si(t)를 계산한다. 해당 수학식은 다음과 같다.As a third example, the weight-based selection method reflects the importance of specific areas with high risk in the event of a collision, such as a human hand, face area, or a robot's fingertips, by increasing the importance of these areas in the risk assessment. The importance is adjusted by assigning weights to each joint point corresponding to a specific area, such as a hand or face area, and the vector size S i (t) to which the weight is applied is calculated. The corresponding mathematical formula is as follows.

[수학식: 가중치 기반 선정식][Mathematical formula: Weight-based selection formula]

충돌 위험도 판단부(135)Collision risk assessment unit (135)

충돌 위험도 판단부(135)는 벡터 필터링부(134)에서 선택된 벡터들 또는 전체 움직임 벡터들을 이용하여 사람의 움직임 벡터 및 로봇의 움직임 벡터에 기초하여 사람과 로봇 간의 충돌 위험도 및 잠재적인 위험도 레벨을 판단하도록 구성될 수 있다. 예컨대, 사람의 움직임 벡터 및 상기 로봇의 움직임 벡터의 거리, 속도, 방향 중 적어도 하나를 이용하여 충돌 위험도를 판단하도록 구성될 수 있다.The collision risk determination unit (135) may be configured to determine the collision risk and potential risk level between a person and a robot based on the motion vector of the person and the motion vector of the robot by using the vectors selected from the vector filtering unit (134) or the entire motion vectors. For example, the collision risk may be determined by using at least one of the distance, speed, and direction of the motion vector of the person and the motion vector of the robot.

충돌 위험도 판단부(135)는 사람과 로봇의 움직임 및 위치 정보를 종합적으로 분석하여 충돌 가능성을 예측하기 위한 위험도 수준을 평가하고, 이후 위험도 수준에 따라 로봇의 동작을 조정하거나 알람을 발생시킬 수 있다. The collision risk assessment unit (135) comprehensively analyzes movement and location information of people and robots to evaluate the risk level to predict the possibility of collision, and can then adjust the robot's operation or generate an alarm according to the risk level.

예를 들어, 사람의 움직임 벡터 V_i(t)와 로봇의 움직임 벡터 U_j(t) 사이의 상호 작용을 분석하여 충돌 위험을 평가할 수 있다. 움직임 벡터의 방향성, 속도, 거리 등을 고려하여 위험도를 계산하는 다양한 알고리즘이 적용될 수 있다.For example, the risk of collision can be assessed by analyzing the interaction between the human motion vector V_i(t) and the robot motion vector U_j(t). Various algorithms can be applied to calculate the risk by considering the direction, speed, distance, etc. of the motion vector.

일 예시로서, 움직임 벡터 간의 내적을 계산하고 위험도를 수치적으로 표현하는 수식을 적용하여 움직임이 서로 충돌할지 가능성을 평가하는 방법에 대해서 설명한다.As an example, we describe a method for evaluating the likelihood that movements will collide by calculating the inner product between motion vectors and applying a formula to numerically express the risk.

먼저, 사람의 움직임 벡터 Vi(t)와 로봇의 움직임 벡터 Uj(t) 사이의 내적을 계산하여 움직임이 서로 충돌하는 방향인지 판단한다. 내적 및 코사인 각도를 구하는 수학식은 다음과 같다.First, the inner product between the human motion vector V i (t) and the robot motion vector U j (t) is calculated to determine whether the movements are in a direction that collides with each other. The mathematical formulas for calculating the inner product and cosine angle are as follows.

[수학식: 벡터간 내적 및 코사인 각도][Mathematical formula: inner product and cosine angle between vectors]

여기서, cosθ의 값이 1에 가까울수록 같은 방향으로 움직이며, -1에 가까울수록 반대 방향으로 움직인다.Here, the closer the value of cosθ is to 1, the more it moves in the same direction, and the closer it is to -1, the more it moves in the opposite direction.

또한, 위험도 R(t)를 거리, 속도, 방향성을 종합하여 계산할 수 있고 다음 수학식과 같이 표현할 수 있다.Additionally, the risk R(t) can be calculated by synthesizing distance, speed, and direction, and can be expressed as the following mathematical formula.

[수학식: 위험도 R(t) 산출식][Mathematical formula: Risk R(t) calculation formula]

여기서 f는 위험도를 산출하는 함수로서, 다양한 형태의 함수가 적용될 수 있다. 예를 들어, 다음과 같은 형태의 수학식으로 정의될 수 있다.Here, f is a function that calculates the risk, and various forms of functions can be applied. For example, it can be defined as a mathematical formula in the following form.

[수학식: 위험도 산출 함수식 예시][Mathematical formula: Example of risk calculation function formula]

여기서 wi, wj는 사람과 로봇 관절의 가중치이고, Dij(t)는 해당 포인트 간의 거리이며, cosθ는 움직임 벡터 간의 방향성이다. Here, w i and w j are the weights of the human and robot joints, D ij (t) is the distance between the corresponding points, and cosθ is the directionality between the motion vectors.

여기서, 산출된 위험도 R(t)의 값에 따라 위험 수준을 분류하고, 이에 따라 대응 조치를 취한다. 위험 수준의 분류와 대응 방식은 시스템의 요구 사항과 설정에 따라 달라질 수 있다. 예를 들어, 위험 수준을 '안전(Safe)', '주의(Caution)', '위험(Danger)' 등으로 구분하고, 각 수준에 맞는 로봇의 동작 제어나 알림 방식을 적용할 수 있다. Here, the risk level is classified according to the value of the generated risk R(t), and corresponding countermeasures are taken. The classification of risk levels and the response methods may vary depending on the system requirements and settings. For example, the risk levels can be classified into 'Safe', 'Caution', and 'Danger', and the robot's operation control or notification method can be applied according to each level.

예컨대, 위험도 R(t)의 경계값을 안전과 주의 단계를 구분하기 위한 제1 경계값 및 주의와 위험 단계를 구분하기 위한 제2 경계값을 설정하고, 위험 수준을 R(t)에 기초하여 위험, 주의, 안전 레벨로 분류할 수 있다.For example, the boundary value of the risk level R(t) can be set as a first boundary value for distinguishing between the safety and caution levels and a second boundary value for distinguishing between the caution and danger levels, and the risk level can be classified into danger, caution, and safety levels based on R(t).

예컨대, 안전 레벨에서는 로봇은 기존 계획된 동작을 계속 수행한다. 주의 수준에서는 예컨대 로봇의 속도를 감소시키거나, 동시에 사용자에게 시각적 또는 청각적 알림을 제공할 수 있다. 또한, 위험 수준에서는 로봇의 움직임 경로를 변경하여 안전한 방향으로 이동시키고, 강력한 알람을 발생시켜 사용자에게 위험을 알릴 수 있다.For example, at the safety level, the robot continues to perform the previously planned actions. At the caution level, for example, the robot's speed can be reduced, or at the same time, a visual or auditory warning can be given to the user. Also, at the danger level, the robot's movement path can be changed to move in a safe direction, and a strong alarm can be generated to notify the user of the danger.

이와 같은 위험도 판단 방법은 이러한 예시적인 방법들 외에도 머신러닝 알고리즘, 통계적 모델링, 규칙 기반 시스템 등 다양한 안전성 평가 기법을 적용할 수 있다. 선택된 방법에 따라 위험도를 계산하고, 그 결과에 따라 로봇의 동작을 제어하거나 사용자에게 알림을 제공할 수 있다.In addition to these exemplary methods, this type of risk assessment method can apply various safety assessment techniques such as machine learning algorithms, statistical modeling, and rule-based systems. Depending on the selected method, the risk can be calculated, and the robot's actions can be controlled or a notification can be provided to the user based on the results.

로봇 움직임 조정부(136)Robot movement control unit (136)

로봇 움직임 조정부(136)는 충돌 위험도가 미리 결정된 기준 이상인 경우 충돌 위험도를 낮추기 위해 로봇의 움직임을 변경하도록 구성될 수 있다. 예컨대 로봇 움직임 조정부(136)는 충돌 위험도가 주의 레벨인 제1 레벨인 경우 로봇의 움직임 속도를 감소시키도록 구성되고, 충돌 위험도가 제1 레벨보다 높은 위험 레벨인 제2 레벨인 경우 로봇의 움직임 속도 및 방향을 모두 변경하도록 구성될 수 있다. The robot movement control unit (136) may be configured to change the movement of the robot to reduce the collision risk if the collision risk is higher than a predetermined standard. For example, the robot movement control unit (136) may be configured to reduce the movement speed of the robot if the collision risk is at a first level, which is a caution level, and may be configured to change both the movement speed and direction of the robot if the collision risk is at a second level, which is a higher risk level than the first level.

또한, 로봇 움직임 조정부(136)는 사람과 로봇의 충돌을 보다 효과적으로 회피하기 위해 사람의 움직임 벡터를 이용하여 조정된 로봇의 움직임 벡터에 기초하여 로봇의 현재 움직임 벡터를 조정함으로써 기존의 움직임 경로를 변경하도록 구성될 수 있다. 이와 같은 로봇의 동작을 실시간으로 제어함으로써 안전성을 확보할 수 있다.In addition, the robot movement control unit (136) can be configured to change the existing movement path by adjusting the current movement vector of the robot based on the movement vector of the robot adjusted using the movement vector of the person to more effectively avoid collisions between the person and the robot. Safety can be secured by controlling the movement of the robot in this way in real time.

로봇의 움직임 벡터 조정의 방법은 다양하며, 특정한 방법에 한정되지 않는다. 하나의 예시로, 사람의 움직임 벡터를 이용하여 현재 로봇의 움직임 벡터에 벡터 연산을 수행하고, 조정된 로봇이 움직임 벡터를 이용하여 로봇을 제어하는 방식을 설명한다.There are various methods for adjusting the motion vector of a robot, and it is not limited to a specific method. As an example, we will explain how to perform vector operations on the current motion vector of a robot using a human motion vector, and control the robot using the adjusted motion vector.

먼저, 로봇의 원래 움직임과 관련된 움직임 벡터를 Urobot(t)라고 하고, 사람의 움직임을 추정한 사람의 움직임 벡터를 Vhuman(t)라고 한다. 위험도 판단 모듈에서 위험도가 일정 수준 이상인 경우, 로봇의 움직임 벡터를 다음 수학식과 같이 조정할 수 있다.First, the motion vector related to the original movement of the robot is called Urobot(t), and the motion vector of the human estimated from the human movement is called Vhuman(t). In the risk assessment module, if the risk is above a certain level, the motion vector of the robot can be adjusted as in the following mathematical formula.

[수학식: 로봇 움직임 벡터 조정 수식][Mathematical formula: Robot motion vector adjustment formula]

여기서 U'robot(t)는 조정된 로봇의 움직임 벡터이고, α는 조정 계수이다. 이 식은 사람의 움직임 벡터를 고려하여 충돌을 회피할 가능성을 높이는 방향으로 로봇의 움직임 벡터를 조정함으로써 충돌을 효과적으로 방지할 수 있다.Here, U'robot(t) is the motion vector of the adjusted robot, and α is the adjustment coefficient. This equation can effectively prevent collisions by adjusting the motion vector of the robot in a direction that increases the possibility of avoiding collisions by considering the motion vector of the human.

로봇 움직임 조정부(136)는 조정된 로봇의 움직임 벡터 U'robot(t)에 기초하여 로봇의 실제 동작을 제어하며, 이때 조정된 벡터를 기반으로 로봇의 속도, 방향 등을 실시간으로 조절할 수 있다. 이러한 방법을 통해 로봇은 위험한 상황에서 사람의 움직임을 반영함으로써 위험도를 최소화하는 방향으로 이동 경로를 조정하고, 충돌을 예방할 수 있다.The robot movement control unit (136) controls the actual movement of the robot based on the adjusted movement vector U'robot(t) of the robot, and at this time, the speed, direction, etc. of the robot can be adjusted in real time based on the adjusted vector. Through this method, the robot can adjust the movement path to minimize the risk by reflecting the movement of a person in a dangerous situation, and prevent collisions.

도 5는 본 발명의 일 실시예에 사람과 로봇 간의 충돌을 방지하기 위한 실시간 충돌 방지 방법을 설명하기 위한 흐름도이다.FIG. 5 is a flowchart illustrating a real-time collision avoidance method for preventing collision between a person and a robot according to one embodiment of the present invention.

먼저, 사람 스켈레톤 추출부(131)에 의해, 카메라부(120)를 통해 획득한 이미지와 인공지능 모델 등을 이용하여 사람의 스켈레톤 정보를 추출할 수 있으며, 스켈레톤의 각 포인트에 대한 3차원 좌표를 얻을 수 있다.(S510)First, human skeleton information can be extracted using an image obtained through the camera unit (120) and an artificial intelligence model, etc. by the human skeleton extraction unit (131), and 3D coordinates for each point of the skeleton can be obtained. (S510)

또한, 로봇 스켈레톤 추출부(132)에 의해, 로봇의 실시간 관절 정보를 수집하고 로봇 좌표계와 카메라 좌표계의 변환을 이용하여 로봇의 스켈레톤 정보를 추출할 수 있으며, 이를 통해 로봇의 각 관절의 3차원 좌표를 얻을 수 있다.(S520)In addition, by the robot skeleton extraction unit (132), real-time joint information of the robot can be collected and skeleton information of the robot can be extracted by using the transformation of the robot coordinate system and the camera coordinate system, thereby obtaining the three-dimensional coordinates of each joint of the robot (S520).

다음으로, 움직임 벡터 생성부(133)에 의해, 사람의 스켈레톤 정보 및 로봇의 스켈레톤 정보를 이용하여 각각 사람의 움직임 벡터 및 로봇의 움직임 벡터를 생성할 수 있다.(S530) 예컨대 스켈레톤의 움직임 벡터 생성은 스켈레톤의 각 포인트에 대해 벡터값을 계산하고 저장함으로써, 움직임의 크기, 방향 등의 속성을 분석하는데 활용될 수 있다.Next, by the motion vector generation unit (133), the motion vector of the person and the motion vector of the robot can be generated using the skeleton information of the person and the skeleton information of the robot, respectively (S530). For example, the generation of the motion vector of the skeleton can be utilized to analyze the properties of the movement, such as the size and direction, by calculating and storing the vector value for each point of the skeleton.

또한, 벡터 필터링부(134)에 의해, 중요도가 높은 특정 움직임 벡터를 필터링할 수 있다.(S540) 예컨대 사람과 로봇의 움직임 벡터 중 중요도가 높은 벡터들을 선택하여 필터링하거나, 가중치를 적용할 수 있으며, 포인트 사이의 최단 거리 기반 선정 방법, 벡터의 크기 기반의 선정 방법, 특정 영역의 가중치를 적용하는 방법 등의 방법을 이용할 수 있다.In addition, by the vector filtering unit (134), specific motion vectors with high importance can be filtered (S540). For example, vectors with high importance among the motion vectors of humans and robots can be selected and filtered, or weights can be applied, and a method such as a selection method based on the shortest distance between points, a selection method based on the size of a vector, or a method of applying weights to a specific area can be used.

다음으로, 충돌 위험도 판단부(135)에 의해, 사람의 움직임 벡터 및 로봇의 움직임 벡터에 기초하여 사람과 상기 로봇 간의 충돌 위험도를 판단할 수 있다.(S550) 이때, 사람과 로봇의 움직임 및 위치 정보를 종합적으로 분석하여 충돌 가능성을 예측하기 위한 위험도 수준을 평가하고, 위험도 수준에 따라 로봇의 동작 제어나 알림 제어를 수행할 수 있다.Next, the collision risk assessment unit (135) can assess the collision risk between a person and the robot based on the movement vector of the person and the movement vector of the robot. (S550) At this time, the movement and position information of the person and the robot are comprehensively analyzed to evaluate the risk level for predicting the possibility of collision, and the robot's operation control or notification control can be performed according to the risk level.

다음으로, 로봇 움직임 조정부(136)에 의해, 충돌 위험도를 낮추기 위해 로봇의 움직임을 변경할 수 있다.(S560) 예컨대, 현재 로봇의 움직임 벡터에 사람의 움직임 벡터에 조정계수를 적용한 값을 더하여 적용함으로써 사람의 이동 방향을 고려하여 로봇의 움직임을 실시간으로 조정할 수 있다.Next, the robot movement adjustment unit (136) can change the movement of the robot to reduce the risk of collision (S560). For example, by adding a value obtained by applying an adjustment coefficient to the human movement vector to the current robot movement vector and applying it, the robot movement can be adjusted in real time by considering the human movement direction.

본 명세서에 기재된 다양한 실시예들은 하드웨어, 미들웨어, 마이크로코드, 소프트웨어 및/또는 이들의 조합에 의해 구현될 수 있다. 예를 들어, 다양한 실시예들은 하나 이상의 주문형 반도체(ASIC)들, 디지털 신호 프로세서(DSP)들, 디지털 신호 프로세싱 디바이스(DSPD)들, 프로그래머블 논리 디바이스(PLD)들, 필드 프로그래머블 게이트 어레이(FPGA)들, 프로세서들, 컨트롤러들, 마이크로컨트롤러들, 마이크로프로세서들, 여기서 제시되는 기능들을 수행하도록 설계되는 다른 전자 유닛들 또는 이들의 조합 내에서 구현될 수 있다.The various embodiments described herein may be implemented in hardware, middleware, microcode, software, and/or combinations thereof. For example, the various embodiments may be implemented within one or more application-specific integrated circuits (ASICs), digital signal processors (DSPs), digital signal processing devices (DSPDs), programmable logic devices (PLDs), field programmable gate arrays (FPGAs), processors, controllers, microcontrollers, microprocessors, other electronic units designed to perform the functions described herein, or a combination thereof.

또한, 예를 들어, 다양한 실시예들은 명령들을 포함하는 컴퓨터-판독가능한 매체에 수록되거나 인코딩될 수 있다. 컴퓨터-판독가능한 매체에 수록 또는 인코딩된 명령들은 프로그램 가능한 프로세서 또는 다른 프로세서로 하여금 예컨대, 명령들이 실행될 때 방법을 수행하게끔 할 수 있다. 컴퓨터-판독가능한 매체는 컴퓨터 저장 매체 및 하나의 장소로부터 다른 장소로 컴퓨터 프로그램의 이송을 용이하게 하는 임의의 매체를 포함하는 통신 매체 모두를 포함한다. 저장 매체는 컴퓨터에 의해 액세스될 수 있는 임의의 가용 매체일 수도 있다. 예를 들어, 이러한 컴퓨터-판독가능한 매체는 RAM, ROM, EEPROM, CD-ROM 또는 기타 광학디스크 저장 매체, 자기 디스크 저장 매체 또는 기타 자기 저장 디바이스 또는 원하는 프로그램 코드를 컴퓨터에 의해 액세스가능한 명령들 또는 데이터 구조들의 형태로 반송하거나 저장하는데 이용될 수 있는 임의의 다른 매체를 포함할 수 있다.Also, for example, various embodiments may be embodied or encoded in a computer-readable medium containing instructions. The instructions embodied or encoded in the computer-readable medium may cause a programmable processor or other processor to perform a method when the instructions are executed, for example. Computer-readable media includes both computer storage media and communication media including any medium that facilitates transfer of a computer program from one place to another. The storage media may be any available media that can be accessed by a computer. For example, such computer-readable media may include RAM, ROM, EEPROM, CD-ROM or other optical disk storage media, magnetic disk storage media or other magnetic storage devices, or any other medium that can be used to carry or store desired program code in the form of computer-accessible instructions or data structures.

이러한 하드웨어, 소프트웨어, 펌웨어 등은 본 명세서에 기술된 다양한 동작들 및 기능들을 지원하도록 동일한 디바이스 내에서 또는 개별 디바이스들 내에서 구현될 수 있다. 추가적으로, 본 발명에서 "~부"로 기재된 구성요소들, 유닛들, 모듈들, 컴포넌트들 등은 함께 또는 개별적이지만 상호 운용가능한 로직 디바이스들로서 개별적으로 구현될 수 있다. 모듈들, 유닛들 등에 대한 서로 다른 특징들의 묘사는 서로 다른 기능적 실시예들을 강조하기 위해 의도된 것이며, 이들이 개별 하드웨어 또는 소프트웨어 컴포넌트들에 의해 실현되어야만 함을 필수적으로 의미하지 않는다. 오히려, 하나 이상의 모듈들 또는 유닛들과 관련된 기능은 개별 하드웨어 또는 소프트웨어 컴포넌트들에 의해 수행되거나 또는 공통의 또는 개별의 하드웨어 또는 소프트웨어 컴포넌트들 내에 통합될 수 있다.Such hardware, software, firmware, etc. may be implemented within the same device or within separate devices to support the various operations and functions described herein. Additionally, components, units, modules, components, etc. described as “~units” in the present invention may be implemented together or individually as separate but interoperable logic devices. The depiction of different features for modules, units, etc. is intended to emphasize different functional embodiments and does not necessarily imply that they must be realized by separate hardware or software components. Rather, the functionality associated with one or more modules or units may be performed by separate hardware or software components, or integrated into common or separate hardware or software components.

특정한 순서로 동작들이 도면에 도시되어 있지만, 이러한 동작들이 원하는 결과를 달성하기 위해 도시된 특정한 순서, 또는 순차적인 순서로 수행되거나, 또는 모든 도시된 동작이 수행되어야 할 필요가 있는 것으로 이해되지 말아야 한다. 임의의 환경에서는, 멀티태스킹 및 병렬 프로세싱이 유리할 수 있다. 더욱이, 상술한 실시예에서 다양한 구성요소들의 구분은 모든 실시예에서 이러한 구분을 필요로 하는 것으로 이해되어서는 안되며, 기술된 구성요소들이 일반적으로 단일 소프트웨어 제품으로 함께 통합되거나 다수의 소프트웨어 제품으로 패키징될 수 있다는 것이 이해되어야 한다.Although the operations are depicted in the drawings in a particular order, it should not be understood that these operations need to be performed in the particular order depicted, or in any sequential order, or that all of the depicted operations need to be performed to achieve a desired result. In some circumstances, multitasking and parallel processing may be advantageous. Furthermore, the separation of the various components in the embodiments described above should not be understood to require such separation in all embodiments, and it should be understood that the components depicted may generally be integrated together in a single software product or packaged into multiple software products.

본 발명은 도면에 도시된 실시예를 참고로 설명되었으나 이는 예시적인 것에 불과하며, 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 다른 실시 예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호 범위는 첨부된 특허청구범위의 기술적 사상에 의해서 정해져야 할 것이다.Although the present invention has been described with reference to the embodiments shown in the drawings, these are merely exemplary, and those skilled in the art will understand that various modifications and equivalent other embodiments are possible therefrom. Accordingly, the true technical protection scope of the present invention should be determined by the technical idea of the appended claims.

110: 통신부
120: 카메라부
130: 처리부
110: Communications Department
120: Camera section
130: Processing Unit

Claims (13)

사람과 로봇 간의 충돌을 방지하기 위한 실시간 충돌 방지 시스템에 있어서,
사람의 스켈레톤 정보를 추출하도록 구성된 사람 스켈레톤 추출부;
로봇의 스켈레톤 정보를 추출하도록 구성된 로봇 스켈레톤 추출부;
상기 사람의 스켈레톤 정보 및 상기 로봇의 스켈레톤 정보를 이용하여 각각 상기 사람의 움직임 벡터 및 상기 로봇의 움직임 벡터를 생성하도록 구성된 움직임 벡터 생성부; 및
상기 사람의 움직임 벡터 및 상기 로봇의 움직임 벡터에 기초하여 상기 사람과 상기 로봇 간의 충돌 위험도를 판단하도록 구성된 충돌 위험도 판단부
를 포함하고,
상기 사람의 스켈레톤 정보 및 상기 로봇의 스켈레톤 정보는 각각 복수의 포인트에 대한 복수의 3차원 좌표 정보를 포함하는 것이고,
상기 움직임 벡터 생성부에서 생성된 복수의 움직임 벡터 중 적어도 하나의 특정 움직임 벡터를 필터링하도록 구성된 벡터 필터링부를 더 포함하고,
상기 충돌 위험도 판단부는 상기 벡터 필터링부에서 필터링된 움직임 벡터를 이용하여 상기 사람과 상기 로봇 간의 충돌 위험도를 판단하도록 구성되는 것이고,
상기 벡터 필터링부는 상기 사람과 상기 로봇의 포인트 사이의 거리, 벡터의 크기 및 영역 정보 중 적어도 하나에 기초하여 움직임 벡터를 필터링하도록 구성되는 것인, 실시간 충돌 방지 시스템.
In a real-time collision avoidance system to prevent collisions between people and robots,
A human skeleton extraction unit configured to extract human skeleton information;
A robot skeleton extraction unit configured to extract skeleton information of a robot;
A motion vector generation unit configured to generate a motion vector of the person and a motion vector of the robot, respectively, using the skeleton information of the person and the skeleton information of the robot; and
A collision risk determination unit configured to determine the collision risk between the person and the robot based on the motion vector of the person and the motion vector of the robot.
Including,
The skeleton information of the above person and the skeleton information of the above robot each include multiple three-dimensional coordinate information for multiple points,
Further comprising a vector filtering unit configured to filter at least one specific motion vector among a plurality of motion vectors generated by the motion vector generating unit,
The above collision risk determination unit is configured to determine the collision risk between the person and the robot using the motion vector filtered by the vector filtering unit.
A real-time collision avoidance system, wherein the vector filtering unit is configured to filter a motion vector based on at least one of the distance between the points of the person and the robot, the size of the vector, and area information.
제1항에 있어서, 상기 충돌 위험도 판단부는 상기 사람의 스켈레톤 정보에 포함된 복수의 3차원 좌표 정보와 상기 로봇의 스켈레톤 정보에 포함된 복수의 3차원 좌표 정보를 이용하여 상기 사람과 상기 로봇 사이의 최단 거리를 추출하고, 상기 최단 거리의 크기에 기초하여 상기 충돌 위험도를 판단하도록 구성되는 것인, 실시간 충돌 방지 시스템.A real-time collision avoidance system in the first paragraph, wherein the collision risk determination unit extracts the shortest distance between the person and the robot by using a plurality of three-dimensional coordinate information included in the skeleton information of the person and a plurality of three-dimensional coordinate information included in the skeleton information of the robot, and determines the collision risk based on the size of the shortest distance. 제1항에 있어서, 상기 움직임 벡터 생성부는 미리 설정된 시간 간격에 따라 저장된 복수의 포인트에 대한 3차원 좌표 정보를 이용하여 이전 프레임과 현재 프레임 간의 차이를 이용하여 상기 사람의 움직임 벡터 및 상기 로봇의 움직임 벡터를 생성하도록 구성된, 실시간 충돌 방지 시스템.A real-time collision avoidance system in claim 1, wherein the motion vector generation unit is configured to generate the motion vector of the person and the motion vector of the robot by using the difference between the previous frame and the current frame using three-dimensional coordinate information for a plurality of points stored according to a preset time interval. 삭제delete 제1항에 있어서, 상기 벡터 필터링부는 복수의 포인트 중 미리 설정된 특정 영역의 포인트에 대한 움직임 벡터를 필터링하도록 구성되는 것인, 실시간 충돌 방지 시스템.A real-time collision avoidance system in claim 1, wherein the vector filtering unit is configured to filter a motion vector for a point in a preset specific area among a plurality of points. 삭제delete 제1항에 있어서, 상기 영역 정보는 손 또는 얼굴 영역인지 여부와 관련된 정보이며, 상기 영역 정보에 기초한 가중치를 적용하여 상기 움직임 벡터를 계산하도록 구성되는 것인, 실시간 충돌 방지 시스템.A real-time collision avoidance system, wherein in the first paragraph, the region information is information related to whether it is a hand or face region, and is configured to calculate the motion vector by applying a weight based on the region information. 제1항에 있어서, 상기 충돌 위험도 판단부는 상기 사람의 움직임 벡터 및 상기 로봇의 움직임 벡터의 거리, 속도, 방향 중 적어도 하나를 이용하여 상기 충돌 위험도를 판단하도록 구성되는 것인, 실시간 충돌 방지 시스템.A real-time collision avoidance system in the first paragraph, wherein the collision risk determination unit is configured to determine the collision risk by using at least one of the distance, speed, and direction of the motion vector of the person and the motion vector of the robot. 제1항에 있어서, 상기 충돌 위험도가 미리 결정된 기준 이상인 경우 충돌 위험도를 낮추기 위해 상기 로봇의 움직임 경로를 변경하도록 구성된 로봇 움직임 조정부를 더 포함하는 실시간 충돌 방지 시스템.A real-time collision avoidance system further comprising a robot movement adjustment unit configured to change the movement path of the robot to reduce the collision risk when the collision risk in the first paragraph is higher than a predetermined standard. 제9항에 있어서, 상기 로봇 움직임 조정부는 상기 충돌 위험도가 제1 레벨인 경우 상기 로봇의 움직임 속도를 감소시키도록 구성되고, 상기 충돌 위험도가 상기 제1 레벨보다 높은 제2 레벨인 경우 상기 로봇의 움직임 속도 및 방향을 모두 변경하도록 구성되는 것인, 실시간 충돌 방지 시스템.A real-time collision avoidance system in claim 9, wherein the robot movement control unit is configured to reduce the movement speed of the robot when the collision risk is at a first level, and is configured to change both the movement speed and direction of the robot when the collision risk is at a second level higher than the first level. 제9항에 있어서, 상기 로봇 움직임 조정부는 상기 사람의 움직임 벡터를 이용하여 조정된 로봇의 움직임 벡터에 기초하여 상기 로봇의 움직임 경로를 변경하도록 구성되는 것인, 실시간 충돌 방지 시스템.A real-time collision avoidance system in claim 9, wherein the robot movement control unit is configured to change the movement path of the robot based on a movement vector of the robot controlled using a movement vector of the person. 제1항에 있어서, 상기 로봇 스켈레톤 추출부는 상기 로봇의 관절 각도에 기초하여 로봇 좌표계와 카메라 좌표계의 변환을 이용하여 상기 로봇의 3차원 스켈레톤 데이터를 획득하도록 구성되는 것인, 실시간 충돌 방지 시스템.A real-time collision avoidance system in claim 1, wherein the robot skeleton extraction unit is configured to obtain three-dimensional skeleton data of the robot by using transformation between the robot coordinate system and the camera coordinate system based on the joint angle of the robot. 사람과 로봇 간의 충돌을 방지하기 위한 실시간 충돌 방지 방법에 있어서,
사람 스켈레톤 추출부에 의해 사람의 스켈레톤 정보를 추출하는 단계;
로봇 스켈레톤 추출부에 의해 로봇의 스켈레톤 정보를 추출하는 단계;
움직임 벡터 생성부에 의해, 상기 사람의 스켈레톤 정보 및 상기 로봇의 스켈레톤 정보를 이용하여 각각 상기 사람의 움직임 벡터 및 상기 로봇의 움직임 벡터를 생성하는 단계; 및
충돌 위험도 판단부에 의해, 상기 사람의 움직임 벡터 및 상기 로봇의 움직임 벡터에 기초하여 상기 사람과 상기 로봇 간의 충돌 위험도를 판단하는 단계
를 포함하고, 상기 사람의 스켈레톤 정보 및 상기 로봇의 스켈레톤 정보는 각각 복수의 포인트에 대한 복수의 3차원 좌표 정보를 포함하는 것이고,
벡터 필터링부에 의해, 상기 움직임 벡터 생성부에서 생성된 복수의 움직임 벡터 중 적어도 하나의 특정 움직임 벡터를 필터링하는 단계를 더 포함하고,
상기 충돌 위험도 판단부에 의해, 상기 벡터 필터링부에서 필터링된 움직임 벡터를 이용하여 상기 사람과 상기 로봇 간의 충돌 위험도를 판단하는 단계를 더 포함하고,
상기 벡터 필터링부는 상기 사람과 상기 로봇의 포인트 사이의 거리, 벡터의 크기 및 영역 정보 중 적어도 하나에 기초하여 움직임 벡터를 필터링하도록 구성되는 것인, 실시간 충돌 방지 방법.
In a real-time collision avoidance method for preventing collisions between humans and robots,
A step of extracting human skeleton information by a human skeleton extraction unit;
A step of extracting skeleton information of a robot by a robot skeleton extraction unit;
A step of generating a motion vector of the person and a motion vector of the robot, respectively, by using the skeleton information of the person and the skeleton information of the robot by a motion vector generating unit; and
A step of determining the risk of collision between the person and the robot based on the motion vector of the person and the motion vector of the robot by a collision risk determination unit.
, and the skeleton information of the person and the skeleton information of the robot each include a plurality of three-dimensional coordinate information for a plurality of points,
A step of filtering at least one specific motion vector among a plurality of motion vectors generated by the motion vector generation unit is further included by the vector filtering unit,
The above collision risk determination unit further includes a step of determining the collision risk between the person and the robot using the motion vector filtered by the vector filtering unit,
A real-time collision avoidance method, wherein the vector filtering unit is configured to filter a motion vector based on at least one of the distance between the points of the person and the robot, the size of the vector, and area information.
KR1020240165123A 2024-11-19 2024-11-19 Method for preventing collision between human and robot in realtime and system for preventing collision in realtime using the same Active KR102772458B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020240165123A KR102772458B1 (en) 2024-11-19 2024-11-19 Method for preventing collision between human and robot in realtime and system for preventing collision in realtime using the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020240165123A KR102772458B1 (en) 2024-11-19 2024-11-19 Method for preventing collision between human and robot in realtime and system for preventing collision in realtime using the same

Publications (1)

Publication Number Publication Date
KR102772458B1 true KR102772458B1 (en) 2025-02-26

Family

ID=94824576

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020240165123A Active KR102772458B1 (en) 2024-11-19 2024-11-19 Method for preventing collision between human and robot in realtime and system for preventing collision in realtime using the same

Country Status (1)

Country Link
KR (1) KR102772458B1 (en)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150131896A1 (en) * 2013-11-11 2015-05-14 Industrial Technology Research Institute Safety monitoring system for human-machine symbiosis and method using the same
JP2020093373A (en) * 2018-12-14 2020-06-18 オムロン株式会社 Robot interference determination device, robot interference determination method, robot control device, and robot control system
KR102369062B1 (en) 2019-08-27 2022-02-28 주식회사 케이티 Moving robot and method for control of the moving robot
JP7058126B2 (en) * 2018-01-12 2022-04-21 株式会社日立製作所 Robot control device and automatic assembly system
CN116909274A (en) * 2023-07-12 2023-10-20 北京凡川智能机器人科技有限公司 Robot autonomous man-machine collision prevention method and system
JP7427115B2 (en) * 2020-12-21 2024-02-02 ファナック株式会社 Anshin Vision Device and Anshin Vision System

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150131896A1 (en) * 2013-11-11 2015-05-14 Industrial Technology Research Institute Safety monitoring system for human-machine symbiosis and method using the same
JP7058126B2 (en) * 2018-01-12 2022-04-21 株式会社日立製作所 Robot control device and automatic assembly system
JP2020093373A (en) * 2018-12-14 2020-06-18 オムロン株式会社 Robot interference determination device, robot interference determination method, robot control device, and robot control system
KR102369062B1 (en) 2019-08-27 2022-02-28 주식회사 케이티 Moving robot and method for control of the moving robot
JP7427115B2 (en) * 2020-12-21 2024-02-02 ファナック株式会社 Anshin Vision Device and Anshin Vision System
CN116909274A (en) * 2023-07-12 2023-10-20 北京凡川智能机器人科技有限公司 Robot autonomous man-machine collision prevention method and system

Similar Documents

Publication Publication Date Title
JP7180695B2 (en) Obstacle avoidance control device, obstacle avoidance control system, obstacle avoidance control method and program
JP2010120139A (en) Safety control device for industrial robot
CN109556607A (en) A method of quickly processing localization for Mobile Robot " kidnapping " problem
CN103679742B (en) Method for tracing object and device
KR102371127B1 (en) Gesture Recognition Method and Processing System using Skeleton Length Information
CN117935453B (en) Port machine remote control method and system based on binocular camera
EP4064213A1 (en) Utility vehicle and corresponding apparatus, method and computer program for a utility vehicle
Li et al. Robot semantic mapping through wearable sensor-based human activity recognition
Liang et al. Stacked hourglass networks for markerless pose estimation of articulated construction robots
CN119204668B (en) A field monitoring method based on engineering informatization
CN111445519A (en) Industrial robot three-dimensional attitude estimation method and device and storage medium
Shackleford et al. Performance evaluation of human detection systems for robot safety
KR101862545B1 (en) Method and system for providing rescue service using robot
Taghvaei et al. Control of a passive walker using a depth sensor for user state estimation
WO2018235219A1 (en) Self-location estimation method, self-location estimation device, and self-location estimation program
EP2366502A1 (en) Robot with hand-object movement correlations for online temporal segmentation of movement tasks
Pradeep et al. Follow me robot using bluetooth-based position estimation
KR102772458B1 (en) Method for preventing collision between human and robot in realtime and system for preventing collision in realtime using the same
Himmelsbach et al. Single pixel time-of-flight sensors for object detection and self-detection in three-sectional single-arm robot manipulators
CN119238514A (en) Robotic arm motion trajectory detection method, system and program product
EP4485369A1 (en) Information processing program, information processing method, and information processing apparatus
Yevsieiv et al. A Model of Using Computer Vision to Monitor the Environment of a Collaborative Manipulator Robot
CN107363831B (en) Teleoperation robot control system and method based on vision
CN116352720A (en) Intelligent control method, system and medium for underground visual manipulator of oil and gas well
Budiharto et al. An improved face recognition system for service robot using stereo vision

Legal Events

Date Code Title Description
PA0109 Patent application

Patent event code: PA01091R01D

Comment text: Patent Application

Patent event date: 20241119

PA0201 Request for examination

Patent event code: PA02011R01I

Patent event date: 20241119

Comment text: Patent Application

PA0302 Request for accelerated examination

Patent event date: 20241119

Patent event code: PA03022R01D

Comment text: Request for Accelerated Examination

Patent event date: 20241119

Patent event code: PA03021R01I

Comment text: Patent Application

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

Comment text: Notification of reason for refusal

Patent event date: 20250122

Patent event code: PE09021S01D

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

Patent event code: PE07011S01D

Comment text: Decision to Grant Registration

Patent event date: 20250218

GRNT Written decision to grant
PR0701 Registration of establishment

Comment text: Registration of Establishment

Patent event date: 20250219

Patent event code: PR07011E01D

PR1002 Payment of registration fee

Payment date: 20250219

End annual number: 3

Start annual number: 1

PG1601 Publication of registration