KR20220055167A - Autonomous robot, world map management server of autonomous robot and collision avoidance method using the same - Google Patents

Autonomous robot, world map management server of autonomous robot and collision avoidance method using the same Download PDF

Info

Publication number
KR20220055167A
KR20220055167A KR1020200139366A KR20200139366A KR20220055167A KR 20220055167 A KR20220055167 A KR 20220055167A KR 1020200139366 A KR1020200139366 A KR 1020200139366A KR 20200139366 A KR20200139366 A KR 20200139366A KR 20220055167 A KR20220055167 A KR 20220055167A
Authority
KR
South Korea
Prior art keywords
robot
obstacle
dynamic obstacle
collision
dynamic
Prior art date
Application number
KR1020200139366A
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 KR1020200139366A priority Critical patent/KR20220055167A/en
Publication of KR20220055167A publication Critical patent/KR20220055167A/en

Links

Images

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/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
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1602Programme controls characterised by the control system, structure, architecture
    • B25J9/161Hardware, e.g. neural networks, fuzzy logic, interfaces, processor
    • 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
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • G05D1/0088Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots characterized by the autonomous decision making process, e.g. artificial intelligence, predefined behaviours
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • G05D1/02Control of position or course in two dimensions
    • G05D1/021Control of position or course in two dimensions specially adapted to land vehicles
    • G05D1/0212Control of position or course in two dimensions specially adapted to land vehicles with means for defining a desired trajectory
    • G05D1/0214Control of position or course in two dimensions specially adapted to land vehicles with means for defining a desired trajectory in accordance with safety or protection criteria, e.g. avoiding hazardous areas
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • G05D1/02Control of position or course in two dimensions
    • G05D1/021Control of position or course in two dimensions specially adapted to land vehicles
    • G05D1/0231Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means
    • G05D1/0238Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means using obstacle or wall sensors
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • G05D1/02Control of position or course in two dimensions
    • G05D1/021Control of position or course in two dimensions specially adapted to land vehicles
    • G05D1/0268Control of position or course in two dimensions specially adapted to land vehicles using internal positioning means
    • G05D1/0274Control of position or course in two dimensions specially adapted to land vehicles using internal positioning means using mapping information stored in a memory device
    • G05D2201/0217

Landscapes

  • Engineering & Computer Science (AREA)
  • Mechanical Engineering (AREA)
  • Automation & Control Theory (AREA)
  • Robotics (AREA)
  • Physics & Mathematics (AREA)
  • Radar, Positioning & Navigation (AREA)
  • General Physics & Mathematics (AREA)
  • Aviation & Aerospace Engineering (AREA)
  • Remote Sensing (AREA)
  • Artificial Intelligence (AREA)
  • Evolutionary Computation (AREA)
  • Fuzzy Systems (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Electromagnetism (AREA)
  • Business, Economics & Management (AREA)
  • Health & Medical Sciences (AREA)
  • Game Theory and Decision Science (AREA)
  • Medical Informatics (AREA)
  • Control Of Position, Course, Altitude, Or Attitude Of Moving Bodies (AREA)

Abstract

Provided is a method of avoiding a collision with a dynamic obstacle by a robot. The method comprises the steps of: recognizing a dynamic obstacle in a space while driving through a space at a specific driving speed on the basis of a world map; identifying the position of a robot that has recognized the dynamic obstacle on the basis of a reference coordinate of the world map and calculating the position of a dynamic obstacle by measuring the distance and angle to the dynamic obstacle on the basis of the position of the robot; identifying the moving path and moving speed of the dynamic obstacle on the basis of identification information mapped on the dynamic obstacle and calculating the collision prediction time point with the dynamic obstacle on the basis of the moving speed and moving path; calculating a collision probability based on the collision prediction time point, and calculating a collision avoidance probability of a driving direction of the robot with respect to each of a reference direction and driving candidate directions using the collision probability; and setting a collision avoidance path in the driving candidate direction in which the highest collision avoidance probability is calculated. According to the present invention, it is possible to drive while avoiding a collision with a dynamic obstacle.

Description

자율주행 로봇, 자율주행 로봇의 충돌 회피 방법 및 월드 맵 관리 방법{Autonomous robot, world map management server of autonomous robot and collision avoidance method using the same}Autonomous robot, world map management server of autonomous robot and collision avoidance method using the same}

본 발명은 동적 주행 환경에서 동적 장애물과의 충돌을 예측하고, 충돌을 회피하는 자율주행 로봇, 자율주행 로봇의 충돌 회피 방법 및 월드 맵 관리 방법에 관한 것이다.The present invention relates to an autonomous driving robot that predicts collision with a dynamic obstacle in a dynamic driving environment and avoids collision, a collision avoidance method of the autonomous driving robot, and a world map management method.

호텔, 매장, 스마트 팩토리 등 다양한 환경에서, 자율주행 서비스를 제공하는 이동 로봇이 많아지고 있다. 사전에 작성된 지도를 기초로 로봇이 목표 지점까지 이동할 경로를 자율적으로 계획하고 주행하는 네비게이션 기술의 핵심은, 로봇이 효율적으로 경로를 생성하고 장애물과의 충돌을 회피하는 것이다.In various environments such as hotels, stores, and smart factories, mobile robots that provide autonomous driving services are increasing. The key to navigation technology in which the robot autonomously plans and drives a route to reach a target point based on a pre-written map is that the robot efficiently creates a route and avoids collisions with obstacles.

현재 범용적으로 사용되는 로봇은 정적인 주행 환경에서는 장애물과의 충돌을 회피할 수 있다. 그러나, 호텔, 매장 등에서 공간 내 동적 장애물들(예를 들어, 사람 등)을 감지하는 경우, 로봇은 동적 장애물을 감지한 시점에 주행을 멈추고 기다린다. 그리고, 동적 장애물이 지나간 후 로봇이 주행을 이어하는 방식을 이용하여, 제한적으로 운용하고 있다.Robots currently used universally can avoid collisions with obstacles in a static driving environment. However, when detecting dynamic obstacles (eg, people, etc.) in a space in a hotel, a store, etc., the robot stops driving and waits when the dynamic obstacle is detected. And, using a method in which the robot continues to run after a dynamic obstacle has passed, it is being operated in a limited way.

따라서, 본 발명은 로봇이 동적으로 주행할 수 있는 환경에서 동적 장애물과의 충돌을 예측하면, 주행을 멈추지 않고도 동적 장애물과의 충돌을 회피하도록 회피 경로로 주행하는 자율주행 로봇, 자율주행 로봇의 충돌 회피 방법 및 월드 맵 관리 방법을 제공한다.Accordingly, the present invention provides an autonomous driving robot that travels in an avoidance path to avoid collision with a dynamic obstacle without stopping the driving, when a collision with a dynamic obstacle is predicted in an environment in which the robot can dynamically travel, and the collision of the autonomous driving robot An evasion method and a world map management method are provided.

상기 본 발명의 기술적 과제를 달성하기 위한 본 발명의 하나의 특징인 로봇이 동적 장애물과의 충돌을 회피하는 방법으로서,As a method for avoiding collision with a dynamic obstacle by a robot, which is a feature of the present invention for achieving the technical problem of the present invention,

월드 맵을 기초로 공간을 특정 주행 속도로 주행하면서, 상기 공간에 위치한 동적 장애물을 인식하는 단계, 상기 월드 맵의 기준 좌표를 기초로 상기 동적 장애물을 인식한 로봇 위치를 확인하고, 상기 로봇 위치를 기준으로 상기 동적 장애물까지의 거리 및 각도를 측정하여 상기 동적 장애물의 위치를 계산하는 단계, 상기 동적 장애물에 매핑된 식별 정보를 기초로 상기 동적 장애물의 이동 경로와 이동 속도를 확인하고, 상기 이동 속도와 이동 경로를 토대로 상기 동적 장애물과의 충돌 예측 시점을 계산하는 단계, 상기 충돌 예측 시점을 기초로 충돌 확률을 계산하고, 상기 충돌 확률을 이용하여 상기 로봇의 주행 방향을 기준 방향과 주행 후보 방향들 각각에 대한 충돌 회피 확률을 계산하는 단계, 그리고 가장 높은 충돌 회피 확률이 계산된 주행 후보 방향으로 충돌 회피 경로를 설정하는 단계를 포함한다.Recognizing a dynamic obstacle located in the space while traveling in space at a specific driving speed based on the world map, confirming the position of the robot that recognized the dynamic obstacle based on the reference coordinates of the world map, and determining the position of the robot Calculating the position of the dynamic obstacle by measuring the distance and angle to the dynamic obstacle as a reference, confirming the movement path and movement speed of the dynamic obstacle based on the identification information mapped to the dynamic obstacle, and calculating a collision prediction time with the dynamic obstacle based on the movement path, calculating a collision probability based on the collision prediction time, and using the collision probability to determine the driving direction of the robot as a reference direction and driving candidate directions calculating a collision avoidance probability for each, and setting a collision avoidance path in the direction of the driving candidate in which the highest collision avoidance probability is calculated.

상기 동적 장애물을 인식하는 단계 이전에, 정보 수집 수단을 통해 수집한 정보를 토대로 상기 공간에 대한 초기 월드 맵을 작성하는 단계를 포함하고, 상기 초기 월드 맵은 상기 로봇이 주행할 수 있는 주행 가능 공간과 주행이 불가능한 점유 공간, 그리고 주행 여부를 확인할 수 없는 특정 공간으로 구성된 점유 격자 지도로 생성되고, 상기 점유 격자 지도를 구성하는 각 격자는 주행 가능 영역과 주행 불가 영역에 따라 점유도 값이 매핑되어 있을 수 있다.Before the step of recognizing the dynamic obstacle, comprising the step of creating an initial world map for the space based on information collected through an information collecting means, wherein the initial world map is a drivable space in which the robot can travel It is created as an occupancy grid map composed of a occupied space where driving is impossible, and a specific space where driving cannot be confirmed, and each grid constituting the occupied grid map is mapped with an occupancy value according to the drivable area and the non-drivable area. there may be

상기 장애물의 위치를 계산하는 단계는, 상기 월드 맵의 월드 좌표계에서 상기 기준 좌표를 기준으로 제1 각도의 위치를 상기 로봇의 위치로 확인하고, 로봇 좌표계를 기준으로 상기 로봇이 출력한 레이저가 상기 동적 애물에 반사되어 돌아온 시간을 토대로 측정된 거리만큼 떨어진 제2 각도의 위치를 상기 동적 장애물의 위치로 계산할 수 있다.In the calculating of the position of the obstacle, the position of the first angle with respect to the reference coordinate in the world coordinate system of the world map is confirmed as the position of the robot, and the laser output by the robot based on the robot coordinate system is the The position of the second angle separated by the distance measured based on the time reflected by the dynamic obstacle may be calculated as the position of the dynamic obstacle.

상기 동적 장애물의 위치를 계산하는 단계는, 상기 점유 격자 지도에 매핑된 점유도 값을 토대로 상기 장애물을 동적 장애물과 정적 장애물로 구분하는 단계를 포함할 수 있다.Calculating the position of the dynamic obstacle may include classifying the obstacle into a dynamic obstacle and a static obstacle based on an occupancy value mapped to the occupancy grid map.

상기 점유 공간에 매핑된 점유도 값을 가지는 지점들과 장애물을 감지한 지점의 유클리드 거리가 미리 설정한 임계 값 내에 존재하면, 상기 장애물을 정적 장애물로 인지하고, 상기 임계 값 내에 존재하지 않으면, 상기 장애물을 상기 동적 장애물로 인지할 수 있다.If the Euclidean distance between points having an occupancy value mapped to the occupied space and a point at which an obstacle is detected is within a preset threshold, the obstacle is recognized as a static obstacle. An obstacle may be recognized as the dynamic obstacle.

상기 정적 장애물로 구분하는 단계 이후에, 구분한 동적 장애물이 복수 개이면, 각 동적 장애물을 감지한 감지 각도를 기초로 복수의 동적 장애물들을 각각 분리할 수 있다.After the step of classifying the static obstacles, if there are a plurality of divided dynamic obstacles, the plurality of dynamic obstacles may be separated from each other based on a sensing angle at which each dynamic obstacle is sensed.

상기 동적 장애물의 위치를 계산하는 단계는, 상기 동적 장애물을 최초 감지한 지점을 제1 지점으로 설정하는 단계, 상기 동적 장애물을 마지막으로 감지한 지점을 제2 지점으로 설정하는 단계, 상기 동적 장애물과 상기 정보 수집 수단의 거리가 가장 짧은 지점을 제3 지점으로 설정하는 단계, 그리고 상기 제1 지점, 제2 지점, 그리고 제3 지점을 각각 꼭지점으로 하는 삼각형의 외심을 상기 동적 장애물의 위치로 계산하는 단계를 포함할 수 있다.Calculating the position of the dynamic obstacle may include: setting a first point at which the dynamic obstacle is initially sensed as a first point; setting a point at which the dynamic obstacle is last detected as a second point; Setting a point having the shortest distance of the information collecting means as a third point, and calculating the outer center of a triangle having the first point, the second point, and the third point as a vertex as the position of the dynamic obstacle may include steps.

상기 충돌 예측 시점을 계산하는 단계는, 상기 동적 장애물의 상기 식별 정보에 매핑되어 저장된 동적 장애물의 위치 정보들과 시점 정보를 확인하는 단계, 상기 동적 장애물을 감지한 시점을 기준으로 이전 시점인 제1 시점에서의 상기 동적 장애물의 제1 위치를 확인하는 단계, 상기 제1 시점보다 이전 시점인 제2 시점에서의 상기 동적 장애물의 제2 위치를 확인하는 단계, 그리고 상기 제1 위치와 제2 위치를 기초로 상기 동적 장애물의 상기 이동 경로를 확인하는 단계를 더 포함할 수 있다.Calculating the collision prediction time may include: checking location information and viewpoint information of a dynamic obstacle that is mapped to the identification information of the dynamic obstacle and stored; Identifying a first position of the dynamic obstacle at a time point, identifying a second position of the dynamic obstacle at a second time point that is earlier than the first time point, and the first position and the second position The method may further include determining the movement path of the dynamic obstacle based on the method.

상기 충돌 예측 시점을 계산하는 단계는, 상기 제1 시점에서 상기 동적 장애물과의 거리, 그리고 로봇과 상기 동적 장애물의 상대 속도 크기를 이용하여 상기 충돌 예측 시점을 계산할 수 있다.The calculating of the collision prediction time may include calculating the collision prediction time using a distance from the dynamic obstacle at the first time point and a magnitude of a relative speed between the robot and the dynamic obstacle.

상기 충돌 회피 확률을 계산하는 단계는, 로봇의 주행 방향을 기준 방향으로 하고, 상기 기준 방향과 상기 주행 후보 방향들의 충돌 회피 확률을 각각 계산하는 단계, 그리고 상기 충돌 예측 시점과 상기 주행 후보 방향 별 충돌 회피 확률을 기초로, 상기 동적 장애물과의 충돌 확률을 계산하는 단계를 포함할 수 있다.The calculating of the collision avoidance probability includes: taking the traveling direction of the robot as a reference direction, calculating collision avoidance probabilities of the reference direction and the driving candidate directions, respectively, and a collision between the collision prediction time and the driving candidate direction It may include calculating a collision probability with the dynamic obstacle based on the avoidance probability.

상기 충돌 확률을 계산하는 단계 이후에, 상기 로봇의 위치, 상기 동적 장애물의 위치 정보, 상기 충돌 확률, 그리고 로봇의 이동 경로 정보를, 연동한 월드 맵 관리 서버로 전송하는 단계를 더 포함할 수 있다.After calculating the collision probability, the method may further include transmitting the position of the robot, position information of the dynamic obstacle, the collision probability, and movement path information of the robot to an interlocked world map management server. .

상기 충돌 회피 경로를 설정하는 단계는, 전역 경로와의 거리, 목표 지점까지의 거리, 그리고 정적 장애물에 대한 양의 비용을 토대로 비용 함수를 계산하는 단계, 상기 비용 함수의 값이 미리 설정한 기준 값보다 크면, 상기 특정 속도보다 빠른 속도로 주행하는 단계, 그리고 상기 비용 함수의 값이 상기 기준 값보다 작으면, 상기 특정 속도보다 느린 속도로 주행하는 단계를 포함할 수 있다.The setting of the collision avoidance path may include calculating a cost function based on a distance from a global path, a distance to a target point, and a positive cost for a static obstacle, wherein the value of the cost function is a preset reference value greater than, traveling at a speed faster than the specific speed; and if the value of the cost function is less than the reference value, traveling at a speed slower than the specific speed.

상기 본 발명의 기술적 과제를 달성하기 위한 본 발명의 또 다른 특징인 월드 맵 관리 서버와 연동하여 자율주행 중 동적 장애물을 회피하여 주행하는 로봇으로서,As a robot that runs while avoiding dynamic obstacles during autonomous driving in conjunction with a world map management server, which is another feature of the present invention for achieving the technical problem of the present invention,

프로세서, 상기 로봇이 주행중인 공간의 월드 맵과 상기 로봇이 상기 공간에서 인식한 장애물들 각각의 장애물 정보를 각 장애물에 매핑된 식별 정보와 함께 관리하는 메모리를 포함하고, 상기 프로세서는, 상기 공간에서 이동하는 동적 장애물을 인식하고, 상기 인식한 동적 장애물의 이동 경로와 이동 속도를 기초로 상기 동적 장애물과의 충돌 예측 시점을 계산하고, 상기 충돌 예측 시점을 기초로 계산한 충돌 확률을 토대로 상기 로봇의 주행 방향과 주행 후보 방향들에 대한 충돌 회피 확률을 상기 충돌 확률로부터 계산하고, 가장 높은 충돌 회피 확률이 계산된 방향으로 충돌 회피 경로를 설정한다.a processor, a world map of a space in which the robot is traveling, and a memory for managing obstacle information of each of the obstacles recognized by the robot in the space together with identification information mapped to each obstacle, wherein the processor in the space Recognizing a moving dynamic obstacle, calculating a collision prediction time with the dynamic obstacle based on the movement path and moving speed of the recognized dynamic obstacle, and calculating the collision probability based on the collision prediction time of the robot A collision avoidance probability for the driving direction and driving candidate directions is calculated from the collision probability, and a collision avoidance path is set in a direction in which the highest collision avoidance probability is calculated.

상기 프로세서는, 상기 월드 맵의 월드 좌표계를 기준으로 제1 각도를 상기 로봇의 위치로 확인하고, 로봇 좌표계를 기준으로 상기 로봇에서 출력된 레이저가 상기 장애물에 반사되어 돌아온 시간을 토대로 측정된 거리만큼 떨어진 제2 각도를 상기 장애물의 위치로 추정할 수 있다.The processor determines the first angle as the position of the robot based on the world coordinate system of the world map, and the distance measured based on the time when the laser output from the robot is reflected by the obstacle and returned based on the robot coordinate system. The separated second angle may be estimated as the position of the obstacle.

상기 프로세서는, 상기 월드 맵의 각 공간에 매핑된 점유도 값들 중 점유 공간에 매핑된 점유도 값을 가지는 지점들과 정보 수집 수단이 상기 장애물을 감지한 지점의 유클리드 거리가, 미리 설정한 임계 값 내에 존재하면 상기 장애물을 정적 장애물로 인지하고, 상기 임계 값 내에 존재하지 않으면 상기 장애물을 동적 장애물로 인지할 수 있다.The processor determines that, among the occupancy values mapped to each space of the world map, the Euclidean distance between points having an occupancy value mapped to the occupied space and a point at which the information collecting means detects the obstacle is a preset threshold value. If it exists within, the obstacle may be recognized as a static obstacle, and if it does not exist within the threshold value, the obstacle may be recognized as a dynamic obstacle.

상기 프로세서는, 상기 동적 장애물을 최초 감지한 지점인 제1 지점, 상기 동적 장애물을 마지막으로 감지한 지점인 제2 지점, 상기 동적 장애물과 상기 정보 수집 수단의 거리가 가장 짧은 지점인 제3 지점을 각각 꼭지점으로 하는 삼각형의 외심을 상기 동적 장애물의 위치로 계산할 수 있다.The processor selects a first point that is a point where the dynamic obstacle is first detected, a second point that is a point where the dynamic obstacle is last detected, and a third point that is a point where the distance between the dynamic obstacle and the information collecting means is the shortest. The circumcenter of a triangle having each vertex may be calculated as the position of the dynamic obstacle.

상기 프로세서는, 상기 동적 장애물을 감지한 시점을 기준으로 이전 시점인 제1 시점에서의 상기 동적 장애물의 제1 위치와, 상기 제1 시점보다 이전 시점인 제2 시점에서의 상기 동적 장애물의 제2 위치를 기초로 상기 동적 장애물의 이동 경로를 계산하고, 상기 제1 시점에서 상기 동적 장애물과의 거리, 그리고 로봇과 상기 동적 장애물의 상대 속도 크기를 이용하여 상기 충돌 예측 시점을 계산할 수 있다.The processor is configured to: a first position of the dynamic obstacle at a first time point that is a previous time based on a time point at which the dynamic obstacle is sensed, and a second position of the dynamic obstacle at a second time point that is earlier than the first time point The moving path of the dynamic obstacle may be calculated based on the location, and the collision prediction time may be calculated using the distance from the dynamic obstacle at the first time point and the relative velocity between the robot and the dynamic obstacle.

상기 프로세서는, 상기 로봇의 주행 방향과 주행 후보 방향 별 충돌 회피 확률을 계산하고, 상기 충돌 예측 시점과 상기 충돌 회피 확률을 기초로 상기 동적 장애물과의 충돌 확률을 계산할 수 있다.The processor may calculate a collision avoidance probability for each driving direction of the robot and each driving candidate direction, and calculate a collision probability with the dynamic obstacle based on the collision prediction time and the collision avoidance probability.

상기 프로세서는, 전역 경로와의 거리, 목표 지점까지의 거리, 그리고 정적 장애물에 대한 양의 비용을 토대로 계산한 비용 함수의 값이 미리 설정한 기준 값보다 크면 현재 주행 속도보다 빠른 속도로 주행하도록 제어 신호를 생성하고, 상기 비용 함수의 값이 상기 기준 값보다 작으면, 상기 현재 주행 속도보다 느린 속도로 주행하도록 제어 신호를 생성할 수 있다.If the value of the cost function calculated based on the distance from the global route, the distance to the target point, and the positive cost of the static obstacle is greater than a preset reference value, the processor is controlled to drive at a speed faster than the current driving speed A signal may be generated, and when the value of the cost function is less than the reference value, the control signal may be generated to drive at a speed slower than the current driving speed.

상기 본 발명의 기술적 과제를 달성하기 위한 본 발명의 또 다른 특징인 월드 맵 관리 서버가 로봇과 연동하여 상기 로봇이 생성한 월드 맵을 관리하는 방법으로서, As another feature of the present invention for achieving the technical problem of the present invention, the world map management server interworks with the robot to manage the world map generated by the robot,

상기 로봇으로부터 상기 로봇이 주행중인 공간의 주행 가능 영역과 주행 불가능 영역이 표시된 월드 맵을 수신하는 단계, 상기 로봇으로부터 로봇의 위치 정보, 이동 경로 정보, 그리고 상기 로봇이 인식한 동적 장애물의 위치 정보와 상기 동적 장애물과의 충돌 확률을 수신하는 단계, 그리고 상기 동적 장애물과의 충돌 확률을 토대로 계산된 비용 함수 계산 값이 기준 값 이하인 횟수가 미리 설정된 횟수 이상이면, 상기 동적 장애물의 위치를 상기 월드 맵에서 블록 처리하여 상기 월드 맵을 갱신하는 단계를 포함한다. receiving, from the robot, a world map in which a drivable area and a non-travelable area of the space in which the robot is traveling are displayed, location information of the robot, movement path information, and location information of a dynamic obstacle recognized by the robot from the robot; Receiving the collision probability with the dynamic obstacle, and if the number of times the cost function calculation value calculated based on the collision probability with the dynamic obstacle is less than or equal to a reference value is more than a preset number of times, the location of the dynamic obstacle is determined from the world map and updating the world map by block processing.

본 발명에 따르면, 동적 주행 환경에서 동적 장애물을 감지하더라도, 자율주행 로봇은 주행을 멈추고 동적 장애물이 지나갈 때까지 기다리지 않고도 동적 장애물을 감지한 시점에 충돌 확률과 동적 장애물의 이동 경로를 파악하여, 동적 장애물과의 충돌을 회피하여 주행할 수 있다.According to the present invention, even when a dynamic obstacle is detected in a dynamic driving environment, the autonomous driving robot recognizes the collision probability and the movement path of the dynamic obstacle at the time of detecting the dynamic obstacle without stopping the driving and waiting for the dynamic obstacle to pass, You can drive while avoiding collisions with obstacles.

도 1은 본 발명의 실시예에 따라 자율주행 로봇이 적용된 환경의 예시도이다.
도 2는 본 발명의 실시예에 따른 자율주행 로봇의 구조도이다.
도 3은 본 발명의 실시예에 따른 동적 장애물과의 충돌 회피 방법을 나타낸 흐름도이다.
도 4는 본 발명의 실시예에 따른 장애물 위치 추정 방법에 대한 흐름도이다.
도 5는 본 발명의 실시예에 따른 로봇과 동적 장애물의 충돌 예측 시점과 충돌 확률을 계산하는 절차에 대한 흐름도이다.
도 6은 본 발명의 실시예에 따른 충돌 회피 경로 설정 방법에 대한 흐름도이다.
도 7은 본 발명의 실시예에 따른 로봇이 장애물을 감지한 예시도이다.
도 8은 본 발명의 실시예에 따라 로봇이 장애물의 위치를 계산하는 예시도이다.
도 9는 본 발명의 실시예에 따른 2차원 점유 격자 지도의 예시도이다.
도 10은 본 발명의 실시예에 따라 로봇이 감지하는 지점들이 분리된 예시도이다.
도 11은 본 발명의 실시예에 따른 동적 장애물이 분리된 예시도이다.
도 12는 본 발명의 실시예에 따른 동적 장애물 위치를 추정하는 예시도이다.
도 13은 본 발명의 실시예에 따라 장애물 이동 경로 및 궤적을 예측한 예시도이다.
도 14는 본 발명의 실시예에 따른 충돌 예측 시점을 구하기 위한 예시도이다.
도 15는 본 발명의 실시예에 따른 충돌 예측 시점에 따른 충돌 회피 확률을 나타낸 예시도이다.
도 16은 본 발명의 실시예에 따른 로봇 주행 방향 별 충돌 회피 확률을 나타낸 예시도이다.
도 17은 본 발명의 실시예에 따라 월드 맵 관리 서버가 관리하는 로봇의 속도 정보를 나타낸 예시도이다.
도 18은 본 발명의 실시예에 따른 월드 맵 업데이트 과정을 나타낸 예시도이다.
1 is an exemplary diagram of an environment to which an autonomous driving robot is applied according to an embodiment of the present invention.
2 is a structural diagram of an autonomous driving robot according to an embodiment of the present invention.
3 is a flowchart illustrating a method for avoiding collision with a dynamic obstacle according to an embodiment of the present invention.
4 is a flowchart of a method for estimating an obstacle position according to an embodiment of the present invention.
5 is a flowchart of a procedure for calculating a collision prediction time and collision probability between a robot and a dynamic obstacle according to an embodiment of the present invention.
6 is a flowchart of a method for setting a collision avoidance path according to an embodiment of the present invention.
7 is an exemplary view in which the robot senses an obstacle according to an embodiment of the present invention.
8 is an exemplary diagram in which a robot calculates a position of an obstacle according to an embodiment of the present invention.
9 is an exemplary diagram of a two-dimensional occupancy grid map according to an embodiment of the present invention.
10 is an exemplary diagram in which points sensed by a robot are separated according to an embodiment of the present invention.
11 is an exemplary view in which a dynamic obstacle is separated according to an embodiment of the present invention.
12 is an exemplary diagram for estimating a dynamic obstacle position according to an embodiment of the present invention.
13 is an exemplary diagram of predicting an obstacle movement path and trajectory according to an embodiment of the present invention.
14 is an exemplary diagram for obtaining a collision prediction time according to an embodiment of the present invention.
15 is an exemplary diagram illustrating a collision avoidance probability according to a collision prediction time according to an embodiment of the present invention.
16 is an exemplary view showing the collision avoidance probability for each driving direction of the robot according to an embodiment of the present invention.
17 is an exemplary diagram illustrating speed information of a robot managed by a world map management server according to an embodiment of the present invention.
18 is an exemplary diagram illustrating a world map update process according to an embodiment of the present invention.

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

명세서 전체에서, 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다. Throughout the specification, when a part "includes" a certain element, it means that other elements may be further included, rather than excluding other elements, unless otherwise stated.

이하, 도면을 참조로 하여 본 발명의 실시예에 따른 자율주행 로봇, 자율주행 로봇의 월드 맵 관리 서버 및 이를 이용한 자율주행 로봇의 충돌 회피 방법에 대해 상세히 설명한다. Hereinafter, an autonomous driving robot, a world map management server of an autonomous driving robot, and a collision avoidance method of an autonomous driving robot using the same according to an embodiment of the present invention will be described in detail with reference to the drawings.

도 1은 본 발명의 실시예에 따라 자율주행 로봇이 적용된 환경의 예시도이다.1 is an exemplary diagram of an environment to which an autonomous driving robot is applied according to an embodiment of the present invention.

도 1에 도시된 바와 같이, 자율주행 로봇(이하, 설명의 편의를 위하여 '로봇'이라 지칭함)(100)은, 공간을 주행하기 위해서 로봇(100)이 위치한 공간의 월드 맵을 생성한다. 여기서, 월드 맵은, 로봇(100)이 초기에 해당 공간 전체를 주행하며 생성한 지도로, 월드 맵은 공간 내에서 로봇(100)이 주행 가능한 영역과 주행이 불가능한 영역(예를 들어, 벽면, 기둥 등)이 구분되도록 생성된다. 로봇(100)은 월드 맵을 생성하면 로봇(100)과 연동한 월드 맵 관리 서버(200)으로 전달하여, 월드 맵 관리 서버(200)에서 저장, 관리된다.As shown in FIG. 1 , an autonomous driving robot (hereinafter, referred to as a 'robot' for convenience of description) 100 generates a world map of a space in which the robot 100 is located in order to travel in space. Here, the world map is a map generated while the robot 100 initially travels the entire space, and the world map is an area in which the robot 100 can run and an area in which it cannot be driven (eg, a wall, pillars, etc.) are created to be distinguished. When the robot 100 generates a world map, it transmits it to the world map management server 200 interlocked with the robot 100 , and is stored and managed in the world map management server 200 .

로봇(100)은 생성한 월드 맵을 기초로 해당 공간을 주행하면서, 로봇(100)에 설치된 센서를 이용하여 장애물이 있는지 센싱한다. 그리고 장애물을 감지하면 장애물의 위치를 계산한다. 본 발명의 실시예에 따른 로봇(100)은 라이다(LiDAR: Light Detection And Ranging) 센서를 사용하여 장애물을 감지하는 것을 예로 하여 설명하나, 레이더, 깊이 카메라, 다양한 센서들 등을 이용할 수 있으며 반드시 이와 같이 한정되는 것은 아니다. The robot 100 senses whether there is an obstacle by using a sensor installed in the robot 100 while driving in a corresponding space based on the generated world map. And when an obstacle is detected, the position of the obstacle is calculated. The robot 100 according to the embodiment of the present invention will be described as an example of detecting an obstacle using a LiDAR (Light Detection And Ranging) sensor, but radar, a depth camera, various sensors, etc. may be used and must be It is not limited in this way.

로봇(100)은 장애물을 동적 장애물(예를 들어, 사람 등)과 정적 장애물(예를 들어, 테이블, 화분 등)로 구분할 수 있다. The robot 100 may classify an obstacle into a dynamic obstacle (eg, a person, etc.) and a static obstacle (eg, a table, a flowerpot, etc.).

로봇(100)은 구별한 각 장애물 별로 충돌 예측 시점을 계산하고, 계산한 충돌 예측 시점을 기초로 충돌 확률을 계산한다. The robot 100 calculates a collision prediction time for each identified obstacle, and calculates a collision probability based on the calculated collision prediction time.

로봇(100)은 계산한 충돌 확률과 장애물의 위치 정보, 그리고 로봇(100)의 식별 정보와 로봇(100)의 위치 정보를 월드 맵 관리 서버(200)로 전송한다.The robot 100 transmits the calculated collision probability and the position information of the obstacle, and the identification information of the robot 100 and the position information of the robot 100 to the world map management server 200 .

또한, 로봇(100)은 계산한 충돌 확률에 따라 비용 함수를 계산하고, 계산한 비용 함수를 이용하여 로봇(100)의 이동 속도를 조절하고 회피 경로를 생성한다. In addition, the robot 100 calculates a cost function according to the calculated collision probability, and adjusts the moving speed of the robot 100 using the calculated cost function and generates an avoidance path.

이와 동시에 월드 맵 관리 서버(200)는 저장한 월드 맵을 기반으로 로봇(100)의 이동경로 이력과 장애물 위치 정보, 충돌 확률을 이용하여 월드 맵을 갱신한다. 그리고 갱신한 월드 맵을 로봇(100)에 전달하여, 로봇(100)이 갱신된 월드 맵을 기초로 해당 공간을 주행하도록 한다.At the same time, the world map management server 200 updates the world map using the movement path history of the robot 100, obstacle location information, and collision probability based on the stored world map. Then, the updated world map is transmitted to the robot 100 so that the robot 100 travels in a corresponding space based on the updated world map.

여기서, 로봇(100)의 구조에 대해 도 2를 참조로 설명한다. Here, the structure of the robot 100 will be described with reference to FIG. 2 .

도 2는 본 발명의 실시예에 따른 자율주행 로봇의 구조도이다.2 is a structural diagram of an autonomous driving robot according to an embodiment of the present invention.

도 2에 도시된 바와 같이, 로봇(100)은 버스(120)를 통해 통신하는 프로세서(110), 메모리(130), 센서(140), 인터페이스(150), 저장 장치(160) 그리고 구동 장치(170)를 포함한다. As shown in FIG. 2 , the robot 100 includes a processor 110 , a memory 130 , a sensor 140 , an interface 150 , a storage device 160 , and a driving device that communicate through a bus 120 . 170).

프로세서(110)는 로봇(100)의 동작을 제어하는 장치로서, 프로그램에 포함된 명령들을 처리하는 다양한 형태의 프로세서일 수 있고, 예를 들면, CPU(Central Processing Unit), MPU(Micro Processor Unit), MCU(Micro Controller Unit), GPU(Graphic Processing Unit) 등 일 수 있다. 또는, 프로세서(110)는 메모리(130) 또는 저장 장치(170)에 저장된 명령을 실행하는 반도체 장치일 수 있다. 프로세서(110)는 이후 설명할 로봇(100)의 기능들 및 방법을 실행하도록 구성될 수 있다. The processor 110 is a device for controlling the operation of the robot 100, and may be a processor of various types that processes instructions included in a program, for example, a central processing unit (CPU), a micro processor unit (MPU) , a micro controller unit (MCU), a graphic processing unit (GPU), or the like. Alternatively, the processor 110 may be a semiconductor device that executes instructions stored in the memory 130 or the storage device 170 . The processor 110 may be configured to execute functions and methods of the robot 100 to be described later.

프로세서(110)는 로봇(100)이 처음 공간을 주행하면 초기 월드 맵을 작성한다. 그리고 프로세서(110)는 로봇(100)이 공간을 주행하면서 다양한 장애물들을 센싱하면, 센싱한 장애물들 중 정적 장애물들에 대한 정보를 반영하여 초기 월드 맵을 갱신할 수도 있다. 프로세서(110)가 월드 맵을 작성하거나 갱신하는 방법은 이미 알려진 것으로, 본 발명의 실시예에서는 상세한 설명을 생략한다.The processor 110 creates an initial world map when the robot 100 first travels in space. In addition, when the robot 100 senses various obstacles while traveling in space, the processor 110 may update the initial world map by reflecting information on static obstacles among the sensed obstacles. A method for the processor 110 to create or update the world map is already known, and detailed description thereof will be omitted in the exemplary embodiment of the present invention.

프로세서(110)는 월드 맵을 이용하여 이후 설명할 센서(140)가 센싱한 장애물이 동적 장애물인지 정적 장애물인지 구별한다. 월드 맵은 복수의 격자로 구성되고, 각 격자에 점유도 값이 매핑되어 있다. 따라서, 프로세서(110)는 점유 격자 지도인 월드 맵을 이용하여, 센싱한 장애물이 정적 장애물인지 동적 장애물인지 판단한다. 이에 대해서는 이후 상세히 설명한다.The processor 110 distinguishes whether the obstacle sensed by the sensor 140, which will be described later, is a dynamic obstacle or a static obstacle using the world map. The world map is composed of a plurality of grids, and occupancy values are mapped to each grid. Accordingly, the processor 110 determines whether the sensed obstacle is a static obstacle or a dynamic obstacle by using the world map that is the occupancy grid map. This will be described in detail later.

프로세서(110)는 장애물이 여러 개인 경우 각각의 장애물을 구별하고, 각 장애물의 위치를 추정한다. When there are multiple obstacles, the processor 110 distinguishes each obstacle and estimates a location of each obstacle.

또한, 프로세서(110)는 위치를 추정한 각 동적 장애물과의 충돌 예측 시점을 계산하고, 충돌 예측 시점을 기초로 충돌 확률을 계산한다. 프로세서(110)는 충돌 충돌 확률을 토대로 로봇(100)이 동적 장애물에 충돌하지 않을 속도를 계산하고, 동적 장애물을 회피할 회피 경로를 생성한다.In addition, the processor 110 calculates a collision prediction time with each dynamic obstacle whose location is estimated, and calculates a collision probability based on the collision prediction time. The processor 110 calculates a speed at which the robot 100 will not collide with the dynamic obstacle based on the collision collision probability, and generates an avoidance path for avoiding the dynamic obstacle.

또한, 프로세서(110)는 생성한 회피 경로와 속도로 로봇(100)이 주행하도록 구동 장치(170)를 제어할 제어 신호를 생성한다. 또한, 프로세서(110)는 월드 맵 관리 서버(200)로부터 갱신된 월드 맵을 수신하면, 저장 장치(160)에 저장된 월드 맵을 갱신한다.In addition, the processor 110 generates a control signal to control the driving device 170 so that the robot 100 travels at the generated avoidance path and speed. Also, when the processor 110 receives the updated world map from the world map management server 200 , the processor 110 updates the world map stored in the storage device 160 .

메모리(130)는 다양한 형태의 휘발성 또는 비휘발성 저장 매체를 포함할 수 있다. 예를 들어, 메모리(130)는 본 발명의 동작을 실행하도록 기술된 명령들이 프로세서(110)에 의해 처리되도록 해당 프로그램을 로드하며, ROM(read only memory)(131) 및 RAM(random access memory)(132)를 포함할 수 있다. The memory 130 may include various types of volatile or non-volatile storage media. For example, the memory 130 loads a corresponding program so that instructions described to execute the operations of the present invention are processed by the processor 110 , a read only memory (ROM) 131 and a random access memory (RAM) (132).

본 발명의 실시예에서 메모리(130)는 프로세서(110)의 내부 또는 외부에 위치할 수 있고, 메모리(130)는 이미 알려진 다양한 수단을 통해 프로세서(110)와 연결될 수 있다.In an embodiment of the present invention, the memory 130 may be located inside or outside the processor 110 , and the memory 130 may be connected to the processor 110 through various known means.

센서(140)는 본 발명의 동작에 따라 주행 중인 로봇(100)이 정보를 수집하는 다양한 장비(예를 들어, 라이다, 깊이 카메라, 관성 측정 장치(IMU: Inertial Measurement Unit) 등)들에 해당한다. The sensor 140 corresponds to various equipment (eg, lidar, depth camera, inertial measurement unit (IMU), etc.) from which the robot 100 while driving according to the operation of the present invention collects information. do.

인터페이스(150)는 서버(200)와 연동하여, 로봇(100)이 생성한 월드 맵을 월드 맵 관리 서버(200)로 전달한다. 또한, 로봇(100)이 수집한 주행 정보를 월드 맵 관리 서버(200)로 전달한다. 여기서 주행 정보는 장애물 정보와 로봇 정보를 포함한다. The interface 150 interworks with the server 200 to transmit the world map generated by the robot 100 to the world map management server 200 . In addition, the driving information collected by the robot 100 is transmitted to the world map management server 200 . Here, the driving information includes obstacle information and robot information.

장애물 정보는 장애물의 구별 정보(정적 장애물 또는 동적 장애물), 장애물의 위치 정보와 장애물과의 충돌 확률을 포함한다. 그리고 주행 정보는 로봇(100)의 식별 정보와 로봇의 위치 정보, 그리고 프로세서(110)가 계산한 조절 속도와 회피 경로를 포함한다. The obstacle information includes identification information of the obstacle (static obstacle or dynamic obstacle), location information of the obstacle, and a collision probability with the obstacle. And the driving information includes identification information of the robot 100 and position information of the robot, and the control speed and avoidance path calculated by the processor 110 .

또한 인터페이스(150)는 월드 맵 관리 서버(200)로부터 전송되는 갱신된 월드 맵을 수신하여 프로세서(110)로 전달한다.Also, the interface 150 receives the updated world map transmitted from the world map management server 200 and transmits it to the processor 110 .

저장 장치(160)는 로봇(100)이 주행하는 공간의 월드 맵을 저장할 수 있다. 또한, 저장 장치(160)는 동적 장애물에 대한 특징 정보, 그리고 정적 장애물에 대한 특징 정보를 저장, 관리한다. 여기서 각 장애물의 특징 정보는 장애물의 형태, 크기 등을 포함할 수 있으며, 장애물의 특징 정보를 어느 하나로 한정하지 않는다.The storage device 160 may store a world map of a space in which the robot 100 travels. In addition, the storage device 160 stores and manages characteristic information on dynamic obstacles and characteristic information on static obstacles. Here, the characteristic information of each obstacle may include the shape and size of the obstacle, and the characteristic information of the obstacle is not limited to any one.

구동 장치(170)는 프로세서(110)의 제어에 따라 로봇(100)이 사업장 내부에서 주행되도록 한다. The driving device 170 allows the robot 100 to run inside the workplace under the control of the processor 110 .

여기서, 로봇(100)이 동적 장애물을 인식하고, 동적 장애물과의 충돌 예측 시점과 충돌 확률을 계산하고, 충돌 확률에 따라 조절할 주행 속도와 회피 경로를 생성하는 충돌 회피 방법에 대해 도 3을 참조로 설명한다.Here, for a collision avoidance method in which the robot 100 recognizes a dynamic obstacle, calculates a collision prediction time and collision probability with a dynamic obstacle, and generates a driving speed and an avoidance path to be adjusted according to the collision probability, refer to FIG. 3 . Explain.

도 3은 본 발명의 실시예에 따른 동적 장애물과의 충돌 회피 방법을 나타낸 흐름도이다.3 is a flowchart illustrating a method for avoiding collision with a dynamic obstacle according to an embodiment of the present invention.

도 3에 도시된 바와 같이, 로봇(100)은 임의의 공간을 주행하기 위해서는 초기 월드 맵을 작성한다(S100). 월드 맵은 초기에 로봇(100)이, 해당 공간 전체를 주행하며 생성한 지도로, 월드 맵은 공간 내에서 로봇(100)이 주행 가능한 영역과 주행이 불가능한 영역(예를 들어, 벽면, 기둥 등)으로 구분하여 생성된다. As shown in FIG. 3 , the robot 100 creates an initial world map to travel in an arbitrary space ( S100 ). The world map is a map generated by the robot 100 initially driving the entire space, and the world map is an area in which the robot 100 can run and an area in which it cannot be driven (eg, a wall, a column, etc.) ) is separated and created.

월드 맵은 복수의 영역 각각에 하나씩 격자가 매핑되어 있는 격자 구조이고, 각 격자에는 로봇(100)의 주행 가능/불가능 여부에 따라 점유도 값이 매핑되어 있다. 로봇(100)이 월드 맵을 작성하는 방법은 이미 알려진 것으로, 본 발명의 실시예에서는 상세한 설명을 생략한다.The world map has a lattice structure in which one lattice is mapped to each of a plurality of regions, and an occupancy value is mapped to each lattice according to whether the robot 100 is drivable or not. A method for the robot 100 to create a world map is already known, and detailed description thereof will be omitted in the embodiment of the present invention.

로봇(100)은 최초 작성한 월드 맵 즉, 초기 월드 맵을 월드 맵 관리 서버(200)로 전달하고(S101), 월드 맵 관리 서버(200)에서도 초기 월드 맵을 저장, 관리한다(S102). The robot 100 transmits the first created world map, that is, the initial world map to the world map management server 200 (S101), and also stores and manages the initial world map in the world map management server 200 (S102).

로봇(100)은 S100 단계에서 작성한 초기 월드 맵을 기반으로 임의의 공간에서 자율 주행한다(S103). The robot 100 autonomously travels in an arbitrary space based on the initial world map created in step S100 (S103).

로봇(100)은 자율 주행하면서, 라이다 센서 등과 같은 센서(140)를 이용하여 레이저를 출력한다. 그리고 로봇(100)으로부터 출력된 레이저가 임의의 장애물에 반사되어 돌아오면, 로봇(100)은 센싱 범위 내에 장애물이 있음을 감지한다. The robot 100 outputs a laser using a sensor 140 such as a lidar sensor while autonomously driving. And when the laser output from the robot 100 is reflected back to any obstacle, the robot 100 detects that there is an obstacle within the sensing range.

로봇(100)은 레이저가 반사되어 돌아온 시간을 기초로 장애물과 로봇(100) 사이의 거리를 계산하고, 로봇(100)을 기준으로 장애물이 위치한 각도를 계산한다. 로봇(100)은 거리와 각도를 기초로, 감지한 장애물의 위치를 추정한다(S104). The robot 100 calculates the distance between the obstacle and the robot 100 based on the time when the laser is reflected and returned, and calculates the angle at which the obstacle is located based on the robot 100 . The robot 100 estimates the position of the detected obstacle based on the distance and angle (S104).

장애물의 위치를 추정한 로봇(100)은 장애물을 동적 장애물과 정적 장애물로 구분한다(S105). 즉, 로봇(100)은 S104 단계에서 감지한 장애물이 정적인 장애물인지 동적인 장애물인지 이동 가능성을 파악하기 위해, 월드 맵에 대응하는 점유 격자 지도에 매핑되어 있는 점유도 값과 공간의 장애물의 위치 정보를 활용하여, 정적 장애물 지점과 동적 장애물 지점을 분리한다.The robot 100 estimating the position of the obstacle divides the obstacle into a dynamic obstacle and a static obstacle ( S105 ). That is, the robot 100 determines whether the obstacle detected in step S104 is a static obstacle or a dynamic obstacle, the occupancy value mapped to the occupancy grid map corresponding to the world map and the location of the obstacle in space. Using the information, it separates static obstacles and dynamic obstacles.

로봇(100)은 감지한 장애물의 위치가 점유 공간 내에 있다면 정적 장애물로 인식한다. 그러나 감지한 장애물의 위치가 자유 공간 영역에 있다면, 로봇(100)은 감지한 장애물을 동적 장애물로 인식한다. The robot 100 recognizes the detected obstacle as a static obstacle if the position is within the occupied space. However, if the position of the detected obstacle is in the free space area, the robot 100 recognizes the detected obstacle as a dynamic obstacle.

만약 감지한 장애물이 정적 장애물이라면, 로봇(100)은 정적 장애물에 해당하는 정보(장애물 위치 정보와 장애물 식별 정보)가 월드 맵에 반영되어 있는지 확인한다. 그리고 정적 장애물에 대한 정보가 월드 맵에 반영되어 있지 않으면, 월드 맵의 갱신을 위하여 주행 정보를 저장, 관리한다. 정적 장애물에 대한 정보를 월드 맵에 반영하는 것은 다양한 방법을 통해 수행될 수 있으므로, 본 발명의 실시예에서는 어느 하나의 방법으로 한정하지 않는다.If the detected obstacle is a static obstacle, the robot 100 checks whether information (obstacle location information and obstacle identification information) corresponding to the static obstacle is reflected in the world map. And if information on static obstacles is not reflected in the world map, driving information is stored and managed to update the world map. Reflecting the information on the static obstacle on the world map may be performed through various methods, so the embodiment of the present invention is not limited to any one method.

그러나 감지한 장애물이 자유 공간 영역에 있는 동적 장애물이라면, 로봇(100)은 동적 장애물에 매핑되어 있는 식별 정보를 기초로 동적 장애물의 이동 속도와 이동 경로를 파악한다. However, if the detected obstacle is a dynamic obstacle in the free space area, the robot 100 determines the movement speed and movement path of the dynamic obstacle based on the identification information mapped to the dynamic obstacle.

그리고, 로봇(100)은 이동 속도와 이동 경로를 기초로, 동적 장애물과의 충돌 예측 시점을 계산한다. 또한, 로봇(100)은 충돌 예측 시점을 기초로 충돌 확률을 계산한다(S106). Then, the robot 100 calculates a collision prediction time with a dynamic obstacle based on the moving speed and the moving path. In addition, the robot 100 calculates the collision probability based on the collision prediction time (S106).

로봇(100)은 S106 단계에서 계산한 충돌 확률을 기초로 충돌 회피 확률을 계산하고, 충돌 회피 확률을 이용하여 로봇(100)의 주행 방향 별로 충돌 회피 확률을 계산한다. 이때, 로봇(100)의 전방을 기준으로 하여, 각도별로 복수의 주행 방향이 구분될 수 있다. 그리고 로봇(100)은 각 주행 방향별로 계산한 충돌 회피 확률들 중, 가장 높은 충돌 회피 확률 값을 나타내는 주행 방향으로 주행 경로를 변경한다(S107). The robot 100 calculates a collision avoidance probability based on the collision probability calculated in step S106, and calculates a collision avoidance probability for each driving direction of the robot 100 using the collision avoidance probability. In this case, based on the front of the robot 100 , a plurality of driving directions may be distinguished for each angle. Then, the robot 100 changes the driving path to the driving direction indicating the highest collision avoidance probability value among the collision avoidance probabilities calculated for each driving direction ( S107 ).

로봇(100)은 S104 단계 내지 S107 단계를 통해 수집한 장애물의 식별 정보와 위치 정보, 정적/동적 장애물 구분 정보, 충돌 예측 시간과 충돌 확률, 그리고 회피 주행 경로를 포함하는 주행 정보를 월드 맵 관리 서버(200)로 전달한다(S108). 월드 맵 관리 서버(200)는 S108 단계에서 로봇(100)으로부터 수신한 주행 정보를 로봇(100)의 식별 정보에 매핑하여 저장한다(S109). The robot 100 stores driving information including identification information and location information of obstacles collected through steps S104 to S107, static/dynamic obstacle classification information, collision prediction time and collision probability, and avoidance driving path to the world map management server It transfers to (200) (S108). The world map management server 200 maps and stores the driving information received from the robot 100 in step S108 to the identification information of the robot 100 (S109).

월드 맵 관리 서버(200)는 미리 설정한 기간 동안 주행 정보를 누적하고, S102 단계에서 저장한 초기 월드 맵을 누적한 주행 정보를 이용하여 갱신한다(S110). 본 발명의 실시예에서는 일주일 단위로 월드 맵을 갱신하는 것을 예로 하여 설명하나, 반드시 이와 같이 한정되는 것은 아니다. 그리고 S102 단계에서 저장한 월드 맵은 초기 월드맵이므로 S110 단계에서는 초기 월드 맵이 월드 맵으로 갱신되는 것으로 표현하나, 저장되어 있는 월드 맵이 한 번 갱신된 월드 맵이라면, 월드 맵이 갱신될 수도 있다.The world map management server 200 accumulates driving information for a preset period and updates the initial world map stored in step S102 using the accumulated driving information (S110). In the embodiment of the present invention, updating the world map on a weekly basis is described as an example, but the present invention is not limited thereto. And since the world map stored in step S102 is an initial world map, in step S110, the initial world map is expressed as being updated as a world map. However, if the stored world map is a world map that has been updated once, the world map may be updated. .

여기서, 월드 맵 관리 서버(200)는 로봇(100)의 이동 경로 이력, 장애물 위치 정보, 충돌 확률 정보를 기반으로, 월드 맵 상에서 위험 지역을 로봇(100)이 접근할 수 없도록 블록으로 처리할 수 있다. 또한, 월드 맵 관리 서버(200)는 로봇(100)이 특정 구간을 주행할 때 시간 제한을 두고 주행하도록 제어하거나, 속도를 조절하여 주행하도록 로봇(100)에 학습된 정보를 전달할 수도 있다. 본 발명의 실시예에서는 월드 맵 관리 서버(200)가 월드 맵을 갱신하면서 로봇(100)에 제공하는 다양한 정보들을 '주행 참고 정보'라 지칭한다.Here, the world map management server 200 may process the dangerous area on the world map as a block so that the robot 100 cannot access it based on the movement path history of the robot 100, obstacle location information, and collision probability information. there is. In addition, the world map management server 200 may control the robot 100 to travel with a time limit when traveling in a specific section, or transmit the learned information to the robot 100 to drive by adjusting the speed. In an embodiment of the present invention, various pieces of information provided by the world map management server 200 to the robot 100 while updating the world map are referred to as 'driving reference information'.

월드 맵 관리 서버(200)는 갱신한 월드 맵과 주행 참고 정보를 로봇(100)으로 전달한다(S111). 로봇(100)은 월드 맵 관리 서버(200)로부터 수신한 갱신된 월드 맵을 로봇(100) 내에 저장된 월드 맵에 반영하여 갱신하고(S112), 갱신한 월드 맵과 주행 참고 정보를 이용하여 공간을 주행한다(S113).The world map management server 200 transmits the updated world map and driving reference information to the robot 100 (S111). The robot 100 reflects and updates the updated world map received from the world map management server 200 in the world map stored in the robot 100 (S112), and uses the updated world map and driving reference information to save space. drive (S113).

상술한 절차 중, S104 단계에서 로봇(100)이 장애물을 감지하고 장애물의 위치를 추정하는 방법에 대해 도 4를 참조로 설명한다.A method of detecting an obstacle by the robot 100 and estimating the position of the obstacle in step S104 of the above procedure will be described with reference to FIG. 4 .

도 4는 본 발명의 실시예에 따른 장애물 위치 추정 방법에 대한 흐름도이다.4 is a flowchart of a method for estimating an obstacle position according to an embodiment of the present invention.

도 4에 도시된 바와 같이, 로봇(100)은 장애물을 감지하면, 월드 좌표계의 기준 좌표(이하, 설명의 편의를 위하여 '월드 기준 좌표'라 지칭함)를 기초로 장애물을 감지한 시점의 로봇의 위치 좌표를 확인한다(S200). As shown in FIG. 4 , when the robot 100 detects an obstacle, the robot 100 at the time of detecting the obstacle based on the reference coordinates of the world coordinate system (hereinafter, referred to as 'world reference coordinates' for convenience of explanation) Check the location coordinates (S200).

여기서, 월드 기준 좌표는 사전에 월드 좌표계에서 임의의 좌표를 절대 좌표로 정해 놓은 좌표이다. 본 발명의 실시예에서는 로봇(100)이 충전되는 충전 스테이션의 위치를 월드 기준 좌표로 설정하는 것을 예로 하여 설명하나, 반드시 이와 같이 한정되는 것은 아니다.Here, the world reference coordinates are coordinates in which arbitrary coordinates are set as absolute coordinates in the world coordinate system in advance. In the exemplary embodiment of the present invention, setting the location of the charging station where the robot 100 is charged is set as the world reference coordinates as an example, but the present invention is not limited thereto.

로봇(100)은 자신의 현재 위치를 확인한 후, 레이저가 장애물에 반사되어 돌아온 시간을 토대로 로봇(100)과 장애물 사이의 거리를 측정한다(S201). 그리고 로봇(100)은 로봇 좌표계를 기준으로 장애물의 각도를 계산한다(S202).After confirming its current location, the robot 100 measures the distance between the robot 100 and the obstacle based on the time when the laser is reflected and returned to the obstacle (S201). And the robot 100 calculates the angle of the obstacle based on the robot coordinate system (S202).

로봇(100)은 S201 단계에서 측정한 거리와 S202 단계에서 계산한 각도를 토대로, 계산한 각도에서 측정한 거리만큼 떨어진 위치에 장애물이 있는 것으로 추정한다(S203).Based on the distance measured in step S201 and the angle calculated in step S202, the robot 100 estimates that there is an obstacle at a location separated by the distance measured from the calculated angle (S203).

이때 로봇(100)은 인지한 장애물이 동일한 위치에 복수 개 인지하였는지 확인한다. 만약 복수의 장애물들이 감지되면, 로봇(100)은 복수의 장애물들을 각각 구별한 후 장애물의 위치를 추정한다. 로봇(100)이 복수의 장애물들을 각각 구별하는 방법은 장애물의 형태를 파악하는 방법 등 다양한 방법으로 수행할 수 있으므로, 본 발명의 실시예에서는 상세한 설명은 생략한다.At this time, the robot 100 checks whether a plurality of recognized obstacles are recognized at the same location. If a plurality of obstacles are detected, the robot 100 separates each of the plurality of obstacles and then estimates the location of the obstacle. Since the robot 100 may perform various methods, such as a method of identifying the shape of the obstacle, the method for distinguishing each of the plurality of obstacles, a detailed description will be omitted in the embodiment of the present invention.

다음은 상기 도 3의 S105 단계에서 확인한 결과 장애물이 동적 장애물인 경우, S106 단계에서 계산하는 충돌 예측 시점과 충돌 확률 계산 방법에 대해 도 5를 참조로 설명한다.Next, when the obstacle is a dynamic obstacle as a result of checking in step S105 of FIG. 3 , a collision prediction time and a collision probability calculation method calculated in step S106 will be described with reference to FIG. 5 .

도 5는 본 발명의 실시예에 따른 로봇과 동적 장애물의 충돌 예측 시점과 충돌 확률을 계산하는 절차에 대한 흐름도이다.5 is a flowchart of a procedure for calculating a collision prediction timing and collision probability between a robot and a dynamic obstacle according to an embodiment of the present invention.

로봇(100)은 정적 장애물뿐만 아니라 한 번 감지된 동적 장애물에도 식별 정보를 부여하여 저장한다. 이를 위해, 로봇(100)은 정적 장애물 및 동적 장애물로부터 다른 장애물들과 구분할 수 있는 정보(예를 들어, 외형 등)를 특징 정보로서 추출한다. 로봇(100)이 장애물로부터 특징 정보를 추출하는 방법은 다양한 방법을 이용할 수 있으므로, 본 발명의 실시예에서는 어느 하나의 방법으로 한정하지 않는다.The robot 100 assigns identification information to not only static obstacles but also dynamic obstacles detected once and stores them. To this end, the robot 100 extracts information (eg, appearance, etc.) that can be distinguished from other obstacles from static obstacles and dynamic obstacles as characteristic information. Since the robot 100 may use various methods for extracting feature information from the obstacle, the embodiment of the present invention is not limited to any one method.

그리고, 로봇(100)은 특징 정보를 추출하면 식별 정보를 부여하여 특징 정보와 함께 매핑하여 저장해 둔다. 따라서, 도 5에 도시된 바와 같이, 로봇(100)은 상술한 방법들을 통해 동적 장애물을 감지하면, 해당 동적 장애물에 부여된 식별 정보를 확인한다(S300). 이는 동적 장애물의 이동 속도와 동적 장애물의 이동 경로를 파악하기 위함이다.And, when the robot 100 extracts the characteristic information, it gives identification information, maps it together with the characteristic information, and stores it. Accordingly, as shown in FIG. 5 , when the robot 100 detects a dynamic obstacle through the above-described methods, it checks identification information given to the corresponding dynamic obstacle ( S300 ). This is to determine the moving speed of the dynamic obstacle and the moving path of the dynamic obstacle.

만약 동적 장애물에 부여된 식별 정보가 없다면, 새로운 식별 정보를 부여하여 저장한다. 본 발명의 실시예에서는 이미 부여된 식별 정보가 있다고 가정하고, 로봇과 동적 장애물의 충돌 예측 시점과 충돌 확률을 계산하는 것을 예로 하여 설명한다.If there is no identification information assigned to the dynamic obstacle, new identification information is assigned and stored. In the embodiment of the present invention, it is assumed that there is already assigned identification information, and the collision prediction timing and collision probability between the robot and the dynamic obstacle are calculated as an example.

로봇(100)은 식별 정보를 토대로, 동적 장애물을 감지한 현재 시점의 동적 장애물의 위치(이하, 설명의 편의를 위하여 '현재 위치'라 지칭함)와, 이전 시점의 동적 장애물의 위치(이하, 설명의 편의를 위하여 '이전 위치'라 지칭함)를 기초로 동적 장애물의 이동 속도와 이동 경로를 파악한다(S301). Based on the identification information, the robot 100 detects the dynamic obstacle at the current point in time (hereinafter, referred to as 'current location' for convenience of description) and the location of the dynamic obstacle at the previous point in time (hereinafter, described below). For the convenience of , the movement speed and movement path of the dynamic obstacle are determined based on the 'previous position') (S301).

즉, 동적 장애물의 현재 위치는 상기 도 4를 통해 확인되었으므로, 로봇(100)은 동적 장애물의 식별 정보에 따라 저장되어 있는 이전 위치를 확인한다. 그리고 확인한 이전 위치와 현재 위치를 이용하여, 동적 장애물의 이동 속도와 경로를 파악한다. 두 위치 정보와 위치 정보를 확인한 시점을 토대로 이동 속도와 경로를 파악하는 방법은 이미 알려진 것으로, 본 발명의 실시예에서는 어느 하나의 방법으로 한정하여 설명하지 않는다.That is, since the current position of the dynamic obstacle is confirmed through FIG. 4 , the robot 100 identifies the previous position stored according to the identification information of the dynamic obstacle. Then, using the confirmed previous and current positions, the moving speed and path of the dynamic obstacle are identified. The two location information and a method of determining a movement speed and a route based on a time point at which the location information is confirmed are already known, and the embodiment of the present invention will not be limited to any one method.

로봇(100)은 이동 속도와 이동 경로를 파악한 후, 이동 경로를 토대로 다음 시점에서의 로봇(100)과 동적 장애물 사이의 거리, 그리고 로봇(100)과 동적 장애물의 상대 속도 크기로 충돌 예측 시점을 추정한다(S302). After the robot 100 identifies the moving speed and the moving path, based on the moving path, the collision prediction time is determined by the distance between the robot 100 and the dynamic obstacle at the next time point, and the relative speed of the robot 100 and the dynamic obstacle. Estimate (S302).

로봇(100)은 추정한 충돌 예측 시점을 이용하여 동적 장애물과의 충돌 확률을 계산한다(S303). 이에 대해서는 이후 상세히 설명한다.The robot 100 calculates a collision probability with a dynamic obstacle using the estimated collision prediction time (S303). This will be described in detail later.

로봇(100)이 충돌 예측 시점을 이용하여 충돌 회피 경로를 설정하는 방법에 대해 도 6을 참조로 설명한다.A method for the robot 100 to set a collision avoidance path using a collision prediction time will be described with reference to FIG. 6 .

도 6은 본 발명의 실시예에 따른 충돌 회피 경로 설정 방법에 대한 흐름도이다. 6 is a flowchart of a method for setting a collision avoidance path according to an embodiment of the present invention.

도 6에 도시된 바와 같이, 로봇(100)은 동적 장애물과의 충돌 확률을 이용하여, 충돌 회피 확률을 계산한다(S400). 본 발명의 실시예에서는 로봇(100)이 동적 장애물과 100% 충돌할 것으로 계산될 경우의 수치인 1에서 충돌 확률을 뺀 값을 충돌 회피 확률로 계산하나, 반드시 이와 같이 한정되는 것은 아니다.As shown in FIG. 6 , the robot 100 calculates the collision avoidance probability by using the collision probability with the dynamic obstacle ( S400 ). In the embodiment of the present invention, a value obtained by subtracting the collision probability from 1, which is a value when the robot 100 is calculated to collide 100% with the dynamic obstacle, is calculated as the collision avoidance probability, but is not limited thereto.

로봇(100)은 동적 장애물과 가장 짧은 직선 거리를 갖는 로봇(100)의 방향과, S400 단계에서 계산한 충돌 회피 확률을 저장한다(S401). 그리고, 로봇(100)의 현재 위치에서 전방을 기준으로, 로봇(100)이 주행할 수 있는 모든 주행 방향 별 충돌 회피 확률을 계산한다(S402). 본 발명의 실시예에서는 로봇(100)에 설치되어 있는 카메라의 방향을 전방으로 하나, 반드시 이와 같이 한정되는 것은 아니다.The robot 100 stores the direction of the robot 100 having the shortest linear distance from the dynamic obstacle and the collision avoidance probability calculated in step S400 (S401). Then, based on the front from the current position of the robot 100, the collision avoidance probability for each driving direction in which the robot 100 can travel is calculated (S402). In the embodiment of the present invention, the direction of the camera installed in the robot 100 is forward, but the present invention is not limited thereto.

로봇(100)은 모든 방향별로 계산한 충돌 회피 확률 중, 가장 높은 충돌 회피 확률 값을 가지는 방향으로 경로를 생성하고, 생성한 경로를 충돌 회피 경로로 결정한다(S403). The robot 100 generates a path in a direction having the highest collision avoidance probability value among the collision avoidance probabilities calculated for each direction, and determines the generated path as a collision avoidance path (S403).

이상에서 설명한 절차 중 로봇(100)이 로봇(100)의 위치와 장애물 들의 위치를 계산하는 예에 대해 도 7 및 도 8을 참조로 설명한다.An example in which the robot 100 calculates the position of the robot 100 and the positions of obstacles among the procedures described above will be described with reference to FIGS. 7 and 8 .

도 7은 본 발명의 실시예에 따른 로봇이 장애물을 감지한 예시도이다.7 is an exemplary view in which the robot senses an obstacle according to an embodiment of the present invention.

도 7에 도시된 바와 같이, 로봇(100)은 센서(140)를 이용하여 로봇(100)의 근방에 위치한 장애물들을 감지하고 장애물들의 위치를 계산한다. 이때, 로봇(100)은 센서(140)에서 출력된 레이저의 레이저 스캔 값을 실시간으로 측정하면서, 기 설정된 유효 범위 내에서 감지된 포인트들의 거리를 계산한다. As shown in FIG. 7 , the robot 100 detects obstacles located in the vicinity of the robot 100 using the sensor 140 and calculates the positions of the obstacles. At this time, the robot 100 measures the laser scan value of the laser output from the sensor 140 in real time, and calculates the distance of the detected points within a preset effective range.

포인트들의 거리를 계산하기 위해, 로봇(100)은 센서(140)에서 측정한 거리 값과 각도 값을 활용한다. 그리고 로봇(100)은 월드 좌표계의 기준 좌표를 토대로 장애물의 각 지점들의 위치를 기준으로 계산한다. 여기서, 월드 좌표계의 기준 좌표는, 사전에 월드 좌표계에서 절대 좌표로 정해놓은 좌표 값으로, 본 발명의 실시예에서는 로봇(100)이 충전되는 충전 스테이션의 위치를 월드 좌표계의 기준 좌표로 설정하는 것을 예로 하여 설명한다.To calculate the distance between the points, the robot 100 uses the distance value and the angle value measured by the sensor 140 . And the robot 100 calculates based on the position of each point of the obstacle based on the reference coordinates of the world coordinate system. Here, the reference coordinates of the world coordinate system are coordinate values previously determined as absolute coordinates in the world coordinate system. An example will be described.

도 8은 본 발명의 실시예에 따라 로봇이 장애물의 위치를 계산하는 예시도이다.8 is an exemplary diagram in which a robot calculates a position of an obstacle according to an embodiment of the present invention.

즉, 도 8에 도시된 바와 같이, 로봇(100)의 위치(rbx, rby)는 월드 맵의 월드 좌표계를 기준으로 제1 각도(θ1)에 해당한다. 로봇(100)이 감지한 장애물의 좌표 (ptx, pty)는 로봇(100)이 바라본 시점에서 계산한 좌표인 로봇 좌표계를 기준으로 일정 거리(dist)만큼 떨어진 제2 각도(θ2)에 해당한다. 이때, 일정 거리는 센서(140)에서 출력된 레이저가 장애물에 반사되어 돌아온 시간을 토대로 측정된 거리이다.That is, as shown in FIG. 8 , the positions rb x , rb y of the robot 100 correspond to the first angle θ 1 with respect to the world coordinate system of the world map. The coordinates (pt x , pt y ) of the obstacle detected by the robot 100 are at a second angle (θ 2 ) separated by a certain distance (dist) based on the robot coordinate system, which is the coordinates calculated from the point of view of the robot 100. corresponds to In this case, the predetermined distance is a distance measured based on the time when the laser output from the sensor 140 is reflected off the obstacle and returned.

여기서, 월드 좌표계에서의 장애물 위치는, 로봇 좌표계와의 상대 위치를 고려하여 정의되며, 다음 수학식 1을 이용한다.Here, the obstacle position in the world coordinate system is defined in consideration of the position relative to the robot coordinate system, and the following Equation 1 is used.

Figure pat00001
Figure pat00001

상기에서 설명한 바와 같이 로봇(100)은 장애물의 위치를 계산한 후, 센싱한 장애물을 동적 장애물과 정적 장애물로 분리한다. 그리고, 월드 좌표계에서 동적 장애물의 속도를 계산하기 위해, 로봇(100)은 점유 격자 지도를 이용하여 정적 지점과 동적 지점을 구분해야 한다. 이에 대해 도 9를 참조로 설명한다.As described above, after calculating the position of the obstacle, the robot 100 separates the sensed obstacle into a dynamic obstacle and a static obstacle. In addition, in order to calculate the velocity of the dynamic obstacle in the world coordinate system, the robot 100 must distinguish between a static point and a dynamic point using the occupancy grid map. This will be described with reference to FIG. 9 .

도 9는 본 발명의 실시예에 따른 2차원 점유 격자 지도의 예시도이다.9 is an exemplary diagram of a two-dimensional occupancy grid map according to an embodiment of the present invention.

로봇(100)은 SLAM(Simultaneous Localization And Mapping) 기술을 통해 월드 맵을 작성할 때, 월드 맵의 각 격자에 점유도 값을 저장하여 도 9에 나타낸 바와 같은 점유 격자 지도를 생성한다. When the robot 100 creates a world map through Simultaneous Localization And Mapping (SLAM) technology, it stores an occupancy value in each grid of the world map and generates an occupancy grid map as shown in FIG. 9 .

로봇(100)은 정적 장애물로 인해 이동이 불가능한 영역은, 점유된 공간 (Occupied space)로 간주하여 각 격자에 미리 설정된 점유도 값인 100을 저장한다. The robot 100 considers an area that cannot be moved due to a static obstacle as an occupied space, and stores 100, which is a preset occupancy value, in each grid.

반면, 로봇(100)은 주행할 수 있는 영역은 자유 공간(Free space)으로 간주하여, 점유도 값 0을 저장한다. On the other hand, the robot 100 considers a traversable area as a free space, and stores an occupancy value of 0.

그리고 로봇(100)은 주행할 수 있는지 없는지 알 수 없는 공간은, 알려지지 않은 공간(Unknown space)으로 간주하여 해당 격자에 점유도 값 -1을 저장한다.In addition, the space in which the robot 100 cannot know whether to drive or not is regarded as an unknown space and stores an occupancy value of -1 in the corresponding grid.

로봇(100)은 점유 격자 지도에 저장된 점유도 값과 공간의 위치 정보를 활용하여, 정적 장애물 지점과 동적 장애물 지점을 분리한다. 이를 위해 로봇(100)은 먼저 월드 맵의 전체 크기와 규모 정보를 이용하여, 월드 맵 내의 점유 공간의 위치를 월드 좌표계로 변환한다. The robot 100 separates the static obstacle point from the dynamic obstacle point by using the occupancy value stored in the occupancy grid map and the location information of the space. To this end, the robot 100 first converts the position of the occupied space in the world map into the world coordinate system by using the overall size and scale information of the world map.

정적 장애물 지점은 임의의 점유 공간 내에 위치하므로, 로봇(100)은 해당 점유 공간을 나타내는 좌표와 인접한 거리에 정적 장애물이 위치한다고 간주한다. Since the static obstacle point is located within an arbitrary occupied space, the robot 100 considers that the static obstacle is located at a distance adjacent to the coordinates indicating the occupied space.

따라서, 로봇(100)은 점유도 값이 100인 지점들과 센서(140)에서 감지한 지점들의 유클리드 거리가, 미리 설정한 특정 임계 값 내에 존재하는지 확인한다. 본 발명의 실시예에서 특정 임계 값을 0.10m로 설정하나, 반드시 이와 같이 한정되는 것은 아니다. Accordingly, the robot 100 checks whether the Euclidean distance between points having an occupancy value of 100 and points detected by the sensor 140 exists within a preset specific threshold value. In an embodiment of the present invention, a specific threshold value is set to 0.10 m, but is not necessarily limited thereto.

로봇(100)은 감지한 각 지점을 비교하여 임계 값 내에 임의의 장애물이 존재하는 경우에는 정적 지점으로 간주한다. 그러나, 임계 값 내에 임의의 장애물이 존재하지 않으면 동적 지점으로 분리한다. The robot 100 compares each sensed point, and if any obstacle exists within a threshold value, it is regarded as a static point. However, if there are no obstacles within the threshold, it will separate as a dynamic point.

이상에서 설명한 로봇(100)이 정적 지점과 동적 지점을 구분하는 알고리즘은 다음 표 1과 같다.An algorithm for the robot 100 to distinguish between a static point and a dynamic point described above is shown in Table 1 below.

Algorithm 1: Obstacle segmentation
Input sensed point p
For all points pt ∈ p do
Find point in map which its distance is less than threshold value
For all map points m_pt ∈ map do
If dist(pt, m_pt) is same or less than 0.1m then
pt = static point
terminate and break
end if
end for
if not found then
pt = dynamic point
end if
end for
Algorithm 1: Obstacle segmentation
Input sensed point p
For all points pt ∈ p do
Find point in map which its distance is less than threshold value
For all map points m_pt ∈ map do
If dist(pt, m_pt) is same or less than 0.1m then
pt = static point
terminate and break
end if
end for
if not found then
pt = dynamic point
end if
end for

이상에서 설명한 정적 지점과 동적 지점이 분리된 예에 대해 도 10을 참조로 설명한다.An example in which the static point and the dynamic point described above are separated will be described with reference to FIG. 10 .

도 10은 본 발명의 실시예에 따라 로봇이 감지하는 지점들이 분리된 예시도이다.10 is an exemplary diagram in which points sensed by a robot are separated according to an embodiment of the present invention.

도 10에 도시된 제1 표시 수단(①)들은 지도에서 점유 값이 100인 지점을 의미한다. 이는 미리 월드 맵에 매핑된 정적 장애물들을 의미한다.The first display means (①) shown in FIG. 10 means a point having an occupancy value of 100 on the map. This means static obstacles mapped to the world map in advance.

그리고, 제2 표시 수단(②)은 이동하는 로봇(100)의 현재 위치를 나타낸다. 로봇(100)이 상기 표 1에 나타낸 알고리즘을 실행하면, 정적 지점과 동적 지점을 분리하고, 분리한 결과에 따라 로봇(100)이 감지하는 정적 장애물은 제3 표시 수단(③)으로, 동적 장애물은 제4 표시 수단(④)으로 표시한다.And, the second display means (②) indicates the current position of the moving robot (100). When the robot 100 executes the algorithm shown in Table 1, the static point and the dynamic point are separated, and the static obstacle detected by the robot 100 according to the separation result is the third display means (③), and the dynamic obstacle is indicated by the fourth display means (④).

이와 같이 동적 장애물과 정적 장애물을 월드 맵에 표시한 후, 로봇(100)은 동적인 지점들에 위치한 각자 다른 속도로 움직이는 동적 장애물들을 분리해야 한다. 이에 대해 도 11을 참조로 설명한다.After displaying the dynamic obstacle and the static obstacle on the world map in this way, the robot 100 must separate the dynamic obstacles moving at different speeds located at dynamic points. This will be described with reference to FIG. 11 .

도 11은 본 발명의 실시예에 따른 동적 장애물이 분리된 예시도이다.11 is an exemplary view in which a dynamic obstacle is separated according to an embodiment of the present invention.

도 11에서는 로봇(100)이 두 개의 동적 장애물(⑤, ⑥)을 감지한 상황을 나타낸 예시도로서, 반드시 이와 같이 한정되는 것은 아니다.11 is an exemplary diagram illustrating a situation in which the robot 100 detects two dynamic obstacles ⑤ and ⑥, but is not necessarily limited thereto.

로봇(100)은 동적 지점들을 감지한 센서(140)의 감지 각도를 활용하고, 각도 인덱스의 연속성을 확인하는 과정을 통해 동적 장애물들을 분리한다. 즉, 로봇(100)은 센서(140)의 센싱 범위 360도를 분해능 값으로 나눈 총 360개의 인덱스를 확인하여, 연속된 인덱스를 갖는 첫 번째 장애물(⑤)과 두 번째 장애물(⑥)을 분리한다. The robot 100 utilizes the detection angle of the sensor 140 that detects the dynamic points, and separates the dynamic obstacles through the process of confirming the continuity of the angle index. That is, the robot 100 checks a total of 360 indexes obtained by dividing the 360-degree sensing range of the sensor 140 by the resolution value, and separates the first obstacle (⑤) and the second obstacle (⑥) having a continuous index. .

이때. 상기에서 설명한 도 10의 제4 표시 수단(④)들처럼 인덱스가 연속한 경우에는, 연속된 지점들을 같은 동적 장애물로 간주한다.At this time. When the indexes are continuous as in the fourth display means (④) of FIG. 10 described above, consecutive points are regarded as the same dynamic obstacle.

또한, 로봇(100)은 동적 장애물의 궤적을 예측하기 위해 장애물의 위치를 추정한다. 이에 대해 도 12를 참조로 설명한다.In addition, the robot 100 estimates the position of the obstacle in order to predict the trajectory of the dynamic obstacle. This will be described with reference to FIG. 12 .

도 12는 본 발명의 실시예에 따른 동적 장애물 위치를 추정하는 예시도이다.12 is an exemplary diagram for estimating a dynamic obstacle position according to an embodiment of the present invention.

도 12에 도시된 바와 같이, 동적 장애물의 위치를 추정하기 위해, 로봇(100)은 분리된 각 동적 장애물 지점들의 위치를 활용한다. 본 발명의 실시예에서는 동적 장애물의 형태를 원형으로 가정하고, 동적 장애물을 감지하는 지점 중 세 지점(A, B, C)을 선택해 삼각형(⑦)을 구성하고 그 외심을 구하여 장애물의 중심 위치(⑧)를 추정한다.As shown in FIG. 12 , in order to estimate the position of the dynamic obstacle, the robot 100 utilizes the positions of each of the separated dynamic obstacle points. In the embodiment of the present invention, it is assumed that the shape of the dynamic obstacle is a circle, and three points (A, B, C) are selected among the points for detecting the dynamic obstacle to form a triangle (⑦), and the center position of the obstacle ( ⑧) is estimated.

즉, 로봇(100)은 동일한 동적 장애물을 감지하는 연속된 인덱스 중 가장 첫 번째 인덱스가 감지하는 지점을 A지점으로 설정하고, 가장 마지막 인덱스가 감지하는 지점을 B 지점으로 설정한다. 그리고 로봇(100)은 해당 동적 장애물과의 레이저 감지 거리가 가장 짧은 지점을 C 지점으로 설정한다. 삼각형 ABC의 외심인 지점(⑧)을 동적 장애물의 중심 위치로 추정한다.That is, the robot 100 sets a point detected by the first index among consecutive indices for detecting the same dynamic obstacle as point A, and sets a point detected by the last index as point B. And the robot 100 sets a point having the shortest laser detection distance to the corresponding dynamic obstacle as point C. The point (⑧), which is the circumcenter of triangle ABC, is estimated as the center position of the dynamic obstacle.

다음은, 로봇(100)이 동적 장애물의 위치 정보를 이용하여 동적 장애물의 이동 경로를 계산하고 시간 범위 내의 궤적을 예측하는 예에 대해 도 13을 참조로 설명한다.Next, an example in which the robot 100 calculates a movement path of the dynamic obstacle by using the position information of the dynamic obstacle and predicts a trajectory within a time range will be described with reference to FIG. 13 .

도 13은 본 발명의 실시예에 따라 장애물 이동 경로 및 궤적을 예측한 예시도이다.13 is an exemplary diagram of predicting an obstacle movement path and trajectory according to an embodiment of the present invention.

도 13에 도시된 바와 같이, 로봇(100)은 이전 시점(t)에서의 동적 장애물 이동 경로와 현재 시점(t+1)에서의 동적 장애물 이동 경로를 확인한다. 이때, 로봇(100)은 각 동적 장애물에 고유의 인덱스 i를 부여한다. 로봇(100)은 동적 장애물의 위치를 각 동적 장애물의 인덱스에 매핑되도록 저장하여, 동일한 인덱스를 갖는 동적 장애물의 이동 경로를 확인한다. As shown in FIG. 13 , the robot 100 checks the dynamic obstacle movement path at the previous time point t and the dynamic obstacle movement path at the current time point t+1. At this time, the robot 100 gives a unique index i to each dynamic obstacle. The robot 100 stores the position of the dynamic obstacle to be mapped to the index of each dynamic obstacle, and confirms the movement path of the dynamic obstacle having the same index.

그리고 주어진 동적 장애물의 위치 정보로 이전 시점과 현재 시점에서 감지하는 동일한 동적 장애물의 인덱스를 연결하기 위해, 로봇(100)은 현재 시점에서의 특정 장애물들의 위치 정보와 이전 시점에 측정한 장애물들의 위치 정보를 비교한다. And in order to link the index of the same dynamic obstacle detected at the previous and current time points with the given dynamic obstacle location information, the robot 100 performs the location information of specific obstacles at the current time point and the location information of the obstacles measured at the previous time point. compare

예를 들어, 센서(140)가 임의의 동적 장애물을 감지하면, 로봇(100)은 해당 동적 장애물을 감지한 시점에서 미리 설정한 제1 기준 시간을 기초로, 제1 기준 시간 전의 동적 장애물 위치와, 제1 기준 시간에서 일정 시간을 제외한 제2 기준 시간 전의 동적 장애물 위치를 인식한다. 만약 제1 기준 시간이 2초이고 제2 기준 시간이 1초라고 가정하면, 로봇(100)은 동적 장애물을 감지한 시점에서 2초 전 동적 장애물 위치와 1초 전 동적 장애물 위치를 인식하여 이동 경로를 확인한다.For example, when the sensor 140 detects any dynamic obstacle, the robot 100 performs the position of the dynamic obstacle before the first reference time and , recognizes the position of the dynamic obstacle before the second reference time except for a predetermined time from the first reference time. If it is assumed that the first reference time is 2 seconds and the second reference time is 1 second, the robot 100 recognizes the dynamic obstacle position 2 seconds ago and the dynamic obstacle position 1 second ago at the time of detecting the dynamic obstacle, and moves the path check

동적 장애물의 이동 경로를 확인한 후, 로봇(100)은 현재 시점에서의 벡터(실선)(⑨)를 확인하고 이후 시점에서의 벡터(점선)(⑩)를 예측한다. 즉, 현재 시점(t)에서의 장애물의 위치를 임의로 현재 위치(

Figure pat00002
)라 하면, 위치 차가 가장 작은 이전 시점(t-1)의 동적 장애물의 이전 위치(
Figure pat00003
)를 찾아 동일한 인덱스 i를 부여한다. 그리고 i번째 동적 장애물의 현재 위치(
Figure pat00004
)에는 해당 장애물의 위치(
Figure pat00005
) 값을 설정한다. After confirming the movement path of the dynamic obstacle, the robot 100 checks the vector (solid line) (⑨) at the current time point and predicts the vector (dashed line) (⑩) at the next time point. That is, the position of the obstacle at the current time point (t) is arbitrarily assigned to the current position (
Figure pat00002
), the previous position (
Figure pat00003
) and give it the same index i. and the current position of the i-th dynamic obstacle (
Figure pat00004
) is the location of the obstacle (
Figure pat00005
) to set the value.

이와 같이 로봇(100)은 이어지는 시점에서 동일한 인덱스의 동적 장애물을 찾은 뒤, 이전 시점과 현재 시점의 위치 차로 동적 장애물의 이동 경로를 계산한다. 도 13에 도시된 바와 같이 두 개의 장애물이 각각 시점 t에서 Vobs1, Vobs2로 이동했다고 가정한다. 그러면 로봇(100)은 미래 시점인 t+1에서도 시점 t와 각각 동일한 벡터로 이동한다고 예측하기 때문에, 시점 t+1에서의 이동 벡터를 각각 Vabs1, Vobs2로 예측할 수 잇다. In this way, the robot 100 finds a dynamic obstacle of the same index at a subsequent time point, and then calculates the movement path of the dynamic obstacle with a difference in position between the previous time point and the current time point. As shown in FIG. 13 , it is assumed that two obstacles move to V obs1 and V obs2 at time point t, respectively. Then, since the robot 100 predicts that the robot 100 moves to the same vector as the time point t even at the future time point t+1, it is possible to predict the motion vectors at the time point t+1 as V abs1 and V obs2 , respectively.

동일한 예로서, 라이다 센서가 동적 장애물을 감지하면, 동적 장애물이 감지된 시점에서 2초를 기준으로 2초 전 동적 장애물 위치와 1초 전 동적 장애물 위치를 인식한다. 그리고 동적 장애물의 이동 경로를 확인하고, 이동 경로의 연속성을 고려하여 1초 후 동적 장애물의 예상 이동 경로를 추정할 수 있다. As the same example, when the lidar sensor detects a dynamic obstacle, the dynamic obstacle position 2 seconds before and the dynamic obstacle position 1 second before are recognized based on 2 seconds from the time the dynamic obstacle is detected. In addition, the moving path of the dynamic obstacle may be checked, and the expected moving path of the dynamic obstacle may be estimated after 1 second in consideration of the continuity of the moving path.

이와 같은 방법으로 로봇(100)은 로봇(100) 자신과 동적 장애물 간의 충돌 예측 시점을 추정할 수 있다. 로봇(100)이 예측하는 충돌 예측 시점에 대해 도 14을 참조로 설명한다.In this way, the robot 100 may estimate a collision prediction time between the robot 100 itself and a dynamic obstacle. A collision prediction time predicted by the robot 100 will be described with reference to FIG. 14 .

도 14는 본 발명의 실시예에 따른 충돌 예측 시점을 구하기 위한 예시도이다.14 is an exemplary diagram for obtaining a collision prediction time according to an embodiment of the present invention.

도 14에 도시된 바와 같이, 이동중인 로봇(100)과 동적 장애물 간의 충돌 예측 시점을 2차원 평면상에서 구하기 위해, 로봇(100)은 충돌 예측 시간(CPT: Collision Prediction Time)을 시점 t+1에서의 로봇과 동적 장애물의 거리(

Figure pat00006
)를 로봇과 동적 장애물의 상대 속도 크기 (
Figure pat00007
)로 나누어 충돌 예측 시간을 구한다. 이는 다음 수학식 2와 같이 표현할 수 있다.14, in order to obtain a collision prediction time between the moving robot 100 and a dynamic obstacle on a two-dimensional plane, the robot 100 calculates a collision prediction time (CPT) at time t+1. Distance between robot and dynamic obstacle of
Figure pat00006
) to the magnitude of the relative speed of the robot and the dynamic obstacle (
Figure pat00007
) to get the collision prediction time. This can be expressed as Equation 2 below.

Figure pat00008
Figure pat00008

여기서,

Figure pat00009
는 시점 t+1에서의 로봇과 장애물의 거리를 의미하며,
Figure pat00010
으로 계산될 수 있다. 그리고,
Figure pat00011
는 로봇과 장애물의 상대 속도 크기 즉, 로봇의 속도와 장애물의 이동 속도의 차를 의미한다.here,
Figure pat00009
is the distance between the robot and the obstacle at time t+1,
Figure pat00010
can be calculated as And,
Figure pat00011
is the magnitude of the relative speed between the robot and the obstacle, that is, the difference between the robot's speed and the moving speed of the obstacle.

여기서, 로봇(100)이 자신의 상대 속도를 구할 때, 로봇(100)의 이동 벡터 (

Figure pat00012
)와 동적 장애물의 이동 벡터(
Figure pat00013
)를 이용한다. 로봇(100)의 이동 벡터와 동적 장애물의 이동 벡터를 이용하여, 로봇(100)은 자신이 감지하는 동적 장애물마다 충돌 예측 시간을 구할 수 있다. 이때. 계산한 충돌 예측 시간이 너무 짧은 경우 동적 장애물과의 회피가 어려우므로, 로봇(100)은 충돌을 예측한 후 긴급 정지하거나, 동적 장애물이 인지할 수 있도록 경고음을 낼 수 있다.Here, when the robot 100 obtains its relative speed, the movement vector (
Figure pat00012
) and the movement vector of the dynamic obstacle (
Figure pat00013
) is used. Using the movement vector of the robot 100 and the movement vector of the dynamic obstacle, the robot 100 may obtain a collision prediction time for each dynamic obstacle it detects. At this time. When the calculated collision prediction time is too short, it is difficult to avoid the dynamic obstacle, so that the robot 100 may make an emergency stop after predicting the collision or make a warning sound so that the dynamic obstacle can be recognized.

이와 같은 과정을 통해 구한 충돌 예측 시간에 기반하여, 로봇(100)은 각 동적 장애물과의 충돌 확률(Pcoll)은 다음 수학식 3을 이용하여 구할 수 있다.Based on the collision prediction time obtained through this process, the robot 100 may obtain the collision probability P coll with each dynamic obstacle using Equation 3 below.

Figure pat00014
Figure pat00014

Figure pat00015
Figure pat00015

여기서, Psafe는 충돌 회피 확률을 의미하고, CPT는 충돌 예측 시점, e는 지수함수, a β는 각각 가중치를 의미한다.Here, P safe means the collision avoidance probability, CPT is the collision prediction time, e is the exponential function, and a β means the weight, respectively.

위의 수학식 3을 이용하여 구한 충돌 예측 시점에 따른 충돌 회피 확률에 대해 도 15를 참조로 설명한다.A collision avoidance probability according to a collision prediction time obtained using Equation 3 above will be described with reference to FIG. 15 .

도 15는 본 발명의 실시예에 따른 충돌 예측 시점에 따른 충돌 회피 확률을 나타낸 예시도이다.15 is an exemplary diagram illustrating a collision avoidance probability according to a collision prediction time according to an embodiment of the present invention.

도 15의 X축은 충돌 예측 시간을 나타내고, Y축은 충돌 회피 확률을 나타낸다. 도 15에 도시된 바와 같이, 충돌 예측 시간이 길수록 로봇(100)이 동적 장애물과 충돌할 확률은 낮아지고, 충돌 예측 시간이 짧을수록 충돌 확률은 높아진다. The X-axis of FIG. 15 represents the collision prediction time, and the Y-axis represents the collision avoidance probability. As shown in FIG. 15 , the longer the collision prediction time, the lower the probability that the robot 100 collides with the dynamic obstacle, and the shorter the collision prediction time, the higher the collision probability.

충돌 회피 확률은 해당 동적 장애물과 가장 짧은 직선거리를 갖는 로봇(100)의 방향과 함께 저장되고, 충돌 회피 확률을 이용하여 이후의 각 주행 방향 별 충돌 회피 확률을 계산할 수 있다. The collision avoidance probability is stored together with the direction of the robot 100 having the shortest linear distance from the corresponding dynamic obstacle, and the collision avoidance probability for each subsequent driving direction can be calculated using the collision avoidance probability.

이와 같이 충돌 예측 시점과 충돌 회피 확률을 계산한 후, 로봇(100)은 주행 방향 별 충돌 회피 확률(Psafe_dir)을 로봇(100)의 전방을 기준으로 계산한다. 주행 방향 별 충돌 회피 확률(Psafe_dir)은 로봇(100)으로 하여금 충돌 위험이 높은 방향으로의 주행을 피하고, 적절한 주행 방향을 탐색할 수 있도록 한다. After calculating the collision prediction time and collision avoidance probability in this way, the robot 100 calculates the collision avoidance probability P safe_dir for each driving direction based on the front of the robot 100 . The collision avoidance probability (P safe_dir ) for each driving direction enables the robot 100 to avoid driving in a direction with a high risk of collision and to search for an appropriate driving direction.

주행 방향 별 충돌 회피 확률(Psafe_dir) 계산은 각 장애물의 충돌 회피 확률과 로봇-장애물 간 방향을 활용하며, 다음 표 2에 나타낸 알고리즘을 통해 계산된다.The collision avoidance probability (P safe_dir ) calculation for each driving direction utilizes the collision avoidance probability of each obstacle and the robot-obstacle direction, and is calculated through the algorithm shown in Table 2 below.

Figure pat00016
Figure pat00016

표 2에 나타낸 바와 같이, 로봇(100)은 동적 장애물 방향으로 최단 거리의 로봇 주행 방향(

Figure pat00017
, 여기서, 1≤i≤장애물 개수)뿐만 아니라, 로봇 주행 방향에 인접한 방향(dir) 역시 주행 시 충동의 위험성이 있다고 판단한다. 이를 토대로 로봇(100) 주변의 충돌 위험성이 존재하는 방향에는 충돌 회피 확률 Psafe을 설정한다. As shown in Table 2, the robot 100 moves in the direction of the shortest distance in the direction of the dynamic obstacle (
Figure pat00017
, where 1 ≤ i ≤ number of obstacles) as well as the direction (dir) adjacent to the robot traveling direction is determined to have a risk of collision during driving. Based on this, the collision avoidance probability P safe is set in the direction in which the collision risk around the robot 100 exists.

만약, 한 방향에 여러 장애물의 영향으로 서로 다른 충돌 회피 확률이 주어지는 경우에는, 로봇(100)은 가장 작은 충돌 회피 확률을 주행 방향 별 충돌 회피 확률(

Figure pat00018
)로 선택한다. If different collision avoidance probabilities are given due to the influence of several obstacles in one direction, the robot 100 calculates the smallest collision avoidance probability for each driving direction (
Figure pat00018
) to select

그리고, 로봇(100)은 응용하는 방법에 따라, 방향 단위 대신 일정 범위의 지역 단위로도 충돌 회피 확률을 설정할 수 있다. 지역 단위의 충돌 회피 확률을 기초로, 월드 맵 관리 서버(200)는 충돌 위험성이 지속적으로 높은 지역은 월드 맵에서 주행이 불가능한 지역으로 블록처리 하거나, 로봇(100)이 주행 속도를 낮출 수 있도록 제어 정보를 설정해 둔다. In addition, the robot 100 may set the collision avoidance probability in units of a certain range of regions instead of units of directions according to an application method. Based on the collision avoidance probability of each region, the world map management server 200 blocks the region with a consistently high risk of collision as an impossible region on the world map, or controls the robot 100 to lower the driving speed. Set the information.

이를 위해 월드 맵 관리 서버(200)는 로봇(100)의 주행 방향 별 충돌 회피 확률을 월드 맵에서 로봇(100)의 위치 정보와 함께 저장하고, 저장한 정보를 기초로 위험 지역을 학습할 수 있다. To this end, the world map management server 200 may store the collision avoidance probability for each driving direction of the robot 100 together with the location information of the robot 100 in the world map, and learn the danger area based on the stored information. .

예를 들어, 호텔에서 운용되는 로봇이라고 가정하면, 오전 10시~12시 사이에는 로비에 사람이 많아지므로 로봇이 감지하는 동적 장애물의 수가 많아지고, 주행 방향 별 충돌 회피 확률이 낮아진다. 이런 상황이 7일 정도 누적되면, 월드 맵 관리 서버(200)는 오전 10시~12시에 로봇(100)이 주행 중에 로비 공간을 지나가면 속도를 자동으로 낮출 수 있게 학습한다.For example, assuming a robot operated in a hotel, the number of dynamic obstacles detected by the robot increases because there are more people in the lobby between 10:00 am and 12:00 am, and the probability of avoiding collisions by driving direction decreases. When this situation accumulates for about 7 days, the world map management server 200 learns to automatically lower the speed when the robot 100 passes the lobby space while driving between 10:00 AM and 12:00 AM.

다음은 본 발명의 실시예에서 충돌 회피 확률을 기반으로 계산된 비용 함수에 대해 도 16의 로봇 주행 방향 별 충돌 회피 확률과 함께 참조로 설명한다.Next, a cost function calculated based on the collision avoidance probability in the embodiment of the present invention will be described with reference to the collision avoidance probability for each driving direction of the robot of FIG. 16 .

도 16은 본 발명의 실시예에 따른 로봇 주행 방향 별 충돌 회피 확률을 나타낸 예시도이다.16 is an exemplary diagram illustrating collision avoidance probability for each driving direction of a robot according to an embodiment of the present invention.

본 발명의 실시예에서 로봇(100)은 월드 맵 상에서 주행하는 목적지까지의 거리를 나타내는 전역 경로와의 거리(dglobal_path), 목표 지점까지의 거리(dgoal), 정적 장애물이 점유한 공간 정도를 나타내는 양의 비용(costknown_obs)을 고려하여, 속도 샘플을 평가한다. 그리고, 로봇(100)은 충돌 회피 확률을 목적 함수의 한 요소로 추가하여 속도 샘플을 평가한다. 본 발명의 실시예에서는 다음 수학식 4를 이용하여 비용 함수를 계산한다.In the embodiment of the present invention, the robot 100 measures the distance from the global path (d global_path ) indicating the distance to the destination traveling on the world map, the distance to the target point (d goal ), and the degree of space occupied by static obstacles. Evaluate the velocity sample, taking into account the cost known_obs of the quantity it represents. Then, the robot 100 evaluates the velocity sample by adding the collision avoidance probability as one element of the objective function. In an embodiment of the present invention, the cost function is calculated using the following Equation (4).

Figure pat00019
Figure pat00019

여기서, dglobal_path는 전역 경로와의 거리, dgoal는 목표 지점까지의 거리, 그리고 costknown_obs는 정적 장애물에 대한 양의 비용을 의미한다.Here, d global_path is the distance from the global path, d goal is the distance to the goal point, and cost known_obs is the positive cost of the static obstacle.

매개 변수의 규모(δ)는 실험 및 환경에 따라 적절한 값으로 설정되며, 도 15에 도시된 바와 같이 충돌 회피 확률이 낮은 각속도의 조합에서는 낮은 비용 값을, 충돌 회피 확률이 높은 각속도의 조합에서는 높은 비용 값을 갖는다. The parameter scale (δ) is set to an appropriate value according to the experiment and environment, and as shown in FIG. 15 , a low cost value is obtained in a combination of angular velocities with a low collision avoidance probability, and a high cost value is obtained in a combination of an angular velocity with a high collision avoidance probability. has a cost value.

로봇(100)이 3개의 동적 장애물이 인지된 상황에서, 로봇이 주행할 각 방향의 충돌 회피 확률에 대한 예시도인 도 16에 도시된 바와 같이 X축은 로봇(100)의 주행 방향을, Y축은 주행 방향 별 충돌 회피 확률을 나타낸다. 주행 방향 별 충돌 회피 확률이 1에 근접할수록 충돌 위험이 없음을 의미하고, 주행 방향 별 충돌 회피 확률이 0에 근접할수록 주행 시 충돌의 위험이 커짐을 의미한다. 이를 통해 로봇(100)은 적절한 속도와 방향을 찾아 주행한다.In a situation where the robot 100 recognizes three dynamic obstacles, as shown in FIG. 16 , which is an exemplary diagram of the collision avoidance probability in each direction in which the robot will travel, the X-axis represents the running direction of the robot 100, and the Y-axis represents the It represents the collision avoidance probability for each driving direction. As the collision avoidance probability for each driving direction approaches 1, it means that there is no collision risk, and as the collision avoidance probability for each driving direction approaches 0, it means that the risk of collision during driving increases. Through this, the robot 100 finds an appropriate speed and direction and travels.

기존 자율주행 로봇은 월드 맵을 작성한 후, 미리 설정한 속도에 따라 주행한다. 따라서, 협소한 장소에서 로봇은 속도를 낮춰서 주행하고, 넓은 공간에서는 속도를 올려 주행한다. 그러나, 대부분의 장소는 협소한 공간과 넓은 공간이 혼재된 환경이 대부분이기 때문에, 이와 같은 속도 조절 방식으로 주행하는 것은 비효율적이다. Existing autonomous robots create a world map and then drive according to a preset speed. Therefore, in a narrow place, the robot runs at a lower speed, and in a wide space, the robot runs at an increased speed. However, in most places, since most of the environment is a mixture of a narrow space and a wide space, it is inefficient to drive in such a speed control method.

또한, 1일 또는 일주일을 기준으로 시간에 따라 혼잡도가 달라지는 공간도 많아, 자율주행 로봇을 운용하기 어렵다. 특히, 식당에서 운용중인 대부분의 서빙 로봇이 0.7m/sec의 주행속도로 주행 될 수 있도록 테이블 간격을 2m로 가이드 라인을 정하였다. 그러나, 대부분의 식당은 테이블 간격이 멀어질수록 매출에 타격을 입기 때문에 테이블 간격을 1.5m 이하로 운영하고 있으므로, 테이블 간격이 좁은 장소에서 자율주행 로봇의 주행을 위한 방안이 필요하였다.In addition, there are many spaces with varying degrees of congestion depending on time based on a day or a week, making it difficult to operate an autonomous driving robot. In particular, the guideline was set at 2m between tables so that most serving robots operating in restaurants can run at a running speed of 0.7m/sec. However, since most restaurants operate with a table spacing of 1.5 m or less because sales are affected as the distance between tables increases, a plan for driving the autonomous robot in a place with a narrow table spacing was needed.

따라서, 본 발명의 실시예에서는 비용 함수를 기준으로 로봇(100)이 속도를 조절하며, 비용 함수를 기준으로 로봇(100)의 조절된 속도를 월드 맵 관리 서버(200)가 관리하는 예에 대해 도 17을 참조로 설명한다. Therefore, in the embodiment of the present invention, the robot 100 adjusts the speed based on the cost function, and the world map management server 200 manages the adjusted speed of the robot 100 based on the cost function. It will be described with reference to FIG. 17 .

도 17은 본 발명의 실시예에 따라 월드 맵 관리 서버가 관리하는 로봇의 속도 정보를 나타낸 예시도이다.17 is an exemplary diagram illustrating speed information of a robot managed by a world map management server according to an embodiment of the present invention.

도 17에 도시된 바와 같이, 본 발명의 실시예에 따른 비용 함수는 0.5를 기준 값으로 하며, 비용 함수 계산 값이 0.5보다 커지면 로봇(100)은 표준 속도 0.7m/sec에서 1m/sec로 속도를 올린다. 반대로 비용 함수 계산 값이 0.5보다 작아지면, 로봇(100)은 표준속도 0.7m/sec에서 0.5m/sec로 속도를 줄인다. 17, the cost function according to the embodiment of the present invention has a reference value of 0.5, and when the calculated value of the cost function is greater than 0.5, the robot 100 moves from a standard speed of 0.7 m/sec to 1 m/sec. raise the Conversely, when the calculated value of the cost function is smaller than 0.5, the robot 100 reduces the speed from the standard speed of 0.7 m/sec to 0.5 m/sec.

이때. 해당 시간, 좌표 구간, 비용함수, 설정 속도는 작성된 월드 맵과 함께 월드 맵 관리 서버(200)에 저장된다. 월드 맵 관리 서버(200)는 10초 간격으로 이동한 로봇(100)의 이동 포인트에 데이터를 시간, 좌표 구간, 비용함수, 설정속도를 기록하여 누적 저장한다. At this time. The corresponding time, coordinate section, cost function, and set speed are stored in the world map management server 200 together with the created world map. The world map management server 200 accumulates and stores data at the moving point of the robot 100 moving at 10-second intervals by recording time, coordinate section, cost function, and set speed.

월드 맵 관리 서버(200)는 일주일 간 저장된 데이터를 분석하며, 시간에 따라 각 포인트 별로 비용 함수와 설정 속도가 기록되어, 시간, 공간을 포함한 상황에 따라 주행 설정을 변경하여 효율적으로 운용할 수 있다. 이때, 월드 맵 관리 서버(200)가 데이터 분석 및 학습을 위해 사용하는 기술은 기존에 공지된 다양한 데이터 처리 기술들 중 하나를 활용하며, 본 발명의 실시예에서는 어느 하나로 한정하지 않는다. The world map management server 200 analyzes the data stored for a week, and the cost function and setting speed are recorded for each point according to time, so that the driving setting can be changed according to the situation including time and space to operate efficiently. . At this time, the technology used by the world map management server 200 for data analysis and learning utilizes one of various previously known data processing technologies, and the embodiment of the present invention is not limited to any one.

이를 통해, 본 발명의 실시예에 따른 로봇(100)은 상황에 관계없이 동일한 속도로 주행하는 로봇에 대비하여, 서비스 품질, 속도를 향상시킬 수 있다. 또한, 월드 맵 관리 서버(200)는 월드 맵 정보에 부가적인 정보를 포함한 데이터를 관리하여, 시간에 따른 고객 밀집도, 동선 분석 등 다양한 분석 서비스에 활용할 수 있다.Through this, the robot 100 according to the embodiment of the present invention can improve service quality and speed compared to a robot that travels at the same speed regardless of the situation. In addition, the world map management server 200 manages data including additional information to the world map information, and can be utilized for various analysis services such as customer density according to time and movement route analysis.

다음은 시간, 좌표, 비용 함수, 속도 데이터가 누적되었을 때 월드 맵 관리 서버(200)가 월드 맵을 업데이트하는 과정에 대해 도 18을 참조로 설명한다. 본 발명의 실시예에서는 일주일 간의 데이터를 누적하여 월드 맵을 업데이트 하는 것을 예로 하여 설명하나, 반드시 이와 같이 한정되는 것은 아니다.Next, a process in which the world map management server 200 updates the world map when time, coordinates, cost function, and velocity data are accumulated will be described with reference to FIG. 18 . In the embodiment of the present invention, an example of updating the world map by accumulating data for a week is described, but the present invention is not limited thereto.

도 18은 본 발명의 실시예에 따른 월드 맵 업데이트 과정을 나타낸 예시도이다.18 is an exemplary diagram illustrating a world map update process according to an embodiment of the present invention.

도 18에 도시된 바와 같이, 비용 함수 계산 값이 0.5 이하로 로봇(100)에 감속이 진행되면, 월드 맵 관리 서버(200)는 카운팅을 수행한다. 이때 카운팅 횟수를 7일간 누적하고, 누적된 횟수가 100회 이상인 경우 해당 영역을 우회할 수 있는 경로가 있는지 판단한다. As shown in FIG. 18 , when the deceleration of the robot 100 is performed when the calculated value of the cost function is 0.5 or less, the world map management server 200 performs counting. At this time, the counting number is accumulated for 7 days, and if the accumulated number is 100 or more, it is determined whether there is a route that can bypass the corresponding area.

우회 경로가 있다면 감속이 일어난 구간 좌표를 취합하고, 월드 맵 관리 서버(200)는 해당 지역을 일정 시간 동안 블록 처리하여 로봇(100)이 우회할 수 있도록 한다. 호텔 로봇을 예를 들어 설명하면, 호텔 고객이 체크인하거나 체크아웃 하는 시간은 로비와 엘리베이터가 있는 복도 구간은 호텔 고객들에 의해 혼잡함이 발생한다.If there is a detour route, the coordinates of the section in which the deceleration has occurred are collected, and the world map management server 200 blocks the corresponding area for a predetermined time so that the robot 100 can detour. If a hotel robot is described as an example, the lobby and corridor sections with elevators are crowded by hotel customers during the check-in or check-out time of hotel customers.

따라서, 로봇(100)이 가능한 해당 시간대에 해당 공간을 우회하여 주행할 수 있도록, 로봇(100)이 별도로 설정할 필요 없이 월드 맵 관리 서버(200)에서 학습시킨 월드 맵을 수신하여 주행에 사용한다. Therefore, the robot 100 receives the world map learned from the world map management server 200 and uses it for driving, without the need for a separate setting, so that the robot 100 can bypass the corresponding space and travel in the corresponding time zone.

그리고 종래에는 로봇(100)이 밀집된 구간에 잘못 진입하여 복귀 경로가 막히는 경우, 잘못 진입한 자리에서 로봇(100)의 배터리가 방전될 때까지 방치될 수 있다. 또한, 서비스 지연으로 인해 고객 컴플레인이 발생할 수 있다.And, conventionally, when the robot 100 erroneously enters a dense section and the return path is blocked, the robot 100 may be left at the wrongly entered position until the battery of the robot 100 is discharged. In addition, customer complaints may occur due to service delay.

이를 개선하기 위해 본 발명의 실시예에서는 로봇(100)이 학습된 월드 맵을 이용하여 주행하기 때문에 충돌을 회피하고 서비스 지연을 미연에 방지할 수 있다. In order to improve this, in the embodiment of the present invention, since the robot 100 travels using the learned world map, it is possible to avoid collision and prevent service delay in advance.

그리고 충돌 위험이 낮은 방향 탐색에 실패한 경우, 로봇(100)이 음성으로 "잠시만 길을 비켜주세요."와 같이 위험 방향이 낮은 방향 탐색을 위한 액션을 취할 수 있다. 이때, 본 발명의 실시예에서는 카메라를 통해 충돌 위험이 있는 객체가 사람인지 아닌지 여부에 따라 판단하여 경로를 확보할 수 있도록 적절한 액션을 수행할 수도 있다.And, when the search for a direction with a low risk of collision fails, the robot 100 may take an action for searching for a direction with a low risk, such as "Please get out of the way for a moment" by voice. In this case, in an embodiment of the present invention, an appropriate action may be performed to secure a path by determining whether an object with a risk of collision is a human or not through a camera.

이상에서 본 발명의 실시예에 대하여 상세하게 설명하였지만 본 발명의 권리범위는 이에 한정되는 것은 아니고 다음의 청구범위에서 정의하고 있는 본 발명의 기본 개념을 이용한 당업자의 여러 변형 및 개량 형태 또한 본 발명의 권리범위에 속하는 것이다.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 by those skilled in the art using the basic concept of the present invention as defined in the following claims are also provided. is within the scope of the right.

Claims (20)

로봇이 동적 장애물과의 충돌을 회피하는 방법으로서,
월드 맵을 기초로 공간을 특정 주행 속도로 주행하면서, 상기 공간에 위치한 동적 장애물을 인식하는 단계,
상기 월드 맵의 기준 좌표를 기초로 상기 동적 장애물을 인식한 로봇 위치를 확인하고, 상기 로봇 위치를 기준으로 상기 동적 장애물까지의 거리 및 각도를 측정하여 상기 동적 장애물의 위치를 계산하는 단계,
상기 동적 장애물에 매핑된 식별 정보를 기초로 상기 동적 장애물의 이동 경로와 이동 속도를 확인하고, 상기 이동 속도와 이동 경로를 토대로 상기 동적 장애물과의 충돌 예측 시점을 계산하는 단계,
상기 충돌 예측 시점을 기초로 충돌 확률을 계산하고, 상기 충돌 확률을 이용하여 상기 로봇의 주행 방향을 기준 방향과 주행 후보 방향들 각각에 대한 충돌 회피 확률을 계산하는 단계, 그리고
가장 높은 충돌 회피 확률이 계산된 주행 후보 방향으로 충돌 회피 경로를 설정하는 단계
를 포함하는, 충돌 회피 방법.
A method for a robot to avoid collision with a dynamic obstacle, comprising:
Recognizing a dynamic obstacle located in the space while driving through the space at a specific driving speed based on the world map;
Calculating the position of the dynamic obstacle by determining the position of the robot recognizing the dynamic obstacle based on the reference coordinates of the world map, and measuring the distance and angle to the dynamic obstacle based on the position of the robot;
Checking the moving path and moving speed of the dynamic obstacle based on the identification information mapped to the dynamic obstacle, and calculating a collision prediction time with the dynamic obstacle based on the moving speed and moving path;
calculating a collision probability based on the collision prediction time, and calculating a collision avoidance probability for each of a reference direction and a driving candidate direction based on the driving direction of the robot using the collision probability, and
Setting the collision avoidance path in the direction of the driving candidate in which the highest collision avoidance probability is calculated
Including, collision avoidance method.
제1항에 있어서,
상기 동적 장애물을 인식하는 단계 이전에,
정보 수집 수단을 통해 수집한 정보를 토대로 상기 공간에 대한 초기 월드 맵을 작성하는 단계
를 포함하고,
상기 초기 월드 맵은 상기 로봇이 주행할 수 있는 주행 가능 공간과 주행이 불가능한 점유 공간, 그리고 주행 여부를 확인할 수 없는 특정 공간으로 구성된 점유 격자 지도로 생성되고, 상기 점유 격자 지도를 구성하는 각 격자는 주행 가능 영역과 주행 불가 영역에 따라 점유도 값이 매핑되어 있는, 충돌 회피 방법.
According to claim 1,
Prior to recognizing the dynamic obstacle,
Creating an initial world map for the space based on the information collected through the information collection means
including,
The initial world map is created as an occupancy grid map composed of a drivable space in which the robot can travel, an occupied space where it cannot be driven, and a specific space where it is not possible to check whether or not it is driven, and each grid constituting the occupied grid map is A collision avoidance method in which occupancy values are mapped according to drivable and non-drivable areas.
제2항에 있어서,
상기 장애물의 위치를 계산하는 단계는,
상기 월드 맵의 월드 좌표계에서 상기 기준 좌표를 기준으로 제1 각도의 위치를 상기 로봇의 위치로 확인하고,
로봇 좌표계를 기준으로 상기 로봇이 출력한 레이저가 상기 동적 애물에 반사되어 돌아온 시간을 토대로 측정된 거리만큼 떨어진 제2 각도의 위치를 상기 동적 장애물의 위치로 계산하는, 충돌 회피 방법.
3. The method of claim 2,
Calculating the position of the obstacle comprises:
Confirming the position of the first angle as the position of the robot based on the reference coordinates in the world coordinate system of the world map,
A collision avoidance method of calculating a position of a second angle separated by a distance measured based on a time when the laser output from the robot is reflected and returned to the dynamic obstacle based on the robot coordinate system as the position of the dynamic obstacle.
제3항에 있어서,
상기 동적 장애물의 위치를 계산하는 단계는,
상기 점유 격자 지도에 매핑된 점유도 값을 토대로 상기 장애물을 동적 장애물과 정적 장애물로 구분하는 단계
를 포함하는, 충돌 회피 방법.
4. The method of claim 3,
Calculating the position of the dynamic obstacle comprises:
classifying the obstacle into a dynamic obstacle and a static obstacle based on the occupancy value mapped to the occupancy grid map.
Including, collision avoidance method.
제4항에 있어서,
상기 점유 공간에 매핑된 점유도 값을 가지는 지점들과 장애물을 감지한 지점의 유클리드 거리가 미리 설정한 임계 값 내에 존재하면, 상기 장애물을 정적 장애물로 인지하고,
상기 임계 값 내에 존재하지 않으면, 상기 장애물을 상기 동적 장애물로 인지하는, 충돌 회피 방법.
5. The method of claim 4,
If the Euclidean distance between points having an occupancy value mapped to the occupied space and a point at which an obstacle is detected is within a preset threshold, the obstacle is recognized as a static obstacle,
If not within the threshold, recognizing the obstacle as the dynamic obstacle, collision avoidance method.
제5항에 있어서,
상기 정적 장애물로 구분하는 단계 이후에,
구분한 동적 장애물이 복수 개이면, 각 동적 장애물을 감지한 감지 각도를 기초로 복수의 동적 장애물들을 각각 분리하는, 충돌 회피 방법.
6. The method of claim 5,
After the step of classifying into the static obstacle,
If there are a plurality of divided dynamic obstacles, a collision avoidance method of separating the plurality of dynamic obstacles based on a detection angle at which each dynamic obstacle is detected.
제6항에 있어서,
상기 동적 장애물의 위치를 계산하는 단계는,
상기 동적 장애물을 최초 감지한 지점을 제1 지점으로 설정하는 단계,
상기 동적 장애물을 마지막으로 감지한 지점을 제2 지점으로 설정하는 단계,
상기 동적 장애물과 상기 정보 수집 수단의 거리가 가장 짧은 지점을 제3 지점으로 설정하는 단계, 그리고
상기 제1 지점, 제2 지점, 그리고 제3 지점을 각각 꼭지점으로 하는 삼각형의 외심을 상기 동적 장애물의 위치로 계산하는 단계
를 포함하는, 충돌 회피 방법.
7. The method of claim 6,
Calculating the position of the dynamic obstacle comprises:
setting a point at which the dynamic obstacle is initially detected as a first point;
setting a point at which the dynamic obstacle was last detected as a second point;
setting a point where the distance between the dynamic obstacle and the information collecting means is shortest as a third point, and
Calculating the circumcenter of a triangle having the first point, the second point, and the third point as a vertex as the position of the dynamic obstacle
Including, collision avoidance method.
제7항에 있어서,
상기 충돌 예측 시점을 계산하는 단계는,
상기 동적 장애물의 상기 식별 정보에 매핑되어 저장된 동적 장애물의 위치 정보들과 시점 정보를 확인하는 단계,
상기 동적 장애물을 감지한 시점을 기준으로 이전 시점인 제1 시점에서의 상기 동적 장애물의 제1 위치를 확인하는 단계,
상기 제1 시점보다 이전 시점인 제2 시점에서의 상기 동적 장애물의 제2 위치를 확인하는 단계, 그리고
상기 제1 위치와 제2 위치를 기초로 상기 동적 장애물의 상기 이동 경로를 확인하는 단계
를 더 포함하는, 충돌 회피 방법.
8. The method of claim 7,
Calculating the collision prediction time includes:
checking the location information and viewpoint information of the dynamic obstacle mapped to the identification information of the dynamic obstacle and stored;
determining a first position of the dynamic obstacle at a first time point, which is a previous time point, based on the time point at which the dynamic obstacle is sensed;
Confirming a second position of the dynamic obstacle at a second time point that is earlier than the first time point, and
identifying the movement path of the dynamic obstacle based on the first position and the second position
Further comprising a, collision avoidance method.
제8항에 있어서,
상기 충돌 예측 시점을 계산하는 단계는,
상기 제1 시점에서 상기 동적 장애물과의 거리, 그리고 로봇과 상기 동적 장애물의 상대 속도 크기를 이용하여 상기 충돌 예측 시점을 계산하는, 충돌 회피 방법.
9. The method of claim 8,
Calculating the collision prediction time includes:
The collision avoidance method of calculating the collision prediction time using the distance from the dynamic obstacle at the first time point and the magnitude of the relative speed between the robot and the dynamic obstacle.
제9항에 있어서,
상기 충돌 회피 확률을 계산하는 단계는,
로봇의 주행 방향을 기준 방향으로 하고, 상기 기준 방향과 상기 주행 후보 방향들의 충돌 회피 확률을 각각 계산하는 단계, 그리고
상기 충돌 예측 시점과 상기 주행 후보 방향 별 충돌 회피 확률을 기초로, 상기 동적 장애물과의 충돌 확률을 계산하는 단계
를 포함하는, 충돌 회피 방법.
10. The method of claim 9,
Calculating the collision avoidance probability comprises:
Using the traveling direction of the robot as a reference direction, calculating collision avoidance probabilities of the reference direction and the driving candidate directions, respectively, and
calculating a collision probability with the dynamic obstacle based on the collision prediction time and the collision avoidance probability for each driving candidate direction
Including, collision avoidance method.
제10항에 있어서,
상기 충돌 확률을 계산하는 단계 이후에,
상기 로봇의 위치, 상기 동적 장애물의 위치 정보, 상기 충돌 확률, 그리고 로봇의 이동 경로 정보를, 연동한 월드 맵 관리 서버로 전송하는 단계
를 더 포함하는, 충돌 회피 방법.
11. The method of claim 10,
After calculating the collision probability,
Transmitting the position of the robot, the position information of the dynamic obstacle, the collision probability, and the movement path information of the robot to an interlocked world map management server
Further comprising a, collision avoidance method.
제11항에 있어서,
상기 충돌 회피 경로를 설정하는 단계는,
전역 경로와의 거리, 목표 지점까지의 거리, 그리고 정적 장애물에 대한 양의 비용을 토대로 비용 함수를 계산하는 단계,
상기 비용 함수의 값이 미리 설정한 기준 값보다 크면, 상기 특정 속도보다 빠른 속도로 주행하는 단계, 그리고
상기 비용 함수의 값이 상기 기준 값보다 작으면, 상기 특정 속도보다 느린 속도로 주행하는 단계
를 포함하는, 충돌 회피 방법.
12. The method of claim 11,
Setting the collision avoidance path comprises:
calculating a cost function based on the distance from the global path, the distance to the target point, and the positive cost for static obstacles;
If the value of the cost function is greater than a preset reference value, driving at a speed faster than the specific speed; and
If the value of the cost function is less than the reference value, driving at a speed slower than the specific speed
Including, collision avoidance method.
월드 맵 관리 서버와 연동하여 자율주행 중 동적 장애물을 회피하여 주행하는 로봇으로서,
프로세서,
상기 로봇이 주행중인 공간의 월드 맵과 상기 로봇이 상기 공간에서 인식한 장애물들 각각의 장애물 정보를 각 장애물에 매핑된 식별 정보와 함께 관리하는 메모리
를 포함하고,
상기 프로세서는,
상기 공간에서 이동하는 동적 장애물을 인식하고, 상기 인식한 동적 장애물의 이동 경로와 이동 속도를 기초로 상기 동적 장애물과의 충돌 예측 시점을 계산하고, 상기 충돌 예측 시점을 기초로 계산한 충돌 확률을 토대로 상기 로봇의 주행 방향과 주행 후보 방향들에 대한 충돌 회피 확률을 상기 충돌 확률로부터 계산하고, 가장 높은 충돌 회피 확률이 계산된 방향으로 충돌 회피 경로를 설정하는, 로봇.
As a robot that avoids dynamic obstacles during autonomous driving in conjunction with the world map management server,
processor,
A memory for managing a world map of the space in which the robot is traveling and information on each of the obstacles recognized by the robot in the space together with identification information mapped to each obstacle
including,
The processor is
Recognizes a dynamic obstacle moving in the space, calculates a collision prediction time with the dynamic obstacle based on the movement path and movement speed of the recognized dynamic obstacle, and calculates a collision probability based on the collision prediction time A robot that calculates collision avoidance probabilities for the driving direction and driving candidate directions of the robot from the collision probabilities, and sets a collision avoidance path in a direction in which the highest collision avoidance probability is calculated.
제13항에 있어서,
상기 프로세서는,
상기 월드 맵의 월드 좌표계를 기준으로 제1 각도를 상기 로봇의 위치로 확인하고,
로봇 좌표계를 기준으로 상기 로봇에서 출력된 레이저가 상기 장애물에 반사되어 돌아온 시간을 토대로 측정된 거리만큼 떨어진 제2 각도를 상기 장애물의 위치로 추정하는, 로봇.
14. The method of claim 13,
The processor is
Confirming the first angle as the position of the robot based on the world coordinate system of the world map,
Based on the robot coordinate system, a second angle separated by a distance measured based on a time when the laser output from the robot is reflected back to the obstacle is estimated as the position of the obstacle.
제14항에 있어서,
상기 프로세서는,
상기 월드 맵의 각 공간에 매핑된 점유도 값들 중 점유 공간에 매핑된 점유도 값을 가지는 지점들과 정보 수집 수단이 상기 장애물을 감지한 지점의 유클리드 거리가, 미리 설정한 임계 값 내에 존재하면 상기 장애물을 정적 장애물로 인지하고, 상기 임계 값 내에 존재하지 않으면 상기 장애물을 동적 장애물로 인지하는, 로봇.
15. The method of claim 14,
The processor is
Among the occupancy values mapped to each space of the world map, if the Euclidean distance between points having an occupancy value mapped to the occupied space and a point at which the information collecting means detects the obstacle is within a preset threshold value, the A robot that recognizes an obstacle as a static obstacle, and recognizes the obstacle as a dynamic obstacle if it does not exist within the threshold.
제15항에 있어서,
상기 프로세서는,
상기 동적 장애물을 최초 감지한 지점인 제1 지점, 상기 동적 장애물을 마지막으로 감지한 지점인 제2 지점, 상기 동적 장애물과 상기 정보 수집 수단의 거리가 가장 짧은 지점인 제3 지점을 각각 꼭지점으로 하는 삼각형의 외심을 상기 동적 장애물의 위치로 계산하는, 로봇.
16. The method of claim 15,
The processor is
A first point at which the dynamic obstacle was first detected, a second point at which the dynamic obstacle was last detected, and a third point at which the distance between the dynamic obstacle and the information collecting means is the shortest, respectively, as vertices A robot that calculates the circumcenter of a triangle as the position of the dynamic obstacle.
제16항에 있어서,
상기 프로세서는,
상기 동적 장애물을 감지한 시점을 기준으로 이전 시점인 제1 시점에서의 상기 동적 장애물의 제1 위치와, 상기 제1 시점보다 이전 시점인 제2 시점에서의 상기 동적 장애물의 제2 위치를 기초로 상기 동적 장애물의 이동 경로를 계산하고,
상기 제1 시점에서 상기 동적 장애물과의 거리, 그리고 로봇과 상기 동적 장애물의 상대 속도 크기를 이용하여 상기 충돌 예측 시점을 계산하는, 로봇.
17. The method of claim 16,
The processor is
Based on the first position of the dynamic obstacle at a first time point that is a previous time based on the time at which the dynamic obstacle is sensed, and a second position of the dynamic obstacle at a second time point that is earlier than the first time point calculating the movement path of the dynamic obstacle,
The robot calculates the collision prediction time by using the distance from the dynamic obstacle at the first time point and the magnitude of the relative speed between the robot and the dynamic obstacle.
제17항에 있어서,
상기 프로세서는,
상기 로봇의 주행 방향과 주행 후보 방향 별 충돌 회피 확률을 계산하고, 상기 충돌 예측 시점과 상기 충돌 회피 확률을 기초로 상기 동적 장애물과의 충돌 확률을 계산하는, 로봇.
18. The method of claim 17,
The processor is
A robot that calculates a collision avoidance probability for each driving direction of the robot and each driving candidate direction, and calculates a collision probability with the dynamic obstacle based on the collision prediction time and the collision avoidance probability.
제18항에 있어서,
상기 프로세서는,
전역 경로와의 거리, 목표 지점까지의 거리, 그리고 정적 장애물에 대한 양의 비용을 토대로 계산한 비용 함수의 값이 미리 설정한 기준 값보다 크면 현재 주행 속도보다 빠른 속도로 주행하도록 제어 신호를 생성하고,
상기 비용 함수의 값이 상기 기준 값보다 작으면, 상기 현재 주행 속도보다 느린 속도로 주행하도록 제어 신호를 생성하는, 로봇.
19. The method of claim 18,
The processor is
If the value of the cost function calculated based on the distance from the global route, the distance to the target point, and the positive cost for the static obstacle is greater than the preset reference value, a control signal is generated to drive at a speed higher than the current driving speed, ,
When the value of the cost function is less than the reference value, the robot generates a control signal to travel at a speed slower than the current traveling speed.
월드 맵 관리 서버가 로봇과 연동하여 상기 로봇이 생성한 월드 맵을 관리하는 방법으로서,
상기 로봇으로부터 상기 로봇이 주행중인 공간의 주행 가능 영역과 주행 불가능 영역이 표시된 월드 맵을 수신하는 단계,
상기 로봇으로부터 로봇의 위치 정보, 이동 경로 정보, 그리고 상기 로봇이 인식한 동적 장애물의 위치 정보와 상기 동적 장애물과의 충돌 확률을 수신하는 단계, 그리고
상기 동적 장애물과의 충돌 확률을 토대로 계산된 비용 함수 계산 값이 기준 값 이하인 횟수가 미리 설정된 횟수 이상이면, 상기 동적 장애물의 위치를 상기 월드 맵에서 블록 처리하여 상기 월드 맵을 갱신하는 단계
를 포함하는, 월드 맵 관리 방법.
A method for the world map management server to manage the world map generated by the robot in conjunction with the robot,
receiving, from the robot, a world map in which a drivable area and a non-travelable area of the space in which the robot is traveling are displayed;
Receiving from the robot position information of the robot, movement path information, and the position information of the dynamic obstacle recognized by the robot and the collision probability with the dynamic obstacle, and
updating the world map by block-processing the location of the dynamic obstacle in the world map if the number of times the cost function calculation value calculated based on the collision probability with the dynamic obstacle is equal to or less than the reference value is more than a preset number of times
A method for managing the world map, comprising:
KR1020200139366A 2020-10-26 2020-10-26 Autonomous robot, world map management server of autonomous robot and collision avoidance method using the same KR20220055167A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020200139366A KR20220055167A (en) 2020-10-26 2020-10-26 Autonomous robot, world map management server of autonomous robot and collision avoidance method using the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200139366A KR20220055167A (en) 2020-10-26 2020-10-26 Autonomous robot, world map management server of autonomous robot and collision avoidance method using the same

Publications (1)

Publication Number Publication Date
KR20220055167A true KR20220055167A (en) 2022-05-03

Family

ID=81590839

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200139366A KR20220055167A (en) 2020-10-26 2020-10-26 Autonomous robot, world map management server of autonomous robot and collision avoidance method using the same

Country Status (1)

Country Link
KR (1) KR20220055167A (en)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102572851B1 (en) * 2023-04-04 2023-08-31 주식회사 클로봇 Mobile robot device for moving to destination and operation method thereof
WO2023219229A1 (en) * 2022-05-09 2023-11-16 삼성전자주식회사 Movable robot and controlling method thereof
CN117341683A (en) * 2023-12-04 2024-01-05 苏州观瑞汽车技术有限公司 Vehicle dynamic track fitting obstacle avoidance method and system based on multi-target recognition
WO2024043497A1 (en) * 2022-08-26 2024-02-29 삼성전자주식회사 Robot and operation method thereof
WO2024096190A1 (en) * 2022-11-03 2024-05-10 주식회사 트위니 Multi-traffic control method for multiple robots traveling autonomously
WO2024101767A1 (en) * 2022-11-07 2024-05-16 주식회사 나비프라 Mobile robot unit, mobile robot system, and method for controlling mobile robot system

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023219229A1 (en) * 2022-05-09 2023-11-16 삼성전자주식회사 Movable robot and controlling method thereof
WO2024043497A1 (en) * 2022-08-26 2024-02-29 삼성전자주식회사 Robot and operation method thereof
WO2024096190A1 (en) * 2022-11-03 2024-05-10 주식회사 트위니 Multi-traffic control method for multiple robots traveling autonomously
WO2024101767A1 (en) * 2022-11-07 2024-05-16 주식회사 나비프라 Mobile robot unit, mobile robot system, and method for controlling mobile robot system
KR102572851B1 (en) * 2023-04-04 2023-08-31 주식회사 클로봇 Mobile robot device for moving to destination and operation method thereof
CN117341683A (en) * 2023-12-04 2024-01-05 苏州观瑞汽车技术有限公司 Vehicle dynamic track fitting obstacle avoidance method and system based on multi-target recognition
CN117341683B (en) * 2023-12-04 2024-04-23 苏州观瑞汽车技术有限公司 Vehicle dynamic track fitting obstacle avoidance method and system based on multi-target recognition

Similar Documents

Publication Publication Date Title
KR20220055167A (en) Autonomous robot, world map management server of autonomous robot and collision avoidance method using the same
US11714413B2 (en) Planning autonomous motion
CN111670468B (en) Moving body behavior prediction device and moving body behavior prediction method
KR102099605B1 (en) Real-time optimal parking route guidance system and method
Konolige A gradient method for realtime robot control
EP2506106B1 (en) Autonomous moving object and control method
US20180239355A1 (en) Method of identifying unexpected obstacle and robot implementing the method
EP2508956B1 (en) A collision avoiding method and system
KR101338246B1 (en) Collision prevention system of mobile robot in unknown environment and method thereof
KR102090590B1 (en) Robot of moving waypoints based on obstace avoidance and method of moving
KR102635529B1 (en) Robot for airport and method thereof
CN111103875B (en) Method, apparatus and storage medium for avoiding
KR100834571B1 (en) Apparatus and Method for building environment map according to optimum path setting in autonomous mobile robot
KR102303432B1 (en) System for mapless navigation based on dqn and slam considering characteristic of obstacle and processing method thereof
US20180211103A1 (en) Method of creating map by identifying moving object, and robot implementing the method
KR20180039378A (en) Robot for airport and method thereof
CN114527753A (en) Man-machine integrated building path planning method, computer device and program product
KR20150076757A (en) An Apparatus and Method for Clustering Control of Transport
CN112445215A (en) Automatic guided vehicle driving control method, device and computer system
Nagatani et al. The arc-transversal median algorithm: an approach to increasing ultrasonic sensor accuracy
KR102012548B1 (en) Method of identifying enterable region of robot and robot implementing thereof
KR102252295B1 (en) Method and autonomous mobile robot for generating indoor topology map
JP7217415B2 (en) Information processing device, information processing method and information processing program
KR20180105984A (en) Method of modifying path using around map and robot implementing thereof
JP2015132980A (en) Moving body control device, moving body control program and moving body control method

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E601 Decision to refuse application