KR20230109333A - 복수 로봇 스케줄링 방법 및 시스템 - Google Patents

복수 로봇 스케줄링 방법 및 시스템 Download PDF

Info

Publication number
KR20230109333A
KR20230109333A KR1020220005187A KR20220005187A KR20230109333A KR 20230109333 A KR20230109333 A KR 20230109333A KR 1020220005187 A KR1020220005187 A KR 1020220005187A KR 20220005187 A KR20220005187 A KR 20220005187A KR 20230109333 A KR20230109333 A KR 20230109333A
Authority
KR
South Korea
Prior art keywords
robot
schedule
robots
command
server
Prior art date
Application number
KR1020220005187A
Other languages
English (en)
Inventor
이성원
Original Assignee
엘지전자 주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 엘지전자 주식회사 filed Critical 엘지전자 주식회사
Priority to KR1020220005187A priority Critical patent/KR20230109333A/ko
Publication of KR20230109333A publication Critical patent/KR20230109333A/ko

Links

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1674Programme controls characterised by safety, monitoring, diagnostic
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J19/00Accessories fitted to manipulators, e.g. for monitoring, for viewing; Safety devices combined with or specially adapted for use in connection with manipulators
    • B25J19/0066Means or methods for maintaining or repairing manipulators
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Robotics (AREA)
  • Mechanical Engineering (AREA)
  • Manipulator (AREA)

Abstract

본 발명의 일 실시예에 의한 스케줄 로봇 스케줄링 방법은 명령을 수신하는 단계, 복수의 로봇 상태 정보를 수신하는 단계, 수신한 상태 정보에 기초하여 스케줄 명령 수행 가능 여부를 판단하는 단계, 상기 스케줄 명령 수행 가능 여부에 기초하여 복수 로봇의 스케줄을 생성하는 단계 및 생성한 스케줄에 기초하여 상기 로봇에게 명령을 전송하는 단계를 포함한다.

Description

복수 로봇 스케줄링 방법 및 시스템{METHOD AND SYSTEM FOR MULTIPLE ROBOT SCHEDULING}
본 발명은 복수 로봇 스케줄링 방법 및 시스템에 관한 것이다.
로봇은 산업용으로 개발되어 공장 자동화의 일부분을 담당하여 왔다. 최근에는 로봇을 응용한 분야가 더욱 확대되어, 의료용 로봇, 우주 항공 로봇 등이 개발되고, 일반 가정에서 사용할 수 있는 가정용 로봇도 만들어지고 있다. 이러한 로봇 중에서 자력으로 주행이 가능한 것도 있다.
로봇의 대표적인 예는 청소 로봇(서비스 로봇)으로, 청소 로봇은 일정 영역을 스스로 주행하면서, 주변의 먼지 또는 이물질을 흡입함으로써, 해당 영역을 청소하는 기기이다.
넓은 공간의 청소 및 관리에는 복수의 청소 로봇이 배치되어 운용될 필요가 있다. 이 경우에, 복수의 청소 로봇은 할당된 청소 구역에 대해 청소 작업을 수행한다. 복수의 청소 로봇을 운용할 때, 청소 효율성을 향상하기 위하여 효과적으로 복수의 청소 로봇을 제어할 수 있는 방안이 요구된다.
이와 같은 종래기술의 로봇 관제 시스템의 경우, 다수의 로봇에 대한 정보를 받거나 관제할 수밖에 없고 다수의 로봇의 동시 관제는 불가한 문제점이 있다. 관제뿐만 아니라 동일한 컨텐츠에 대해서 다수의 이기종 로봇들에 송출하는 경우, 각 기종별 로봇에 적합한 컨텐츠로 입력해야 하는 문제점이 있다.
또한, 로봇 관제 시스템에서 로봇으로 자동으로 명령을 내리거나 할당하지 못하고, 직접 로봇에 명령을 내려야 하기 때문에 로봇을 효율적으로 제어하기 어려운 문제점이 있다.
본 발명은 상기와 같은 문제점들을 해결하는 것으로서, 복수의 로봇의 모든 스케줄은 서버에서 관리하고 각 로봇은 서버로부터 수신 한 명령만 수행하는 복수 로봇 스케줄링 방법 및 시스템을 제공하는 것을 목적으로 한다.
상기 목적을 달성하기 위해 본 발명의 로봇 스케줄링 방법은 스케줄 명령을 수신하는 단계, 복수의 로봇 상태 정보를 수신하는 단계, 수신한 상태 정보에 기초하여 스케줄 명령 수행 가능 여부를 판단하는 단계; 상기 스케줄 명령 수행 가능 여부에 기초하여 복수 로봇의 스케줄을 생성하는 단계 및 생성한 스케줄에 기초하여 상기 로봇에게 명령을 전송하는 단계를 포함한다.
본 발명의 일 실시예에 따라, 상기 복수의 로봇 상태 정보를 수신하는 단계는 상기 복수의 로봇으로부터 운영 이력, 배터리 정보, 위치를 수신하는 단계를 포함한다.
본 발명의 일 실시예에 따라, 상기 복수의 로봇의 스케줄을 설정하는 단계는 상기 명령에 기초하여 상기 복수의 로봇의 운영, 충전, 대기 중 적어도 하나를 스케줄로 설정하는 단계를 포함한다.
본 발명의 일 실시예에 따라, 상기 복수의 로봇의 스케줄을 설정하는 단계는 상기 운영 이력이 기초하여 스케줄을 생성하는 경우, 운영 이력이 적은 순서에 기초하여 상기 복수의 로봇의 운영, 충전, 대기 중 적어도 하나를 설정하는 단계를 포함한다.
본 발명의 일 실시예에 따라, 상기 복수의 로봇의 스케줄을 설정하는 단계는 상기 배터리 정보에 기초하여 스케줄을 생성하는 경우, 배터리 용량이 많은 순서에 기초하여 상기 복수의 로봇의 운영, 충전, 대기 중 적어도 하나를 설정하는 단계를 포함한다.
본 발명의 일 실시예에 따라, 상기 복수의 로봇의 스케줄을 설정하는 단계는 상기 로봇의 위치에 기초하여 스케줄을 생성하는 경우, 운영 위치에 가까운 순서에 기초하여 상기 복수의 로봇의 운영, 충전, 대기 중 적어도 하나를 설정하는 단계를 포함한다.
본 발명의 일 실시예에 따라, 상기 복수의 로봇 상태 정보에 기초하여 수신한 스케줄 명령을 수행하지 못한다고 판단하는 경우, 상기 로봇의 운영시간, 충전시간, 대기시간에 기초하여 예외 스케줄을 생성하는 단계를 더 포함한다.
본 발명의 일 실시예에 따라, 상기 로봇에게 명령을 전송하는 단계는 상기 생성된 스케줄에 기초하여 복수의 로봇 각각의 명령을 생성하는 단계; 및 상기 생성된 명령을 해당 로봇에게 생성된 스케줄에 해당하는 시점에 전송하는 단계를 포함한다.
상기 목적을 달성하기 위해 본 발명의 로봇 스케줄링 시스템은 복수의 로봇, 상기 복수의 로봇의 스케줄을 관리하는 서버를 포함하고 상기 서버는 스케줄 명령을 수신하고, 복수의 로봇 상태 정보를 수신하고, 수신한 상태 정보에 기초하여 스케줄 명령 수행 가능 여부를 판단하고, 상기 스케줄 명령 수행 가능 여부에 기초하여 복수 로봇의 스케줄을 생성하고, 생성한 스케줄에 기초하여 상기 로봇에게 명령을 전송한다.
본 발명에 따른 복수 로봇 스케줄링 방법 및 시스템의 효과에 대해 설명하면 다음과 같다.
본 발명의 실시 예들 중 적어도 하나에 의하면, 서버에서 복수의 로봇의 스케줄을통합 관리하여 모든 로봇들의 상태까지 함께 파악 후 명령을 내려 효율성이 증가하는 장점이 있다.
또한, 기존 각 로봇 별로 탑재하고 있던 스케줄 관리 부분을 서버의 하나의 모듈에서 관리하기에 유지 및 보수가 용이해지는 장점이 있다.
도 1은 본 발명의 일 실시예에 따른 로봇 스케줄링 시스템을 도시한 도면이다.
도 2는 본 발명의 일 실시예에 의한 로봇을 구성하는 구성요소를 보여주는 블록도이다.
도 3은 본 발명의 일 실시예에 의한 서버를 구성하는 구성요소를 보여주는 블록도이다.
도 4는 본 발명의 일 실시예에 의한 로봇 스케줄링 방법을 도시하는 플로우 차트이다.
이하, 첨부된 도면을 참조하여 본 명세서에 개시된 실시예를 상세히 설명하되, 도면 부호에 관계없이 동일하거나 유사한 구성요소는 동일한 참조 번호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다. 이하의 설명에서 사용되는 구성요소에 대한 접미사 "모듈" 및 "부"는 명세서 작성의 용이함만이 고려되어 부여되거나 혼용되는 것으로서, 그 자체로 서로 구별되는 의미 또는 역할을 갖는 것은 아니다. 또한, 본 명세서에 개시된 실시예를 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 본 명세서에 개시된 실시예의 요지를 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다. 또한, 첨부된 도면은 본 명세서에 개시된 실시예를 쉽게 이해할 수 있도록 하기 위한 것일 뿐, 첨부된 도면에 의해 본 명세서에 개시된 기술적 사상이 제한되지 않으며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.
본 발명의 하기의 실시예들은 본 발명을 구체화하기 위한 것일 뿐 본 발명의 권리 범위를 제한하거나 한정하는 것이 아님은 물론이다. 본 발명의 상세한 설명 및 실시예들로부터 본 발명이 속하는 기술 분야의 전문가가 용이하게 유추할 수 있는 것은 본 발명의 권리 범위에 속하는 것으로 해석된다.
상기의 상세한 설명은 모든 면에서 제한적으로 해석되어서는 안되며, 예시적인 것으로 고려되어야 한다. 본 발명의 범위는 첨부된 청구항의 합리적 해석에 의해 결정되어야 하고, 본 발명의 등가적 범위 내에서의 모든 변경은 본 발명의 범위에 포함된다.
도 1은 본 발명의 일 실시예에 따른 로봇 스케줄링 시스템을 도시한 도면이다.
본 발명의 일 실시예에 따른 로봇 스케줄링 시스템은, 복수의 로봇(1000a, 1000b, 1000c, 1000d 이하 1000), 및, 복수의 로봇(1000a, 1000b, 1000c, 1000d)을 관리하고 제어할 수 있는 서버(2000)를 포함할 수 있다.
서버(2000)는 원격에서 복수의 로봇(1000a, 1000b, 1000c, 1000d)의 제어 및 모니터링 할 수 있고, 복수의 로봇(1000a, 1000b, 1000c, 1000d)을 이용하여 서비스 제공할 수 있다. 서비스는 소정 장소, 물품, 서비스에 대해서 안내할 수 있는 안내 서비스, 가정 등에서 사용자와 인터랙션(interaction)하며, 전자 기기와 통신하는 홈 서비스, 소정 물품을 운반할 수 있는 배송 서비스, 청소 작업을 수행할 수 있는 청소 서비스 등을 포함할 수 있다.
복수의 로봇(1000a, 1000b, 1000c, 1000d) 및 서버(2000)는 하나 이상의 통신 규격을 지원하는 통신수단을 구비하여, 상호 통신할 수 있다. 또한, 복수의 로봇(1000a, 1000b, 1000c, 1000d) 및 서버(2000)는 PC, 이동 단말기, 외부의 다른 서버와 통신할 수 있다.
서버(2000)는, 웹 브라우저, 웹 애플리케이션 등을 통하여 통신하며 로봇(100)을 관리하고 제어하는 관제서버일 수 있다. 서버(2000)는 클라우드 서버로 구현되어, 사용자는 PC, 이동 단말기 등 다양한 기기로 통신 연결되어 서비스를 제공할 수 있다.
서버(2000)는 로봇 스케줄링 시스템 내의 로봇들(1000a, 1000b, 1000c, 1000d)의 상태, 위치를 모니터링하고, 콘텐츠 및 작업 스케줄을 관리할 수 있다.
다양한 실시예에 따르면, 이러한 스케줄의 위한 로봇의 상태 정보는 특정 포즈 위치에 근접한 다른 로봇의 수, 특정 포즈 위치에 근접한 작업하는 사람의 수, 특정 포즈 위치에 근접한 로봇 및 작업하는 사람의 조합된 수, 특정 포즈 위치에 근접한 수동으로 비활성화된 로봇의 수, 특정 포즈 위치에 근접한 비로봇, 비인적 객체, 차량, 또는 다른 장애물의 수 및 유형, 특정 포즈 위치에 근접한 내비게이션 공간의 치수, 또는 이들의 조합 중 하나 이상을 포함할 수 있다.
상기 서버(2000)는 로봇들(1000a, 1000b, 1000c, 1000d)을 관리하고 제어하는 관제 서버일 수 있다.
서버(2000)는 로봇 관리, 제어, 무선 펌웨어 업그레이드, 위치 조회 등을 수행할 수 있다.
서버(2000)는 로봇들의 상태를 확인할 수 있는 상태 모니터링 서비스, 로봇들의 상태를 진단할 수 있는 진단 서비스, 로봇들을 원격으로 제어할 수 있는 원격 제어 서비스, 로봇들의 위치를 추적할 수 있는 로봇 위치 추적 서비스, 로봇들의 업무를 할당, 확인, 수정할 수 있다.
상기 서버(2000)는 로봇들(1000a, 1000b, 1000c, 1000d)을 일괄적으로 동일하게 제어하거나, 개별 로봇별로 제어할 수 있다. 또한, 서버(2000)는 로봇들(1000a, 1000b, 1000c, 1000d) 중 적어도 일부 로봇에 대해서 그룹으로 설정한 후에 그룹별로 제어할 수 있다.
서버(2000)는 복수의 로봇(1000a, 1000b, 1000c, 1000d)의 제어하기 위한 스케줄을 관리할 수 있다.
서버(2000)는 로봇 스케줄링 시스템의 미션을 수신하여 로봇 스케줄링 시스템 내의 로봇 상태에 기초하여 세부적인 스케줄을 생성할 수 있다. 서버(20)가 생성하는 스케줄은 로봇별 스케줄, 로봇 스케줄링 시스템 전체의 스케줄 등을 포함할 수 있다.
서버(2000)는 생성된 스케줄에 기초하여 복수의 로봇(1000a, 1000b, 1000c, 1000d)이 수행할 명령을 생성할 수 있다.
서버(2000)는 생성된 스케줄에 해당하는 시점에 해당하는 로봇에 명령을 전송하여, 명령을 수신한 로봇이 생성된 스케줄에 기초하여 동작하도록 제어할 수 있다. 따라서, 서버(2000)는 로봇 스케줄링 시스템 내의 모든 스케줄을 관리함으로써 복수의 로봇(1000a, 1000b, 1000c, 1000d)은 수신한 명령만 수행할 수 있다.
예를 들어, 서버(2000)는 로봇 스케줄링 시스템 내의 복수의 로봇(1000a, 1000b, 1000c, 1000d) 중 적어도 하나의 스케줄이 2~4시까지 운영, 4~5시까지 충전인 경우, 스케줄에 해당하는 각 로봇에게 2시에 운영 명령을 전송하고, 4시에 충전 명령을 전송할 수 있다.
이를 통해, 복수의 로봇(1000a, 1000b, 1000c, 1000d) 각각은 이동을 위한 하드웨어와 통신기능만으로 동작할 수 있게 되어, 로봇 내의 디바이스가 가벼워지는 장점을 가질 수 있다.
서버(2000)는 로봇 스케줄링 시스템 내의 복수의 로봇(1000a, 1000b, 1000c, 1000d)(1000a, 1000b, 1000c, 1000d) 을 모니터링, 제어하고 다양한 솔루션과 콘텐츠를 원격으로 제공할 수 있다.
서버(2000)는 복수의 로봇(1000a, 1000b, 1000c, 1000d)이 제공하는 콘텐츠의 리소스를 관리할 수 있다.
서버(2000)는 명령에 따라 제공해야할 모든 콘텐츠의 리소스(이미지/텍스트/음성파일)등을 관리함으로써 복수의 로봇(1000a, 1000b, 1000c, 1000d)은 수신한 명령만 수행할 수 있다.
이를 통해, 복수의 로봇(1000a, 1000b, 1000c, 1000d)은 웹 브라우저(web browser)를 통해 클라우드 내의 웹 어플리케이션에 접속하여 서버(2000)로부터 수신한 콘텐츠를 제공할 수 있다.
서버(2000)는 복수의 로봇(1000a, 1000b, 1000c, 1000d)에서 사용되는 디바이스 애플케이션을 관리할 수 있다. 서버(2000)는 디바이스 애플리케이션들의 수정 및 업데이트가 필요한 경우, 클라우드 내의 소스만 수정할 수 있다. 따라서, 서버(2000)는 디바이스 애플케이션의 유지/보수가 용이해 지는 장점이 있다.
도 2는 본 발명의 일 실시예에 의한 로봇을 구성하는 구성요소를 보여주는 블록도이다.
로봇(1000)은 외부에 배치되는 이동 객체 혹은 고정 객체를 센싱하는 센싱모듈(100), 다양한 종류의 맵을 저장하는 맵 저장부(200), 로봇의 이동을 제어하는 이동부(300), 로봇의 소정의 기능을 수행하는 기능부(400), 다른 로봇 또는 서버와 맵 또는 이동 객체, 고정 객체, 혹은 외부의 변동되는 상황에 관한 정보를 송수신하는 통신부(500), 그리고 이들 각각의 구성요소들을 제어하는 제어부(900)를 할 수 있다.
도 2에서는 로봇의 구성을 계층적으로 구성하고 있으나, 이는 로봇의 구성요소들을 논리적으로 나타낸 것이다. 물리적 구성인 경우에는 이와 다를 수 있다. 즉, 하나의 물리적 구성요소에 다수의 논리적 구성요소가 포함되거나, 다수의 물리적 구성요소가 하나의 논리적 구성요소를 구현할 수 있다.
센싱모듈(100)는 장애물과 같은 외부의 객체들을 센싱하여 센싱한 정보를 제어부(900)에게 제공한다. 일 실시예로 센싱모듈(100)는 로봇의 현재 위치에서 벽, 유리, 금속성 문 등 외부 객체들의 재질과 거리를 신호의 강도(intensity)와 반사된 시간(속도)로 산출하는 라이다(Lidar) 센싱부(110)를 포함할 수 있다.
또한, 센싱모듈(100)는 로봇(1000)으로부터 일정 거리 내에 배치된 객체들의 온도 정보를 산출하는 온도 센싱부(120)를 포함할 수 있다. 온도 센싱부(120)의 일 실시예는 로봇(1000)으로부터 일정 거리 내에 배치된 사물의 온도, 특히 사람들의 체온을 감지하는 적외선 센서를 포함한다. 적외선 어레이 센서(Infrared Array sensor)로 온도 센싱부(120)를 구성할 경우 접촉 없이도 객체의 온도를 센싱할 수 있다. 적외선 센서 혹은 적외선 어레이 센서가 온도 센싱부(120)를 구성할 경우, 이동 객체가 사람인지 여부를 확인하는 주요한 정보를 제공할 수 있다.
또한, 센싱모듈(100)은 전술한 센싱부들 외에 로봇과 외부 객체와의 뎁스 정보를 산출하는 뎁스 센싱부(130) 및 비전 센싱부(140)를 더 포함할 수 있다.
뎁스 센싱부(130)는 뎁스 카메라를 포함할 수 있다. 뎁스 센싱부(130)는 로봇과 외부 객체 사이의 거리를 판단할 수 있도록 하는데, 특히 라이다 센싱부(110)와 결합하여 외부 객체와 로봇 사이의 거리의 센싱 정확도를 높일 수 있다.
비전 센싱부(140)는 카메라를 포함할 수 있다. 비전 센싱부(140)는 로봇의 주변의 객체들의 이미지를 촬영할 수 있다. 특히, 로봇은 고정 객체와 같이 변화가 많지 않은 이미지와 이동 객체가 배치된 이미지를 구분하여 외부의 객체가 이동 객체인지를 식별할 수 있다.
그 외에도 열감지 센싱부, 초음파 센싱부 등을 일 실시예로 하는 보조 센싱부(145)가 다수 배치될 수 있다. 이들 보조 센싱부들은 맵을 생성하거나 외부 객체를 센싱하는데 필요한 보조적인 센싱 정보를 제공한다. 또한, 이들 보조 센싱부들 역시 로봇이 주행함에 있어 외부에 배치되는 객체를 센싱하여 정보를 제공한다.
센싱 데이터 분석부(150)는 다수의 센싱부들이 센싱한 정보들을 분석하여 이를 제어부(900)에게 전달한다. 예를 들어 다수의 센싱부들에 의해 외부에 배치된 객체가 감지될 경우, 해당 객체의 특성과 거리에 대한 정보를 각각의 센싱부가 제공할 수 있다. 센싱 데이터 분석부(150)는 이들의 값을 조합하여 산출하고 이를 제어부(900)에게 전달할 수 있다.
맵 저장부(200)는 로봇이 이동하는 공간에 배치되는 객체들의 정보를 저장한다. 맵 저장부(200)는 로봇이 이동하는 전체 공간에 배치되는 객체들 중에서 변동이 없거나 혹은 고정되어 배치되는 고정 객체들에 대한 정보를 저장하는 고정맵(210)을 포함할 수 있다. 고정맵(210)은 공간에 따라 필수적으로 하나가 포함될 수 있다. 고정맵(210)은 해당 공간에서 가장 변동이 낮은 객체들만 배치된 것이므로, 로봇이 해당 공간을 이동할 경우 맵(210)에서 지시하는 객체들보다는 더 많은 객체를 센싱할 수 있다.
고정맵(210)은 고정 객체들의 위치 정보를 필수적으로 저장하며, 추가적으로 고정 객체들의 특성, 예를 들어 재질 정보, 색상 정보, 혹은 기타 높이 정보 등을 포함할 수 있다. 이러한 추가적인 정보들은 고정 객체들에 변동 사항이 발생한 경우 로봇이 보다 쉽게 확인할 수 있도록 한다.
또한 로봇은 이동하는 과정에서 주변을 센싱하여 임시맵(220)을 생성하여 이를 과거 저장했던 전체 공간에 대한 고정맵(210)과 비교할 수 있다.
이동부(300)는 바퀴와 같이 로봇(1000)을 이동시키는 수단으로, 제어부(900)의 제어에 따라 로봇(1000)을 이동시킨다. 이때, 제어부(900)는 서버(2000)로부터 수시한 스케줄 및 명령에 기초하여 이동 신호를 제공할 수 있다.
이동부(300)는 주행거리 산출부(310)와 주행거리 보정부(320)를 포함할 수 있다. 주행거리 산출부(310)는 이동부(300)가 이동한 거리에 대한 정보를 제공할 수 있다. 일 실시예로 특정 지점에서 출발한 로봇(1000)이 이동한 누적 거리를 제공할 수 있다. 또는 로봇(1000)이 특정한 지점에서 회전한 후 직선으로 이동한 누적 거리를 제공할 수 있다. 또는 로봇(1000)이 특정한 시간부터 이동한 누적 거리를 제공할 수 있다.
또한, 본 발명의 일 실시예에 의하면 누적 거리뿐만 아니라 일정한 단위 내에 이동 거리에 대한 정보를 주행거리 산출부(310)가 제공할 수 있다. 주행거리 산출부(310)는 이동부(300)의 특성에 따라 다양하게 거리를 산출할 수 있는데, 이동부(300)가 바퀴인 경우 바퀴의 회전 횟수를 카운팅하여 주행 거리를 산출할 수 있다.
주행거리 보정부(320)는 주행거리 산출부(310)가 산출한 거리가 실제 로봇(1000)의 센싱 모듈(100)이 산출한 거리 정보와 상이한 경우 주행 거리 산출부(310)가 산출한 거리 정보를 보정한다. 또한, 주행 거리 산출부(310)에서 오차가 누적하여 발생할 경우 주행거리 산출부(310)의 주행거리 산출 로직을 변경하도록 제어부(900) 또는 이동부(300)에게 통지할 수 있다.
기능부(400)는 로봇의 특화된 기능을 제공하는 것을 의미한다. 예를 들어, 청소 로봇인 경우 기능부(400)는 청소에 필요한 구성요소를 포함한다. 안내 로봇인 경우, 기능부(400)는 안내에 필요한 구성요소를 포함한다. 보안로봇인 경우 기능부(400)는 보안에 필요한 구성요소를 포함한다. 기능부(400)는 로봇이 제공하는 기능에 따라 다양한 구성요소를 포함할 수 있으며, 본 발명이 이에 한정되는 것은 아니다.
제어부(900)는 통신부(500)를 통해 서버(2000)로부터 수신한 명령에 의해 로봇의 주행 및 동작을 제어할 수 있다.
예를 들어, 로봇(1000)의 제어부(900)는 주행 과정에서 센싱 모듈(100)이 제공하는 객체의 정보를 식별하여 이동 객체인지 고정 객체인지를 구분하여 로봇(1000)의 주행을 제어할 수 있다.
도 3은 본 발명의 일 실시예에 의한 서버를 구성하는 구성요소를 보여주는 블록도이다.
도 3을 참조하면, 서버(2000)는 통신부(2100), 스케줄 관리부(2200), 리소스 관리부(2300) 및 관제부(2400)를 포함할 수 있다.
통신부(2100)는 로봇 스케줄링 시스템 내에 배치되는 복수의 로봇(1000a, 1000b, 1000c, 1000d)과의 통신을 통해 데이터를 송수신할 수 있다.
통신부(2100)는 웹 애플리케이션을 통해 복수의 로봇(1000a, 1000b, 1000c, 1000d)의 상태 정보, 동작 정보, 동작 중 획득한 데이터 등을 수신할 수 있다.
통신부(2100)는 복수의 로봇(1000a, 1000b, 1000c, 1000d)으로부터 주기적으로 상태 정보를 수신할 수 있다. 예를 들어, 통신부(2100)는 복수의 로봇(1000a, 1000b, 1000c, 1000d)의 상태가 변경되는 경우, 변경되는 상태 정보를 수신할 수 있다.
통신부(2100)는 복수의 로봇(1000a, 1000b, 1000c, 1000d)이 수행한 업무에 대한 데이터를 수신할 수 있다.
통신부(2100)는 복수의 로봇(1000a, 1000b, 1000c, 1000d)이 주행에 따라 획득되는 센싱 데이터, 주행 중 생성한 맵 정보 등 수집 데이터를 수신할 수 있다.
통신부(2100)는 스케줄 관리부(2200)가 생성된 스케줄 데이터를 각 로봇으로 송신할 수 있다.
통신부(2100)는 복수의 로봇(1000a, 1000b, 1000c, 1000d)의 업무 수행과 관련된 각종 데이터를 상기 복수의 로봇(1000a, 1000b, 1000c, 1000d)(100)에 전송할 수 있다.
스케줄 관리부(2200)는 로봇 스케줄링 시스템 내에 배치되는 복수의 로봇(1000a, 1000b, 1000c, 1000d)의 스케줄을 관리할 수 있다.
스케줄 관리부(2200)는 복수의 로봇(1000a, 1000b, 1000c, 1000d)으로부터 수신한 데이터에 기초하여 복수의 로봇(1000a, 1000b, 1000c, 1000d)의 스케줄을 생성할 수 있다.
스케줄 관리부(2200)는 로봇으로 운영 / 충전 / 대기 등의 미션을 수신하는 경우, 스케줄 관리부(2200)는 로봇의 기상 시간, 로봇의 동작 시간, 로봇의 종료시간 등에 기초하여 로봇의 충전 시간을 관리할 수 있다. 이에 따라, 스케줄 관리부(2200)는 로봇의 충전 시간 및 로봇의 대기시간을 설정할 수 있다.
스케줄 관리부(2200)는 스케줄 명령을 수신하여 로봇 스케줄링 시스템 내의 로봇 상태에 기초하여 세부적인 스케줄을 생성할 수 있다.
스케줄 관리부(2200)는 로봇 스케줄링 시스템이 스케줄 명령을 수신하는 경우, 수신한 스케줄 명령을 분석하여 로봇의 수행해야할 미션을 시간 및 목표행동으로 분석 할 수 있다.
스케줄 관리부(2200)는 수신한 스케줄 명령을 로봇 별 운영시간, 충전시간, 대기시간 등으로 분석할 수 있다.
스케줄 관리부(2200)는 로봇의 상태 정보, 분석한 시간 및 목표 행동에 기초하여 복수의 로봇(1000a, 1000b, 1000c, 1000d)의 스케줄을 생성할 수 있다. 로봇의 상태 정보는 로봇의 운영 이력, 로봇의 배터리 정보, 로봇의 위치, 미션 할당량 등을 포함할 수 있다.
예를 들어, 스케줄 관리부(2200)는 로봇의 운영 이력에 기초하여 운영 이력이 적은 순서대로 로봇 스케줄링 시스템 내의 로봇에게 미션을 할당할 수 있다.
예를 들어, 스케줄 관리부(2200)는 로봇의 배터리 정보에 기초하여 배터리가 많은 순서대로 로봇 스케줄링 시스템 내의 로봇에게 미션을 할당할 수 있다.
예를 들어, 스케줄 관리부(2200)는 로봇의 위치 정보를 수신하여 미션을 수행할 위치에서 가까운 순서대로 로봇 스케줄링 시스템 내의 로봇 스케줄링 시스템 내의 로봇에게 미션을 할당할 수 있다.
예를 들어, 스케줄 관리부(2200)는 미션 할당량을 수신하여 할당받은 미션이 적은 순서대로 로봇 스케줄링 시스템 내의 로봇 스케줄링 시스템 내의 로봇에게 미션을 할당할 수 있다.
예를 들어, 스케줄 관리부(2200)는 미션에 따라 오전 9~12시 로봇 3대 운영, 오후 12시~2시 모두 휴식, 오후 2시~6시 5대 운영' 등으로 스케줄을 생성할 수 있다.
스케줄 관리부(2200)는 로봇 상태 정보에 기초하여 수신한 스케줄 명령을 수행하지 못한다고 판단하는 경우, 운영시간/ 충전시간/ 대기시간에 기초하여 예외 스케줄을 생성할 수 있다.
예를 들어, 스케줄 관리부(2200)는 미션이 '오전 9~12시 로봇 3대 운영'인 경우, 로봇 스케줄링 시스템 내의 복수의 로봇(1000a, 1000b, 1000c, 1000d)을 통해 9시부터 12시까지 3시간을 운행해야 하나, 배터리 정보에 따라 3시간 운행 가능한 로봇이 없는 경우, 예외 스케줄을 생성할 수 있다.
이에 따라, 스케줄 관리부(2200)는 배터리 정보에 기초하여 9시부터 11시까지 운행 가능한 로봇에게 미션을 할당하고, 나머지 로봇을 11시까지 충전시키고, 11시에 교대하여 나머지 로봇이 11시부터 12시까지의 미션을 수행하도록 스케줄을 생성할 수 있다.
예를 들어, 스케줄 관리부(2200)는 스케줄 명령에 따른 운영 목적과 로봇의 현재 상태에 따른 주행 노드에 따라 각 로봇의 배터리를 고려하여 예외 스케줄을 생성할 수 있다.
이에 따라, 스케줄 관리부(2200) 운행 가능한 로봇이 주행 노드에 따라 복수의 스케줄이 할당되는 것을 방지하기 위해, 각 로봇의 배터리 상태를 고려하여, 운행 가능한 로봇의 미션을 조정할 수 있다.
스케줄 관리부(2200)는 생성된 스케줄에 기초하여 로봇이 어느 시점에 운영/충전/대기/키오스크 등을 수행해야 하는지 명령을 생성할 수 있다.
리소스 관리부(2300)는 복수의 로봇(1000a, 1000b, 1000c, 1000d)의 디바이스 애플리케이션(device app)에서 사용할 이미지/ 텍스트/ 음악파일 등을 관리할 수 있다.
리소스 관리부(2300)는 로봇 내의 유저 인터페이스 애플리케이션(UI App)에서 사용하는 리소스(이미지/텍스트/음성파일) 를 모두 device app을 통해 관리할 수 있다.
따라서, 디바이스 애플리케이션(Device App)이 서버(2000)에 위치하고, 복수의 로봇(1000a, 1000b, 1000c, 1000d)은 웹브라우저(web browser)를 통해 웹 애플리케이션(webapp)을 실행하게 되어 로봇의 디바이스가 가벼워지는 장점을 가질수 있다.
관제부(2400)는 실제 로봇을 구동시키기 위해 필요한 소프트웨어를 포함할 수 있다.
관제부(2400)는 스케줄 관리부(2200)에 의해 업무 할당이 가능한 로봇들이 설정되면 복수의 로봇(1000a, 1000b, 1000c, 1000d)이 최적의 경로를 이동하도록 제어할 수 있다.
이를 위해, 관제부(2400)는 로봇의 현재 위치, 이동 명령을 수신한 출발 위치, 주변에 로봇이 없는 새로운 위치 중에서 적어도 하나 이상을 계산한다. 이 계산은 임의의 위치에서 로봇의 이동이 요구될 경우를 감안하여 계산될 수 있다. 또한, 로봇의 업무 발생이 증가할 것으로 예상되는 위치를 감안하여 계산될 수 있다.
관제부(2400)는 이동 목적지까지의 각 로봇(110)의 이동 거리를 계산하여 최단 거리의 로봇(110)을 계산할 수 있다.
관제부(2400)는 계산된 복수의 로봇(1000a, 1000b, 1000c, 1000d)의 이동 거리에 기초하여 로봇의 이동을 요청하는 명령을 전송할 수 있다.
도 4은 본 발명의 일 실시예에 의한 로봇 스케줄링 방법을 도시하는 플로우 차트이다.
도 4를 참조하면, 서버(2000)는 관리자로부터 스케줄 명령을 수신할 수 있다(S101).
상기 S101 단계 이후, 상기 서버(2000)는 로봇 스케줄링 시스템에 의해 관제되는 복수의 로봇(1000a, 1000b, 1000c, 1000d)으로부터 상태 정보를 수신할 수 있다(S102).
상기 S102 단계 이후, 서버(2000)는 수신한 로봇 상태 정보에 기초하여 수신한 스케줄 명령이 수행 가능한지 판단할 수 있다(S103).
상기 S103 단계 이후, 수신한 명령이 수행 가능한 경우, 서버(2000)는 로봇 상태 정보에 대응하여 스케줄을 생성할 수 있다(S104).
상기 S103 단계 이후, 수신한 명령이 수행 가능하지 않는 경우, 서버(2000)는 스케줄 명령에 따른 복수 로봇들의 운영시간/ 충전시간/ 대기시간을 고려하여 예외 스케줄을 생성할 수 있다(S105).
상기 S103 또는 상기 S104 단계 이후, 서버(2000)는 생성된 스케줄에 기초하여 해당하는 시점에 해당하는 로봇에게 명령을 전송할 수 있다(S106).
전술한 본 발명은, 프로그램이 기록된 매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 매체는, 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 컴퓨터가 읽을 수 있는 매체의 예로는, HDD(Hard Disk Drive), SSD(Solid State Disk), SDD(Silicon Disk Drive), ROM, RAM, CD-ROM, 자기 테이프, 플로피 디스크, 광 데이터 저장 장치 등이 있으며, 또한 캐리어 웨이브(예를 들어, 인터넷을 통한 전송)의 형태로 구현되는 것도 포함한다. 따라서, 상기의 상세한 설명은 모든 면에서 제한적으로 해석되어서는 아니되고 예시적인 것으로 고려되어야 한다. 본 발명의 범위는 첨부된 청구항의 합리적 해석에 의해 결정되어야 하고, 본 발명의 등가적 범위 내에서의 모든 변경은 본 발명의 범위에 포함된다.
1000: 로봇
2000: 서버
2100: 통신부
2200: 스케줄 관리부
2300: 리소스 관리부
2400: 관제부

Claims (16)

  1. 스케줄 명령을 수신하는 단계;
    복수의 로봇 상태 정보를 수신하는 단계;
    수신한 상태 정보에 기초하여 스케줄 명령 수행 가능 여부를 판단하는 단계;
    상기 스케줄 명령 수행 가능 여부에 기초하여 복수 로봇의 스케줄을 생성하는 단계; 및
    생성한 스케줄에 기초하여 상기 로봇에게 명령을 전송하는 단계를 포함하는
    로봇 스케줄링 방법.
  2. 제1항에 있어서,
    상기 복수의 로봇 상태 정보를 수신하는 단계는
    상기 복수의 로봇으로부터 운영 이력, 배터리 정보, 위치를 수신하는 단계를 포함하는
    로봇 스케줄링 방법.
  3. 제2항에 있어서,
    상기 복수의 로봇의 스케줄을 설정하는 단계는
    상기 명령에 기초하여 상기 복수의 로봇의 운영, 충전, 대기 중 적어도 하나를 스케줄로 설정하는 단계를 포함하는
    로봇 스케줄링 방법.
  4. 제3항에 있어서,
    상기 복수의 로봇의 스케줄을 설정하는 단계는
    상기 운영 이력이 기초하여 스케줄을 생성하는 경우, 운영 이력이 적은 순서에 기초하여 상기 복수의 로봇의 운영, 충전, 대기 중 적어도 하나를 설정하는 단계를 포함하는
    로봇 스케줄링 방법.
  5. 제3항에 있어서,
    상기 복수의 로봇의 스케줄을 설정하는 단계는
    상기 배터리 정보에 기초하여 스케줄을 생성하는 경우, 배터리 용량이 많은 순서에 기초하여 상기 복수의 로봇의 운영, 충전, 대기 중 적어도 하나를 설정하는 단계를 포함하는
    로봇 스케줄링 방법.
  6. 제3항에 있어서,
    상기 복수의 로봇의 스케줄을 설정하는 단계는
    상기 로봇의 위치에 기초하여 스케줄을 생성하는 경우, 운영 위치에 가까운 순서에 기초하여 상기 복수의 로봇의 운영, 충전, 대기 중 적어도 하나를 설정하는 단계를 포함하는
    로봇 스케줄링 방법.
  7. 제2항에 있어서,
    상기 복수의 로봇 상태 정보에 기초하여 수신한 스케줄 명령을 수행하지 못한다고 판단하는 경우, 상기 로봇의 운영시간, 충전시간, 대기시간에 기초하여 예외 스케줄을 생성하는 단계를 더 포함하는
    로봇 스케줄링 방법.
  8. 제1항에 있어서,
    상기 로봇에게 명령을 전송하는 단계는
    상기 생성된 스케줄에 기초하여 복수의 로봇 각각의 명령을 생성하는 단계; 및
    상기 생성된 명령을 해당 로봇에게 생성된 스케줄에 해당하는 시점에 전송하는 단계를 포함하는
    로봇 스케줄링 방법.
  9. 복수의 로봇;
    상기 복수의 로봇의 스케줄을 관리하는 서버를 포함하고
    상기 서버는
    스케줄 명령을 수신하고,
    복수의 로봇 상태 정보를 수신하고,
    수신한 상태 정보에 기초하여 스케줄 명령 수행 가능 여부를 판단하고,
    상기 스케줄 명령 수행 가능 여부에 기초하여 복수 로봇의 스케줄을 생성하고,
    생성한 스케줄에 기초하여 상기 로봇에게 명령을 전송하는
    로봇 스케줄링 시스템.
  10. 제9항에 있어서,
    상기 서버는
    상기 복수의 로봇으로부터 운영 이력, 배터리 정보, 위치를 수신하는
    로봇 스케줄링 시스템.
  11. 제10항에 있어서,
    상기 서버는
    상기 스케줄 명령에 기초하여 상기 복수의 로봇의 운영, 충전, 대기 중 적어도 하나를 스케줄로 설정하는
    로봇 스케줄링 시스템.
  12. 제11항에 있어서,
    상기 서버는
    상기 운영 이력이 기초하여 스케줄을 생성하는 경우, 운영 이력이 적은 순서에 기초하여 상기 복수의 로봇의 운영, 충전, 대기를 설정하는
    로봇 스케줄링 시스템.
  13. 제11항에 있어서,
    상기 서버는
    상기 배터리 정보에 기초하여 스케줄을 생성하는 경우, 배터리 용량이 많은 순서에 기초하여 상기 복수의 로봇의 운영, 충전, 대기를 설정하는
    로봇 스케줄링 시스템.
  14. 제11항에 있어서,
    상기 서버는
    상기 로봇의 위치에 기초하여 스케줄을 생성하는 경우, 운영 위치에 가까운 순서에 기초하여 상기 복수의 로봇의 운영, 충전, 대기를 설정하는
    로봇 스케줄링 시스템.
  15. 제10항에 있어서,
    상기 서버는
    상기 복수의 로봇 상태 정보에 기초하여 수신한 스케줄 명령을 수행하지 못한다고 판단하는 경우, 상기 로봇의 운영시간, 충전시간, 대기시간에 기초하여 예외 스케줄을 생성하는
    로봇 스케줄링 시스템.
  16. 제9항에 있어서,
    상기 서버는
    상기 생성된 스케줄에 기초하여 복수의 로봇 각각의 명령을 생성하고,
    상기 생성된 명령을 해당 로봇에게 생성된 스케줄에 해당하는 시점에 전송하는
    로봇 스케줄링 시스템.








KR1020220005187A 2022-01-13 2022-01-13 복수 로봇 스케줄링 방법 및 시스템 KR20230109333A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020220005187A KR20230109333A (ko) 2022-01-13 2022-01-13 복수 로봇 스케줄링 방법 및 시스템

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020220005187A KR20230109333A (ko) 2022-01-13 2022-01-13 복수 로봇 스케줄링 방법 및 시스템

Publications (1)

Publication Number Publication Date
KR20230109333A true KR20230109333A (ko) 2023-07-20

Family

ID=87426313

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020220005187A KR20230109333A (ko) 2022-01-13 2022-01-13 복수 로봇 스케줄링 방법 및 시스템

Country Status (1)

Country Link
KR (1) KR20230109333A (ko)

Similar Documents

Publication Publication Date Title
JP7024167B2 (ja) ナビゲーション制御方法、スマート倉庫システム及び無人搬送車
US10423934B1 (en) Automated vehicle diagnostics and maintenance
US11287832B2 (en) Polymorphic path planning for robotic devices
US12084069B2 (en) Systems and methods for maintaining vehicle state information
US20200319640A1 (en) Method for navigation of a robot
EP2438492B1 (en) Supervision and control of heterogeneous autonomous operations
CN103875000B (zh) 用于自主移动机器人的监测、诊断和跟踪工具
CN109124488B (zh) 具有至少两个地面处理装置的系统和运行该系统的方法
JP5135550B2 (ja) 搬送システム制御装置、搬送システムの制御方法およびプログラム
US11200760B2 (en) Systems and methods for measuring fleets of self-driving industrial vehicles
EP2315165A1 (en) Hierarchical mission management
US20220269284A1 (en) Systems and methods for management of a robot fleet
US20220287531A1 (en) System and apparatus for cooperative cleaning
US20220100571A1 (en) Scheduling system, scheduling method, and non-transitory recording medium
CN113934205A (zh) 用于控制引导机器人的方法、装置、设备以及存储介质
EP4191361A1 (en) Multi-robot control system and method
US20220289537A1 (en) Continual proactive learning for autonomous robot agents
JP2024509387A (ja) ロボット群の管理ためのシステム及び方法
KR20220075123A (ko) 전기 버스의 배터리 상태 분석 서비스 시스템
CN117500642A (zh) 用于开发机器人自主性的系统、设备和方法
KR20230109333A (ko) 복수 로봇 스케줄링 방법 및 시스템
WO2023159737A1 (en) Systems and methods for managing robots
CN113858167B (zh) 自动更换上装模块的控制方法及相关装置
KR20230039415A (ko) 로봇 원격 제어 시스템 및 이를 위한 제어 방법
US20240094712A1 (en) Robot staging area management