KR102212352B1 - 로봇 제어 방법 및 장치 - Google Patents

로봇 제어 방법 및 장치 Download PDF

Info

Publication number
KR102212352B1
KR102212352B1 KR1020180119923A KR20180119923A KR102212352B1 KR 102212352 B1 KR102212352 B1 KR 102212352B1 KR 1020180119923 A KR1020180119923 A KR 1020180119923A KR 20180119923 A KR20180119923 A KR 20180119923A KR 102212352 B1 KR102212352 B1 KR 102212352B1
Authority
KR
South Korea
Prior art keywords
service
robot
task
robots
team
Prior art date
Application number
KR1020180119923A
Other languages
English (en)
Other versions
KR20200040088A (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 KR1020180119923A priority Critical patent/KR102212352B1/ko
Publication of KR20200040088A publication Critical patent/KR20200040088A/ko
Application granted granted Critical
Publication of KR102212352B1 publication Critical patent/KR102212352B1/ko

Links

Images

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1656Programme controls characterised by programming, planning systems for manipulators
    • B25J9/1669Programme controls characterised by programming, planning systems for manipulators characterised by special application, e.g. multi-arm co-operation, assembly, grasping
    • 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
    • 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
    • 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/1689Teleoperation

Landscapes

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

Abstract

본 발명의 일 실시예에 따른 로봇 제어 장치는, 적어도 하나의 로봇을 포함하는 팀을 구성하는 팀 구성부와, 상기 구성된 팀에 의해 수행될 서비스를 결정하는 서비스 결정부와, 상기 서비스의 적어도 일부와 함께 수행될 다중작업(multitasking) 서비스를 설정하는 다중작업 설정부와, 상기 팀의 동작이 제어되는 조종 방식의 변경과 관련된 동적 모드를 설정하는 동적 모드 결정부와, 상기 팀, 상기 서비스, 상기 다중작업 서비스 및 상기 동적 모드가 반영된 미션을 수립하는 미션 수립부와 상기 수립된 미션에 따라 상기 적어도 하나의 로봇을 제어하는 제어부를 포함할 수 있다.

Description

로봇 제어 방법 및 장치 {METHOD AND APPARATUS FOR CONTROLLING ROBOTS}
본 발명은 복수의 로봇을 포함하는 팀 단위로 복수의 로봇을 제어하는 방법 및 그 방법을 수행하는 장치에 관한 것이다.
기술의 발달에 따라 로봇은 다양한 분야에 이용되고 있다. 다양한 분야에서 이용되는 로봇은 그 목적에 따라 서로 상이한 형태로 설계될 수 있다. 이에 따라 로봇은 다양한 형태의 하드웨어 또는 소프트웨어에 의해 다양한 방식으로 제어될 수 있다. 다만, 이러한 경우, 로봇의 사용자는 로봇의 하드웨어 또는 소프트웨어에 적합하도록 설계된 제어 방법을 습득하여 개별적인 제어를 수행하여야하는 불편함이 따르게 된다. 따라서, 이종 로봇, 즉 서로 다른 종류의 로봇의 경우에도 공통적으로 적용할 수 있는 제어 방법에 대한 요구가 증가하고 있다.
종래의 로봇 제어 개발 방법, 예를 들어 로봇의 제어를 위한 소프트웨어 개발 방법은 로봇 제조업체가 제공하는 로봇의 특정한 프로그래밍 환경을 사용하여 개발을 수행한다. 이러한 로봇 제어 개발은, 프로그래밍 환경으로서 장치 드라이버 및 소프트웨어 라이브러리가 제공됨에 기초하여, 로봇의 제어를 위한 로봇 프로그램이 작성됨에 의해 수행된다.
한편, 로봇의 소프트웨어의 경우 로봇의 하드웨어의 플랫폼에 의존하기 때문에 같은 동작 사양에서도 로봇의 하드웨어의 플랫폼이 변경될 때마다 소프트웨어를 다시 설계해야하기 때문에 소프트웨어의 재사용성이 떨어져 개발의 효율이 매우 낮다는 문제가 존재한다.
또한, 기존의 로봇 제어 방법은 컴퓨터 프로그래밍 언어를 이용하여 프로그래밍을 수행함으로써 로봇을 제어하기 때문에, 비전문가, 즉 컴퓨터 프로그래밍에 대한 기초 지식이 없는 일반적인 사용자가 로봇을 제어하기 어려워 기 정해진 틀에 의해서만 로봇을 사용해야하는 불편함이 존재한다.
이에 따라, 비전문가들도 자유롭게 이용할 수 있을 정도로 로봇을 보다 손쉽게 제어할 수 있으며, 나아가 다양한 종류의 로봇에서 공통적으로 사용 가능한 로봇 제어 방법이 요구된다.
한국등록특허 제10-0995592호 (2010년 11월 15일 등록)
본 발명이 해결하고자 하는 과제는, 로봇의 세부적인 제어로서의 태스크와 태스크의 상위 단위로서의 전략을 로봇이 수행할 미션에 대한 서비스를 이용하여 직관적으로 나타내고, 하드웨어 플랫폼과 독립적으로 설계되는 로봇 제어 방법 및 그 방법을 수행하는 장치를 제공하는 것이다.
다만, 본 발명이 해결하고자 하는 과제는 이상에서 언급한 바로 제한되지 않으며, 언급되지는 않았으나 아래의 기재로부터 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있는 목적을 포함할 수 있다.
본 발명의 일 실시예에 따른 로봇 제어 장치는, 적어도 하나의 로봇을 포함하는 팀을 구성하는 팀 구성부와, 상기 구성된 팀에 의해 수행될 서비스를 결정하는 서비스 결정부와, 상기 서비스의 적어도 일부와 함께 수행될 다중작업(multitasking) 서비스를 설정하는 다중작업 설정부와, 상기 팀의 동작이 제어되는 조종 방식의 변경과 관련된 동적 모드를 설정하는 동적 모드 결정부와, 상기 팀, 상기 서비스, 상기 다중작업 서비스 및 상기 동적 모드가 반영된 미션을 수립하는 미션 수립부와 상기 수립된 미션에 따라 상기 적어도 하나의 로봇을 제어하는 제어부를 포함할 수 있다.
또한, 사용자에 의한 입력을 수신하는 입력부를 더 포함하고, 상기 팀 구성부는 상기 수신된 입력에 기초하여 상기 팀을 구성하고, 상기 서비스 결정부는 상기 수신된 입력에 기초하여 상기 수행될 서비스를 결정하고, 상기 다중작업 설정부는 상기 수신된 입력에 기초하여 상기 다중작업을 설정하고, 상기 동적 모드 결정부는 상기 수신된 입력에 기초하여 상기 동적 모드를 설정할 수 있다.
또한, 상기 입력은, 상기 적어도 하나의 로봇의 수를 결정하는 입력, 상기 수행될 서비스를 지정하는 입력, 상기 다중작업의 수행 여부를 선택하는 입력, 상기 서비스와 구분되는 다른 서비스를 상기 다중작업 서비스로 지정하는 입력, 상기 조종 방식의 변경에 대한 기준을 설정하는 입력 중 적어도 하나를 포함할 수 있다.
또한, 상기 조종 방식은 원격 조종 및 자율 주행 중 적어도 하나를 포함하고, 상기 입력에 의해 설정된 기준에 따라 변경될 수 있다.
또한, 상기 수립된 미션을 식별하여, 상기 미션의 수행을 위한 상기 적어도 하나의 로봇에 대한 상기 서비스의 하위 단위로서의 동작을 나타내는 태스크를 결정하는 전략 결정부를 더 포함할 수 있다.
또한, 상기 태스크는 복수로 구성되며, 상기 서비스와 매핑되고 기 지정된 채로 상기 전략 결정부에 미리 저장될 수 있다.
또한, 상기 전략 결정부는, 상기 미션, 상기 로봇의 수, 상기 로봇의 종류, 상기 로봇의 상태, 상기 로봇의 위치 및 상기 로봇이 위치된 환경 중 적어도 하나를 기초로, 복수로 구성되는 태스크 중 상기 미션의 수행에 가장 적합한 적어도 하나의 태스크를 결정할 수 있다.
또한, 상기 제어부는 상기 적어도 하나의 로봇 각각에 대하여 상기 미션의 수행을 위해 상기 적어도 하나의 로봇 각각의 움직임을 제어할 수 있다.
상기 로봇은 생명체의 특성을 모방하여 동작을 수행하는 생체 모방 로봇(biomimetic robot)일 수 있다.
본 발명의 일 실시예에 따른 로봇 제어 방법은, 적어도 하나의 로봇을 포함하는 팀을 구성하고, 상기 구성된 팀에 의해 수행될 서비스를 결정하고, 상기 서비스의 적어도 일부와 함께 수행될 다중작업(multitasking) 서비스를 설정하고, 상기 팀의 동작이 제어되는 조종 방식의 변경과 관련된 동적 모드를 설정하는 단계와, 상기 팀, 상기 서비스, 상기 다중작업 서비스 및 상기 동적 모드가 반영된 미션을 수립하는 단계와, 상기 수립된 미션에 따라 상기 적어도 하나의 로봇을 제어하는 단계를 포함할 수 있다.
또한, 사용자에 의한 입력을 수신하는 단계를 더 포함하고, 상기 수신된 입력에 기초하여, 상기 팀이 구성되고 상기 수행될 서비스가 결정되고 상기 다중작업이 설정되고 상기 동적 모드가 설정될 수 있다.
또한, 상기 입력은, 상기 적어도 하나의 로봇의 수를 결정하는 입력, 상기 수행될 서비스를 지정하는 입력, 상기 다중작업의 실행 여부를 선택하는 입력, 상기 서비스와 구분되는 다른 서비스를 상기 다중작업 서비스로 지정하는 입력, 상기 조종 방식의 변경에 대한 기준을 설정하는 입력 중 적어도 하나를 포함할 수 있다.
또한, 상기 조종 방식은 원격 조종 및 자율 주행 중 적어도 하나를 포함하고, 상기 입력에 의해 설정된 기준에 따라 변경될 수 있다.
또한, 상기 수립된 미션을 식별하여, 상기 미션의 수행을 위한 상기 적어도 하나의 로봇에 대한 상기 서비스의 하위 단위로서의 동작을 나타내는 태스크를 결정하는 단계를 더 포함할 수 있다.
또한, 상기 태스크를 결정하는 단계는, 상기 미션, 상기 로봇의 수, 상기 로봇의 종류, 상기 로봇의 상태, 상기 로봇의 위치 및 상기 로봇이 위치된 환경 중 적어도 하나를 기초로, 복수로 구성되는 태스크 중 상기 미션의 수행에 가장 적합한 적어도 하나의 태스크를 결정하는 단계를 포함할 수 있다.
본 발명의 실시예에 따른 로봇 제어 방법 및 장치는 로봇의 하드웨어 플랫폼과 독립적으로 설계되어 다양한 로봇에 적용 가능하도록 함으로써 로봇 제어의 효율을 향상시킬 수 있다. 또한, 로봇이 수행할 미션을 보다 직관적으로 나타내는 서비스를 이용하여 비전문가도 용이하게 로봇의 제어가 가능하도록 할 수 있다.
다만, 본 발명에서 얻을 수 있는 효과는 이상에서 언급한 효과들로 제한되지 않으며, 언급하지 않은 또 다른 효과들은 아래의 기재로부터 본 개시가 속하는 기술 분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.
도 1은 본 발명의 일 실시예에 따른 로봇 제어 방법의 개념도를 도시한다.
도 2는 본 발명의 일 실시예에 따른 로봇 제어 장치의 기능적 구성의 예를 도시한다.
도 3은 본 발명의 일 실시예에 따른 로봇 제어 장치의 미션 수립부의 기능적 구성의 예를 도시한다.
도 4는 본 발명의 일 실시예에 따른 로봇 제어 방법의 각 단계의 흐름을 도시한다.
도 5는 본 발명의 일 실시예에 따른 로봇 제어 방법에서 제공하는 동적 모드 및 다중작업의 예를 도시한다.
도 6은 본 발명의 일 실시예에 따른 로봇 제어 방법의 미션 구현 예를 도시한다.
도 7은 본 발명의 일 실시예에 따른 로봇 제어 방법의 전략 결정부 구현의 예를 도시한다.
도 8은 본 발명의 일 실시예에 따른 로봇 제어 방법의 제어부와 관련된 구현의 예를 도시한다.
도 9A는 본 발명의 일 실시예에 따른 로봇 제어 방법의 제어부와 관련된 구현의 다른 예를 도시한다.
도 9B는 본 발명의 일 실시예에 따른 로봇 제어 방법의 제어부와 관련된 구현의 또 다른 예를 도시한다.
본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 다양한 형태로 구현될 수 있으며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하고, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명의 범주는 청구항에 의해 정의될 뿐이다.
본 발명의 실시예들을 설명함에 있어서 공지 기능 또는 구성에 대한 구체적인 설명은 본 발명의 실시예들을 설명함에 있어 실제로 필요한 경우 외에는 생략될 것이다. 그리고 후술되는 용어들은 본 발명의 실시예에서의 기능을 고려하여 정의된 용어들로서 이는 사용자, 운용자의 의도 또는 관례 등에 따라 달라질 수 있다. 그러므로 그 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예들을 포함할 수 있는바, 특정 실시예들을 도면에 예시하고 상세한 설명에 설명하고자 한다. 그러나 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로서 이해되어야 한다.
제 1, 제 2 등과 같이 서수를 포함하는 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 해당 구성요소들은 이와 같은 용어들에 의해 한정되지는 않는다. 이 용어들은 하나의 구성요소들을 다른 구성요소로부터 구별하는 목적으로만 사용된다.
어떤 구성요소가 다른 구성요소에 '연결되어' 있다거나 '접속되어' 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다.
도 1은 본 발명의 일 실시예에 따른 로봇 제어 방법의 개념도를 도시한다.
도 1을 참조하면, 로봇 제어 장치(10)는 사용자 입력을 수신하기 위한 팀 구성 컨텐츠(11), 서비스 컨텐츠(12), 다중작업(multitasking) 컨텐츠(13), 동적 모드 컨텐츠(14)를 표시할 수 있다.
로봇 제어 장치(10)는 팀 구성 컨텐츠(11)에 대한 사용자의 입력을 수신하는 것에 기초하여 적어도 하나의 로봇으로 구성되는 팀을 결정할 수 있다. 경우에 따라 팀을 구성하는 적어로 하나의 로봇의 일부는 다른 일부와 서로 다른 종류, 즉 서로 다른 하드웨어의 플랫폼을 가질 수 있다.
로봇 제어 장치(10)는 서비스 컨텐츠(12)에 대한 사용자의 입력을 수신하는 것에 기초하여 팀에 의해 수행될 서비스를 결정할 수 있다. 여기서, 서비스는 팀을 구성하는 로봇의 종류가 다르더라도 공통적으로 표현 가능한 상위 수준의 직관적인 동작을 의미할 수 있다.
로봇 제어 장치(10)는 다중작업(multitasking) 컨텐츠(13)에 대한 사용자의 입력을 수신하는 것에 기초하여 서비스와 함께 수행될 다중작업 서비스를 설정할 수 있다.
로봇 제어 장치(10)는 동적 모드 컨텐츠(14)에 대한 사용자의 입력을 수신하는 것에 기초하여, 팀의 조종과 관련된 모드에 대한 설정을 수행할 수 있다.
로봇 제어 장치(10)는 팀의 구성, 서비스의 결정, 다중작업 서비스의 설정 및 동적 모드의 설정 중 적어도 하나가 수행됨에 기초하여 팀에 의해 수행될 미션을 수립할 수 있다. 미션의 수립과 관련된 보다 자세한 설명은 후술하겠다.
로봇 제어 장치(10)는 수립된 미션에 대하여 전략을 수립하는 과정을 통해 팀에 포함되는 로봇 각각에 대한 제어를 수행할 수 있다. 보다 구체적으로 설명하면, 로봇 제어 장치(10)는 팀에 의해 수행될 미션을 수립한 후, 수립된 미션을 수행하기 위한 팀을 구성하는 적어도 하나의 로봇 각각의 개별적인 동작을 위한 전략을 결정할 수 있다. 이를 통해, 로봇 제어 장치(10)는 팀을 구성하는 적어도 하나의 로봇을 제어하여 미션이 수행되도록 할 수 있다.
한편, 전략을 결정하는 단계는 로봇의 특성을 고려하여 미리 지정된 세부적인 태스크를 적어도 하나의 로봇 각각에 대해 적용하는 단계일 수 있다. 여기서, 로봇의 특성은 로봇의 종류, 즉 하드웨어의 플랫폼을 포함할 수 있다. 전략을 결정하는 단계를 통해 서로 종류가 다른 로봇으로 구성된 팀이어도, 상위 단계에서 미션을 입력함으로써 로봇의 사용성을 향상시킬 수 있다. 다시 말해, 전략을 결정하는 단계가 존재함으로써 로봇의 하드웨어가 고려될 필요가 없는 상위 단계에서 로봇 제어 분야의 비전문가인 사용자도 미션을 수립할 수 있어 로봇의 사용성이 극대화될 수 있다.
도 2는 본 발명의 일 실시예에 따른 로봇 제어 장치의 기능적 구성의 예를 도시한다. 이하 사용되는 '…부'등의 용어는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미하며, 이는 하드웨어나 소프트웨어, 또는, 하드웨어 및 소프트웨어의 결합으로 구현될 수 있다.
도 2를 참조하면, 로봇 제어 장치(10)는 입력부(210), 미션 수립부(220), 전략 결정부(230), 제어부(240)를 포함할 수 있다.
입력부(210)는 사용자에 의한 입력을 수신할 수 있다. 여기서, 입력은 팀을 구성하는 적어도 하나의 로봇의 수를 결정하는 입력, 팀에 의해 수행될 서비스를 지정하는 입력, 다중작업의 실행 여부를 선택하는 입력, 서비스와 구분되는 다른 서비스를 다중작업 서비스로 지정하는 입력, 조종 방식의 변경에 대한 기준을 설정하는 입력 중 적어도 하나를 포함할 수 있다. 다만, 상술한 바에 제한되지 않고, 로봇의 제어와 관련된 다양한 입력을 수신할 수 있다.
입력부(210)는 예를 들면, 도 1의 팀 구성 컨텐츠(11)에 대한 사용자의 입력을 수신하는 것에 기초하여, 팀을 구성할 적어도 하나의 로봇을 설정하는 윈도우를 표시하고, 표시된 윈도우를 통해 적어도 하나의 로봇의 수, 적어도 하나의 로봇 각각의 종류를 선택하는 사용자 입력을 수신할 수 있다.
입력부(210)는 예를 들면, 도 1의 서비스 컨텐츠(12)에 대한 사용자의 입력을 수신하는 것에 기초하여, 서비스를 설정하는 윈도우를 표시하고, 표시된 윈도우를 통해 팀에 의해 수행될 서비스, 예를 들면, 특정 지점으로 이동하는 서비스를 선택하는 사용자 입력을 수신할 수 있다.
입력부(210)는 예를 들면, 도 1의 다중작업 컨텐츠(13)에 대한 사용자의 입력을 수신하는 것에 기초하여, 다중작업 서비스를 설정하는 윈도우를 표시하고, 표시된 윈도우를 통해 서비스 컨텐츠(12)를 통해 결정되는 서비스와 함께 수행될 다중작업 서비스, 예를 들면, 소리를 청취하는 서비스 등을 선택하는 사용자 입력을 수신할 수 있다.
입력부(210)는 예를 들면, 도 1의 동적 모드 컨텐츠(14)를 클릭하는 입력이 수신되는 경우, 동적 모드를 설정하는 윈도우를 표시하고, 표시된 윈도우를 통해, 예를 들면 '특정 지점에 도착하면 원격 제어 방식에서 자율 주행 방식으로 조종 방식을 변경'이라는 조종 방식의 변경 및 변경 조건을 지정하는 사용자 입력을 수신할 수 있다.
입력부(210)에 인가되는 입력은 다양한 형태의 입력을 포함할 수 있다. 예를 들어, 탭(tab), 클릭(click) 또는 텍스트 입력(text input)을 포함할 수 있다.
입력부(210)는 수신된 입력을 미션 수립부(220)에 제공(또는 전달)할 수 있다.
미션 수립부(220)는 입력부(210)로부터의 입력에 기초하여 적어도 하나의 로봇을 포함하는 팀을 구성하거나, 구성된 팀에 의해 수행될 서비스를 결정하거나, 서비스의 적어도 일부와 함께 수행될 다중작업 서비스를 설정하거나, 상기 팀의 동작이 제어되는 조종 방식의 변경과 관련된 동적 모드를 설정할 수 있다. 서비스는 팀에 의해 수행될 공통적인 동작을 의미할 수 있다. 예를 들어, 서비스는 특정 지점으로 이동하는 동작일 수 있다.
경우에 따라, 서비스는 시계열적인 복수의 서비스로 구성될 수 있다. 예를 들어, 서비스는 특정 지점으로 이동하는 동작과 특정 지점에서 지정된 물체를 탐지하는 동작을 포함할 수 있다.
미션 수립부(220)는 팀, 서비스, 다중작업 서비스 및 동적 모드가 반영된 미션을 수립할 수 있다. 수립된 미션은 팀에 의해 수행되는 목표, 목적, 또는 임무일 수 있다. 팀, 서비스, 다중작업 서비스 및 동적 모드와 관련된 보다 구체적인 설명은 도 3을 통해 후술하겠다.
전략 결정부(230)는 수립된 미션을 식별하여, 미션의 수행을 위한 적어도 하나의 로봇에 대한 서비스의 하위 단위로서의 동작을 나타내는 태스크나 태스크 그래프를 결정할 수 있다. 예를 들어, 미션 수립부(220)를 통해 결정된 상위 수준의 서비스가 '특정 위치로 이동’인 경우, 이러한 서비스의 제공을 위해 서로 다른 하드웨어를 가지는 적어도 하나의 로봇의 자원과 계산 능력을 요구하는 알고리즘이 여러 개가 있을 수 있으므로, 실제 동작을 수행할 알고리즘을 결정해야 한다. 여기서 알고리즘은 본 명세서 상에서 태스크로 지칭하여 설명하겠으나, 본 용어에 한정되지는 않는다.
태스크는 적어도 하나의 로봇 각각의 특성을 반영하여 결정되는 세부적인 동작을 의미할 수 있다. 예를 들어, 서비스가 특정 지점으로 이동하는 동작이고, 적어도 하나의 로봇은 새 로봇과 강아지 로봇인 경우, 새 로봇에 대한 태스크는 날아서 특정 지점으로 이동하는 동작이고, 강아지 로봇에 대한 태스크는 뛰어서 특정 지점으로 이동하는 동작일 수 있다.
태스크와 관련하여서는 로봇의 특성에 따라 기지정되어 있을 수 있다. 예를 들어, 새 로봇의 경우 이동하는 서비스와 관련하여 날아서 이동하는 태스크, 걸어서 이동하는 태스크가 지정되어 있을 수 있다. 다른 예를 들면, 강아지 로봇의 경우 이동하는 서비스와 관련하여 뛰어서 이동하는 태스크, 걸어서 이동하는 태스크가 지정되어 있을 수 있다.
전략 결정부(230)는 태스크의 결정과 관련한 전략을 나타내기 위해(또는 명세하기 위해) XML 마크 업 언어를 사용할 수 있다. XML 마크 업 언어는 상대적으로 간단한 스키마(schema)를 사용하여 복잡한 요구 사항을 표현하는 데 적합할 수 있다. 이와 관련하여서는 도 7을 통해 보다 자세히 설명하겠다.
전략 결정부(230)는 적어도 하나의 로봇과 관련된 다양한 조건을 식별하고, 식별된 조건에 기초하여 서비스에 대한 태스크를 결정할 수 있다. 예를 들어, 전략 결정부(230)는 적어도 하나의 로봇의 하드웨어의 플랫폼, 적어도 하나의 로봇의 종류, 적어도 하나의 로봇의 기능, 적어도 하나의 로봇의 위치, 또는 적어도 하나의 로봇이 위치된 환경에 기초하여 태스크를 결정할 수 있다.
다시 말해, 전략 결정부(230)는 미션의 수행을 위해, 미션이 실질적인 로봇의 동작 각각에 매핑될 수 있도록 서비스 보다 하위 단위인 태스크로 구체화할 수 있다. 실질적인 로봇의 동작은 후술되는 제어부(240)를 통해 프로그래밍되어 구현될 수 있다.
제어부(240)는 수립된 미션에 따라 적어도 하나의 로봇을 제어할 수 있다. 보다 구체적으로, 제어부(240)는 수립된 미션을 수행하기 위해 적어도 하나의 로봇 각각에 대해 전략 결정부(230)에 의해 결정된 태스크가 수행되도록 프로그래밍할 수 있다.
보다 구체적으로, 제어부(240)는 전략 결정부(230)를 통해 각 서비스를 수행하는 태스크들 간의 의존관계를 나타내는 태스크 그래프 모델을 생성하여, 미션을 통해 지정된 실질적인 로봇의 동작을 태스크 그래프 모델로 묘사할 수 있다. 제어부(240)는 태스크 그래프 모델과 적어도 하나의 로봇 각각이 지원하는 운영체제를 고려하여 적어도 하나의 로봇 각각에 적합한 프로그래밍 언어를 이용하여 프로그래밍을 수행할 수 있다. 제어부(240)는 프로그래밍을 통해 적어도 하나의 로봇 각각을 제어할 수 있다.
한편, 태스크 그래프 모델은 적어도 하나의 로봇 각각의 코드화를 위해 적어도 하나의 로봇 각각에서 수행될 동작이 보다 구체화된 것일 수 있다. 만약 태스크 그래프 모델의 생성과 관련하여서는 통상의 기술자에게 용이한 바 구체적인 설명이 생략될 수 있다. 태스크 그래프 모델과 관련된 예시는 도 8, 도 9A, 또는 도 9B를 참조할 수 있다.
경우에 따라, 제어부(240)는 태스크 그래프 모델을 이용하여 적어도 하나의 로봇 각각에 대해 성능 예측과 같은 다양한 분석을 수행할 수 있다. 나아가, 제어부(240)는 전체 시스템을 미리 검증하도록 할 수도 있다.
경우에 따라 태스크 그래프 모델은 기설정되어 있을 수 있고, 기설정된 태스크 그래프 모델과 관련된 서비스로 추상화될 수 있다. 이러한 경우, 추상화된 서비스는 로봇 제어 장치(10)에 의해 제공 가능한 서비스 중 하나에 포함될 수 있고, 만약 사용자가 추상화된 서비스를 선택한다면, 기설정된 태스크 그래프 모델을 이용하여 로봇의 제어가 수행될 수 있다.
제어부(240)는 공지된 다양한 프로그래밍 언어를 이용하여 결정된 전략에 따라 적어도 하나의 로봇을 개별적으로 제어할 수 있다. 보다 구체적으로, 적어도 하나의 로봇에 따라 이용가능한 프로그래밍 언어가 다를 수 있으며, 제어부(240)는 적어도 하나의 로봇 각각에 적합한 프로그래밍 언어를 이용하여 적어도 하나의 로봇 각각의 동작을 개별적으로 제어할 수 있다.
예를 들어, 제어부(240)는 새 로봇의 경우 '날아서 특정 위치로 이동'하는 전략이 결정된 경우, 이러한 전략의 수행을 위한 프로그래밍을 수행할 수 있다. 프로그래밍은 다양한 프로그래밍 언어(또는 컴퓨터 언어), 예를 들어 c 언어와 같은 언어 중 새 로봇에 적합한 언어를 이용하여 프로그래밍을 수행하여 새 로봇을 제어할 수 있다.
도 3 은 본 발명의 일 실시예에 따른 로봇 제어 장치의 미션 수립부의 기능적 구성의 예를 도시한다.
도 3을 참조하면, 미션 수립부(220)는 팀 구성부(310), 서비스 결정부(320), 다중작업 설정부(330), 동적 모드 결정부(340)를 포함할 수 있다.
팀 구성부(310)는 팀 구성과 관련된 사용자의 입력을 수신하는 것에 기초하여 적어도 하나의 로봇을 포함하는 팀을 구성할 수 있다. 사용자의 입력은 적어도 하나의 로봇의 수, 적어도 하나의 로봇 각각의 종류를 선택하는 입력을 포함할 수 있다.
예를 들어, 팀 구성부(310)가 적어도 하나의 로봇의 수를 3으로 선택하는 입력을 수신한 경우, 팀을 구성하는 적어도 하나의 로봇은 3대로 결정될 수 있다. 팀 구성부(310)는 3대의 로봇 각각의 종류를 결정하는 사용자의 입력을 수신하여 3대의 로봇 각각의 종류를 결정할 수 있다.
이러한 경우, 사용자의 입력에 따라, 팀 구성부(310)는 3대의 로봇 각각을 서로 다른 종류의 로봇, 예를 들어 새 로봇, 개 로봇, 고양이 로봇으로 선택할 수도 있고 일부는 동일 종류의 로봇으로 선택할 수도 있다.
경우에 따라, 팀 구성부(310)는 복수의 팀을 구성할 수도 있다. 예를 들어 3대의 개 로봇을 하나의 팀으로 결정하고, 2대의 새 로봇을 다른 하나의 팀으로 결정할 수 있다.
서비스 결정부(320)는 사용자의 입력을 수신하는 것에 기초하여, 구성된 팀에 의해 수행될 서비스를 결정할 수 있다. 예를 들어, 서비스 결정부(320)는 '특정 지점으로 이동'이라는 서비스를 선택하는 사용자의 입력을 수신하는 경우, '특정 지점으로 이동'을 적어도 하나의 로봇으로 구성된 팀에 의해 수행될 서비스로 결정할 수 있다. 여기서, 서비스는 팀에 의해 공통적으로 수행가능한 수준으로 표현되는 상위 단위로서의 동작일 수 있다.
다중작업 설정부(330)는 사용자의 입력을 수신하는 것에 기초하여 서비스의 적어도 일부와 함께 수행될 다중작업 서비스를 설정할 수 있다. 다중작업 서비스는 복수의 서비스를 포함할 수 있고, 서비스 컨텐츠(12)에 의해 결정되는 서비스와 상응하는 수준의 서비스, 즉, 팀에 의해 공통적으로 수행가능한 수준으로 표현되는 상위 단위로서의 동작일 수 있다.
동적 모드 결정부(340)는 동적 모드 컨텐츠(14)에 대한 사용자의 입력을 수신하는 것에 기초하여 팀의 동작이 제어되는 조종 방식의 변경과 관련된 동적 모드를 설정할 수 있다. 예를 들어, 동적 모드 결정부(340)는 조종 방식의 변경 및 변경 조건을 지정할 수 있다. 여기서, 조종 방식은 팀이 조종되는 방식, 예를 들면 원격 제어 방식, 자율 주행 방식을 포함할 수 있다.
한편, 미션 수립부(220)에 의해 수립되는 미션은 팀 구성, 서비스, 다중작업 서비스, 및 동적 모드 설정이 모두 반영된 팀에 의해 수행되는 작업에 대한 모든 사항을 포함하는 것일 수 있다.
예를 들어, 팀 구성부(310)에 의해 팀이 2대의 새 로봇과 1대의 개 로봇으로 구성되고, 서비스 결정부(320)에 의해 결정된 서비스가 특정 지점으로 이동하는 서비스이며, 다중작업 설정부(330)에 의해 설정된 서비스가 소리를 청취하는 서비스이고, 동적 모드는 지속적으로 원격 제어 모드로 동작하도록 설정되는 경우, 최종적으로 결정되는 미션은 원격 제어 모드로, 2대의 새 로봇과 1대의 개 로봇으로 구성된 팀이, 소리를 청취하면서 특정 지점으로 이동하도록 동작하는 것 일 수 있다.
도 4는 본 발명의 일 실시예에 따른 로봇 제어 방법의 각 단계의 흐름을 도시한다. 도 4에 도시된 방법의 각 단계는 경우에 따라 도면에 도시된 바와 그 순서를 달리하여 수행될 수 있음은 물론이다.
도 4를 참조하면, 입력부(210)는 팀, 서비스, 다중작업, 동적 모드 중 적어도 하나에 대한 입력을 수신할 수 있다(S110). 입력은, 예를 들면, 적어도 하나의 로봇의 수를 결정하는 입력, 수행될 서비스를 지정하는 입력, 다중작업의 실행 여부를 선택하는 입력, 서비스와 구분되는 다른 서비스를 다중작업 서비스로 지정하는 입력, 조종 방식의 변경에 대한 기준을 설정하는 입력을 포함할 수 있다.
한편, 조종 방식은 원격 조종 및 자율 주행 중 적어도 하나를 포함하고, 입력에 의해 설정된 기준에 따라 변경될 수 있다.
미션 수립부(220)는 수신된 입력에 기초하여 팀을 구성하고, 서비스를 결정하고, 다중작업을 설정하고, 동적 모드를 결정할 수 있다(S120). 보다 구체적으로, 미션 수립부(220)는 적어도 하나의 로봇을 포함하는 팀을 구성하고, 상기 구성된 팀에 의해 수행될 서비스를 결정하고, 상기 서비스의 적어도 일부와 함께 수행될 다중작업 서비스를 설정하고, 상기 팀의 동작이 제어되는 조종 방식의 변경과 관련된 동적 모드를 설정할 수 있다.
미션 수립부(220)는 팀, 서비스, 다중작업 서비스 및 동적 모드가 반영된 미션을 수립할 수 있다. 미션은 팀에 의해 수행될 작업의 목적, 목표, 또는 작업을 지칭할 수 있다. 서비스는 미션을 구성하는 일부 요소이고, 태스크의 상위 단위로서, 팀을 구성하는 적어도 하나의 로봇에 의해 공통적으로 수행 가능한 형태의 동작을 나타낼 수 있다.
전략 결정부(230)는 서비스의 수행을 위한 태스크를 결정할 수 있다(S130). 보다 구체적으로, 전략 결정부(230)는 수립된 미션을 식별하여, 상기 미션의 수행을 위한 상기 적어도 하나의 로봇에 대한 상기 서비스의 하위 단위로서의 동작을 나타내는 태스크를 결정할 수 있다.
태스크는 서비스의 하위 단위로서, 적어도 하나의 로봇 각각의 특성에 기초하여 서비스의 수행을 위해 기 지정된 세부적인 동작일 수 있다. 전략 결정부(230)는 미션 수립부(220)에 의해 수립된 미션에 따라, 적어도 하나의 로봇 각각이 미션을 수행하도록, 적어도 하나의 로봇 각각에 대해 적합한 태스크를 결정할 수 있다.
보다 구체적으로, 전략 결정부(230)는 미션, 로봇의 수, 로봇의 종류, 로봇의 상태, 로봇의 위치 및 로봇이 위치된 환경 중 적어도 하나를 기초로, 복수의 태스크 중 미션의 수행에 가장 적합한 태스크를 결정할 수 있다. 전략 결정부(230)는 미션의 수행에 가장 적합한 태스크를 미션의 수행을 위한 전략으로 결정할 수 있다.
제어부(240)는 결정된 전략에 기초하여 서비스를 수행할 수 있다(S140). 보다 구체적으로, 제어부(240)는 시계열적인 서비스로 기술된 미션을 수행하는 태스크 그래프 모델을 생성할 수 있고, 이를 기초로 적어도 하나의 로봇 각각을 구동하기 위한 프로그래밍을 수행할 수 있다.
한편, 태스크와 태스크 그래프 모델은 미리 매핑되어 있을 수 있고, 제어부(240)는 전략 결정부(230)에 의해 태스크가 결정됨에 기초하여, 매핑된 태스크 그래프 모델을 이용하여 적어도 하나의 로봇 각각에 대해 개별적으로 프로그래밍을 수행할 수 있다.
도 5는 본 발명의 일 실시예에 따른 로봇 제어 방법에서 제공하는 동적 모드 및 다중작업의 예를 도시한다.
도 5를 참조하면, 동적 모드는 원격 제어, 자율 주행, 보물 찾기를 포함할 수 있다. 원격 제어, 자율 주행, 보물 찾기는 미션 수립부(220)에 의해 기결정된 기준에 따라 전환될 수 있다. 예를 들어, 'A'위치에서 원격 제어에서 자율 주행으로 동적 모드의 변경이 수행될 수 있다.
경우에 따라, 동적 모드의 변경은 제어부(240)에 의해 수행될 수 있다. 로봇의 원격 제어를 수행 중인 제어부(240)는, 기결정된 기준에 로봇이 부합함을 검출하는 것에 기초하여, 자율 주행으로 변경하기 위해 제어부(240)는 동적 모드를 변경하는 특정 명령을 전송하여 동적 모드를 전환할 수 있다.
도 5에 도시된 바와 같이, 동적 모드에 따라 서비스의 수행을 위한 태스크는 달라질 수 있다. 도 5에서는 청취, 보고, 동작의 3작업이 동시에 이루어지는 다중작업을 표현하고 있으며, 각 모드에 따라 어떤 작업이 이루어 지는지의 정보는 기 지정되어 데이터베이스에 미리 저장되어 있을 수 있다. 전략 결정부(230)는 미션이 수립됨에 기초하여, 미션 수립부(220)에 의해 결정된 적어도 하나의 로봇과, 서비스, 동적 모드를 식별하여 적합한 태스크를 결정할 수 있다.
도 6은 본 발명의 일 실시예에 따른 로봇 제어 방법의 미션 수립부와 관련된 구현 예를 도시한다. 구체적으로, 도 6은 스크립트 언어로 표현된 미션의 예를 나타낸다.
도 6을 참조하면, BNF (Backus-Nauer) 형식으로 스크립트 언어를 표현한다. 여기서 접미사 '*'는 '0 번 이상 반복됨'을 의미하고, '+'는 '1 번 이상 반복됨'을 의미하고, '?'는 '0 또는 1 시간'을 의미할 수 있다.
경우에 따라, 미션은 팀 구성 및 팀 행동의 두 부분으로 구성될 수 있다. 팀 행동은 서비스, 다중작업 서비스, 동적 모드로 구성될 수 있다. 이를 BNF 형식으로 나타내면 표 1과 같을 수 있다.
<MissionScenario> ::= <TeamScenario>+
<TeamScenario> ::= <TeamComposition> <TeamBehavior>
<TeamBehavior> ::= <Service>+ <Multitasking>+
<DynamicModeChange>
팀 구성을 BNF 형식으로 나타내면 표 2와 같을 수 있다.
<TeamComposition> ::= <TeamName> : <RobotList>+
<RobotList> ::= <RobotType> <RobotName>
표 2를 참조하면, 팀 구성은 해당 팀에 속한 로봇의 목록으로 표현될 수 있다. 각 로봇은 로봇의 타입과 이름으로 표현될 수 있다. 이는, 예를 들면, 도 6의 1 행에 표시된 것과 같이 Team1이라는 이름의 팀과, Team1에는 lego_robot 타입의 r1으로 나타날 수 있다. 로봇의 동작은 스크립트 언어의 서비스로 정의될 수 있다. 서비스를 BNF 형식으로 나타내면 표 3과 같을 수 있다.
<Service> ::= <TeamName>.<PlanName>.<CompServiceName>
{ <Stmt>+ } <RepeatStmt>?
<RepeatStmt> ::= repeat (<LoopCondition>*)
표 3을 참조하면, 복수의 서비스로 구성되는 복합 서비스를 명세할 때에는 작업(Plan)에 따라 각기 다른 복합 서비스가 되므로 서비스의 구문에 작업 이름 (PlanName)이 명시적으로 들어갈 수 있다. 이하 플랜은 작업과 같은 의미로 이해되어야 한다. 복합 서비스의 반복 실행은 repeat 문을 통해 반복 조건 혹은 주기가 함께 작성될 수 있다. 예를 들어, 각 작업(또는 플랜)에 대해 하나씩 세 가지 복합 서비스가 도 6의 2행부터 8행까지를 통해 정의된 것을 볼 수 있다. 스크립트 언어는 복합 서비스 정의에서 조건문 및 반복문을 지원할 수 있다. 조건문 실행은 if와 else를 사용하여 표현될 수 있고, 반복문은 loop를 이용하여 표현될 수 있다. 로봇 특성상 통신이 자주 일어나기 때문에 send 및 receive는 미리 서비스로 정의되어 있을 수 있다. throw 문은 복합 서비스에서 이벤트를 생성하는 데 사용될 수 있다. 이는 모드를 동적 모드의 변경 또는 동적 모드의 조건부 실행을 수행하는 데 사용할 수 있다.
도 6의 8행에 따르면, TEAM 1이 목적지에 도착하면, 모드를 'SEARCH_MODE'(으)로 변경하는 이벤트가 발생될 수 있다. 이때, 데이터베이스에 사전에 등록된 서비스들도 사용될 수 있다. 예를 들어 "이동", "비디오 캡처" 및 "물체 감지"와 같은 다양한 종류의 빌트-인-서비스가 사용될 수 있다. 이와 관련된, BNF의 형식은 표 4와 같이 표현될 수 있다.
<Stmt> ::= <ConditionalStmt>
| <IterationalStmt>
| <ExpressionStmt>
<ConditionalStmt> ::= if(<Condition>+) {<Stmt>+}
<ElseStmt>?
<ElseStmt> ::= else {<Stmt>+}
<IterationalStmt> ::= loop(<LoopCondition>+){<Stmt>+}
<LoopCondition> ::= <PeriodTime>
| <Condition>
<ExpressionStmt> ::= send(<TeamName>, <Attribute>+)
| receive(<TeamName>, <Attribute>+)
| <Built-in-Service>
| throw <EventName>
다중작업의 BNF의 형식은 표 5와 같이 표현될 수 있다.
<Multitasking> ::= <TeamName>.<ModeName> {<SetStmt>+}
<SetStmt> ::= set(<PlanName>, <CompServiceName>)
| set(<PlanName>, OFF)
표 5를 참조하면, 'set (<PlanName>, OFF)'을 통해 작업(또는 플랜)을 종료할 수 있다. 도 6의 9행부터 12 행까지는 자율 주행 모드에서 각 플랜의 동작을 정의하는 방법을 나타낼 수 있다. 동적 모드에 대한 BNF의 형식은 표 6과 같을 수 있다.
<DynamicModeChange> ::= <TeamName>.main{
<ModeChange>* <InitialMode>}
<ModeChange> ::= case(<ModeName>):<EventListener>*
<EventListener> ::= catch(<EventName>):<ModeAssign>
<ModeAssign> ::= mode = <ModeName>
<InitialMode> ::= default:<ModeAssign>
표 6을 참조하면, 제어부(240)는 로봇이 미션의 수행을 시작에 대응하여, 메인(main) 루프를 프로그램이 종료될 때까지 실행할 수 있다. 최초의 모드는 default 모드로 설정될 수 있고, 생성된 이벤트는 모드를 변경할 수 있다. 동적 모드가 변경되는 조건이 설정되는 것에 기초해서, 제어부(240)는 메인 루프의 실행 중 Catch 문에서 포착된 이벤트를 기반으로 다음 동작 모드를 결정할 수 있다. 도 6의 18행에 따르면, 초기 모드가 "AUTO_MODE"로 설정되어 있을 때, 동적 모드의 전환은 14행부터 17 행까지에서 표현된 바와 같이 특정 조건에서 일어난다는 것을 알 수 있다. 도 7은 본 발명의 일 실시예에 따른 로봇 제어 방법의 전략 결정부 구현의 예를 도시한다. 구체적으로, 도 7은 XML 마크 업 언어를 사용하여 표현된 전략의 예를 나타낸다.
도 7은 '이동'과 관련된 서비스를 구체화 하여 '현재 위치와 장애물을 확인한 다음, 바퀴로 이동'하는 XML 표현을 나타낼 수 있다. 이러한 구체적인 표현은 로봇 제어 장치(10)의 제조업체 또는 로봇 제어의 전문가에 의해 미리 결정되어 데이터 베이스에 기 지정된 것일 수 있다. 이러한 경우, 미션 수립부(220)에 의해 미션이 수립되면 이에 기초하여, 전략 결정부(230)는 도 7과 같은 세부적인 태스크로 미션을 구체화할 수 있다.
경우에 따라, 전략 결정부(230)는 미션과 관련하여 비기능적 사항을 결정할 수 있다. 예를 들어, 기능적 사항인 서비스, 예를 들면 '이동' 서비스와 관련하여 전략 결정부(230)는 '로봇의 배터리 잔량을 지속적으로 확인'하는 전략을 결정할 수 있다.
비기능적 사항을 담당하는 태스크도 서비스와 관련하여 기지정되어 데이터베이스에 저장되어 있을 수 있다. 예를 들어, '로봇의 배터리 잔량을 지속적으로 확인'하는 태스크는 '이동' 서비스와 관련된 태스크로 데이터 베이스에 미리 지정된 것일 수 있다. 전략 결정부(230)는 로봇과 관련된 다양한 조건, 예를 들면 로봇의 전력 효율, 로봇이 위치된 환경 조건 등을 고려하여 비기능적 사항을 결정할 수 있다.
도 8은 본 발명의 일 실시예에 따른 로봇 제어 방법의 제어부와 관련된 구현의 예를 도시한다.
도 8을 참조하면, 팀을 이루는 로봇이 N대로 구성되는 경우, 제어부(240)는 N대의 로봇 각각에 대해 태스크 그래프 모델을 생성할 수 있다. 도 8에서는 'Robot #2'의 태스크 그래프 모델을 예시적으로 나타낸다.
태스크 그래프 모델은 센서 태스크, 알고리즘 태스크, 액츄에이터 태스크, 또는 통신 태크스와 같이 다양한 종류의 태스크로 구성될 수 있다. 태스크 그래프 모델은 도시된 바에 제한되지 않고 다양한 동작의 수행과 관련하여 존재할 수 있다.
태스크 그래프 모델은 사전에 데이터베이스에 등록되어 있을 수 있다. 이때, 태스크 그래프 모델은 태스크 별로 전략과 매핑되어 있을 수 있다. 이에 따라, 전략 결정부(230)에 의해 전략이 결정되면 관련된 태스크 그래프 모델이 생성될 수 있다.
태스크 그래프 모델은 실질적인 로봇의 동작을 로봇의 운영체제에 맞추어 프로그래밍하기 위한 것으로 통상의 기술자에게 용이한바, 자세한 설명은 생략하겠다.
도 9A와 도 9B는 본 발명의 일 실시예에 따른 로봇 제어 방법의 제어부와 관련된 구현의 다른 예들을 도시한다.
도 9A의 경우, 통신을 이용한 원격 제어 이동을 수행하는 로봇에 대한 태스크 그래프 모델을 나타낸 것일 수 있다. 도 9A의 경우 통신을 이용하기 때문에 신호의 수신을 위한 'Receive' 태스크가 포함되어 있을 수 있다.
도 9B의 경우, TLD 알고리즘을 이용한 간접적인 원격 제어 이동을 수행하는 로봇에 대한 태스크 그래프 모델을 나타낸 것일 수 있다. 도 9B의 경우 TLD 알고리즘을 이용하기 때문에 정보 수집 목적의 'Camera' 태스크가 포함되어 있을 수 있다. 여기서, TLD 알고리즘은 기 지정되어 저장된 데이터일 수 있다.
본 발명의 실시예에 따른 로봇 제어 장치(10)는 사용자에 의해 로봇의 동작을 의미하는 상위 단위로 표현되는 서비스에 대한 입력을 수신하고, 이에 기초하여 로봇의 동작의 구현을 수행하기 때문에, 비전문가인 사용자도 로봇의 제어를 보다 용이하게 수행할 수 있다.
또한, 본 발명의 실시예에 따른 로봇 제어 장치(10)는 서비스의 경우 로봇의 하드웨어에 종속되지 않는 개념으로서, 로봇의 하드웨어와는 독립적으로 존재함으로써 로봇의 하드웨어가 변경되는 경우에도 별도의 수정 없이 적용할 수 있다는 점에서 높은 효율을 가진다.
또한, 본 발명의 실시예에 따른 로봇 제어 장치(10)는 개별적인 로봇 각각에 대한 제어가 아닌 복수의 로봇으로 구성되는 팀 단위의 로봇의 제어에 적용 가능하다.
본 명세서에 첨부된 블록도의 각 블록과 흐름도의 각 단계의 조합들은 컴퓨터 프로그램 인스트럭션들에 의해 수행될 수도 있다. 이들 컴퓨터 프로그램 인스트럭션들은 범용 컴퓨터, 특수용 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비의 프로세서에 탑재될 수 있으므로, 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비의 프로세서를 통해 수행되는 그 인스트럭션들이 블록도의 각 블록 또는 흐름도의 각 단계에서 설명된 기능들을 수행하는 수단을 생성하게 된다. 이들 컴퓨터 프로그램 인스트럭션들은 특정 방식으로 기능을 구현하기 위해 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비를 지향할 수 있는 컴퓨터 이용 가능 또는 컴퓨터 판독 가능 메모리에 저장되는 것도 가능하므로, 그 컴퓨터 이용가능 또는 컴퓨터 판독 가능 메모리에 저장된 인스트럭션들은 블록도의 각 블록 또는 흐름도 각 단계에서 설명된 기능을 수행하는 인스트럭션 수단을 내포하는 제조 품목을 생산하는 것도 가능하다. 컴퓨터 프로그램 인스트럭션들은 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비 상에 탑재되는 것도 가능하므로, 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비 상에서 일련의 동작 단계들이 수행되어 컴퓨터로 실행되는 프로세스를 생성해서 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비를 수행하는 인스트럭션들은 블록도의 각 블록 및 흐름도의 각 단계에서 설명된 기능들을 실행하기 위한 단계들을 제공하는 것도 가능하다.
또한, 각 블록 또는 각 단계는 특정된 논리적 기능(들)을 실행하기 위한 하나 이상의 실행 가능한 인스트럭션들을 포함하는 모듈, 세그먼트 또는 코드의 일부를 나타낼 수 있다. 또, 몇 가지 대체 실시예들에서는 블록들 또는 단계들에서 언급된 기능들이 순서를 벗어나서 발생하는 것도 가능함을 주목해야 한다. 예컨대, 잇달아 도시되어 있는 두 개의 블록들 또는 단계들은 사실 실질적으로 동시에 수행되는 것도 가능하고 또는 그 블록들 또는 단계들이 때때로 해당하는 기능에 따라 역순으로 수행되는 것도 가능하다.
이상의 설명은 본 발명의 기술 사상을 예시적으로 설명한 것에 불과한 것으로서, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자라면 본 발명의 본질적인 품질에서 벗어나지 않는 범위에서 다양한 수정 및 변형이 가능할 것이다. 따라서, 본 명세서에 개시된 실시예들은 본 발명의 기술 사상을 한정하기 위한 것이 아니라 설명하기 위한 것이고, 이러한 실시예에 의하여 본 발명의 기술 사상의 범위가 한정되는 것은 아니다. 본 발명의 보호 범위는 아래의 청구범위에 의하여 해석되어야 하며, 그와 균등한 범위 내에 있는 모든 기술사상은 본 발명의 권리범위에 포함되는 것으로 해석되어야 할 것이다.
10: 로봇 제어 장치
210: 입력부
220: 미션 수립부
230: 전략 결정부
240: 제어부

Claims (15)

  1. 적어도 두 개의 로봇을 포함하는 팀을 구성하는 팀 구성부와,
    상기 구성된 팀에 의해 수행될 서비스를 결정하는 서비스 결정부와,
    상기 서비스의 적어도 일부와 함께 수행될 다중작업(multitasking) 서비스를 설정하는 다중작업 설정부와,
    상기 팀의 동작이 제어되는 조종 방식의 변경과 관련된 동적 모드를 설정하는 동적 모드 결정부와,
    상기 팀, 상기 서비스, 상기 다중작업 서비스 및 상기 동적 모드가 반영된 미션을 수립하는 미션 수립부와
    상기 수립된 미션을 식별하여, 상기 미션의 수행을 위한 상기 두 개의 로봇에 대한 상기 서비스의 하위 단위로서의 동작을 나타내는 태스크를 결정하는 전략 결정부를 포함하고,
    상기 전략 결정부에서 상기 태스크가 결정된 후, 상기 전략 결정부를 통해 상기 서비스를 수행하는 상기 태스크들 간의 의존관계를 나타내는 태스크 그래프 모델을 생성하고, 상기 태스크 그래프 모델과 상기 적어도 두 개의 로봇 각각이 지원하는 운영체제가 고려된 상기 적어도 두 개의 로봇 각각에 적합한 프로그래밍 언어를 이용하여 프로그래램 코딩을 수행함에 따라 상기 적어도 두 개의 로봇 각각의 동작을 개별적으로 제어하는 제어부를 포함하고,
    상기 프로그램 코딩은,
    상기 팀, 상기 서비스, 상기 다중작업 서비스 및 상기 동적 모드 중 적어도 두 개가 동시에 진행되는 명령어 코드를 작성하는 것이고,
    상기 적어도 두 개의 로봇은 종류가 서로 상이하고,
    상기 전략 결정부는,
    상기 적어도 두 개의 로봇 각각이 수행해야 할 상기 서비스가 동일한 경우에도, 상기 적어도 두 개의 로봇 각각이 수행해야 상기 태스크가 서로 상이하도록 기 지정하고 있고,
    상기 전략 결정부는, 상기 미션, 상기 로봇의 수, 상기 로봇의 종류, 상기 로봇의 상태, 상기 로봇의 위치 및 상기 로봇이 위치된 환경 중 적어도 하나를 기초로, 복수로 구성되는 태스크 중 상기 미션의 수행에 가장 적합한 적어도 하나의 태스크를 결정하는
    로봇 제어 장치.
  2. 제1항에 있어서,
    사용자에 의한 입력을 수신하는 입력부를 더 포함하고,
    상기 팀 구성부는 상기 수신된 입력에 기초하여 상기 팀을 구성하고,
    상기 서비스 결정부는 상기 수신된 입력에 기초하여 상기 수행될 서비스를 결정하고,
    상기 다중작업 설정부는 상기 수신된 입력에 기초하여 상기 다중작업을 설정하고,
    상기 동적 모드 결정부는 상기 수신된 입력에 기초하여 상기 동적 모드를 설정하는
    로봇 제어 장치.
  3. 제2항에 있어서,
    상기 입력은,
    상기 적어도 두 개의 로봇의 수를 결정하는 입력, 상기 수행될 서비스를 지정하는 입력, 상기 다중작업의 수행 여부를 선택하는 입력, 상기 서비스와 구분되는 다른 서비스를 상기 다중작업 서비스로 지정하는 입력, 상기 조종 방식의 변경에 대한 기준을 설정하는 입력 중 적어도 하나를 포함하는
    로봇 제어 장치.
  4. 제3항에 있어서,
    상기 조종 방식은 원격 조종 및 자율 주행 중 적어도 하나를 포함하고, 상기 입력에 의해 설정된 기준에 따라 변경되는
    로봇 제어 장치.
  5. 삭제
  6. 삭제
  7. 삭제
  8. 제1항에 있어서,
    상기 제어부는 상기 적어도 두 개의 로봇 각각에 대하여 상기 미션의 수행을 위해 상기 적어도 두 개의 로봇 각각의 움직임을 제어하는 프로그램 코딩을 수행하는
    로봇 제어 장치.
  9. 제1항에 있어서,
    상기 적어도 두 개의 로봇은 생명체의 특성을 모방하여 동작을 수행하는 생체 모방 로봇(biomimetic robot)인
    로봇 제어 장치.
  10. 적어도 두 개의 로봇을 포함하는 팀을 구성하고, 상기 구성된 팀에 의해 수행될 서비스를 결정하고, 상기 서비스의 적어도 일부와 함께 수행될 다중작업(multitasking) 서비스를 설정하고, 상기 팀의 동작이 제어되는 조종 방식의 변경과 관련된 동적 모드를 설정하는 단계와,
    상기 팀, 상기 서비스, 상기 다중작업 서비스 및 상기 동적 모드가 반영된 미션을 수립하는 단계와,
    상기 미션의 수행을 위한 상기 적어도 두 개의 로봇에 대한 상기 서비스의 하위 단위로서의 동작을 나타내는 태스크를 결정하는 전략을 결정하는 단계와,
    상기 전략을 결정하는 단계에서, 상기 태스크가 결정된 후, 상기 수립된 미션과 상기 전략을 결정하는 단계를 통해 상기 서비스를 수행하는 상기 태스크들 간의 의존관계를 나타내는 태스크 그래프 모델을 생성하고, 상기 태스크 그래프 모델과 상기 적어도 두 개의 로봇 각각이 지원하는 운영체제가 고려된 상기 적어도 두 개의 로봇 각각에 적합한 프로그래밍 언어를 이용하여 프로그램 코딩을 수행함에 따라 상기 적어도 두 개의 로봇 각각의 동작을 개별적으로 제어하는 단계를 포함하며,
    상기 프로그램 코딩은,
    상기 팀, 상기 서비스, 상기 다중작업 서비스 및 상기 동적 모드 중 적어도 두 개가 동시에 진행되는 명령어 코드를 작성하는 것이고,
    상기 적어도 두 개의 로봇은 종류가 서로 상이하고,
    상기 적어도 두 개의 로봇 각각이 수행해야 할 상기 서비스가 동일한 경우에도, 상기 적어도 두 개의 로봇 각각이 수행해야 상기 태스크는 서로 상이하도록 기 지정되어 있고,
    상기 전략을 결정하는 단계는,
    상기 미션, 상기 로봇의 수, 상기 로봇의 종류, 상기 로봇의 상태, 상기 로봇의 위치 및 상기 로봇이 위치된 환경 중 적어도 하나를 기초로, 복수로 구성되는 태스크 중 상기 미션의 수행에 가장 적합한 적어도 하나의 태스크를 결정하는 단계를 포함하는
    로봇 제어 방법.
  11. 제10항에 있어서,
    사용자에 의한 입력을 수신하는 단계를 더 포함하고,
    상기 수신된 입력에 기초하여, 상기 팀이 구성되고 상기 수행될 서비스가 결정되고 상기 다중작업이 설정되고 상기 동적 모드가 설정되는
    로봇 제어 방법.
  12. 제11항에 있어서,
    상기 입력은,
    상기 적어도 두 개의 로봇의 수를 결정하는 입력, 상기 수행될 서비스를 지정하는 입력, 상기 다중작업의 실행 여부를 선택하는 입력, 상기 서비스와 구분되는 다른 서비스를 상기 다중작업 서비스로 지정하는 입력, 상기 조종 방식의 변경에 대한 기준을 설정하는 입력 중 적어도 하나를 포함하는
    로봇 제어 방법.
  13. 제12항에 있어서,
    상기 조종 방식은 원격 조종 및 자율 주행 중 적어도 하나를 포함하고, 상기 입력에 의해 설정된 기준에 따라 변경되는
    로봇 제어 방법.
  14. 삭제
  15. 삭제
KR1020180119923A 2018-10-08 2018-10-08 로봇 제어 방법 및 장치 KR102212352B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020180119923A KR102212352B1 (ko) 2018-10-08 2018-10-08 로봇 제어 방법 및 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020180119923A KR102212352B1 (ko) 2018-10-08 2018-10-08 로봇 제어 방법 및 장치

Publications (2)

Publication Number Publication Date
KR20200040088A KR20200040088A (ko) 2020-04-17
KR102212352B1 true KR102212352B1 (ko) 2021-02-04

Family

ID=70461028

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180119923A KR102212352B1 (ko) 2018-10-08 2018-10-08 로봇 제어 방법 및 장치

Country Status (1)

Country Link
KR (1) KR102212352B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11237819B2 (en) * 2019-07-29 2022-02-01 Seiko Epson Corporation Program transfer system performing machine learning for preceding robotic work data and robot system having the program transfer system

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102623326B1 (ko) * 2021-11-30 2024-01-10 아리카 주식회사 로봇에 작업을 할당하는 다중 로봇 작업의 처리 방법 및 장치
KR102610426B1 (ko) * 2021-11-30 2023-12-06 서울시립대학교 산학협력단 조직 기반 작업 명세를 이용하는 다중 로봇 작업의 처리 방법 및 장치

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003029988A (ja) * 2001-07-13 2003-01-31 Nec Corp タスクスケジューリングシステムおよび方法、プログラム
JP2012529104A (ja) * 2009-06-05 2012-11-15 ザ・ボーイング・カンパニー 異種自律作業の監視及び制御

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100995592B1 (ko) 2008-12-02 2010-11-22 김우열 타겟독립모델을 이용한 임베디드 시스템 설계 장치 및 그 방법

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003029988A (ja) * 2001-07-13 2003-01-31 Nec Corp タスクスケジューリングシステムおよび方法、プログラム
JP2012529104A (ja) * 2009-06-05 2012-11-15 ザ・ボーイング・カンパニー 異種自律作業の監視及び制御

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11237819B2 (en) * 2019-07-29 2022-02-01 Seiko Epson Corporation Program transfer system performing machine learning for preceding robotic work data and robot system having the program transfer system

Also Published As

Publication number Publication date
KR20200040088A (ko) 2020-04-17

Similar Documents

Publication Publication Date Title
KR102212352B1 (ko) 로봇 제어 방법 및 장치
US11037564B2 (en) Robot apparatus and method for registering shortcut command thereof based on a predetermined time interval
KR102686219B1 (ko) 다중 에이전트 시스템에서 로봇을 작동하는 방법, 로봇, 그리고 다중 에이전트 시스템
WO2017028571A1 (en) An education system using connected toys
KR20170109999A (ko) 인공 지능을 기반으로 하는 로봇 디버깅 시스템
US20160255393A1 (en) Browser-based method and device for indicating mode switch
WO2022217754A1 (zh) 机器人控制方法、装置、存储介质、电子设备、程序产品和机器人
JP2020042812A (ja) 自律型ロボット用のスケジューリングシステム
KR20230171962A (ko) 로봇 자율성 개발을 위한 시스템, 장치 및 방법
Brugali et al. Dynamic variability meets robotics
KR101277275B1 (ko) 로봇 시스템의 행위 기반 태스크 구현 방법
TWI676934B (zh) 開放擴充式移動平台
Gutmann et al. Mission specification and execution of multidrone systems
KR20100078040A (ko) 멀티모달 시스템 및 그 입력처리방법
US8265789B2 (en) Network-based robot system and method for action execution of robot
Miller et al. Enabling dynamic delegation interactions with multiple unmanned vehicles; flexibility from top to bottom
CN117773923A (zh) 复杂业务场景下机器人行为控制方法、装置及相关产品
Tsuda et al. Towards self-adaptation on real-world hardware: a preliminary lightweight programming framework
CN111376250A (zh) 一种机器人控制方法、装置及系统
Doychev et al. Goal Reasoning with the CLIPS Executive in ROS2
US20240286276A1 (en) Teaching device for mobile manipulator based on mobile robot and collaborative robot and method for setting interface thereof
Teubler et al. Design of expert systems for autonomous underwater vehicle control
EP3798821B1 (en) Gui controller design assistance device, remote control system, and program
Jawawi et al. Early-life cycle reuse approach for component-based software of autonomous mobile robot system
CN109996100A (zh) 一种智能遥控器的控制方法、存储介质以及遥控器

Legal Events

Date Code Title Description
AMND Amendment
E90F Notification of reason for final refusal
AMND Amendment
E601 Decision to refuse application
AMND Amendment
X701 Decision to grant (after re-examination)