KR102484686B1 - 다수의 모듈형 로봇들로 구성된 로봇을 제어하는 방법 및 시스템 - Google Patents

다수의 모듈형 로봇들로 구성된 로봇을 제어하는 방법 및 시스템 Download PDF

Info

Publication number
KR102484686B1
KR102484686B1 KR1020210057310A KR20210057310A KR102484686B1 KR 102484686 B1 KR102484686 B1 KR 102484686B1 KR 1020210057310 A KR1020210057310 A KR 1020210057310A KR 20210057310 A KR20210057310 A KR 20210057310A KR 102484686 B1 KR102484686 B1 KR 102484686B1
Authority
KR
South Korea
Prior art keywords
robot
modular
robots
control system
controlling
Prior art date
Application number
KR1020210057310A
Other languages
English (en)
Other versions
KR20220150069A (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 KR1020210057310A priority Critical patent/KR102484686B1/ko
Priority to PCT/KR2022/000146 priority patent/WO2022234924A1/ko
Publication of KR20220150069A publication Critical patent/KR20220150069A/ko
Application granted granted Critical
Publication of KR102484686B1 publication Critical patent/KR102484686B1/ko
Priority to US18/500,888 priority patent/US20240066683A1/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/0084Programme-controlled manipulators comprising a plurality of manipulators
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/08Programme-controlled manipulators characterised by modular constructions
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J15/00Gripping heads and other end effectors
    • B25J15/0052Gripping heads and other end effectors multiple gripper units or multiple end effectors
    • B25J15/0061Gripping heads and other end effectors multiple gripper units or multiple end effectors mounted on a modular gripping structure
    • 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/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
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1679Programme controls characterised by the tasks executed
    • B25J9/1682Dual arm manipulator; Coordination of several manipulators

Abstract

복수의 모듈형 로봇들로 구성된 로봇을 제어함에 있어서, 복수의 모듈형 로봇들 사이에서의 인터랙션 없이, 복수의 모듈형 로봇들의 각각을 로봇 제어 시스템을 통해 개별적으로 제어함으로써, 요청된 서비스와 관련된 작업을 수행하도록 로봇을 제어하는 방법이 제공된다.

Description

다수의 모듈형 로봇들로 구성된 로봇을 제어하는 방법 및 시스템{METHOD AND SYSTEM FOR CONTROLLING ROBOT CONFIGURED AS MULTIPLE MODULAR ROBOTS}
아래의 설명은 다수의 모듈형 로봇들로 구성된 로봇을 제어하는 방법 및 시스템에 관한 것이다.
제조, 물류, 운송, 청소 및 길안내 등과 같은 서비스를 제공하는 로봇에 대한 관심이 높아지고 있다. 이러한 서비스를 제공하기 위해 구현되는 로봇은 예컨대, 바퀴나 다리를 이용하여 자율 주행을 통해 최적의 경로로 목적지까지 이동하여 목적지에서 서비스를 제공할 수 있다. 로봇이 이러한 서비스를 제공하기 위해서는 로봇의 다양한 구성들이 제공하는 기능들이 서로 연동되어야 한다. 이러한 기능들의 연동이 로봇 측에서 수행되도록 로봇을 구성하는 것은 로봇의 구현을 복잡하게 만들 뿐만아니라, 로봇의 유지 보수 비용을 높이고, 로봇의 확장성을 떨어지게 만든다.
따라서, 로봇의 구현 비용을 낮추고, 로봇의 유지 보수 및 확장을 용이하게 하기 위해, 서비스를 제공하기 위한 로봇의 기능들의 연동과 로봇을 제어하는 연산의 처리를 서버 측에서 수행할 수 있도록 로봇과 로봇 제어 시스템을 구축할 것이 요구된다.
한국공개특허 제10-2005-0024840호는 자율이동로봇을 위한 경로계획방법에 관한 기술로, 가정이나 사무실에서 자율적으로 이동하는 이동로봇이 장애물을 회피하면서 목표점까지 안전하고 빠르게 이동할 수 있는 최적경로를 계획하는 방법에 대해 개시하고 있다.
상기에서 설명된 정보는 단지 이해를 돕기 위한 것이며, 종래 기술의 일부를 형성하지 않는 내용을 포함할 수 있으며, 종래 기술이 통상의 기술자에게 제시할 수 있는 것을 포함하지 않을 수 있다.
복수의 모듈형 로봇들로 구성된 로봇을 제어함에 있어서, 복수의 모듈형 로봇들 사이에서의 인터랙션 없이, 복수의 모듈형 로봇들의 각각을 로봇 제어 시스템을 통해 개별적으로 제어함으로써, 요청된 서비스와 관련된 작업을 수행하도록 로봇을 제어하는 방법을 제공한다.
복수의 모듈형 로봇들로 구성된 다수의 로봇들을 제어함에 있어서, 복수의 모듈형 로봇들의 각각을 개별적으로 제어하는 것을 통해, 다수의 로봇들의 각각이 (서비스와 관련하여) 할당된 작업을 독립적으로 처리하거나, 다수의 로봇들이 협력하여 동작할 수 있도록 로봇들을 제어하는 방법을 제공한다.
복수의 모듈형 로봇들로 구성된 로봇으로서, 각 모듈형 로봇은 로봇 제어 시스템으로 센싱 정보와 상태 정보를 전송하고 로봇 제어 시스템으로부터의 명령을 실행할 뿐, 다른 모듈형 로봇과는 직접적으로 인터랙션(상호작용 또는 통신)하지 않도록 구성되는 로봇을 제공한다.
일 측면에 있어서, 로봇 제어 시스템에 의해 수행되는, 복수의 모듈형 로봇들로 구성된 로봇을 제어하는 방법에 있어서, 상기 복수의 모듈형 로봇들 중 제1 기능을 수행하는 제1 모듈형 로봇으로부터 제1 센싱 정보 또는 제1 상태 정보를 수신하고, 상기 복수의 모듈형 로봇들 중 제2 기능을 수행하는 제2 모듈형 로봇으로부터 제2 센싱 정보 또는 제2 상태 정보를 수신하는 단계 및 상기 제1 센싱 정보 또는 상기 제1 상태 정보에 기반하여 상기 제1 모듈형 로봇에 제1 명령을 송신하여 상기 제1 모듈형 로봇을 제어하고, 상기 제2 센싱 정보 또는 상기 제2 상태 정보에 기반하여 상기 제2 모듈형 로봇에 제2 명령을 송신하여 상기 제2 모듈형 로봇을 제어하는 단계를 포함하고, 상기 제1 모듈형 로봇 및 상기 제2 모듈형 로봇 사이에서의 인터랙션 없이, 상기 제1 모듈형 로봇 및 상기 제2 모듈형 로봇의 각각은 상기 로봇 제어 시스템에 의해 개별적으로 제어됨으로써, 상기 로봇은 상기 로봇에 대해 요청된 서비스와 관련된 작업을 수행하도록 제어되는, 로봇을 제어하는 방법이 제공된다.
상기 복수의 모듈형 로봇들의 각각은, 다른 로봇 또는 다른 모듈형 로봇과 인터랙션하지 않고, 상기 로봇 제어 시스템으로부터의 명령을 실행함에 따라 제어되는 브레인리스(brainless) 로봇일 수 있다.
상기 로봇을 제어하는 방법은 상기 로봇에 대해 요청된 서비스와 관련된 상기 작업의 요청을 수신하는 단계를 더 포함하고, 상기 제1 모듈형 로봇 및 상기 제2 모듈형 로봇을 제어하는 단계는, 상기 요청에 대한 해석의 결과와 상기 제1 센싱 정보 또는 상기 제1 상태 정보에 기반하여 상기 제1 명령을 생성하는 단계 및 상기 요청에 대한 해석의 결과와 상기 제2 센싱 정보 또는 상기 제2 상태 정보에 기반하여 상기 제2 명령을 생성하는 단계를 포함할 수 있다.
상기 제1 명령을 생성하는 단계는, 상기 제1 기능과 연관하여 기 정의된 제1 기능 요소로부터 획득되는 정보를 사용하여 상기 제1 명령을 생성하고, 상기 제2 명령을 생성하는 단계는, 상기 제2 기능과 연관하여 기 정의된 제2 기능 요소로부터 획득되는 정보를 사용하여 상기 제2 명령을 생성할 수 있다.
상기 제2 명령을 생성하는 단계는, 상기 제1 센싱 정보 또는 상기 제1 상태 정보를 더 이용하여 상기 제2 명령을 생성하고, 상기 제2 모듈형 로봇은, 상기 제1 센싱 정보 또는 상기 제1 상태 정보를 더 이용하여 생성된 상기 제2 명령에 따라 제어될 수 있다.
상기 로봇을 제어하는 방법은 상기 제1 모듈형 로봇을 제어하기 위한 상기 제1 모듈 제어부와 상기 제2 모듈형 로봇을 제어하기 위한 상기 제2 모듈 제어부를 구성하는 단계를 더 포함하고, 상기 제1 모듈형 로봇에 대응하는 상기 제1 모듈 제어부를 사용하여, 상기 제1 모듈형 로봇으로부터 상기 제1 센싱 정보 또는 상기 제1 상태 정보를 수신하고, 상기 제1 명령을 상기 제1 모듈형 로봇에 송신하고, 상기 제2 모듈형 로봇에 대응하는 제2 모듈 제어부를 사용하여, 상기 제2 모듈형 로봇으로부터 상기 제2 센싱 정보 또는 상기 제2 상태 정보를 수신하고, 상기 제2 명령을 상기 제2 모듈형 로봇에 송신하고, 상기 제1 모듈 제어부 및 상기 제2 모듈 제어부와 상기 제1 모듈형 로봇 및 상기 제2 모듈형 로봇은 각각 일대일로 대응할 수 있다.
상기 로봇을 제어하는 방법은 상기 작업을 수행하기 위해 상기 복수의 모듈형 로봇들 중 제3 기능을 수행하는 제3 모듈형 로봇의 제어가 요구되면, 상기 제3 모듈형 로봇을 제어하기 위한 제3 모듈 제어부를 구성하는 단계를 더 포함하고, 상기 제3 모듈 제어부와 상기 제3 모듈형 로봇은 일대일로 대응할 수 있다.
상기 제1 모듈형 로봇 및 상기 제2 모듈형 로봇은 공유되는 통신부를 사용하여 각각 상기 로봇 제어 시스템과 통신하고, 상기 제1 센싱 정보 또는 상기 제1 상태 정보의 수신, 상기 제2 센싱 정보 또는 상기 제2 상태 정보의 수신, 상기 제1 명령의 송신 및 상기 제2 명령의 송신은 상기 공유되는 통신부를 통해 수행될 수 있다.
상기 로봇 제어 시스템은 복수의 다른 모듈형 로봇들로 구성된 다른 로봇을 더 제어하도록 구성되고, 상기 다른 복수의 모듈형 로봇들 사이에서의 인터랙션 없이, 상기 다른 복수의 모듈형 로봇들의 각각이 상기 로봇 제어 시스템에 의해 개별적으로 제어됨으로써, 상기 다른 로봇은 상기 다른 로봇에 대해 요청된 서비스와 관련된 다른 작업을 수행하도록 제어될 수 있다.
상기 로봇과 상기 다른 로봇은 상기 로봇 제어 시스템에서 독립적으로 구성된 로봇 제어부에 의해 각각 제어될 수 있다.
상기 로봇과 상기 다른 로봇은 상기 로봇 제어 시스템의 공통된 로봇 제어부에 의해 각각 제어되고, 상기 작업과 상기 다른 작업은 서로 연계된 작업이고, 상기 로봇과 상기 다른 로봇은 하나의 가상 로봇을 구성하고, 상기 로봇과 상기 다른 로봇은 서로 협력하여 동작하도록 제어될 수 있다.
상기 제1 기능은 상기 로봇의 이동이고, 상기 제1 모듈형 로봇은 상기 로봇의 이동을 위해 구성되는 모바일 베이스(mobile base) 모듈형 로봇이고, 상기 제2 기능은 상기 서비스의 제공을 위한 기능이고, 상기 제2 모듈형 로봇은 상기 로봇의 서비스 제공을 위해 구성되는 서비스 모듈형 로봇이고, 상기 제1 모듈형 로봇과 상기 제2 모듈형 로봇이 결합되어 상기 로봇이 구성될 수 있다.
다른 일 측면에 있어서, 복수의 모듈형 로봇들로 구성된 로봇을 제어하는 로봇 제어 시스템에 있어서, 컴퓨터에서 판독 가능한 명령을 실행하도록 구현되는 적어도 하나의 프로세서를 포함하고, 상기 적어도 하나의 프로세서는, 상기 복수의 모듈형 로봇들 중 제1 기능을 수행하는 제1 모듈형 로봇으로부터 제1 센싱 정보 또는 제1 상태 정보를 수신하고, 상기 복수의 모듈형 로봇들 중 제2 기능을 수행하는 제2 모듈형 로봇으로부터 제2 센싱 정보 또는 제2 상태 정보를 수신하고, 상기 제1 센싱 정보 또는 상기 제1 상태 정보에 기반하여 상기 제1 모듈형 로봇에 제1 명령을 송신하여 상기 제1 모듈형 로봇을 제어하고, 상기 제2 센싱 정보 또는 상기 제2 상태 정보에 기반하여 상기 제2 모듈형 로봇에 제2 명령을 송신하여 상기 제2 모듈형 로봇을 제어하고, 상기 제1 모듈형 로봇 및 상기 제2 모듈형 로봇 사이에서의 인터랙션 없이, 상기 제1 모듈형 로봇 및 상기 제2 모듈형 로봇의 각각은 상기 로봇 제어 시스템에 의해 개별적으로 제어됨으로써, 상기 로봇은 상기 로봇에 대해 요청된 서비스와 관련된 작업을 수행하도록 제어되는, 로봇 제어 시스템이 제공된다.
상기 적어도 하나의 프로세서는, 상기 제1 모듈형 로봇을 제어하기 위한 상기 제1 모듈 제어부와 상기 제2 모듈형 로봇을 제어하기 위한 상기 제2 모듈 제어부를 포함하고, 상기 제1 모듈형 로봇에 대응하는 상기 제1 모듈 제어부는 상기 제1 모듈형 로봇으로부터 상기 제1 센싱 정보 또는 상기 제1 상태 정보를 수신하고, 상기 제1 명령을 상기 제1 모듈형 로봇에 송신하고, 상기 제2 모듈형 로봇에 대응하는 제2 모듈 제어부는 상기 제1 모듈형 로봇으로부터 상기 제1 센싱 정보 또는 상기 제1 상태 정보를 수신하고, 상기 제1 명령을 상기 제1 모듈형 로봇에 송신하고, 상기 제1 모듈 제어부 및 상기 제2 모듈 제어부와 상기 제1 모듈형 로봇 및 상기 제2 모듈형 로봇은 각각 일대일로 대응하고, 상기 적어도 하나의 프로세서는, 상기 작업을 수행하기 위해 상기 복수의 모듈형 로봇들 중 제3 기능을 수행하는 제3 모듈형 로봇의 제어가 요구되면, 상기 제3 모듈형 로봇을 제어하기 위한 제3 모듈 제어부를 생성하도록 구성될 수 있다.
상기 적어도 하나의 프로세서는 복수의 다른 모듈형 로봇들로 구성된 다른 로봇을 더 제어하도록 구성되고, 상기 다른 복수의 모듈형 로봇들 사이에서의 인터랙션 없이, 상기 다른 복수의 모듈형 로봇들의 각각이 상기 로봇 제어 시스템에 의해 개별적으로 제어됨으로써, 상기 다른 로봇은 상기 다른 로봇에 대해 요청된 서비스와 관련된 다른 작업을 수행하도록 제어될 수 있다.
상기 적어도 하나의 프로세서는 상기 로봇을 제어하도록 구성된 제1 로봇 제어부 및 상기 다른 로봇을 제어하도록 구성된 제2 로봇 제어부를 포함하고, 상기 제1 로봇 제어부 및 상기 제2 로봇 제어부는 서로 독립적으로 구성될 수 있다.
상기 적어도 하나의 프로세서는 공통 로봇 제어부를 포함하고, 상기 로봇과 상기 다른 로봇은 상기 공통 로봇 제어부에 의해 각각 제어되고, 상기 작업과 상기 다른 작업은 서로 연계된 작업이고, 상기 로봇과 상기 다른 로봇은 하나의 가상 로봇을 구성하고, 상기 로봇과 상기 다른 로봇은 서로 협력하여 동작하도록 제어될 수 있다.
또 다른 일 측면에 있어서, 로봇 제어 시스템에 의해 제어됨으로써 공간 내에서 서비스를 제공하는 로봇에 있어서, 복수의 모듈형 로봇들을 포함하고, 상기 복수의 모듈형 로봇들 사이에서의 인터랙션 없이, 상기 복수의 모듈형 로봇들의 각각은 상기 로봇 제어 시스템에 의해 개별적으로 제어되고, 상기 복수의 모듈형 로봇들의 각 모듈형 로봇은 상기 서비스의 제공을 위한 기능을 수행하도록 구성되고, 상기 각 모듈형 로봇은 컴퓨터에서 판독 가능한 명령을 실행하도록 구현되는 적어도 하나의 프로세서를 포함하고, 상기 적어도 하나의 프로세서는, 상기 로봇 제어 시스템으로 센싱 정보 또는 상기 각 모듈형 로봇의 상태 정보를 송신하고, 상기 로봇 제어 시스템으로부터 상기 센싱 정보 또는 상기 상태 정보에 기반한 명령을 수신하고, 상기 명령에 따라 상기 각 모듈형 로봇을 제어하는, 로봇이 제공된다.
상기 로봇은 상기 복수의 모듈형 로봇들 중 제1 모듈형 로봇은 공유 통신부를 포함하고, 상기 복수의 모듈형 로봇들의 나머지 모듈형 로봇들은 커넥터를 통해 상기 제1 모듈형 로봇과 접속되어 상기 공유 통신부를 통해 상기 로봇 제어 시스템과 통신하도록 구성될 수 있다.
상기 복수의 모듈형 로봇들은, 상기 로봇의 이동의 기능을 제공하도록 구성되는 모바일 베이스(mobile base) 모듈형 로봇; 및 상기 서비스의 제공을 위한 기능을 제공하도록 구성되는 서비스 모듈형 로봇을 포함하고, 상기 모바일 베이스 모듈형 로봇과 상기 서비스 모듈형 로봇이 결합되어 상기 로봇이 구성될 수 있다.
로봇 제어 시스템으로 센싱 정보와 상태 정보를 전송하고 로봇 제어 시스템으로부터의 명령을 실행할 뿐, 다른 모듈형 로봇과는 직접적으로 인터랙션하지 않도록 구성되는 모듈형 로봇을 사용하여 서비스 로봇을 구현함으로써, 서비스 로봇의 복잡도를 낮출 수 있고 서비스 로봇의 유지 보수를 효율화할 수 있다.
다른 모듈형 로봇에 대해 의존성을 갖지 않으며, 로봇 제어 시스템(서버)에 의해 각각이 분산 제어될 수 있는 모듈형 로봇들로 구성되는 서비스 로봇이 제공될 수 있다.
로봇 제어 시스템에 의해 개별적으로 제어될 수 있는 모듈형 로봇들로 구성되는 서비스 로봇을 활용함으로써, 서비스 로봇의 확장성을 높일 수 있다.
도 1은 일 실시예에 따른, 복수의 모듈형 로봇들로 구성된 로봇을 제어하는 방법을 나타낸다.
도 2 는 일 예에 따른, 모듈형 로봇들로 구성된 로봇을 나타낸다.
도 3은 일 실시예에 따른, 복수의 모듈형 로봇들로 구성된 로봇을 제어하는 로봇 제어 시스템을 나타내는 블록도이다.
도 4는 일 실시예에 따른, 로봇 제어 시스템이 로봇을 구성하는 복수의 모듈형 로봇들의 각각을 개별적으로 제어하는 방법을 나타낸다.
도 5는 일 실시예에 따른, 복수의 모듈형 로봇들로 구성된 로봇을 제어하는 방법을 나타내는 흐름도이다.
도 6은 일 예에 따른, 모듈형 로봇들의 각각을 제어하기 위한 모듈 제어부를 생성하여, 각 모듈형 로봇을 제어하는 방법을 나타내는 흐름도이다.
도 7은 일 예에 따른, 각 로봇이 포함하는 모듈형 로봇들을 개별적으로 제어하여 다수의 로봇들을 제어하는 방법을 나타내는 흐름도이다.
도 8는 일 예에 따른, 공유 통신부를 사용하는 모듈형 로봇들로 구성된 로봇을 나타낸다.
도 9는 일 예에 따른, 로봇 제어 시스템이 로봇을 구성하는 복수의 모듈형 로봇들의 각각을 개별적으로 제어하는 방법을 나타낸다.
도 10 및 도 11은 일 예에 따른, 각 로봇이 포함하는 모듈형 로봇들을 개별적으로 제어하여 다수의 로봇들을 제어하는 방법을 나타낸다.
이하, 실시예를 첨부한 도면을 참조하여 상세히 설명한다.
도 1은 일 실시예에 따른, 복수의 모듈형 로봇들로 구성된 로봇을 제어하는 방법을 나타낸다.
도 1에서는 건물과 같은 공간 내에서 서비스를 제공하도록 구성되는 로봇(100)이 로봇 제어 시스템(120)에 의한 제어에 따라 동작하는 방법이 도시되었다.
로봇(100)은 도시된 것처럼 복수의 모듈형 로봇들(100-1 내지 100-3)으로 구성될 수 있다. 도 1에서는 로봇(100)이 3개의 모듈형 로봇들(100-1 내지 100-3) 만을 포함하는 것으로 도시되었으나, 로봇(100)이 포함하는 모듈형 로봇들의 수는 로봇(100)이 제공하는 서비스의 종류나, 로봇(100)이 수행하는 작업의 종류에 따라 상이하게 될 수 있다.
모듈형 로봇들(100-1 내지 100-3)의 각각은 로봇(100) 서비스 또는 서비스를 제공하기 위한 작업을 수행하기 위해 필요한 기능을 수행하도록 구성될 수 있다.
예컨대, 도시된 것처럼, 모듈형 로봇들(100-3)은 로봇(100)의 이동을 위한 기능을 수행할 수 있고, 모듈형 로봇들(100-2)은 서비스 제공을 위해(일례로, 화물 또는 배송 물품을 적재하기 위해) 도어를 개폐하는 기능을 수행할 수 있고, 모듈형 로봇들(100-1)은 로봇(100)의 서비스 제공을 위해(일례로, 화물 또는 배송 물품을 파지하기 위해) 로봇 팔을 제어하는 기능을 수행할 수 있다.
로봇(100)은 모듈형 로봇들(100-1 내지 100-3)이 결합되어 구성될 수 있고, 모듈형 로봇들(100-1 내지 100-3)이 제공하는 기능들이 서로 연동하여 수행됨에 따라 서비스를 제공(또는, 서비스의 제공을 위한 작업을 수행)하도록 구성될 수 있다.
로봇(100)이 서비스를 제공하는 장소로서의 공간은 예컨대, 건물을 나타낼 수 있다. 이러한 건물은 복수의 인원(이하, 사용자라 함)들이 근무 또는 상주하는 공간으로서, 복수의 구획된 공간들을 포함할 수 있다. 공간은 건물의 일부(특정 층 또는 해당 층 내의 부분 공간)를 나타낼 수 있다.
로봇(100)은 공간 내에서 서비스를 제공하기 위해 사용되는 서비스 로봇일 수 있다. 로봇(100)은 공간의 적어도 하나의 층에서 서비스를 제공하도록 구성될 수 있다. 공간 내에서 로봇(100)은 복수개가 운용될 수 있다.
로봇(100)이 제공하는 서비스는 예컨대, 택배 전달 서비스, 주문에 따른 음료(커피 등) 전달 서비스, 청소 서비스, 길 안내 서비스 및 기타 정보/콘텐츠 제공(표시) 서비스 중 적어도 하나를 포함할 수 있다.
로봇(100)은 자율 주행을 통해 공간 내의 소기의 위치에서 서비스를 제공할 수 있다.
로봇(100)의 이동 및 서비스의 제공은 로봇 제어 시스템(120)에 의해 제어될 수 있다.
실시예에서는, 도시된 것처럼, 로봇 제어 시스템(120)은 모듈형 로봇들(100-1 내지 100-3)의 각각을 개별적으로 제어할 수 있다.
예컨대, 로봇 제어 시스템(120)은 모듈형 로봇들(100-1 내지 100-3)의 각각으로부터 센싱 정보 및/또는 상태 정보를 수신할 수 있고, 수신된 센싱 정보 및/또는 상태 정보에 기반하여 모듈형 로봇들(100-1 내지 100-3)의 각각을 제어하기 위한 (제어) 명령을 생성할 수 있다. 생성된 명령은 모듈형 로봇들(100-1 내지 100-3)의 각각으로 송신될 수 있다. 모듈형 로봇(100-1 내지 100-3)은 수신한 명령을 실행하여, 명령에 따라 제어될 수 있다.
모듈형 로봇들(100-1 내지 100-3)의 각각은 개별적으로 수신된 명령에 따라 제어되지만, 모듈형 로봇들(100-1 내지 100-3)은 전체적으로는 요청된 서비스와 관련된 작업(예컨대, 서비스를 제공하기 위해 요구되는 작업)을 수행하게 될 수 있다. 따라서, 로봇(100)은 요청된 서비스와 관련된 작업을 수행하는 단일한 로봇과 같이 동작할 수 있다.
실시예에서는 모듈형 로봇들(100-1 내지 100-3)의 각각이 로봇(100)을 구성하는 다른 모듈형 로봇들과 직접적으로 인터랙션(상호작용 또는 통신)하지 않지만, 결과적으로는 요청된 서비스와 관련된 작업을 수행하기 위해 모듈형 로봇들(100-1 내지 100-3)이 연동하여 제어될 수 있다.
말하자면, 실제로는 로봇 제어 시스템(120)이 모듈형 로봇들(100-1 내지 100-3)의 각각을 개별적으로 제어하고, 모듈형 로봇들(100-1 내지 100-3)의 각각은 로봇 제어 시스템(120)으로부터의 명령을 단지 실행할 뿐이지만, 로봇(100)은 모듈형 로봇들(100-1 내지 100-3)이 서로 연동하여 동작하는 것처럼 제어될 수 있다.
복수의 모듈형 로봇들로 구성되는 로봇(100) 및 로봇(100)을 제어하는 로봇 제어 시스템(120)의 구체적인 동작에 대해서는 후술될 도 2 내지 도 11을 참조하여 더 자세하게 설명된다.
도 2 는 일 예에 따른, 모듈형 로봇들로 구성된 로봇을 나타낸다.
도 1을 참조하여 전술한 것처럼, 로봇(100)은 복수의 모듈형 로봇들로 구성될 수 있다. 예컨대, 복수의 모듈형 로봇들은 제1 모듈형 로봇 및 제2 모듈형 로봇을 포함할 수 있다. 여기서, 제1 모듈형 로봇은 로봇(100)이 수행하는 서비스와 관련된 작업을 수행하기 위한 제1 기능을 수행하도록 구성될 수 있다. 제2 모듈형 로봇은 로봇(100)이 수행하는 서비스와 관련된 작업을 수행하기 위한 제2 기능을 수행하도록 구성될 수 있다. 제1 기능과 제2 기능은 서로 독립적으로 수행될 수 있다. 말하자면, 제1 모듈형 로봇 및 제2 모듈형 로봇 사이에서의 인터랙션(예컨대, 직접적인 통신) 없이, 제1 모듈형 로봇 및 제2 모듈형 로봇의 각각은 로봇 제어 시스템(120)에 의해 개별적으로 제어됨으로써, 제1 기능 및 제2 기능을 각각 수행할 수 있다. 이에 따라, 로봇(100)은 로봇(100)에 대해 요청된 서비스와 관련된 작업을 수행하도록 제어될 수 있다. 제1 모듈형 로봇 및 제2 모듈형 로봇의 각각은 로봇(100)을 구성하는 복수의 모듈형 로봇들 중 어느 하나일 수 있다.
일례로, 제1 모듈형 로봇이 수행하는 제1 기능은 로봇(100)의 이동일 수 있다. 이 때, 제1 모듈형 로봇은 로봇(100)의 이동을 위해 구성되는 모바일 베이스(mobile base) 모듈형 로봇들(220) 중 하나일 수 있다. 예컨대, 제1 모듈형 로봇은 로봇(100)의 보행을 위한 모듈형 로봇 또는 로봇(100)의 바퀴 또는 캐터필러 바퀴를 이용한 주행을 위한 모듈형 로봇 등을 포함할 수 있다.
한편, 제2 모듈형 로봇이 수행하는 제2 기능은 요청된 서비스의 제공을 위한 기능이고, 제2 모듈형 로봇은 로봇(100)의 서비스 제공을 위해 구성되는 서비스 모듈형 로봇들(210) 중 하나일 수 있다. 제2 모듈형 로봇은 (정보의 제공 및 디스플레이/출력을 위한) 디스플레이 모듈을 포함하는 모듈형 로봇, (파지 및 (정밀) 작업을 위한) 로봇암(들)을 포함하는 모듈형 로봇, 환경 센서를 포함하는 모듈형 로봇, 화물, 음식물 등을 운송하기 위한 공간과 개폐되는 도어를 포함하는 모듈형 로봇 등을 포함할 수 있다.
로봇(100)은 제1 모듈형 로봇과 제2 모듈형 로봇이 결합되어 구성될 수 있다. 예컨대, 로봇(100)이 길안내 서비스를 제공할 경우, 로봇 제어 시스템(120)에 의한 제어에 따라, 제1 모듈형 로봇이 제어되어 로봇(100)은 이동할 수 있고, 제2 모듈형 로봇이 제어되어 로봇(100)은 적절한 정보(지도 정보, 경로 안내 정보 등)를 출력할 수 있다. 또는, 로봇(100)이 물품 배달 서비스를 제공할 경우, 로봇 제어 시스템(120)에 의한 제어에 따라, 제1 모듈형 로봇이 제어되어 로봇(100)은 물품의 위치 및 배달지의 사용자의 위치로 이동할 수 있고, 제2 모듈형 로봇이 제어되어 로봇(100)은 도어를 개방하여 물품을 적재하거나 적재된 물품을 배달지의 사용자에게 제공할 수 있다. 또는, 로봇(100)이 화물을 옮기는 서비스를 제공할 경우, 로봇 제어 시스템(120)에 의한 제어에 따라, 제1 모듈형 로봇이 제어되어 로봇(100)은 물품의 위치까지 이동할 수 있고, 제2 모듈형 로봇이 제어되어 로봇(100)은 로봇암을 제어하여 물품을 파지할 수 있다.
전술한 것처럼, 복수의 모듈형 로봇들의 각각은, 다른 로봇 또는 다른 모듈형 로봇과 인터랙션하지 않고 개별적으로 로봇 제어 시스템(120)에 의해 제어될 수 있다. 전술한 제1 모듈형 로봇 및 제2 모듈형 로봇을 비롯한 복수의 모듈형 로봇들의 각각은 다른 로봇 또는 다른 모듈형 로봇과 인터랙션하지 않고, 상기 로봇 제어 시스템으로부터의 명령을 실행함에 따라 제어되는 것일 뿐이라는 점에서 브레인리스(brainless) 로봇일 수 있다.
실시예에서는, 모듈형 로봇들의 결합에 따라 상황에 맞도록 로봇(100)을 재구성할 수 있는 바, 로봇(100) 확장성을 높일 수 있고 사용의 유연성 역시 높일 수 있다. 또한, 장애가 발생한 모듈형 로봇을 손쉽게 교체할 수 있는 바, 로봇(100) 전체의 가용성을 훼손하지 않을 수 있으며, 로봇 유지 보수의 효용성을 높일 수 있다.
전술한 모듈형 로봇들의 각각은 로봇(100)을 구성하는 장치로서, 각 모듈형 로봇이 단독으로는(즉, 개별적으로는) 동작하지 않도록 구성될 수 있다.
이상 도 1을 참조하여 전술된 기술적 특징에 대한 설명은, 도 2에 대해서도 그대로 적용될 수 있으므로 중복되는 설명은 생략한다.
로봇(100)을 구성하는 모듈형 로봇의 구조 및 기능에 대해서는 후술될 도 4를 참조하여 더 자세하게 설명한다.
도 3은 일 실시예에 따른, 복수의 모듈형 로봇들로 구성된 로봇을 제어하는 로봇 제어 시스템을 나타내는 블록도이다.
로봇 제어 시스템(120)은 전술된 로봇(100)의 공간 내에서의 이동(즉, 주행) 및 로봇(100)에 의한 공간 내에서의 서비스의 제공을 제어하는 장치일 수 있다. 로봇 제어 시스템(120)은 복수의 로봇(100) 각각의 이동 및 로봇(100) 각각의 서비스의 제공을 제어할 수 있다. 로봇 제어 시스템(120)은 로봇(100)을 구성하는 모듈형 로봇들의 각 모듈형 로봇과의 통신을 통해, 로봇(100)이 서비스를 제공하기 위해 요구되는 작업(들)을 수행하도록 할 수 있다.
예컨대, 로봇(100)은 로봇 제어 시스템(120)으로부터의 명령에 따라 복수의 모듈형 로봇들이 제어됨으로써 경로를 주행할 수 있고, 소정의 위치에서 또는 소정의 사용자에게 서비스를 제공할 수 있다.
로봇 제어 시스템(120)은 적어도 하나의 컴퓨팅 장치를 포함할 수 있다.
로봇 제어 시스템(120)은 로봇(100)의 주행을 위한 경로를 설정하고 로봇(100)의 이동을 제어하는 장치일 수 있다. 로봇 제어 시스템(120)은 적어도 하나의 컴퓨팅 장치를 포함할 수 있고, 공간 내 또는 공간 외부에 위치하는 적어도 하나의 서버로 구현될 수 있다.
로봇 제어 시스템(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 내지 430 등)을 포함할 수 있다.
프로세서(320)의 구성들(410 내지 430 등) 각각은 프로세서(320)의 일부로서 소프트웨어 및/또는 하드웨어 모듈일 수 있고, 프로세서에 의해 구현되는 기능(기능 블록)을 나타낼 수 있다. 프로세서(320)의 구성들(410 내지 430 등)에 대해서는 도 4를 참조하여 후술한다.
통신부(310)는 로봇 제어 시스템(120)이 다른 장치(로봇(100)의 각 모듈형 로봇 또는 다른 서버 등)와 통신하기 위한 구성일 수 있다. 말하자면, 통신부(310)는 다른 장치에 대해 데이터 및/또는 정보를 전송/수신하는, 로봇 제어 시스템(120)의 안테나, 데이터 버스, 네트워크 인터페이스 카드, 네트워크 인터페이스 칩 및 네트워킹 인터페이스 포트 등과 같은 하드웨어 모듈 또는 네트워크 디바이스 드라이버(driver) 또는 네트워킹 프로그램과 같은 소프트웨어 모듈일 수 있다.
입출력 인터페이스(340)는 키보드 또는 마우스 등과 같은 입력 장치 및 디스플레이나 스피커와 같은 출력 장치와의 인터페이스를 위한 수단일 수 있다.
또한, 다른 실시예들에서 로봇 제어 시스템(120)은 도시된 구성요소들보다 더 많은 구성요소들을 포함할 수도 있다.
한편, 프로세서(320)는 로봇(100)의 자율주행을 통한 서비스 제공을 위한 구성들을 포함할 수 있다. 프로세서(320)는 도시되지는 않았으나, 맵 생성 모듈, 로컬리제이션 처리 모듈, 경로 계획 처리 모듈 및 서비스 운영 모듈을 포함할 수 있다. 이러한 구성요소들을 비롯한 프로세서(320)가 포함하는 구성요소들은, 운영체제의 코드나 적어도 하나의 컴퓨터 프로그램의 코드에 따른 제어 명령(instruction)에 따라 프로세서(320)가 포함하는 적어도 하나의 프로세서가 수행하는 서로 다른 기능들(different functions)의 표현들일 수 있다.
맵 생성 모듈은 공간 내부에서 자율 주행하는 (도시되지 않은) 맵핑 로봇이 목표 시설물(예컨대, 공간의 내부)에 대해 생성한 센싱 데이터를 이용하여 목표 시설물의 실내 지도를 생성하기 위한 구성요소일 수 있다.
이 때, 로컬리제이션 처리 모듈은 로봇(100)으로부터 네트워크를 통해 수신되는 센싱 데이터와 맵 생성 모듈을 통해 생성된 목표 시설물의 실내 지도를 이용하여 목표 시설물 내부에서의 로봇(100)의 위치를 결정할 수 있다.
경로 계획 처리 모듈은 상술한 로봇으로부터 수신된 센싱 데이터와 생성된 실내 지도를 이용하여 로봇(100)의 실내 자율 주행을 제어하기 위한 제어 신호를 생성할 수 있다. 예컨대, 경로 계획 처리 모듈은 로봇(100)의 경로(즉, 경로 데이터)를 생성할 수 있다. 생성된 경로(경로 데이터)는 해당 경로를 따르는 로봇(100)의 주행을 위해 로봇(100)에 대해 설정될 수 있다. 로봇 제어 시스템(120)은 생성된 경로에 관한 정보를 네트워크를 통해 로봇(100)으로 전송할 수 있다. 일례로, 경로에 관한 정보는 로봇(100)의 현재 위치를 나타내는 정보, 현재 위치와 실내 지도를 맵핑하기 위한 정보, 그리고 경로 계획 정보를 포함할 수 있다. 경로에 관한 정보에는 로봇(100)이 공간 내의 소정의 위치에서 또는 소정의 사용자에게 서비스를 제공하기 위해 주행해야 하는 경로에 관한 정보가 포함될 수 있다. 경로 계획 처리 모듈은 로봇(100)을 위한 경로(즉, 경로 데이터)를, 공간 내에 지정된 전용 도로(110)의 적어도 일부를 주행하도록 경로로서 생성하여 로봇(100)에 대해 설정할 수 있다. 로봇 제어 시스템(120)은 이러한 설정된 경로에 따라(즉, 설정된 경로를 따라) 로봇(100)이 이동하도록 로봇(100)의 이동을 제어할 수 있다.
전술한 로봇(100)의 자율주행은, 로봇 제어 시스템(120)은 로봇(100)의 이동의 기능을 제공하는 모듈형 로봇과 통신하여 해당 모듈형 로봇을 제어하는 것을 통해 수행될 수 있다.
또한, 로봇 제어 시스템(120)은 이동의 기능을 제공하는 모듈형 로봇을 제어하기 위해 센싱 정보를 제공하는 로봇(100)의 다른 모듈형 로봇과도 통신할 수 있고, 센싱 정보를 활용하여 이동의 기능을 제공하는 모듈형 로봇을 제어할 수도 있다. 따라서, 이러한 경우에도 로봇(100)의 관점에서는 모듈형 로봇들 간의 인터랙션 없이, 브레인리스 모듈형 로봇들이 로봇 제어 시스템(120)으로부터의 명령을 실행하는 것만으로 로봇(100)의 자율주행이 제어될 수 있다.
프로세서(320)의 서비스 운영 모듈은 로봇(100)이 공간 내에서 제공하는 서비스를 제어하기 위한 기능을 포함할 수 있다. 예를 들어, 로봇 제어 시스템(120) 또는 공간을 운영하는 서비스 제공자는 로봇(100)의 이용자나 제작자에게 로봇 제어 시스템(120)이 제공하는 서비스(예컨대, 클라우드 서비스)를 위한 IDE(Integrated Development Environment)를 제공할 수 있다. 이 때, 로봇(100)의 이용자나 제작자는 로봇(100)이 공간 내에서 제공하는 서비스를 제어하기 위한 소프트웨어를 IDE를 통해 제작하여 로봇 제어 시스템(120)에 등록할 수 있다. 이 경우, 서비스 운영 모듈은 해당 로봇(100)과 연관하여 등록된 소프트웨어를 이용하여 로봇(100)이 제공하는 서비스를 제어할 수 있다. 구체적인 예로, 로봇(100)이 사용자가 요청한 물건(예컨대, 음식물 또는 택배물)을 해당 사용자의 위치로 전달하는 서비스를 제공한다고 가정하면, 로봇 제어 시스템(120)은 로봇(100)의 실내 자율 주행을 제어하여 로봇(100)이 해당 사용자의 위치로 이동하도록 제어할 뿐만 아니라, 목적 위치에 도착한 경우 사용자에게 물건을 전달하고, 사용자 응대 음성을 출력하는 일련의 서비스를 로봇(100)이 제공하도록 관련된 명령을 로봇(100)에게 전달할 수 있다.
전술한 로봇(100)의 서비스의 제공을 위한 이동은, 로봇 제어 시스템(120)이 로봇(100)의 이동의 기능을 제공하는 모듈형 로봇(예컨대, 전술한 제1 모듈형 로봇)과 통신하여 해당 모듈형 로봇을 제어하는 것을 통해 수행될 수 있다. 이 때, 로봇 제어 시스템(120)은 이동의 기능을 제공하는 모듈형 로봇을 제어하기 위해 센싱 정보를 수집하는 로봇(100)의 다른 모듈형 로봇(예컨대, 전술한 제2 모듈형 로봇 또는 후술될 제3 모듈형 로봇)과도 통신할 수 있고, 센싱 정보를 활용하여 제1 모듈형 로봇을 제어할 수도 있다.
한편, 서비스의 제공을 위한 작업(배달, 픽업, 도어 오픈 등)은 로봇 제어 시스템(120)이 해당의 기능을 제공하는 모듈형 로봇(예컨대, 전술한 제2 모듈형 로봇)과 통신하여 해당 모듈형 로봇을 제어하는 것을 통해 수행될 수 있다.
로봇(100)을 구성하는 모듈형 로봇의 구조 및 기능과 로봇 제어 시스템(120)의 보다 상세한 구조 및 기능에 대해서는 후술될 도 4 내지 도 11을 참조하여 더 자세하게 설명된다.
도 4는 일 실시예에 따른, 로봇 제어 시스템이 로봇을 구성하는 복수의 모듈형 로봇들의 각각을 개별적으로 제어하는 방법을 나타낸다.
도시된 것처럼, 로봇 제어 시스템(120)은 연동 제어부(410), 모듈 제어부 관리부(420), 모듈 제어부(430)를 포함할 수 있다. 410 내지 430은 전술한 프로세서(320)의 구성요소일 수 있다.
모듈 제어부(430)는 로봇(100)을 구성하는 모듈형 로봇들(100-1 내지 100-3)의 각각을 제어하기 위한 모듈 제어부들(432 내지 436)을 포함할 수 있다. 제어부들(432 내지 436)은 모듈형 로봇들(100-1 내지 100-3)과 1:1로 각각 대응될 수 있다.
모듈 제어부 관리부(420)는 이러한 모듈 제어부들(432 내지 436)을 통한 모듈형 로봇들(100-1 내지 100-3)의 제어를 관리하는 구성일 수 있다. 모듈 제어부 관리부(420)는 이러한 모듈 제어부들(432 내지 436)을 관리할 수 있고, 로봇(100)의 제어를 위해 필요한 경우, 동적으로 모듈 제어부를 추가 생성할 수 있다. 모듈 제어부들(432 내지 436)의 각각은 모듈형 로봇들(100-1 내지 100-3)의 각각을 위한 제어기가 인스턴스화 되어 구성된 것일 수 있다.
연동 제어부(410)는 모듈형 로봇들(100-1 내지 100-3) 간의 연동 기능을 처리하기 위한 구성일 수 있다. 연동 제어부(410)는 모듈 제어부들(432 내지 436) 보다 높은 레벨(high level)에서 로봇(100)을 제어하기 위한 구성일 수 있다. 예컨대, 연동 제어부(410)는 로봇(100)이 구성된 모듈형 로봇들(100-1 내지 100-3)에 대한 정보와, 모듈형 로봇들(100-1 내지 100-3)에 대한 설정 정보, 사양 정보 등에 기반하여 각 모듈형 로봇에 대해 추상적인 수준의 제어 명령을 제공하도록 구성될 수 있다. 연동 제어부(410)는 모듈 제어부들(432 내지 436)로 추상 수준의 제어 명령을 송신하여 모듈 제어부들(432 내지 436)을 통해 모듈형 로봇들(100-1 내지 100-3)을 제어할 수 있다.
또는, 도시된 것과는 달리, 연동 제어부(410)는 모듈형 로봇들(100-1 내지 100-3)과 직접 통신하도록 구성될 수도 있으며, 이 때에는, 연동 제어부(410)가 모듈 제어부들(432 내지 436) 및 모듈 제어부 관리자(420)를 겸하도록 구성될 수 있다.
로봇 제어 시스템(120)은 요청된 서비스와 연관된 작업의 요청을 수신하기 위한 구성으로서, 외부 서비스 인터페이스(470)를 포함할 수 있다. 외부 서비스 인터페이스(470)는 도시된 것과는 달리 통신부(310)의 일부로서 구성될 수도 있다.
연동 제어부(410)는 외부 서비스 인터페이스(470)를 통해 요청된 서비스와 관련된 작업(또는 미션)의 요청을 수신할 수 있고, 이러한 요청을 해석하여 모듈형 로봇들(100-1 내지 100-3)의 각각을 제어할 수 있다.
연동 제어부(410)는 모듈형 로봇들(100-1 내지 100-3)을 제어함에 있어서, 기 정의된 로봇 기능 요소들(450)을 사용할 수 있다. 연동 제어부(410)는, 예컨대, 모듈형 로봇들(100-1 내지 100-3)의 측위, 경로 계획, (센서를 통한) 인식의 기능을 제어하기 위해 기 정의된 로봇 기능 요소들(450)을 사용할 수 있다. 로봇 기능 요소들(450)은 로봇 제어 시스템(120) 내부 또는 외부(외부 서버 또는 클라우드 등)에 마련되어 있을 수 있다.
또한, 연동 제어부(410)는 모듈형 로봇들(100-1 내지 100-3)로부터의 상태 정보 및/또는 센싱 정보, 모듈형 로봇들(100-1 내지 100-3)의 연동 정보를 저장하는 DB (DataBase)(460)를 관리할 수 있다. DB (460)는 로봇 제어 시스템(120) 내부 또는 외부(외부 서버 또는 클라우드 등)에 마련되어 있을 수 있다. 연동 제어부(410)는 모듈형 로봇들(100-1 내지 100-3)로부터 수집된 정보를 DB(460)에 저장하거나 DB(460)로부터 정보를 조회하여 모듈형 로봇들(100-1 내지 100-3)의 제어를 위해 사용할 수 있다
통신부(310)는 로봇(100)의 모듈형 로봇들(100-1 내지 100-3)의 각각이 로봇 제어 시스템(120)과 연결되기 위한 엔드포인트를 제공할 수 있다. 통신부(310)를 통해 모듈 제어부들(432 내지 436)의 각각은 모듈형 로봇들(100-1 내지 100-3)과 직접 또는 모듈 제어부 관리자(420)를 경유하여 통신할 수 있다.
상기와 같은 로봇 제어 시스템(120)의 구성에 따라, 로봇 제어 시스템(120)은 브레인리스 로봇(100)(브레인리스 모듈형 로봇들(100-1 내지 100-3))을 위한 브레인 시스템이 될 수 있다. 모듈 제어부들(432 내지 436)은 모듈형 로봇들(100-1 내지 100-3)을 위한 모듈 레벨의 브레인이 될 수 있다.
한편, 도시된 것과는 달리 연동 제어부(410)와; 모듈 제어 관리자(420) 및 모듈 제어부들(432 내지 436)은 각각의 서버로서 구현될 수도 있다.
아래에서는, 모듈형 로봇들(100-1 내지 100-3)로 구성된 로봇(100)에 대해 더 자세하게 설명한다.
전술한 것처럼, 로봇(100)은 공간 내에서 서비스를 제공하기 위해 사용되는 서비스 로봇일 수 있다. 로봇(100)은 자율 주행을 통해 공간의 소정의 위치에서 또는 소정의 사용자에게 서비스를 제공할 수 있다.
로봇(100)은 물리적인 장치일 수 있으며, 도시된 바와 같이, 복수의 모듈형 로봇들(100-1 내지 100-3)을 포함할 수 있다.
복수의 모듈형 로봇들(100-1 내지 100-3)의 각각은 다른 로봇 또는 다른 모듈형 로봇과 인터랙션하지 않고, 상기 로봇 제어 시스템으로부터의 명령을 실행함에 따라 제어되는 것일 뿐이라는 점에서 브레인리스(brainless) 로봇일 수 있다. 복수의 모듈형 로봇들(100-1 내지 100-3)의 각각은 요청된 서비스와 관련된 작업을 수행하기 위한 기능을 수행하도록 구성될 수 있다.
복수의 모듈형 로봇들(100-1 내지 100-3)의 각각은 통신부(230), 제어부(240) 및 하드웨어(H/W)(250)를 포함할 수 있다.
제어부(240)는 로봇(100)에 내장된 물리적인 프로세서일 수 있다. 프로세서(240)는 도시되지 않은 구성요소들을 포함할 수 있고, 이러한 구성요소들은 운영체제의 코드나 적어도 하나의 컴퓨터 프로그램의 코드에 따른 제어 명령(instruction)에 따라 프로세서(240)가 포함하는 적어도 하나의 프로세서가 수행하는 서로 다른 기능들(different functions)의 표현들일 수 있다.
제어부(240)는 브레인리스 로봇으로서의 모듈형 로봇(100-1)이 요구하는 수준의 지능만을 가지도록 구성될 수 있다. 제어부(240)는 로봇 제어 시스템(120)(예컨대, 제1 원격 모듈 제어부(432))로부터의 명령을 실행하여 H/W(250)를 제어하도록 구성될 수 있다. 제어부(240)는 다른 복수의 모듈형 로봇들(100-2 및 100-3)과 통신 및 연동하기 위한 구성은 포함하지 않을 수 있다.
통신부(230)는 모듈형 로봇(100-1)이 로봇 제어 시스템(120)과 통신하기 위한 구성일 수 있다. 말하자면, 통신부(230)는 로봇 제어 시스템(120)에 대해 데이터 및/또는 정보를 전송/수신하는, 모듈형 로봇(100-1)의 안테나, 데이터 버스, 네트워크 인터페이스 카드, 네트워크 인터페이스 칩 및 네트워킹 인터페이스 포트 등과 같은 하드웨어 모듈 또는 네트워크 디바이스 드라이버(driver) 또는 네트워킹 프로그램과 같은 소프트웨어 모듈일 수 있다.
H/W(250)는 모듈형 로봇(100-1)의 기능을 실행하기 위한 물리적인 구성일 수 있다. 예컨대, H/W(250)는 로봇(100)의 이동을 제어하며 이동을 가능하게 하는 구성으로서 이를 수행하기 위한 장비를 포함하는 구동부(바퀴, 다리, 캐터필러 바퀴 등)를 포함할 수 있다.
또는/추가적으로, H/W(250)는 로봇(100)의 자율 주행 및 서비스 제공에 있어서 요구되는 데이터를 수집하기 위한 구성으로서 센서부를 포함할 수 있다. 이러한 센서부는 고가의 센싱 장비를 포함하지 않을 수 있고, 단지 저가형 초음파 센서 및/또는 저가형 카메라 등과 같은 센서를 포함할 수 있다. 또한, 센서부는 전방 및/또는 후방의 다른 로봇이나 사람을 식별하기 위한 센서를 포함할 수 있다. 예컨대, 센서부의 카메라를 통해 다른 로봇, 사람 및 기타 지물들이 식별될 수 있다. 또는, 센서부는 적외선 센서(또는 적외선 카메라)를 포함할 수 있다. 센서부는 카메라 외에 주변의 사용자나, 다른 로봇 또는 지물을 인식/식별하기 위한 센서를 더 포함할 수도 있다.
또는/추가적으로, H/W(250)는 로봇(100)이 제공하는 서비스와 관련된 장비를 더 포함할 수 있다. 예컨대, 음식물/택배물 전달 서비스를 수행하기 위한 구성 요소로서 H/W(250)는 음식물/택배물을 적재하기 위한 적재부나, 로봇 제어 시스템(120)에 의한 제어를 통해 개폐 가능한 도어, 음식물/택배물을 사용자에게 전달하기 위한 구성(일례로, 로봇 암(arm))을 포함할 수 있다. 또는/추가적으로, H/W(250)는 요청된 서비스의 제공과 관련되는 정보/콘텐츠의 제공을 위한 스피커 및/또는 디스플레이 등을 더 포함할 수도 있다.
센서부를 비롯한 H/W(250)에 의해 수집되는 센싱 정보 및/또는 모듈형 로봇(100-1)의 상태 정보는 로봇 제어 시스템(120)으로 송신되어, 모듈형 로봇들(100-1 내지 100-3)의 제어를 위해 활용될 수 있다. 따라서, 모듈형 로봇들(100-1 내지 100-3) 간에의 직접적인 인터랙션이 없더라도 효과적인 모듈형 로봇들(100-1 내지 100-3)을 포함하는 로봇(100)의 제어가 이루어질 수 있다.
일례로, 제어부(240)는 센서부(106)에 의한 센싱 정보를 통신부(230)를 통해 로봇 제어 시스템(120)으로 전송할 수 있다. 로봇 제어 시스템(120)은 공간 내의 실내 지도를 사용하여 생성된 경로 데이터에 기반한 이동 명령을 모듈형 로봇(100-1)으로 전송할 수 있다. 모듈형 로봇(100-1)은 수신된 이동 명령에 따라 H/W(250)가 포함하는 구동부를 제어하여 로봇(100)을 이동시킬 수 있다.
모듈형 로봇(100-2 또는 100-3)에 대해서도 모듈형 로봇(100-1)과 유사한 기술적 설명이 적용될 수 있는 바 중복되는 설명은 생략한다.
도시된 예시에서와 같이, 제1 원격 모듈 제어부(432)와 모듈형 로봇(100-1)은 1:1로 대응할 수 있다. 제어부(240)는 H/W(250)를 직접적으로 제어하는 구성에 해당하며, 논리적인 수준에서의 H/W(250)의 제어는 원격으로 로봇 제어 시스템(120)을 통해 수행될 수 있다
이처럼, 실시예를 통해서는 브레인리스 로봇에 해당하는 모듈형 로봇들(100-1 내지 100-3)의 각각에 대한 개별적인 분산 제어가 가능하게 될 수 있다. 모듈형 로봇들(100-1 내지 100-3)은 서로 연동하지 않으며, 상호 의존성을 갖지 않는다.
한편, 로봇(100)은 로봇(100)이 구성되는 모듈형 로봇들의 종류나 크기에 따라, 상이한 크기 및 형태를 가질 수 있다. 즉, 로봇(100)이 제공하고자 하는 서비스의 종류에 따라 상이한 모듈형 로봇들을 포함하도록 구성될 수 있다. 실시예에서는, 모듈형 로봇들에 대한 개별적인 분산 제어를 통해 다양한 로봇들을 효율적으로 제어할 수 있어, 로봇(100)의 확장성을 높일 수 있다.
이상 도 1 내지 도 3을 참조하여 전술된 기술적 특징에 대한 설명은, 도 4에 대해서도 그대로 적용될 수 있으므로 중복되는 설명은 생략한다.
후술될 상세한 설명에서, 로봇 제어 시스템(120), 로봇(100) 또는 모듈형 로봇의 구성들에 의해 수행되는 동작은 설명의 편의상 로봇 제어 시스템(120), 로봇(100) 또는 모듈형 로봇에 의해 수행되는 동작으로 설명될 수 있다.
도 5는 일 실시예에 따른, 복수의 모듈형 로봇들로 구성된 로봇을 제어하는 방법을 나타내는 흐름도이다.
도 5를 참조하여, 로봇 제어 시스템(120)에 의해 수행되는, 복수의 모듈형 로봇들(100-1 내지 100-3)로 구성된 로봇(100)을 제어하는 방법에 대해 더 자세하게 설명한다.
단계(510)에서, 로봇 제어 시스템(120)은 (예컨대, 외부 서비스 인터페이스(470)를 통해, 로봇(100)에 대해 요청된 서비스와 관련된 작업의 요청을 수신할 수 있다. 서비스의 요청은 공간 내의 사용자(또는 사용자의 단말)로부터 수신되거나, 사용자로부터의 요청에 따라 서비스를 관리하는 관리자(또는 관리자의 단말)로부터 수신될 수 있다. 서비스의 요청은 서비스와 관련된 작업의 요청을 포함할 수 있다. 예컨대, 길안내 서비스가 요청된 경우에는 로봇 제어 시스템(120)에 대해 특정한 대상(사용자)에게 길안내를 제공하는 작업이 요청될 수 있다. 또는, 물품의 배송 서비스가 요청된 경우에는 로봇 제어 시스템(120)에 대해 특정한 물품의 픽업 및/또는 픽업한 물품의 배달을 제공하는 작업이 요청될 수 있다.
단계(522)에서, 로봇 제어 시스템(120)은 (예컨대, 통신부(310)를 통해) 복수의 모듈형 로봇들(100-1 내지 100-3) 중 제1 기능을 수행하는 제1 모듈형 로봇(100-1)으로부터 제1 센싱 정보 및/또는 제1 상태 정보를 수신할 수 있다. 또는/추가적으로, 로봇 제어 시스템(120)은 복수의 모듈형 로봇들(100-1 내지 100-3) 중 제2 기능을 수행하는 제2 모듈형 로봇(100-2)으로부터 제2 센싱 정보 및/또는 제2 상태 정보를 수신할 수 있다.
제1 모듈형 로봇(100-1)이 수행하는 제1 기능은 로봇(100)의 이동일 수 있다. 이 때, 제1 모듈형 로봇(100-1)은 로봇(100)의 이동을 위해 구성되는 모바일 베이스(mobile base) 모듈형 로봇일 수 있다. 예컨대, 제1 모듈형 로봇은 로봇(100)의 보행을 위한 모듈형 로봇 또는 로봇(100)의 바퀴 또는 캐터필러 바퀴를 이용한 주행을 위한 모듈형 로봇 등을 포함할 수 있다.
한편, 제2 모듈형 로봇(100-2)이 수행하는 제2 기능은 요청된 서비스의 제공을 위한 기능이고, 제2 모듈형 로봇(100-2)은 로봇(100)의 서비스 제공을 위해 구성되는 서비스 모듈형 로봇일 수 있다. 제2 모듈형 로봇은 (정보의 제공 및 디스플레이/출력을 위한) 디스플레이 모듈을 포함하는 모듈형 로봇, (파지 및 (정밀) 작업을 위한) 로봇암(들)을 포함하는 모듈형 로봇, 환경 센서를 포함하는 모듈형 로봇, 화물, 음식물 등을 운송하기 위한 공간과 개폐되는 도어를 포함하는 모듈형 로봇 등을 포함할 수 있다.
제1 센싱 정보는 제1 모듈형 로봇(100-1)의 H/W(250)로부터 수집된 센싱 정보이고, 제1 상태 정보 H/W(250)를 통해 획득된(모니터링된) 로봇(100-1)의 상태 정보일 수 있다. 제1 센싱 정보는 제1 모듈형 로봇(100-1)이 위치하는 공간 내의 환경을 센싱한 데이터를 포함할 수 있다. 제2 센싱 정보 및 제2 상태 정보에 대해서도 유사한 설명이 적용될 수 있는 바 중복되는 설명은 생략한다.
전술한 단계(522)에서의 제1 센싱 정보 및/또는 제1 상태 정보의 수신은 단계(520)의 제1 모듈형 로봇(100-1)을 제어에 있어서 포함되는 것일 수 있으며, 도시된 것과는 달리, 단계(520)과는 별개의 단계일 수도 있다.
단계(520)에서, 로봇 제어 시스템(120)은 수신된 제1 센싱 정보 및/또는 제1 상태 정보에 기반하여 제1 모듈형 로봇(100-1)을 제어할 수 있다. 또는/추가적으로, 로봇 제어 시스템(120)은 제2 센싱 정보 또는 제2 상태 정보에 기반하여 제2 모듈형 로봇(100-2)을 제어할 수 있다. 로봇 제어 시스템(120)은 제1 모듈형 로봇(100-1)에 대해 제1 명령을 송신하여 제1 모듈형 로봇(100-1)을 제어할 수 있고, 제2 모듈형 로봇(100-2)에 대해 제2 명령을 송신하여 제2 모듈형 로봇(100-2)을 제어할 수 있다.
따라서, 실시예에서는, 제1 모듈형 로봇(100-1) 및 제2 모듈형 로봇(100-2) 사이에서의 인터랙션 없이, 제1 모듈형 로봇(100-1) 및 제2 모듈형 로봇(100-2)의 각각은 로봇 제어 시스템(120)에 의해 개별적으로 제어될 수 있고, 따라서, 로봇(100)은 로봇(100)에 대해 요청된 서비스와 관련된 작업을 수행하도록 제어될 수 있다.
구체적으로, 단계(524)에서처럼, 로봇 제어 시스템(120)은 단계(510)에서 수신된 작업의 요청을 해석할 수 있다.
단계(526)에서, 로봇 제어 시스템(120)은 이러한 요청에 대한 해석의 결과와 제1 모듈형 로봇(100-1)로부터의 제1 센싱 정보 및/또는 제1 상태 정보에 기반하여 제1 모듈형 로봇(100-1)을 제어하기 위한 제1 명령을 생성할 수 있다. 또한, 로봇 제어 시스템(120)은 이러한 요청에 대한 해석의 결과와 제2 모듈형 로봇(100-2)로부터의 제2 센싱 정보 및/또는 제2 상태 정보에 기반하여 제2 모듈형 로봇(100-2)을 제2 명령을 생성할 수 있다.
로봇 제어 시스템(120)은 제1 명령을 생성함에 있어서, 제1 기능과 연관하여 기 정의된 제1 기능 요소로부터 획득되는 정보를 사용하여 상기 제1 명령을 생성할 수 있다. 또한, 로봇 제어 시스템(120)은 제2 명령을 생성함에 있어서, 제2 기능과 연관하여 기 정의된 제2 기능 요소로부터 획득되는 정보를 사용하여 제2 명령을 생성할 수 있다.
전술한 것처럼, 모듈형 로봇들(100-1 내지 100-3)이 제공하는 기능들과 연관된 기능 요소들(450)이 미리 정의되어 있을 수 있고, 로봇 제어 시스템(120)은 모듈형 로봇들(100-1 내지 100-3)로부터 수신되는 정보와 미리 정의된 기능 요소들(450)을 사용하여 모듈형 로봇들(100-1 내지 100-3)을 제어하기 위한 명령을 생성할 수 있다. 기능 요소들(450)의 각각은 모듈형 로봇들(100-1 내지 100-3)의 각각을 제어하기 위한 명령을 생성하기 위해 사용되는 데이터 셋 및/또는 함수(function)를 포함할 수 있다.
로봇 제어 시스템(120)은 제2 명령을 생성함에 있어서 제1 모듈형 로봇(100-1)로부터의 제1 센싱 정보 또는 제1 상태 정보를 더 이용하여 제2 모듈형 로봇(100-2)을 제어하기 위한 제2 명령을 생성할 수 있다. 따라서, 제2 모듈형 로봇(100-2)은 제1 센싱 정보 또는 상기 제1 상태 정보를 더 이용하여 생성된 상기 제2 명령에 따라 제어될 수 있다.
말하자면, 하나의 모듈형 로봇을 제어함에 있어서는 해당 모듈형 로봇으로부터 수신된 센싱 정보/상태 정보가 이용될 수 있으나, 다른 해당 모듈형 로봇으로부터 수신된 센싱 정보/상태 정보가 더 이용될 수도 있다. 따라서, 브레인리스 모듈형 로봇들 간에는 직접적인 인터랙션(및 연계)가 이루어지지 않으나, 로봇 제어 시스템(120) 측에서 브레인리스 모듈형 로봇들 간에 실질적인 연계가 이루어지도록 할 수 있다.
일례로, 요청된 서비스가 길안내 서비스인 경우에 있어서, 로봇 제어 시스템(120)에는 로봇(100)을 경로를 따라 이동시켜 (위치에 따라 적절한) 메시지/안내문을 출력하도록 하는 작업이 요청될 수 있다. 이 때, 로봇 제어 시스템(120)(예컨대, 연동 제어부(310))는 이러한 작업의 요청을 해석하여, 작업(미션)을 세부 작업(서브 작업/미션)(들)으로 구분할 수 있다. 세부 작업은 i) 로봇(100)을 이동시키는 것, ii) 로봇(100)을 이동시키면서 지도를 표시시키는 것, iii) 특정 위치 도달 시 메시지를 표시하도록 하는 것을 포함할 수 있다.
로봇 제어 시스템(120)은 i) 내지 iii)의 각각이 수행될 수 있도록, 복수의 모듈형 로봇들(100-1 내지 3)로부터 수신된 정보를 분석하여, 모듈형 로봇들(100-1 내지 3)의 각각에 대해 송신할 명령을 생성할 수 있고, 생성된 명령을 모듈형 로봇들(100-1 내지 3)의 각각으로 송신할 수 있다.
예컨대, 제1 모듈형 로봇(100-1)이 로봇(100)의 이동을 위한 로봇이고, 제2 모듈형 로봇(100-2)이 로봇(100)의 측위를 위한 로봇이고, 제3 모듈형 로봇(100-3)이 정보의 디스플레이를 위한 로봇인 경우를 가정하면, 로봇 제어 시스템(120)은 제2 모듈형 로봇(100-2)으로부터 수신된 측위 정보와 제1 모듈형 로봇(100-1)으로부터 수신된 상태 정보에 기반하여 제1 모듈형 로봇(100-1)을 제어하기 위한 명령을 생성할 수 있고, 따라서, 제1 모듈형 로봇(100-1)을 목표 위치로 이동시킬 수 있다. 또한, 로봇 제어 시스템(120)은 제2 모듈형 로봇(100-2)으로부터 수신된 측위 정보와 제1 모듈형 로봇(100-1)으로부터 수신된 상태 정보에 기반하여 제1 모듈형 로봇(100-2)을 제어하기 위한 명령을 생성할 수 있고, 따라서, 제1 모듈형 로봇(100-2)을 계속하여 측위를 수행하도록 제어할 수 있다. 또한, 로봇 제어 시스템(120)은 제2 모듈형 로봇(100-2)으로부터 수신된 측위 정보와 제3 모듈형 로봇(100-3)으로부터 수신된 상태 정보에 기반하여 제3 모듈형 로봇(100-3)을 제어하기 위한 명령을 생성할 수 있고, 따라서, 제3 모듈형 로봇(100-3)이 지도 정보를 표시하도록 하고, 목표 위치에 도달할 시 안내 메시지를 출력하도록 제어할 수 있다.
따라서, 측위를 위한 모듈형 로봇(100-2)으로부터 수집된 정보가 이동을 위한 모듈형 로봇(100-1) 및 정보의 디스플레이를 위한 모듈형 로봇(100-3)의 제어에 활용될 수 있다. 이 때, 모듈형 로봇(100-2)과 모듈형 로봇(100-1) 및 모듈형 로봇(100-3) 사이에의 인터랙션은 일어나지 않고, 이러한 연동 기능의 처리는 로봇 제어 시스템(120)(연동 제어부(410)) 내에서만 수행될 수 있다.
실시예를 통해서는, 제1 모듈형 로봇(100-1) 및 제2 모듈형 로봇(100-2)을 비롯한 로봇(100)을 구성하는 모듈형 로봇들(100-1 내지 3)이 개별적으로 분산 제어되지만, 모듈형 로봇들(100-1 내지 3)이 실질적으로는 연계되어 로봇(100)에 대해 요청된 서비스와 관련된 작업을 처리할 수 있게 된다.
도 9를 참조하여 로봇 제어 시스템(120)을 통해 복수의 모듈형 로봇들을 포함하는 로봇(100)을 제어하는 보다 구체적인 예시에 대해 설명한다.
도 9는 일 예에 따른, 로봇 제어 시스템이 로봇을 구성하는 복수의 모듈형 로봇들의 각각을 개별적으로 제어하는 방법을 나타낸다.
도 9에서는, 로봇(100)이 제1 모듈형 로봇 내지 제5 모듈형 로봇(900-1 내지 5)을 포함하여 구성되는 것으로서 도시되었다. 로봇(100)은 제1 모듈형 로봇 내지 제5 모듈형 로봇(900-1 내지 5)이 결합됨으로써 구성될 수 있다.
도시된 것처럼, 제1 모듈형 로봇 내지 제5 모듈형 로봇(900-1 내지 5)은 모듈 제어부들(910-1 내지 5)과 1:1로 대응될 수 있고, 모듈 제어부들(910-1 내지 5)에 의해 제어될 수 있다(저-레벨(lower-level) 데이터 및 제어).
도시된 것처럼, 외부 서비스 인터페이스(470)를 통해, 연동 제어부(410)는 서비스와 연관된 작업/미션에 대한 요청을 수신할 수 있다. 연동 제어부(410)는 수신된 요청을 해석할 수 있고, 해석의 결과와 제1 모듈형 로봇 내지 제5 모듈형 로봇(900-1 내지 5)으로부터 수신된 정보에 기반하여 제1 모듈형 로봇 내지 제5 모듈형 로봇(900-1 내지 5)을 제어하기 위한 명령을 생성할 수 있고, 생성된 명령을 제1 모듈형 로봇 내지 제5 모듈형 로봇(900-1 내지 5)으로 송신하여 제1 모듈형 로봇 내지 제5 모듈형 로봇(900-1 내지 5)을 제어할 수 있다.
구체적으로, 로봇 제어 시스템(120)은, 통신부(310)를 통해, 환경 정보를 센싱하도록 구성된 제1 모듈형 로봇(900-1)으로부터 이미지 및/또는 센싱 정보를 수신할 수 있고, 로봇암을 동작시키는 제2 모듈형 로봇(900-2)으로부터 로봇암 상태 정보를 수신할 수 있고, 그립퍼(gripper)를 동작시키는 제3 모듈형 로봇(900-3)으로부터 그립퍼 상태 정보를 수신할 수 있고, 도어를 개폐시키는 제4 모듈형 로봇(900-4)으로부터 도어 상태 정보를 수신할 수 있고, 이동을 수행하는 제5 모듈형 로봇(900-5)으로부터 이동에 관한 센싱 정보 및/또는 이동에 관한 상태 정보를 수신할 수 있다.
연동 제어부(410)는 모듈형 로봇들(900-1 내지 5)로부터 수신된 정보와 요청된 작업에 대한 해석의 결과에 기반하여, 모듈 제어부들(910-1 내지 5)로 모듈형 로봇들(900-1 내지 5)의 제어를 위한 명령을 송신할 수 있다.
연동 제어부(410)는 모듈형 로봇들(900-1 내지 5)의 제어를 위한 명령을 생성함에 있어서 기 정의된 로봇 기능 요소들(450)을 사용할 수 있다. 말하자면, 로봇 제어 시스템(120)은, 요청된 작업에 대한 해석의 결과에 따라, 모듈형 로봇들(900-1 내지 5)로부터 수신되는 정보와 미리 정의된 기능 요소들(450)을 사용하여 모듈형 로봇들(900-1 내지 5)을 제어하기 위한 명령을 생성할 수 있다. 기능 요소들(450)의 각각은 모듈형 로봇들(900-1 내지 5)의 각각을 제어하기 위한 명령을 생성하기 위해 사용되는 데이터 셋(DB) 및/또는 함수(function)(stateless function)를 포함할 수 있다. 예컨대, 로봇 기능 요소들(450)은 로봇(100)의 측위 기능을 위한 로컬리제이션 기능 요소(450-1)와, 로봇(100)의 사물 인식 기능을 위한 인식 기능 요소(450-2)와, 로봇(100)의 작업 계획을 수립하기 위한 태스크 플래닝 기능 요소(450-3)와, 로봇(100)의 경로 계획을 수립하기 위한 경로/모션 플래닝 기능 요소(450-4)를 포함할 수 있다. 경로/모션 플래닝 기능 요소(450-4)는 맵 데이터(450-5)를 포함하거나 이를 참조하도록 구성될 수 있다.
연동 제어부(410)는 기 정의된 로봇 기능 요소들(450)과 모듈형 로봇들(900-1 내지 5)로부터 수신된 정보에 기반하여 모듈형 로봇들(900-1 내지 5)을 제어하기 위한 명령을 생성하여, 모듈 제어부들(910-1 내지 5)로 송신할 수 있다. 예컨대, 연동 제어부(410)는 제1 모듈형 로봇(900-1)으로 대상체의 인식 및 자세 파악을 위한 명령을 송신하여 센서 제어에 따라 제1 모듈형 로봇(900-1)이 제어되도록 할 수 있고; 제2 모듈형 로봇(900-2)으로 로봇암 제어 명령을 송신하여 제1 모듈형 로봇(900-2)의 로봇암이 제어되도록 할 수 있고; 제3 모듈형 로봇(900-3)으로 그립퍼 제어 명령을 송신하여 제3 모듈형 로봇(900-3)의 그립퍼가 제어되도록 할 수 있고; 제4 모듈형 로봇(900-4)으로 도어 제어 명령을 송신하여 제4 모듈형 로봇(900-4)의 도어가 개방 또는 폐쇄되도록 할 수 있고; 제5 모듈형 로봇(900-5)으로 이동 명령을 송신하여 제5 모듈형 로봇(900-5)이 이동하거나 장애물 회피 기동을 하도록 제어할 수 있다.
일례로, 요청된 작업이 목적지에서 대상체를 로봇(100)에 적재하는 작업인 경우, 로봇(100)은 목적지(서비스 제공 위치)로 이동하여(제5 모듈형 로봇(900-5) 제어), 대상체를 인식하고 위치 및 자세를 파악할 수 있고(제1 모듈형 로봇(900-1) 제어), 대상체에 대해 로봇암을 이동시켜 그립퍼를 통해 대상체를 파지한 후, 도어를 개방하여 대상체를 로봇(100)의 적재부에 적재하고 도어를 다시 폐쇄(제2 내지 제4 모듈형 로봇들(900-2 내지 4) 제어) 하도록 제어될 수 있다.
따라서, 실제로는 로봇 제어 시스템(120)이 모듈형 로봇들(900-1 내지 900-5)의 각각을 개별적으로 제어하고, 모듈형 로봇들(900-1 내지 900-5)의 각각은 로봇 제어 시스템(120)으로부터의 명령을 단지 실행할 뿐이지만, 로봇(100)은 모듈형 로봇들(900-1 내지 900-5)이 서로 연동하여 동작하는 것처럼 제어되어 요청된 작업을 완료할 수 있다.
한편, 모듈형 로봇들(900-1 내지 900-5)의 제어되는 기능의 종류에 따라서는 연동 제어부(910)의 개입 없이 모듈 제어부(430)가 직접 모듈형 로봇들(900-1 내지 900-5) 중 적어도 하나를 제어할 수도 있다. 이 때, 모듈 제어부(430)는 기 정의된 기능 요소들(450)에 직접 접근하여 모듈형 로봇들(900-1 내지 900-5) 중 적어도 하나를 제어하기 위한 명령을 생성할 수 있다.
이상 도 1 내지 도 4를 참조하여 전술된 기술적 특징에 대한 설명은, 도 5 및 도 9에 대해서도 그대로 적용될 수 있으므로 중복되는 설명은 생략한다.
도 6은 일 예에 따른, 모듈형 로봇들의 각각을 제어하기 위한 모듈 제어부를 생성하여, 각 모듈형 로봇을 제어하는 방법을 나타내는 흐름도이다.
도 4 및 도 9를 참조하여 전술된 모듈 제어부들(432 내지 436 및 910-1 내지 910-5)은 로봇 제어 시스템(120)에 의해 동적으로 생성되는 구성요소일 수 있다.
단계(610)에서, 로봇 제어 시스템(120)(예컨대, 모듈 제어부 관리부(420))은 제1 모듈형 로봇(100-1)을 제어하기 위한 제1 모듈 제어부(432)와 제2 모듈형 로봇(100-2)을 제어하기 위한 제2 모듈 제어부(434)를 구성(예컨대, 동적으로 생성)할 수 있다. 한편, 로봇 제어 시스템(120)은, 요청된 작업을 수행하기 위해, 복수의 모듈형 로봇들(100-1 내지 100-3) 중 제3 기능을 수행하는 제3 모듈형 로봇(100-3)의 제어가 요구되면, 제3 모듈형 로봇(100-3)을 제어하기 위한 제3 모듈 제어부(436)를 구성(예컨대, 동적으로 생성)할 수 있다. 예컨대, 로봇 제어 시스템(120)은 작업의 요청을 해석한 결과 추가적인 모듈형 로봇(100-3)의 제어가 요구되는 것으로 판단되는 경우, 해당 모듈형 로봇(100-3)을 제어하기 위한 모듈 제어부(436)를 생성할 수 있다.
모듈 제어부들(432 내지 436)의 각각은 모듈형 로봇들(100-1 내지 100-3)의 각각을 위한 제어기가 인스턴스화되어 구성된 것일 수 있다.
한편, 요청된 작업을 수행하기 위해 불필요한 모듈형 로봇을 제어하기 위한 모듈 제어부는 제거될 수 있다.
단계(620)에서, 로봇 제어 시스템(120)은 구성된 모듈 제어부들(432 내지 436)을 통해 모듈형 로봇들(100-1 내지 100-3)을 제어할 수 있다.
로봇 제어 시스템(120)은 제1 모듈형 로봇(100-1)에 대응하는 제1 모듈 제어부(432)를 사용하여, 제1 모듈형 로봇(100-1)으로부터 제1 센싱 정보 및/또는 제1 상태 정보를 수신하고, 생성된 제1 명령을 제1 모듈형 로봇(100-1)에 송신할 수 있다. 또한, 로봇 제어 시스템(120)은 제2 모듈형 로봇(100-2)에 대응하는 제2 모듈 제어부(434)를 사용하여, 제2 모듈형 로봇(100-2)으로부터 제2 센싱 정보 또는 제2 상태 정보를 수신하고, 생성된 제2 명령을 제2 모듈형 로봇(100-2)에 송신할 수 있다. 제3 모듈형 로봇(100-3) 역시 유사하게 제어될 수 있다.
제1 모듈 제어부 내지 제3 모듈 제어부(432 내지 436)와 제1 모듈형 로봇 내지 제3 모듈형 로봇(100-1 내지 100-3)은 각각 일대일로 대응할 수 있다.
이처럼, 실시예에서는 로봇(100)을 구성하는 모듈형 로봇들의 각각을 제어하기 위한 제어부가, 로봇(100)의 구성이나 로봇(100)이 제공하는 서비스에 따라 동적으로 생성 및 제거될 수 있다.
모듈 제어부들(432 내지 436)은 프로세서(320)의 구성요소일 수 있다.
이상 도 1 내지 도 5 및 도 9를 참조하여 전술된 기술적 특징에 대한 설명은, 도 6에 대해서도 그대로 적용될 수 있으므로 중복되는 설명은 생략한다.
도 7은 일 예에 따른, 각 로봇이 포함하는 모듈형 로봇들을 개별적으로 제어하여 다수의 로봇들을 제어하는 방법을 나타내는 흐름도이다.
아래에서는, 로봇 제어 시스템(120)을 사용하여 각각이 복수의 모듈형 로봇들로 구성되는 복수의 로봇들(멀티 로봇들)을 제어하는 방법에 대해 더 자세하게 설명한다.
로봇 제어 시스템(120)은, 로봇(100) 외에, 복수의 다른 모듈형 로봇들로 구성된 다른 로봇을 더 제어하도록 구성될 수 있다. 로봇 제어 시스템(120)은, 다른 로봇을 구성하는 다른 복수의 모듈형 로봇들 사이에서의 인터랙션 없이, 해당 다른 복수의 모듈형 로봇들의 각각을 개별적으로 제어할 수 있다. 따라서, 이러한 다른 로봇은 해당 다른 로봇에 대해 요청된 서비스와 관련된 다른 작업을 수행하도록 제어될 수 있다.
즉, 로봇 제어 시스템(120)은 모듈형 로봇들로 구성되는 복수의 로봇들을 제어하는 멀티-로봇 브레인 시스템으로서 구현될 수 있다.
아래에서, 로봇 제어 시스템(120)을 멀티-로봇 브레인 시스템으로서 구현하는 방법에 대해 더 자세하게 설명한다.
관련하여, 도 10 및 도 11은 일 예에 따른, 각 로봇이 포함하는 모듈형 로봇들을 개별적으로 제어하여 다수의 로봇들을 제어하는 방법을 나타낸다.
단계(710)에서, 로봇 제어 시스템(120)(프로세서(320))은 복수의 로봇들(상기 로봇(100) 및 상기 다른 로봇을 포함하는 로봇들)의 각각을 제어하기 위한 로봇 제어부를 구성(생성)할 수 있다.
단계(720)에서, 로봇 제어 시스템(120)은 각 로봇에 포함된 모듈형 로봇들의 각각을 개별적으로 제어할 수 있다.
이에 따라, 단계(730)에서처럼, 로봇 제어 시스템(120)은 각 로봇을 개별적으로 (서비스와 관련되는) 작업을 수행하도록 제어하거나, 또는 적어도 2개의 로봇들을 서로 협력하여 동작하도록 제어할 수 있다.
예컨대, 복수의 모듈형 로봇들로 구성된 로봇과, 복수의 다른 모듈형 로봇들로 구성된 다른 로봇은 로봇 제어 시스템(120)에서 독립적으로 구성된(프로세서(320)의 구성요소로서 구성된) 로봇 제어부에 의해 각각 제어될 수 있다.
즉, 도 10에서 도시된 것처럼, 로봇 제어 시스템(120)(프로세서(320))는 로봇(100)을 제어하도록 구성된 제1 로봇 제어부(1010) 및 다른 로봇(1000)을 제어하도록 구성된 제2 로봇 제어부(1020)를 포함할 수 있다. 제1 로봇 제어부(1010) 및 제2 로봇 제어부(1020)는 서로 독립적으로 구성될 수 있다. 말하자면, 제1 로봇 제어부(1010) 및 제2 로봇 제어부(1020)는 독립적으로 로봇(100) 및 다른 로봇(1000)을 위한 각각의 로봇 브레인으로서 서로 독립적으로 로봇(100) 및 다른 로봇(1000)을 제어하도록 구성될 수 있다.
로봇 제어부는 로봇 제어 시스템(120)이 제어하는 로봇의 수에 따라 동적으로 생성될 수 있다. 따라서, 로봇 브레인은 제어되는 로봇의 수에 따라 유연하게 확장될 수 있다.
로봇 제어부(1010, 1020)는 각각 모듈 제어부 관리자(1014, 1024), 연동 제어부(1012, 1022) 및 모듈 제어부(1016, 1026)를 포함할 수 있다. 로봇 제어부(1010, 1020)의 구성에 대해서는 도 4를 참조하여 전술된 모듈 제어부 관리자(420), 연동 제어부(410) 및 모듈 제어부(430)에 대한 설명이 유사하게 적용될 수 있는 바 중복되는 설명은 생략한다.
로봇 제어부(1010, 1020)에 의해 로봇(100)을 구성하는 모듈형 로봇들(100-1 내지 100-3)과 로봇(1000)을 구성하는 모듈형 로봇들(1000-1 내지 1000-3)은 개별적으로 각각 제어될 수 있다.
한편, 로봇(100)과 다른 로봇(1000) 간의 연계는 로봇 제어 시스템(120)은 멀티 로봇 관리자(1030)에 의해 관리될 수 있다.
따라서, 로봇 제어 시스템(120)은 독립적으로 동작하는 로봇들을 제어하기 위한 멀티 로봇 브레인 시스템으로서 구현될 수 있다.
다른 실시예에서, 로봇(100)과 다른 로봇(1000)은 서로 협력하여 동작함으로써 (실제로는 2개의 로봇이나) 하나의 가상 로봇(1200)과 같이 동작하도록 제어될 수도 있다. 말하자면, 로봇(100)과 다른 로봇(1000)은 하나의 가상 로봇(1200)을 구성할 수 있다.
이 때, 로봇(100)과 다른 로봇(1000)은 로봇 제어 시스템(120)(프로세스(320))의 공통된 로봇 제어부(즉, 연동 제어부(1110), 모듈 제어부 관리자(1120) 및 모듈 제어부(1230)로 구성되는 로봇 제어부)에 의해 각각 제어될 수 있다.
이러한 실시예에서는, 예컨대, 로봇(100)이 수행하는 작업과 다른 로봇(1000)이 수행하는 다른 작업은 서로 연계된 작업일 수 있고, 로봇(100)과 다른 로봇(1000)은 서로 협력하여 동작하도록 제어될 수 있다. 일례로, 로봇(100)이 로봇암을 포함하는 로봇으로서 물건을 파지하여 옮기는 로봇이고, 다른 로봇(1000)이 캐리어를 포함하는 로봇으로서 물건을 적재하는 로봇인 경우, 로봇 제어 시스템(120)에 의한 제어에 따라, 로봇(100)과 다른 로봇(1000)은 서로 협력할 수 있고 로봇(100)의 로봇암에 의해 파지된 물건을 다른 로봇(1000)에 적재하도록 제어될 수 있다.
연동 제어부(1110)는 로봇 협력/조율 브레인일 수 있다. 즉, 연동 제어부(1110)의 단위는 물리적인 로봇의 단위와는 상이하게 구현될 수 있다.
전술한 것처럼, 모듈 제어부(1130)의 각각은 동적으로 확장될 수 있다.
실시예에서는, 실제로 제어되는 보이는 로봇은 2대이지만, 2개의 로봇들(100 및 1000)이 포함하는 모듈형 로봇들(100-1 내지 3 및 1000-1 내지 3)이 개별적으로 제어됨에 따라, 로봇들(100 및 1000) 간의 인터랙션이 강력하게 되어 로봇들(100 및 1000) 이 하나의 가상 로봇(1200)과 같이 동작하게 될 수 있다. 멀티 로봇 관리자(1030)는 이러한 복수의 로봇들로 구성되는 가상 로봇이 복수인 경우에 있어서, 복수의 가상 로봇들 간의 연계를 관리하기 위한 구성일 수 있다.
따라서, 로봇 제어 시스템(120)은 서로 협력하여 독립적으로 동작하는 로봇들을 제어하기 위한 멀티 로봇 브레인 시스템으로서 구현될 수 있다.
이처럼 실시예에서는 로봇 제어 시스템(120) 내에서 모듈 제어부에 해당하는 레이어를 추가함으로써, 개념적인 로봇(복수의 모듈형 로봇들을 포함하는 로봇)의 경계선을 가변적으로 가져갈 수 있으며, 로봇들을 제어하기 위한 멀티 로봇 시스템을 다양하게 구성할 수 있다.
도 10에서 도시된 것처럼, 실시예에서는, 모듈 제어부들을 연동시키는 원격 브레인(로봇 제어부)를 한 대의 로봇 단위로 구성할 수 있으며, 원격 브레인들을 연동하기 위한 멀티 로봇 관리자(1030)를 로봇 제어 시스템(120)의 구성 요소로 추가할 수 있다.
또한, 도 11에서 도시된 것처럼, 전체의 모듈 제어부들(1130)을 하나의 서브 시스템 내에서 관리하되, 모듈 제어부들을 연동하는 연동 제어부(1110)를 한 대의 로봇에 국한시키지 않도록 로봇 제어 시스템(120)을 구현할 수도 있다. 이러한 경우에는, 복수의 로봇들이 수많은 모듈형 로봇들을 포함하는 하나의 거대한 로봇(가상 로봇)으로 간주하여 제어될 수 있다.
예컨대, 하나의 물건을 같이 운반하는 4대의 로봇을 가정하면, 해당 로봇의 베이스 모듈형 로봇들을 기준으로 로봇들은 4대로 구분될 수 있다. 이러한 4대의 로봇들은 각 로봇의 모듈형 로봇들을 연동 제어하는 (4개의) 레이어들과, 4대의 로봇을 연동 제어하는 멀티 로봇 레이어(멀티 로봇 관리자(1030))를 통해 제어될 수 있다(도 10 참조).
또는, 상기의 4대의 로봇들은 4개의 베이스 모듈형 로봇들을 가지는 단일한 가상 로봇(또는 로봇 그룹)으로 가정될 수 있다. 이 때, (4대의 로봇들로 구성되는) 가상 로봇은, 해당 가상 로봇이 포함하는 모든 모듈형 로봇들을 연동 제어하는 (1개의) 레이어와 4대 단위로 구성된 가상 로봇(로봇 그룹)이 복수 개 있을 때 이들 사이를 연동 제어하기 위한 멀티 로봇 레이어(멀티 로봇 관리자(1030))를 통해 제어될 수 있다(도 11 참조).
이상 도 1 내지 도 6 및 도 9를 참조하여 전술된 기술적 특징에 대한 설명은, 도 7, 도 10 및 도 11에 대해서도 그대로 적용될 수 있으므로 중복되는 설명은 생략한다.
도 8는 일 예에 따른, 공유 통신부를 사용하는 모듈형 로봇들로 구성된 로봇을 나타낸다.
도 4를 참조하여 전술된 것처럼, 로봇(100)은 복수의 모듈형 로봇들(100-1 내지 100-3)을 포함할 수 있고, 복수의 모듈형 로봇들(100-1 내지 100-3) 사이에서의 인터랙션 없이, 복수의 모듈형 로봇들(100-1 내지 100-3)의 각각은 로봇 제어 시스템(120)에 의해 개별적으로 제어될 수 있다. 모듈형 로봇들(100-1 내지 100-3)의 각 모듈형 로봇은 요청된 서비스의 제공을 위한 기능을 수행하도록 구성될 수 있다.
모듈형 로봇(100-1, 100-2)이 포함하는 제어부(예컨대, 프로세서)는 로봇 제어 시스템(120)으로 센서로부터 수집된 센싱 정보 또는 해당 모듈형 로봇(100-1, 100-2)의 상태 정보를 송신하며, 로봇 제어 시스템(120)으로부터 센싱 정보 또는 상태 정보에 기반한 명령을 수신하도록 구성될 수 있으며, 수신되는 명령에 따라 (기능을 실행하도록) 모듈형 로봇(100-1, 100-2)을 제어할 수 있다.
도 4에서는 복수의 모듈형 로봇들(100-1 내지 100-3)의 각각이 로봇 제어 시스템(120)와 통신하기 위한 통신부를 포함하는 것으로 도시되었으나, 도 8에서 도시된 것처럼 복수의 모듈형 로봇들 중 하나의 모듈형 로봇(100-2)만이 공유 통신부(820)를 포함하고, 공유 통신부(820)를 통해 복수의 모듈형 로봇들(100-1 및 100-2)이 로봇 제어 시스템(120)와 통신할 수도 있다.
말하자면, 제1 모듈형 로봇(100-1) 및 제2 모듈형 로봇(100-2)은 공유되는 공유 통신부(820)를 사용하여 각각 로봇 제어 시스템(120)과 통신할 수 있고, (로봇 제어 시스템(120)의 제1 모듈형 로봇(100-1) 및 제2 모듈형 로봇(100-2)으로부터의) 제1 센싱 정보 또는 제1 상태 정보의 수신 및 제2 센싱 정보 또는 상기 제2 상태 정보의 수신과, (로봇 제어 시스템(120)의 제1 모듈형 로봇(100-1) 및 제2 모듈형 로봇(100-2)으로의) 제1 명령의 송신 및 제2 명령의 송신은 공유 통신부(820)를 통해 수행될 수 있다.
이 때, 제1 모듈형 로봇(100-1)는 I/F 통신부(810)만을 포함할 수 있다.
복수의 모듈형 로봇들(100-1 및 100-2) 중 (공통 통신부(820)를 포함하지 않는) 나머지 모듈형 로봇(들) (100-1)은 커넥터(830-1 및 830-2)를 통해 공통 통신부(820)를 포함하는 모듈형 로봇(100-2)과 접속할 수 있고, 공유 통신부(820)를 통해 로봇 제어 시스템(120)과 통신할 수 있다. 커넥터는 (표준화된 인터페이스를 사용하는) 표준 커넥터일 수 있다.
따라서, 로봇(100)을 구성하는 모듈형 로봇들 모두가 무선 통신을 위한 장치를 구비하지 않더라도, 특정 모듈형 로봇이 포함하는 무선 통신을 위한 장치가 나머지의 모듈형 로봇들과 공유되어 사용될 수 있다. 따라서, 무선 통신을 위한 장치를 구비하지 않는 모듈형 로봇 또한 로봇 제어 시스템(120)과 논리적으로 연결될 수 있다.
표준 커넥터를 통해 무선 통신을 위한 장치는 공유하여 사용될 수 있으나, 로봇(100)을 구성하는 모듈형 로봇들은 서로 연동되지는 않으며, 상호 의존성을 갖지도 않는다. 말하자면, 무선 통신을 위한 장치가 모듈형 로봇들 간에 공유되어 사용되는 경우에도, 모듈형 로봇들 간의 논리적인 수준에서의 상호 분리는 유지될 수 있다.
한편, 유사한 방식으로 로봇(100)을 구성하는 모듈형 로봇들은 배터리나 전원(Power) 장치를 공유할 수도 있다, 따라서, 모듈형 로봇들의 각각이 배터리나 전원 장치를 갖지 않더라도, 로봇(100)이 구현될 수 있다. 또는, 모듈형 로봇들의 각각이 전원 장치나 배터리를 가지고 있는 경우라고 하더라도, 모듈형 로봇들이 표준적인 연결 방식(예컨대, 전술한 표준 커넥터)을 통해 연결됨으로써, 모듈형 로봇들이 전원 장치나 배터리를 서로 공유하도록 구성될 수도 있다.
이상 도 1 내지 도 7 및 도 9 내지 도 11을 참조하여 전술된 기술적 특징에 대한 설명은, 도 8에 대해서도 그대로 적용될 수 있으므로 중복되는 설명은 생략한다.
이상에서 설명된 시스템 또는 장치는 하드웨어 구성요소, 소프트웨어 구성요소 또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치 및 구성요소는, 예를 들어, 프로세서, 콘트롤러, 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 (20)

  1. 로봇 제어 시스템에 의해 수행되는, 복수의 모듈형 로봇들로 구성된 로봇을 제어하는 방법에 있어서,
    상기 복수의 모듈형 로봇들 중 제1 기능을 수행하는 제1 모듈형 로봇으로부터 제1 센싱 정보 또는 제1 상태 정보를 수신하고, 상기 복수의 모듈형 로봇들 중 제2 기능을 수행하는 제2 모듈형 로봇으로부터 제2 센싱 정보 또는 제2 상태 정보를 수신하는 단계; 및
    상기 제1 센싱 정보 또는 상기 제1 상태 정보에 기반하여 상기 제1 모듈형 로봇에 제1 명령을 송신하여 상기 제1 모듈형 로봇을 제어하고, 상기 제2 센싱 정보 또는 상기 제2 상태 정보에 기반하여 상기 제2 모듈형 로봇에 제2 명령을 송신하여 상기 제2 모듈형 로봇을 제어하는 단계
    를 포함하고,
    상기 제1 모듈형 로봇 및 상기 제2 모듈형 로봇 사이에서의 인터랙션 없이, 상기 제1 모듈형 로봇 및 상기 제2 모듈형 로봇의 각각은 상기 로봇 제어 시스템에 의해 개별적으로 제어됨으로써, 상기 로봇은 상기 로봇에 대해 요청된 서비스와 관련된 작업을 수행하도록 제어되고,
    상기 로봇 제어 시스템은 복수의 다른 모듈형 로봇들로 구성된 다른 로봇을 더 제어하도록 구성되고,
    상기 다른 로봇은 상기 다른 로봇에 대해 요청된 서비스와 관련된 다른 작업을 수행하도록 제어되고,
    상기 로봇과 상기 다른 로봇은 하나의 가상 로봇을 구성함으로써 상기 로봇 제어 시스템에 의해 서로 협력하여 동작하도록 제어되는, 로봇을 제어하는 방법.
  2. 제1항에 있어서,
    상기 복수의 모듈형 로봇들의 각각은, 다른 로봇 또는 다른 모듈형 로봇과 인터랙션하지 않고, 상기 로봇 제어 시스템으로부터의 명령을 실행함에 따라 제어되는 브레인리스(brainless) 로봇인, 로봇을 제어하는 방법.
  3. 제1항에 있어서,
    상기 로봇에 대해 요청된 서비스와 관련된 상기 작업의 요청을 수신하는 단계
    를 더 포함하고,
    상기 제1 모듈형 로봇 및 상기 제2 모듈형 로봇을 제어하는 단계는,
    상기 요청에 대한 해석의 결과와 상기 제1 센싱 정보 또는 상기 제1 상태 정보에 기반하여 상기 제1 명령을 생성하는 단계; 및
    상기 요청에 대한 해석의 결과와 상기 제2 센싱 정보 또는 상기 제2 상태 정보에 기반하여 상기 제2 명령을 생성하는 단계
    를 포함하는, 로봇을 제어하는 방법.
  4. 제3항에 있어서,
    상기 제1 명령을 생성하는 단계는,
    상기 제1 기능과 연관하여 기 정의된 제1 기능 요소로부터 획득되는 정보를 사용하여 상기 제1 명령을 생성하고,
    상기 제2 명령을 생성하는 단계는,
    상기 제2 기능과 연관하여 기 정의된 제2 기능 요소로부터 획득되는 정보를 사용하여 상기 제2 명령을 생성하는, 로봇을 제어하는 방법.
  5. 제2항에 있어서,
    상기 제2 명령을 생성하는 단계는,
    상기 제1 센싱 정보 또는 상기 제1 상태 정보를 더 이용하여 상기 제2 명령을 생성하고,
    상기 제2 모듈형 로봇은, 상기 제1 센싱 정보 또는 상기 제1 상태 정보를 더 이용하여 생성된 상기 제2 명령에 따라 제어되는, 로봇을 제어하는 방법.
  6. 제1항에 있어서,
    상기 제1 모듈형 로봇을 제어하기 위한 제1 모듈 제어부와 상기 제2 모듈형 로봇을 제어하기 위한 제2 모듈 제어부를 구성하는 단계
    를 더 포함하고,
    상기 제1 모듈형 로봇에 대응하는 상기 제1 모듈 제어부를 사용하여, 상기 제1 모듈형 로봇으로부터 상기 제1 센싱 정보 또는 상기 제1 상태 정보를 수신하고, 상기 제1 명령을 상기 제1 모듈형 로봇에 송신하고,
    상기 제2 모듈형 로봇에 대응하는 상기 제2 모듈 제어부를 사용하여, 상기 제2 모듈형 로봇으로부터 상기 제2 센싱 정보 또는 상기 제2 상태 정보를 수신하고, 상기 제2 명령을 상기 제2 모듈형 로봇에 송신하고,
    상기 제1 모듈 제어부 및 상기 제2 모듈 제어부와 상기 제1 모듈형 로봇 및 상기 제2 모듈형 로봇은 각각 일대일로 대응하는, 로봇을 제어하는 방법.
  7. 제6항에 있어서,
    상기 작업을 수행하기 위해 상기 복수의 모듈형 로봇들 중 제3 기능을 수행하는 제3 모듈형 로봇의 제어가 요구되면, 상기 제3 모듈형 로봇을 제어하기 위한 제3 모듈 제어부를 구성하는 단계
    를 더 포함하고,
    상기 제3 모듈 제어부와 상기 제3 모듈형 로봇은 일대일로 대응하는, 로봇을 제어하는 방법.
  8. 제1항에 있어서,
    상기 제1 모듈형 로봇 및 상기 제2 모듈형 로봇은 공유되는 통신부를 사용하여 각각 상기 로봇 제어 시스템과 통신하고,
    상기 제1 센싱 정보 또는 상기 제1 상태 정보의 수신, 상기 제2 센싱 정보 또는 상기 제2 상태 정보의 수신, 상기 제1 명령의 송신 및 상기 제2 명령의 송신은 상기 공유되는 통신부를 통해 수행되는, 로봇을 제어하는 방법.
  9. 제1항에 있어서,
    상기 다른 복수의 모듈형 로봇들 사이에서의 인터랙션 없이, 상기 다른 복수의 모듈형 로봇들의 각각이 상기 로봇 제어 시스템에 의해 개별적으로 제어됨으로써, 상기 다른 로봇은 상기 다른 작업을 수행하도록 제어되는, 로봇을 제어하는 방법.
  10. 삭제
  11. 제1항에 있어서,
    상기 로봇과 상기 다른 로봇은 상기 로봇 제어 시스템의 공통된 로봇 제어부에 의해 각각 제어되고,
    상기 작업과 상기 다른 작업은 서로 연계된 작업이고,
    상기 로봇과 상기 다른 로봇은 상기 서로 연계된 작업을 수행함으로써 서로 협력하여 동작하도록 제어되는, 로봇을 제어하는 방법.
  12. 제1항에 있어서,
    상기 제1 기능은 상기 로봇의 이동이고, 상기 제1 모듈형 로봇은 상기 로봇의 이동을 위해 구성되는 모바일 베이스(mobile base) 모듈형 로봇이고,
    상기 제2 기능은 상기 서비스의 제공을 위한 기능이고, 상기 제2 모듈형 로봇은 상기 로봇의 서비스 제공을 위해 구성되는 서비스 모듈형 로봇이고,
    상기 제1 모듈형 로봇과 상기 제2 모듈형 로봇이 결합되어 상기 로봇이 구성되는, 로봇을 제어하는 방법.
  13. 복수의 모듈형 로봇들로 구성된 로봇을 제어하는 로봇 제어 시스템에 있어서,
    컴퓨터에서 판독 가능한 명령을 실행하도록 구현되는 적어도 하나의 프로세서
    를 포함하고,
    상기 적어도 하나의 프로세서는,
    상기 복수의 모듈형 로봇들 중 제1 기능을 수행하는 제1 모듈형 로봇으로부터 제1 센싱 정보 또는 제1 상태 정보를 수신하고, 상기 복수의 모듈형 로봇들 중 제2 기능을 수행하는 제2 모듈형 로봇으로부터 제2 센싱 정보 또는 제2 상태 정보를 수신하고, 상기 제1 센싱 정보 또는 상기 제1 상태 정보에 기반하여 상기 제1 모듈형 로봇에 제1 명령을 송신하여 상기 제1 모듈형 로봇을 제어하고, 상기 제2 센싱 정보 또는 상기 제2 상태 정보에 기반하여 상기 제2 모듈형 로봇에 제2 명령을 송신하여 상기 제2 모듈형 로봇을 제어하고,
    상기 제1 모듈형 로봇 및 상기 제2 모듈형 로봇 사이에서의 인터랙션 없이, 상기 제1 모듈형 로봇 및 상기 제2 모듈형 로봇의 각각은 상기 로봇 제어 시스템에 의해 개별적으로 제어됨으로써, 상기 로봇은 상기 로봇에 대해 요청된 서비스와 관련된 작업을 수행하도록 제어되고,
    상기 적어도 하나의 프로세서는 복수의 다른 모듈형 로봇들로 구성된 다른 로봇을 더 제어하도록 구성되고,
    상기 다른 로봇은 상기 다른 로봇에 대해 요청된 서비스와 관련된 다른 작업을 수행하도록 제어되고,
    상기 로봇과 상기 다른 로봇은 하나의 가상 로봇을 구성함으로써 상기 적어도 하나의 프로세서에 의해 서로 협력하여 동작하도록 제어되는, 로봇 제어 시스템.
  14. 제13항에 있어서,
    상기 적어도 하나의 프로세서는,
    상기 제1 모듈형 로봇을 제어하기 위한 제1 모듈 제어부와 상기 제2 모듈형 로봇을 제어하기 위한 제2 모듈 제어부를 포함하고,
    상기 제1 모듈형 로봇에 대응하는 상기 제1 모듈 제어부는 상기 제1 모듈형 로봇으로부터 상기 제1 센싱 정보 또는 상기 제1 상태 정보를 수신하고, 상기 제1 명령을 상기 제1 모듈형 로봇에 송신하고,
    상기 제2 모듈형 로봇에 대응하는 상기 제2 모듈 제어부는 상기 제1 모듈형 로봇으로부터 상기 제1 센싱 정보 또는 상기 제1 상태 정보를 수신하고, 상기 제1 명령을 상기 제1 모듈형 로봇에 송신하고,
    상기 제1 모듈 제어부 및 상기 제2 모듈 제어부와 상기 제1 모듈형 로봇 및 상기 제2 모듈형 로봇은 각각 일대일로 대응하고,
    상기 적어도 하나의 프로세서는,
    상기 작업을 수행하기 위해 상기 복수의 모듈형 로봇들 중 제3 기능을 수행하는 제3 모듈형 로봇의 제어가 요구되면, 상기 제3 모듈형 로봇을 제어하기 위한 제3 모듈 제어부를 생성하도록 구성되는, 로봇 제어 시스템.
  15. 제13항에 있어서,
    상기 다른 복수의 모듈형 로봇들 사이에서의 인터랙션 없이, 상기 다른 복수의 모듈형 로봇들의 각각이 상기 로봇 제어 시스템에 의해 개별적으로 제어됨으로써, 상기 다른 로봇은 상기 다른 작업을 수행하도록 제어되는, 로봇 제어 시스템.
  16. 삭제
  17. 제13항에 있어서,
    상기 적어도 하나의 프로세서는 공통 로봇 제어부를 포함하고,
    상기 로봇과 상기 다른 로봇은 상기 공통 로봇 제어부에 의해 각각 제어되고,
    상기 작업과 상기 다른 작업은 서로 연계된 작업이고,
    상기 로봇과 상기 다른 로봇은 상기 서로 연계된 작업을 수행함으로써 서로 협력하여 동작하도록 제어되는, 로봇 제어 시스템.
  18. 로봇 제어 시스템에 의해 제어됨으로써 공간 내에서 서비스를 제공하는 로봇에 있어서,
    복수의 모듈형 로봇들
    을 포함하고,
    상기 복수의 모듈형 로봇들 사이에서의 인터랙션 없이, 상기 복수의 모듈형 로봇들의 각각은 상기 로봇 제어 시스템에 의해 개별적으로 제어되고,
    상기 복수의 모듈형 로봇들의 각 모듈형 로봇은 상기 서비스의 제공을 위한 기능을 수행하도록 구성되고,
    상기 각 모듈형 로봇은
    컴퓨터에서 판독 가능한 명령을 실행하도록 구현되는 적어도 하나의 프로세서
    를 포함하고,
    상기 적어도 하나의 프로세서는,
    상기 로봇 제어 시스템으로 센싱 정보 또는 상기 각 모듈형 로봇의 상태 정보를 송신하고,
    상기 로봇 제어 시스템으로부터 상기 센싱 정보 또는 상기 상태 정보에 기반한 명령을 수신하고,
    상기 명령에 따라 상기 각 모듈형 로봇을 제어하고,상기 로봇 제어 시스템에 의해 상기 각 모듈형 로봇이 개별적으로 제어됨으로써, 상기 로봇은 상기 로봇에 대해 요청된 상기 서비스와 관련된 작업을 수행하도록 제어되고
    상기 로봇 제어 시스템은 복수의 다른 모듈형 로봇들로 구성된 다른 로봇을 더 제어하도록 구성된 것이고,
    상기 다른 로봇은 상기 다른 로봇에 대해 요청된 서비스와 관련된 다른 작업을 수행하도록 제어되도록 구성되고,
    상기 로봇과 상기 다른 로봇은 하나의 가상 로봇을 구성함으로써 상기 로봇 제어 시스템에 의해 서로 협력하여 동작하도록 제어되는, 로봇.
  19. 제18항에 있어서,
    상기 복수의 모듈형 로봇들 중 제1 모듈형 로봇은 공유 통신부를 포함하고,
    상기 복수의 모듈형 로봇들의 나머지 모듈형 로봇들은 커넥터를 통해 상기 제1 모듈형 로봇과 접속되어 상기 공유 통신부를 통해 상기 로봇 제어 시스템과 통신하도록 구성되는, 로봇.
  20. 제18항에 있어서,
    상기 복수의 모듈형 로봇들은,
    상기 로봇의 이동의 기능을 제공하도록 구성되는 모바일 베이스(mobile base) 모듈형 로봇; 및
    상기 서비스의 제공을 위한 기능을 제공하도록 구성되는 서비스 모듈형 로봇
    을 포함하고,
    상기 모바일 베이스 모듈형 로봇과 상기 서비스 모듈형 로봇이 결합되어 상기 로봇이 구성되는, 로봇.
KR1020210057310A 2021-05-03 2021-05-03 다수의 모듈형 로봇들로 구성된 로봇을 제어하는 방법 및 시스템 KR102484686B1 (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020210057310A KR102484686B1 (ko) 2021-05-03 2021-05-03 다수의 모듈형 로봇들로 구성된 로봇을 제어하는 방법 및 시스템
PCT/KR2022/000146 WO2022234924A1 (ko) 2021-05-03 2022-01-05 다수의 모듈형 로봇들로 구성된 로봇을 제어하는 방법 및 시스템과, 로봇이 배치되는 건물
US18/500,888 US20240066683A1 (en) 2021-05-03 2023-11-02 Method and system for controlling robot configured with plurality of modular robots, and building in which robot is disposed

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020210057310A KR102484686B1 (ko) 2021-05-03 2021-05-03 다수의 모듈형 로봇들로 구성된 로봇을 제어하는 방법 및 시스템

Publications (2)

Publication Number Publication Date
KR20220150069A KR20220150069A (ko) 2022-11-10
KR102484686B1 true KR102484686B1 (ko) 2023-01-04

Family

ID=83932220

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210057310A KR102484686B1 (ko) 2021-05-03 2021-05-03 다수의 모듈형 로봇들로 구성된 로봇을 제어하는 방법 및 시스템

Country Status (3)

Country Link
US (1) US20240066683A1 (ko)
KR (1) KR102484686B1 (ko)
WO (1) WO2022234924A1 (ko)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019010701A (ja) * 2017-06-30 2019-01-24 株式会社日立製作所 複数動作ユニット統合装置、およびその制御方法、並びに自律学習型ロボット装置

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007130722A (ja) * 2005-11-10 2007-05-31 Yaskawa Electric Corp ロボットコントローラ
DE102015202017A1 (de) * 2015-02-05 2016-08-11 Kuka Roboter Gmbh Manipulatorsystem zur koordinierten Steuerung von zumindest zwei Manipulatoren
KR20180132186A (ko) * 2017-06-01 2018-12-12 전자부품연구원 로봇의 통합 제어 방법, 이를 위한 통합 제어 장치, 서브 제어 장치 및 통합 제어 시스템
KR102175168B1 (ko) * 2018-07-30 2020-11-05 신재광 모듈형 인공지능 이동 로봇 제어 시스템 및 그 제어 방법

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019010701A (ja) * 2017-06-30 2019-01-24 株式会社日立製作所 複数動作ユニット統合装置、およびその制御方法、並びに自律学習型ロボット装置

Also Published As

Publication number Publication date
WO2022234924A1 (ko) 2022-11-10
US20240066683A1 (en) 2024-02-29
KR20220150069A (ko) 2022-11-10

Similar Documents

Publication Publication Date Title
EP3352952B1 (en) Networked robotic manipulators
AU2018311700A1 (en) Systems and methods for determining path confidence for unmanned vehicles
Wood et al. Cyber physical macro material as a UAV [re] configurable architectural system
US11256270B2 (en) Communication systems for self-driving vehicles, and methods of providing thereof
WO2021044720A1 (ja) 制御プラットフォーム、制御システム、サービス提供システム、サービス提供方法及び制御方法
Ten Hompel et al. Technical Report: LoadRunner®, a new platform approach on collaborative logistics services
Speck et al. Shakey 2016—How much does it take to redo shakey the robot?
KR102484686B1 (ko) 다수의 모듈형 로봇들로 구성된 로봇을 제어하는 방법 및 시스템
Arumugam et al. Wireless robotics: Opportunities and challenges
Sankaranarayanan et al. Paced-5g: Predictive autonomous control using edge for drones over 5g
Xu et al. Brownian cargo capture in mazes via intelligent colloidal microrobot swarms
KR20230135548A (ko) 통신 기반 로봇 제어 방법 및 시스템
KR102545241B1 (ko) 서비스 어플리케이션과 연계하여 서비스를 제공하는 로봇을 제어하는 방법 및 클라우드 서버
Youssef et al. Brief Survey on Industry 4.0 Warehouse Management Systems
JP2024519495A (ja) 複数のモジュール型ロボットにより構成されたロボットを制御する方法およびシステム、並びにロボットが配置される建物
US11829127B2 (en) Opportunistic information and inventory exchange via serendipitous encounters of autonomous mobile robots
US20210343091A1 (en) Deported compute for teleoperation and autonomous systems
Ozkil et al. Design of a robotic automation system for transportation of goods in hospitals
Pikner et al. Multi-layer cyber-physical low-level control solution for mobile robots
Martin et al. A fault-tolerant approach to robot teams
Velhal et al. A dynamic heterogeneous team-based non-iterative approach for online pick-up and just-in-time delivery problems
KR102387778B1 (ko) 매장 픽업 서비스를 제공하기 위한 로봇 시스템 및 그 방법
Mohammad El-Basioni et al. Mission-based PTR triangle for multi-UAV systems flight planning
US20240111585A1 (en) Shared resource management system and method
Taranta et al. An autonomous mobile robot navigation architecture for dynamic intralogistics

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right