KR102384102B1 - Autonomous robot and method for driving using the same - Google Patents

Autonomous robot and method for driving using the same Download PDF

Info

Publication number
KR102384102B1
KR102384102B1 KR1020200126969A KR20200126969A KR102384102B1 KR 102384102 B1 KR102384102 B1 KR 102384102B1 KR 1020200126969 A KR1020200126969 A KR 1020200126969A KR 20200126969 A KR20200126969 A KR 20200126969A KR 102384102 B1 KR102384102 B1 KR 102384102B1
Authority
KR
South Korea
Prior art keywords
distance
driving
robot
angle
measured
Prior art date
Application number
KR1020200126969A
Other languages
Korean (ko)
Other versions
KR20220043501A (en
Inventor
김기현
김현숙
박기용
Original Assignee
주식회사 케이티
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 주식회사 케이티 filed Critical 주식회사 케이티
Priority to KR1020200126969A priority Critical patent/KR102384102B1/en
Publication of KR20220043501A publication Critical patent/KR20220043501A/en
Application granted granted Critical
Publication of KR102384102B1 publication Critical patent/KR102384102B1/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/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
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J11/00Manipulators not otherwise provided for
    • B25J11/008Manipulators for service tasks
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J19/00Accessories fitted to manipulators, e.g. for monitoring, for viewing; Safety devices combined with or specially adapted for use in connection with manipulators
    • B25J19/02Sensing devices
    • B25J19/021Optical sensing devices
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1602Programme controls characterised by the control system, structure, architecture
    • B25J9/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/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

Landscapes

  • Engineering & Computer Science (AREA)
  • Robotics (AREA)
  • Mechanical Engineering (AREA)
  • Automation & Control Theory (AREA)
  • Physics & Mathematics (AREA)
  • Artificial Intelligence (AREA)
  • Evolutionary Computation (AREA)
  • Fuzzy Systems (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Control Of Position, Course, Altitude, Or Attitude Of Moving Bodies (AREA)

Abstract

제1 주행 모드에서, 라이다를 통해 주변 구조물까지의 거리들을 각도별로 측정하면서, 주변 구조물을 근사화하여 생성한 벽면을 따라 주행한다. 주변 구조물까지의 거리들을 토대로 불연속 지점이 있는지 확인하고, 불연속 지점이 있으면 제2 주행 모드로 변경한 후, 라이다를 통해 수집한 각도별 거리를 기초로 계산한 회전 각도로 회전 주행하면서, 회전 각도가 0이 될 때까지 제2 주행 모드로 주행한다. 여기서 회전 각도는, 주행 방향을 기준으로 측정한 우측 최대 거리의 좌표와 좌측 최대 거리의 좌표 사이의 중간 지점으로 로봇이 향하도록 하는 각도이다.In the first driving mode, the vehicle travels along a wall created by approximating the surrounding structures while measuring the distances to the surrounding structures by angles through the lidar. Check whether there is a discontinuity point based on the distances to the surrounding structures, and if there is a discontinuity point, change to the second driving mode. The vehicle is driven in the second driving mode until is 0. Here, the rotation angle is an angle at which the robot is directed to an intermediate point between the coordinates of the maximum right distance and the coordinates of the maximum left distance measured based on the driving direction.

Description

자율주행 로봇 및 자율주행 로봇의 주행 방법{Autonomous robot and method for driving using the same}Autonomous robot and method for driving using the same

본 발명은 식당과 같이 곡선 주행 경로가 빈번하게 생성되는 환경에서 좁은 간격으로 설치된 장애물을 피해 용이하게 주행하기 위한 자율주행 로봇 및 자율주행 로봇의 주행 방법에 관한 것이다.The present invention relates to an autonomous driving robot and a driving method of the autonomous driving robot for easily driving avoiding obstacles installed at narrow intervals in an environment in which curved driving paths are frequently generated, such as a restaurant.

최근 언택트 관련 시장이 성장하면서, 자율주행 로봇이 접객 서비스가 필요한 다양한 장소(예를 들어, 호텔이나 식당 등)에서 직원들을 대신하여 접객 서비스를 제공하는 사례가 증가하고 있다. 호텔이나 식당은 자율주행 로봇의 이동 동선 또는 사용자들의 혼잡도 등 공간을 구성하는 특징이 매우 다양하기 때문에, 자율주행 로봇의 주행이 어려운 장소에 해당한다.With the recent growth of the untact-related market, cases in which autonomous driving robots provide hospitality services on behalf of employees in various places where customer service is required (eg, hotels or restaurants) are increasing. Hotels and restaurants are places where it is difficult for an autonomous driving robot to drive because the characteristics that make up the space, such as the movement path of the autonomous driving robot or the congestion level of users, are very diverse.

특히, 식당은 테이블과 의자가 좁은 간격으로 설치되어 있기 때문에, 테이블 간격을 최소화하는 경우 자율주행 로봇이 곡선 주행 시 테이블이나 의자에 충돌하는 경우가 빈번히 발생한다. 이에 따라 식당에서의 자율주행 로봇의 주행 난이도는 높아지고, 자율주행 로봇의 상용화가 느리게 진행되는 단점이 있다.In particular, since tables and chairs are installed at a narrow distance in a restaurant, when the table space is minimized, the autonomous driving robot frequently collides with a table or chair while driving in a curved direction. Accordingly, the driving difficulty of the autonomous driving robot in restaurants increases, and the commercialization of the autonomous driving robot is slow.

기존에는 자율주행 로봇이 곡선 주행 경로를 계획하기 위해, 직각 삼각형 방식으로 경로를 설정하였다. 직각 삼각형 방식은 자율주행 로봇에 설치된 라이다(Lidar)를 기준으로 직각 삼각형의 높이 변과 근사 벽면이 일치하도록 경로를 설정하는 기술이다.In the past, in order to plan a curved driving path for an autonomous driving robot, the path was set in a right-angled triangle method. The right-angled triangle method is a technology that sets the path so that the height side of the right-angled triangle and the approximate wall coincide with the lidar installed in the autonomous driving robot.

그러나, 직각 삼각형 방식을 이용할 경우 자율주행 로봇의 경로에 오차가 발생하면, 경로 설정을 위한 기준인 높이 변과 근사 벽면 사이에 면적 오차가 발생한다. 따라서, 장애물들이 설치된 간격이 좁거나 벽면이 급하게 변하는 코너 주행이 필요한 환경에서, 자율주행 로봇은 대부분 장애물 또는 벽면에 충돌하거나 주행을 정지하는 문제점이 발생한다.However, if an error occurs in the path of the autonomous driving robot when using the right triangle method, an area error occurs between the height side, which is a reference for path setting, and the approximate wall. Accordingly, in an environment where the distance between the obstacles is narrow or a corner driving is required in which the wall surface changes rapidly, the autonomous driving robot mostly collides with an obstacle or a wall surface or stops running.

따라서, 본 발명은 좁은 간격으로 장애물들이 설치되어 있는 환경에서, 코너 구간에 진입하기 전에 코너 구간의 존재를 미리 확인하여 주행하는 자율주행 로봇 및 자율주행 로봇의 주행 방법을 제공한다.Accordingly, the present invention provides an autonomous driving robot and a driving method of the autonomous driving robot in which obstacles are installed at narrow intervals by checking the existence of a corner section in advance before entering the corner section.

상기 본 발명의 기술적 과제를 달성하기 위한 본 발명의 하나의 특징인 로봇의 주행 방법으로서,As a driving method of a robot, which is a feature of the present invention for achieving the technical problem of the present invention,

제1 주행 모드에서, 라이다를 통해 주변 구조물까지의 거리들을 각도별로 측정하면서, 상기 주변 구조물을 근사화하여 생성한 벽면을 따라 주행하는 단계, 상기 주변 구조물까지의 거리들을 토대로, 불연속 지점이 있는지 확인하는 단계, 그리고 상기 불연속 지점이 있으면 제2 주행 모드로 변경하고, 상기 라이다를 통해 수집한 각도별 거리를 기초로 계산한 회전 각도로 회전 주행하면서, 상기 회전 각도가 0이 될 때까지 상기 제2 주행 모드로 주행하는 단계를 포함하고, 상기 회전 각도는, 상기 주행 방향을 기준으로 측정한 우측 최대 거리의 좌표와 좌측 최대 거리의 좌표 사이의 중간 지점의 좌표로 상기 로봇이 향하도록 상기 로봇을 제어하는 각도이다.In the first driving mode, while measuring the distances to the surrounding structures by angle through the lidar, driving along the wall generated by approximating the surrounding structures, checking whether there is a discontinuous point based on the distances to the surrounding structures and changing to the second driving mode if there is the discontinuous point, and while rotating at a rotation angle calculated based on the distance for each angle collected through the lidar, the second driving mode until the rotation angle becomes 0 Comprising the step of driving in 2 driving mode, wherein the rotation angle is, the robot is directed so that the robot is directed at the coordinates of the midpoint between the coordinates of the maximum right distance and the coordinates of the maximum left distance measured based on the driving direction. angle to control.

상기 벽면을 따라 주행하는 단계는, 상기 주변 구조물에 상기 라이다에서 출력된 레이저가 각도별로 반사된 각 지점의 좌표들을 하나의 직선으로 근사화하여 상기 벽면으로 생성할 수 있다.The driving along the wall may include approximating the coordinates of each point where the laser output from the lidar to the surrounding structure is reflected for each angle with one straight line to generate the wall surface.

상기 벽면을 따라 주행하는 단계는, 지면에서부터 상기 라이다의 높이까지의 변과 상기 벽면 사이의 면적 오차를 계산하는 단계, 그리고 상기 면적 오차가 0으로 수렴하도록 상기 벽면과의 거리와 각도를 유지하며 상기 벽면을 따라 주행하는 단계를 포함할 수 있다.The step of driving along the wall comprises calculating an area error between a side from the ground to the height of the lidar and the wall, and maintaining the distance and angle with the wall so that the area error converges to zero, It may include the step of traveling along the wall surface.

상기 불연속 지점이 있는지 확인하는 단계는, 상기 주행 방향을 기준으로 우측에서 측정된 각도별 우측 거리들 중에서 상기 우측 최대 거리를 확인하고, 상기 우측 최대 거리 대비 임계값 이하로 짧은 우측 거리가 존재하면, 상기 주행 방향의 우측에 코너 구간이 있다고 판단하는 단계, 그리고 상기 주행 방향을 기준으로 좌측에서 측정된 각도별 좌측 거리들 중에서 상기 좌측 최대 거리를 확인하고, 상기 좌측 최대 거리 대비 임계값 이하로 짧은 좌측 거리가 존재하면, 상기 주행 방향의 좌측에 코너 구간이 있다고 판단하는 단계를 포함할 수 있다.The step of determining whether there is a discontinuous point includes checking the right maximum distance among the right distances for each angle measured from the right side based on the driving direction, and if there is a short right distance below a threshold value compared to the right maximum distance determining that there is a corner section on the right side of the driving direction, and checking the left maximum distance among the left distances for each angle measured from the left side based on the driving direction, and the left side shorter than a threshold value compared to the left maximum distance If the distance exists, determining that there is a corner section on the left side of the driving direction.

상기 제2 주행 모드로 주행하는 단계는, 상기 우측 최대 거리와 상기 우측 최대 거리가 측정된 우측 각도를 상기 우측 최대 거리의 좌표로 확인하는 단계, 상기 좌측 최대 거리와 상기 좌측 최대 거리가 측정된 좌측 각도를 상기 좌측 최대 거리의 좌표로 확인하는 단계, 그리고 상기 우측 최대 거리의 좌표와 상기 좌측 최대 거리의 좌표 사이에 생성된 변에서 이등분 지점인 상기 중간 지점의 좌표를 지나도록 상기 회전 각도를 계산하는 단계를 포함하고, 상기 회전 각도는 상기 불연속 지점을 통과할 때까지 상기 라이다를 통해 수집한 상기 각도별 거리를 기초로 갱신될 수 있다.The step of driving in the second driving mode may include: confirming the right angle at which the right maximum distance and the right maximum distance are measured as coordinates of the right maximum distance; Checking the angle as the coordinates of the left maximum distance, and calculating the rotation angle to pass the coordinates of the intermediate point, which is the bisector of the side generated between the coordinates of the right maximum distance and the left maximum distance coordinates and the rotation angle may be updated based on the distance for each angle collected through the lidar until passing the discontinuous point.

상기 제2 주행 모드로 주행하는 단계 이후에, 상기 회전 각도가 0에 수렴하도록 회전 주행하면서 상기 불연속 지점을 통과하면, 주행 모드를 변경하여 불연속 지점을 통과한 위치의 주변 구조물을 근사화하여 생성한 새로운 벽면을 따라 주행하는 단계를 포함할 수 있다.After the step of driving in the second driving mode, if the rotational driving passes the discontinuous point while rotating so that the rotation angle converges to 0, the driving mode is changed to approximate the surrounding structures at the position passing the discontinuous point. may include running along the wall.

상기 본 발명의 기술적 과제를 달성하기 위한 본 발명의 또 다른 특징인 로봇의 주행 방법으로서,As another feature of the present invention for achieving the technical problem of the present invention, the driving method of the robot,

주변 구조물들까지의 거리를 측정하면서 주행하는 단계, 주행 방향의 우측에서 측정된 각도별 우측 거리들 중에서 가장 긴 우측 거리를 확인하고, 상기 가장 긴 우측 거리 대비 임계값 이하로 짧은 우측 거리가 존재하면, 상기 주행 방향의 우측에 코너 구간이 있다고 판단하는 단계, 주행 방향의 좌측에서 측정된 각도별 좌측 거리들 중에서 가장 긴 좌측 거리를 확인하고, 상기 가장 긴 좌측 거리 대비 임계값 이하로 짧은 좌측 거리가 존재하면, 상기 주행 방향의 좌측에 코너 구간이 있다고 판단하는 단계, 그리고 상기 우측의 코너 구간 또는 상기 좌측의 코너 구간의 방향으로 주행 각도를 변경하면서 진입한 코너 구간을 통과하는 단계를 포함한다.Step of driving while measuring the distance to surrounding structures, check the longest right distance among the right distances for each angle measured on the right side of the driving direction, and if there is a short right distance below the threshold value compared to the longest right distance , determining that there is a corner section on the right side of the driving direction, checking the longest left distance among the left distances for each angle measured in the left side of the driving direction, and the shortest left distance below the threshold compared to the longest left distance If present, determining that there is a corner section on the left side of the driving direction, and passing the entered corner section while changing the driving angle in the direction of the right corner section or the left corner section.

상기 우측에 코너 구간이 있다고 판단하는 단계는, 상기 가장 긴 우측 거리와 상기 가장 긴 우측 거리가 측정된 각도를 기초로, 상기 가장 긴 우측 거리가 측정된 구조물의 위치를 확인하는 단계를 포함할 수 있다.Determining that there is a corner section on the right side may include determining the location of the structure in which the longest right distance is measured based on the angle at which the longest right distance and the longest right distance are measured. there is.

상기 좌측에 코너 구간이 있다고 판단하는 단계는, 상기 가장 긴 좌측 거리와 상기 가장 긴 좌측 거리가 측정된 각도를 기초로, 상기 가장 긴 좌측 거리가 측정된 구조물의 위치를 확인하는 단계를 포함할 수 있다.The step of determining that there is a corner section on the left side may include determining the location of the structure in which the longest left distance is measured, based on the angle at which the longest left distance and the longest left distance are measured. there is.

상기 코너 구간을 통과하는 단계는, 상기 우측 거리가 측정된 구조물의 각도와 상기 좌측 거리가 측정된 구조물의 각도, 그리고 상기 로봇의 위치를 기초로 상기 로봇의 주행 방향을 기준으로 회전 각도를 계산하는 단계를 포함할 수 있다.In the step of passing the corner section, the rotation angle is calculated based on the traveling direction of the robot based on the angle of the structure in which the right distance is measured, the angle of the structure in which the left distance is measured, and the position of the robot. may include steps.

상기 회전 각도는, 상기 우측 거리가 측정된 구조물의 위치와 상기 좌측 거리가 측정된 구조물의 위치를 이등분하는 지점으로 향하도록 로봇을 회전시키는 각도일 수 있다.The rotation angle may be an angle at which the robot is rotated so as to bisect the position of the structure in which the right distance is measured and the position of the structure in which the left distance is measured.

상기 코너 구간을 통과하는 단계는, 상기 주행 목표 위치까지의 각도를 상기 가장 긴 우측 거리가 측정된 구조물의 위치와 상기 가장 긴 좌측 거리가 측정된 구조물의 위치를 기초로 계산하는 단계를 더 포함할 수 있다.The step of passing the corner section may further include calculating the angle to the driving target position based on the position of the structure in which the longest right distance is measured and the position of the structure in which the longest left distance is measured. can

상기 코너 구간을 통과하는 단계는, 상기 임계값 이하의 짧은 우측 거리 또는 짧은 좌측 거리가 존재하지 않으면, 상기 구조물들까지의 거리를 토대로 상기 각도별로 구조물들의 복수의 좌표들을 구하는 단계, 상기 복수의 좌표들을 직선으로 근사화하여 근사 벽면을 생성하는 단계, 그리고 상기 근사 벽면과 일정 거리 떨어진 위치에서 상기 근사 벽면과 평행하게 주행하도록 주행 경로를 생성하여 주행하는 단계를 포함할 수 있다.In the step of passing the corner section, if there is no short right distance or short left distance less than the threshold value, obtaining a plurality of coordinates of the structures for each angle based on the distance to the structures, the plurality of coordinates The method may include generating an approximate wall surface by approximating them to a straight line, and generating and driving a driving path so as to run parallel to the approximate wall surface at a location separated from the approximate wall surface by a predetermined distance.

상기 주행하는 단계 이전에는, 상기 구조물들이 설치된 공간을 주행하며 초기 맵을 생성하는 단계, 그리고 상기 로봇과 연동한 서버로 상기 초기 맵을 전송하고, 상기 서버로부터 상기 초기 맵에 갱신 정보가 반영된 주행 맵을 수신하는 단계를 포함하고, 상기 갱신 정보는, 상기 로봇의 크기, 상기 구조물의 크기, 상기 구조물의 모양, 그리고 복수의 구조물들이 하나의 구조물로 묶여 처리된 경계선 처리 정보를 포함할 수 있다.Before the driving step, generating an initial map while driving in a space where the structures are installed, and transmitting the initial map to a server interworking with the robot, and a driving map in which update information is reflected in the initial map from the server and receiving, wherein the update information may include the size of the robot, the size of the structure, the shape of the structure, and boundary line processing information in which a plurality of structures are grouped into one structure.

상기 주행 맵을 수신하는 단계는, 상기 주변 구조물을 근사화하여 벽면으로 생성하는 단계, 그리고 라이다를 통해 상기 주변 구조물까지의 거리들을 각도별로 측정하면서, 상기 벽면을 따라 주행하는 단계를 더 포함할 수 있다.Receiving the driving map may further include generating a wall by approximating the surrounding structures, and driving along the wall while measuring distances to the surrounding structures by angles through lidar. there is.

상기 본 발명의 기술적 과제를 달성하기 위한 본 발명의 또 다른 특징인 자율주행 중 주행 경로를 변경하는 로봇으로서,As another feature of the present invention for achieving the technical problem of the present invention, a robot that changes a driving route during autonomous driving,

주변 구조물까지의 거리들을 각도별로 측정하는 센서, 프로세서를 포함하고, 상기 프로세서는, 상기 주변 구조물을 기초로 생성한 근사 벽면을 따라 주행하도록 주행 모드를 설정하며, 상기 주변 구조물까지의 거리들을 토대로 불연속 지점을 확인하며, 상기 불연속 지점을 확인하면 상기 거리들 중 우측 기준 거리와 우측 각도, 그리고 좌측 기준 거리와 좌측 각도를 토대로 로봇을 회전시킬 회전 각도를 계산하고, 상기 불연속 지점을 통과할 때까지 상기 회전 각도만큼 회전하며 주행하도록 주행 모드를 변경한다.A sensor and a processor for measuring distances to surrounding structures by angle, wherein the processor sets a driving mode to travel along an approximate wall generated based on the surrounding structures, and is discontinuous based on the distances to the surrounding structures. Check the point, and when the discontinuous point is confirmed, the rotation angle to rotate the robot is calculated based on the right reference distance and the right angle, and the left reference distance and the left angle among the distances, and until passing the discontinuous point, the Change the driving mode so that it rotates as much as the rotation angle and drives.

상기 프로세서는, 상기 주변 구조물까지의 거리들 중 우측 최대 거리를 상기 우측 기준 거리로 설정하고, 좌측 최대 거리를 상기 좌측 기준 거리로 설정하며, 상기 우측 기준 거리와 상기 우측 각도와, 상기 좌측 기준 거리와 상기 좌측 각도로 상기 주변 구조물의 위치를 확인할 수 있다.The processor sets a right maximum distance among distances to the surrounding structures as the right reference distance, sets a left maximum distance as the left reference distance, the right reference distance, the right angle, and the left reference distance and the left angle can confirm the position of the surrounding structure.

상기 프로세서는, 상기 우측 거리가 측정된 구조물의 위치와 상기 좌측 거리가 측정된 구조물의 위치를 사이에서, 특정 위치로 주행하도록 회전 각도를 계산할 수 있다.The processor may calculate a rotation angle to travel to a specific position between the position of the structure in which the right distance is measured and the position of the structure in which the left distance is measured.

상기 프로세서는, 상기 각도별로 상기 구조물의 거리가 측정된 복수의 좌표들을 구하고, 상기 복수의 좌표들을 직선으로 근사화하여 상기 근사 벽면을 생성할 수 있다.The processor may generate the approximate wall surface by obtaining a plurality of coordinates at which the distance of the structure is measured for each angle, and approximating the plurality of coordinates with a straight line.

상기 프로세서는, 상기 근사 벽면과 일정 거리 떨어지고 상기 근사 벽면에 일정 각도를 유지하도록 상기 근사 벽면을 따라 주행하도록 주행 모드를 설정할 수 있다. The processor may set the driving mode to travel along the approximate wall surface to be separated from the approximate wall surface by a predetermined distance and maintain a predetermined angle to the approximate wall surface.

본 발명에 따르면, 식당과 같이 장애물들이 좁은 간격으로 설치되어 곡선 주행 경로를 빈번하게 생성해야 하는 환경에서도, 자율주행 로봇은 삼각형 이등분 코너 인식 방법을 통해 장애물과의 충돌 없이 코너 구간의 주행을 용이하게 할 수 있다.According to the present invention, even in an environment where obstacles such as a restaurant are installed at narrow intervals and frequently generate a curved driving path, the autonomous driving robot facilitates driving in a corner section without colliding with an obstacle through the triangular bisector corner recognition method. can do.

도 1은 곡선 주행 경로 설정에 사용되는 직각 삼각형 방식에 대한 예시도이다.
도 2는 코너를 주행할 때의 구조물과의 충돌 원인을 나타낸 예시도이다.
도 3은 본 발명의 실시예에 따라 자율주행 로봇이 적용된 환경의 예시도이다.
도 4는 본 발명의 실시예에 따른 자율주행 로봇의 구조도이다.
도 5는 본 발명의 실시예에 따른 주행 방법에 대한 흐름도이다.
도 6은 본 발명의 실시예에 따른 코너 지점 확인 방법에 대한 흐름도이다.
도 7은 본 발명의 실시예에 따른 좌회전 코너를 인식하여 목표 경로를 설정한 예시도이다.
도 8은 본 발명의 또 다른 실시예에 따른 좌회전 코너를 인식하기 위한 예시도이다
도 9는 본 발명의 실시예에 따라 로봇이 생성한 초기 맵의 예시도이다.
도 10은 본 발명의 제1 실시예에 따라 초기 맵에 반영될 갱신 정보의 예시도이다.
도 11은 본 발명의 제2 실시예에 따라 초기 맵에 반영될 갱신 정보의 예시도이다.
도 12는 본 발명의 제3 실시예에 따라 초기 맵에 반영될 갱신 정보의 예시도이다.
도 13은 본 발명의 실시예에 따른 주행 맵의 예시도이다.
1 is an exemplary diagram of a right-angled triangle method used for setting a curved driving route.
2 is an exemplary view showing a cause of a collision with a structure when driving a corner.
3 is an exemplary diagram of an environment to which an autonomous driving robot is applied according to an embodiment of the present invention.
4 is a structural diagram of an autonomous driving robot according to an embodiment of the present invention.
5 is a flowchart of a driving method according to an embodiment of the present invention.
6 is a flowchart of a method for checking a corner point according to an embodiment of the present invention.
7 is an exemplary view in which a target path is set by recognizing a left turn corner according to an embodiment of the present invention.
8 is an exemplary view for recognizing a left turn corner according to another embodiment of the present invention
9 is an exemplary diagram of an initial map generated by a robot according to an embodiment of the present invention.
10 is an exemplary diagram of update information to be reflected in an initial map according to the first embodiment of the present invention.
11 is an exemplary diagram of update information to be reflected in an initial map according to a second embodiment of the present invention.
12 is an exemplary diagram of update information to be reflected in an initial map according to a third embodiment of the present invention.
13 is an exemplary diagram of a driving map 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.

이하, 도면을 참조로 하여 본 발명의 실시예에 따른 자율주행 로봇 및 자율주행 로봇의 곡선 주행 경로 생성 방법에 대해 상세히 설명한다. 본 발명의 실시예에 대해 설명하기 앞서, 벽면 추종 주행 방식인 직각 삼각형 방식을 이용한 곡선 주행에 대해 먼저 도 1 및 도 2를 참조로 설명한다.Hereinafter, an autonomous driving robot and a method for generating a curved driving path of the autonomous driving robot according to an embodiment of the present invention will be described in detail with reference to the drawings. Before describing the embodiment of the present invention, curved driving using a right-angled triangle method, which is a wall-following traveling method, will first be described with reference to FIGS. 1 and 2 .

도 1은 주행 경로 설정에 사용되는 직각 삼각형 방식에 대한 예시도이다.1 is an exemplary diagram of a right-angled triangle method used for setting a driving route.

로봇(10)은 주행 경로를 계획할 때, 직각 삼각형 방식으로 주행 경로를 설정한다. 즉, 로봇(10)은 불규칙적인 구조물인 벽면을 직선 벽면으로 근사하여 근사 벽면을 설정하고, 근사 벽면에 대해 직각 삼각형을 유지하여 근사 벽면과 일정 거리를 두고 평행하게 주행하도록 설정한다.When the robot 10 plans the travel route, the robot 10 sets the travel route in a right-angled triangle manner. That is, the robot 10 sets the approximate wall surface by approximating the wall surface, which is an irregular structure, as a straight wall surface, and maintains a right-angled triangle with respect to the approximate wall surface to run parallel to the approximate wall surface at a predetermined distance.

즉, 로봇(10)은 라이다(11)를 이용하여 각도별로 레이저를 송출하고, 구조물에 반사되는 반사파를 기초로 구조물까지의 거리와 반사된 지점의 좌표를 구할 수 있다. 이때, 로봇(10)이 주행하는 공간의 구조물들은 사각형 테이블, 원형 테이블, 벽면 둥근 기둥 등 불규칙한 형태를 가진다. That is, the robot 10 may transmit a laser for each angle using the lidar 11 , and obtain the distance to the structure and the coordinates of the reflected point based on the reflected wave reflected by the structure. In this case, the structures of the space in which the robot 10 travels have irregular shapes such as a square table, a round table, and a round column on the wall.

따라서, 로봇(10)은 구조물들을 근사한 직선으로 정의해야 한다. 이를 위해, 로봇(10)은 레이저가 반사된 지점의 좌표들의 집단을 하나의 직선으로 근사화하여, 근사 벽면을 생성한다. 그리고, 로봇(10)은 근사 벽면을 따라 주행하게 되는데, 이때 구조물과의 오차 거리가 발생할 수 있다.Accordingly, the robot 10 should define the structures as approximate straight lines. To this end, the robot 10 generates an approximate wall surface by approximating the group of coordinates of the point where the laser is reflected to a single straight line. Then, the robot 10 travels along the approximate wall surface, and in this case, an error distance with the structure may occur.

오차 거리가 발생하면, 도 1에 도시된 바와 같이 높이 변과 근사벽면 사이에 면적 오차(Re)가 발생한다. 여기서, 면적 오차는 다음 수학식 1과 같이 직사각형(Re1)과 직각 삼각형(Te2)의 합으로 계산된다.When an error distance occurs, an area error ( Re ) occurs between the height side and the approximate wall surface as shown in FIG. 1 . Here, the area error is calculated as the sum of the rectangle ( Re1 ) and the right triangle (T e2 ) as shown in Equation 1 below.

Figure 112020103956819-pat00001
Figure 112020103956819-pat00001

D는 직각 삼각형의 밑변 길이이고, De는 근사벽면 기준 직각 삼각형의 거리 오차이다. 그리고 θe는 직각 삼각형의 높이 변과 근사벽면 사이의 오차 각도이다. D is the length of the base of the right triangle, and D e is the distance error of the right triangle based on the approximate wall surface. And θ e is the error angle between the height side of the right triangle and the approximate wall surface.

θe가 충분히 작은 경우 Re1과 Te2는 각각 다음 수학식 2 및 수학식 3과 같이 근사될 수 있다. When θ e is sufficiently small, R e1 and T e2 may be approximated by Equations 2 and 3, respectively.

Figure 112020103956819-pat00002
Figure 112020103956819-pat00002

Figure 112020103956819-pat00003
Figure 112020103956819-pat00003

여기서, 로봇(10)의 피드백 제어를 통해 De와 θe가 0으로 수렴하게 되면, 로봇(10)은 근사벽면과 일정한 거리와 각도를 유지하며 주행하게 된다.Here, when De and θ e converge to 0 through the feedback control of the robot 10 , the robot 10 runs while maintaining a constant distance and angle with the approximate wall surface.

이와 같이 직각 삼각형 방식을 이용하여 테이블 간격이 좁거나 벽면이 급하게 변하는 장소를 주행하면, 로봇(10)은 대부분 코너 주행 시 벽면이나 장애물에 충돌하거나 정지한다. 이때, 충돌 원인에 대해 도 2를 참조로 설명한다. As described above, when using the right-angled triangle method to drive in a place where the table interval is narrow or the wall surface changes rapidly, the robot 10 mostly collides with a wall or an obstacle during corner driving or stops. In this case, the cause of the collision will be described with reference to FIG. 2 .

도 2는 코너를 주행할 때의 구조물과의 충돌 원인을 나타낸 예시도이다.2 is an exemplary view illustrating a cause of a collision with a structure when driving a corner.

도 2에 도시된 바와 같이, 먼저 로봇(10)이 직각 삼각형 방식을 통해 우측 벽면(또는 테이블)과 직각 삼각형을 유지하면 코너에 접근한다. 그리고, 정면 벽까지의 거리가 D가 되는 G0지점을 지난 이후에도, 라이다 스캔 후 데이터가 업데이트되기 전까지 정면 벽을 인식하지 못하고 추가 거리(△)만큼 직진하게 된다. As shown in FIG. 2 , when the robot 10 maintains a right triangle with the right wall (or table) through a right triangle method, it approaches the corner. And, even after passing the G 0 point where the distance to the front wall becomes D, the front wall is not recognized until the data is updated after the lidar scan, and it goes straight ahead by an additional distance (Δ).

추가 거리(△)만큼 이동한 G1 지점을 지나서야, 로봇(10)은 정면 벽을 인식하기 시작한다. 정면 벽을 인식하면 로봇(10)은 곡선 주행을 시작하고, G2 지점을 지나면서 근사벽면을 정면으로 인식한다. After passing the G 1 point moved by the additional distance (Δ), the robot 10 starts to recognize the front wall. When the front wall is recognized, the robot 10 starts curved driving and recognizes the approximate wall surface as the front while passing the G 2 point.

여기서, 근사 벽면이 로봇(10)을 기준으로 오른쪽에서 정면으로 급격하게 변하면, 면적오차 Re가 급격히 커진다. 따라서, 로봇(10)은 조향 각도를 최대로 설정하고, 최소 회전 반경(R)을 유지하면 회전한다. Here, when the approximate wall surface abruptly changes from the right to the front with respect to the robot 10, the area error Re increases rapidly. Accordingly, the robot 10 rotates when the steering angle is set to the maximum and the minimum turning radius R is maintained.

이때, 근사 벽면과의 충돌 없이 로봇(10)이 회전하기 위해서는, 최소 회전 반경(R)과 추가 거리(△)의 합보다 큰 정면 거리가 확보되어야 한다. 추가 거리(△)는 로봇(10)의 회전 반경을 증가시키기 때문에, 최소 회전 반경(R)과 추가 거리(△)의 합이 D보다 작은 경우 로봇(10)은 근사 벽면과 충돌한다. At this time, in order for the robot 10 to rotate without colliding with the approximate wall surface, a frontal distance greater than the sum of the minimum turning radius R and the additional distance Δ must be secured. Since the additional distance Δ increases the turning radius of the robot 10, if the sum of the minimum turning radius R and the additional distance Δ is less than D, the robot 10 collides with the approximate wall surface.

따라서, 테이블 간격이 100cm 수준으로 좁은 식당 공간에서 로봇(10)이 주행할 때, 로봇(10)은 무조건 테이블 또는 벽면과 충돌하게 된다. 테이블 설치 간격이 넓혀서 이러한 문제점을 해결할 수 있지만, 공간 활용 효율이 떨어지는 단점이 있다. 또한, 대부분 식당에 제약 사항이 발생하며, 로봇 회전 반경 R을 줄이는 경우 로봇(10)의 드리프트, 슬립, 회전으로 로봇(10) 자체에 위험이 커진다.Therefore, when the robot 10 runs in a dining space where the table spacing is as narrow as 100 cm, the robot 10 unconditionally collides with a table or a wall. This problem can be solved by widening the table installation interval, but there is a disadvantage in that the space utilization efficiency is lowered. In addition, most of the restrictions occur in restaurants, and when the robot turning radius R is reduced, the risk to the robot 10 itself increases due to the drift, slip, and rotation of the robot 10 .

따라서, 본 발명의 실시예에서는 좁은 테이블 간격의 식당 환경에서 고속으로 자율 주행하는 자율주행 로봇(이하, 설명의 편의를 위하여 '로봇'이라 지칭함)(100)이 테이블 등의 장애물과의 충돌 없이 코너 주행을 하기 위한 삼각형 이등분 코너 인식 방법을 제안한다. Accordingly, in the embodiment of the present invention, an autonomous driving robot (hereinafter, referred to as a 'robot' for convenience of description) 100 that autonomously travels at high speed in a dining environment with a narrow table interval is a corner without colliding with an obstacle such as a table. We propose a triangle bisector corner recognition method for driving.

삼각형 이등분 코너 인식 방법은, 코너에 진입하기 전에 코너를 미리 검출하는 알고리즘을 통해 코너를 인식하고, 삼각형 이등분 목표 경로 설정 알고리즘을 통해 로봇(100)이 주행하는 방식이다. 삼각형 이등분 코너 인식 방법을 이용하면, 코너가 될 수 있는 테이블, 의자 모서리, 벽면 등 식당 내에 구조물을 잘 인식하고 코너 주행이 가능하게 한다. The triangle bisector corner recognition method is a method in which a corner is recognized through an algorithm that detects a corner in advance before entering a corner, and the robot 100 runs through a triangular bisector target path setting algorithm. By using the triangle bisector corner recognition method, it can recognize the structures in the dining room, such as tables, chair corners, and walls, which can be corners, and enable corner driving.

다음은 로봇(100) 환경에 대해 도 3을 참조로 설명한다. 본 발명의 실시예에서는 로봇(100)이 주행하는 공간으로 식당을 예로 하여 설명하나, 식당과 유사한 조건을 가지는 공간이라면 어떠한 공간에도 적용할 수 있다.Next, the environment of the robot 100 will be described with reference to FIG. 3 . In the embodiment of the present invention, a restaurant is described as an example of a space in which the robot 100 travels, but any space having conditions similar to that of a restaurant can be applied to any space.

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

도 3에 도시된 바와 같이, 장애물이 좁은 간격으로 설치되어 있거나, 곡선 주행 경로가 빈번하게 생성되어야 하는 공간을 주행하기 위해서는, 로봇(100)은 자신이 위치한 공간의 초기 맵을 생성한다. 여기서, 초기 맵은, 로봇(100)이 초기에 식당 공간 전체를 주행하며 생성한 지도로, 해당 공간 내에서 로봇(100)이 주행 가능한 영역과 주행이 불가능한 영역(예를 들어, 벽면, 기둥 등)이 구분되어 생성된다. As shown in FIG. 3 , in order to travel in a space in which obstacles are installed at narrow intervals or where a curved travel path is frequently generated, the robot 100 generates an initial map of the space in which it is located. Here, the initial map is a map generated while the robot 100 initially travels the entire dining space, in which the robot 100 can run and an area where it cannot run (eg, a wall, a column, etc.) ) are separated and created.

로봇(100)은 생성한 초기 맵을 맵 관리 서버(200)로 전달한다. 맵 관리 서버(200)는 맵 관리자에 의해 입력되는 패딩 값을 초기 맵에 반영하여, 주행 맵으로 갱신한다. 맵 관리 서버(200)에서 갱신한 주행 맵은 로봇(100)으로 전달된다.The robot 100 transmits the generated initial map to the map management server 200 . The map management server 200 reflects the padding value input by the map manager to the initial map, and updates the driving map. The driving map updated by the map management server 200 is transmitted to the robot 100 .

여기서, 패딩 값이라 함은, 로봇(100)이 공간을 주행할 때, 고객 또는 장애물에 대한 접근 거리를 조절하기 위해 맵 관리자에 의해 입력되는 값을 의미한다. 즉, 로봇(100)이 식당을 주행하면서 서비스를 제공할 때, 식당 고객에 의해 의자가 움직이는 범위로 로봇(100)이 주행할 경우 고객과의 부딪힘이 발생할 수 있다. Here, the padding value means a value input by the map manager to adjust the approach distance to the customer or obstacle when the robot 100 travels in space. That is, when the robot 100 provides a service while driving in a restaurant, a collision with the customer may occur when the robot 100 runs within a range in which the chair is moved by the restaurant customer.

따라서, 맵 관리자는 로봇(100)이 주행하지 못하도록 범위를 패딩 값을 이용하여 설정한다. 맵 관리자가 패딩 값으로 주행 범위를 결정하는 방법은 다양하게 수행되므로, 본 발명의 실시예에서는 어느 하나의 방법으로 한정하지 않는다. Accordingly, the map manager sets the range using the padding value to prevent the robot 100 from traveling. Since the method for the map manager to determine the driving range using the padding value is variously performed, the embodiment of the present invention is not limited to any one method.

로봇(100)은 주행 맵을 기초로 식당 공간을 벽면 추종 주행 방식인 직각 삼각형 방식을 이용하여 주행하면서, 로봇(100)에 설치된 센서를 이용하여 불연속 지점 즉, 코너 구간이 있는지 확인한다. 그리고 코너 구간을 감지한 시점에 로봇(100)은 코너 주행을 위해, 직각 삼각형 방식에서 삼각형 이등분 방식으로 주행 모드를 변경하고, 변경한 주행 모드로 코너를 주행한다.The robot 100 checks whether there is a discontinuous point, that is, a corner section, using a sensor installed in the robot 100 while driving the dining space using a right-angled triangle method, which is a wall-following driving method, based on the driving map. And when the corner section is sensed, the robot 100 changes the driving mode from the right-angled triangle method to the triangular bisector method for corner driving, and drives the corner in the changed driving mode.

여기서, 로봇(100)은 다양한 방식으로 불연속 지점 즉, 코너 구간을 인식하는데, 본 발명의 실시예에서는 수집한 거리 값 중 가장 긴 거리 값을 가지는 위치를 먼저 확인하는 방법과, 수집한 거리 증가 비율에 대한 정보에서 임계 값 이상 증가한 구간의 위치를 확인하는 방법을 포함하여 설명한다. 이때, 본 발명의 실시예에 따른 로봇(100)은 라이다(LiDAR: Light Detection And Ranging) 센서를 사용하여 구조물과의 거리 값을 측정하는 것을 예로 하여 설명하나, 레이더, 깊이 카메라, 다양한 센서들 등을 이용할 수 있으며 반드시 이와 같이 한정되는 것은 아니다. Here, the robot 100 recognizes a discontinuous point, that is, a corner section in various ways. In an embodiment of the present invention, a method of first identifying a position having the longest distance value among the collected distance values, and the collected distance increase ratio It will be described including how to check the position of the section that has increased by more than a threshold value in the information about it. At this time, the robot 100 according to the embodiment of the present invention is described as an example of measuring the distance value to the structure using a LiDAR (Light Detection And Ranging) sensor, but radar, depth camera, and various sensors etc. can be used, but is not necessarily limited thereto.

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

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

도 4에 도시된 바와 같이, 로봇(100)은 버스(120)를 통해 통신하는 프로세서(110), 메모리(130), 센서(140), 인터페이스(150), 저장 장치(160) 그리고 구동 장치(170)를 포함한다. As shown in FIG. 4 , 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) 또는 저장 장치(160)에 저장된 명령을 실행하는 반도체 장치일 수 있다. 프로세서(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 160 . The processor 110 may be configured to execute functions and methods of the robot 100 to be described later.

프로세서(110)는 로봇(100)이 처음 공간을 주행하면 초기 맵을 작성한다. 프로세서(110)가 초기 맵을 작성하는 방법은 이미 알려진 것으로, 본 발명의 실시예에서는 상세한 설명을 생략한다.The processor 110 creates an initial map when the robot 100 first travels in space. A method for the processor 110 to create an initial map is already known, and a detailed description thereof will be omitted in the exemplary embodiment of the present invention.

프로세서(110)는 생성한 초기 맵을 네트워크를 통해 연결된 맵 관리 서버(200)로 전달한다. 여기서, 초기 맵에 매핑된 장애물들의 형상은 실제 장애물들의 형상과 상이하므로, 초기 맵으로 로봇(100)이 주행할 경우 장애물들 또는 구조물들과 충돌할 가능성이 높다. 또한, 로봇(100)이 설치된 공간에서의 요청에 따라 로봇(100)은 로봇 서비스 가이드라인을 기초로 주행해야 한다. The processor 110 transmits the generated initial map to the map management server 200 connected through the network. Here, since the shapes of the obstacles mapped to the initial map are different from the shapes of the actual obstacles, when the robot 100 travels to the initial map, there is a high possibility of colliding with the obstacles or structures. In addition, according to a request in the space in which the robot 100 is installed, the robot 100 must run based on the robot service guidelines.

따라서, 로봇(100)을 관리하는 관리자는 로봇 서비스 가이드라인에 따라 맵 관리 서버(200)에 등록된 초기 맵을 주행 맵으로 갱신한다. 이때, 초기 맵을 주행 맵으로 갱신하는 방법은 이후 상세히 설명한다.Accordingly, the manager who manages the robot 100 updates the initial map registered in the map management server 200 as a driving map according to the robot service guidelines. In this case, a method of updating the initial map to the driving map will be described in detail later.

프로세서(110)는 맵 관리 서버(200)에서 갱신된 주행 맵을 이용하여 공간을 직각 삼각형 방식(이하, '직선 주행 모드' 또는 '제1 주행 모드'라고도 지칭함)주행하면서, 센서(140)를 이용하여 로봇(100)의 주행 방향을 기준으로 각도별로 레이저를 출력하고, 출력된 레이저가 구조물에 반사되어 계산된 거리 값들을 계산한다. The processor 110 uses the driving map updated by the map management server 200 to drive the sensor 140 in a right-angled triangle manner (hereinafter also referred to as 'straight driving mode' or 'first driving mode'). The laser is output for each angle based on the traveling direction of the robot 100 using the , and distance values calculated by reflecting the output laser on the structure are calculated.

여기서 공간은 로봇(100)의 주행 방향의 전면과 로봇(100)의 양측에 구조물이 설치되어 있다고 가정한다. 프로세서(110)가 센서(140)를 통해 각도별로 구조물까지의 거리 값을 계산하는 방법은 이미 알려진 것으로, 본 발명의 실시예에서는 상세한 설명을 생략한다.Here, it is assumed that the structure is installed on both sides of the front side of the robot 100 and the robot 100 in the traveling direction of the space. A method for the processor 110 to calculate the distance value to the structure for each angle through the sensor 140 is already known, and a detailed description thereof will be omitted in the embodiment of the present invention.

그리고 프로세서(110)는 구조물에서 반사되어 측정된 복수의 지점들에 대한 거리 값들 중, 로봇의 주행 방향을 기준으로 왼쪽 방향에서 가장 긴 좌측 거리(DL)와 해당 거리가 측정된 좌측 각도, 오른쪽 방향에서 가장 긴 우측 거리(DR)와 해당 거리가 측정된 우측 각도를 추출한다. And the processor 110 is the longest left distance (D L ) in the left direction based on the driving direction of the robot, among the distance values for a plurality of points reflected from the structure and measured, the left angle at which the distance is measured, the right Extract the longest right distance (D R ) in the direction and the right angle at which the distance was measured.

프로세서(110)는 로봇(100)을 기준으로 이웃한 두 거리의 비율이 미리 설정한 임계값 이상인 지점이 있으면, 해당 지점을 불연속 지점으로 파악한다. 여기서 불연속 지점은 해당 지점에 코너가 형성되어 있음을 의미한다. When there is a point where the ratio of two neighboring distances with respect to the robot 100 is equal to or greater than a preset threshold, the processor 110 identifies the point as a discontinuous point. Here, the discontinuous point means that a corner is formed at the corresponding point.

프로세서(110)는 불연속 지점을 파악하면 직선 주행 모드에서 코너 주행 모드인 삼각형 이등분 코너 인식 방법(이하, '코너 주행 모드'또는 '제2 주행 모드'라고도 지칭함)으로 주행 모드를 변경한다. 그리고 프로세서(110)는 가장 긴 우측 거리와 우측 각도, 가장 긴 좌측 거리와 좌측 각도를 기초로, 로봇(100)이 제어할 회전 각도를 계산한다. When the discontinuous point is identified, the processor 110 changes the driving mode from the straight driving mode to the triangular bisector corner recognition method (hereinafter also referred to as a 'corner driving mode' or a 'second driving mode') that is a corner driving mode. In addition, the processor 110 calculates a rotation angle to be controlled by the robot 100 based on the longest right distance and right angle, and the longest left distance and left angle.

프로세서(110)는 확인한 회전 각도로 로봇(100)이 회전하도록 제어하고, 회전된 각도로 주행한다. 여기서 회전 각도는 가장 긴 우측 거리와 우측 각도, 그리고 가장 긴 좌측 거리와 좌측 각도, 그리고 로봇(100)의 위치를 기준으로 생성된 삼각형에서, 가장 긴 우측 거리와 우측 각도에 해당하는 지점, 그리고 가장 긴 좌측 거리와 좌측 각도에 해당하는 지점 사이의 삼각형 이등분 지점의 좌표를 지나는 목표 경로로 이동하도록 제어하는 각도이다. 프로세서(110)는 계산한 회전 각도가 0에 수렴하도록 구동 장치(170)를 제어한다.The processor 110 controls the robot 100 to rotate at the confirmed rotation angle, and travels at the rotated angle. Here, the rotation angle is the longest right distance and the right angle, the longest left distance and the left angle, and the point corresponding to the longest right distance and the right angle in the triangle generated based on the position of the robot 100, and the most This is the angle that controls the movement to the target path passing through the coordinates of the triangle bisector between the long left distance and the point corresponding to the left angle. The processor 110 controls the driving device 170 so that the calculated rotation angle converges to zero.

한편, 프로세서(110)는 센서(140)가 각도별로 출력한 레이저가 구조물에 반사되어 수신된 반사 신호를 기초로 로봇(100)의 주변 구조물들까지의 거리를 각도별로 산출할 수 있다. 이 경우, 구조물이 벽면과 같이 계속 유지되는 경우라면, 로봇(100)으로부터 구조물까지의 거리는 각도에 따라 일정 패턴으로 길어지거나 짧아진다. On the other hand, the processor 110 may calculate the distance to the surrounding structures of the robot 100 for each angle based on the reflected signal received after the laser output by the sensor 140 for each angle is reflected by the structure. In this case, if the structure is continuously maintained like a wall, the distance from the robot 100 to the structure is lengthened or shortened in a predetermined pattern according to the angle.

그러나, 코너 구간이 있는 경우, 로봇(100)은 코너 구간이 시작되는 구조물의 위치에서 반사된 거리와 전면의 벽면에서 반사된 거리가 일정 패턴이 아닌 급격하게 길어지거나 짧아지는 것을 확인할 수 있다. 이러한 경우, 프로세서(110)는 급격하게 변경된 구간에 코너 구간이 있는 것으로 확인한다.However, when there is a corner section, the robot 100 can confirm that the distance reflected from the location of the structure where the corner section starts and the distance reflected from the front wall are abruptly lengthened or shortened rather than in a predetermined pattern. In this case, the processor 110 determines that there is a corner section in the abruptly changed section.

메모리(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) 등)들에 해당한다. 본 발명의 실시예에서는 센서(140)로 라이다를 이용하는 것을 예로 하여 설명하나, 반드시 이와 같이 한정되는 것은 아니다.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. In the embodiment of the present invention, the use of the lidar as the sensor 140 is described as an example, but the present invention is not necessarily limited thereto.

인터페이스(150)는 맵 관리 서버(200)와 연동하며, 로봇(100)이 생성한 초기 맵을 맵 관리 서버(200)로 전달한다. 또한 인터페이스(150)는 맵 관리 서버(200)로부터 전송되는 주행 맵을 수신하여 프로세서(110)로 전달할 수도 있다.The interface 150 interworks with the map management server 200 , and transfers the initial map generated by the robot 100 to the map management server 200 . Also, the interface 150 may receive the driving map transmitted from the map management server 200 and transmit it to the processor 110 .

저장 장치(160)는 로봇(100)이 주행하는 공간의 초기 맵을 저장할 수 있다. 또한, 저장 장치(160)는 맵 관리 서버(200)에서 갱신된 주행 맵을 저장한다.The storage device 160 may store an initial map of a space in which the robot 100 travels. Also, the storage device 160 stores the driving map updated by the map management server 200 .

구동 장치(170)는 프로세서(110)의 제어에 따라 로봇(100)이 공간 내부에서 주행되도록 한다. The driving device 170 causes the robot 100 to travel in the space under the control of the processor 110 .

이상에서 설명한 로봇(100)이 주행 맵을 이용하여 공간을 주행하면서, 코너를 인식하고 주행하는 방법에 대해 도 5를 참조로 설명한다.A method of recognizing a corner and driving while the robot 100 described above travels in space using the driving map will be described with reference to FIG. 5 .

도 5는 본 발명의 실시예에 따른 주행 방법에 대한 흐름도이다.5 is a flowchart of a driving method according to an embodiment of the present invention.

도 5에 도시된 바와 같이, 로봇(100)은 임의의 공간을 주행하기 위해서는 초기 맵을 작성한다(S100). 초기 맵은 로봇(100)이 해당 공간 전체를 주행하며 생성한 지도로, 초기 맵은 공간 내에서 로봇(100)이 주행 가능한 영역과 주행이 불가능한 영역(예를 들어, 벽면, 기둥 등)으로 구분하여 생성된다. 로봇(100)이 초기 맵을 작성하는 방법은 이미 알려진 것으로, 본 발명의 실시예에서는 상세한 설명을 생략한다.As shown in FIG. 5 , the robot 100 creates an initial map to travel in an arbitrary space ( S100 ). The initial map is a map generated by the robot 100 driving the entire space, and the initial map is divided into an area in which the robot 100 can drive and an area in which the robot 100 cannot drive (eg, a wall, a pillar, etc.) is created by A method for the robot 100 to create an initial map is already known, and a detailed description thereof will be omitted in the embodiment of the present invention.

로봇(100)은 작성한 초기 맵을 맵 관리 서버(200)로 전달한다(S101). 초기 맵을 수신한 맵 관리 서버(200)는 맵 관리자로부터 초기 맵에 반영할 갱신 정보(예를 들어, 로봇 본체 크기, 장애물 또는 구조물의 크기, 장애물 모양, 패딩 값, 경계선 처리 정보 등)를 입력 받는다. 그리고 맵 관리 서버(200)는 초기 맵에 패딩 값을 반영한 주행 맵으로 갱신하여, 로봇(100)에 전달한다(S102, S103). The robot 100 transmits the created initial map to the map management server 200 (S101). The map management server 200 receiving the initial map inputs update information (eg, robot body size, obstacle or structure size, obstacle shape, padding value, boundary line processing information, etc.) to be reflected on the initial map from the map manager. receive And the map management server 200 updates the driving map reflecting the padding value in the initial map, and transmits it to the robot 100 (S102, S103).

로봇(100)은 S103 단계에서 수신한 주행 맵을 기반으로 임의의 공간에서 직선 주행 모드인 직각 삼각형 방식으로 자율 주행을 시작한다(S104). 여기서 임의의 공간은 로봇(100)의 주변에 구조물들이 설치되어 있는 식당과 같은 공간인 것을 예로 하여 설명한다. 그리고 구조물은 식당의 테이블일 수도 있고, 식당 벽면일 수도 있다.The robot 100 starts autonomous driving in a right-angled triangle method, which is a straight-line driving mode, in an arbitrary space based on the driving map received in step S103 (S104). Here, the arbitrary space will be described as an example of a space such as a restaurant in which structures are installed around the robot 100 . And the structure may be a dining room table or a dining room wall.

로봇(100)은 자율 주행하면서, 라이다 센서 등과 같은 센서(140)를 이용하여 레이저를 각도별로 출력한다. 그리고 로봇(100)으로부터 출력된 레이저가 해당 공간의 구조물들에 반사되어 돌아오면, 반사되어 돌아온 시간을 기초로 로봇(100)은 주행 방향을 기준으로, 각도별로 구조물들까지의 거리 값들을 계산한다(S105). The robot 100 outputs lasers for each angle 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 the structures in the space, the robot 100 calculates distance values to the structures for each angle based on the driving direction based on the reflected and returned time (S105).

로봇(100)은 계산한 거리 값들을 기초로 불연속 지점 즉, 코너 구간이 있는지 확인한다(S106). 본 발명의 실시예에서는 코너 구간의 유무 확인 방법으로 두 가지 방법을 예로 하여 설명한다. The robot 100 checks whether there is a discontinuous point, that is, a corner section, based on the calculated distance values (S106). In the embodiment of the present invention, two methods are exemplified as a method for checking the presence or absence of a corner section.

첫 번째 방법은 로봇(100)을 기준으로 우측과 좌측에서 가장 큰 거리 값을 가지는 두 개의 거리를 확인하고, 확인한 거리 대비 임계값 이하로 짧은 좌측 거리 또는 우측 거리가 있을 경우 해당 구간에 코너 구간이 있는 것으로 판단하는 방법이다. 그리고 두 번째 방법은 로봇(100)의 센서(140)를 기준으로 좌우 180도 각도(또는 360도 각도)로 거리 값을 먼저 수집하고, 두 거리 값 사이의 비율이 미리 설정한 임계값 이상으로 변경되는 구간에 코너 구간이 있는 것으로 판단하는 방법이다. The first method checks the two distances having the largest distance values from the right and left sides with respect to the robot 100, and if there is a short left or right distance below the threshold value compared to the checked distance, a corner section is located in the corresponding section. A way to judge that there is. And in the second method, the distance value is first collected at an angle of 180 degrees (or 360 degrees) left and right based on the sensor 140 of the robot 100, and the ratio between the two distance values is changed to be greater than or equal to a preset threshold This is a method of judging that there is a corner section in the section being used.

본 발명의 실시예에서는 이러한 실시예를 들어 코너 구간의 유무를 파악하는 방법을 설명하나, 반드시 이와 같이 한정되는 것은 아니다.In the exemplary embodiment of the present invention, a method of determining the presence or absence of a corner section will be described using this exemplary embodiment, but the present invention is not limited thereto.

로봇(100)은 거리 값들을 기초로 불연속 지점인 코너 구간이 존재하는지 확인하고(S107), 코너 구간이 없을 경우에는 S104 단계 이후에 절차를 반복 실행한다. 그러나, 코너 구간이 있을 경우, 로봇(100)은 주행 모드를 직선 주행 모드에서 코너주행 모드로 변경하고(S108), 코너 주행 모드로 코너 구간을 빠져나갈 때까지 주행한다(S109).The robot 100 checks whether a corner section, which is a discontinuous point, exists based on the distance values (S107), and if there is no corner section, repeats the procedure after step S104. However, if there is a corner section, the robot 100 changes the driving mode from the straight driving mode to the corner driving mode (S108), and drives until it exits the corner section in the corner driving mode (S109).

상술한 절차 중, S106 단계에서 로봇(100)이 불연속 지점을 확인하는 방법에 대해 도 6을 참조로 설명한다.Among the above procedures, a method for the robot 100 to check the discontinuous point in step S106 will be described with reference to FIG. 6 .

도 6은 본 발명의 실시예에 따른 코너 지점 확인 방법에 대한 흐름도이다.6 is a flowchart of a method for checking a corner point according to an embodiment of the present invention.

도 6에 도시된 바와 같이, 로봇(100)은 주행 방향을 기준으로 모든 방향의 거리 값과 각도를 계산한 후(S200), 인접하여 측정된 거리들의 비율을 각각 계산한다(S201). 즉, 로봇(100)은 두 거리 값을 나눈 값으로 거리들의 비율을 계산한다.As shown in FIG. 6 , the robot 100 calculates the distance values and angles in all directions based on the driving direction ( S200 ), and then calculates the ratio of the adjacently measured distances ( S201 ). That is, the robot 100 calculates the ratio of the distances by dividing the two distance values.

로봇(100)은 S201 단계에서 계산한 값들 중 임계값 이상을 가지는 값이 있는지 확인한다. 그리고 로봇(100)은 임계값 이상의 값을 가지는 인접 거리 값이 측정된 지점을 불연속 지점인 코너로 인식한다(S202).The robot 100 checks whether there is a value having a threshold value or more among the values calculated in step S201. Then, the robot 100 recognizes a point at which an adjacent distance value having a value greater than or equal to the threshold value is measured as a corner that is a discontinuous point (S202).

로봇(100)은 모든 방향의 거리 값들 중 가장 긴 우측 거리(또는, '우측 최대 거리'라 지칭함)와 해당 거리가 측정된 우측 좌표, 가장 긴 좌측 거리(또는, '좌측 최대 거리'라 지칭함)와 해당 거리가 측정된 좌측 좌표를 기초로 회전 각도를 계산한다(S203). 그리고, 해당 회전 각도가 0에 수렴하도록 제어하면서 주행을 이어간다(S204).The robot 100 measures the longest right distance (or, referred to as 'right maximum distance') among distance values in all directions, the right coordinate at which the distance is measured, and the longest left distance (or referred to as 'left maximum distance') and a rotation angle is calculated based on the left coordinate at which the distance is measured (S203). Then, the driving continues while controlling the rotation angle to converge to 0 (S204).

다음은 로봇(100)이 코너를 인식하여 코너 주행 방식으로 주행하는 예에 대해 도 7을 참고로 설명한다. 본 발명의 실시예에서는 좌회전 직각 코너를 인식하여 목표 경로를 설정하는 실시예를 들어 설명한다.Next, an example in which the robot 100 recognizes a corner and drives in a corner driving method will be described with reference to FIG. 7 . In an embodiment of the present invention, an embodiment in which a target path is set by recognizing a left-turn right-angle corner will be described.

도 7은 본 발명의 실시예에 따른 좌회전 코너를 인식하여 목표 경로를 설정한 예시도이다.7 is an exemplary view in which a target path is set by recognizing a left turn corner according to an embodiment of the present invention.

도 7에 도시된 바와 같이, 로봇(100)은 전면에 설치된 센서인 라이더를 이용하여 공간의 구조물을 스캔하고, 스캔 데이터 중 로봇(100)의 주행 방향인 정면 방향을 기준으로 좌측과 우측에서 거리가 가장 긴 좌측 기준 거리(DL)와 가장 긴 우측 기준 거리(DR)를 확인한다. As shown in FIG. 7 , the robot 100 scans a structure in space using a lidar, a sensor installed in the front, and distances from the left and right based on the front direction, which is the running direction of the robot 100, among the scan data. Checks the longest left reference distance (D L ) and the longest right reference distance (D R ).

로봇(100)이 주행중인 공간에 코너가 존재한다면, 좌측 기준 거리(DL) 또는 우측 기준 거리(DR)는 바로 이웃한 지점의 거리와 비교하였을 때, 큰 차이를 나타내는 불연속 지점이 발생한다. If a corner exists in the space in which the robot 100 is traveling, a discontinuous point indicating a large difference between the left reference distance D L or the right reference distance D R is compared with the distance of the immediately adjacent point. .

도 7에서는 좌측 기준 거리(DL)의 왼쪽에 위치한 코너에서 불연속 지점이 발생하며, 불연속 지점까지의 불연속 지점 거리를 DD로 나타낸다. 본 발명에서는 좌측 기준 거리(DL)과 불연속 지점 거리의 비율(DL/DD)이 2보다 크면 불연속으로 정의하여 코너로 인식하도록 설정하였다. In FIG. 7 , a discontinuous point occurs at a corner located on the left of the left reference distance D L , and the distance of the discontinuous point to the discontinuous point is denoted by D D . In the present invention, if the ratio (D L /D D ) of the left reference distance (D L ) and the distance to the discontinuous point is greater than 2, it is defined as discontinuous and recognized as a corner.

여기서, 좌측 기준 거리(DL)과 불연속 지점 거리(DD)의 비율(DL/DD)이 커지면 로봇(100)이 불연속 지점에 더 가까운 지점에서 코너 구간을 인식한다. 마찬가지로, 비율이 작아지면 불연속 지점으로부터 더 멀리 떨어진 지점에서 코너 구간을 인식할 수 있다. Here, when the ratio (D L /D D ) of the left reference distance (D L ) and the distance to the discontinuous point (D D ) increases, the robot 100 recognizes a corner section at a point closer to the discontinuous point. Similarly, when the ratio is small, a corner section can be recognized at a point further away from the discontinuity point.

이를 통해 로봇(100)은 코너 구간에 진입하기 전에 불연속 지점의 유무를 확인하여 코너 구간을 인식하고, 주행 방식을 기존 직각 삼각형 방식인 직선 주행 모드에서 삼각형 이등분 방식인 코너 주행 모드로 모드를 전환한다. 로봇(100)은 코너 주행 모드로 코너 구간을 주행하며, 구조물 또는 장애물들에 의해 주행 폭이 좁은 곳에서도 충돌 없이 안정적으로 주행할 수 있다. Through this, the robot 100 recognizes the corner section by checking the presence or absence of discontinuous points before entering the corner section, and switches the driving mode from the straight-line driving mode, which is the existing right-angled triangle method, to the corner driving mode, which is the triangular bisector method. . The robot 100 travels in a corner section in a corner driving mode, and can travel stably without collision even in a place where the driving width is narrow due to structures or obstacles.

여기서, 로봇(100)은 좌측 기준 거리(DL)와 좌측 각도(θL), 우측 기준 거리(DR)와 우측 각도(θR)를 다음 수학식 4와 수학식 5를 이용하여 좌표 데이터로 획득할 수 있다. Here, the robot 100 calculates the left reference distance (D L ) and the left angle (θ L ), the right reference distance (DR ) and the right angle (θ R ) using the following Equations 4 and 5 to coordinate data can be obtained with

Figure 112020103956819-pat00004
Figure 112020103956819-pat00004

Figure 112020103956819-pat00005
Figure 112020103956819-pat00005

여기서, θL은 로봇(100)을 기준으로 좌측 기준 거리(DL)까지의 각도를 나타내고, θR은 로봇(100)을 기준으로 우측 기준 거리(DR)까지의 각도를 나타낸다.Here, θ L represents an angle to the left reference distance D L with respect to the robot 100 , and θ R represents an angle to the right reference distance D R from the robot 100 .

로봇(100)은 제1 지점의 좌표와 제2 지점의 좌표를 확인하면, 제1 지점의 좌표와 제2 지점의 좌표, 그리고 로봇(100)의 좌표를 각각 꼭지점으로 하는 삼각형을 확인할 수 있다. 그리고 로봇(100)의 좌표를 기준으로 삼각형 이등분 지점의 좌표(

Figure 112020103956819-pat00006
)를 확인한다.When the robot 100 checks the coordinates of the first point and the coordinates of the second point, the robot 100 may identify a triangle having the coordinates of the first point, the coordinates of the second point, and the coordinates of the robot 100 as vertices, respectively. And based on the coordinates of the robot 100, the coordinates of the bisector of the triangle (
Figure 112020103956819-pat00006
) is checked.

로봇(100)은 삼각형 이등분 지점의 좌표로 목표 경로를 설정하는데, 이때 기존 주행 좌표와 설정한 목표 경로의 회전 각도(θe) 오차는 다음 수학식 6으로 구한다.The robot 100 sets the target path with the coordinates of the triangular bisector point. At this time, the error of the rotation angle θ e between the existing driving coordinates and the set target path is obtained by Equation 6 below.

Figure 112020103956819-pat00007
Figure 112020103956819-pat00007

여기서, α는 로봇(100)의 특성(예를 들어, 감속 속도, 최대 속도, 가속도 등) 차이에 따른 가중치를 의미한다. 로봇(100)의 특성의 차이마다 수학식 6을 통해 계산된 회전 각도를 보정하는 가중치이다.Here, α denotes a weight according to a difference in characteristics (eg, deceleration speed, maximum speed, acceleration, etc.) of the robot 100 . It is a weight for correcting the rotation angle calculated through Equation 6 for each difference in the characteristics of the robot 100 .

이와 같이 회전 각도(θe) 오차를 계산한 후, 로봇(100)은 회전 각도(θe)가 0에 수렴하도록 회전하면서 주행하면, 삼각형 이등분 지점의 좌표(

Figure 112020103956819-pat00008
)를 지나는 목표 경로를 따라 이동하게 된다. 이를, 로봇(100)이 코너에 진입하기 전에 코너를 인식할 수 있고, 로봇(100)의 주행 방향의 정면 벽을 기준으로 목표 경로를 설정할 수 있으므로, 장애물 또는 구조물과의 충돌 없이 코너 구간을 통과할 수 있다.After calculating the rotation angle (θ e ) error in this way, when the robot 100 travels while rotating so that the rotation angle (θ e ) converges to 0, the coordinates (
Figure 112020103956819-pat00008
) along the target path passing through In this way, the robot 100 can recognize the corner before entering the corner, and set the target path based on the front wall in the driving direction of the robot 100, so that it passes through the corner section without colliding with obstacles or structures. can do.

다음은 본 발명의 또 다른 실시예에 따라 불연속 구간인 코너 구간을 인식하는 예에 대해 도 8을 참조로 설명한다.Next, an example of recognizing a corner section that is a discontinuous section according to another embodiment of the present invention will be described with reference to FIG. 8 .

도 8은 본 발명의 또 다른 실시예에 따른 좌회전 코너를 인식하기 위한 예시도이다.8 is an exemplary view for recognizing a left turn corner according to another embodiment of the present invention.

도 8에 도시된 바와 같이, 로봇(100)은 센서(140)를 통해 좌우 180도 각도 중 미리 설정한 각도별로 구조물까지의 거리를 확인할 수 있다. 구조물까지의 거리와 각도를 확인하면, 로봇(100)은 구조물의 거리에 해당하는 좌표도 확인할 수 있다.As shown in FIG. 8 , the robot 100 may check the distance to the structure for each preset angle among the left and right 180 degrees through the sensor 140 . When the distance and angle to the structure are checked, the robot 100 may also check the coordinates corresponding to the distance of the structure.

이때, 로봇 주행 방향에 해당하는 각도(90도)에서 센서(140)는 로봇(100)의 좌측은 0도로, 우측은 180도로 설정하는 것을 예로 하여 설명한다. 그리고 5도 각도로 구조물까지의 거리를 측정하는 것을 예로 하여 설명하나, 각도와 방향이 반드시 이와 같이 한정되는 것은 아니다.At this time, at an angle (90 degrees) corresponding to the robot traveling direction, the sensor 140 is set to 0 degrees to the left of the robot 100 and 180 degrees to the right of the robot 100 as an example. In addition, although measuring the distance to the structure at an angle of 5 degrees is described as an example, the angle and direction are not necessarily limited as such.

이때, 로봇(100)은 35도 각도에서 측정한 구조물까지의 거리와 40도 각도에서 측정한 구조물까지의 거리가 다른 인접 각도에서 측정된 거리 사이의 증가율 또는 감소율에 비해 급격하게 늘어난 것을 알 수 있다. 따라서, 로봇(100)은 35도 구간을 불연속 지점으로 판단하고, 해당 구간부터 코너 구간이 시작되는 것으로 판단할 수 있다.At this time, the robot 100 can see that the distance to the structure measured at an angle of 35 degrees and the distance to the structure measured at an angle of 40 degrees increased rapidly compared to the rate of increase or decrease between the distances measured at other adjacent angles. . Accordingly, the robot 100 may determine the 35 degree section as a discontinuous point, and determine that the corner section starts from the section.

다음은 로봇(100)이 최초 생성한 초기 맵, 초기 맵에 갱신 정보가 반영되는 과정과 이를 통해 생성된 주행 맵에 대해 도 9 내지 도 13을 참조로 설명한다.Next, an initial map initially generated by the robot 100, a process in which updated information is reflected in the initial map, and a driving map generated through the initial map will be described with reference to FIGS. 9 to 13 .

도 9는 본 발명의 실시예에 따라 로봇이 생성한 초기 맵의 예시도이다. 9 is an exemplary diagram of an initial map generated by a robot according to an embodiment of the present invention.

식당에서 로봇(100)이 초기 주행을 통해 작성한 초기 맵은 도 9에 도시된 바와 같다. 도 9는 라이다를 탑재한 로봇(100)이 식당을 주행하며 생성한 초기 맵이다. An initial map created by the robot 100 through initial driving in a restaurant is shown in FIG. 9 . 9 is an initial map generated by a robot 100 equipped with a lidar while driving a restaurant.

검은색으로 표현된 부분이 로봇(100)의 주행 불가 공간으로, 대부분 테이블 및 의자와 같이 장애물이 놓인 영역에 해당한다. 초기 맵으로 매핑된 공간의 테이블 간격은 약 110cm 정도로 보편적으로 로봇(100)이 많이 투입되는 공간보다 주행 공간이 협소하다. A portion expressed in black is a non-drivable space of the robot 100 , and most of it corresponds to an area where obstacles such as tables and chairs are placed. The table interval of the space mapped with the initial map is about 110 cm, so the driving space is narrower than the space where the robot 100 is generally put in a lot.

따라서, 초기 맵을 수신한 맵 관리 서버(200)는 맵 관리자에 의해 입력되는 갱신 정보를 기초로 초기 맵을 주행 맵으로 갱신한다.Accordingly, the map management server 200 receiving the initial map updates the initial map as a driving map based on the update information input by the map manager.

현재 국내 식당에서 자율주행 서비스를 제공하고 있는 서빙 로봇의 보편적인 주행 가이드 라인에 따르면, 식당 내에 설치되는 테이블의 간격은 최소 2m 이상 거리를 두도록 권장되고 있다. 이는, 식당에 혼잡한 상황이 발생하면 사고를 방지하고 안정적으로 로봇이 운용되도록 하기 위한 가이드라인이다. 그러나, 테이블 간격은 식당의 매출과 직결되는 부분이므로, 가이드라인 준수 시 로봇의 자율주행 서비스에 대한 선호도가 저하될 수 있다. According to the universal driving guidelines for serving robots that are currently providing autonomous driving services in Korean restaurants, it is recommended that tables installed in restaurants be at least 2m apart. This is a guideline for preventing accidents and stably operating the robot when a crowded situation occurs in the restaurant. However, since the table spacing is a part directly related to a restaurant's sales, preference for autonomous driving services of robots may decrease when guidelines are observed.

따라서, 맵 관리자는 갱신 정보를 이용하여, 식당과 같이 공간에 제약사항이 많고 로봇(100)의 주변에 장애물이 많은 경우, 로봇(100)이 가이드라인을 준수하여 주행할 수 있도록 초기 맵을 갱신할 수 있다. 이에 대해 도 10 내지 도 12를 참조로 설명한다.Accordingly, the map manager uses the update information to update the initial map so that the robot 100 can drive in compliance with the guidelines when there are many restrictions in space such as a restaurant and there are many obstacles around the robot 100 . can do. This will be described with reference to FIGS. 10 to 12 .

도 10은 본 발명의 제1 실시예에 따라 초기 맵에 반영될 갱신 정보의 예시도이다. 그리고 도 11은 본 발명의 제2 실시예에 따라 초기 맵에 반영될 갱신 정보의 예시도이며, 도 12는 본 발명의 제3 실시예에 따라 초기 맵에 반영될 갱신 정보의 예시도이다.10 is an exemplary diagram of update information to be reflected in an initial map according to the first embodiment of the present invention. 11 is an exemplary diagram of update information to be reflected in an initial map according to a second embodiment of the present invention, and FIG. 12 is an exemplary diagram of update information to be reflected in an initial map according to a third embodiment of the present invention.

갱신 정보에는 로봇(100) 본체의 크기, 벽을 포함한 장애물 크기, 장애물의 모양 보정, 접근 위험 지역에 대한 경계선 처리 정보 등이 있다. 본 발명의 실시예예서는 식당에서 로봇(100)이 주행하기 위하여, 테이블 간격이 1m 이하가 되도록 초기 맵을 주행 맵으로 갱신하는 것을 예로 하여 설명한다.The updated information includes the size of the robot 100 body, the size of obstacles including walls, correction of the shape of the obstacles, and boundary line processing information for the approach risk area. In the embodiment of the present invention, in order for the robot 100 to travel in a restaurant, an example of updating the initial map to a driving map so that the table interval is 1 m or less will be described.

로봇(100)이 작성한 초기 맵에서 1차적으로 서빙 경로를 제외하고 로봇 관리자는 주행 경계선을 작성한다. 이때 주행 경계선에 대한 검토로 테이블에 셋팅된 의자 주변 범위를 기준에 포함시킨다. In the initial map created by the robot 100, the robot manager creates a driving boundary line except for the serving route. At this time, the range around the chair set on the table is included in the standard by examining the driving boundary.

즉, 도 10에 도시된 바와 같이, 맵 관리자는 제1 표시 수단(①)으로 표시한 바와 같이 테이블 주변을 경계 처리한다. 제1 표시 수단과 같이 경계 처리를 하면, 로봇(100)은 테이블과 테이블 사이에서는 주행할 수 없게 된다.That is, as shown in Fig. 10, the map manager performs boundary processing around the table periphery as indicated by the first display means (①). When boundary processing is performed like the first display means, the robot 100 cannot run between the table and the table.

이때, 테이블 다리가 테이블 상판 각 모서리가 아니라 가운데만 있거나 위치가 다르더라도, 항상 테이블의 상판의 경계를 기준으로 경계 처리를 수행하는 것을 예로 하여 설명한다. 이는 라이다 특성 상 테이블 다리 감지가 어렵기 때문에, 상판과 충돌 위험을 방지하기 위해 상판의 경계를 기준으로 경계 처리를 수행하는 것이다.At this time, even if the table legs are located only in the middle rather than at each corner of the table top, or in different positions, it will be described as an example that boundary processing is always performed based on the boundary of the table top. Since it is difficult to detect table legs due to the characteristics of lidar, boundary processing is performed based on the boundary of the upper plate to prevent the risk of collision with the upper plate.

또한, 도 11에 도시된 바와 같이 로봇(100)이 협소한 공간에서 주행하기 위해 의자가 있는 공간을 지나가는 경우, 제2 표시 수단(②)으로 표시한 바와 같이 의자의 폭을 중심으로 경계선을 설정한다.In addition, as shown in FIG. 11 , when the robot 100 passes a space with a chair to travel in a narrow space, a boundary line is set centered on the width of the chair as indicated by the second display means (②). do.

이 외에도, 도 12에 도시된 바와 같이, 식당에서 원형 테이블을 사용하는 경우, 원형 테이블 특성 상 의자를 어떤 방향에서도 모두 배치할 수 있다. 따라서, 맵 관리자는 원형 테이블의 지름을 중심으로 사각화 하고 의자 폭을 중심으로 더 큰 사각형으로 경계 처리를 한다. 이를 토대로, 로봇(100)이 안정적으로 서빙 서비스를 제공할 수 있다.In addition to this, as shown in FIG. 12 , when a round table is used in a restaurant, the chairs can be arranged in any direction due to the characteristics of the round table. Therefore, the map manager makes a square based on the diameter of the round table and borders it with a larger square around the width of the chair. Based on this, the robot 100 can stably provide a serving service.

상기에서 설명한 갱신 정보를 초기 맵에 반영하여 생성한 주행 맵에 대해 도 13을 참조로 설명한다.A driving map generated by reflecting the above-described updated information on an initial map will be described with reference to FIG. 13 .

도 13은 본 발명의 실시예에 따른 주행 맵의 예시도이다.13 is an exemplary diagram of a driving map according to an embodiment of the present invention.

도 13에 도시된 바와 같이, 테이블 간격이 약 1m 정도의 협소한 공간에서도 테이블 사이의 주행이 불가능하도록 경계 처리(③)되었기 때문에, 로봇(100)은 안정적으로 서빙을 제공할 수 있다. 그리고 진입 경로에 사람이 있을 경우, 로봇(100)은 안정적으로 회피 경로도 설정할 수 있다. As shown in FIG. 13, since the boundary treatment (③) has been made so that traveling between tables is impossible even in a narrow space with a table interval of about 1 m, the robot 100 can stably provide serving. And when there is a person in the entry path, the robot 100 can also stably set the avoidance path.

이때 식당 내에 유리, 거울, 금속 등 라이다 센서 데이터를 방해하는 요소에도 경계선을 처리하여 주행을 안정적으로 수행할 수 있도록 지원한다.At this time, the boundary line is also processed for elements that interfere with the lidar sensor data such as glass, mirrors, and metal in the restaurant to support stable driving.

그리고, 본 발명의 실시예에서는 맵 관리자가 로봇(100)의 크기를 실제 크기보다 크게 설정함으로써, 의자가 움직일 수 있는 범위 내에서 식당 내 고객에 대한 접근 거리를 조절할 수 있다.And, in an embodiment of the present invention, by setting the size of the robot 100 to be larger than the actual size, the map manager can adjust the approach distance to the customer in the restaurant within the range in which the chair can move.

이상에서 본 발명의 실시예에 대하여 상세하게 설명하였지만 본 발명의 권리범위는 이에 한정되는 것은 아니고 다음의 청구범위에서 정의하고 있는 본 발명의 기본 개념을 이용한 당업자의 여러 변형 및 개량 형태 또한 본 발명의 권리범위에 속하는 것이다.Although the embodiments of the present invention have been described in detail above, the scope of the present invention is not limited thereto. is within the scope of the right.

Claims (20)

로봇의 주행 방법으로서,
제1 주행 모드에서, 라이다를 통해 주변 구조물까지의 거리들을 각도별로 측정하면서, 상기 주변 구조물을 근사화하여 생성한 벽면을 따라 주행하는 단계,
상기 주변 구조물까지의 각도별 거리들을 토대로, 불연속 지점이 있는지 확인하는 단계, 그리고
상기 불연속 지점이 있으면 상기 제1 주행 모드에서 제2 주행 모드로 변경하고, 상기 라이다를 통해 수집한 각도별 거리들을 기초로 계산한 회전 각도로 회전 주행하면서, 상기 회전 각도가 0이 될 때까지 상기 제2 주행 모드로 주행하는 단계
를 포함하고,
상기 회전 각도는 상기 로봇을 제어하는 각도를 상기 로봇의 속도에 따른 가중치를 기초로 보정한 각도이고, 상기 로봇을 제어하는 각도는 상기 로봇의 주행 방향을 기준으로 측정한 우측 최대 거리의 좌표와 좌측 최대 거리의 좌표 사이의 중간 지점의 좌표로 상기 로봇이 향하도록 하는 계산된 각도인, 주행 방법.
As a driving method of a robot,
In the first driving mode, while measuring the distances to the surrounding structures by angles through the lidar, driving along the wall surface generated by approximating the surrounding structures;
Checking whether there is a discontinuous point based on the distances for each angle to the surrounding structures, and
If there is the discontinuous point, the first driving mode is changed to the second driving mode, and while rotating at a rotation angle calculated based on the distances for each angle collected through the lidar, until the rotation angle becomes 0 driving in the second driving mode
including,
The rotation angle is an angle obtained by correcting an angle for controlling the robot based on a weight according to the speed of the robot. The calculated angle at which the robot is directed to the coordinates of the midpoint between the coordinates of the maximum distance.
제1항에 있어서,
상기 벽면을 따라 주행하는 단계는,
상기 주변 구조물에 상기 라이다에서 출력된 레이저가 각도별로 반사된 각 지점의 좌표들을 하나의 직선으로 근사화하여 상기 벽면으로 생성하는, 주행 방법.
According to claim 1,
The step of running along the wall is,
A driving method for generating the wall surface by approximating the coordinates of each point reflected by the angle of the laser output from the lidar to the surrounding structure as a single straight line.
제2항에 있어서,
상기 벽면을 따라 주행하는 단계는,
지면에서부터 상기 라이다의 높이까지의 변과 상기 벽면 사이의 면적 오차를 계산하는 단계, 그리고
상기 면적 오차가 0으로 수렴하도록 상기 벽면과의 거리와 각도를 유지하며 상기 벽면을 따라 주행하는 단계
를 포함하는, 주행 방법.
3. The method of claim 2,
The step of running along the wall is,
Calculating an area error between a side from the ground to the height of the lidar and the wall surface, and
Driving along the wall while maintaining the distance and angle with the wall so that the area error converges to 0
A driving method comprising:
제1항에 있어서,
상기 불연속 지점이 있는지 확인하는 단계는,
상기 로봇의 주행 방향을 기준으로 우측에서 측정된 각도별 우측 거리들 중에서 상기 우측 최대 거리를 확인하고, 상기 우측 최대 거리 대비 임계값 이하로 짧은 우측 거리가 존재하면, 상기 로봇의 주행 방향의 우측에 코너 구간이 있다고 판단하는 단계, 그리고
상기 로봇의 주행 방향을 기준으로 좌측에서 측정된 각도별 좌측 거리들 중에서 상기 좌측 최대 거리를 확인하고, 상기 좌측 최대 거리 대비 임계값 이하로 짧은 좌측 거리가 존재하면, 상기 로봇의 주행 방향의 좌측에 코너 구간이 있다고 판단하는 단계
를 포함하는, 주행 방법.
According to claim 1,
The step of checking whether there is a discontinuous point is,
Check the right maximum distance among the right distances for each angle measured from the right side based on the traveling direction of the robot, and if there is a short right distance below the threshold value compared to the right maximum distance, the right side of the robot traveling direction determining that there is a corner section, and
Check the left maximum distance from among the left distances for each angle measured from the left side based on the driving direction of the robot, and if there is a short left distance below the threshold value compared to the left maximum distance, the left side of the robot traveling direction is Step to determine that there is a corner section
A driving method comprising:
제4항에 있어서,
상기 제2 주행 모드로 주행하는 단계는,
상기 우측 최대 거리와 상기 우측 최대 거리가 측정된 우측 각도를 상기 우측 최대 거리의 좌표로 확인하는 단계,
상기 좌측 최대 거리와 상기 좌측 최대 거리가 측정된 좌측 각도를 상기 좌측 최대 거리의 좌표로 확인하는 단계, 그리고
상기 우측 최대 거리의 좌표와 상기 좌측 최대 거리의 좌표 사이에 생성된 변에서 이등분 지점인 상기 중간 지점의 좌표를 지나도록 상기 회전 각도를 계산하는 단계
를 포함하고,
상기 회전 각도는 상기 불연속 지점을 통과할 때까지 상기 라이다를 통해 수집한 상기 각도별 거리를 기초로 갱신되는, 주행 방법.
5. The method of claim 4,
The step of driving in the second driving mode includes:
checking the right angle at which the right maximum distance and the right maximum distance are measured as the coordinates of the right maximum distance;
Confirming the left angle at which the left maximum distance and the left maximum distance are measured as the coordinates of the left maximum distance; and
calculating the rotation angle to pass through the coordinates of the intermediate point, which is a bisector point on a side generated between the coordinates of the right maximum distance and the coordinates of the left maximum distance
including,
The driving method, wherein the rotation angle is updated based on the distance for each angle collected through the lidar until passing the discontinuous point.
제1항에 있어서,
상기 제2 주행 모드로 주행하는 단계 이후에,
상기 회전 각도가 0에 수렴하도록 회전 주행하면서 상기 불연속 지점을 통과하면, 주행 모드를 변경하여 불연속 지점을 통과한 위치의 주변 구조물을 근사화하여 생성한 새로운 벽면을 따라 주행하는 단계
를 더 포함하는, 주행 방법.
According to claim 1,
After the step of driving in the second driving mode,
When passing the discontinuous point while rotating so that the rotation angle converges to 0, changing the driving mode and driving along a new wall surface generated by approximating the surrounding structures at the position passing the discontinuous point
Further comprising, a driving method.
로봇의 주행 방법으로서,
주변 구조물들까지의 거리를 측정하면서 주행하는 단계,
주행 방향의 우측에서 측정된 각도별 우측 거리들 중에서 가장 긴 우측 거리를 확인하고, 상기 가장 긴 우측 거리 대비 임계값 이하로 짧은 우측 거리가 존재하면, 상기 주행 방향의 우측에 코너 구간이 있다고 판단하는 단계,
상기 주행 방향의 좌측에서 측정된 각도별 좌측 거리들 중에서 가장 긴 좌측 거리를 확인하고, 상기 가장 긴 좌측 거리 대비 임계값 이하로 짧은 좌측 거리가 존재하면, 상기 주행 방향의 좌측에 코너 구간이 있다고 판단하는 단계, 그리고
상기 우측의 코너 구간 또는 상기 좌측의 코너 구간의 방향으로 회전 각도를 변경하면서 진입한 코너 구간을 통과하는 단계
를 포함하고,
상기 회전 각도는 상기 로봇을 제어하는 각도를 상기 로봇의 속도에 따른 가중치를 기초로 보정한 각도이고, 상기 로봇을 제어하는 각도는 상기 로봇의 주행 방향을 기준으로 측정한 우측 최대 거리의 좌표와 좌측 최대 거리의 좌표 사이의 중간 지점의 좌표로 상기 로봇이 향하도록 하는 계산된 각도인, 주행 방법.
As a driving method of a robot,
Driving while measuring the distance to surrounding structures,
Checking the longest right distance among the right distances for each angle measured in the right side of the driving direction, and determining that there is a corner section on the right side of the driving direction if there is a short right distance below the threshold value compared to the longest right distance step,
Check the longest left distance among the left distances for each angle measured in the left side of the driving direction, and if there is a short left distance equal to or less than a threshold value compared to the longest left distance, it is determined that there is a corner section on the left side of the driving direction step, and
passing the entered corner section while changing the rotation angle in the direction of the right corner section or the left corner section
including,
The rotation angle is an angle obtained by correcting an angle for controlling the robot based on a weight according to the speed of the robot. The calculated angle at which the robot is directed to the coordinates of the midpoint between the coordinates of the maximum distance.
제7항에 있어서,
상기 우측에 코너 구간이 있다고 판단하는 단계는,
상기 가장 긴 우측 거리와 상기 가장 긴 우측 거리가 측정된 각도를 기초로, 상기 가장 긴 우측 거리가 측정된 구조물의 위치를 확인하는 단계
를 포함하는, 주행 방법.
8. The method of claim 7,
The step of determining that there is a corner section on the right side,
Based on the angle at which the longest right distance and the longest right distance are measured, confirming the location of the structure in which the longest right distance is measured
A driving method comprising:
제8항에 있어서,
상기 좌측에 코너 구간이 있다고 판단하는 단계는,
상기 가장 긴 좌측 거리와 상기 가장 긴 좌측 거리가 측정된 각도를 기초로, 상기 가장 긴 좌측 거리가 측정된 구조물의 위치를 확인하는 단계
를 포함하는, 주행 방법.
9. The method of claim 8,
The step of determining that there is a corner section on the left side,
Based on the angle at which the longest left distance and the longest left distance are measured, confirming the location of the structure in which the longest left distance is measured
A driving method comprising:
제9항에 있어서,
상기 코너 구간을 통과하는 단계는,
상기 우측 거리가 측정된 구조물의 각도와 상기 좌측 거리가 측정된 구조물의 각도, 그리고 상기 로봇의 위치를 기초로 상기 로봇의 주행 방향을 기준으로 회전 각도를 계산하는 단계
를 포함하는, 주행 방법.
10. The method of claim 9,
The step of passing the corner section is,
Calculating a rotation angle based on the traveling direction of the robot based on the angle of the structure in which the right distance is measured, the angle of the structure in which the left distance is measured, and the position of the robot
A driving method comprising:
삭제delete 제10항에 있어서,
상기 코너 구간을 통과하는 단계는,
주행 목표 위치까지의 각도를 상기 가장 긴 우측 거리가 측정된 구조물의 위치와 상기 가장 긴 좌측 거리가 측정된 구조물의 위치를 기초로 계산하는 단계
를 더 포함하는, 주행 방법.
11. The method of claim 10,
The step of passing the corner section is,
Calculating the angle to the driving target position based on the position of the structure in which the longest right distance is measured and the position of the structure in which the longest left distance is measured
Further comprising, a driving method.
제12항에 있어서,
상기 코너 구간을 통과하는 단계는,
상기 임계값 이하의 짧은 우측 거리 또는 짧은 좌측 거리가 존재하지 않으면, 상기 구조물들까지의 거리를 토대로 상기 각도별로 구조물들의 복수의 좌표들을 구하는 단계,
상기 복수의 좌표들을 직선으로 근사화하여 근사 벽면을 생성하는 단계, 그리고
상기 근사 벽면과 일정 거리 떨어진 위치에서 상기 근사 벽면과 평행하게 주행하도록 주행 경로를 생성하여 주행하는 단계
를 포함하는, 주행 방법.
13. The method of claim 12,
The step of passing the corner section is,
If there is no short right distance or short left distance below the threshold, obtaining a plurality of coordinates of the structures for each angle based on the distance to the structures;
generating an approximate wall surface by approximating the plurality of coordinates with a straight line; and
generating and driving a driving route so as to run parallel to the approximate wall surface at a location separated from the approximate wall surface by a predetermined distance;
A driving method comprising:
제7항에 있어서,
상기 주행하는 단계 이전에는,
상기 구조물들이 설치된 공간을 주행하며 초기 맵을 생성하는 단계, 그리고
상기 로봇과 연동한 서버로 상기 초기 맵을 전송하고, 상기 서버로부터 상기 초기 맵에 갱신 정보가 반영된 주행 맵을 수신하는 단계
를 포함하고,
상기 갱신 정보는, 상기 로봇의 크기, 상기 구조물의 크기, 상기 구조물의 모양, 그리고 복수의 구조물들이 하나의 구조물로 묶여 처리된 경계선 처리 정보를 포함하는, 주행 방법.
8. The method of claim 7,
Before the driving step,
generating an initial map while driving the space in which the structures are installed; and
transmitting the initial map to a server interworking with the robot, and receiving a driving map in which update information is reflected in the initial map from the server
including,
The update information includes the size of the robot, the size of the structure, the shape of the structure, and boundary line processing information in which a plurality of structures are grouped into one structure and processed.
제14항에 있어서,
상기 주행 맵을 수신하는 단계는,
상기 주변 구조물을 근사화하여 벽면으로 생성하는 단계, 그리고
라이다를 통해 상기 주변 구조물까지의 거리들을 각도별로 측정하면서, 상기 벽면을 따라 주행하는 단계
를 더 포함하는, 주행 방법.
15. The method of claim 14,
Receiving the driving map comprises:
generating a wall surface by approximating the surrounding structure; and
Driving along the wall while measuring the distances to the surrounding structures by angle through the lidar
Further comprising, a driving method.
자율주행 중 주행 경로를 변경하는 로봇으로서,
주변 구조물까지의 거리들을 각도별로 측정하는 센서, 그리고
프로세서
를 포함하고,
상기 프로세서는,
상기 주변 구조물을 기초로 생성한 근사 벽면을 따라 주행하도록 주행 모드를 설정하며, 상기 주변 구조물까지의 거리들을 토대로 불연속 지점을 확인하며, 상기 불연속 지점을 확인하면 상기 거리들 중 우측 기준 거리와 우측 각도, 그리고 좌측 기준 거리와 좌측 각도를 토대로 로봇을 회전시킬 회전 각도를 계산하고, 상기 불연속 지점을 통과할 때까지 상기 회전 각도만큼 회전하며 상기 회전 각도가 0이 될 때 까지 주행하도록 주행 모드를 변경하는, 로봇.
A robot that changes a driving route during autonomous driving, comprising:
A sensor that measures the distances to the surrounding structures by angle, and
processor
including,
The processor is
The driving mode is set to travel along the approximate wall surface generated based on the surrounding structure, and a discontinuous point is identified based on the distances to the surrounding structure. When the discontinuous point is confirmed, the right reference distance and right angle among the distances , and calculate the rotation angle to rotate the robot based on the left reference distance and the left angle, rotate by the rotation angle until passing the discontinuous point, and change the driving mode to travel until the rotation angle becomes 0 , robot.
제16항에 있어서,
상기 프로세서는,
상기 주변 구조물까지의 거리들 중 우측 최대 거리를 상기 우측 기준 거리로 설정하고, 좌측 최대 거리를 상기 좌측 기준 거리로 설정하며,
상기 우측 기준 거리와 상기 우측 각도와, 상기 좌측 기준 거리와 상기 좌측 각도로 상기 주변 구조물의 위치를 확인하는, 로봇.
17. The method of claim 16,
The processor is
Among the distances to the surrounding structures, the right maximum distance is set as the right reference distance, and the left maximum distance is set as the left reference distance,
The robot, which confirms the position of the surrounding structure with the right reference distance and the right angle, and the left reference distance and the left angle.
제17항에 있어서,
상기 프로세서는,
상기 우측 최대 거리가 측정된 구조물의 위치와 상기 좌측 최대 거리가 측정된 구조물의 위치를 사이에서, 특정 위치로 주행하도록 회전 각도를 계산하는, 로봇.
18. The method of claim 17,
The processor is
A robot that calculates a rotation angle to travel to a specific position between the position of the structure in which the right maximum distance is measured and the position of the structure in which the left maximum distance is measured.
제18항에 있어서,
상기 프로세서는,
상기 각도별로 상기 구조물의 거리가 측정된 복수의 좌표들을 구하고, 상기 복수의 좌표들을 직선으로 근사화하여 상기 근사 벽면을 생성하는, 로봇.
19. The method of claim 18,
The processor is
A robot for generating the approximate wall surface by obtaining a plurality of coordinates at which the distance of the structure is measured for each angle, and approximating the plurality of coordinates with a straight line.
제19항에 있어서,
상기 프로세서는,
상기 근사 벽면과 일정 거리 떨어지고 상기 근사 벽면에 일정 각도를 유지하도록 상기 근사 벽면을 따라 주행하도록 주행 모드를 설정하는, 로봇.
20. The method of claim 19,
The processor is
and setting a driving mode to travel along the approximate wall surface to be separated from the approximate wall surface by a certain distance and to maintain a certain angle to the approximate wall surface.
KR1020200126969A 2020-09-29 2020-09-29 Autonomous robot and method for driving using the same KR102384102B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020200126969A KR102384102B1 (en) 2020-09-29 2020-09-29 Autonomous robot and method for driving using the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200126969A KR102384102B1 (en) 2020-09-29 2020-09-29 Autonomous robot and method for driving using the same

Publications (2)

Publication Number Publication Date
KR20220043501A KR20220043501A (en) 2022-04-05
KR102384102B1 true KR102384102B1 (en) 2022-04-06

Family

ID=81181869

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200126969A KR102384102B1 (en) 2020-09-29 2020-09-29 Autonomous robot and method for driving using the same

Country Status (1)

Country Link
KR (1) KR102384102B1 (en)

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101240181B1 (en) * 2008-11-10 2013-03-07 한국전자통신연구원 Method and apparatus and for generating safe path of mobile robot
KR102301758B1 (en) * 2018-12-07 2021-09-14 주식회사 유진로봇 Autonomous Mobile Robot and Method for Driving Control the same

Also Published As

Publication number Publication date
KR20220043501A (en) 2022-04-05

Similar Documents

Publication Publication Date Title
US11878427B2 (en) Robot navigation using 2D and 3D path planning
US20180120852A1 (en) Mobile robot and navigating method for mobile robot
US9164512B2 (en) Autonomous moving body and control method thereof
JP4462196B2 (en) Moving vehicle
CN106843223A (en) A kind of intelligent avoidance AGV cart systems and barrier-avoiding method
JP5247494B2 (en) Autonomous mobile device
JPH05257533A (en) Method and device for sweeping floor surface by moving robot
JP6636260B2 (en) Travel route teaching system and travel route teaching method for autonomous mobile object
JP2007310866A (en) Robot using absolute azimuth and map creation method using it
KR20190143524A (en) Robot of moving waypoints based on obstace avoidance and method of moving
JP3675386B2 (en) Autonomous mobile device and autonomous mobile device operation system
JP2018185767A (en) Environment maintenance robot, and control program of the same
CN110477808A (en) A kind of robot
CN115008465A (en) Robot control method, robot, and computer-readable storage medium
KR102384102B1 (en) Autonomous robot and method for driving using the same
WO2021139165A1 (en) Robot movement limiting frame working starting point determining method and movement control method
JP2005222560A (en) Autonomous moving unit and autonomous moving unit operation system
JP7114867B2 (en) AUTONOMOUS DRIVING SYSTEM, VEHICLE INCLUDING THE SAME, AND AUTONOMOUS DRIVING METHOD
CN113711153B (en) Map creation system, signal processing circuit, mobile object, and map creation method
JP2016009246A (en) Environmental map generation controller, mobile body and environmental map generation method
JP3931906B2 (en) Autonomous mobile device
JP7367421B2 (en) Autonomous running body and control method for autonomous running body
JP3846506B2 (en) Autonomous mobile device
JP7283341B2 (en) cruise control system
JP6795730B2 (en) Mobile management system, mobile, travel management device and computer program

Legal Events

Date Code Title Description
GRNT Written decision to grant