KR20230001225A - 로봇 및 그 구동 방법 - Google Patents

로봇 및 그 구동 방법 Download PDF

Info

Publication number
KR20230001225A
KR20230001225A KR1020210083874A KR20210083874A KR20230001225A KR 20230001225 A KR20230001225 A KR 20230001225A KR 1020210083874 A KR1020210083874 A KR 1020210083874A KR 20210083874 A KR20210083874 A KR 20210083874A KR 20230001225 A KR20230001225 A KR 20230001225A
Authority
KR
South Korea
Prior art keywords
motion
identifier
robot
motion identifier
user input
Prior art date
Application number
KR1020210083874A
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 KR1020210083874A priority Critical patent/KR20230001225A/ko
Priority to CN202180092991.9A priority patent/CN116847957A/zh
Priority to PCT/KR2021/014100 priority patent/WO2023277255A1/ko
Priority to EP21948555.4A priority patent/EP4265377A1/en
Priority to US17/510,366 priority patent/US11731262B2/en
Publication of KR20230001225A publication Critical patent/KR20230001225A/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/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
    • B25J11/00Manipulators not otherwise provided for
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J11/00Manipulators not otherwise provided for
    • B25J11/0005Manipulators having means for high-level communication with users, e.g. speech generator, face recognition means
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J13/00Controls for manipulators
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J13/00Controls for manipulators
    • B25J13/006Controls for manipulators by means of a wireless system for controlling one or several manipulators
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/10Programme-controlled manipulators characterised by positioning means for manipulator elements
    • B25J9/12Programme-controlled manipulators characterised by positioning means for manipulator elements electric
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/10Programme-controlled manipulators characterised by positioning means for manipulator elements
    • B25J9/12Programme-controlled manipulators characterised by positioning means for manipulator elements electric
    • B25J9/126Rotary actuators
    • 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/1694Programme controls characterised by use of sensors other than normal servo-feedback from position, speed or acceleration sensors, perception control, multi-sensor controlled systems, sensor fusion
    • B25J9/1697Vision controlled systems

Landscapes

  • Engineering & Computer Science (AREA)
  • Robotics (AREA)
  • Mechanical Engineering (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • General Health & Medical Sciences (AREA)
  • Human Computer Interaction (AREA)
  • Manipulator (AREA)

Abstract

본 개시의 다양한 실시예는 로봇의 모션 상태를 고려하여 모션 입력 처리를 조절하는 로봇 및 그 구동 방법에 관한 것이다. 이를 위한 로봇은, 사용자 입력에 기초하여 모션 식별자를 획득하고, 로봇이 모션을 수행 중인지 여부를 나타내는 모션 상태를 식별하고, 상기 모션 상태가 액티브(ACTIVE)인 경우 상기 획득한 모션 식별자를 저장하고, 상기 모션 상태가 아이들(IDLE)인 경우 저장된 적어도 하나의 모션 식별자 중 소정의 기준에 기초하여 모션 식별자를 결정하고, 모션 맵 데이터베이스에 기초하여 상기 결정된 모션 식별자에 대응되는 모션을 구동할 수 있다. 상기 소정의 기준은 외부 입력에 기초하여 설정된 모션 식별자, 가장 많이 획득된 모션 식별자, 또는 가장 최근에 저장된 모션 식별자 중 하나일 수 있다.

Description

로봇 및 그 구동 방법 {ROBOT AND METHOD FOR OPERATING THE SAME}
본 개시의 다양한 실시예들은 로봇의 모션 상태를 고려하여 모션 입력 처리를 조절하는 로봇 및 그 구동 방법에 관한 것이다.
오늘날 사람들은 네트워크로 연결된 전자 장치들을 통해 광범위하게 상호작용하고 있다. 또한, 로봇 기술이 발전하고 로봇 응용 분야가 확대됨에 따라, 의료용 로봇 및 우주 항공 로봇 이외에 일반 가정에서 사용할 수 있는 가정용 로봇도 제조되고 있다. 따라서, 스마트폰 등 전자 장치 사용자가 네트워크로 연결된 로봇을 이용하여 다른 사람과 실시간으로 대화하는 것이 가능하다. 예를 들어, 텔레프레즌스 로봇(또는 원격 존재 로봇, 가상 존재 로봇)이라 불리는 로봇은 일반적으로 스마트폰 등 전자 장치를 통해 원격 제어되는 로봇으로, 전자 장치 사용자는 로봇 사용자와 영상 및 음성 통신이 가능하다.
로봇에서 영상/음성 통신 이외에 영상/음성 등에 대응하는 모션을 제공한다면 생동감, 친근감 및 재미 등 사용자 간의 상호작용 경험을 향상시킬 수 있다. 이 경우, 로봇의 모션 구동에 맞춰, 영상/음성 등 사용자 입력에 기초한 모션 입력을 처리할 수 있어야 한다.
본 개시의 다양한 실시예들은 로봇이 사용자 입력에 대응하는 모션을 구동 시에, 로봇의 모션 상태가 액티브(ACTIVE) 상태인지 아이들(IDLE) 상태인지를 고려하여 모션 입력 처리를 조절하는 로봇 및 그 구동 방법을 제공하는데 있다.
본 개시의 일 실시예에 따르면 로봇은, 상기 로봇이 소정의 모션을 수행하도록 구동하는 적어도 하나의 모터; 모션 맵 데이터베이스 및 하나 이상의 명령어들(instructions)을 포함하는 프로그램을 저장하는 메모리; 및 상기 적어도 하나의 모터 및 상기 메모리와 전기적으로 연결되고, 상기 메모리에 저장된 프로그램의 하나 이상의 명령어들을 실행하는 적어도 하나의 프로세서를 포함하고; 상기 프로세서는 사용자 입력에 기초하여 모션 식별자를 획득하고, 상기 로봇이 모션을 수행 중인지 여부를 나타내는 모션 상태를 식별하고, 상기 모션 상태가 액티브(ACTIVE)인 경우, 상기 획득한 모션 식별자를 상기 메모리에 저장하고, 상기 모션 상태가 아이들(IDLE)인 경우, 저장된 적어도 하나의 모션 식별자 중 소정의 기준에 기초하여 모션 식별자를 결정하고, 상기 모션 맵 데이터베이스에 기초하여 상기 결정된 모션 식별자에 대응되는 모션을 상기 적어도 하나의 모터가 구동하도록 제어한다.
또한, 본 개시의 일 실시예에 따르면 전자 장치는, 사용자 입력을 획득하는 인터페이스; 액티브(ACTIVE) 또는 아이들(IDLE) 중 하나에 해당하는 모션 상태를 로봇으로부터 수신하는 통신부; 하나 이상의 명령어들(instructions)을 포함하는 프로그램을 저장하는 메모리; 및 상기 인터페이스, 상기 통신부 및 상기 메모리와 전기적으로 연결되고, 상기 메모리에 저장된 프로그램의 하나 이상의 명령어들을 실행하는 적어도 하나의 프로세서를 포함하고; 상기 프로세서는 상기 사용자 입력에 기초하여 모션 식별자를 획득하고, 상기 모션 상태가 액티브인 경우 상기 획득된 모션 식별자를 메모리에 저장하고, 상기 모션 상태가 아이들인 경우, 저장된 적어도 하나의 모션 식별자 중 소정의 기준에 기초하여 모션 식별자를 결정하고, 상기 통신부를 이용하여 상기 결정된 모션 식별자를 상기 로봇에게 송신하도록 제어한다.
또한, 본 개시의 일 실시예에 따르면 로봇에서의 구동 방법은, 사용자 입력에 기초하여 모션 식별자를 획득하는 동작; 상기 로봇이 모션을 수행 중인지 여부를 나타내는 모션 상태를 식별하는 동작; 상기 모션 상태가 액티브(ACTIVE)인 경우, 상기 획득한 모션 식별자를 저장하는 동작; 상기 모션 상태가 아이들(IDLE)인 경우, 저장된 적어도 하나의 모션 식별자 중 소정의 기준에 기초하여 모션 식별자를 결정하고, 모션 맵 데이터베이스에 기초하여 상기 결정된 모션 식별자에 대응되는 모션을 구동하는 동작을 포함한다.
또한, 본 개시의 일 실시예에 따르면 전자 장치에서의 동작 방법은, 액티브(ACTIVE) 또는 아이들(IDLE) 중 하나에 해당하는 모션 상태를 로봇으로부터 수신하는 동작; 사용자 입력에 기초하여 모션 식별자를 획득하는 동작; 상기 모션 상태가 액티브인 경우, 상기 획득된 모션 식별자를 저장하는 동작; 및 상기 모션 상태가 아이들인 경우, 저장된 적어도 하나의 모션 식별자 중 소정의 기준에 기초하여 모션 식별자를 결정하고, 상기 결정된 모션 식별자를 상기 로봇에게 송신하는 동작을 포함한다.
본 개시의 다양한 실시예들에 따르면, 로봇에서 음성, 텍스트, 이미지, 이모티콘 및 제스처를 포함하는 사용자 입력에 대응하는 모션을 제공함으로써, 생동감, 친근감, 집중도, 흥미도 및 학습효과 등 사용자 경험을 향상시킬 수 있다. 또한, 로봇에서 상기 사용자 입력에 대응하는 모션을 제공함으로써, 로봇을 통해 사용자 간의 의사 소통을 더욱 촉진시킬 수 있다.
또한, 본 개시의 다양한 실시예들에 따르면, 로봇이 사용자 입력에 기초하여 획득된 모션 식별자에 대응하는 모션을 구동 시에, 로봇이 액티브(ACTIVE) 모션 상태인 경우 획득된 모션 식별자를 저장하고, 로봇이 아이들(IDLE) 모션 상태인 경우 저장된 적어도 하나의 모션 식별자 중 소정의 기준에 기초하여 모션 식별자를 결정하고 모션 수행하도록 함으로써, 로봇의 모션 상태를 고려하여 모션 입력 처리를 조절할 수 있다. 이를 통해, 로봇이 모션을 구동하는 속도에 비해 모션 입력 속도가 빠를 경우에도, 모션 구동이 충돌됨으로써 발생하는 오류를 사전에 회피할 수 있으며, 인간이 모션을 수행하는 것과 같은 자연스러운 사용자 경험을 향상시킬 수 있다.
본 개시의 예시적 실시예들에서 얻을 수 있는 효과는 이상에서 언급한 효과들로 제한되지 아니하며, 언급되지 아니한 다른 효과들은 이하의 기재로부터 본 개시의 예시적 실시예들이 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 도출되고 이해될 수 있다. 즉, 본 개시의 예시적 실시예들을 실시함에 따른 의도하지 아니한 효과들 역시 본 개시의 예시적 실시예들로부터 당해 기술분야의 통상의 지식을 가진 자에 의해 도출될 수 있다.
도 1은 본 개시의 다양한 실시예에 따른 로봇, 전자 장치 및 이들을 서로 연결하는 네트워크를 포함하는 로봇 구동 환경을 도시한다.
도 2는 본 개시의 일 실시예에 따른 로봇의 외관을 개략적으로 도시한다.
도 3은 본 개시의 일 실시예에 따른 사용자 입력, 모션 식별자 결정, 모션 매칭 및 로봇 동작을 포함하는 로봇 구동 방법을 개념적으로 도시한다.
도 4는 본 개시의 일 실시예에 따른 모션 맵 데이터베이스에서 모션 식별자에 대응되는 모션 레코드를 획득하는 개념도이다.
도 5는 본 개시의 일 실시예에 따른 모션 맵 데이터베이스를 설정하는 예시도이다.
도 6은 본 개시의 일 실시예에 따른 전자 장치의 개략적인 블록도이다.
도 7은 본 개시의 일 실시예에 따른 로봇의 개략적인 블록도이다.
도 8은 본 개시의 일 실시예에 따른 로봇에서의 구동 방법의 개략적인 흐름도이다.
도 9는 본 개시의 일 실시예에 따른 전자 장치에서의 동작 방법의 개략적인 흐름도이다.
본 개시의 실시예들에서 사용되는 용어는 본 개시의 기능을 고려하면서 가능한 현재 널리 사용되는 일반적인 용어들을 선택하였으나, 이는 당 분야에 종사하는 기술자의 의도, 판례 및 새로운 기술의 출현 등에 따라 달라질 수 있다. 또한, 특정한 경우는 출원인이 임의로 선정한 용어도 있으며, 이 경우 해당되는 실시예의 설명부분에서 상세히 그 의미를 기재할 것이다. 따라서 본 개시에서 사용되는 용어는 단순한 용어의 명칭이 아닌, 그 용어가 가지는 의미와 본 개시의 전반에 걸친 내용을 토대로 정의되어야 한다.
명세서 전체에서 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있음을 의미한다. 또한, 명세서에 기재된 "...부", "...모듈" 등의 용어는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미하며, 이는 하드웨어 또는 소프트웨어로 구현되거나 하드웨어와 소프트웨어의 결합으로 구현될 수 있다.
이하에서는 도면을 참조하여 본 개시의 실시예에 대하여 본 개시가 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 그러나 본 개시는 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다. 도면에서 동일한 참조부호는 동일한 구성요소를 지칭하며, 도면 상에서 각 구성 요소의 크기는 설명의 명료성을 위하여 과장되어 있을 수 있다.
도 1은 본 개시의 다양한 실시예에 따른 로봇, 전자 장치 및 이들을 서로 연결하는 네트워크를 포함하는 로봇 구동 환경을 도시한다.
다양한 실시예에 따르면, 로봇 구동 환경은 네트워크로 연결된 로봇(110) 및 전자 장치(120)를 포함할 수 있다.
전자 장치(120) 또는 로봇(110)은 사용자 입력을 획득할 수 있다. 상기 사용자 입력은 음성, 텍스트, 이미지, 이모티콘 및 제스처를 포함할 수 있다. 전자 장치(120) 또는 로봇(110)은 상기 사용자 입력에 기초하여 텍스트를 획득하고 상기 획득된 텍스트에 자연어를 처리하여 모션으로 수행되는 모션 식별자를 획득할 수 있다.
도시된 예에서, 로봇(110) 및 전자 장치(120)는 각각 애플리케이션을 통해 서로 음성 및/또는 영상 통신을 할 수 있다. 로봇(110)은 전자 장치(120)로부터 제공된 음성 및/또는 영상을 출력할 수 있다. 또한, 전자 장치(120)는 음성 및/또는 영상에 기초하여 모션 식별자를 획득할 수 있다. 전자 장치(120)에서 사용자 입력에 기초하여 모션 식별자를 획득한 경우, 로봇(110)은 전자 장치(120)로부터 상기 모션 식별자를 제공받을 수 있다. 로봇(110)은 상기 모션 식별자에 대응되는 모션을 구동할 수 있다.
다양한 실시예에 따르면, 로봇(110) 또는 전자 장치(120)는 로봇의 모션 상태를 고려하여 사용자 입력에 기초한 모션 입력 처리를 조절할 수 있다.
사용자 입력, 모션 식별자 결정, 모션 매칭 및 로봇 동작을 포함하는 로봇(110)의 구동 방법은 이하 도 3을 참조하여 개념적으로 후술한다.
다양한 실시예에 따르면, 전자 장치(120)는 컴퓨팅 및 통신 기능 등을 수행할 수 있는 단말기를 포함할 수 있다. 전자 장치(120)는 데스크 탑 컴퓨터, 스마트폰, 노트북, 태블릿 PC, 스마트 TV, 휴대폰, PDA(Personal Digital Assistant), 랩톱, 미디어 플레이어, 마이크로 서버, GPS(Global Positioning System) 장치, 전자책 단말기, 디지털방송용 단말기, 네비게이션, 키오스크, MP3 플레이어, 디지털 카메라, 가전기기 및 기타 모바일 또는 비모바일 컴퓨팅 장치일 수 있으나, 이에 제한되지 않는다. 또한, 전자 장치(120)는 컴퓨팅 및 통신 기능 등을 수행할 수 있는 시계, 안경, 헤어 밴드 및 반지 등의 웨어러블 단말기일 수 있다. 전자 장치(120)는 상술한 내용에 제한없이 다양한 형태의 단말기가 될 수 있다.
다양한 실시예에 따르면, 로봇(110) 및 전자 장치(120)를 연결하는 네트워크는 블루투스, WiFi(Wireless Fidelity), 지그비(Zigbee), 또는 IrDA(Infrared Data Association)와 같은 근거리 통신 네트워크와 셀룰러 네트워크, 차세대 통신 네트워크, 인터넷, 또는 컴퓨터 네트워크(예: LAN 또는 WAN)와 같은 원거리 통신 네트워크를 포함할 수 있다. 상기 셀룰러 네트워크는 GSM(Global System for Mobile Communications), EDGE(Enhanced Data GSM Environment), CDMA(Code Division Multiple Access), TDMA(Time Division Multiplexing Access), 5G, LTE(Long Term Evolution) 및 LTE-A(LTE Advance)를 포함할 수 있다. 상기 네트워크는 허브, 브리지, 라우터, 스위치 및 게이트웨이와 같은 네트워크 요소들의 연결을 포함할 수 있다. 상기 네트워크는 인터넷과 같은 공용 네트워크 및 안전한 기업 사설 네트워크와 같은 사설 네트워크를 비롯한 하나 이상의 연결된 네트워크들, 예컨대 다중 네트워크 환경을 포함할 수 있다. 상기 네트워크에의 액세스는 하나 이상의 유선 또는 무선 액세스 네트워크들을 통해 제공될 수 있다. 더 나아가 상기 네트워크는 사물 등 분산된 구성 요소들 간에 정보를 주고받아 처리하는 IoT(Internet of Things, 사물인터넷) 망을 지원할 수 있다.
도 2는 본 개시의 일 실시예에 따른 로봇(예: 도 1의 로봇(110))의 외관을 개략적으로 도시한다.
도 2를 참조하면, 로봇(200)은 카메라(210), 디스플레이(220), 목(230), 팔(240) 및 몸통(250)을 포함할 수 있다.
카메라(210)는 로봇(200)의 주변 영상을 촬영할 수 있다. 예를 들어, 카메라(210)는 로봇(200) 주변의 사람(예: 아이)을 촬영할 수 있다. 이 경우, 전자 장치(120)는 로봇(200)을 통해 로봇(200) 주변의 사람을 모니터링할 수 있다. 카메라(210)는 적어도 하나일 수 있고 디스플레이(220)에 위치할 수 있으나, 카메라(210)의 개수 및 위치는 이에 제한되지 않는다.
디스플레이(220)는 로봇(200)이 다른 장치와 통신하지 않는 경우, 소정의 표정(예: 인형 얼굴)을 디스플레이할 수 있다. 로봇(200)이 전자 장치(120)와 음성 통신하는 경우, 디스플레이(220)는 소정의 화면을 출력할 수 있다. 상기 소정의 화면은 전자 장치(120)의 사용자 이미지 또는 사용자 영상을 포함할 수 있으나, 이에 제한되지 않는다. 로봇(200)이 전자 장치(120)와 영상 통신하는 경우, 디스플레이(220)는 전자 장치(120)로부터 수신한 영상을 출력할 수 있다.
로봇(200)은 목(230), 팔(240) 및 몸통(250)에 있어서 적어도 하나의 연결 부위(즉, 관절)를 포함할 수 있으며, 각각의 연결 부위는 적어도 하나의 자유도(DOF: Degree Of Freedom)를 가질 수 있다. 상기 자유도는 기구학(Kinematics) 또는 역기구학(Inverse Kinematics)에서의 자유도를 의미할 수 있다. 상기 자유도는 각각의 관절의 위치와 자세를 결정하기 위해 필요한 변수들의 최소 개수를 의미할 수 있다. 예를 들어, x축, y축, z축으로 이루어진 3차원 공간 상의 각각의 관절은 공간적인 위치를 결정하기 위한 3 자유도(각 축에서의 위치)와, 공간적인 자세를 결정하기 위한 3 자유도(각 축에 대한 회전 각도) 중에서 적어도 하나의 자유도를 갖는다. 예를 들어, 관절이 각각의 축을 따라 이동 가능하고, 각각의 축을 기준으로 회전 가능한 경우, 상기 관절은 6 자유도를 갖는 것으로 이해될 수 있다. 각각의 연결 부위에서 상기 적어도 하나의 자유도를 구현하기 위해, 각각의 연결 부위는 적어도 하나의 모터를 포함할 수 있다. 예를 들어, 각각의 자유도는 각각의 모터에 의해 구현될 수 있거나, 소정 개수의 자유도가 1개의 모터에 의해 구현될 수도 있다.
예를 들어, 로봇(200)의 목(230) 연결 부위가 2개 축(예: 앞뒤 방향과 양옆 방향)으로 회전할 수 있는 경우, 목(230) 연결 부위는 2 자유도를 가질 수 있다. 또한, 팔(240)은 왼팔 및 오른팔에 해당하는 2개일 수 있으며, 각각의 팔(240)은 어깨 연결 부위 및 팔꿈치 연결 부위를 포함할 수 있다. 상기 어깨 연결 부위 및 상기 팔꿈치 연결 부위 각각이 2개 축으로 회전할 수 있는 경우, 상기 어깨 연결 부위 및 상기 팔꿈치 연결 부위 각각은 2 자유도를 가질 수 있다. 또한, 몸통(250) 연결 부위가 하나의 축으로 회전할 수 있는 경우, 몸통(250) 연결 부위는 1 자유도를 가질 수 있다.
도 3은 본 개시의 일 실시예에 따른 사용자 입력, 모션 식별자 결정, 모션 매칭 및 로봇 동작을 포함하는 로봇 구동 방법을 개념적으로 도시한다.
도 3을 참조하면, 로봇 구동 방법은 전자 장치(120) 또는 로봇(110)에서, 사용자 입력을 획득하고, 상기 사용자 입력에 기초하여 모션 식별자를 결정할 수 있다.
상기 사용자 입력은 음성, 텍스트, 이미지, 이모티콘 및 제스처를 포함할 수 있다. 전자 장치(120) 또는 로봇(110)은 상기 사용자 입력에 기초하여 음성 인식, 이미지 인식, 이모티콘 인식 또는 제스처 인식 중 적어도 하나를 통해 적어도 하나의 텍스트를 획득할 수 있다. 예를 들어, 상기 사용자 입력이 음성일 경우, 전자 장치(120) 또는 로봇(110)은 사용자 발화에 의해 외부로부터 인가되는 신호를 전기적인 오디오 신호로 변환하고, 상기 변환된 오디오 신호로부터 순차적으로 인식되는 적어도 하나의 텍스트를 획득할 수 있다. 전자 장치(120) 또는 로봇(110)은 자연어 처리를 통해 상기 획득된 적어도 하나의 텍스트로부터, 각각의 모션에 대응되는 적어도 하나의 문자열(또는 키워드)을 획득할 수 있다. 상기 자연어 처리는 기계인 전자 장치(120) 또는 로봇(110)이 인간의 언어를 이해할 수 있도록 하는 기술로서, 문법에 따라 자연어를 분할하는 동작을 포함할 수 있다. 전자 장치(120) 또는 로봇(110)은 획득된 각각의 문자열에 기초하여 각각의 모션 식별자를 결정할 수 있다. 상기 모션 식별자는 로봇(110)이 구동할 수 있는 각각의 모션을 식별할 수 있다. 상기 모션 식별자는 상기 획득된 문자열이거나, 상기 획득된 문자열에 대응되는 숫자코드일 수 있으나, 이에 제한되지 않고 다양한 형식일 수 있다.
상기 로봇 구동 방법은 로봇(110)에서 상기 결정된 모션 식별자에 기초하여, 상기 결정된 모션 식별자에 대응되는 모션을 구동할 수 있는 적어도 하나의 모터 값 세트를 모션 맵 데이터베이스에서 획득하고, 상기 획득된 적어도 하나의 모터 값 세트를 이용하여 모션을 구동할 수 있다.
상기 결정된 모션 식별자에 기초하여, 모션을 구동할 수 있는 적어도 하나의 모터 값 세트(또는 모션 레코드)를 모션 맵 데이터베이스에서 획득하는 동작은 이하 도 4를 통해 후술한다. 또한, 상기 모션 맵 데이터베이스를 설정하는 동작은 이하 도 5를 통해 후술한다.
도 4는 본 개시의 일 실시예에 따른 모션 맵 데이터베이스에서 모션 식별자에 대응되는 모션 레코드를 획득하는 개념도이다.
도 4를 참조하면, 로봇(110)은 전자 장치(120) 또는 로봇(110)에서의 사용자 입력에 기초하여, 획득된 모션 식별자에 대응하는 모션을 구동하기 위해서, 상기 모션 식별자를 이용하여 모션 맵 데이터베이스에서 모션 레코드를 획득할 수 있다.
도시된 예에서, 전자 장치(120) 또는 로봇(110)은 사용자로부터 음성 입력을 획득하고, 상기 획득된 음성 입력에 기초하여 적어도 하나의 텍스트를 획득하고, 상기 획득된 적어도 하나의 텍스트에 자연어를 처리하여, 각각의 모션에 대응되는 적어도 하나의 문자열(또는 키워드)을 획득할 수 있다. 전자 장치(120) 또는 로봇(110)은 획득된 각각의 문자열에 기초하여 각각의 모션 식별자를 결정할 수 있다. 상기 모션 식별자는 로봇(110)이 구동할 수 있는 각각의 모션을 식별할 수 있다. 상기 모션 식별자는 상기 획득된 문자열이거나, 상기 획득된 문자열에 대응되는 숫자코드일 수 있으나, 이에 제한되지 않고 다양한 형식일 수 있다.
하기 <표 1>은 도시된 예에서, 문자열 또는 상기 문자열에 대응되는 숫자코드 형식의 모션 식별자들을 나타낸다.
문자열 숫자코드
안녕 (410) 0
그랬구나 (420) 1
하하하 (430) 2
사랑해 (440) 3
전자 장치(120)에서 상기 사용자 입력에 기초한 모션 식별자를 획득한 경우, 로봇(110)은 전자 장치(120)로부터 상기 모션 식별자를 제공받을 수 있다. 로봇(110)은 모션 맵 데이터베이스를 저장할 수 있고, 상기 모션 맵 데이터베이스는 로봇(110) 또는 외부 장치에 의해 설정되어 로봇(110)에게 제공될 수 있다. 상기 모션 맵 데이터베이스를 설정하는 동작은 이하 도 5를 참조하여 후술한다.
로봇(110)은 상기 모션 식별자를 이용하여 상기 모션 식별자에 대응되는 모션 레코드를 상기 모션 맵 데이터베이스에서 획득할 수 있다. 도시된 예에서는, 상기 <표 1>에 예시적으로 개시된 모션 식별자들(410 내지 440)에 대응되는, 상기 모션 맵 데이터베이스 내의 모션 레코드들(450 내지 480)을 개념적으로 나타낸다. 적어도 하나의 모터에 의해 구동 가능한 각각의 모션에 대응되는 각각의 모션 레코드는 모션 식별자 및 모션 시간프레임 각각에 대한 적어도 하나의 모터 값 세트를 포함할 수 있다. 각각의 모션 레코드는 모션 시간프레임 각각에 대한 모션속도를 나타내는 정보를 더 포함할 수 있다. 예를 들어, 모션이 모션 시간프레임 각각에서 가속, 등속, 또는 감속 중 하나에 해당하는 모션속도로 구동되는 경우, 모션 레코드는 모션 시간프레임 각각에 대한 가속, 등속, 또는 감속 중 하나에 해당하는 모션속도를 나타내는 정보를 더 포함할 수 있다.
하기 <표 2>는 상기 <표 1>의 예시에서 문자열 '안녕' 또는 숫자코드 '0'을 갖는 모션 식별자에 대응되는 모션 레코드를 예시적으로 개시한다. <표 2>의 예시에서는, 왼팔, 오른팔, 목, 몸통의 각각의 연결 부위(관절)가 1 자유도를 가지고, 각각의 연결 부위의 1 자유도는 1개의 모터에 의해 구현되는 경우에 해당하는 모션 레코드를 예시적으로 개시한다. 예를 들면, '안녕'에 대응되는 모션은 왼팔, 오른팔, 목, 몸통을 구동하는 모터가 각각 1개 축을 기준으로, 0초부터 1초까지 각각 0도, 0도, 0도, 0도로 왼팔, 오른팔, 목, 몸통을 구동시키고, 1초부터 2초까지 각각 0도, 60도, 0도, 0도로 왼팔, 오른팔, 목, 몸통을 구동시키고, 2초부터 2.5초까지 각각 0도, 0도, 0도, 0도로 왼팔, 오른팔, 목, 몸통을 구동시킬 수 있다.
모션 식별자 모션 시간프레임 각각에 대한
적어도 하나의 모터 값 세트
{시간, 왼팔, 오른팔, 목, 몸통}
0 (또는 '안녕') {1초, 0도, 0도, 0도, 0도},{2초, 0도, 60도, 0도, 0도},
{2.5초, 0도, 0도, 0도, 0도}
도 5는 본 개시의 일 실시예에 따른 모션 맵 데이터베이스를 설정하는 예시도이다.
도 5를 참조하면, 전자 장치(120) 또는 로봇(110)은 애플리케이션을 통해 모션 맵 데이터베이스를 설정할 수 있다. 전자 장치(120) 또는 로봇(110)은 인터페이스에 의해, 로봇의 모션을 설정하는 사용자 입력 및 상기 설정된 모션에 대응되는 문자열을 획득할 수 있다. 도시된 예에서, 전자 장치(120) 또는 로봇(110)은 로봇 이미지를 출력할 수 있고, 상기 로봇 이미지를 드래그 또는 클릭하는 등의 사용자 입력에 기초한, 로봇 이미지 변환 및 변환된 이미지 출력 등을 통해 로봇의 모션을 설정할 수 있고, 설정된 로봇의 모션(예: 안녕)에 대응하는 문자열(예: '안녕')을 사용자로부터 입력받을 수 있다.
전자 장치(120) 또는 로봇(110)은 상기 문자열에 기초하여 모션 식별자를 획득할 수 있다. 상기 모션 식별자는 로봇(110)이 구동할 수 있는 각각의 모션을 식별할 수 있다. 상기 모션 식별자는 상기 획득된 문자열이거나, 상기 획득된 문자열에 대응되는 숫자코드일 수 있으나, 이에 제한되지 않고 다양한 형식일 수 있다.
전자 장치(120) 또는 로봇(110)은 상기 설정된 모션에 대응하는, 모션 시간프레임 각각에 대한 적어도 하나의 모터 값 세트를 획득할 수 있다. 전자 장치(120) 또는 로봇(110)은 자코비안(Jacobian) 역행렬을 이용하는 역기구학(Inverse Kinematics) 모듈을 포함할 수 있으며, 상기 역기구학 모듈을 이용하여, 상기 설정된 모션에 대응하는 직교좌표계(Cartesian Coordinate) 정보를 로봇(110)의 관절좌표계(Joint Coordinate) 정보로 매핑할 수 있다. 전자 장치(120) 또는 로봇(110)은 상기 설정된 모션에 대응하는 직교좌표계(Cartesian Coordinate) 정보로부터, 상기 설정된 모션에 대응하는 모션 시간프레임 각각에 대한 적어도 하나의 모터 값 세트를 획득할 수 있다.
전자 장치(120) 또는 로봇(110)은 상기 모션 식별자 및 상기 모션 시간프레임 각각에 대한 적어도 하나의 모터 값 세트를 포함하는 레코드를 상기 모션 맵 데이터베이스에 저장할 수 있다. 로봇(110)이외의 다른 장치(예: 전자 장치(120))가 상기 모션 맵 데이터베이스를 설정하는 경우, 로봇(110)은 상기 장치로부터 상기 모션 맵 데이터베이스를 제공받을 수 있다.
도 6은 본 개시의 일 실시예에 따른 전자 장치의 개략적인 블록도이다.
도 6을 참조하면, 전자 장치(600)(예: 도 1의 전자장치(120))는 프로세서(610), 메모리(620), 통신부(640), 및/또는 인터페이스(650)를 포함할 수 있다. 인터페이스(650)에는 마이크(MIC)(681), 스피커(SPK)(682), 카메라(CAM)(683) 또는 디스플레이(DPY)(684) 중 적어도 하나가 연결될 수 있다. 메모리(620)는 하나 이상의 명령어들(instructions)을 포함하는 프로그램(630)을 포함할 수 있다. 프로그램(630)은 운영체제(operating system, OS) 프로그램 및 응용 프로그램을 포함할 수 있다. 전자 장치(600)는 도시된 구성요소 외에 추가적인 구성요소를 포함하거나, 도시된 구성요소 중 적어도 하나를 생략할 수 있다.
일 실시예에 따르면, 통신부(640)는 다른 시스템들 또는 장치와의 통신을 위한 인터페이스를 제공할 수 있다. 통신부(640)는 외부 망(예: 네트워크)을 통한 통신을 가능하게 하는 네트워크 인터페이스 카드 또는 무선 송/수신부를 포함할 수 있다. 통신부(640)는 무선 망에 접속하기 위한 신호 처리를 수행할 수 있다. 상기 무선 망은, 예를 들어, 무선랜, 또는 셀룰러 망(예: LTE(Long Term Evolution)) 중 적어도 하나를 포함할 수 있다.
일 실시예에 따르면, 인터페이스(650)는 외부(예: 사용자)로부터의 입력을 검출하고, 상기 검출한 입력에 상응한 데이터를 프로세서(610)로 제공할 수 있다. 인터페이스(650)는 외부로부터의 입력을 검출하기 위한 적어도 하나의 하드웨어 모듈을 포함할 수 있다. 상기 적어도 하나의 하드웨어 모듈은, 예를 들어, 센서, 키보드, 키 패드, 터치 패드, 또는 터치 패널 중 적어도 하나를 포함할 수 있다. 인터페이스(650)가 터치 패널로 구현되는 경우, 인터페이스(650)는 디스플레이(684)와 결합됨으로써 터치 스크린이 제공될 수 있다. 이 경우, 인터페이스(650)는 사용자의 터치 입력(예: 탭(tap), 프레스(press), 핀치(pinch), 스트레치(stretch), 슬라이드(slide), 스와이프(swipe), 또는 로테이트(rotate) 등)에 대한 데이터를 프로세서(610)로 제공할 수 있다.
일 실시예에 따르면, 디스플레이(684)는 숫자, 문자, 이미지, 및/또는 그래픽의 형태로 정보를 출력하기 위한 기능들을 수행할 수 있다. 디스플레이(684)는 출력을 위한 적어도 하나의 하드웨어 모듈을 포함할 수 있다. 상기 적어도 하나의 하드웨어 모듈은, 예를 들어, LCD(Liquid Crystal Display), LED(Light Emitting Diode), LPD(Light emitting Polymer Display), OLED(Organic Light Emitting Diode), AMOLED(Active Matrix Organic Light Emitting Diode), 또는 FLED(Flexible LED) 중 적어도 하나를 포함할 수 있다. 디스플레이(684)는 프로세서(610)로부터 수신되는 데이터에 대응하는 화면을 표시할 수 있다. 디스플레이(684)는 '출력부', '표시부' 또는 이와 동등한 기술적 의미를 가지는 다른 용어로 지칭될 수 있다.
일 실시예에 따르면, 인터페이스(650)를 통해 프로세서(610)에 전기적으로 결합될 수 있는 마이크(681)는 사용자 발화로 인하여 외부로부터 입력되는 가청 신호를 전기적인 오디오 신호로 변환할 수 있다. 마이크(681)에 의해 변환된 오디오 신호는 인터페이스(650)를 통해 프로세서(610)로 제공될 수 있다. 마이크(681) 외에 인터페이스(650)를 통해 프로세서(610)에 전기적으로 결합될 수 있는 구성 요소는 스피커(682) 또는 카메라(683) 중 적어도 하나일 수 있다. 스피커(682)는 인터페이스(650)를 통해 프로세서(610)로부터 제공되는 전기적인 오디오 신호를 사람이 들을 수 있는 가청 신호로 변환하여 출력할 수 있다. 카메라(683)는 프로세서(610)로부터의 제어에 응답하여 피사체를 촬영하고, 상기 촬영에 따른 이미지를 전기적인 신호로 변환하여 인터페이스(650)를 통해 프로세서(610)로 제공할 수 있다.
일 실시예에 따르면, 메모리(620)는 하나 이상의 명령어들(instructions)을 포함하는 프로그램(630) 또는 설정 정보와 같은 데이터를 저장할 수 있다. 프로그램(630)은 전자 장치(600)의 동작을 위한 기본 프로그램에 해당하는 운영체제 프로그램 및 다양한 기능을 지원하는 응용 프로그램을 포함할 수 있다. 메모리(620)는 휘발성 메모리, 비휘발성 메모리 또는 휘발성 메모리와 비휘발성 메모리의 조합으로 구성될 수 있다. 메모리(620)는 프로세서(610)의 요청에 따라 저장된 데이터를 제공할 수 있다.
일 실시예에 따르면, 프로세서(610)는 메모리(620)에 저장된 프로그램(630)을 이용하여 전자 장치(600)의 적어도 하나의 다른 구성요소들의 제어 및/또는 통신에 관한 연산이나 데이터 처리를 실행할 수 있다. 프로세서(610)는 중앙처리장치(CPU), 그래픽처리장치(GPU), MCU(Micro Controller Unit), 센서 허브, 보조 프로세서(Supplementary Processor), 통신 프로세서(Communication Processor), 애플리케이션 프로세서(Application Processor), ASIC(Application Specific Integrated Circuit), 또는 FPGA(Field Programmable Gate Arrays) 중 적어도 하나를 포함할 수 있으며, 복수의 코어를 가질 수 있다.
일 실시예에 따르면, 프로세서(610)는 인터페이스(650)를 통해 획득되는 데이터를 처리하거나, 인터페이스(650)를 통해 다양한 입력 및/또는 출력 수단의 동작 상태를 제어할 수 있다. 상기 다양한 입력 및/또는 출력 수단은, 예를 들어, 마이크(MIC)(681), 스피커(SPK)(682), 카메라(CAM)(683) 또는 디스플레이(DPY)(684) 중 적어도 하나가 될 수 있다. 프로세서(610)는 통신부(640)를 통해 신호를 송신 및/또는 수신할 수 있다.
일 실시예에 따르면, 인터페이스(650)는 사용자 입력을 획득할 수 있다. 상기 사용자 입력은 음성, 텍스트, 이미지, 이모티콘 및 제스처를 포함할 수 있다.
일 실시예에 따르면, 통신부(640)는 액티브(ACTIVE) 또는 아이들(IDLE) 중 하나에 해당하는 모션 상태를 로봇(110)으로부터 수신할 수 있다. 상기 모션 상태 수신은 로봇(110)에서 모션 상태가 변경된 경우 로봇(110)으로부터 수신하거나, 하기 모션 식별자 송신에 대한 응답으로 로봇(110)으로부터 수신하거나, 전자 장치(600)의 모션 상태 요청에 대한 응답으로 로봇(110)으로부터 수신할 수 있다. 상기 모션 상태 중 액티브 모션 상태는 로봇(110)의 적어도 하나의 모터가 구동 중인 상태를 의미할 수 있고, 아이들 모션 상태는 로봇(110)의 모든 모터가 구동 중이지 않은 상태를 의미할 수 있다.
일 실시예에 따르면, 프로세서(610)는 상기 사용자 입력에 기초하여 모션 식별자를 획득할 수 있다. 프로세서(610)는 상기 사용자 입력에 기초하여 텍스트를 획득하고 상기 획득된 텍스트에 자연어를 처리하여 각각의 모션에 대응되는 적어도 하나의 문자열(또는 키워드)을 획득할 수 있다. 프로세서(610)는 획득된 각각의 문자열에 기초하여 각각의 모션 식별자를 결정할 수 있다. 상기 모션 식별자는 로봇(110)이 구동할 수 있는 각각의 모션을 식별할 수 있다. 상기 모션 식별자는 상기 획득된 문자열이거나, 상기 획득된 문자열에 대응되는 숫자코드일 수 있으나, 이에 제한되지 않고 다양한 형식일 수 있다.
프로세서(610)는 로봇(110)으로부터 수신한 상기 모션 상태가 액티브인 경우, 상기 획득된 모션 식별자를 메모리(620)에 저장할 수 있다.
일 실시예에 따르면, 프로세서(610)는 사전에 설정된 저장옵션에 기초하여, 모션 식별자를 메모리(620)에 저장하지 않을 수 있다. 상기 사전에 설정된 저장옵션은 'Enable' 또는 'Disable' 중 하나를 나타내는 값으로 설정될 수 있다. 상기 사전에 설정된 저장옵션이 'Disable'을 나타내는 값이고 로봇(110)으로부터 수신한 모션 상태가 액티브인 경우, 프로세서(610)는 상기 획득된 모션 식별자를 메모리(620)에 저장하지 않고 스킵 처리함으써, 로봇의 모션 상태를 고려하여 모션 입력 처리를 조절할 수 있다.
프로세서(610)는 상기 모션 상태가 아이들인 경우, 저장된 적어도 하나의 모션 식별자 중 소정의 기준에 기초하여 모션 식별자를 결정할 수 있다. 프로세서(610)는 통신부(640)를 이용하여 상기 결정된 모션 식별자를 상기 로봇에게 송신하도록 제어할 수 있다. 통신부(640)는 상기 결정된 모션 식별자를 상기 로봇에게 송신할 수 있다.
상기 소정의 기준은 외부 입력에 기초하여 설정된 모션 식별자, 사용자 입력에 기초하여 가장 많이 획득된 모션 식별자, 또는 가장 최근에 저장된 모션 식별자 중 하나에 해당할 수 있다. 예를 들어, 상기 외부 입력에 기초하여 설정된 소정의 모션 식별자는 다양한 형식의 외부 정보에 기초하여 사용도가 높은 것으로 판단된 모션 식별자일 수 있다. 또한, 상기 외부 입력에 기초하여 설정된 소정의 모션 식별자는 널(NULL) 값일 수도 있다. 이 경우, 로봇(110)으로부터 수신한 모션 상태가 액티브인 경우 획득된 모션 식별자는 전자 장치(600)에서 스킵 처리됨으로써, 전자 장치(600)에서 로봇의 모션 상태를 고려하여 모션 입력 처리를 조절할 수 있다.
따라서, 프로세서(610)는 사용자 입력에 기초하여 획득된 모션 식별자에 대하여, 로봇이 액티브(ACTIVE) 모션 상태인 경우 획득된 모션 식별자를 메모리(620)에 저장하고, 로봇이 아이들(IDLE) 모션 상태인 경우 저장된 적어도 하나의 모션 식별자 중 소정의 기준에 기초하여 모션 식별자를 결정 및 상기 결정된 모션 식별자를 로봇(120)에게 송신하도록 통신부(640)를 제어함으로써, 로봇의 모션 상태를 고려하여 모션 입력 처리를 조절할 수 있다.
도 7은 본 개시의 일 실시예에 따른 로봇의 개략적인 블록도이다.
도 7을 참조하면, 로봇(700)(예: 도 1의 로봇(110))은 프로세서(710), 메모리(720), 모터(750), 통신부(760), 및/또는 인터페이스(770)를 포함할 수 있다. 인터페이스(770)에는 마이크(MIC)(781), 스피커(SPK)(782), 카메라(CAM)(783) 또는 디스플레이(DPY)(784) 중 적어도 하나가 연결될 수 있다. 메모리(720)는 하나 이상의 명령어들(instructions)을 포함하는 프로그램(730) 및 모션 맵 데이터베이스(740)를 저장할 수 있다. 프로그램(730)은 운영체제(operating system, OS) 프로그램 및 응용 프로그램을 포함할 수 있다. 로봇(700)은 도시된 구성요소 외에 추가적인 구성요소를 포함하거나, 도시된 구성요소 중 적어도 하나를 생략할 수 있다.
일 실시예에 따르면, 통신부(760)는 다른 시스템들 또는 장치와의 통신을 위한 인터페이스를 제공할 수 있다. 통신부(760)는 외부 망(예: 네트워크)을 통한 통신을 가능하게 하는 네트워크 인터페이스 카드 또는 무선 송/수신부를 포함할 수 있다. 통신부(760)는 무선 망에 접속하기 위한 신호 처리를 수행할 수 있다. 상기 무선 망은, 예를 들어, 무선랜, 또는 셀룰러 망(예: LTE(Long Term Evolution)) 중 적어도 하나를 포함할 수 있다.
일 실시예에 따르면, 인터페이스(770)는 외부(예: 사용자)로부터의 입력을 검출하고, 상기 검출한 입력에 상응한 데이터를 프로세서(710)로 제공할 수 있다. 인터페이스(770)는 외부로부터의 입력을 검출하기 위한 적어도 하나의 하드웨어 모듈을 포함할 수 있다. 상기 적어도 하나의 하드웨어 모듈은, 예를 들어, 센서, 키보드, 키 패드, 터치 패드, 또는 터치 패널 중 적어도 하나를 포함할 수 있다. 인터페이스(770)가 터치 패널로 구현되는 경우, 인터페이스(770)는 디스플레이(784)와 결합됨으로써 터치 스크린이 제공될 수 있다. 이 경우, 인터페이스(770)는 사용자의 터치 입력(예: 탭(tap), 프레스(press), 핀치(pinch), 스트레치(stretch), 슬라이드(slide), 스와이프(swipe), 또는 로테이트(rotate) 등)에 대한 데이터를 프로세서(710)로 제공할 수 있다.
일 실시예에 따르면, 디스플레이(784)는 숫자, 문자, 이미지, 및/또는 그래픽의 형태로 정보를 출력하기 위한 기능들을 수행할 수 있다. 디스플레이(784)는 출력을 위한 적어도 하나의 하드웨어 모듈을 포함할 수 있다. 상기 적어도 하나의 하드웨어 모듈은, 예를 들어, LCD(Liquid Crystal Display), LED(Light Emitting Diode), LPD(Light emitting Polymer Display), OLED(Organic Light Emitting Diode), AMOLED(Active Matrix Organic Light Emitting Diode), 또는 FLED(Flexible LED) 중 적어도 하나를 포함할 수 있다. 디스플레이(784)는 프로세서(710)로부터 수신되는 데이터에 대응하는 화면을 표시할 수 있다. 디스플레이(784)는 '출력부', '표시부' 또는 이와 동등한 기술적 의미를 가지는 다른 용어로 지칭될 수 있다.
일 실시예에 따르면, 인터페이스(770)를 통해 프로세서(710)에 전기적으로 결합될 수 있는 마이크(781)는 사용자 발화로 인하여 외부로부터 입력되는 가청 신호를 전기적인 오디오 신호로 변환할 수 있다. 마이크(781)에 의해 변환된 오디오 신호는 인터페이스(770)를 통해 프로세서(710)로 제공될 수 있다. 마이크(781) 외에 인터페이스(770)를 통해 프로세서(710)에 전기적으로 결합될 수 있는 구성 요소는 스피커(782) 또는 카메라(783) 중 적어도 하나일 수 있다. 스피커(782)는 인터페이스(770)를 통해 프로세서(710)로부터 제공되는 전기적인 오디오 신호를 사람이 들을 수 있는 가청 신호로 변환하여 출력할 수 있다. 카메라(783)는 프로세서(710)로부터의 제어에 응답하여 피사체를 촬영하고, 상기 촬영에 따른 이미지를 전기적인 신호로 변환하여 인터페이스(770)를 통해 프로세서(710)로 제공할 수 있다.
일 실시예에 따르면, 메모리(720)는 하나 이상의 명령어들(instructions)을 포함하는 프로그램(730) 및 모션 맵 데이터베이스(740)를 저장할 수 있다. 메모리(720)는 설정 정보와 같은 데이터를 더 저장할 수 있다. 프로그램(730)은 로봇(700)의 동작을 위한 기본 프로그램에 해당하는 운영체제 프로그램 및 다양한 기능을 지원하는 응용 프로그램을 포함할 수 있다. 메모리(720)는 휘발성 메모리, 비휘발성 메모리 또는 휘발성 메모리와 비휘발성 메모리의 조합으로 구성될 수 있다. 메모리(720)는 프로세서(710)의 요청에 따라 저장된 데이터를 제공할 수 있다.
일 실시예에 따르면, 프로세서(710)는 메모리(720)에 저장된 프로그램(730)을 이용하여 로봇(700)의 적어도 하나의 다른 구성요소들의 제어 및/또는 통신에 관한 연산이나 데이터 처리를 실행할 수 있다. 프로세서(710)는 중앙처리장치(CPU), 그래픽처리장치(GPU), MCU(Micro Controller Unit), 센서 허브, 보조 프로세서(Supplementary Processor), 통신 프로세서(Communication Processor), 애플리케이션 프로세서(Application Processor), ASIC(Application Specific Integrated Circuit), 또는 FPGA(Field Programmable Gate Arrays) 중 적어도 하나를 포함할 수 있으며, 복수의 코어를 가질 수 있다.
일 실시예에 따르면, 프로세서(710)는 인터페이스(770)를 통해 획득되는 데이터를 처리하거나, 인터페이스(770)를 통해 다양한 입력 및/또는 출력 수단의 동작 상태를 제어할 수 있다. 상기 다양한 입력 및/또는 출력 수단은, 예를 들어, 마이크(MIC)(781), 스피커(SPK)(782), 카메라(CAM)(783) 또는 디스플레이(DPY)(784) 중 적어도 하나가 될 수 있다. 프로세서(710)는 통신부(760)를 통해 신호를 송신 및/또는 수신할 수 있다.
일 실시예에 따르면, 모터(750)는 로봇이 소정의 모션을 수행하도록 구동하는 적어도 하나의 모터를 포함할 수 있다. 모터(750)는 프로세서(710)에 전기적으로 연결되고, 프로세서(710)에 의해 제어되어 로봇의 모션을 구동할 수 있다. 로봇의 각각의 연결 부위(관절, 미도시)에서 적어도 하나의 자유도를 구현하기 위해, 로봇(700)은 각각의 연결 부위에 대응되는 적어도 하나의 모터를 포함할 수 있다. 예를 들어, 연결 부위의 각각의 자유도는 각각의 모터에 의해 구현될 수 있거나, 소정 개수의 자유도가 1개의 모터에 의해 구현될 수 있다.
일 실시예에 따르면, 프로세서(710)는 사용자 입력에 기초하여 모션 식별자를 획득할 수 있다. 프로세서(710)는 인터페이스(770)를 통한 사용자 입력에 기초하여 결정된 모션 식별자를 획득하거나, 전자 장치(120)에서의 사용자 입력에 기초하여 결정된 모션 식별자를 통신부(760)가 전자 장치(120)로부터 수신하고 프로세서(710)가 통신부(760)로부터 모션 식별자를 획득할 수 있다. 상기 사용자 입력은 음성, 텍스트, 이미지, 이모티콘 및 제스처를 포함할 수 있다.
프로세서(710)는 로봇(700)이 모션을 수행 중인지 여부를 나타내는 모션 상태를 식별할 수 있다. 상기 모션 상태가 액티브(ACTIVE)인 경우, 프로세서(710)는 상기 획득한 모션 식별자를 메모리(720)에 저장할 수 있다.
일 실시예에 따르면, 프로세서(710)는 사전에 설정된 저장옵션에 기초하여, 모션 식별자를 메모리(720)에 저장하지 않을 수 있다. 상기 사전에 설정된 저장옵션은 'Enable' 또는 'Disable' 중 하나를 나타내는 값으로 설정될 수 있다. 상기 사전에 설정된 저장옵션이 'Disable'을 나타내는 값이고 상기 모션 상태가 액티브인 경우, 프로세서(710)는 상기 획득된 모션 식별자를 메모리(720)에 저장하지 않고 스킵 처리함으써, 로봇의 모션 상태를 고려하여 모션 입력 처리를 조절할 수 있다.
상기 모션 상태가 아이들(IDLE)인 경우, 프로세서(710)는 저장된 적어도 하나의 모션 식별자 중 소정의 기준에 기초하여 모션 식별자를 결정하고, 모션 맵 데이터베이스(740)에 기초하여 상기 결정된 모션 식별자에 대응되는 모션을 모터(750)가 구동하도록 제어할 수 있다. 상기 모션 상태 중 액티브 모션 상태는 로봇(700)의 적어도 하나의 모터가 구동 중인 상태를 의미할 수 있고, 아이들 모션 상태는 로봇(700)의 모든 모터가 구동 중이지 않은 상태를 의미할 수 있다.
상기 모션 맵 데이터베이스는 상기 적어도 하나의 모터에 의해 구동 가능한 각각의 모션에 대해, 모션 식별자 및 모션 시간프레임 각각에 대한 적어도 하나의 모터 값 세트를 포함할 수 있다.
상기 소정의 기준은 외부 입력에 기초하여 설정된 모션 식별자, 사용자 입력에 기초하여 가장 많이 획득된 모션 식별자, 또는 가장 최근에 저장된 모션 식별자 중 하나에 해당할 수 있다. 예를 들어, 상기 외부 입력에 기초하여 설정된 소정의 모션 식별자는 다양한 형식의 외부 정보에 기초하여 사용도가 높은 것으로 판단된 모션 식별자일 수 있다. 또한, 상기 외부 입력에 기초하여 설정된 소정의 모션 식별자는 널(NULL) 값일 수도 있다. 이 경우, 로봇(700)이 상기 액티브 모션 상태인 경우 획득된 모션 식별자는 모션으로 구동되지 않고 스킵 처리됨으로써, 로봇의 모션 상태를 고려하여 모션 입력 처리를 조절할 수 있다.
일 실시예에 따르면, 모터(750)는 모션 맵 데이터베이스(740)에서 모션 식별자를 이용하여 획득된, 모션 시간프레임 각각에 대한 적어도 하나의 모터 값 세트에 기초하여, 모션 시간프레임 각각에서 가속, 등속, 또는 감속 중 하나에 해당하는 모션속도로 모션을 구동할 수 있다. 예를 들어, 모터(750)는 모션을 가속, 등속, 감속의 모션속도로 순차적으로 모션을 구동함으로써, 자연스럽게 모션을 구동시킬 수 있고 사용자 경험을 향상시킬 수 있다. 이 경우, 프로세서(710)는 모터(750)가 소정의 모션속도로 구동 중인 경우, 상기 획득한 모션 식별자를 메모리(720)에 저장할 수 있다. 예를 들면, 프로세서(710)는 등속 또는 감속 중 하나에 해당하는 모션속도로 모션이 구동 중인 경우, 상기 획득한 모션 식별자를 메모리(720)에 저장할 수 있다. 다른 예를 들면, 프로세서(710)는 감속에 해당하는 모션속도로 모션이 구동 중인 경우, 상기 획득한 모션 식별자를 메모리(720)에 저장할 수 있다. 상기 예시들을 통해, 프로세서(710)는 모션의 동작 구간 중(즉, 복수의 시간프레임) 초기 동작 구간(예: 가속 구간)에서 모션이 구동 중인 경우 획득된 모션 식별자는 메모리(720)에 저장하지 않고 스킵함으로써, 모션 입력 처리를 조절할 수 있다.
일 실시예에 따르면, 로봇(700)은 모션 맵 데이터베이스(740)를 생성할 수 있다. 이 경우, 인터페이스(770)는 로봇의 모션을 설정하는 사용자 입력 및 상기 설정된 모션에 대응되는 문자열을 획득할 수 있다. 프로세서(710)는 상기 문자열에 기초하여 모션 식별자를 획득할 수 있다. 프로세서(710)는 상기 설정된 모션에 대응하는, 모션 시간프레임 각각에 대한 적어도 하나의 모터 값 세트를 획득할 수 있다. 프로세서(710)는 상기 모션 식별자 및 상기 모션 시간프레임 각각에 대한 적어도 하나의 모터 값 세트를 포함하는 레코드를 모션 맵 데이터베이스(740)에 저장할 수 있다.
도 8은 본 개시의 일 실시예에 따른 로봇에서의 구동 방법의 개략적인 흐름도이다.
도 8을 참조하면, 일 실시예에 따른 동작 810에서, 로봇(110)은 사용자 입력에 기초하여 모션 식별자를 획득할 수 있다. 로봇(110)은 전자 장치(120)로부터 상기 사용자 입력에 기초하여 결정된 상기 모션 식별자를 수신함으로써, 상기 모션 식별자를 획득할 수 있다. 또는, 로봇(110)은 인터페이스를 이용하여 상기 사용자 입력을 획득할 수 있고, 상기 획득된 사용자 입력에 기초하여 모션 식별자를 결정할 수 있다. 상기 사용자 입력은 음성, 텍스트, 이미지, 이모티콘 및 제스처를 포함할 수 있다.
일 실시예에 따른 동작 820에서, 로봇(110)은 로봇(110)이 모션을 수행 중인지 여부를 나타내는 모션 상태를 식별할 수 있다.
일 실시예에 따른 동작 830에서, 로봇(110)은 상기 모션 상태가 액티브인지 여부를 판단할 수 있다. 상기 모션 상태가 액티브인 경우 동작 840을 수행할 수 있고, 상기 모션 상태가 액티브가 아닌 경우(즉, 아이들인 경우) 동작 850을 수행할 수 있다.
일 실시예에 따른 동작 840에서, 로봇(110)은 상기 획득한 모션 식별자를 저장할 수 있다.
일 실시예에 따른 동작 850에서, 로봇(110)은 저장된 적어도 하나의 모션 식별자 중 소정의 기준에 기초하여 모션 식별자를 결정할 수 있다. 상기 소정의 기준은 외부 입력에 기초하여 설정된 모션 식별자, 사용자 입력에 기초하여 가장 많이 획득된 모션 식별자, 또는 가장 최근에 저장된 모션 식별자 중 하나에 해당할 수 있다.
일 실시예에 따른 동작 860에서, 로봇(110)은 모션 맵 데이터베이스에 기초하여, 상기 결정된 모션 식별자에 대응되는 모션을 구동할 수 있다. 상기 모션 맵 데이터베이스는 각각의 모션에 대해, 모션 식별자 및 모션 시간프레임 각각에 대한 적어도 하나의 모터 값 세트를 포함하는 적어도 하나의 레코드를 포함할 수 있다.
일 실시예에 따르면, 로봇(110)은 모션 시간프레임 각각에 대한 적어도 하나의 모터 값 세트에 기초하여, 모션 시간프레임 각각에서 가속, 등속, 또는 감속 중 하나에 해당하는 모션속도로 모션을 구동할 수 있다. 이 경우, 상기 획득한 모션 식별자를 저장하는 동작(동작 840)은 소정의 모션속도로 모션이 구동 중인 경우, 상기 획득한 모션 식별자를 저장하는 동작일 수 있다. 예를 들면, 로봇(110)이 등속 또는 감속 중 하나에 해당하는 모션속도로 모션을 구동 중인 경우, 상기 획득한 모션 식별자를 저장할 수 있다. 다른 예를 들면, 로봇(110)이 감속에 해당하는 모션속도로 모션을 구동 중인 경우, 상기 획득한 모션 식별자를 저장할 수 있다. 상기 예시들을 통해, 로봇(110)은 모션의 동작 구간 중 초기 동작 구간(예: 가속 구간)에서 모션이 구동 중인 경우 획득된 모션 식별자는 저장하지 않고 스킵할 수 있고, 이를 통해 모션 입력 처리를 조절할 수 있다.
일 실시예에 따르면, 로봇(110)은 상기 모션 맵 데이터베이스를 설정할 수 있다. 이 경우, 로봇(110)은 로봇의 모션을 설정할 수 있고, 상기 설정된 모션에 대응되는 문자열을 획득할 수 있고, 상기 문자열에 기초하여 모션 식별자를 획득할 수 있다. 로봇(110)은 상기 설정된 모션에 대응하는, 모션 시간프레임 각각에 대한 적어도 하나의 모터 값 세트를 획득할 수 있다. 로봇(110)은 상기 모션 식별자 및 상기 모션 시간프레임 각각에 대한 적어도 하나의 모터 값 세트를 포함하는 레코드를 상기 모션 맵 데이터베이스에 저장할 수 있다.
도 9는 본 개시의 일 실시예에 따른 전자 장치에서의 동작 방법의 개략적인 흐름도이다.
도 9를 참조하면, 일 실시예에 따른 동작 910에서, 전자 장치(120)는 액티브(ACTIVE) 또는 아이들(IDLE) 중 하나에 해당하는 모션 상태를 로봇(110)으로부터 수신할 수 있다. 동작 910은 동작 920 이전 또는 이후에 수행될 수 있다.
일 실시예에 따른 동작 920에서, 전자 장치(120)는 사용자 입력에 기초하여 모션 식별자를 획득할 수 있다.
일 실시예에 따른 동작 930에서, 전자 장치(120)는 상기 모션 상태가 액티브인지 여부를 판단할 수 있다. 상기 모션 상태가 액티브인 경우 동작 940을 수행할 수 있고, 상기 모션 상태가 액티브가 아닌 경우(즉, 아이들인 경우) 동작 950을 수행할 수 있다.
일 실시예에 따른 동작 940에서, 전자 장치(120)는 상기 획득된 모션 식별자를 저장할 수 있다.
일 실시예에 따른 동작 950에서, 전자 장치(120)는 저장된 적어도 하나의 모션 식별자 중 소정의 기준에 기초하여 모션 식별자를 결정할 수 있다. 상기 소정의 기준은 외부 입력에 기초하여 설정된 모션 식별자, 가장 많이 추출된 모션 식별자, 또는 가장 최근에 저장된 모션 식별자 중 하나에 해당할 수 있다.
일 실시예에 따른 동작 960에서, 전자 장치(120)는 상기 결정된 모션 식별자를 로봇(110)에게 송신할 수 있다.
본 개시를 통해 설명된 전자 장치(600), 로봇(700), 전자 장치(600) 및 로봇(700)에 의해 실행되는 프로그램은 하드웨어 구성요소, 소프트웨어 구성요소, 및/또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 프로그램은 컴퓨터로 읽을 수 있는 명령어들을 수행할 수 있는 모든 시스템에 의해 수행될 수 있다.
소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령어(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로 (collectively) 처리 장치를 명령할 수 있다. 소프트웨어는, 컴퓨터로 읽을 수 있는 저장 매체(computer-readable storage media)에 저장된 명령어를 포함하는 컴퓨터 프로그램으로 구현될 수 있다. 컴퓨터가 읽을 수 있는 기록 매체로는, 예를 들어 마그네틱 저장 매체(예컨대, ROM(Read-Only Memory), RAM(Random-Access Memory), 플로피 디스크, 하드 디스크 등) 및 광학적 판독 매체(예컨대, 시디롬(CD-ROM), 디브이디(DVD: Digital Versatile Disc)) 등이 있다. 컴퓨터가 읽을 수 있는 기록 매체는 네트워크로 연결된 컴퓨터 시스템들에 분산되어, 분산 방식으로 컴퓨터가 판독 가능한 코드가 저장되고 실행될 수 있다. 매체는 컴퓨터에 의해 판독가능하며, 메모리에 저장되고, 프로세서에서 실행될 수 있다.
컴퓨터로 읽을 수 있는 저장매체는, 비일시적(non-transitory) 저장매체의 형태로 제공될 수 있다. 여기서, '비일시적'은 저장매체가 신호(signal)를 포함하지 않으며 실재(tangible)한다는 것을 의미할 뿐 데이터가 저장매체에 반영구적 또는 임시적으로 저장됨을 구분하지 않는다.
또한, 본 개시의 실시예들에 따른 프로그램은 컴퓨터 프로그램 제품(computer program product)에 포함되어 제공될 수 있다. 컴퓨터 프로그램 제품은 상품으로서 판매자 및 구매자 간에 거래될 수 있다. 컴퓨터 프로그램 제품은 소프트웨어 프로그램, 소프트웨어 프로그램이 저장된 컴퓨터로 읽을 수 있는 저장 매체를 포함할 수 있다. 예를 들어, 컴퓨터 프로그램 제품은 디바이스의 제조사 또는 전자 마켓(예를 들어, 구글 플레이스토어, 앱 스토어)을 통해 전자적으로 배포되는 소프트웨어 프로그램 형태의 상품(예를 들어, 다운로드 가능한 애플리케이션 (downloadable application))을 포함할 수 있다. 전자적 배포를 위하여, 소프트웨어 프로그램의 적어도 일부는 저장 매체에 저장되거나, 임시적으로 생성될 수 있다. 이 경우, 저장 매체는 제조사의 서버, 전자 마켓의 서버, 또는 소프트웨어 프로그램을 임시적으로 저장하는 중계 서버의 저장매체가 될 수 있다.
컴퓨터 프로그램 제품은, 서버 및 디바이스로 구성되는 시스템에서, 서버의 저장매체 또는 디바이스의 저장매체를 포함할 수 있다. 또는, 서버 또는 디바이스와 통신 연결되는 제3의 디바이스(예, 스마트폰)가 존재하는 경우, 컴퓨터 프로그램 제품은 제3의 디바이스의 저장매체를 포함할 수 있다. 또는, 컴퓨터 프로그램 제품은 서버로부터 디바이스 또는 제3 디바이스로 전송되거나, 제3 디바이스로부터 디바이스로 전송되는 소프트웨어 프로그램 자체를 포함할 수 있다. 이 경우, 서버, 디바이스 및 제3 디바이스 중 하나가 컴퓨터 프로그램 제품을 실행하여 개시된 실시예들에 따른 방법을 수행할 수 있다. 또는, 서버, 디바이스 및 제3 디바이스 중 둘 이상이 컴퓨터 프로그램 제품을 실행하여 개시된 실시예들에 따른 방법을 분산하여 실시할 수 있다. 예를 들면, 서버가 서버에 저장된 컴퓨터 프로그램 제품을 실행하여, 서버와 통신 연결된 디바이스가 개시된 실시예들에 따른 방법을 수행하도록 제어할 수 있다. 또 다른 예로, 제3 디바이스가 컴퓨터 프로그램 제품을 실행하여, 제3 디바이스와 통신 연결된 디바이스가 개시된 실시예에 따른 방법을 수행하도록 제어할 수 있다. 제3 디바이스가 컴퓨터 프로그램 제품을 실행하는 경우, 제3 디바이스는 서버로부터 컴퓨터 프로그램 제품을 다운로드하고, 다운로드된 컴퓨터 프로그램 제품을 실행할 수 있다. 또는, 제3 디바이스는 프리로드 (pre-loaded)된 상태로 제공된 컴퓨터 프로그램 제품을 실행하여 개시된 실시예들에 따른 방법을 수행할 수도 있다.
이상과 같이 실시예들이 비록 한정된 실시예와 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기의 기재로부터 다양한 수정 및 변형이 가능하다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 컴퓨터 시스템 또는 모듈 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.

Claims (16)

  1. 로봇에 있어서,
    상기 로봇이 소정의 모션을 수행하도록 구동하는 적어도 하나의 모터;
    모션 맵 데이터베이스 및 하나 이상의 명령어들(instructions)을 포함하는 프로그램을 저장하는 메모리; 및
    상기 적어도 하나의 모터 및 상기 메모리와 전기적으로 연결되고, 상기 메모리에 저장된 프로그램의 하나 이상의 명령어들을 실행하는 적어도 하나의 프로세서를 포함하고;
    상기 프로세서는
    사용자 입력에 기초하여 모션 식별자를 획득하고,
    상기 로봇이 모션을 수행 중인지 여부를 나타내는 모션 상태를 식별하고,
    상기 모션 상태가 액티브(ACTIVE)인 경우, 상기 획득한 모션 식별자를 상기 메모리에 저장하고,
    상기 모션 상태가 아이들(IDLE)인 경우, 저장된 적어도 하나의 모션 식별자 중 소정의 기준에 기초하여 모션 식별자를 결정하고, 상기 모션 맵 데이터베이스에 기초하여 상기 결정된 모션 식별자에 대응되는 모션을 상기 적어도 하나의 모터가 구동하도록 제어하는, 로봇.
  2. 제 1항에 있어서,
    상기 소정의 기준은
    외부 입력에 기초하여 설정된 모션 식별자, 가장 많이 획득된 모션 식별자, 또는 가장 최근에 저장된 모션 식별자 중 하나에 해당하는, 로봇.
  3. 제 1항에 있어서,
    전자 장치로부터 상기 사용자 입력에 기초하여 결정된 상기 모션 식별자를 수신하는 통신부를 더 포함하거나,
    상기 사용자 입력을 획득하는 인터페이스를 더 포함하고;
    상기 사용자 입력은 음성, 텍스트, 이미지, 이모티콘 및 제스처를 포함하는, 로봇.
  4. 제 1항에 있어서,
    상기 모션 맵 데이터베이스는 상기 적어도 하나의 모터에 의해 구동 가능한 각각의 모션에 대해, 모션 식별자 및 모션 시간프레임 각각에 대한 적어도 하나의 모터 값 세트를 포함하는 적어도 하나의 레코드를 포함하는, 로봇.
  5. 제 1항에 있어서,
    상기 적어도 하나의 모터는 상기 모션 맵 데이터베이스에서 상기 모션 식별자를 이용하여 획득된, 모션 시간프레임 각각에 대한 적어도 하나의 모터 값 세트에 기초하여, 모션 시간프레임 각각에서 가속, 등속, 또는 감속 중 하나에 해당하는 모션속도로 모션을 구동하고;
    상기 프로세서는
    상기 적어도 하나의 모터가 소정의 모션속도로 구동 중인 경우, 상기 획득한 모션 식별자를 상기 메모리에 저장하는, 로봇.
  6. 제 1항에 있어서,
    로봇의 모션을 설정하는 사용자 입력 및 상기 설정된 모션에 대응되는 문자열을 획득하는 인터페이스를 더 포함하고;
    상기 프로세서는
    상기 문자열에 기초하여 모션 식별자를 획득하고,
    상기 설정된 모션에 대응하는, 모션 시간프레임 각각에 대한 적어도 하나의 모터 값 세트를 획득하고,
    상기 모션 식별자 및 상기 모션 시간프레임 각각에 대한 적어도 하나의 모터 값 세트를 포함하는 레코드를 상기 모션 맵 데이터베이스에 저장하는, 로봇.
  7. 전자 장치에 있어서,
    사용자 입력을 획득하는 인터페이스;
    액티브(ACTIVE) 또는 아이들(IDLE) 중 하나에 해당하는 모션 상태를 로봇으로부터 수신하는 통신부;
    하나 이상의 명령어들(instructions)을 포함하는 프로그램을 저장하는 메모리; 및
    상기 인터페이스, 상기 통신부 및 상기 메모리와 전기적으로 연결되고, 상기 메모리에 저장된 프로그램의 하나 이상의 명령어들을 실행하는 적어도 하나의 프로세서를 포함하고;
    상기 프로세서는
    상기 사용자 입력에 기초하여 모션 식별자를 획득하고,
    상기 모션 상태가 액티브인 경우 상기 획득된 모션 식별자를 메모리에 저장하고,
    상기 모션 상태가 아이들인 경우, 저장된 적어도 하나의 모션 식별자 중 소정의 기준에 기초하여 모션 식별자를 결정하고, 상기 통신부를 이용하여 상기 결정된 모션 식별자를 상기 로봇에게 송신하도록 제어하는, 전자 장치.
  8. 제 7항에 있어서,
    상기 소정의 기준은
    외부 입력에 기초하여 설정된 모션 식별자, 가장 많이 획득된 모션 식별자, 또는 가장 최근에 저장된 모션 식별자 중 하나에 해당하는, 전자 장치.
  9. 로봇에서의 구동 방법에 있어서,
    사용자 입력에 기초하여 모션 식별자를 획득하는 동작;
    상기 로봇이 모션을 수행 중인지 여부를 나타내는 모션 상태를 식별하는 동작;
    상기 모션 상태가 액티브(ACTIVE)인 경우, 상기 획득한 모션 식별자를 저장하는 동작;
    상기 모션 상태가 아이들(IDLE)인 경우, 저장된 적어도 하나의 모션 식별자 중 소정의 기준에 기초하여 모션 식별자를 결정하고, 모션 맵 데이터베이스에 기초하여 상기 결정된 모션 식별자에 대응되는 모션을 구동하는 동작을 포함하는, 방법.
  10. 제 9항에 있어서,
    상기 소정의 기준은
    외부 입력에 기초하여 설정된 모션 식별자, 가장 많이 획득된 모션 식별자, 또는 가장 최근에 저장된 모션 식별자 중 하나에 해당하는, 방법.
  11. 제 9항에 있어서,
    상기 사용자 입력에 기초하여 모션 식별자를 획득하는 동작은
    전자 장치로부터 상기 사용자 입력에 기초하여 결정된 상기 모션 식별자를 수신하는 동작, 또는 인터페이스를 이용하여 상기 사용자 입력을 획득하는 동작 중 하나의 동작을 포함하고;
    상기 사용자 입력은 음성, 텍스트, 이미지, 이모티콘 및 제스처를 포함하는, 방법.
  12. 제 9항에 있어서,
    상기 모션 맵 데이터베이스는 각각의 모션에 대해, 모션 식별자 및 모션 시간프레임 각각에 대한 적어도 하나의 모터 값 세트를 포함하는 적어도 하나의 레코드를 포함하는, 방법.
  13. 제 9항에 있어서,
    상기 결정된 모션 식별자에 대응되는 모션을 구동하는 동작은
    모션 시간프레임 각각에 대한 적어도 하나의 모터 값 세트에 기초하여, 모션 시간프레임 각각에서 가속, 등속, 또는 감속 중 하나에 해당하는 모션속도로 모션을 구동하는 동작이고;
    상기 획득한 모션 식별자를 저장하는 동작은
    소정의 모션속도로 모션이 구동 중인 경우, 상기 획득한 모션 식별자를 저장하는 동작인, 방법.
  14. 제 9항에 있어서,
    로봇의 모션을 설정하는 동작;
    상기 설정된 모션에 대응되는 문자열을 획득하는 동작;
    상기 문자열에 기초하여 모션 식별자를 획득하는 동작;
    상기 설정된 모션에 대응하는, 모션 시간프레임 각각에 대한 적어도 하나의 모터 값 세트를 획득하는 동작; 및
    상기 모션 식별자 및 상기 모션 시간프레임 각각에 대한 적어도 하나의 모터 값 세트를 포함하는 레코드를 상기 모션 맵 데이터베이스에 저장하는 동작을 포함하는, 방법.
  15. 전자 장치에서의 동작 방법에 있어서,
    액티브(ACTIVE) 또는 아이들(IDLE) 중 하나에 해당하는 모션 상태를 로봇으로부터 수신하는 동작;
    사용자 입력에 기초하여 모션 식별자를 획득하는 동작;
    상기 모션 상태가 액티브인 경우, 상기 획득된 모션 식별자를 저장하는 동작; 및
    상기 모션 상태가 아이들인 경우, 저장된 적어도 하나의 모션 식별자 중 소정의 기준에 기초하여 모션 식별자를 결정하고, 상기 결정된 모션 식별자를 상기 로봇에게 송신하는 동작을 포함하는, 방법.
  16. 제 15항에 있어서,
    상기 소정의 기준은
    외부 입력에 기초하여 설정된 모션 식별자, 가장 많이 획득된 모션 식별자, 또는 가장 최근에 저장된 모션 식별자 중 하나에 해당하는, 방법.
KR1020210083874A 2021-06-28 2021-06-28 로봇 및 그 구동 방법 KR20230001225A (ko)

Priority Applications (5)

Application Number Priority Date Filing Date Title
KR1020210083874A KR20230001225A (ko) 2021-06-28 2021-06-28 로봇 및 그 구동 방법
CN202180092991.9A CN116847957A (zh) 2021-06-28 2021-10-13 机器人和用于操作机器人的方法
PCT/KR2021/014100 WO2023277255A1 (ko) 2021-06-28 2021-10-13 로봇 및 그 구동 방법
EP21948555.4A EP4265377A1 (en) 2021-06-28 2021-10-13 Robot and driving method therefor
US17/510,366 US11731262B2 (en) 2021-06-28 2021-10-25 Robot and method for operating the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020210083874A KR20230001225A (ko) 2021-06-28 2021-06-28 로봇 및 그 구동 방법

Publications (1)

Publication Number Publication Date
KR20230001225A true KR20230001225A (ko) 2023-01-04

Family

ID=84690295

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210083874A KR20230001225A (ko) 2021-06-28 2021-06-28 로봇 및 그 구동 방법

Country Status (2)

Country Link
KR (1) KR20230001225A (ko)
WO (1) WO2023277255A1 (ko)

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100396754B1 (ko) * 2000-08-18 2003-09-02 엘지전자 주식회사 전자 우편을 이용한 완구형 로봇 구동장치 및 방법
JP2002283259A (ja) * 2001-03-27 2002-10-03 Sony Corp ロボット装置のための動作教示装置及び動作教示方法、並びに記憶媒体
KR20030073408A (ko) * 2002-03-11 2003-09-19 주식회사 보스텍 로봇 메일 서비스 방법
JP2003308142A (ja) * 2002-04-17 2003-10-31 Seiko Epson Corp メッセージ処理システム、音声信号処理システム、メッセージ処理設備、メッセージ送信端末、音声信号処理設備、メッセージ処理プログラム、音声信号処理プログラム、設備用プログラム、端末用プログラム及びメッセージのデータ構造、並びにメッセージ処理方法、音声信号処理方法及びメッセージ生成方法
KR20110041648A (ko) * 2009-10-16 2011-04-22 모젼스랩(주) 로봇 구동을 위한 멀티미디어 콘텐츠가 저장되는 저장매체 및 로봇 구동을 위한 멀티미디어 콘텐츠의 생성 방법

Also Published As

Publication number Publication date
WO2023277255A1 (ko) 2023-01-05

Similar Documents

Publication Publication Date Title
US20210295483A1 (en) Image fusion method, model training method, and related apparatuses
US9950431B2 (en) Interactive robot initialization
CN110291576A (zh) 基于触摸的操作***的免提导航
US11429186B2 (en) Location-based entity selection using gaze tracking
CN114786786A (zh) 使用先前帧进行骨骼跟踪
KR20200076169A (ko) 놀이 컨텐츠를 추천하는 전자 장치 및 그의 동작 방법
WO2021013043A1 (zh) 虚拟现实场景中的交互方法及装置
CN114816315A (zh) 用于音频和视频会议应用的音量控制
WO2016206646A1 (zh) 使机器装置产生动作的方法及***
CN112106020B (zh) 用于合成现实布景的声音处理的方法和设备
KR20230001225A (ko) 로봇 및 그 구동 방법
US11731262B2 (en) Robot and method for operating the same
CN116610777A (zh) 具有提取问答的会话式ai平台
WO2022212144A1 (en) User-defined contextual spaces
US20220336094A1 (en) Assistive system using cradle
US20230324714A1 (en) Intelligent actuated temple attachments
US20230262406A1 (en) Visual content presentation with viewer position-based audio
US20230324713A1 (en) Intelligent actuated temple tips
US20230324711A1 (en) Intelligent actuated and adjustable glasses nose pad arms
US20230324710A1 (en) Intelligent actuated nose bridge
CN111615832B (zh) 用于生成平面视频内容的合成现实重构的方法和设备
KR101900684B1 (ko) 가상 현실 통화 장치 및 방법
WO2023137078A1 (en) Method and system for virtual intelligence user interaction
WO2023043607A1 (en) Aligning scanned environments for multi-user communication sessions
WO2023192496A1 (en) High fidelity mixed reality system for managing phantom pain

Legal Events

Date Code Title Description
A201 Request for examination