KR20230095588A - 강화 학습 기반의 알고리즘과 경로 계획 기반의 알고리즘을 사용하여 로봇을 제어하는 방법 및 시스템과, 로봇이 배치되는 건물 - Google Patents

강화 학습 기반의 알고리즘과 경로 계획 기반의 알고리즘을 사용하여 로봇을 제어하는 방법 및 시스템과, 로봇이 배치되는 건물 Download PDF

Info

Publication number
KR20230095588A
KR20230095588A KR1020210185225A KR20210185225A KR20230095588A KR 20230095588 A KR20230095588 A KR 20230095588A KR 1020210185225 A KR1020210185225 A KR 1020210185225A KR 20210185225 A KR20210185225 A KR 20210185225A KR 20230095588 A KR20230095588 A KR 20230095588A
Authority
KR
South Korea
Prior art keywords
robot
obstacle
destination
algorithm
movement
Prior art date
Application number
KR1020210185225A
Other languages
English (en)
Other versions
KR102707390B1 (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 KR1020210185225A priority Critical patent/KR102707390B1/ko
Priority to PCT/KR2022/013359 priority patent/WO2023120867A1/ko
Publication of KR20230095588A publication Critical patent/KR20230095588A/ko
Priority to KR1020240123763A priority patent/KR20240141674A/ko
Application granted granted Critical
Publication of KR102707390B1 publication Critical patent/KR102707390B1/ko

Links

Images

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/0212Control of position or course in two dimensions specially adapted to land vehicles with means for defining a desired trajectory
    • G05D1/0221Control of position or course in two dimensions specially adapted to land vehicles with means for defining a desired trajectory involving a learning process
    • 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/60Intended control result
    • G05D1/617Safety or protection, e.g. defining protection zones around obstacles or avoiding hazards
    • G05D1/622Obstacle avoidance
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • 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/1628Programme controls characterised by the control loop
    • B25J9/163Programme controls characterised by the control loop learning, adaptive, model based, rule based expert control
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1656Programme controls characterised by programming, planning systems for manipulators
    • B25J9/1661Programme controls characterised by programming, planning systems for manipulators characterised by task planning, object-oriented languages
    • 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
    • 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
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • G05D1/02Control of position or course in two dimensions
    • G05D1/021Control of position or course in two dimensions specially adapted to land vehicles
    • G05D1/0212Control of position or course in two dimensions specially adapted to land vehicles with means for defining a desired trajectory
    • G05D1/0214Control of position or course in two dimensions specially adapted to land vehicles with means for defining a desired trajectory in accordance with safety or protection criteria, e.g. avoiding hazardous areas
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • G05D1/60Intended control result
    • G05D1/644Optimisation of travel parameters, e.g. of energy consumption, journey time or distance

Landscapes

  • Engineering & Computer Science (AREA)
  • Mechanical Engineering (AREA)
  • Robotics (AREA)
  • Automation & Control Theory (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Remote Sensing (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Aviation & Aerospace Engineering (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)
  • Feedback Control In General (AREA)
  • Manipulator (AREA)

Abstract

강화 학습(Reinforcement Learning)을 통해 미리 학습된 제1 알고리즘에 기반하여 목적지로의 로봇의 이동을 제어하되, 로봇의 목적지로의 이동 중, 공간에 대한 경로 계획에 따라 로봇의 이동을 제어하기 위한 제2 알고리즘에 기반하여 로봇이 장애물에 대한 소정의 회피 조건을 충족하는지 여부를 판정하고, 회피 조건을 충족하는지 여부에 따라, 제1 알고리즘을 사용하여 로봇의 이동을 제어하거나 로봇의 이동을 정지시키는 로봇 제어 방법이 제공된다.

Description

강화 학습 기반의 알고리즘과 경로 계획 기반의 알고리즘을 사용하여 로봇을 제어하는 방법 및 시스템과, 로봇이 배치되는 건물{METHOD AND SYSTEM FOR CONTROLLING ROBOT USING REINFORCEMENT LEARNING BASED ALGORITHM AND PATH PLANNING BASED ALGORITHM, AND BUILDING IN WHICH THE ROBOT IS DISPOSED}
아래의 설명은 강화 학습 기반의 알고리즘과 경로 계획 기반의 알고리즘을 사용하여 로봇의 이동을 제어하는 방법 및 시스템과, 이러한 로봇이 배치되는 건물에 관한 것이다.
자율 주행 로봇은 스스로 주변을 살피고 장애물을 감지하면서 바퀴나 다리를 이용하여 목적지까지 최적 경로를 찾아가는 로봇으로, 자율 주행 차량이나, 물류, 호텔 서비스, 로봇 청소기 등 다양한 분야를 위해 개발 및 활용되고 있다.
로봇이 서비스를 제공하기 위해 건물과 같은 공간 내에서 운용되는 경우, 로봇은 공간 내에서 예측되거나 또는 예측되지 않는 장애물을 적절하게 회피하도록 제어되어야 하며, 경우에 따라서는, 건물 내의 좁은 통로/복도와 같은 협소 구역을 주행해야 할 것이 요구된다.
이러한 로봇의 제어에 있어서는, 로봇의 다른 로봇 또는 기타 장애물과의 충돌 및 간섭을 회피하면서도, 로봇이 불필요하게 경로를 우회하거나 긴 거리를 이동하지 않도록 로봇을 효율적으로 제어하는 것이 중요하다.
한국공개특허 제10-2005-0024840호는 자율이동로봇을 위한 경로계획방법에 관한 기술로, 가정이나 사무실에서 자율적으로 이동하는 이동로봇이 장애물을 회피하면서 목표점까지 안전하고 빠르게 이동할 수 있는 최적경로를 계획하는 방법에 대해 개시하고 있다.
상기에서 설명된 정보는 단지 이해를 돕기 위한 것이며, 종래 기술의 일부를 형성하지 않는 내용을 포함할 수 있으며, 종래 기술이 통상의 기술자에게 제시할 수 있는 것을 포함하지 않을 수 있다.
강화 학습(Reinforcement Learning)을 통해 미리 학습된 제1 알고리즘에 기반하여 목적지로의 로봇의 이동을 제어하되, 로봇의 목적지로의 이동 중, 공간에 대한 경로 계획에 따라 로봇의 이동을 제어하기 위한 제2 알고리즘에 기반하여 로봇이 장애물에 대한 소정의 회피 조건을 충족하는지 여부를 판정하고, 회피 조건을 충족하는지 여부에 따라, 제1 알고리즘을 사용하여 로봇의 이동을 제어하거나 로봇의 이동을 정지시키는 로봇 제어 방법을 제공할 수 있다.
로봇의 목적지로의 이동 중 식별되는 장애물에 대해, 경로 계획 기반의 알고리즘을 사용하여, 해당 장애물을 회피하기 위해 로봇이 소정의 회피 범위를 벗어나야 하는지 여부가 판정될 수 있고, 판정의 결과에 따라 로봇을 정지시켜 효율적으로 로봇을 제어하는 방법을 제공할 수 있다.
일 측면에 있어서, 공간 내에서 이동하는 로봇 또는 로봇을 제어하는 로봇 제어 시스템에 의해 수행되는 로봇 제어 방법에 있어서, 상기 로봇의 이동을 제어하기 위해 강화 학습(Reinforcement Learning)을 통해 미리 학습된 제1 알고리즘에 기반하여, 목적지로의 상기 로봇의 이동을 제어하는 단계, 상기 로봇의 상기 목적지로의 이동 중에, 상기 공간에 대해 구축된 맵에 기반한 경로 계획에 따라 상기 로봇의 이동을 제어하기 위한 제2 알고리즘에 기반하여, 상기 로봇이 장애물에 대한 소정의 회피 조건을 충족하는지 여부를 판정하는 단계 및 상기 회피 조건을 충족하는 경우에는, 상기 제1 알고리즘에 기반한 제어에 따라 상기 목적지로 이동하도록 상기 로봇의 이동을 제어하되, 상기 회피 조건이 충족되지 않는 경우에는, 상기 로봇의 이동을 정지시키도록 상기 로봇을 제어하는 단계를 포함하는, 로봇 제어 방법이 제공된다.
상기 제1 알고리즘과 상기 제2 알고리즘은 상기 로봇 또는 상기 로봇 제어 시스템에서 상기 로봇의 이동을 제어하기 위해 병렬로 실행될 수 있다.
상기 로봇은 상기 공간 내에서 서비스를 제공하는 서비스 로봇이고, 상기 목적지는 상기 서비스를 제공하기 위한 상기 로봇의 최종 목적지 또는 상기 최종 목적지로의 이동을 위해 상기 로봇이 경유하는 경유지일 수 있다.
상기 제1 알고리즘은, 상기 로봇이 이동 중에 장애물을 회피하면서 상기 목적지로 이동 가능하도록 상기 로봇을 제어하도록 구성되고, 상기 제2 알고리즘은, 상기 공간에 대해 구축된 맵에 기반하여 생성된 상기 목적지까지의 경로에 기반한 상기 경로 계획에 따라 상기 로봇의 이동을 제어하도록 구성될 수 있다.
상기 공간에 대해 구축된 맵은 상기 공간에 대한 점유 그리드 맵(occupancy grid map)일 수 있다.
상기 판정하는 단계는, 상기 로봇의 상기 목적지로의 이동 중에 식별되는 장애물에 대해, 상기 경로 계획에 기반하여, 소정의 회피 범위를 벗어나지 않고 상기 장애물을 회피하여 상기 목적지로 이동할 수 있는지 여부를 판정하는 단계를 포함하고, 상기 로봇이 상기 회피 범위를 벗어나지 않고 상기 장애물을 회피하여 상기 목적지로 이동할 수 있는 경우, 상기 로봇은 상기 제1 알고리즘에 기반한 제어에 따라 상기 목적지로 이동하도록 제어되고, 상기 로봇이 상기 회피 범위를 벗어나지 않고 상기 장애물을 회피하여 상기 목적지로 이동할 수 없는 경우, 상기 로봇은 상기 장애물을 앞에 두고 정지하도록 제어될 수 있다.
상기 판정하는 단계는, 상기 공간에 대해 구축된 맵에 기반하여 생성된 상기 목적지까지의 경로에 기반한 상기 경로 계획에 따라 상기 로봇이 상기 장애물을 회피하기 위해 소정의 제1 거리 이상 이동해야 하는 경우, 상기 로봇이 상기 회피 범위를 벗어나지 않고는 상기 장애물을 회피할 수 없는 것으로 판정할 수 있다.
상기 판정하는 단계는, 상기 공간에 대해 구축된 맵에 기반하여, 상기 로봇이, 상기 로봇의 현재 위치 또는 출발지로부터 상기 목적지까지의 직선으로부터 소정의 제2 거리 이상 벗어나지 않고 상기 장애물을 회피하여 상기 목적지로 이동할 수 있는지 여부를 판정하고, 상기 로봇이 상기 제2 거리 이상 벗어나지 않고 상기 장애물을 회피하여 상기 목적지로 이동할 수 없는 경우, 상기 로봇은 상기 장애물을 앞에 두고 정지하도록 제어될 수 있다.
상기 로봇이 다른 통로로 우회하지 않고 회피할 수 있을 만큼 상기 장애물의 크기가 작은 경우, 상기 로봇은 상기 제1 알고리즘에 기반한 제어에 따라 상기 장애물을 다른 통로로 우회하거나 상기 장애물을 앞에 두고 정지하지 않고 상기 장애물을 회피하여 상기 목적지로 이동하도록 제어될 수 있다.
상기 판정하는 단계는, 상기 로봇의 상기 목적지로의 이동 중에 식별되는 장애물에 대해, 상기 경로 계획에 기반하여, 소정의 금지 구역에 진입하지 않고 상기 장애물을 회피하여 상기 목적지로 이동할 수 있는지 여부를 판정하는 단계를 포함하고, 상기 로봇이 상기 금지 구역에 진입하지 않고 상기 장애물을 회피하여 상기 목적지로 이동할 수 있는 경우, 상기 로봇은 상기 제1 알고리즘에 기반한 제어에 따라 상기 목적지로 이동하도록 제어되고, 상기 로봇이 상기 금지 구역에 진입하지 않고 상기 장애물을 회피하여 상기 목적지로 이동할 수 없는 경우, 상기 로봇은 상기 장애물을 앞에 두고 정지하도록 제어될 수 있다.
상기 판정하는 단계는, 상기 로봇의 상기 목적지로의 이동 중에 식별되는 장애물에 대해, 상기 경로 계획에 기반하여, 상기 로봇이 후진하지 않고 상기 장애물을 회피하여 상기 목적지로 이동할 수 있는지 여부를 판정하는 단계를 포함하고, 상기 로봇이 상기 장애물을 회피하기 위해 후진해야 하는 것으로 판정되면, 상기 로봇은 상기 장애물을 앞에 두고 정지하도록 제어될 수 있다.
상기 판정의 결과에 따라, 상기 로봇이 상기 목적지로 이동하기 위한 통로 내에서, 상기 로봇은, 다른 통로로 우회하지 않고 회피할 수 있을 만큼 작은 장애물에 대해서는 상기 제1 알고리즘에 기반한 제어에 따라, 다른 통로로 우회하지 않고 상기 장애물을 회피하여 상기 목적지로 이동하도록 제어되고, 상기 통로 내에서, 상기 로봇의 전방에 상기 장애물로서 다른 로봇이 식별되는 경우, 상기 로봇은 상기 다른 로봇을 앞지르지 않고, 상기 다른 로봇의 뒤에서 대기하도록 제어될 수 있다.
상기 통로는 상기 공간 내의 상기 로봇의 줄서기가 요구되는 영역 또는 둘 이상의 로봇들이 나란히 주행할 수 없는 폭을 갖는 영역일 수 있다.
다른 일 측면에 있어서, 로봇을 위한 컴퓨터 시스템에 있어서, 컴퓨터에서 판독 가능한 명령을 실행하도록 구현되는 적어도 하나의 프로세서를 포함하고, 상기 적어도 하나의 프로세서는, 상기 로봇의 이동을 제어하기 위해 강화 학습(Reinforcement Learning)을 통해 미리 학습된 제1 알고리즘에 기반하여, 목적지로의 상기 로봇의 이동을 제어하고, 상기 로봇의 상기 목적지로의 이동 중에, 상기 공간에 대해 구축된 맵에 기반한 경로 계획에 따라 상기 로봇의 이동을 제어하기 위한 제2 알고리즘에 기반하여, 상기 로봇이 장애물에 대한 소정의 회피 조건을 충족하는지 여부를 판정하고, 상기 회피 조건을 충족하는 경우에는, 상기 제1 알고리즘에 기반한 제어에 따라 상기 목적지로 이동하도록 상기 로봇의 이동을 제어하되, 상기 회피 조건이 충족되지 않는 경우에는, 상기 로봇의 이동을 정지시키도록 상기 로봇을 제어하는, 컴퓨터 시스템이 제공된다.
또 다른 일 측면에 있어서, 건물에 있어서, 상기 건물 내의 공간을 이동하는 적어도 하나의 로봇이 배치되고, 컴퓨터에서 판독 가능한 명령을 실행하도록 구현되는 적어도 하나의 프로세서를 포함하고, 상기 로봇은, 상기 로봇 내에 포함되거나 서버인 컴퓨터 시스템에 의해, 상기 건물 내에서의 이동이 제어되고, 상기 컴퓨터 시스템은, 컴퓨터에서 판독 가능한 명령을 실행하도록 구현되는 적어도 하나의 프로세서를 포함하고, 상기 적어도 하나의 프로세서는, 상기 로봇의 이동을 제어하기 위해 강화 학습(Reinforcement Learning)을 통해 미리 학습된 제1 알고리즘에 기반하여, 목적지로의 상기 로봇의 이동을 제어하고, 상기 로봇의 상기 목적지로의 이동 중에, 상기 공간에 대해 구축된 맵에 기반한 경로 계획에 따라 상기 로봇의 이동을 제어하기 위한 제2 알고리즘에 기반하여, 상기 로봇이 장애물에 대한 소정의 회피 조건을 충족하는지 여부를 판정하고, 상기 회피 조건을 충족하는 경우에는, 상기 제1 알고리즘에 기반한 제어에 따라 상기 목적지로 이동하도록 상기 로봇의 이동을 제어하되, 상기 회피 조건이 충족되지 않는 경우에는, 상기 로봇의 이동을 정지시키도록 상기 로봇을 제어하는, 건물이 제공된다.
병렬로 실행되는 강화 학습 기반의 알고리즘 및 경로 계획 기반의 알고리즘을 사용하여 로봇의 목적지로의 이동을 제어함으로써, 강화 학습 기반의 알고리즘을 통해서는 조절할 수 없었던 장애물에 대한 회피 범위를 제한할 수 있다. 이에 따라, 로봇이 좁은 통로를 주행하거나 장애물에 직면하게 된 때, 목적지로의 경로(예컨대, 전역 경로(global path))를 크게 벗어나는 로봇의 비효율적인 이동이 최소화될 수 있다.
또한, 예컨대, 좁은 통로에서 로봇의 줄서기가 요구되는 경우 등과 같이, 서비스의 제공을 위해 필요한 경우에 있어서, 로봇이 마이너한 장애물을 회피하면서도 앞선 로봇과 적절한 거리를 두고 위치하도록 제어될 수 있다.
도 1은 일 실시예에 따른, 강화 학습 기반의 알고리즘 및 경로 계획 기반의 알고리즘을 사용하여 로봇의 목적지로의 이동을 제어하는 방법을 나타낸다.
도 2 는 일 실시예에 따른, 공간 내에서 서비스를 제공하는 로봇을 나타내는 블록도이다.
도 3 및 도 4는 일 실시예에 따른, 로봇을 제어하는 로봇 제어 시스템을 나타내는 블록도이다.
도 5는 일 실시예에 따른, 강화 학습 기반의 알고리즘 및 경로 계획 기반의 알고리즘을 사용하여 로봇의 목적지로의 이동을 제어하는 로봇을 위한 컴퓨터 시스템의 프로세서를 나타내는 블록도이다.
도 6은 일 실시예에 따른, 강화 학습 기반의 알고리즘 및 경로 계획 기반의 알고리즘을 사용하여 로봇의 목적지로의 이동을 제어하는 방법을 나타내는 흐름도이다.
도 7은 일 예에 따른, 로봇의 목적지로의 이동을 제어함에 있어서, 로봇이 장애물에 대한 소정의 회피 조건을 충족하는지 여부를 판정하는 방법을 나타내는 흐름도이다.
도 8은 일 예에 따른, 로봇이 장애물에 대한 소정의 회피 범위를 벗어나는지 여부에 따라 로봇의 목적지로의 이동을 제어하는 방법을 나타낸다.
도 9는 일 예에 따른, 로봇이 장애물을 회피하기 위해 소정의 금지 구역에 진입해야 하는지 여부에 따라 로봇의 목적지로의 이동을 제어하는 방법을 나타낸다.
도 10은 일 예에 따른, 로봇이 장애물을 회피하기 위해 목적지까지의 경로에 대해 소정의 회피 범위를 벗어나는지 여부에 따라 로봇의 목적지로의 이동을 제어하는 방법을 나타낸다.
도 11은 일 예에 따른, 로봇의 줄서기가 요구되는 영역에서의 로봇의 이동을 제어하는 방법을 나타낸다.
도 12는 일 예에 따른, 경로 계획 기반의 알고리즘이 사용하는 공간에 대한 맵으로서, 점유 그리드 맵(occupancy grid map)을 나타낸다.
이하, 실시예를 첨부한 도면을 참조하여 상세히 설명한다.
도 1은 일 실시예에 따른, 강화 학습 기반의 알고리즘 및 경로 계획 기반의 알고리즘을 사용하여 로봇의 목적지로의 이동을 제어하는 방법을 나타낸다.
도 1에서는 공간(10) 내에서 서비스를 제공하도록 구성되는 로봇(100)이, 로봇(100)의 목적지로의 이동을 제어하기 위해 구성된 알고리즘(즉, 후술될 제1 알고리즘 및 제2 알고리즘)의 실행에 따라, 장애물(30)을 회피하면서 목적지를 향해 이동하는 방법이 도시되었다.
로봇(100)의 목적지로의 이동을 제어하기 위해 구성되는 알고리즘은 로봇(100) 내에서 실행되거나, 또는, 로봇 제어 시스템(120) 내에서 실행될 수 있다.
로봇(100) 내에서 알고리즘이 실행되는 경우, 즉, 알고리즘이 로봇(100)에서 디플로이(deploy)되어 실행되는 경우, 로봇(100)은 알고리즘에서 정의된 바에 따라, 장애물(30)을 회피하고 목적지를 향해 이동하도록 제어될 수 있다. 한편, 로봇 제어 시스템(120) 내에서 이러한 알고리즘이 실행되는 경우, 로봇 제어 시스템(120)로부터의 상기 알고리즘에 기반한 제어 신호(명령), 예컨대, 속도 제어 신호 및/또는 방향 제어 신호에 기반하여 로봇(100)이 제어될 수 있다.
로봇(100)이 이동(또는 주행)하는 공간(10)은 로봇(100)이 서비스를 제공하는 장소로서, 예컨대, 건물 또는 빌딩에 포함되는 실내 및/또는 실외의 공간을 나타낼 수 있다. 건물 또는 빌딩은 복수의 인원(이하, 사용자라 함)들이 근무 또는 상주하는 공간을 포함하며, 예컨대, 복수의 구획된 공간들을 포함할 수 있다. 공간(10)은 건물의 일부(특정 층 또는 해당 층 내의 부분 공간)를 나타낼 수 있다.
로봇(100)은 공간(10) 내에서 서비스를 제공하기 위해 사용되는 서비스 로봇일 수 있다. 로봇(100)은 공간(10)의 적어도 하나의 층에서 서비스를 제공하도록 구성될 수 있다. 도 1에서는 하나의 로봇(100) 만이 도시되었으나, 공간 내에서 배치되어 동작하는 로봇(100)은 복수일 수 있다. 공간(10) 내에서는 로봇(100)의 각각이 이동하여 공간(10) 내의 적절한 위치 또는 적절한 사용자에게 서비스를 제공할 수 있다.
로봇(100)이 제공하는 서비스는 예컨대, 택배 전달 서비스, 주문에 따른 음료(커피 등) 전달 서비스, 청소 서비스, 및 기타 정보/콘텐츠 제공 서비스 중 적어도 하나를 포함할 수 있다.
로봇(100)은 자율 주행을 통해 공간(10)의 소정의 위치에서 또는 소정의 사용자에게 서비스를 제공하도록 구성될 수 있으며, 로봇(100)의 (각각의) 이동 및 서비스의 제공은 로봇 제어 시스템(120)에 의해 제어될 수 있다. 전술한 알고리즘을 통해 제어되는 로봇(100)의 목적지로의 이동은, 로봇(100)의 이러한 서비스의 제공을 위한 소정의 위치로의 이동일 수 있다.
후술될 상세한 설명에서, 로봇(100)이 이동하는 "목적지"는 서비스를 제공하기 위한 로봇(100)의 최종 목적지 또는 최종 목적지로의 이동을 위해 로봇(100)이 경유하는 "경유지"일 수 있다. 일례로, 로봇(100)이 제공하는 서비스가 택배 전달 서비스라면, 목적지는 택배를 픽업하기 위한 픽업 위치 또는 픽업된 택배의 배송 위치가 될 수 있고, 혹은 상기 픽업 위치 또는 배송 위치로 이동하기 위해 로봇(100)이 경유해야 하는 위치가 될 수 있다.
로봇(100) 및 로봇 제어 시스템(120)의 구조에 대해서는 후술될 도 2 내지 도 5를 참조하여 더 자세하게 설명된다.
도시된 것처럼, 로봇(100)은, 목적지로의 이동 중에 장애물(30)에 직면할 수 있고, 장애물(30)을 회피하여 목적지로 이동하도록 제어될 수 있다.
장애물(30)은 공간(10) 내에 일시적으로 또는 비 일시적으로 존재하는 물체로서, 예컨대, 사람, 다른 로봇 등과 같은 이동하는 객체이거나, 공간(10) 내에서 이동하지 않는, 즉, 고정된 사물일 수 있다.
실시예에서는, 로봇(100)은, 로봇(100)의 이동을 제어하기 위해 강화 학습(Reinforcement Learning)을 통해 미리 학습된 제1 알고리즘(즉, 강화 학습 기반의 알고리즘) 및 공간(100)에 대해 구축된 맵에 기반한 경로 계획에 따라 로봇(100)의 이동을 제어하기 위한 제2 알고리즘(즉, 경로 계획 기반의 알고리즘)에 기반하여 제어될 수 있다.
예컨대, 로봇(100)은 제1 알고리즘에 기반하여 목적지로의 이동이 제어될 수 있으며, 직면하는 장애물(30)에 대해 제2 알고리즘에 기반한 판단에 따라 소정의 회피 조건(또는 회피 범위)을 충족하면서 장애물(30)을 회피할 수 있는 것으로 판정되는 경우, 제1 알고리즘에 기반하여 장애물(30)을 회피하도록 제어될 수 있다. 이 때, 소정의 회피 조건(또는 회피 범위)을 충족하면서는 장애물(30)을 회피할 수 없는 것으로 판정되는 경우에는, 로봇(100)은 장애물(30)을 앞에 두고 정지하도록 제어될 수 있다.
즉, 실시예에서는, 제1 알고리즘에 기반하여 로봇(100)의 이동을 제어하여 장애물(30)에 대한 회피 성능을 유지하면서도, 장애물(30)에 대한 회피 범위를 제한하여 로봇(100)의 위험한 이동 및 비효율적인 이동을 최소화하기 위해 제2 알고리즘이 추가로 로봇(100)의 이동을 제어하기 위해 사용될 수 있다.
따라서, 로봇(100)은 장애물(30)을 회피하는 성능이 우수한 제1 알고리즘에 따라 제어되되, 제2 알고리즘에 기반하여 장애물(30)을 회피하기 위한 회피 범위가 제한되어 위험하거나 비효율적인 이동을 하지 않도록 제어될 수 있다.
제1 알고리즘 및 제2 알고리즘에 기반한 로봇(100)의 제어 방법에 대해서는 후술될 도 5 내지 도 12를 참조하여 더 자세하게 설명한다.
도 2 는 일 실시예에 따른, 공간 내에서 서비스를 제공하는 로봇을 나타내는 블록도이다.
전술한 것처럼, 로봇(100)은 공간(10) 내에서 서비스를 제공하기 위해 사용되는 서비스 로봇일 수 있다. 로봇(100)은 자율 주행을 통해 공간(10)의 소정의 위치에서 또는 소정의 사용자에게 서비스를 제공할 수 있다.
로봇(100)은 물리적인 장치일 수 있으며, 도시된 바와 같이, 제어부(104), 구동부(108), 센서부(106) 및 통신부(102)를 포함할 수 있다.
제어부(104)는 로봇(100)에 내장된 물리적인 프로세서일 수 있으며, 별도로 도시하지는 않았으나, 경로 계획 처리 모듈, 맵핑 처리 모듈, 구동 제어 모듈, 로컬리제이션 처리 모듈, 데이터 처리 모듈 및 서비스 처리 모듈을 포함할 수 있다. 이 때, 경로 계획 처리 모듈, 맵핑 처리 모듈 및 로컬리제이션 처리 모듈은 로봇 제어 시스템(120)과 통신이 이루어지지 않는 경우에도 로봇(100)의 실내 자율 주행이 이루어질 수 있도록 하기 위해 실시예에 따라 선택적으로 제어부(104)에 포함되는 것일 수도 있다.
통신부(102)는 로봇(100)이 다른 장치(다른 로봇 또는 로봇 제어 시스템(120) 등)와 통신하기 위한 구성일 수 있다. 말하자면, 통신부(102)는 다른 장치에 대해 데이터 및/또는 정보를 전송/수신하는, 로봇(100)의 안테나, 데이터 버스, 네트워크 인터페이스 카드, 네트워크 인터페이스 칩 및 네트워킹 인터페이스 포트 등과 같은 하드웨어 모듈 또는 네트워크 디바이스 드라이버(driver) 또는 네트워킹 프로그램과 같은 소프트웨어 모듈일 수 있다.
구동부(108)는 로봇(100)의 이동을 제어하며 이동을 가능하게 하는 구성으로서 이를 수행하기 위한 장비를 포함할 수 있다.
센서부(106)는 로봇(100)의 자율 주행 및 서비스 제공에 있어서 요구되는 데이터를 수집하기 위한 구성일 수 있다. 센서부(106)는 고가의 센싱 장비를 포함하지 않을 수 있고, 단지 저가형 초음파 센서 및/또는 저가형 카메라 등과 같은 센서를 포함할 수 있다. 센서부(106)는 전방 및/또는 후방의 다른 로봇이나 사람을 식별하기 위한 센서를 포함할 수 있다. 예컨대, 센서부(106)의 카메라를 통해 다른 로봇, 사람 및 기타 지물들이 장애물(30)로서 식별될 수 있다. 또는, 센서부(106)는 적외선 센서(또는 적외선 카메라)를 포함할 수 있다. 센서부(106)는 카메라 외에 주변의 사용자나, 다른 로봇 또는 지물을 인식/식별하기 위한 센서를 더 포함할 수도 있다. 이처럼 센서부(106)는 장애물(30)을 식별하도록 구성될 수 있다.
일례로, 로봇(100)이 로봇 제어 시스템(120)에 의해 제어되는 로봇 제어 시스템(120) 내에서 로봇(100)의 자율 주행을 위한 알고리즘이 실행되는 경우, 제어부(104)의 데이터 처리 모듈은 센서부(106)의 센서들의 출력값을 포함하는 센싱 데이터를 통신부(102)를 통해 로봇 제어 시스템(120)으로 전송할 수 있다. 로봇 제어 시스템(120)은 공간(10) 내의 실내 맵을 사용하여 생성된 경로 데이터를 로봇(100)으로 전송할 수 있다. 경로 데이터는 통신부(102)를 통해 데이터 처리 모듈로 전달될 수 있다. 데이터 처리 모듈은 경로 데이터를 바로 구동 제어 모듈로 전달할 수 있고, 구동 제어 모듈은 경로 데이터에 따라 구동부(108)를 제어하여 로봇(100)의 실내 자율 주행을 제어할 수 있다. 이에 따라, 로봇(100)은 전술한 제2 알고리즘에 기반하여 자율 주행될 수 있다. 한편, 로봇 제어 시스템(120)에서 전술한 제1 알고리즘이 실행되는 경우, 로봇 제어 시스템(120)은 로봇(100)으로부터 수신한 센싱 데이터에 기반하여 제1 알고리즘에 따라 로봇(120)을 제어하기 위한 제어 신호(예컨대, 속도 및/또는 방향 제어 신호)를 생성할 수 있고, 생성된 제어 신호에 기반하여 로봇(100)이 제어되도록 할 수 있다. 이에 따라, 로봇(100)은 제1 알고리즘에 기반하여 자율 주행될 수 있다.
또는, 로봇(100)과 로봇 제어 시스템(120)이 통신할 수 없는 경우나 로봇(100) 내에서 자율 주행을 위한 알고리즘이 실행되는 경우라면, 데이터 처리 모듈은 센싱 데이터를 로컬리제이션 처리 모듈로 전송하고, 경로 계획 처리 모듈과 맵핑 처리 모듈을 통해 경로 데이터를 생성하여 로봇(100)의 실내 자율 주행을 직접 처리할 수도 있다. 이에 따라, 로봇(100)은 전술한 제2 알고리즘에 기반하여 자율 주행될 수 있다. 한편, 로봇(100)에서 전술한 제1 알고리즘이 실행되는 경우, 로봇(100)의 데이터 처리 모듈은 센싱 데이터에 기반하여 제1 알고리즘에 따라 로봇(120)을 제어하기 위한 제어 신호(예컨대, 속도 및/또는 방향 제어 신호)를 생성할 수 있고, 생성된 제어 신호에 기반하여 로봇(100)이 제어되도록 할 수 있다. 이에 따라, 로봇(100)은 제1 알고리즘에 기반하여 자율 주행될 수 있다.
로봇(100)은 공간(10) 내의 실내 맵을 생성하기 위해 사용되는 맵핑 로봇과는 구별되는 것일 수 있다. 로봇(100)은 고가의 센싱 장비를 포함하지 않기 때문에 저가형 초음파 센서 및/또는 저가형 카메라 등과 같은 센서의 출력값을 이용하여 실내 자율 주행을 처리할 수 있다. 한편, 로봇(100)이 기존에 로봇 제어 시스템(120)과의 통신을 통해 실내 자율 주행을 처리한 적이 있다면, 로봇 제어 시스템(120)으로부터 기존에 수신한 경로 데이터가 포함하는 맵핑 데이터 등을 더 활용함으로써 저가의 센서들을 이용하면서도 보다 정확한 실내 자율 주행이 가능하게 될 수 있다.
다만, 실시예에 따라서는 로봇(100)이 상기 맵핑 로봇을 겸할 수도 있다.
서비스 처리 모듈은 로봇 제어 시스템(120)을 통해 수신되는 명령을 통신부(102)를 통해 또는 통신부(102)와 데이터 처리 모듈을 통해 전달받을 수 있다. 구동부(108)는 로봇(100)의 이동을 위한 장비뿐만 아니라, 로봇(100)이 제공하는 서비스와 관련된 장비를 더 포함할 수 있다. 예컨대, 음식물/택배물 전달 서비스를 수행하기 위해 로봇(100)의 구동부(108)는 음식물/택배물을 적재하기 위한 구성이나 음식물/택배물을 사용자에게 전달하기 위한 구성(일례로, 로봇 암(arm))을 포함할 수 있다. 또한, 로봇(100)은 정보/콘텐츠의 제공을 위한 스피커 및/또는 디스플레이 등을 더 포함할 수도 있다. 서비스 처리 모듈은 제공해야 할 서비스를 위한 구동 명령을 구동 제어 모듈로 전달할 수 있고, 구동 제어 모듈은 구동 명령에 따라 로봇(100)이나 구동부(108)가 포함하는 구성을 제어하여 서비스가 제공될 수 있도록 할 수 있다.
로봇(100)은 전술한 제1 알고리즘 및 제2 알고리즘에 기반한 제어에 따라, 장애물(30)을 회피하면서 목적지로 이동하도록 제어될 수 있다.
전술한 것처럼, 로봇(100)이 로봇(100)의 제어를 위한 센싱 데이터를 로봇 제어 시스템(120)으로 제공할 뿐이고, 로봇(100)의 제어를 위한 제1 알고리즘 및 제2 알고리즘이 로봇 제어 시스템(120)에서 실행되는 경우, 로봇(100)은 브레인리스 로봇에 해당할 수 있다.
한편, 로봇(100)의 각각은 기종이나 제공하는 서비스 등에 따라, 상이한 크기 및 형태를 가질 수 있다.
로봇(100)을 제어하는 로봇 제어 시스템(120)의 구성 및 동작에 대해서는 후술될 도 3 내지 도 5를 참조하여 각각 더 자세하게 설명된다.
이상 도 1을 참조하여 전술된 기술적 특징에 대한 설명은, 도 2에 대해서도 그대로 적용될 수 있으므로 중복되는 설명은 생략한다.
도 3 및 도 4는 일 실시예에 따른, 로봇을 제어하는 로봇 제어 시스템을 나타내는 블록도이다.
로봇 제어 시스템(120)은 전술된 로봇(100)의 공간(10) 내에서의 이동(즉, 주행) 및 로봇(100)에 의한 공간(10) 내에서의 서비스의 제공을 제어하는 장치일 수 있다. 로봇 제어 시스템(120)은 복수의 로봇(100) 각각의 이동 및 로봇(100) 각각의 서비스의 제공을 제어할 수 있다. 로봇 제어 시스템(120)은 로봇(100)과의 통신을 통해, 로봇(100)이 서비스를 제공하기 위한 경로를 설정할 수 있고, 이러한 경로에 관한 정보를 로봇(100)에게 전달할 수 있다. 로봇(100)은 수신된 경로에 관한 정보에 따라 주행할 수 있고, 소정의 위치에서 또는 소정의 사용자에게 서비스를 제공할 수 있다. 로봇 제어 시스템(120)은 상기 설정된 경로에 따라 로봇이 이동(주행)하도록 로봇의 이동을 제어할 수 있다.
로봇 제어 시스템(120)은 적어도 하나의 컴퓨팅 장치를 포함할 수 있다.
로봇 제어 시스템(120)은 전술한 것처럼 로봇(100)의 주행을 위한 경로를 설정하고 로봇(100)의 이동을 제어하는 장치일 수 있다. 로봇 제어 시스템(120)은 적어도 하나의 컴퓨팅 장치를 포함할 수 있고, 공간(10) 내 또는 공간(10) 외부에 위치하는 서버로 구현될 수 있다.
이러한 로봇(100)의 주행을 위한 경로의 설정과 로봇(100)의 이동을 제어는 전술한 제2 알고리즘에 기반한 로봇(100)의 제어를 포함할 수 있다.
로봇 제어 시스템(120)은 도시된 것처럼, 메모리(330), 프로세서(320), 통신부(310) 및 입출력 인터페이스(340)를 포함할 수 있다.
메모리(330)는 컴퓨터에서 판독 가능한 기록매체로서, RAM(random access memory), ROM(read only memory) 및 디스크 드라이브와 같은 비소멸성 대용량 기록장치(permanent mass storage device)를 포함할 수 있다. 여기서 ROM과 비소멸성 대용량 기록장치는 메모리(330)와 분리되어 별도의 영구 저장 장치로서 포함될 수도 있다. 또한, 메모리(330)에는 운영체제와 적어도 하나의 프로그램 코드가 저장될 수 있다. 이러한 소프트웨어 구성요소들은 메모리(330)와는 별도의 컴퓨터에서 판독 가능한 기록매체로부터 로딩될 수 있다. 이러한 별도의 컴퓨터에서 판독 가능한 기록매체는 플로피 드라이브, 디스크, 테이프, DVD/CD-ROM 드라이브, 메모리 카드 등의 컴퓨터에서 판독 가능한 기록매체를 포함할 수 있다. 다른 실시예에서 소프트웨어 구성요소들은 컴퓨터에서 판독 가능한 기록매체가 아닌 통신부(310)를 통해 메모리(330)에 로딩될 수도 있다.
프로세서(320)는 기본적인 산술, 로직 및 입출력 연산을 수행함으로써, 컴퓨터 프로그램의 명령을 처리하도록 구성될 수 있다. 명령은 메모리(330) 또는 통신부(310)에 의해 프로세서(320)로 제공될 수 있다. 예를 들어, 프로세서(320)는 메모리(330)에 로딩된 프로그램 코드에 따라 수신되는 명령을 실행하도록 구성될 수 있다. 이러한 프로세서(320)는 도 4에서 도시된 것과 같은 구성들(410 내지 440)을 포함할 수 있다.
프로세서(320)의 구성들(410 내지 440) 각각은 프로세서(320)의 일부로서 소프트웨어 및/또는 하드웨어 모듈일 수 있고, 프로세서에 의해 구현되는 기능(기능 블록)을 나타낼 수 있다. 프로세서(320)의 구성들(410 내지 440)에 대해서는 도 4를 참조하여 후술한다.
통신부(310)는 로봇 제어 시스템(120)이 다른 장치(로봇(100) 또는 다른 서버 등)와 통신하기 위한 구성일 수 있다. 말하자면, 통신부(310)는 다른 장치에 대해 데이터 및/또는 정보를 전송/수신하는, 로봇 제어 시스템(120)의 안테나, 데이터 버스, 네트워크 인터페이스 카드, 네트워크 인터페이스 칩 및 네트워킹 인터페이스 포트 등과 같은 하드웨어 모듈 또는 네트워크 디바이스 드라이버(driver) 또는 네트워킹 프로그램과 같은 소프트웨어 모듈일 수 있다.
입출력 인터페이스(340)는 키보드 또는 마우스 등과 같은 입력 장치 및 디스플레이나 스피커와 같은 출력 장치와의 인터페이스를 위한 수단일 수 있다.
또한, 다른 실시예들에서 로봇 제어 시스템(120)은 도시된 구성요소들보다 더 많은 구성요소들을 포함할 수도 있다.
도 4를 참조하여 프로세서(320)의 구성들(410 내지 440)에 대해 더 자세하게 설명한다. 프로세서(320)는 도시된 것처럼, 맵 생성 모듈(410), 로컬리제이션 처리 모듈(420), 경로 계획 처리 모듈(430) 및 서비스 운영 모듈(440)을 포함할 수 있다. 이러한 프로세서(320)가 포함하는 구성요소들은, 운영체제의 코드나 적어도 하나의 컴퓨터 프로그램의 코드에 따른 제어 명령(instruction)에 따라 프로세서(320)이 포함하는 적어도 하나의 프로세서가 수행하는 서로 다른 기능들(different functions)의 표현들일 수 있다.
맵 생성 모듈(410)은 공간(10) 내부에서 자율 주행하는 (도시되지 않은) 맵핑 로봇이 목표 시설물(예컨대, 공간(10)의 내부에 대해 생성한 센싱 데이터를 이용하여 목표 시설물의 실내 맵을 생성하기 위한 구성요소일 수 있다.
이 때, 로컬리제이션 처리 모듈(420)은 로봇(100)으로부터 네트워크를 통해 수신되는 센싱 데이터와 맵 생성 모듈(410)을 통해 생성된 목표 시설물의 실내 맵을 이용하여 목표 시설물 내부에서의 로봇(100)의 위치를 결정할 수 있다.
경로 계획 처리 모듈(430)은 상술한 로봇(100)으로부터 수신된 센싱 데이터와 생성된 실내 맵을 이용하여 로봇(100)의 실내 자율 주행을 제어하기 위한 제어 신호를 생성할 수 있다. 예컨대, 경로 계획 처리 모듈(430)은 로봇(100)의 경로(즉, 경로 데이터)를 생성할 수 있다. 생성된 경로(경로 데이터)는 해당 경로를 따르는 로봇(100)의 주행을 위해 로봇(100)에 대해 설정될 수 있다. 로봇 제어 시스템(120)은 생성된 경로에 관한 정보를 네트워크를 통해 로봇(100)으로 전송할 수 있다. 일례로, 경로에 관한 정보는 로봇(100)의 현재 위치를 나타내는 정보, 현재 위치와 실내 맵을 맵핑하기 위한 정보, 그리고 경로 계획 정보를 포함할 수 있다. 경로에 관한 정보에는 로봇(100)이 공간(10) 내의 소정의 위치에서 또는 소정의 사용자에게 서비스를 제공하기 위해 주행해야 하는 경로에 관한 정보가 포함될 수 있다. 경로 계획 처리 모듈(430)은 로봇(100)을 위한 경로(즉, 경로 데이터)를 로봇(100)에 대해 설정할 수 있다. 로봇 제어 시스템(120)은 이러한 설정된 경로에 따라(즉, 설정된 경로를 따라) 로봇(100)이 이동하도록 로봇(100)의 이동을 제어할 수 있다.
이러한 로봇(100)의 주행을 위한 경로의 설정과 로봇(100)의 이동을 제어는, 전술한 제2 알고리즘에 기반한 로봇(100)의 제어를 포함할 수 있다.
서비스 운영 모듈(440)은 로봇(100)이 공간(10) 내에서 제공하는 서비스를 제어하기 위한 기능을 포함할 수 있다. 예를 들어, 로봇 제어 시스템(120) 또는 공간(10)을 운영하는 서비스 제공자는 로봇(100)의 이용자나 제작자에게 로봇 제어 시스템(120)이 제공하는 서비스(예컨대, 클라우드 서비스)를 위한 IDE(Integrated Development Environment)를 제공할 수 있다. 이 때, 로봇(100)의 이용자나 제작자는 로봇(100)이 공간(10) 내에서 제공하는 서비스를 제어하기 위한 소프트웨어를 IDE를 통해 제작하여 로봇 제어 시스템(120)에 등록할 수 있다. 이 경우, 서비스 운영 모듈(440)은 해당 로봇(100)과 연관하여 등록된 소프트웨어를 이용하여 로봇(100)이 제공하는 서비스를 제어할 수 있다. 구체적인 예로, 로봇(100)이 사용자가 요청한 물건(예컨대, 음식물 또는 택배물)을 해당 사용자의 위치로 전달하는 서비스를 제공한다고 가정하면, 로봇 제어 시스템(120)은 로봇(100)의 실내 자율 주행을 제어하여 로봇(100)이 해당 사용자의 위치로 이동하도록 제어할 뿐만 아니라, 목적 위치에 도착한 경우 사용자에게 물건을 전달하고, 사용자 응대 음성을 출력하는 일련의 서비스를 로봇(100)이 제공하도록 관련된 명령을 로봇(100)에게 전달할 수 있다.
로봇 제어 시스템(120)은 로봇(100)을 제어하기 위한 컴퓨터 시스템으로서 서버일 수 있다. 로봇 제어 시스템(120)은 공간(10) 또는 건물의 외부에 배치되는 서버로서, 클라우드 서버일 수 있다. 또는, 실시예에 따라서는 로봇 제어 시스템(120)은 공간(10) 또는 건물의 내부에 배치될 수도 있다.
이상 도 1 및 도 2를 참조하여 전술된 기술적 특징에 대한 설명은, 도 3 및 도 4에 대해서도 그대로 적용될 수 있으므로 중복되는 설명은 생략한다.
도 5는 일 실시예에 따른, 강화 학습 기반의 알고리즘 및 경로 계획 기반의 알고리즘을 사용하여 로봇의 목적지로의 이동을 제어하는 로봇을 위한 컴퓨터 시스템의 프로세서를 나타내는 블록도이다.
도시된 프로세서(500)는 로봇(100)을 위한 컴퓨터 시스템에 포함된 구성요소로서, 예컨대, 전술한 로봇(100)의 제어부(104)의 프로세서 또는 로봇 제어 시스템(120)의 프로세서(320)일 수 있다.
말하자면, 프로세서(500)는 로봇(100)의 장애물(30) 회피 및 목적지로의 이동을 위한 제1 알고리즘 및 제2 알고리즘에 기반한 제어를 수행하는 구성으로서, 로봇(100) 또는 로봇 제어 시스템(120)에 포함되는 구성일 수 있다.
프로세서(500)는 제1 알고리즘 처리부(510) 및 제2 알고리즘 처리부(520)를 포함할 수 있다. 제1 알고리즘 처리부(510)는 로봇(100)의 이동을 제어하기 위해 제1 알고리즘을 실행하는 구성일 수 있고, 제2 알고리즘 처리부(520)는 로봇(100)의 이동을 제어하기 위해 제2 알고리즘을 실행하는 구성일 수 있다.
프로세서(500)의 구성들(510 및 520) 각각은 프로세서(500)의 일부로서 소프트웨어 및/또는 하드웨어 모듈일 수 있고, 프로세서에 의해 구현되는 기능(기능 블록)을 나타낼 수 있다.
제1 알고리즘 처리부(510) 및 제2 알고리즘 처리부(520)는 제1 알고리즘과 제2 알고리즘을 병렬로 실행될 수 있다. 말하자면, 제1 알고리즘과 제2 알고리즘은 로봇(100) 또는 로봇 제어 시스템(120)에서 로봇(100)의 이동을 제어하기 위해 병렬로 또는 동시에 실행될 수 있다.
아래에서는, 제1 알고리즘 및 제2 알고리즘에 대해 좀 더 자세하게 설명한다.
제1 알고리즘은 로봇(100)의 자율 주행을 제어하기 위한 강화 학습 기반의 알고리즘일 수 있다.
강화 학습은 기계 학습(Machine Learning)의 일종으로, 주어진 상황(또는 상태)(state)에 대해 최적의 행동(action)을 선택하도록 하는 학습 방법이며, 강화 학습의 대상이 되는 컴퓨터 프로그램은 에이전트(agent)으로 명명될 수 있다. 에이전트는 주어진 상황에 대해 자신이 취할 행동을 나타내는 폴리시(정책)(policy)을 수립하며, 최대의 보상을 얻을 수 있도록 하는 폴리시를 수립하기 위해 모델을 학습시킬 수 있다.
강화 학습은, 일례로, 로봇(100)을 제어하기 위한 알고리즘을 사람이 직접 만들지 않고 인공지능 에이전트가 시뮬레이션 또는 실세계에서 직접 상호작용하며 개발자가 지정해준 보상(reward)를 최대화 하도록 스스로 로봇(100)의 제어 방법을 학습하는 것일 수 있다.
제1 알고리즘은 이러한 강화 학습을 통해 자율 주행 차량이나 자율 주행 로봇을 제어하기 위한 알고리즘으로서 구현된 것일 수 있다. 강화 학습은 심층 신경망(Deep Neural Network; DNN)를 사용하여 강화 학습을 수행하는 모델인 심층 강화 학습(Deep Reinforcement Learning; DRL)을 포함할 수 있고, 제1 알고리즘은 심층 강화 학습을 통해 구현된 것일 수 있다.
로봇(100)의 자율 주행을 제어함에 있어서, 이러한 강화 학습 기반의 알고리즘, 즉, 제1 알고리즘은 공간(10)에 대해 구축된 맵에 대한 경로 계획(path planning)에 기반한 알고리즘에 비해 장애물 회피 등에 있어서 보다 높은 성능과 견고성을 나타낼 수 있다.
제1 알고리즘은 공간(10)의 환경과의 상호작용을 통해 로봇(100)이 포함하는 센서의 입력을 로봇(100)의 속도에 매핑하기 위한 최적의 파라미터를 학습하도록 구현될 수 있다.
따라서, 제1 알고리즘은, 로봇(100)이 이동 중에 장애물을 회피하면서 목적지로 이동 가능하도록 로봇(100)을 제어하도록 구성될 수 있다.
제1 알고리즘은, 장애물(30)을 회피하고 목적지로 이동하기 위해 수단과 방법을 가리지 않을 수 있다. 예컨대, 제1 알고리즘에 기반하여서만 로봇(100)이 제어될 경우에는 비교적 드물지만 심각한 결과가 될 수 있는 행동으로부터 사용자 또는 장애물을 보호하려는 (이러한 보호로 인해 성능 손실이 거의 발생하지 않더라도) 특별한 시도를 하지 않을 수 있다.
또한, 제1 알고리즘에 기반하여서만 로봇(100)이 제어될 경우에는, 로봇(100)이 장애물(30)을 회피하기 위한 회피 범위가 제한되지 않음으로써 장애물(30)을 회피하기 위해 지나치게 멀리 우회하는 경우가 발생할 수 있다. 또한, 제1 알고리즘에 기반하여서만 제어되는 로봇(100)은 좁은 통로에서 줄서기가 필요하여 로봇(100)이 대기하여 순차적으로 빠져나가야 하는 상황에서도, 전방에 위치된 다른 로봇을 앞질러 목적지로 이동하려고 시도하거나, 이러한 다른 로봇을 회피할 수 없는 경우에는 제자리에서 회전하게 될 수 있다.
이처럼, 제1 알고리즘에 기반하여서만 로봇(100)이 제어될 경우에는 안전 또는 로봇(100)이 제공하는 서비스 상의 필요에 따라 장애물(30)을 회피하지 않고 로봇(100)을 대기하도록 제어하기가 어렵게 될 수 있으며, 로봇(100)이 장애물(30)을 회피하기 위해 공간(10) 내의 금지 구역에 진입하게 되는 경우도 발생할 수 있다.
실시예에서는, 제1 알고리즘에 기반하여 로봇(100)의 이동을 제어하여 장애물(30)에 대한 회피 성능을 유지하면서도, 장애물(30)에 대한 회피 범위를 제한하여 로봇(100)의 위험한 이동 및 비효율적인 이동을 최소화하기 위해 제2 알고리즘이 추가로 로봇(100)의 이동을 제어하기 위해 사용될 수 있다.
제2 알고리즘은 공간(10)에 대해 구축된 맵(예컨대, 실내 맵)에 기반한 경로 계획에 따라 로봇(100)의 자율 주행을 제어하기 위한 경로 계획 기반의 알고리즘일 수 있다. 예컨대, 제2 알고리즘은 공간(10)에 대해 구축된 맵에 기반하여 생성된 목적지까지의 경로에 기반한 경로 계획에 따라 로봇(100)의 이동을 제어하도록 구성될 수 있다.
제2 알고리즘은 공간(10)에 대해 구축된 맵에 기반하여 로봇(100)이 목적지로 이동하기 위한 최적의 경로를 결정하고, 해당 경로를 따라 장애물(30)을 회피하면서 이동하도록 로봇(100)을 제어하기 위한 알고리즘일 수 있다. 공간(10)에 대한 맵은 별도의 맵핑 로봇에 의해 생성된 것일 수 있다. 공간(100)에 대해 구축된 맵은, 예컨대, 공간(100)에 대한 점유 그리드 맵(occupancy grid map)일 수 있다.
관련하여, 도 12는 일 예에 따른, 경로 계획 기반의 알고리즘이 사용하는 공간에 대한 맵으로서, 점유 그리드 맵(occupancy grid map)을 나타낸다.
도시된 점유 그리드 맵(100)은 건물 내의 공간(10)에 대한 것으로서, 맵핑 로봇에 의해 생성된 것일 수 있다. 도시된 경로(1210)는 일 예에 따른 로봇(100)의 현재 위치 또는 출발지로부터 목적지로의 경로를 나타낼 수 있다. 경로(1210)는 복수의 노드들과, 노드들 간을 연결하는 에지들로 구성될 수 있다. 각각의 노드는 경로 상에서 로봇(100)이 경유해야 할 경유지(또는 목적지)를 나타낼 수 있다. 노드는 미리 설정된 원칙에 따라 설정되는 것일 수 있다.
점유 그리드 맵을 사용하는 경로 계획 기반의 알고리즘인, 점유 그리드 기반의 플래너(occupancy grid based planner)를 사용하여서만 로봇(100)을 제어하는 경우에는, 장애물(30)의 회피가 가능하며 장애물(30)에 대한 회피 범위를 조절하는 것 역시 가능하지만, 이러한 알고리즘은 로봇(100)의 센싱 데이터 또는 측위에 있어서 오차에 취약하므로, 상기 오차의 발생 시 로봇(100)의 목적지로의 이동의 제어가 효과적으로 수행되지 않게 될 수 있다.
실시예에서는, 제1 알고리즘 및 제2 알고리즘이 컴퓨터 시스템 내에서 병렬로 실행됨으로써, 제1 알고리즘에 기반하여 로봇(100)의 이동이 제어되어 장애물(30)에 대한 회피 성능이 유지되면서도, 제2 알고리즘에 기반하여 장애물(30)에 대한 회피 범위가 제한되어 로봇(100)의 위험한 이동 및 비효율적인 이동이 최소화될 수 있다.
즉, 실시예에서는, 제1 알고리즘과 제2 알고리즘을 컴퓨터 시스템에서 병렬로 실행하되, 제2 알고리즘을 보조 플래너로서 사용할 수 있다. 이러한 제2 알고리즘은, 공간(10)에 대해 구축된 맵에 기반한 경로 계획에 따라, 로봇(100)이 소정의 회피 조건(또는 회피 범위)을 충족하면서 장애물(30)을 회피할 수 있을지 여부를 판단하기 위해 사용될 수 있다.
따라서, 실시예에서는, 로봇(100)이 장애물(30)에 직면한 경우에 있어서, 제2 알고리즘에 기반한 판단에 따라 장애물(30)을 회피하기 위해 로봇(100)이 경로 계획에 따른 경로(global path)로부터 일정 거리 이상 벗어나야 하는 경우에는, 로봇(100)은 해당 장애물(30)을 회피하지 않고 정지하여 대기하도록 제어될 수 있다. 이처럼, 실시예에서는 제1 알고리즘과 제2 알고리즘이 병렬로 실행되어, 제2 알고리즘에 의해 소정의 회피 조건(또는 회피 범위)을 만족하면서 장애물(30)을 회피하게 되는 것이 불가능한 것으로 판정되는 경우에는, 제1 알고리즘에 기반한 명령을 무시하고 로봇(100)을 정지시킬 수 있다. 한편, 로봇(100)은, 장애물(30)이 회피가 가능한 충분히 작은 것이거나 일정 거리를 벗어나지 않고 회피가 가능한 것이면, 제1 알고리즘에 기반하여 장애물(30)을 회피하도록 제어될 수 있다.
제1 알고리즘 및 제2 알고리즘에 기반한 로봇(100)의 제어 방법에 대해서는 후술될 도 6 내지 도 11를 참조하여 더 자세하게 설명한다.
이상 도 1 내지 도 4를 참조하여 전술된 기술적 특징에 대한 설명은, 도 5 및 도 12에 대해서도 그대로 적용될 수 있으므로 중복되는 설명은 생략한다.
후술될 상세한 설명에서는, 설명의 편의상 도 5를 참조하여 전술한 프로세서(500)를 포함하는 컴퓨터 시스템에 의해 수행되는 동작으로 로봇의 목적지로의 이동을 제어하는 방법을 설명한다.
도 6은 일 실시예에 따른, 강화 학습 기반의 알고리즘 및 경로 계획 기반의 알고리즘을 사용하여 로봇의 목적지로의 이동을 제어하는 방법을 나타내는 흐름도이다.
단계(610)에서, 컴퓨터 시스템은, 로봇(100)의 이동을 제어하기 위해 강화 학습(Reinforcement Learning)을 통해 미리 학습된 제1 알고리즘에 기반하여, 목적지로의 로봇(100)의 이동을 제어할 수 있다. 즉, 로봇(100)은 강화 학습 기반의 알고리즘에 기반하여, 목적지로의 이동 중에 식별되는 장애물을 회피하면서 이동하도록 제어될 수 있다.
목적지는 서비스를 제공하기 위한 로봇(100)의 최종 목적지 또는 최종 목적지로의 이동을 위해 로봇(100)이 경유하는 경유지일 수 있다.
단계(620)에서, 컴퓨터 시스템은, 로봇(100)의 목적지로의 이동 중에, 공간(10)에 대해 구축된 맵에 기반한 경로 계획에 따라 로봇(100)의 이동을 제어하기 위한 제2 알고리즘에 기반하여, 로봇(100)이 장애물(30)에 대한 소정의 회피 조건을 충족하는지 여부를 판정할 수 있다.
컴퓨터 시스템에서는, 제1 알고리즘과 제2 알고리즘이 로봇(100)의 이동을 제어하기 위해 병렬로 또는 동시에 실행되므로, 단계(620)에서의 판정은 로봇(100)의 목적지로의 이동 중에 상시적으로 수행될 수 있다. 즉, 단계(620)에서의 판정은 로봇(100)의 이동 중에 실시간으로 이루어질 수 있다.
후술될 회피 범위 및 금지 구역 등을 포함하는 회피 조건은 로봇(100) 또는 로봇 제어 시스템(120)의 관리자에 의해 설정될 수 있다. 관리자는 제2 알고리즘에 기반한 경로 계획을 위한 조건으로서 상기 회피 조건을 설정할 수 있다.
이에 따라, 컴퓨터 시스템은, 로봇(100)의 이동 중에 로봇(100)에 의해 장애물(30)이 식별되거나 장애물(30)에 직면하는 경우에 있어서, 상기 회피 조건의 충족 여부를 판정할 수 있다.
장애물(30)에 대한 회피 조건의 충족 여부를 판정하여 로봇(100)을 제어하는 구체적인 방법에 대해서는 후술될 도 7 내지 도 11을 참조하여 더 자세하게 설명된다.
단계(630)에서, 컴퓨터 시스템은, 회피 조건을 충족하지 여부에 따라 로봇(100)을 제어할 수 있다. 예컨대, 컴퓨터 시스템은, 회피 조건이 충족되는 경우에는, 제1 알고리즘에 기반한 제어에 따라 목적지로 이동하도록 로봇(100)의 이동을 제어할 수 있다. 또한, 컴퓨터 시스템은, 회피 조건이 충족되지 않는 경우에는, 로봇(100)의 이동을 정지시키도록 로봇(100)을 제어할 수 있다. 컴퓨터 시스템이 로봇(100)의 이동을 정지시키도록 로봇(100)을 제어하는 것은 로봇(100)이 정지하도록 로봇(100)에 인터럽트를 전달하는 것일 수 있다.
따라서, 로봇(100)은 제2 알고리즘에 기반하여 제한된 장애물(30)에 대한 회피 조건 또는 회피 범위가 만족되는 경우에만 장애물(30)을 회피하도록 제어될 수 있고, 상기 회피 조건 또는 회피 범위가 만족되지 않는 경우에는 장애물(30)을 회피하지 않고 정지하도록 제어될 수 있다. 컴퓨터 시스템은 장애물(30)이 극복된 후(예컨대, 장애물(30)이 다른 위치로 이동한 후)에 다시 로봇(100)을 목적지로 이동하도록 제어할 수 있다.
이상 도 1 내지 도 5 및 도 12를 참조하여 전술된 기술적 특징에 대한 설명은, 도 6에 대해서도 그대로 적용될 수 있으므로 중복되는 설명은 생략한다.
도 7은 일 예에 따른, 로봇의 목적지로의 이동을 제어함에 있어서, 로봇이 장애물에 대한 소정의 회피 조건을 충족하는지 여부를 판정하는 방법을 나타내는 흐름도이다.
단계(710)에서, 컴퓨터 시스템은, 로봇(100)의 목적지로의 이동 중에 장애물(30)이 식별되는 경우, 제2 알고리즘에 따른 경로 계획에 기반하여, 소정의 회피 범위를 벗어나지 않고 장애물(30)을 회피하여 로봇(100)이 목적지로 이동할 수 있는지 여부를 판정할 수 있다.
회피 조건은 전술한 회피 조건에 해당하는 것으로서, 로봇(100) 또는 로봇 제어 시스템(120)의 관리자에 의해 설정될 수 있다. 회피 조건은 로봇(100)이 이동하는 거리 및/또는 로봇(100)의 현재 위치로부터의 반경을 포함할 수 있다.
로봇(100)이 회피 범위를 벗어나지 않고 장애물(30)을 회피하여 목적지로 이동할 수 있는 것으로 판정된 경우, 로봇(100)은 제1 알고리즘에 기반한 제어에 따라 목적지로 이동하도록 제어될 수 있다. 한편, 로봇(100)이 회피 범위를 벗어나지 않고 장애물(30)을 회피하여 목적지로 이동할 수 없는 경우, 로봇(100)은 장애물(30)을 앞에 두고 정지하도록 제어될 수 있다.
예컨대, 컴퓨터 시스템은, 공간(10)에 대해 구축된 맵에 기반하여 생성된 목적지까지의 경로(예컨대, 전역 경로(global path))에 기반한 경로 계획에 따라, 로봇(100)이 장애물(30)을 회피하기 위해 소정의 제1 거리 이상 이동해야 하는 경우(예컨대, 소정의 제1 거리 이상 우회해야 하는 경우), 로봇(100)이 회피 범위를 벗어나지 않고는 장애물(30)을 회피할 수 없는 것으로 판정할 수 있다. 제2 알고리즘에 따른 경로 계획 상 로봇(100)이 장애물(30)을 회피하기 위해 현재 위치로부터 일정 반경 이상을 벗어나야 하거나, 일정 거리 이상을 이동해야 할 경우, 컴퓨터 시스템은 로봇(100)이 회피 범위를 벗어나지 않고는 장애물(30)을 회피할 수 없는 것으로 판정할 수 있다. 이 때, 로봇(100)은 제1 알고리즘에 기반한 제어 명령을 무시하고, 장애물(30)을 회피하지 않고 정지하도록 제어될 수 있다.
관련하여, 도 8은 일 예에 따른, 로봇이 장애물에 대한 소정의 회피 범위를 벗어나는지 여부에 따라 로봇의 목적지로의 이동을 제어하는 방법을 나타낸다.
도시된 예시에서, 로봇(100)은 목적지로 이동함에 있어서 전방의 장애물(800)을 식별할 수 있다. 컴퓨터 시스템(100)은 제2 알고리즘에 따른 경로 계획에 기반하여, 식별된 장애물(30)을 회피하기 위한 우회 경로가 소정의 회피 범위를 벗어나는지 여부를 판정할 수 있다. 예컨대, 컴퓨터 시스템(100)은 우회 경로를 통해 이동할 경우 로봇(100)이 이동해야 하는 추가 거리가 소정의 값 이상이거나, 우회 경로를 통해 이동할 경우 로봇(100)이 현재 위치로부터 일정 반경 이상을 벗어나는 경우, 우회 경로가 소정의 회피 범위를 벗어나는 것으로 판정할 수 있다. 이 때, 로봇(100)은 제1 알고리즘에 기반한 제어 명령을 무시하고, 장애물(30)을 회피하지 않고 정지하도록 제어될 수 있다.
또는, 컴퓨터 시스템은, 공간(10)에 대해 구축된 맵에 기반한 경로 계획에 따라, 로봇(100)이 장애물(30)을 회피하기 위해, 목적지까지의 경로로서, 장애물(30)을 무시하고 로봇(100)의 현재 위치 또는 출발지로부터 목적지까지를 연결한 경로를 소정의 값 이상 벗어나야 하는 경우, 로봇(100)이 회피 범위를 벗어나지 않고는 장애물(30)을 회피할 수 없는 것으로 판정할 수 있다.
예컨대, 컴퓨터 시스템은, 공간(10)에 대해 구축된 맵에 기반하여 로봇(100)이, 로봇(100)의 현재 위치 또는 출발지로부터 목적지까지의 직선으로부터 소정의 제2 거리 이상 벗어나지 않고 장애물(100)을 회피하여 목적지로 이동할 수 있는지 여부를 판정할 수 있다. 상기 직선은 현재 위치 또는 출발지로부터 목적지까지의 경로(global path)에 해당할 수 있다. 컴퓨터 시스템은, 로봇(100)이 제2 거리 이상 벗어나지 않고 장애물(30)을 회피하여 목적지로 이동할 수 없는 것으로 판정된 경우, 로봇(100)을 장애물(30)을 앞에 두고 정지하도록 제어할 수 있다.
관련하여, 도 10은 일 예에 따른, 로봇이 장애물을 회피하기 위해 목적지까지의 경로에 대해 소정의 회피 범위를 벗어나는지 여부에 따라 로봇의 목적지로의 이동을 제어하는 방법을 나타낸다.
도시된 포인트(1010)는 출발지 또는 로봇(100)의 현재 위치일 수 있고, 포인트(1020)는 목적지일 수 있다. 포인트(1010) 및 포인트(1020)를 연결한 직선은 전술한 직선에 해당할 수 있다. 이러한 직선으로부터 수선의 발을 내려 소정의 제2 거리가 정해질 수 있다. 제2 거리는 로봇(100) 또는 로봇 제어 시스템(120)의 관리자에 의해 설정되는 값인 회피 범위로서, 예컨대, 1m일 수 있다.
로봇이 상기 직선으로부터의 제2 거리를 벗어나지 않고 장애물(1030)을 회피하면서 목적지(1020)로 이동할 수 있는 것으로 판정되는 경우, 로봇(100)은 제1 알고리즘에 기반하여 목적지로 이동하도록 제어될 수 있고, 그렇지 않은 경우, 로봇(100)은 장애물(1030)을 회피하지 않고 장애물(1030)을 앞에 두고 정지하도록 제어될 수 있다. 한편, 장애물(1030)을 우회하기 위한 우회 경로 1이 존재하더라도, 이러한 우회 경로 1의 이용은 상기 직선으로부터의 제2 거리를 벗어나는 것이므로 고려되지 않을 수 있다.
도시된 실시예에서 회피 범위 내에 있어서 제1 알고리즘에 기반한 제어에 따라 회피가 가능하게 되는 장애물(1030)은, 로봇(100)이 제1 알고리즘에 기반한 제어를 통해 쉽게 회피가 가능한 충분히 작은 장애물로 간주될 수 있다.
단계(720)에서, 컴퓨터 시스템은, 로봇(100)의 목적지로의 이동 중에 장애물(30)이 식별되는 경우, 제2 알고리즘에 따른 경로 계획에 기반하여, 소정의 금지 구역에 진입하지 않고 장애물(30)을 회피하여 로봇(100)이 목적지로 이동할 수 있는지 여부를 판정할 수 있다. 금지 구역은 로봇(100) 또는 로봇 제어 시스템(120)의 관리자에 의해 설정되는 것으로서, 로봇(100)의 진입이 허용되지 않는 공간(10) 내의 영역일 수 있다.
컴퓨터 시스템은, 로봇(100)이 금지 구역에 진입하지 않고 장애물(30)을 회피하여 목적지로 이동할 수 있는 경우, 로봇(100)을 제1 알고리즘에 기반하여 목적지로 이동하도록 제어할 수 있다. 컴퓨터 시스템은, 로봇(100)이 금지 구역에 진입하지 않고는 장애물(30)을 회피하여 목적지로 이동할 수 없는 경우, 또는, 금지 구역에 진입하지 않기 위해서는 소정의 거리 이상을 우회해야 하는 경우에는 로봇(100)은 장애물(30)을 앞에 두고 정지하도록 제어될 수 있다.
관련하여, 도 9는 일 예에 따른, 로봇이 장애물을 회피하기 위해 소정의 금지 구역에 진입해야 하는지 여부에 따라 로봇의 목적지로의 이동을 제어하는 방법을 나타낸다.
금지 구역(900)은 로봇(100) 또는 로봇 제어 시스템(120)의 관리자에 의해 설정되는 것으로서, 예컨대, 화장실, 로봇(100)의 비업무 공간, 기타 제한 구역일 수 있다. 금지 구역(900)은 공간(10)에 대해 생성되는 맵 상에서 식별될 수 있다. 따라서, 제2 알고리즘에 따른 경로 계획을 통해, 로봇(100)이 장애물(800)을 회피하기 위해 금지 구역(900)에 진입해야 하는지 여부가 판정될 수 있다. 도시된 것처럼, 로봇(100)이 금지 구역(900)에 진입하지 않고는 장애물(800)을 회피하여 목적지로 이동할 수 없는 경우에는 로봇(100)은 장애물(800)을 앞에 두고 정지하도록 제어될 수 있다.
단계(730)에서, 컴퓨터 시스템은, 로봇(100)의 목적지로의 이동 중에 장애물(30)이 식별되는 경우, 제2 알고리즘에 따른 경로 계획에 기반하여, 로봇(100)이 후진하지 않고 장애물(30)을 회피하여 목적지로 이동할 수 있는지 여부를 판정할 수 있다. 로봇(100)이 장애물(30)을 회피하기 위해 후진해야 하는 것으로 판정되면, 컴퓨터 시스템은 로봇(100)을 장애물(30)을 앞에 두고 정지하도록 제어할 수 있다. 이처럼, 실시예에서는, 장애물(30)을 회피하기 위한 우회 경로가 로봇(100)의 후진을 요구하는 경우 이러한 우회 경로는 로봇(100)의 이동 제어에 있어서 고려되지 않도록 할 수 있다.
이상 도 1 내지 도 6 및 도 12를 참조하여 전술된 기술적 특징에 대한 설명은, 도 7 내지 도 10에 대해서도 그대로 적용될 수 있으므로 중복되는 설명은 생략한다.
도 11은 일 예에 따른, 로봇의 줄서기가 요구되는 영역에서의 로봇의 이동을 제어하는 방법을 나타낸다.
전술한 것처럼, 로봇(100)이 다른 통로로 우회하지 않고 회피할 수 있을 만큼 장애물(1120)의 크기가 작은 경우에는, 로봇(100)은 장애물(1120)제1 알고리즘에 기반한 제어에 따라 장애물(1120)을 다른 통로로 우회하거나 장애물(1120)을 앞에 두고 정지하거나 하지 않고, 장애물(1120)을 회피하여 목적지로 이동하도록 제어될 수 있다.
예컨대, 전술한 도 10을 참조하여 설명한 것과 같은 방법에 따라, 제1 알고리즘에 기반한 제어를 통해 회피될 수 있는 장애물(1120)은 충분히 작은 장애물(1120)인 것으로 판정될 수 있다. 이에 따라, 제2 알고리즘에 기반한 판정에 따라, 충분히 작은 장애물(1120)은 제1 알고리즘에 기반한 제어에 따라 회피되고, 그렇지 않은 장애물은 로봇(100)의 제어가 인터럽트되어 회피되지 않을 수 있다.
또는, 장애물(1120)이 충분히 작은지 여부는 로봇(100)의 센서부(106)에 의한 센싱에 따라 컴퓨터 시스템에 의해 결정될 수도 있다.
도시된 통로(1110)는 공간(10) 내의 로봇(100)의 줄서기가 요구되는 영역일 수 있다. 또는, 통로(1110)는 협소 구역(confined/narrow area)으로서, 예컨대, 둘 이상의 로봇들이 나란히(횡방향으로) 주행할 수 없는 폭을 갖는 영일 수 있다. 일례로, 통로(1110)는 복수의 로봇들의 각각이 순차적으로 일렬로 통과할 것이 요구되는 공간(10) 내의 구간일 수 있다.
예컨대, 통로(1110)는 택배 전달 서비스를 제공하는 로봇(100)이 택배를 픽업하기 위한 위치로 이동하기 위해 줄을 서는 영역일 수 있다.
컴퓨터 시스템(100)은, 도 6을 참조하여 전술한 단계(620)에서의 판정의 결과에 따라, 통로(110) 내에서, 로봇(100)이 다른 통로로 우회하지 않고 회피할 수 있을 만큼 작은 장애물(1120)에 대해서는 제1 알고리즘에 기반한 제어에 따라, 다른 통로로 우회하지 않고 장애물(1120)을 회피하여 목적지로 이동하도록 제어될 수 있다.
이 때, 컴퓨터 시스템(100)은 통로(1110) 내에서, 로봇(100)의 전방에 다른 로봇이 식별되는 때, 로봇(100)은 다른 로봇을 앞지르지 않고, 다른 로봇의 뒤에서 대기하도록 제어될 수 있다. 말하자면, 컴퓨터 시스템(100)은 통로(1110) 내에서 장애물(30)로서 다른 로봇이 식별되는 경우, 이러한 다른 로봇은 충분히 작은 장애물(1120)에는 해당하지 않는 것으로 판단할 수 있고, 따라서, 로봇(100)은 다른 로봇의 뒤에서, 즉, 다른 로봇을 앞에 두고 대기하도록 제어될 수 있다. 따라서, 통로(1110) 내에서, 로봇들은 새치기를 하거나 다른 로봇을 가로질러 무리하게 목적지를 향해 이동하지 않고 줄서기 할 수 있고, 각 로봇이 순차적으로 목적지로 이동하게 될 수 있다.
실시예는, 통로(1110)에 진입하는 로봇(100)을 궤적 추종(trajectory following) 알고리즘에 기반하여 제어하는 경우에 비해, 통로(1110)에서의 우수한 로봇(100)의 줄서기 성능을 달성할 수 있다. 궤적 추종 알고리즘에 따라 로봇(100)이 제어되는 경우, 로봇(100)은 장애물이 식별되면 정지되는 바, 회피가 가능한 작은 장애물(1120)이 식별되는 경우에도 정지하게 되는 문제가 발생할 수 있다. 또한, 로봇(100)에 대한 측위 오차가 발생하여, 로봇(1110)이 통로(1110)에 인접하게 되는 경우, 로봇(100)이 더 이상 움직일 수 없게 되는 문제가 발생할 수 있다.
이에 비해, 실시예에서는, 컴퓨터 시스템(100)은 식별되는 장애물(30)에 대해 제2 알고리즘에 기반한 판정에 따라, 작은 장애물(1120)은 제1 알고리즘에 기반한 제어에 따라 회피하되, 그렇지 않은 장애물(예컨대, 다른 로봇)은 회피하지 않고, 장애물을 앞에 두고 정지하도록 로봇(100)을 제어할 수 있다.
이상 도 1 내지 도 10 및 도 12를 참조하여 전술된 기술적 특징에 대한 설명은, 도 11에 대해서도 그대로 적용될 수 있으므로 중복되는 설명은 생략한다.
이상에서 설명된 시스템 또는 장치는 하드웨어 구성요소, 소프트웨어 구성요소 또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치 및 구성요소는, 예를 들어, 프로세서, 콘트롤러, ALU(arithmetic logic unit), 디지털 신호 프로세서(digital signal processor), 마이크로컴퓨터, FPGA(field programmable gate array), PLU(programmable logic unit), 마이크로프로세서, 또는 명령(instruction)을 실행하고 응답할 수 있는 다른 어떠한 장치와 같이, 하나 이상의 범용 컴퓨터 또는 특수 목적 컴퓨터를 이용하여 구현될 수 있다. 처리 장치는 운영 체제(OS) 및 상기 운영 체제 상에서 수행되는 하나 이상의 소프트웨어 어플리케이션을 수행할 수 있다. 또한, 처리 장치는 소프트웨어의 실행에 응답하여, 데이터를 접근, 저장, 조작, 처리 및 생성할 수도 있다. 이해의 편의를 위하여, 처리 장치는 하나가 사용되는 것으로 설명된 경우도 있지만, 해당 기술분야에서 통상의 지식을 가진 자는, 처리 장치가 복수 개의 처리 요소(processing element) 및/또는 복수 유형의 처리 요소를 포함할 수 있음을 알 수 있다. 예를 들어, 처리 장치는 복수 개의 프로세서 또는 하나의 프로세서 및 하나의 콘트롤러를 포함할 수 있다. 또한, 병렬 프로세서(parallel processor)와 같은, 다른 처리 구성(processing configuration)도 가능하다.
소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장 매체 또는 장치에 영구적으로, 또는 일시적으로 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록매체에 저장될 수 있다.
실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다.
이상과 같이 실시예들이 비록 한정된 실시예와 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기의 기재로부터 다양한 수정 및 변형이 가능하다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.
그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 특허청구범위의 범위에 속한다.

Claims (17)

  1. 공간 내에서 이동하는 로봇 또는 로봇을 제어하는 로봇 제어 시스템에 의해 수행되는 로봇 제어 방법에 있어서,
    상기 로봇의 이동을 제어하기 위해 강화 학습(Reinforcement Learning)을 통해 미리 학습된 제1 알고리즘에 기반하여, 목적지로의 상기 로봇의 이동을 제어하는 단계;
    상기 로봇의 상기 목적지로의 이동 중에, 상기 공간에 대해 구축된 맵에 기반한 경로 계획에 따라 상기 로봇의 이동을 제어하기 위한 제2 알고리즘에 기반하여, 상기 로봇이 장애물에 대한 소정의 회피 조건을 충족하는지 여부를 판정하는 단계; 및
    상기 회피 조건을 충족하는 경우에는, 상기 제1 알고리즘에 기반한 제어에 따라 상기 목적지로 이동하도록 상기 로봇의 이동을 제어하되, 상기 회피 조건이 충족되지 않는 경우에는, 상기 로봇의 이동을 정지시키도록 상기 로봇을 제어하는 단계
    를 포함하는, 로봇 제어 방법.
  2. 제1항에 있어서,
    상기 제1 알고리즘과 상기 제2 알고리즘은 상기 로봇 또는 상기 로봇 제어 시스템에서 상기 로봇의 이동을 제어하기 위해 병렬로 실행되는, 로봇 제어 방법.
  3. 제1항에 있어서,
    상기 로봇은 상기 공간 내에서 서비스를 제공하는 서비스 로봇이고,
    상기 목적지는 상기 서비스를 제공하기 위한 상기 로봇의 최종 목적지 또는 상기 최종 목적지로의 이동을 위해 상기 로봇이 경유하는 경유지인, 로봇 제어 방법.
  4. 제1항에 있어서,
    상기 제1 알고리즘은,
    상기 로봇이 이동 중에 장애물을 회피하면서 상기 목적지로 이동 가능하도록 상기 로봇을 제어하도록 구성되고,
    상기 제2 알고리즘은,
    상기 공간에 대해 구축된 맵에 기반하여 생성된 상기 목적지까지의 경로에 기반한 상기 경로 계획에 따라 상기 로봇의 이동을 제어하도록 구성되는, 로봇 제어 방법.
  5. 제1항에 있어서,
    상기 공간에 대해 구축된 맵은 상기 공간에 대한 점유 그리드 맵(occupancy grid map)인, 로봇 제어 방법.
  6. 제1항에 있어서,
    상기 판정하는 단계는,
    상기 로봇의 상기 목적지로의 이동 중에 식별되는 장애물에 대해, 상기 경로 계획에 기반하여, 소정의 회피 범위를 벗어나지 않고 상기 장애물을 회피하여 상기 목적지로 이동할 수 있는지 여부를 판정하는 단계
    를 포함하고,
    상기 로봇이 상기 회피 범위를 벗어나지 않고 상기 장애물을 회피하여 상기 목적지로 이동할 수 있는 경우, 상기 로봇은 상기 제1 알고리즘에 기반한 제어에 따라 상기 목적지로 이동하도록 제어되고,
    상기 로봇이 상기 회피 범위를 벗어나지 않고 상기 장애물을 회피하여 상기 목적지로 이동할 수 없는 경우, 상기 로봇은 상기 장애물을 앞에 두고 정지하도록 제어되는, 로봇 제어 방법.
  7. 제6항에 있어서,
    상기 판정하는 단계는,
    상기 공간에 대해 구축된 맵에 기반하여 생성된 상기 목적지까지의 경로에 기반한 상기 경로 계획에 따라 상기 로봇이 상기 장애물을 회피하기 위해 소정의 제1 거리 이상 이동해야 하는 경우, 상기 로봇이 상기 회피 범위를 벗어나지 않고는 상기 장애물을 회피할 수 없는 것으로 판정하는, 로봇 제어 방법.
  8. 제6항에 있어서,
    상기 판정하는 단계는,
    상기 공간에 대해 구축된 맵에 기반하여, 상기 로봇이, 상기 로봇의 현재 위치 또는 출발지로부터 상기 목적지까지의 직선으로부터 소정의 제2 거리 이상 벗어나지 않고 상기 장애물을 회피하여 상기 목적지로 이동할 수 있는지 여부를 판정하고,
    상기 로봇이 상기 제2 거리 이상 벗어나지 않고 상기 장애물을 회피하여 상기 목적지로 이동할 수 없는 경우, 상기 로봇은 상기 장애물을 앞에 두고 정지하도록 제어되는, 로봇 제어 방법.
  9. 제6항에 있어서,
    상기 로봇이 다른 통로로 우회하지 않고 회피할 수 있을 만큼 상기 장애물의 크기가 작은 경우, 상기 로봇은 상기 제1 알고리즘에 기반한 제어에 따라 상기 장애물을 다른 통로로 우회하거나 상기 장애물을 앞에 두고 정지하지 않고 상기 장애물을 회피하여 상기 목적지로 이동하도록 제어되는, 로봇 제어 방법.
  10. 제1항에 있어서,
    상기 판정하는 단계는,
    상기 로봇의 상기 목적지로의 이동 중에 식별되는 장애물에 대해, 상기 경로 계획에 기반하여, 소정의 금지 구역에 진입하지 않고 상기 장애물을 회피하여 상기 목적지로 이동할 수 있는지 여부를 판정하는 단계
    를 포함하고,
    상기 로봇이 상기 금지 구역에 진입하지 않고 상기 장애물을 회피하여 상기 목적지로 이동할 수 있는 경우, 상기 로봇은 상기 제1 알고리즘에 기반한 제어에 따라 상기 목적지로 이동하도록 제어되고,
    상기 로봇이 상기 금지 구역에 진입하지 않고 상기 장애물을 회피하여 상기 목적지로 이동할 수 없는 경우, 상기 로봇은 상기 장애물을 앞에 두고 정지하도록 제어되는, 로봇 제어 방법.
  11. 제1항에 있어서,
    상기 판정하는 단계는,
    상기 로봇의 상기 목적지로의 이동 중에 식별되는 장애물에 대해, 상기 경로 계획에 기반하여, 상기 로봇이 후진하지 않고 상기 장애물을 회피하여 상기 목적지로 이동할 수 있는지 여부를 판정하는 단계
    를 포함하고,
    상기 로봇이 상기 장애물을 회피하기 위해 후진해야 하는 것으로 판정되면, 상기 로봇은 상기 장애물을 앞에 두고 정지하도록 제어되는, 로봇 제어 방법.
  12. 제1항에 있어서,
    상기 판정의 결과에 따라,
    상기 로봇이 상기 목적지로 이동하기 위한 통로 내에서, 상기 로봇은, 다른 통로로 우회하지 않고 회피할 수 있을 만큼 작은 장애물에 대해서는 상기 제1 알고리즘에 기반한 제어에 따라, 다른 통로로 우회하지 않고 상기 장애물을 회피하여 상기 목적지로 이동하도록 제어되고,
    상기 통로 내에서, 상기 로봇의 전방에 상기 장애물로서 다른 로봇이 식별되는 경우, 상기 로봇은 상기 다른 로봇을 앞지르지 않고, 상기 다른 로봇의 뒤에서 대기하도록 제어되는, 로봇 제어 방법.
  13. 제12항에 있어서,
    상기 통로는 상기 공간 내의 상기 로봇의 줄서기가 요구되는 영역 또는 둘 이상의 로봇들이 나란히 주행할 수 없는 폭을 갖는 영역인, 로봇 제어 방법.
  14. 제1항 내지 제13항 중 어느 한 항의 방법을 컴퓨터 시스템인 상기 로봇 또는 상기 로봇 제어 시스템에서 실행시키기 위해 비-일시적인 컴퓨터 판독가능한 기록 매체에 저장되는 컴퓨터 프로그램.
  15. 제1항 내지 제13항 중 어느 한 항의 방법을 컴퓨터 시스템인 상기 로봇 또는 상기 로봇 제어 시스템에서 실행시키기 위한 프로그램이 기록되어 있는 비-일시적인 컴퓨터 판독 가능한 기록 매체.
  16. 공간 내에서 이동하는 로봇을 위한 컴퓨터 시스템에 있어서,
    컴퓨터에서 판독 가능한 명령을 실행하도록 구현되는 적어도 하나의 프로세서
    를 포함하고,
    상기 적어도 하나의 프로세서는,
    상기 로봇의 이동을 제어하기 위해 강화 학습(Reinforcement Learning)을 통해 미리 학습된 제1 알고리즘에 기반하여, 목적지로의 상기 로봇의 이동을 제어하고, 상기 로봇의 상기 목적지로의 이동 중에, 상기 공간에 대해 구축된 맵에 기반한 경로 계획에 따라 상기 로봇의 이동을 제어하기 위한 제2 알고리즘에 기반하여, 상기 로봇이 장애물에 대한 소정의 회피 조건을 충족하는지 여부를 판정하고, 상기 회피 조건을 충족하는 경우에는, 상기 제1 알고리즘에 기반한 제어에 따라 상기 목적지로 이동하도록 상기 로봇의 이동을 제어하되, 상기 회피 조건이 충족되지 않는 경우에는, 상기 로봇의 이동을 정지시키도록 상기 로봇을 제어하는, 컴퓨터 시스템.
  17. 건물에 있어서,
    상기 건물 내의 공간을 이동하는 적어도 하나의 로봇
    이 배치되고,
    컴퓨터에서 판독 가능한 명령을 실행하도록 구현되는 적어도 하나의 프로세서
    를 포함하고,
    상기 로봇은, 상기 로봇 내에 포함되거나 서버인 컴퓨터 시스템에 의해, 상기 건물 내에서의 이동이 제어되고,
    상기 컴퓨터 시스템은.
    컴퓨터에서 판독 가능한 명령을 실행하도록 구현되는 적어도 하나의 프로세서
    를 포함하고,
    상기 적어도 하나의 프로세서는,
    상기 로봇의 이동을 제어하기 위해 강화 학습(Reinforcement Learning)을 통해 미리 학습된 제1 알고리즘에 기반하여, 목적지로의 상기 로봇의 이동을 제어하고, 상기 로봇의 상기 목적지로의 이동 중에, 상기 공간에 대해 구축된 맵에 기반한 경로 계획에 따라 상기 로봇의 이동을 제어하기 위한 제2 알고리즘에 기반하여, 상기 로봇이 장애물에 대한 소정의 회피 조건을 충족하는지 여부를 판정하고, 상기 회피 조건을 충족하는 경우에는, 상기 제1 알고리즘에 기반한 제어에 따라 상기 목적지로 이동하도록 상기 로봇의 이동을 제어하되, 상기 회피 조건이 충족되지 않는 경우에는, 상기 로봇의 이동을 정지시키도록 상기 로봇을 제어하는, 건물.
KR1020210185225A 2021-12-22 2021-12-22 강화 학습 기반의 알고리즘과 경로 계획 기반의 알고리즘을 사용하여 로봇을 제어하는 방법 및 시스템과, 로봇이 배치되는 건물 KR102707390B1 (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020210185225A KR102707390B1 (ko) 2021-12-22 2021-12-22 강화 학습 기반의 알고리즘과 경로 계획 기반의 알고리즘을 사용하여 로봇을 제어하는 방법 및 시스템과, 로봇이 배치되는 건물
PCT/KR2022/013359 WO2023120867A1 (ko) 2021-12-22 2022-09-06 강화 학습 기반의 알고리즘과 경로 계획 기반의 알고리즘을 사용하여 로봇을 제어하는 방법 및 시스템과, 로봇이 배치되는 건물
KR1020240123763A KR20240141674A (ko) 2021-12-22 2024-09-11 강화 학습 기반의 알고리즘과 경로 계획 기반의 알고리즘을 사용하여 로봇을 제어하는 방법 및 시스템과, 로봇이 배치되는 건물

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020210185225A KR102707390B1 (ko) 2021-12-22 2021-12-22 강화 학습 기반의 알고리즘과 경로 계획 기반의 알고리즘을 사용하여 로봇을 제어하는 방법 및 시스템과, 로봇이 배치되는 건물

Related Child Applications (1)

Application Number Title Priority Date Filing Date
KR1020240123763A Division KR20240141674A (ko) 2021-12-22 2024-09-11 강화 학습 기반의 알고리즘과 경로 계획 기반의 알고리즘을 사용하여 로봇을 제어하는 방법 및 시스템과, 로봇이 배치되는 건물

Publications (2)

Publication Number Publication Date
KR20230095588A true KR20230095588A (ko) 2023-06-29
KR102707390B1 KR102707390B1 (ko) 2024-09-20

Family

ID=86902778

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020210185225A KR102707390B1 (ko) 2021-12-22 2021-12-22 강화 학습 기반의 알고리즘과 경로 계획 기반의 알고리즘을 사용하여 로봇을 제어하는 방법 및 시스템과, 로봇이 배치되는 건물
KR1020240123763A KR20240141674A (ko) 2021-12-22 2024-09-11 강화 학습 기반의 알고리즘과 경로 계획 기반의 알고리즘을 사용하여 로봇을 제어하는 방법 및 시스템과, 로봇이 배치되는 건물

Family Applications After (1)

Application Number Title Priority Date Filing Date
KR1020240123763A KR20240141674A (ko) 2021-12-22 2024-09-11 강화 학습 기반의 알고리즘과 경로 계획 기반의 알고리즘을 사용하여 로봇을 제어하는 방법 및 시스템과, 로봇이 배치되는 건물

Country Status (2)

Country Link
KR (2) KR102707390B1 (ko)
WO (1) WO2023120867A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102665831B1 (ko) * 2023-10-19 2024-05-13 (주)로보라이프 사람 추종 모드로 이동하는 방법 및 이를 구현하는 로봇

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018110568A1 (ja) * 2016-12-12 2018-06-21 日本電産シンポ株式会社 障害物の回避動作を行う移動体およびそのコンピュータプログラム

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU2017357645B2 (en) * 2016-11-08 2022-11-10 Dogtooth Technologies Limited A robotic fruit picking system
EP3837641A1 (en) * 2018-09-14 2021-06-23 Google LLC Deep reinforcement learning-based techniques for end to end robot navigation
KR20210047434A (ko) * 2019-10-21 2021-04-30 엘지전자 주식회사 로봇 청소기 및 그의 동작 방법
KR20210047431A (ko) * 2019-10-21 2021-04-30 엘지전자 주식회사 구속 위험 영역 정보를 공유하는 인공 지능 장치 및 그 방법
KR102250541B1 (ko) * 2020-01-16 2021-05-11 광주과학기술원 장애물 극복용 이동 로봇

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018110568A1 (ja) * 2016-12-12 2018-06-21 日本電産シンポ株式会社 障害物の回避動作を行う移動体およびそのコンピュータプログラム

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102665831B1 (ko) * 2023-10-19 2024-05-13 (주)로보라이프 사람 추종 모드로 이동하는 방법 및 이를 구현하는 로봇

Also Published As

Publication number Publication date
KR102707390B1 (ko) 2024-09-20
WO2023120867A1 (ko) 2023-06-29
KR20240141674A (ko) 2024-09-27

Similar Documents

Publication Publication Date Title
US12005586B2 (en) Dynamic navigation of autonomous vehicle with safety infrastructure
US11130630B2 (en) Collision prevention for autonomous vehicles
US11709502B2 (en) Roadmap annotation for deadlock-free multi-agent navigation
US10974395B2 (en) Method and system for controlling indoor autonomous robot
EP3936965B1 (en) Method and system for specifying nodes for robot path planning
US10406687B2 (en) Layered multi-agent coordination
JP2020509500A (ja) 自律移動ロボットの制御方法
KR20240141674A (ko) 강화 학습 기반의 알고리즘과 경로 계획 기반의 알고리즘을 사용하여 로봇을 제어하는 방법 및 시스템과, 로봇이 배치되는 건물
KR102706709B1 (ko) 통신 기반 로봇 제어 방법 및 시스템
WO2021037071A1 (zh) 一种飞行控制方法及相关装置
WO2022052809A1 (zh) 用于控制仓库中的机器人的行驶的方法和装置
WO2019104045A1 (en) Collision prevention for autonomous vehicles
Araujo et al. An architecture for navigation of service robots in human-populated office-like environments
KR102462491B1 (ko) 지정 구역을 주행하는 다수의 로봇들을 제어하는 방법 및 시스템
KR20220130048A (ko) 서비스 어플리케이션과 연계하여 서비스를 제공하는 로봇을 제어하는 방법 및 클라우드 서버
CN115185286A (zh) 一种移动机器人自主绕障规划方法及其任务调度系统
KR20220040801A (ko) 이동체, 이동체의 제어 방법 및 이동체의 이동경로 제어 시스템
KR102647612B1 (ko) 비상 상황 발생 시 공간 내 인원에게 대피 경로를 안내하는 로봇 및 로봇 제어 방법
KR20240118445A (ko) 학습된 주행 알고리즘에 기반하여, 멀티 로봇과의 관계에서 경로를 추종하는 로봇의 제어 방법 및 시스템
JP6795730B2 (ja) 移動体の管理システム、移動体、走行管理装置およびコンピュータプログラム
KR102323457B1 (ko) 와이파이 기반 작업자 위치 추정을 통한 안전 특성 모니터링
CN118331246A (zh) 控制机器人切换导航模式的方法和装置、电子设备
KR20240003367A (ko) Rfid 리더기가 장착된 자율주행로봇을 이용한 물류관리 시스템 및 그 방법
KR20240153449A (ko) 자율 주행 장치 및 그 주행 제어 방법
Guruprasad et al. Egress: An online path planning algorithm for boundary exploration

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
GRNT Written decision to grant