KR102810723B1 - 충돌을 회피하는 방법 및 이를 구현한 로봇 및 서버 - Google Patents

충돌을 회피하는 방법 및 이를 구현한 로봇 및 서버 Download PDF

Info

Publication number
KR102810723B1
KR102810723B1 KR1020190143449A KR20190143449A KR102810723B1 KR 102810723 B1 KR102810723 B1 KR 102810723B1 KR 1020190143449 A KR1020190143449 A KR 1020190143449A KR 20190143449 A KR20190143449 A KR 20190143449A KR 102810723 B1 KR102810723 B1 KR 102810723B1
Authority
KR
South Korea
Prior art keywords
robot
information
control unit
sensor
movement path
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
KR1020190143449A
Other languages
English (en)
Other versions
KR20210056694A (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 KR1020190143449A priority Critical patent/KR102810723B1/ko
Priority to US16/874,269 priority patent/US11400593B2/en
Publication of KR20210056694A publication Critical patent/KR20210056694A/ko
Application granted granted Critical
Publication of KR102810723B1 publication Critical patent/KR102810723B1/ko
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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/0287Control of position or course in two dimensions specially adapted to land vehicles involving a plurality of land vehicles, e.g. fleet or convoy travelling
    • G05D1/0289Control of position or course in two dimensions specially adapted to land vehicles involving a plurality of land vehicles, e.g. fleet or convoy travelling with means for avoiding collisions between vehicles
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Program-controlled manipulators
    • B25J9/16Program controls
    • B25J9/1656Program controls characterised by programming, planning systems for manipulators
    • B25J9/1664Program 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
    • B25J13/00Controls for manipulators
    • B25J13/08Controls for manipulators by means of sensing devices, e.g. viewing or touching devices
    • B25J13/088Controls for manipulators by means of sensing devices, e.g. viewing or touching devices with position, velocity or acceleration sensors
    • B25J13/089Determining the position of the robot with reference to its environment
    • 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
    • B25J19/023Optical sensing devices including video camera means
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Program-controlled manipulators
    • B25J9/16Program controls
    • B25J9/1674Program 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/00Program-controlled manipulators
    • B25J9/16Program controls
    • B25J9/1679Program controls characterised by the tasks executed
    • B25J9/1692Calibration of manipulator
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Program-controlled manipulators
    • B25J9/16Program controls
    • B25J9/1694Program controls characterised by use of sensors other than normal servo-feedback from position, speed or acceleration sensors, perception control, multi-sensor controlled systems, sensor fusion
    • B25J9/1697Vision controlled systems
    • GPHYSICS
    • 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/0231Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means
    • G05D1/0246Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means using a video camera in combination with image processing means
    • G05D1/0248Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means using a video camera in combination with image processing means in combination with a laser
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Robotics (AREA)
  • Mechanical Engineering (AREA)
  • Physics & Mathematics (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Remote Sensing (AREA)
  • General Physics & Mathematics (AREA)
  • Aviation & Aerospace Engineering (AREA)
  • Automation & Control Theory (AREA)
  • Multimedia (AREA)
  • Electromagnetism (AREA)
  • Human Computer Interaction (AREA)
  • Optics & Photonics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Control Of Position, Course, Altitude, Or Attitude Of Moving Bodies (AREA)

Abstract

본 명세서는 충돌을 회피하는 방법 및 이를 구현한 로봇 및 서버에 관한 것으로, 일 실시예에 의한 로봇은 로봇의 외부에 배치된 사물과 로봇 사이의 거리를 센싱하는 센서와 서버 또는 제2로봇으로부터 상기 제2로봇의 위치 정보를 수신하는 통신부와 상기 제2로봇의 위치 정보 또는 상기 센서가 센싱한 거리 정보 중 어느 하나 이상과 상기 제2로봇의 함몰파트의 깊이 정보를 적용하여 상기 제2로봇과의 충돌을 회피하는 이동 경로를 생성하는 제어부를 포함한다.

Description

충돌을 회피하는 방법 및 이를 구현한 로봇 및 서버{METHOD OF AVOIDING COLLISION, ROBOT AND SERVER IMPLEMENTING THEREOF}
본 명세서는 충돌을 회피하는 방법 및 이를 구현한 로봇 및 서버에 관한 기술을 제시한다.
대형 마트, 백화점, 공항, 골프장 등 인적, 물적 교류가 활발하게 발생하는 공간에는 사람들에게 정보를 제공하기 위해, 또는 사람들에게 편의를 제공하기 위해 로봇이 배치될 수 있다.
전술한 로봇의 종류로는 안내로봇, 보안로봇, 청소로봇 등이 있으며, 이들 다양한 로봇들은 공간 내에서 자신의 위치를 확인하며 이동한다.
한편, 이들 로봇들은 작업의 성능을 높이기 위해 해당 공간에서 다수가 배치될 수 있으며, 그 결과 동일한 형상 또는 동일한 구조의 로봇들이 동일한 공간 내에서 다수가 배치될 수 있다.
그런데, 이들 로봇들은 이동을 위해 센서가 배치되는데, 이들 센서들의 위치나 구성이 로봇 상에 동일하게 배치될 경우, 센서간의 간섭이 발생하거나 혹은 장애물 회피 동작에 오류가 발생할 수 있다.
이에, 동일한 구조나 동일한 형상, 또는 유사한 구조나 유사한 형상을 가지는 로봇들이 센서를 사용하여 장애물을 회피하는 과정에서 오류를 방지하기 위한 기술이 요구된다.
본 명세서에서는 전술한 문제점을 해결하기 위한 것으로, 로봇이 공간 내에서 사물을 감지하여 이동하는 과정에서 로봇이 장애물과 로봇을 구분할 수 있도록 하여, 로봇과 로봇 사이의 충돌을 회피할 수 있도록 한다.
또한, 본 명세서에서는 로봇이 다른 로봇에 대한 정보를 수신하여 다른 로봇의 위치를 추정하여 충돌을 회피할 수 있도록 한다.
또한, 본 명세서에서는 로봇의 위치 정보들을 수집한 서버가 로봇들의 충돌을 회피하도록 이동 경로를 생성할 수 있도록 한다.
본 명세서에서 제시하는 목적들은 이상에서 언급한 목적으로 제한되지 않으며, 언급되지 않은 본 명세서의 실시예들의 다른 목적 및 장점들은 하기의 설명에 의해서 이해될 수 있고, 본 명세서의 실시예에 의해 보다 분명하게 이해될 것이다. 또한, 본 전술한 목적 및 장점들은 특허 청구 범위에 나타낸 수단 및 그 조합에 의해 실현될 수 있음을 쉽게 알 수 있을 것이다.
본 명세서의 일 실시예에 의한 로봇은 로봇의 외부에 배치된 사물과 로봇 사이의 거리를 센싱하는 센서와 서버 또는 제2로봇으로부터 제2로봇의 위치 정보를 수신하는 통신부와 제2로봇의 위치 정보 또는 센서가 센싱한 거리 정보 중 어느 하나 이상과 제2로봇의 함몰파트의 깊이 정보를 적용하여 제2로봇과의 충돌을 회피하는 이동 경로를 생성하는 제어부를 포함한다.
본 명세서의 일 실시예에 의한 로봇의 제어부는 센서가 센싱한 사물의 위치 정보와 제2로봇의 위치 정보를 비교하여 센서가 센싱한 사물이 제2로봇인지 또는 로봇이 아닌 장애물인지를 확인한다.
본 명세서의 일 실시예에 의한 로봇의 제어부는 센서가 센싱한 사물이 제2로봇인 경우 사물에서 깊이 정보 이상 이격하여 이동하는 경로를 이동 경로로 생성한다.
본 명세서의 일 실시예에 의한 로봇의 제어부는 센서가 센싱한 사물과의 거리 정보를 이용하여 사물의 윤곽선을 생성하며, 제어부는 제2로봇의 함몰파트의 윤곽선 정보와 생성한 사물의 윤곽선을 비교하여 사물이 제2로봇인 것을 확인한다.
본 명세서의 일 실시예에 의한 서버는 둘 이상의 로봇들의 위치 정보를 수신하는 통신부와 통신부가 수신한 로봇들의 위치 및 로봇들의 충돌 가능성을 계산하여 로봇들 각각에게 우회 이동 경로를 생성하거나 또는 로봇들이 동일 공간 내에서 최대 이격된 거리로 이동하는 이동 경로를 생성하는 서버 제어부를 포함한다.
본 명세서의 일 실시예에 의한 로봇이 충돌을 회피하는 방법은 로봇의 센서가 로봇의 외부에 배치된 사물과 로봇 사이의 거리를 센싱하는 단계와, 로봇의 통신부가 서버 또는 제2로봇으로부터 제2로봇의 위치 정보를 수신하는 단계와, 로봇의 제어부가 제2로봇의 위치 정보 또는 센서가 센싱한 거리 정보 중 어느 하나 이상과 제2로봇의 함몰파트의 깊이 정보를 적용하여 제2로봇과의 충돌을 회피하는 이동 경로를 생성하는 단계를 포함한다.
본 명세서의 실시예들을 적용할 경우, 로봇이 공간 내에서 사물을 감지하여 이동하는 과정에서 로봇이 다른 로봇의 속도와 위치, 또는 외관 등의 정보를 이용하여 장애물과 로봇을 구분할 수 있도록 하여, 로봇과 로봇 사이의 충돌을 회피할 수 있다.
또한, 본 명세서의 실시예들을 적용할 경우, 로봇이 다른 로봇에 대한 정보를 서버 또는 다른 로봇을 통해 수신할 수 있다.
또한 본 명세서의 실시예들을 적용할 경우, 로봇들이 다른 로봇의 위치를 추정하여 충돌을 회피할 수 있다.
또한, 본 명세서의 실시예들을 적용할 경우, 로봇의 위치 정보들을 수집한 서버가 로봇들의 충돌을 회피하도록 이동 경로를 생성할 수 있다.
본 명세서의 효과는 전술한 효과에 한정되지 않으며, 본 명세서에서 포함된 기술의 당업자들은 본 명세서의 구성에서 본 명세서의 다양한 효과를 쉽게 도출할 수 있다.
도 1은 본 명세서의 일 실시예에 의한 로봇의 외관을 보여준다.
도 2는 본 명세서의 다른 실시예에 의한 로봇의 외관을 보여준다.
도 3은 본 명세서의 일 실시예에 의한 함몰파트에 센서가 구성된 형태를 도시한 도면이다.
도 4는 본 명세서의 일 실시예에 의한 함몰파트의 높이가 동일한 로봇들이 다수 배치된 공간에서 발생하는 센싱 오류를 보여준다.
도 5는 본 명세서의 일 실시예에 의한 함몰파트를 가지는 다수의 로봇이 배치된 공간에서 로봇들이 이동하는 과정을 보여준다.
도 6은 본 명세서의 일 실시예에 의한 서버가 다수의 로봇들에게 위치 정보 또는 이동 경로를 전송하는 구성을 보여준다.
도 7은 본 명세서의 일 실시예에 의한 로봇의 구성을 보여준다.
도 8은 본 발명의 일 실시예에 의한 서버의 구성을 보여준다.
도 9는 본 발명의 일 실시예에 의한 로봇이 장애물을 감지하고 이를 로봇인지 판단하는 과정을 보여준다.
도 10은 본 명세서의 일 실시예에 의한 로봇이 다른 로봇과의 충돌을 회피하는 경로를 생성하는 과정을 보여준다.
도 11은 본 명세서의 일 실시예에 의한 로봇이 다른 로봇의 위치 정보에 오차 정보를 적용하여 이동 경로를 생성하는 과정을 보여준다.
도 12는 본 명세서의 일 실시예에 의한 우회 경로를 생성하는 과정을 보여준다.
도 13 및 도 14는 본 명세서의 일 실시예에 의한 충돌 방지를 위한 경로를 생성하는 과정을 보여준다.
도 15는 본 명세서의 일 실시예에 의한 로컬 네비게이션 과정에서 지오메트리를 이용하여 로봇인지 확인하는 과정을 보여준다.
도 16은 본 명세서의 일 실시예에 의한 로봇이 다른 로봇을 확인하는 과정을 보여준다.
도 17은 본 발명의 일 실시예에 의한 제어부가 확장칼만필터를 사용하는 과정을 보여준다.
이하, 도면을 참조하여 본 명세서의 실시예에 대하여 본 명세서가 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 본 명세서는 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다.
본 명세서를 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 동일 또는 유사한 구성요소에 대해서는 동일한 참조 부호를 붙이도록 한다. 또한, 본 명세서의 일부 실시예들을 예시적인 도면을 참조하여 상세하게 설명한다. 각 도면의 구성요소들에 참조부호를 부가함에 있어서, 동일한 구성요소들에 대해서는 비록 다른 도면상에 표시되더라도 가능한 한 동일한 부호를 가질 수 있다. 또한, 본 명세서를 설명함에 있어, 관련된 공지 구성 또는 기능에 대한 구체적인 설명이 본 명세서의 요지를 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명은 생략할 수 있다.
본 명세서의 구성 요소를 설명하는 데 있어서, 제 1, 제 2, A, B, (a), (b) 등의 용어를 사용할 수 있다. 이러한 용어는 그 구성 요소를 다른 구성 요소와 구별하기 위한 것일 뿐, 그 용어에 의해 해당 구성 요소의 본질, 차례, 순서 또는 개수 등이 한정되지 않는다. 어떤 구성 요소가 다른 구성요소에 "연결", "결합" 또는 "접속"된다고 기재된 경우, 그 구성 요소는 그 다른 구성요소에 직접적으로 연결되거나 또는 접속될 수 있지만, 각 구성 요소 사이에 다른 구성 요소가 "개재"되거나, 각 구성 요소가 다른 구성 요소를 통해 "연결", "결합" 또는 "접속"될 수도 있다고 이해되어야 할 것이다.
또한, 본 명세서를 구현함에 있어서 설명의 편의를 위하여 구성요소를 세분화하여 설명할 수 있으나, 이들 구성요소가 하나의 장치 또는 모듈 내에 구현될 수도 있고, 혹은 하나의 구성요소가 다수의 장치 또는 모듈들에 나뉘어져서 구현될 수도 있다.
이하, 본 명세서에서 로봇은 특정한 목적(청소, 보안, 모니터링, 안내 등)을 가지거나 혹은 로봇이 이동하는 공간의 특성에 따른 기능을 제공하며 이동하는 장치를 포함한다. 따라서, 본 명세서에서의 로봇은 소정의 정보와 센서를 이용하여 이동할 수 있는 이동수단을 보유하며 소정의 기능을 제공하는 장치를 통칭한다.
도 1은 본 명세서의 일 실시예에 의한 로봇의 외관을 보여준다. 설명의 편의를 위해 로봇의 외관은 원형 기둥으로 도시하였다. 도 1은 로봇의 에 센서가 배치된 구성이다. 함몰형이란, 로봇의 외관 중 일부가 함몰되고 함몰된 부분에 센서가 배치된 구성이다.
도 1의 1a는 전체가 함몰된 로봇의 구성을 보여준다. 로봇은 크게 상부파트(2), 하부파트(3) 및 함몰파트(5a)로 구성된다. 한편, 로봇은 함몰파트를 포함할 수도 있고 함몰파트를 포함하지 않을 수도 있다. 만약, 로봇이 함몰파트를 포함하지 않을 경우 본 명세서의 실시예에 의한 로봇은 함몰파트를 가지는 다른 로봇을 장애물과 구분할 수 있다.
이하 함몰파트를 가진 로봇의 구성에 대해 살펴본다. 하부파트(3)는 로봇(1a)을 이동시키는 바퀴나 캐터필러, 혹은 2족보행, 3족보행 또는 그 이상의 보행 장치를 포함할 수 있다. 상부파트(2)는 디스플레이 장치, 스피커 등 인터페이스를 위한 구성요소를 포함할 수 있다.
또는 하부파트(3) 역시 디스플레이 장치, 스피커 등 인터페이스를 위한 구성요소를 포함할 수 있다.
함몰파트(5a)는 로봇의 주변에 배치된 장애물을 감지하기 위한 센서가 배치된다. 함몰파트(5a)는 상부파트(2)와 하부파트(3) 사이에 배치되며 그 단면(15a)의 면적이 상부파트(2)의 단면(12a)의 면적보다 작다. 그리고 함몰파트(5a)의 단면(15a)의 면적이 하부파트(3)의 단면)(13a)의 면적보다 작다.
도 1에 도시된 로봇은 함몰파트(5a)가 원형의 기둥으로 구성된 형태이지만, 이외에도 사각형 기둥, 혹은 삼각형 기둥 등으로 구성될 수 있다.
도 2는 본 명세서의 다른 실시예에 의한 로봇의 외관을 보여준다.
함몰파트(5b)는 일부 영역은 상부파트(2) 및 하부 파트(3)와 연속된 표면을 유지하지만, 일부 영역은 함몰된 구성이다. 이들의 단면을 보다 상세히 살펴본다. 함몰파트(5b)의 단면(15b)은 부채꼴의 형태를 가진다. 함몰파트(5b)의 단면(15b)의 면적은 상부파트(2)의 단면(12b)의 면적보다 작다. 그리고 함몰파트(5b)의 단면(15b)의 면적은 하부파트(3)의 단면(13b)의 면적보다 작다.
만약, 로봇이 도 1 및 2에 도시된 바와 달리 함몰파트를 포함하지 않을 경우라도 해당 로봇이 이동하는 공간 내에서 이동하는 다른 로봇은 함몰파트를 포함할 수 있다.
도 3은 본 명세서의 일 실시예에 의한 함몰파트에 센서가 구성된 형태를 도시한 도면이다. 설명의 편의를 위해 도 1의 함몰파트(5a)의 단면(15a) 및 도 2의 함몰파트(5b)의 단면(15b)를 참조한다.
15a는 함몰파트(5a)의 양측면에 센서가 배치된 함몰파트(5a)의 단면을 확대하여 보여준다. 화살표는 각 센서가 센싱가능한 방향을 보여준다. 15a는 360도 센싱이 가능한 구성이다.
15b는 함몰파트(5b)의 일측면에 센서가 배치된 함몰파트(5b)의 단면을 확대하여 보여준다. 화살표는 센서가 센싱가능한 방향을 보여준다. 15b는 220도 센싱이 가능한 구성이다.
도 3과 같이 함몰파트를 포함하는 로봇은 센서를 이용하여 이동 과정에서 인접한 다른 장애물을 센싱할 수 있다. 센서는 초음파 센서, 적외선 센서, 라이다 센서, 레이저 센서, TOF 센서 등 다양한 종류의 센서를 포함한다.
그런데, 공간 내에 동일한 형태의 로봇이 다수 존재하거나, 또는 함몰파트의 높이가 동일한 로봇들이 다수 존재할 수 있다. 이러한 경우, 이들 로봇들의 함몰파트의 높이가 동일함으로 인하여, 로봇이 다른 로봇의 위치를 센싱함에 있어서 오류가 발생할 수 있다.
도 4는 본 명세서의 일 실시예에 의한 함몰파트의 높이가 동일한 로봇들이 다수 배치된 공간에서 발생하는 센싱 오류를 보여준다. 설명의 편의를 위하여 측면을 중심으로 도시한다.
1a 및 1b는 도 1, 2에서 살펴본 로봇의 측면에 해당한다. 제1로봇(1a)는 양방향으로 센서가 배치된다. 제1로봇(1a)의 센서가 장애물(9)을 센싱할 경우 제1로봇(1a)은 센서와 장애물(9) 사이의 거리를 d1으로 판단한다. 제1로봇(1a)은 함몰파트(5a)가 함몰된 거리(r1)에 대한 값을 d1에 적용할 수 있다. 즉, 제1로봇(1a)은 d1에서 r1을 뺀 값(d1-r1)인 dist1이라는 값을 계산한다. 그리고 제1로봇(1a)은 dist1을 장애물(9)과의 거리로 산출한다.
한편, 제1로봇(1a)의 센서가 제2로봇(1b)을 센싱할 경우를 살펴본다. 제1로봇(1a)의 입장에서 제2로봇(1b)은 장애물이다. 즉, 제1로봇(1a)의 입장에서 제2로봇(1b)은 별도의 정보가 주어지기 전에는 다른 장애물(9)과 동일한 종류의 장애물로 판단한다.
따라서, 제1로봇은 센서와 제2로봇(1b)의 함몰파트(5b) 사이의 거리를 d2으로 판단한다. 제1로봇(1a)은 함몰파트(5a)가 함몰된 거리(r1)에 대한 값을 d2에 적용할 수 있다. 즉, 제1로봇(1a)은 d2에서 r1을 뺀 값(d2-r1)인 dist3을 외부에 배치된 장애물인 제2로봇(2b)과의 거리인 것으로 판단한다.
그런데, d2는 제1로봇(1a)의 센서와 제2로봇(1b)의 함몰파트(5b)까지의 거리이다. 그리고, 제1로봇(1a)과 제2로봇(1b) 사이의 하부파트사이의 거리는 dist2이다. dist2는 d2-r1-r2로 계산한다.
즉, 제1로봇(1a)은 제2로봇(1b)이 로봇이라는 정보를 확보하지 못할 경우, 제2로봇(1b)과의 거리를 dist3으로 판단하는 오류가 발생한다.
마찬가지로 제2로봇(1b) 역시 제1로봇(1a)이 로봇이라는 정보를 확보하지 못하여 장애물로 판단한 경우, 제2로봇(1b)은 제1로봇(1a)과의 거리를 dist4(d2-r2)라고 판단한다.
즉, 도 4에서 동일한 높이에 함몰파트를 포함하는 두 로봇(1a, 1b)은 서로에 대해 로봇이라는 판단을 하지 못할 경우, 실제 두 로봇 사이의 거리를 계산하지 못함으로 인한 오류가 발생한다.
도 5는 본 명세서의 일 실시예에 의한 함몰파트를 가지는 다수의 로봇이 배치된 공간에서 로봇들이 이동하는 과정을 보여준다. 도 5는 함몰파트의 높이에서의 단면을 보여준다.
제1로봇(1a)은 장애물(9)과 제2로봇(1b)을 센싱한다. 다만, 제1로봇(1a) 입장에서 제2로봇(1b)은 또다른 장애물이다. 그렇기에 제1로봇(1a)은 제2로봇(1b)의 함몰파트(5b)를 장애물의 외형이라 판단한다. 그 결과 제1로봇(1a)은 장애물(9)과 제2로봇(1b)의 함몰파트(5b) 사이를 충분히 통과할 수 있는 것으로 판단하고 A 화살표가 지시하는 방향으로 이동한다. 그리고 A 방향으로 이동시 제1로봇(1a)은 제2로봇(1b)의 하부파트와 충돌한다.
마찬가지로, 제2로봇(1b)은 장애물(9)과 제1로봇(1a)을 센싱한다. 다만, 제2로봇(1b) 입장에서 제1로봇(1a)은 또다른 장애물이다. 그렇기에 제2로봇(1b)은 제1로봇(1a)의 함몰파트(5a)를 장애물의 외형이라 판단한다. 그 결과 제2로봇(1b)은 장애물(9)과 제1로봇(1a)의 함몰파트(5a) 사이를 충분히 통과할 수 있는 것으로 판단하고 B 화살표가 지시하는 방향으로 이동한다. 그리고 B 방향으로 이동시 제2로봇(1b)은 제1로봇(1a)의 하부파트와 충돌한다.
이러한 로봇 간의 충돌을 방지하기 위해 이하 본 명세서에서는 각각의 로봇이 인접한 주변에 배치된 로봇의 위치 또는 속도 등의 정보를 수신하는 실시예에 대해 살펴본다. 또한, 본 명세서에서는 각각의 로봇이 인접한 장애물을 센싱하는 과정에서 로봇의 특수한 형태를 확인하여 로봇과 장애물을 구분하는 실시예를 살펴본다.
도 6은 본 명세서의 일 실시예에 의한 서버가 다수의 로봇들에게 위치 정보 또는 이동 경로를 전송하는 구성을 보여준다.
서버는 로봇이 배치된 공간에서 로봇들을 제어하거나, 로봇들과 정보를 송수신할 수 있다. 또는 서버는 하나의 관제 시스템에 포함될 수 있다. 이 경우, 관제시스템은 공간 내의 다양한 센서들(예를 들어 카메라 등)을 제어할 수 있으며, 서버는 이들 센서들이 제공하는 정보를 이용하여 로봇들의 위치나 속도를 파악할 수 있다. 물론, 로봇들이 자신의 위치나 속도에 대한 정보를 서버에게 전송할 수 있다.
서버(500)는 다수의 로봇들로부터 각각의 위치, 속도 정보를 수집하고 이 정보를 다시 각각의 로봇들에게 송신한다. 이때, 서버(500)는 각 로봇들의 위치에 따라 전체 로봇들의 위치 정보를 전송하지 않고 근접한 로봇의 정보들을 전송할 수 있다.
예를 들어, 서버(500)는 인접하게 배치된 로봇들(1c, 1d)에게 각각의 위치 정보인 (x0, y0) 및 (x1, y1)을 전송하는 반면, 다른 로봇들(1e, 1f, 1g)의 위치 정보는 전송하지 않을 수 있다.
마찬가지로, 서버(500)는 인접하게 배치된 로봇들(1e, 1f, 1g)에게 각각의 위치 정보인 (x2, y2), (x3, y3), (x4, y4)를 전송하는 반면, 다른 로봇들 (1c, 1d)의 위치 정보는 전송하지 않을 수 있다.
또는, 서버(500)의 개입 없이, 개별 로봇들 사이에 위치 정보가 송수신될 수 있다. 예를 들어 로봇들은 블루투스, UWB 등의 무선 통신을 이용하여 인접한 다른 로봇들에게 자신의 위치 정보를 송신하고, 마찬가지로 다른 로봇의 위치 정보를 수신한다.
또는, 서버(500)는 별도의 위치 정보를 전송하지 않고, 로봇들에게 일정 범위 내에 다른 로봇이 있다는 정보를 제공할 수 있다.
또는 서버(500)는 각각의 로봇들이 서로 충돌하지 않도록 이동 경로를 생성하고 이를 로봇들에게 각각 전송할 수 있다. 이때, 서버(500)는 로봇들이 인접한 거리 내에 위치할 가능성이 있는지 확인하여 각각의 로봇의 이동 경로를 생성할 수 있다.
도 7은 본 명세서의 일 실시예에 의한 로봇의 구성을 보여준다. 전술한 바와 같이 로봇은 다양한 외관을 가지며 함몰파트를 선택적으로 포함한다. 본 명세서의 일 실시예에서는 외부에 배치된 사물과 로봇 사이의 거리를 센싱하는 센서가 로봇에 배치된다. 그리고 이러한 센서는 라이다 센서를 중심으로 설명한다. 그러나 라이다 센서는 로봇에 배치되는 센서의 일 실시예에 해당하며, 초음파 센서, 적외선 센서, 레이저 센서, TOF 센서(Time of Flight) 등 다양한 종류의 센서들이 로봇에 배치될 수 있다. 따라서, 본 명세서에서 라이다 센서라고 언급된 부분은 다른 센서들로 대체될 수 있으며 이들 역시 본 명세서에서 제시하는 실시예에 포함된다.
또한, 본 명세서의 일 실시예에 의한 로봇은 함몰파트를 선택적으로 포함할 수 있다. 즉, 함몰파트가 없는 로봇도 도 7의 구성을 포함할 수 있다. 또한, 도 7의 구성을 가지는 로봇은 함몰파트를 가지는 다른 로봇을 식별하여 회피 경로를 생성할 수 있다.
맵 저장부(210)는 로봇이 이동하는 공간을 맵으로 저장한다. 맵 저장부(210)는 고정 장애물의 위치 정보, 다른 로봇의 위치 정보 등을 저장할 수 있다.
라이다 센서(LiDAR Sensor)(220)는 2차원 또는 3차원으로 주변의 사물들을 센싱할 수 있다. 2차원 라이다 센서의 경우 로봇을 중심으로 360도 범위의 사물의 위치를 센싱할 수 있다. 특정 위치에서 센싱한 라이다 정보는 하나의 라이다 프레임을 구성할 수 있다. 즉, 라이다 센서(220)는 로봇의 외부에 배치된 사물과 로봇 사이의 거리를 센싱하여 라이다 프레임을 생성한다.
카메라 센서(230)는 일반 카메라를 일 실시예로 한다. 시야각의 제약을 해결하기 위해 둘 이상의 카메라 센서(230)를 사용할 수 있다. 특정 위치에서 촬영한 영상은 비전 정보를 구성한다. 즉, 카메라 센서(230)는 로봇의 외부에 배치된 사물을 촬영하여 비전 정보를 포함하는 비주얼 프레임을 생성한다.
카메라 센서(230)는 선택적으로 로봇(1)에 배치될 수 있다. 로봇(1)이 라이다 센서(220)와 카메라 센서(230)를 모두 이용할 경우, 퓨젼-SLAM(Fusion-simultaneous localization and mapping)을 수행할 수 있다.
퓨전 SLAM은 라이다 정보와 비전 정보를 결합하여 사용할 수도 있다. 이들 라이다 정보와 비전 정보는 맵으로 구성할 수 있다.
한편, 로봇이 함몰파트를 가지는 실시예에서 로봇의 센서의 일종인 라이다 센서(220)는 함몰파트에 배치된다. 이 경우, 인접한 범위 내에서 움직이는 다른 로봇의 함몰파트를 센싱할 수 있다. 이러한 상황에 대처하기 위해 통신부(280)는 외부로부터 다른 로봇의 정보를 수신한다. 즉, 로봇의 통신부(280)는 서버 또는 다른 로봇으로부터 다른 로봇의 위치 정보를 수신한다. 일 실시예로, 통신부(280)는 서버(500)로부터 인접한 다른 로봇의 정보를 수신할 수 있다. 또는 통신부(280)는 서버(500)로부터 다른 로봇과 충돌하지 않는 이동 경로에 대한 정보를 수신할 수 있다. 또는 통신부(280)는 다른 로봇으로부터 해당 로봇의 위치 정보 또는 움직임에 대한 정보 등을 수신할 수 있다.
또한, 카메라 센서(230) 역시 외부에 배치된 사물을 촬영하고, 제어부(250)는 촬영된 이미지에 로봇의 이미지가 포함되는지를 판단한다.
그 결과 제어부(250)는 이미지 내의 사물이 로봇인지, 아니면 장애물인지를 구분할 수 있다.
이 경우 제어부(250)는 라이다 센서(220)가 센싱한 외부 사물과의 거리를 보정할 수 있다.
이동부(260)는 일종의 바퀴와 같이 로봇을 이동시키는 구성요소이다. 제어부(250)는 이동부(260)를 제어하여 로봇을 이동시킬 수 있다.
본 명세서의 로봇(1)은 서비스 공간 내에 다수 배치된 상태에서 특정한 기능(안내, 청소, 보안 등)을 수행한다. 이 과정에서 로봇(1)은 자신의 위치를 저장하며, 로봇(1)은 전체 공간에서 자신의 현재 위치를 확인하고, 목표 지점으로 이동하는데 필요한 경로를 생성할 수 있다.
인터페이스부(290)는 사용자로부터 정보를 입력받는다. 터치 입력, 음성 입력 등 다양한 정보를 사용자로부터 입력받고, 이에 대한 결과를 출력한다. 또한 인터페이스부(290)는 로봇(1)이 저장하는 맵을 출력하거나, 로봇이 이동하는 과정을 맵과 오버랩 하여 출력할 수 있다.
또한, 인터페이스부(290)는 사용자에게 소정의 정보를 제공할 수 있다.
통신부(280)는 로봇(1)이 다른 로봇 또는 외부의 서버와 통신하여 정보를 송수신할 수 있도록 한다.
로봇(1)은 각각의 센서들(라이다 센서, 카메라 센서)을 이용하여 각각의 맵을 생성할 수 있다. 또는 로봇(1)은 이들 센서들을 이용하여 하나의 맵을 만든 후 맵에서 다시 이들로부터 특정 센서에 해당하는 내용만을 추출하는 맵을 생성할 수 있다.
이동부(260)는 로봇이 이동하는 과정에서 발생한 휠의 회전이나 속도, 방향 등에 대한 정보를 제어부(250)에게 제공한다. 제어부(250)는 다른 센서나 맵을 이용하여 로봇의 현재 위치를 확인하며, 또한 이동부(260)에서 제공된 물리적 이동 거리 정보를 반영하여 로봇의 현재 위치를 정확하게 산출할 수 있다.
제어부(250)는 맵저장부(210)에 저장된 정보, 센싱된 장애물의 위치 정보 및 다른 로봇의 위치 정보를 이용하여 로봇의 이동 경로를 생성할 수 있다. 또는 통신부(280)가 서버(500)가 로봇의 이동 경로에 대한 정보를 수신하고 제어부(250)가 수신한 정보를 이용할 수 있다.
또한, 제어부(250)는 인접하게 배치된 다른 로봇의 위치 정보 또는 센서가 센싱한 거리 정보 중 어느 하나 이상과 다른 로봇의 함몰파트의 깊이 정보를 적용하여 다른 로봇과의 충돌을 회피하는 이동 경로를 생성한다.
도 8은 본 발명의 일 실시예에 의한 서버의 구성을 보여준다. 서버(500) 역시 로봇들이 이동하는 공간에 대한 맵을 저장하는 맵 저장부(510)를 포함한다. 로봇 위치 저장부(520)는 각 로봇들로부터 수신하거나, 로봇들이 배치된 공간에 배치된 다양한 센서들로부터 취합한 로봇의 위치 정보를 저장한다.
통신부(580)는 로봇들 및 다른 센서들/카메라들로부터 다양한 정보를 수신할 수 있다. 예를 들어, 통신부(580)는 로봇들의 위치 정보를 수신할 수 있다. 통신부(580)가 수신한 위치 정보는 로봇 위치 저장부(520)에 저장된다. 또한, 통신부(580)는 로봇들에게 다른 로봇의 위치 정보를 송신하거나, 각 로봇 별로 생성한 이동 경로를 송신할 수 있다.
서버제어부(550)는 각 로봇들에게 적합한 이동 경로를 생성할 수 있다.
예를 들어, 서버 제어부(520)는 통신부(580)가 수신한 로봇들의 위치 및 로봇들의 충돌 가능성을 계산하여 로봇들 각각에게 우회 이동 경로를 생성하거나 또는 로봇들이 동일 공간 내에서 최대 이격된 거리로 이동하는 이동 경로를 생성할 수 있다.
도 9는 본 발명의 일 실시예에 의한 로봇이 장애물을 감지하고 이를 로봇인지 판단하는 과정을 보여준다.
로봇(1)은 서버(500)로부터, 또는 주변의 다른 로봇으로부터 인접한 로봇에 대한 정보를 수신한다(S21). 로봇(1)이 수신하는 정보는 다른 로봇의 위치 정보를 일 실시예로 한다. 로봇(1)이 수신하는 정보는 다른 로봇이 일정 범위(예를 들어 3미터) 내에 위치한다는 정보를 일 실시예로 한다.
S21의 다른 실시예로 무선이 아닌 방식으로 로봇(1)들은 특정한 주파수 대역의 소리를 출력할 수 있다. 그리고 로봇은 수신한 소리를 분석하여 주변에 다른 로봇이 있는지를 확인할 수 있다.
로봇(1)의 센서, 예를 들어 라이다 센서(220)는 장애물을 감지한다(S22). 그리고 제어부(250)는 감지된 장애물이 로봇인지를 확인한다(S23). 제어부(250)는 감지된 장애물과 로봇(1) 사이의 거리를 앞서 수신한 로봇의 위치 정보와 비교하여 감지된 장애물이 인접하게 배치된 다른 로봇인지를 확인할 수 있다. 또는 제어부(250)는 카메라 센서(230)를 이용하여 장애물을 촬영하고 해당 장애물의 형태가 로봇인지 여부를 판단할 수 있다.
확인 결과 감지된 장애물이 다른 로봇이 아닌 경우, 제어부(250)는 감지된 장애물의 크기를 기준으로 이동 경로를 생성한다(S24). 만약, 감지된 장애물이 다른 로봇인 경우, 감지된 장애물의 크기를 로봇의 외형에 적합하게 변환한 후 이동 경로를 생성한다(S25).
예를 들어, 감지된 장애물이 로봇과 동일한 외형의 다른 로봇인 경우, 제어부(250)는 함몰파트의 함몰된 거리(예를 들어 도 4의 r1 혹은 r4)를 반영하여 앞서 센싱된 거리를 보정한다.
예를들어, 도 4에서 제1로봇(1a)이 제2로봇(1b)을 센싱한 경우 d2라는 거리를 산출한다. 제1로봇(1a)의 제어부(250)는 제1로봇(1a)의 함몰파트의 함몰된 크기인 r1과 제2로봇(1b)의 함몰파트의 함몰된 크기인 r2를 이용하여 "d2-r1-r2"를 제1로봇(1a)과 제2로봇(1b) 사이의 거리로 판단하여 이동 경로를 생성할 수 있다.
S21에서 로봇이 수신하는 다른 로봇의 위치 정보에는 로봇의 함몰파트의 함몰된 크기에 대한 정보를 포함한다. 예를 들어, 통신부(280)는 다른 로봇의 위치 정보인 (x, y, depth)를 수신할 수 있다. "depth"는 함몰파트의 함몰된 크기(깊이)에 대한 정보이다. 이때 함몰된 깊이에 대한 정보는 해당 로봇의 최대 외부경계를 기준으로 산출될 수 있다.
즉, 로봇의 외형이 수직 기둥이 아니라 넓은 부분과 좁은 부분이 있을 경우, 가장 넓은 부분인 로봇의 최대 외부경계선을 기준으로 함몰파트의 깊이 정보가 산출될 수 있다.
정리하면, 제어부(250)는 센서가 센싱한 사물의 위치 정보와 다른 로봇의 위치 정보를 비교하여 센서가 센싱한 사물이 로봇인지 또는 로봇이 아닌 장애물인지를 확인한다(S23). 그리고, 센싱한 사물이 다른 로봇으로 확인된 경우, 제어부(250)는 사물에서 깊이 정보 이상 이격하여 이동하는 경로를 이동 경로로 생성한다(S25).
도 10은 본 명세서의 일 실시예에 의한 로봇이 다른 로봇과의 충돌을 회피하는 경로를 생성하는 과정을 보여준다.
제어부(250)는 로봇의 주변에 다른 로봇이 있음을 확인한다(S31). 확인하는 방법은 도 9의 S21에서 살펴보았다. 제어부(250)는 다른 로봇의 위치 정보와 오차 정보를 반영하여 충돌을 회피하는 이동 경로를 생성한다(S32). 즉, 제어부(250)는 이동 경로를 생성함에 있어서, 다른 로봇의 위치 정보에 오차 정보를 적용하여 다른 로봇과의 충돌을 회피하는 이동 경로를 생성한다.
여기서 오차 정보란, 개별 로봇들의 위치 정보에서 발생 가능한 오차 정보를 포함한다. 예를 들어, 어떤 공간에서 로봇의 위치 정보가 가지는 오차 범위가 0.5m인 경우를 가정한다. 이 경우, 제1로봇은 다른 제2로봇의 위치 정보를 기준으로 +/- 0.5m를 반영한 범위를 산출할 수 있다. 또한, 제1로봇의 현재 위치 역시 오차를 가질 수 있다. 따라서 이러한 오차를 반영하여 충돌을 회피하는 이동 경로를 생성한다.
즉, 제어부(250)는 다른 로봇과의 충돌 방지를 위한 회피 이동 경로를 생성하기 위해 인접한 다른 로봇들과의 상대 위치와 각각의 오차 정보를 반영하여 이동 경로를 생성할 수 있다. 에를 들어 제1로봇은 오차 정보인 0.5m에 2를 곱한 거리(혹은 안전을 위해 2.5 이상 곱한 거리) 이상 다른 로봇과 이격하도록 이동 경로를 생성할 수 있다.
그리고 제어부(250)가 생성한 이동 경로에 기반하여 로봇(1)은 이동한다(S33).
도 11은 본 명세서의 일 실시예에 의한 로봇이 다른 로봇의 위치 정보에 오차 정보를 적용하여 이동 경로를 생성하는 과정을 보여준다.
제1로봇(1a)는 제2로봇(1b)이 주변에 배치되었으며 위치 정보를 수신한 상태이다. 제1로봇(1a)의 제어부(250)는 제2로봇(1b)의 함몰파트의 깊이 정보를 확보한 상태이므로 제2로봇(1b)의 위치 정보 및 깊이 정보에 기반하여 각 로봇의 최대 외부 경계의 범위를 산출할 수 있다.
한편, 로봇의 위치 정보는 오차를 가지므로 로봇의 현재 위치를 기준으로 오차 정보만큼 로봇의 최대 외부 경계의 범위를 확대할 수 있다. 그 결과 도 11에 도시된 것과 같이 제어부(250)는 인접한 로봇의 위치 오차를 반영한 범위가 산출된다. 그리고 이 범위 내에서는 다른 로봇과 충돌할 가능성이 높으므로 제어부(250)는 제1로봇(1a)이 화살표의 범위 내에서 이동하도록 이동 경로를 생성할 수 있다.
도 12는 본 명세서의 일 실시예에 의한 우회 경로를 생성하는 과정을 보여준다. W1, W2, W3은 고정 장애물이다. 각각의 로봇(1a, 1b)은 이동할 목표 지점에 대한 정보를 보유하거나 서버(500)로부터 수신할 수 있다. 제1로봇(1a)은 E1을 목적지로 하여 이를 향해 이동하고 제2로봇(1b)는 E2를 목적지로 하여 이를 향해 이동하는 경우를 가정한다.
서버(500)가 로봇들의 경로를 조정하는 실시예를 살펴본다. 서버(500)의 통신부(580)는 로봇들이 생성한 전역 개별 로봇의 전역 경로를 수신한다. 또는 서버(500)의 서버제어부(550)가 개별 로봇의 전역 경로를 미리 생성한 상태일 수 있다.
이때, 서버(500)는 로봇들이 이동하는 과정에서 충돌이 예상되는 지역에서 각 로봇의 전역 경로를 수정하여 각 로봇으로 송신한다. 각 로봇은 수신 받은 전역 경로가 있으면, 수정된 경로대로 경로를 수정한다. 예를 들어 서버(500)는 우회로가 존재할 경우 우회로를 경유하는 우회 이동 경로를 생성할 수 있다.
도 12에서 제1로봇(1a)은 E1을 목적지로 하여 이를 향해 이동하는 경로로 W1-W3 사이를 통과하는 a1 이동 경로와 W2-W3 사이를 통과하는 a2 이동 경로 중 어느 하나를 선택할 수 있다.
마찬가지로 제2로봇(1b)은 E2를 목적지로 하여 이를 향해 이동하는 경로로 W1-W3 사이를 통과하는 b1 이동 경로와 W2-W3 사이를 통과하는 b2 이동 경로 중 어느 하나를 선택할 수 있다.
그런데 이들 로봇들이 다른 로봇의 위치 정보를 확인하지 못하여 두 로봇이 각각 a1/b1 경로를 선택할 경우 이들 로봇들은 W1-W3 사이에서 충돌할 수 있다. 마찬가지로 이들 두 로봇이 각각 a2/b2 경로를 선택할 경우 이들 로봇들은 W2-W3 사이에서 충돌할 수 있다.
이를 방지하기 위해 서버(500)는 두 로봇의 현재 위치와 목적지 정보를 이용하여 각각의 로봇에게 충돌을 회피하는 경로를 생성하여 로봇들에게 송신할 수 있다.
일 실시예로 서버(500)는 제1로봇(1a)에게는 a1 경로를, 제2로봇(1b)에겐는 b2 경로를 전송한다. 그 결과 두 로봇들은 충돌 없이 이동할 수 있다.
서버제어부(550)는 로봇들 중 우선 순위에 따라 제1로봇(1a)이 이동할 제1이동 경로를 생성하고, 제1로봇(1a)이 제1이동 경로(a1)를 따라 이동하는 과정에서 제2로봇(1b)을 감지하지 않는 공간을 맵 저장부(510)에서 식별하여 제2로봇(1b)을 이동시키는 제2이동 경로(b2)를 생성한다. 그리고 통신부(580)는 제1이동 경로(a1)를 제1로봇(1a)에게 전송하고, 제2이동 경로(b2)를 제2로봇(1b)에게 전송하여 각 로봇들이 충돌하지 않고 이동할 수 있도록 한다.
도 13 및 도 14는 본 명세서의 일 실시예에 의한 충돌 방지를 위한 경로를 생성하는 과정을 보여준다.
도 12에서 W1-W3 사이에 장애물이 배치되어 a1/b1 경로를 사용할 수 없는 상태를 가정한다. 이 경우 도 12의 두 로봇은 각각 a2/b2의 경로에 기반하여 이동할 수 있다. 이렇게 우회로가 존재하지 않을 경우 서버(500)는 두 로봇이 충돌하지 않도록 경로를 설계할 수 있다.
도 13은 W3-W2의 영역을 확대하여 표시하였다. W2-W3은 두 개의 로봇이 이동해야 하는 공간을 35와 같은 격자로 분해한다. 격자의 크기는 로봇의 크기를 기준으로 산출될 수 있다. 예를 들어 격자의 크기는 로봇의 최대 윤곽선(최대 외부 경계)를 중심으로 구성될 수 있다.
그리고 서버(500)는 두 개의 로봇(제1로봇, 제2로봇) 중에서 우선 순위가 높은 로봇(제1로봇으로 가정)에 대한 경로를 생성한다. 이때, 제1로봇(1a)이 이동하는 경로는 도 14에서 살펴본다.
도 14의 35a는 제1로봇(1a)이 이동하는 경로를 격자 형태로 표시한 것이다. 도 14의 35a에 도시된 화살표는 제1로봇(1a)이 이동하는 경로이며, 이 경로는 다른 로봇이 이동하지 못하도록 해야 충돌을 회피한다.
따라서, 서버(500)는 도 14의 35a와 같이 경로가 제1로봇(1a)에게 설정되면 이 부분에 대해서는 다른 로봇이 이동하지 못하도록 격자를 재구성한다. 일 실시예로 도 14의 35b와 같이 제1로봇(1a)의 경로에 할당된 영역에 일정 시간동안 장애물이 배치된 것으로 표시할 수 있다.
또는, 도 14의 35c와 같이 되거나 각 격자별 가중치를 변경시킬 수 있다. 예를 들어 각각의 격자에 포함된 숫자는 경로 포함의 적합도를 나타낸다. 따라서, 숫자가 작을수록 경로에 포함되기에 적합하지 않다. 35c와 같이 서버(500)는 제1로봇(1a)에게 이동 경로를 할당한 후, 해당 영역의 경로 포함 적합도를 0으로 설정한다. 또한, "0"으로 표시된 영역 주변 역시 제1로봇(1a)의 이동 과정에서 미세한 충돌이 발생할 수 있으므로, "3"으로 설정한다. 제1로봇(1a)의 이동 경로로 할당된 격자와 멀리 이격될수록 높은 적합도를 설정할 수 있다. 이 경우, 서버(500)는 다른 로봇(제2로봇)에게 적합도를 반영하여 새로운 경로를 설정할 수 있다.
즉, 서버(500)는 충돌 예상 지역의 지도를 일정 크기의 격자로 분해하고, 생성된 격자에 대하여 그래프를 다시 구성하여 기존의 그래프와 연결한다. 그리고, 충돌이 예상되는 로봇들의 우선 순위나 해당 공간에의 진입 속도 등에 따라 순서대로 로봇들에 대한 이동 경로를 생성한다. 이때, 서버(500)의 서버제어부(550)는 특정 로봇의 이동 경로로 생성되어 점유된 그래프에 대해서는 가중치를 조절하여 그 다음 경로를 설계시에는 다른 경로로 유도할 수 있다.
한편, 전술한 과정 외에도 로봇이 다른 로봇의 형상을 산출할 수 있다. 예를 들어, 함몰파트가 특정한 형태인 경우에 로봇의 제어부(250)는 해당 함몰파트의 윤곽선 정보, 즉 지오메트리(geometry) 정보를 기준으로 센싱된 장애물이 로봇인지 혹은 로봇이 아닌 장애물인지를 판단할 수 있다.
도 13 및 도 14의 실시예를 정리하면, 두 로봇인 제1로봇(1a) 및 제2로봇(1b)이 동일한 제1공간을 통과할 경우, 서버제어부(550)는 제1공간을 35와 같은 격자로 분할하여 격자 별 설정값을 초기값으로 설정한다. 그리고 서버 제어부(550)는 격자 중 제1영역을 제1로봇이 이동할 제1이동 경로로 할당하고(35a 참조), 제1영역에 포함된 격자별 설정값을 보정한다(35c 참조). 그리고 서버제어부(550)는 격자 중 제1영역을 포함하지 않는 제2영역을 제2로봇이 이동할 제2이동경로로 할당한다.
이때, 서버제어부(550)는 도 14의 35c와 같은 설정값은 제1로봇(1a)이 제1이동 경로(35a의 화살표)를 따라 이동한 후 초기화시킨다. 그 결과 다른 로봇들이 더 넓은 공간에서 이동할 수 있다.
도 15는 본 명세서의 일 실시예에 의한 로컬 네비게이션 과정에서 지오메트리를 이용하여 로봇인지 확인하는 과정을 보여준다.
로봇(1)은 다른 로봇의 함몰파트를 센싱하는 과정에서 특정한 지오메트리를 획득할 수 있다. 예를 들어 도 2와 같은 로봇(1b)의 함몰파트(5b)를 다른 로봇이 센싱할 경우 "A" 방향에서 획득된 지오메트리, "B" 방향에서 획득된 지오메트리, "C" 방향에서 획득된 지오메트리, "D" 방향에서 획득된 지오메트리는 각각 36과 같다. 따라서 제어부(250)는 A, B, C, D와 같은 형상을 감지한 경우에 감지된 장애물이 로봇인지를 확인할 수 있다.
즉, 제어부(250)는 센서가 센싱한 사물과의 거리 정보를 이용하여 사물의 윤곽선을 생성한다. 그리고 제어부(250)는 도 15의 36과 같이 제시된 각 로봇의 함몰파트의 윤곽선 정보와 앞서 생성한 윤곽선을 비교한다. 그 결과 동일하거나 일정 범위 내의 오차 수준에서 유사할 경우 제어부(250)는 센싱된 사물을 로봇으로 판단한다.
도 16은 본 명세서의 일 실시예에 의한 로봇이 다른 로봇을 확인하는 과정을 보여준다.
로봇은 서버나 다른 로봇들로부터 인접하게 배치된 다른 로봇의 움직임 정보를 수신한다(S41). 로봇(1)의 통신부(280)는 다른 로봇으로부터 또는 서버(500)로부터 다른 로봇의 위치, 속도 등을 상태(state)로 정의한 움직임 정보를 수신할 수 있다. 또는 이러한 수신 정보는 일정한 간격을 가지므로, 로봇(1)의 제어부(250)는 1차로 수신한 정보에 기반하여 다른 로봇의 위치나 속도를 추정할 수 있다.
그 결과 로봇(1)의 제어부(250)는 주변에 다른 로봇이 존재하는지 판단할 수 있다. 예를 들어, 로봇(1)의 제어부(250)는 로봇의 중심을 기준으로 정의된 반경 d 미터(d meter) 이내에 다른 로봇이 존재하는지를 판단하여(S42), 존재할 경우, 주변 장애물들의 지오메트리를 검출한다(S43). 위치 추정값 기준으로 일정 범위 이내에서 제어부(250)는 라이다 센서(220)와 같은 센서를 이용하여 각 장애물의 지오메트리 구성 템플릿(Geometry element template)을 검출한다. 일정 범위 이내란, 로봇이 이동하고자 하는 방향이나 거리, 예를 들어 ROI(Region of Interest) 범위 이내를 의미한다.
템플릿은 하나 또는 다수로 조합 가능하다. 그리고 제어부(250)는 센싱된 장애물들이 로봇의 후보로 판단하고, 검출된 후보들의 위치와, 속도 정보를 상태(state)의 측정값으로 정의한다. 이때, 제어부(250)는 측정값과 추정값의 정의를 달리 설정할 수 있다.
그리고 제어부(250)는 감지된 장애물의 속도 정보를 기반으로 일정 역치값 이상의 속도 차이를 갖는 후보들은 제외하는 검출 후보 필터링을 수행한다(S44). 이후, 제어부(250)는 확장 칼만 필터(extended kalman filter)와 같은 필터 알고리듬을 적용하여 각 후보의 상태에 대한 추정 값을 업데이트한다. 업데이트한 결과에 기반하여 제어부(250)는 후보들 중에서 로봇을 식별하고, 회피 경로를 설계한다(S46). 이후 로봇(1)은 주행한다(S47).
이 과정에서 로봇간 UWB 송수신이 가능할 경우 UWB로 측정한 로봇 상호간의 거리 정보값을 상태에 추가 할 수 있다. 이 경우 로봇의 위치의 오차를 크게 줄일 수 있다.
S44 및 S45 과정에서 제어부(250)는 센서가 센싱한 하나 이상의 사물 중에서 다른 로봇과 일정한 크기 이내의 차이로 움직임 상태를 가지는 사물을 로봇으로 식별한다.
또한, 제어부(250)는 사물이 로봇에 해당하는지에 대한 판단의 정확도를 높이기 위해 카메라 센서(230)가 촬영한 이미지를 분석한다. 예를 들어, 제어부(250)는 동일 공간 내에서 동작 중인 로봇들의 이미지를 저장할 수 있다. 그리고 제어부(250)는 촬영된 이미지와 저장된 로봇들의 이미지를 비교하여 인접한 사물이 로봇인지 여부를 판단한다.
도 17은 본 발명의 일 실시예에 의한 제어부가 확장칼만필터를 사용하는 과정을 보여준다.
상태는 수학식 1과 같이 정의될 수 있다.
[수학식 1]
좌측변의 x는 상태를 의미한다. 우측변 행렬 내의 x/y는 각각 로봇으로 판단될 수 있는 후보자의 위치 정보를 의미한다. 행렬 내의 / 는 로봇으로 판단될 수 있는 후보자의 속도를 나타낸다.
제어부(250)는 상태 x를 이용하여 상태 추정(state estimation)을 수행한다(S51). 그리고 제어부(250)는 공분산 예측(covariance estimation)을 수행한다(S52). 일 실시예로 공분산 예측은 "error covariance estimation"을 수행하는 것을 포함한다. 상태 추정 및 공분산 예측의 과정은 수학식 2와 같이 진행된다.
[수학식 2]
다음으로 제어부(250)는 칼만 이득(kalman gain)을 계산하고(S53), 업데이트된 상태 측정(또는 상태 업데이트 측정, State update measurement)을 수행한다(S54). 그리고 제어부(250)는 업데이트된 공분산 업데이트를 수행한다(S55). 일 실시예로 "error covariance update"를 수행하는 것을 포함한다.
S53 내지 S55의 과정은 수학식 3과 같이 진행될 수 있다.
[수학식 3]
이후, 제어부(250)는 각각의 후보들에 대해 트라젝토리(trajectory)를 수집한다(S56). 제어부(250)는 일정한 기간(수 초 또는 수 프레임) 동안 각 후보들의 트라젝토리를 수집한다. 또한, 이 과정에서 로봇(1)은 서버로부터 트라젝토리를 수신할 수 있다.
그리고 제어부(250)는 수집된 후보들의 트라젝토리와 서버로부터 수신한 트라젝토리를 비교한다. 예를 들어 각각의 후보들의 트라젝토리에 대한 점수(score)인 Si를 비교한다. 그 결과 제어부(@50)는 가장 높은 점수를 가지는 특정 후보를 선택한다(S57).
수학식 4는 로봇이 계산한 각 후보별 트라젝토리와 서버로부터 수신한 트라젝토리를 나열한 것이다. 수학식 5는 이들 후보들의 트라젝토리와 서버로부터 수신한 트라젝토리를 비교하는 과정을 보여준다. d는 후보들의 트라젝토리 각각과 서버의 트라젝토리 T0를 비교하여 차이를 산출한 것이다. Si는 이러한 차이의 역순으로, d의 값(차이)가 작을수록 Si가 크다. 그 결과 Si가 가장 작은 트라젝토리가 Sel 값으로 산출된다.
[수학식 4]
후보 1의 Trajectory T1 = [p0, v0, p1, v1, …, pt, vt]
후보 2의 Trajectory T2 = [p0, v0, p1, v1, …, pt, vt]
...
서버로부터 수신한 Trajectory T0 = [p0, v0, p1, v1, …, pt, vt]
[수학식 5]
전술한 실시예덜을 적용할 경우, 대면적의 공간에서 자율 주행하는 로봇은 다른 로봇과 충돌을 회피할 수 있다. 특히, 로봇들에 장착된 센서(예를 들어 라이다 센서)가 배치되는 높이가 같고, 이러한 센서가 함몰파트에 배치될 경우에도 로봇은 장애물과 다른 로봇을 구분할 수 있으므로, 상대 로봇의 크기를 정확히 감지하여 충돌을 회피할 수 있다.
이를 위해, 로봇은 다른 로봇으로부터 또는 서버로부터 로봇의 위치나 속도에 관한 정보를 무선 통신으로 수신받는다. 그리고, 로봇의 제어부(250)는 SLAM(Simultaneous localization and mapping) 알고리즘으로 추정하는 지도상의 로봇 위치 값에 오차를 적용하여 로봇간 충돌 문제를 해결한다.
특히, 제어부(250)는 주변에 배치된 로봇의 형상을 인식하여 위치/속도 정보를 추정하고 수신한 로컬라이제이션(Localization) 정보와 합쳐 다른 로봇의 정확한 움직임 정보를 업데이트한다.
본 발명의 실시예를 구성하는 모든 구성 요소들이 하나로 결합되거나 결합되어 동작하는 것으로 설명되었다고 해서, 본 발명이 반드시 이러한 실시예에 한정되는 것은 아니며, 본 발명의 목적 범위 내에서 모든 구성 요소들이 하나 이상으로 선택적으로 결합하여 동작할 수도 있다. 또한, 그 모든 구성 요소들이 각각 하나의 독립적인 하드웨어로 구현될 수 있지만, 각 구성 요소들의 그 일부 또는 전부가 선택적으로 조합되어 하나 또는 복수 개의 하드웨어에서 조합된 일부 또는 전부의 기능을 수행하는 프로그램 모듈을 갖는 컴퓨터 프로그램으로서 구현될 수도 있다. 그 컴퓨터 프로그램을 구성하는 코드들 및 코드 세그먼트들은 본 발명의 기술 분야의 당업자에 의해 용이하게 추론될 수 있을 것이다. 이러한 컴퓨터 프로그램은 컴퓨터가 읽을 수 있는 저장매체(Computer Readable Media)에 저장되어 컴퓨터에 의하여 읽혀지고 실행됨으로써, 본 발명의 실시예를 구현할 수 있다. 컴퓨터 프로그램의 저장매체로서는 자기 기록매체, 광 기록매체, 반도체 기록소자를 포함하는 저장매체를 포함한다. 또한 본 발명의 실시예를 구현하는 컴퓨터 프로그램은 외부의 장치를 통하여 실시간으로 전송되는 프로그램 모듈을 포함한다.
이상에서는 본 발명의 실시예를 중심으로 설명하였지만, 통상의 기술자의 수준에서 다양한 변경이나 변형을 가할 수 있다. 따라서, 이러한 변경과 변형이 본 발명의 범위를 벗어나지 않는 한 본 발명의 범주 내에 포함되는 것으로 이해할 수 있을 것이다.

Claims (18)

  1. 로봇의 외부에 배치된 사물과 로봇 사이의 거리를 센싱하는 센서;
    서버 또는 제2로봇으로부터 상기 제2로봇의 위치 정보를 수신하는 통신부; 및
    상기 제2로봇의 위치 정보 또는 상기 센서가 센싱한 거리 정보 중 어느 하나 이상과 상기 제2로봇의 함몰파트의 깊이 정보를 적용하여 상기 제2로봇과의 충돌을 회피하는 이동 경로를 생성하는 제어부를 포함하며,
    상기 제어부는 상기 센서가 센싱한 사물의 위치 정보와 상기 제2로봇의 위치 정보를 비교하여 상기 센서가 센싱한 사물이 상기 제2로봇인지 또는 로봇이 아닌 장애물인지를 확인하며,
    상기 사물이 제2로봇인 경우 상기 제어부가 생성하는 이동 경로는 상기 사물에서 상기 깊이 정보 이상 이격하여 이동하는 경로인, 충돌을 회피하는 로봇.
  2. 로봇의 외부에 배치된 사물과 로봇 사이의 거리를 센싱하는 센서;
    서버 또는 제2로봇으로부터 상기 제2로봇의 위치 정보를 수신하는 통신부; 및
    상기 제2로봇의 위치 정보 또는 상기 센서가 센싱한 거리 정보 중 어느 하나 이상과 상기 제2로봇의 함몰파트의 깊이 정보를 적용하여 상기 제2로봇과의 충돌을 회피하는 이동 경로를 생성하는 제어부를 포함하며, 상기 제어부는 상기 센서가 센싱한 상기 사물과의 거리 정보를 이용하여 사물의 윤곽선을 생성하며,
    상기 제어부는 상기 제2로봇의 상기 함몰파트의 윤곽선 정보와 상기 생성한 사물의 윤곽선을 비교하여 상기 사물이 상기 제2로봇인 것을 확인하는, 충돌을 회피하는 로봇.
  3. 로봇의 외부에 배치된 사물과 로봇 사이의 거리를 센싱하는 센서;
    서버 또는 제2로봇으로부터 상기 제2로봇의 위치 정보를 수신하는 통신부; 및
    상기 제2로봇의 위치 정보 또는 상기 센서가 센싱한 거리 정보 중 어느 하나 이상과 상기 제2로봇의 함몰파트의 깊이 정보를 적용하여 상기 제2로봇과의 충돌을 회피하는 이동 경로를 생성하는 제어부를 포함하며, 상기 통신부는 상기 서버 또는 상기 제2로봇으로부터 상기 제2로봇의 움직임 정보를 수신하며,
    상기 제어부는 상기 센서가 센싱한 하나 이상의 사물 중에서 상기 제2로봇과 일정한 크기 이내의 차이로 움직임 상태를 가지는 사물을 상기 제2로봇으로 식별하여 상기 사물을 회피하는 이동 경로를 생성하는, 충돌을 회피하는 로봇.
  4. 제1항 내지 제3항 중 어느 한 항에 있어서,
    상기 제어부는 상기 이동 경로를 생성함에 있어서, 상기 제2로봇의 위치 정보에 오차 정보를 적용하여 상기 제2로봇과의 충돌을 회피하는 이동 경로를 생성하는, 충돌을 회피하는 로봇.
  5. 제1항 내지 제3항 중 어느 한 항에 있어서,
    상기 통신부는 상기 서버로부터 상기 제2로봇과 충돌하지 않는 이동 경로를 수신하는, 충돌을 회피하는 로봇.
  6. 제1항 내지 제3항 중 어느 한 항에 있어서,
    상기 로봇은 외부에 배치된 사물을 촬영하는 카메라 센서를 더 포함하며,
    상기 제어부는 상기 카메라 센서가 촬영한 이미지에 로봇의 이미지가 포함되는지 여부에 따라 외부에 배치된 사물을 로봇으로 판단하는, 충돌을 회피하는 로봇.
  7. 제1항 내지 제3항 중 어느 한 항에 있어서,
    상기 로봇의 함몰파트의 높이 및 상기 제2로봇의 함몰파트의 높이가 동일한 것을 특징으로 하는, 충돌을 회피하는 로봇.
  8. 맵을 저장하는 맵 저장부;
    둘 이상의 로봇들의 위치 정보를 수신하는 통신부; 및
    상기 통신부가 수신한 로봇들의 위치 및 상기 로봇들의 충돌 가능성을 계산하여 상기 로봇들 각각에게 우회 이동 경로를 생성하거나 또는 상기 로봇들이 동일 공간 내에서 최대 이격된 거리로 이동하는 이동 경로를 생성하는 서버 제어부를 포함하며,
    상기 서버제어부는 상기 로봇들 중 우선 순위에 따라 제1로봇이 이동할 제1이동 경로를 생성하고, 상기 제1로봇이 상기 제1이동 경로를 따라 이동하는 과정에서 제2로봇을 감지하지 않는 공간을 상기 맵 저장부에서 식별하여 상기 제2로봇을 이동시키는 제2이동 경로를 생성하며,
    상기 통신부는 상기 제1이동 경로를 상기 제1로봇에게 전송하고, 상기 제2이동 경로를 상기 제2로봇에게 전송하는, 서버.
  9. 제8항에 있어서,
    상기 제1로봇 및 상기 제2로봇이 제1공간을 통과할 경우,
    상기 서버제어부는 상기 제1공간을 격자로 분할하여 상기 격자 별 설정값을 초기값으로 설정한 후,
    상기 격자 중 제1영역을 제1로봇이 이동할 제1이동 경로로 할당하고, 상기 제1영역에 포함된 격자별 설정값을 보정한 후, 상기 격자 중 상기 제1영역을 포함하지 않는 제2영역을 제2로봇이 이동할 제2이동경로로 할당하는, 서버.
  10. 제9항에 있어서,
    상기 서버 제어부는 상기 제1영역의 설정값은 상기 제1로봇이 상기 제1이동 경로를 따라 이동한 후 초기화시키는, 서버.
  11. 제8항에 있어서,
    상기 제1로봇의 함몰파트의 높이 및 상기 제2로봇의 함몰파트의 높이가 동일한 것을 특징으로 하는, 서버.
  12. 로봇의 센서가 상기 로봇의 외부에 배치된 사물과 로봇 사이의 거리를 센싱하는 단계;
    상기 로봇의 통신부가 서버 또는 제2로봇으로부터 상기 제2로봇의 위치 정보를 수신하는 단계; 및
    상기 로봇의 제어부가 상기 제2로봇의 위치 정보 또는 상기 센서가 센싱한 거리 정보 중 어느 하나 이상과 상기 제2로봇의 함몰파트의 깊이 정보를 적용하여 상기 제2로봇과의 충돌을 회피하는 이동 경로를 생성하는 단계를 포함하며,
    상기 제어부는 상기 센서가 센싱한 사물의 위치 정보와 상기 제2로봇의 위치 정보를 비교하여 상기 센서가 센싱한 사물이 상기 제2로봇인지 또는 로봇이 아닌 장애물인지를 확인하는 단계를 더 포함하며,
    상기 사물이 제2로봇인 경우 상기 제어부가 생성하는 이동 경로는 상기 사물에서 상기 깊이 정보 이상 이격하여 이동하는 경로인, 충돌을 회피하는 방법.
  13. 로봇의 센서가 상기 로봇의 외부에 배치된 사물과 로봇 사이의 거리를 센싱하는 단계;
    상기 로봇의 통신부가 서버 또는 제2로봇으로부터 상기 제2로봇의 위치 정보를 수신하는 단계; 및
    상기 로봇의 제어부가 상기 제2로봇의 위치 정보 또는 상기 센서가 센싱한 거리 정보 중 어느 하나 이상과 상기 제2로봇의 함몰파트의 깊이 정보를 적용하여 상기 제2로봇과의 충돌을 회피하는 이동 경로를 생성하는 단계를 포함하며, 상기 제어부는 센서가 센싱한 상기 사물과의 거리 정보를 이용하여 사물의 윤곽선을 생성하는 단계; 및
    상기 제어부는 상기 제2로봇의 상기 함몰파트의 윤곽선 정보와 상기 생성한 사물의 윤곽선을 비교하여 상기 사물이 상기 제2로봇인 것을 확인하는 단계를 더 포함하는, 충돌을 회피하는 방법.
  14. 로봇의 센서가 상기 로봇의 외부에 배치된 사물과 로봇 사이의 거리를 센싱하는 단계;
    상기 로봇의 통신부가 서버 또는 제2로봇으로부터 상기 제2로봇의 위치 정보를 수신하는 단계; 및
    상기 로봇의 제어부가 상기 제2로봇의 위치 정보 또는 상기 센서가 센싱한 거리 정보 중 어느 하나 이상과 상기 제2로봇의 함몰파트의 깊이 정보를 적용하여 상기 제2로봇과의 충돌을 회피하는 이동 경로를 생성하는 단계를 포함하며, 상기 통신부는 상기 서버 또는 상기 제2로봇으로부터 상기 제2로봇의 움직임 정보를 수신하는 단계; 및
    상기 제어부는 상기 센서가 센싱한 하나 이상의 사물 중에서 상기 제2로봇과 일정한 크기 이내의 차이로 움직임 상태를 가지는 사물을 상기 제2로봇으로 식별하여 상기 사물을 회피하는 이동 경로를 생성하는 단계를 더 포함하는, 충돌을 회피하는 방법.
  15. 제12항 내지 제14항 중 어느 한 항에 있어서,
    상기 제어부는 상기 이동 경로를 생성함에 있어서, 상기 제2로봇의 위치 정보에 오차 정보를 적용하여 상기 제2로봇과의 충돌을 회피하는 이동 경로를 생성하는 단계를 더 포함하는, 충돌을 회피하는 방법.
  16. 제12항 내지 제14항 중 어느 한 항에 있어서,
    상기 통신부는 상기 서버로부터 상기 제2로봇과 충돌하지 않는 이동 경로를 수신하는 단계를 더 포함하는, 충돌을 회피하는 방법.
  17. 제12항 내지 제14항 중 어느 한 항에 있어서,
    상기 로봇은 외부에 배치된 사물을 촬영하는 카메라 센서를 더 포함하며,
    상기 제어부는 상기 카메라 센서가 촬영한 이미지에 로봇의 이미지가 포함되는지 여부에 따라 외부에 배치된 사물을 로봇으로 판단하는 단계를 더 포함하는, 충돌을 회피하는 방법.
  18. 제12항 내지 제14항 중 어느 한 항에 있어서,
    상기 로봇의 함몰파트의 높이 및 상기 제2로봇의 함몰파트의 높이가 동일한 것을 특징으로 하는, 충돌을 회피하는 방법.
KR1020190143449A 2019-11-11 2019-11-11 충돌을 회피하는 방법 및 이를 구현한 로봇 및 서버 Active KR102810723B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020190143449A KR102810723B1 (ko) 2019-11-11 2019-11-11 충돌을 회피하는 방법 및 이를 구현한 로봇 및 서버
US16/874,269 US11400593B2 (en) 2019-11-11 2020-05-14 Method of avoiding collision, robot and server implementing thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190143449A KR102810723B1 (ko) 2019-11-11 2019-11-11 충돌을 회피하는 방법 및 이를 구현한 로봇 및 서버

Publications (2)

Publication Number Publication Date
KR20210056694A KR20210056694A (ko) 2021-05-20
KR102810723B1 true KR102810723B1 (ko) 2025-05-20

Family

ID=75847493

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190143449A Active KR102810723B1 (ko) 2019-11-11 2019-11-11 충돌을 회피하는 방법 및 이를 구현한 로봇 및 서버

Country Status (2)

Country Link
US (1) US11400593B2 (ko)
KR (1) KR102810723B1 (ko)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10690466B2 (en) 2017-04-19 2020-06-23 Global Tel*Link Corporation Mobile correctional facility robots
US10949940B2 (en) * 2017-04-19 2021-03-16 Global Tel*Link Corporation Mobile correctional facility robots
CN108012326B (zh) * 2017-12-07 2019-06-11 珠海市一微半导体有限公司 基于栅格地图的机器人监视宠物的方法及芯片
JP2023028662A (ja) * 2021-08-20 2023-03-03 株式会社豊田自動織機 自律走行体
JP7813549B2 (ja) * 2021-10-20 2026-02-13 Seqsense株式会社 移動体装置
US12583475B1 (en) * 2022-06-06 2026-03-24 Zoox, Inc. Sensor platform
CN117289688A (zh) * 2022-06-17 2023-12-26 灵动科技(北京)有限公司 一种机器人避障方法、装置及计算机程序产品
KR102872910B1 (ko) * 2022-09-06 2025-10-17 세메스 주식회사 자동 이송 시스템 및 자동 이송 시스템 구동 방법
KR102924457B1 (ko) * 2024-04-25 2026-02-10 주식회사 나비프라 모바일 로봇 유니트, 모바일 로봇 시스템 및 모바일 로봇 시스템 제어 방법

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010231698A (ja) * 2009-03-30 2010-10-14 Advanced Telecommunication Research Institute International ネットワークロボットシステム、ロボット制御装置、ロボット制御方法およびロボット制御プログラム

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102063150B1 (ko) * 2017-01-25 2020-01-07 엘지전자 주식회사 사람을 식별하여 대인 동작을 수행하는 방법 및 이를 구현하는 로봇
US10678228B2 (en) * 2018-04-04 2020-06-09 Invia Robotics, Inc. Autonomous robots performing concerted operation based on shared sensory access and holistic flow of information
EP3599484A1 (en) * 2018-07-23 2020-01-29 Acconeer AB An autonomous moving object
JP2022501724A (ja) * 2018-09-19 2022-01-06 ブレーン コーポレーションBrain Corporation 立ち入り禁止区域を避けるためにロボットのルート変更をするためのシステム及び方法
EP3867757A4 (en) * 2018-10-16 2022-09-14 Brain Corporation Systems and methods for persistent mapping of environmental parameters using a centralized cloud server and a robotic network
WO2020092367A1 (en) * 2018-10-29 2020-05-07 Brain Corporation Systems, apparatuses, and methods for dynamic filtering of high intensity broadband electromagnetic waves from image data from a sensor coupled to a robot

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010231698A (ja) * 2009-03-30 2010-10-14 Advanced Telecommunication Research Institute International ネットワークロボットシステム、ロボット制御装置、ロボット制御方法およびロボット制御プログラム

Also Published As

Publication number Publication date
KR20210056694A (ko) 2021-05-20
US11400593B2 (en) 2022-08-02
US20210138647A1 (en) 2021-05-13

Similar Documents

Publication Publication Date Title
KR102810723B1 (ko) 충돌을 회피하는 방법 및 이를 구현한 로봇 및 서버
US12548327B2 (en) Aerial vehicle smart landing
KR20190134554A (ko) 동적 장애물을 식별하는 방법 및 이를 구현한 로봇
JP4871160B2 (ja) ロボットおよびその制御方法
CN111201448B (zh) 用于产生反演传感器模型的方法和设备以及用于识别障碍物的方法
JP7353747B2 (ja) 情報処理装置、システム、方法、およびプログラム
US11554495B2 (en) Method of localization using multi sensor and robot implementing same
JP6672076B2 (ja) 情報処理装置及び移動体装置
KR102746507B1 (ko) 다중 센서 및 인공지능에 기반하여 맵을 생성하고 노드들의 상관 관계를 설정하며 맵을 이용하여 주행하는 로봇 및 맵을 생성하는 방법
KR102664410B1 (ko) 다중 센서 및 인공지능에 기반하여 맵을 생성하고 맵을 이용하여 주행하는 로봇
US11500391B2 (en) Method for positioning on basis of vision information and robot implementing same
JP6828579B2 (ja) 環境整備ロボットおよびその制御プログラム
KR20180136833A (ko) 3차원 공간의 이동 객체를 식별하는 방법 및 이를 구현하는 로봇
JP2018526748A (ja) 自律移動ロボットと自律移動ロボットの基地局とを有するシステム、自律移動ロボットの基地局、自律移動ロボットのための方法、自律移動ロボットの基地局への自動ドッキング方法
KR20190024467A (ko) 타겟 지향 로컬 경로를 생성하는 방법 및 이를 구현하는 로봇
JP2020126612A (ja) スマートフォンを利用する歩行者を保護するための先端歩行者補助システムを提供する方法及び装置
JP5763384B2 (ja) 移動予測装置、ロボット制御装置、移動予測プログラムおよび移動予測方法
KR20190083727A (ko) 안내 로봇 및 그의 동작 방법
CN115932882A (zh) 通过自主机器人载具提供环境的3d探测的系统
CN111103875B (zh) 避让的方法、设备及存储介质
KR20180112622A (ko) 고정객체와 이동객체의 식별에 기반하여 위치를 설정하는 방법 및 이를 구현하는 로봇
JP7609285B2 (ja) 情報処理装置、通信システム、特定方法、及びプログラム
Hamner et al. An efficient system for combined route traversal and collision avoidance
JP4774401B2 (ja) 自律移動体の経路設定装置
KR20200074488A (ko) 차량 및 그 제어방법

Legal Events

Date Code Title Description
PA0109 Patent application

Patent event code: PA01091R01D

Comment text: Patent Application

Patent event date: 20191111

PG1501 Laying open of application
A201 Request for examination
PA0201 Request for examination

Patent event code: PA02012R01D

Patent event date: 20221031

Comment text: Request for Examination of Application

Patent event code: PA02011R01I

Patent event date: 20191111

Comment text: Patent Application

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

Comment text: Notification of reason for refusal

Patent event date: 20241120

Patent event code: PE09021S01D

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

Patent event code: PE07011S01D

Comment text: Decision to Grant Registration

Patent event date: 20250220

GRNT Written decision to grant
PR0701 Registration of establishment

Comment text: Registration of Establishment

Patent event date: 20250516

Patent event code: PR07011E01D

PR1002 Payment of registration fee

Payment date: 20250516

End annual number: 3

Start annual number: 1

PG1601 Publication of registration