KR20230157214A - 이동형 로봇 및 그 제어 방법 - Google Patents

이동형 로봇 및 그 제어 방법 Download PDF

Info

Publication number
KR20230157214A
KR20230157214A KR1020220103567A KR20220103567A KR20230157214A KR 20230157214 A KR20230157214 A KR 20230157214A KR 1020220103567 A KR1020220103567 A KR 1020220103567A KR 20220103567 A KR20220103567 A KR 20220103567A KR 20230157214 A KR20230157214 A KR 20230157214A
Authority
KR
South Korea
Prior art keywords
motion
state
mobile robot
candidate
type
Prior art date
Application number
KR1020220103567A
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 PCT/KR2023/001385 priority Critical patent/WO2023219229A1/ko
Priority to US18/142,928 priority patent/US20230356391A1/en
Publication of KR20230157214A publication Critical patent/KR20230157214A/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
    • B25J9/1666Avoiding collision or forbidden zones
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J13/00Controls for manipulators
    • B25J13/08Controls for manipulators by means of sensing devices, e.g. viewing or touching devices
    • B25J13/088Controls for manipulators by means of sensing devices, e.g. viewing or touching devices with position, velocity or acceleration sensors
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1628Programme controls characterised by the control loop
    • B25J9/163Programme controls characterised by the control loop learning, adaptive, model based, rule based expert control
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1628Programme controls characterised by the control loop
    • B25J9/1653Programme controls characterised by the control loop parameters identification, estimation, stiffness, accuracy, error analysis
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • G05D1/02Control of position or course in two dimensions
    • G05D1/021Control of position or course in two dimensions specially adapted to land vehicles
    • G05D1/0212Control of position or course in two dimensions specially adapted to land vehicles with means for defining a desired trajectory
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • G05D1/02Control of position or course in two dimensions
    • G05D1/021Control of position or course in two dimensions specially adapted to land vehicles
    • G05D1/0268Control of position or course in two dimensions specially adapted to land vehicles using internal positioning means

Landscapes

  • Engineering & Computer Science (AREA)
  • Robotics (AREA)
  • Mechanical Engineering (AREA)
  • Human Computer Interaction (AREA)
  • Aviation & Aerospace Engineering (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Remote Sensing (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Automation & Control Theory (AREA)
  • Control Of Position, Course, Altitude, Or Attitude Of Moving Bodies (AREA)

Abstract

본 이동형 로봇은 센서, 이동형 로봇을 구동하기 위한 모터 및 이동형 로봇의 주행 경로를 획득하고, 주행 경로를 따라 이동하는 이동형 로봇의 모션 각각에 대응되는 각속도 변화량을 센서로부터 획득된 센싱 데이터에 기초하여 식별하고, 각속도 변화량에 기초하여 복수의 후보 모션 중 최종 모션을 식별하고, 최종 모션에 기초하여 이동형 로봇을 이동하도록 모터를 제어하는 적어도 하나의 프로세서를 포함한다.

Description

이동형 로봇 및 그 제어 방법{MOVABLE ROBOT AND CONTROLLING METHOD THEREOF}
본 개시는 이동형 로봇 및 그 제어방법에 관한 것으로, 더욱 상세하게는 각속도 변화량에 기초하여 주행 경로를 설정하는 이동형 로봇 및 그 제어방법에 대한 것이다.
이동형 로봇은 주행 경로를 따라 이동하는 기기이다. 주행 경로는 로봇이 목표 지점까지 이동하기 위한 경로를 의미한다. 주행 경로 상에 장애물이 존재하는 경우 로봇은 장애물을 회피하여 목표 지점까지 이동할 수 있다. 따라서, 주행 경로는 로봇이 존재하는 주변 환경에 따라 실시간으로 변경될 수 있다.
주행 중 장애물이 식별되는 경우, 로봇은 장애물을 회피하기 위해 주행 경로를 변경할 수 있다. 여기서, 로봇은 주행 경로를 변경하기 위해 복수의 후보 모션을 고려할 수 있다. 로봇은 복수의 후보 모션 중 최종 모션을 선택하여 주행 경로를 변경할 수 있다.
복수의 후보 모션 중 하나의 모션을 최종 모션으로 선택함에 있어 최대 주행 스코어를 가지는 모션을 선택하는 방식으로 주행 경로를 생성하는 경우, 주행 방향이 번복될 수 있다. 주행 방향이 유지되면서 장애물을 회피하지 않는 경우, 로봇이 장애물에 부딪히거나 오정지하는 경우가 발생할 수 있다.
본 개시는 상술한 문제를 개선하기 위해 고안된 것으로, 본 개시의 목적은 각속도 변화량을 고려하여 주행 경로를 설정함으로써 기존 주행 경로를 최대한 유지하는 이동형 로봇 및 그의 제어 방법을 제공함에 있다.
본 실시 예에 따른 이동형 로봇은 센서, 상기 이동형 로봇을 구동하기 위한 모터 및 상기 이동형 로봇의 주행 경로를 획득하고, 상기 주행 경로를 따라 이동하는 상기 이동형 로봇의 모션 각각에 대응되는 각속도 변화량을 상기 센서로부터 획득된 센싱 데이터에 기초하여 식별하고, 상기 각속도 변화량에 기초하여 복수의 후보 모션 중 최종 모션을 식별하고, 상기 최종 모션에 기초하여 상기 이동형 로봇을 이동하도록 상기 모터를 제어하는 적어도 하나의 프로세서를 포함한다.
한편, 상기 적어도 하나의 프로세서는 후보 모션의 각속도 변화량에 기초하여 상기 후보 모션의 상태 정보를 식별할 수 있고, 상기 상태 정보의 변경 여부에 따라 상기 후보 모션의 타입 정보를 식별할 수 있고, 상기 후보 모션에 대응되는 주행 스코어를 획득할 수 있고, 상기 주행 스코어 및 상기 타입 정보에 기초하여 상기 복수의 후보 모션 중 최종 모션을 식별할 수 있다.
한편, 상기 적어도 하나의 프로세서는 이전 시점 모션의 각속도에 기초하여 상기 이전 시점 모션의 상태 정보를 식별할 수 있고, 상기 이전 시점 모션의 각속도 및 상기 복수의 후보 모션의 각속도 간 차이에 기초하여 상기 후보 모션의 상태 정보를 식별할 수 있고, 상기 이전 시점 모션의 상태 정보 및 상기 후보 모션의 상태 정보에 기초하여 상기 후보 모션의 타입 정보를 식별할 수 있다.
한편, 상기 주행 스코어는 상기 후보 모션에 기초하여 이동하는 상기 이동형 로봇이 장애물을 회피하도록 이동하는 거리가 클수록 큰 값이며, 상기 장애물을 회피한 이후 상기 이동형 로봇이 위치하는 예측 지점 및 목표 지점까지의 거리가 작을수록 큰 값일 수 있다.
한편, 상기 적어도 하나의 프로세서는 상기 후보 모션의 상기 각속도 변화량이 제1 임계값을 초과하면, 상기 후보 모션의 상태 정보를 제1 상태로 식별할 수 있고, 상기 후보 모션의 상기 각속도 변화량이 상기 제1 임계값보다 작은 제2 임계값 미만이면, 상기 후보 모션의 상태 정보를 제2 상태로 식별할 수 있고, 상기 후보 모션의 상기 각속도 변화량이 상기 제1 임계값 이하이고 상기 제2 임계값을 초과하면, 상기 후보 모션의 상태 정보를 제3 상태로 식별할 수 있다.
한편, 상기 적어도 하나의 프로세서는 상기 후보 모션의 상태 정보가 상기 제1 상태에서 상기 제2 상태로 변경되거나 상기 후보 모션의 상태 정보가 상기 제2 상태에서 상기 제1 상태로 변경되면, 상기 후보 모션의 타입 정보를 제1 타입으로 식별할 수 있고, 상기 후보 모션의 상태 정보가 상기 제1 상태에서 상기 제3 상태로 변경되거나, 상기 후보 모션의 상태 정보가 상기 제2 상태에서 상기 제3 상태로 변경되거나, 상기 후보 모션의 상태 정보가 상기 제3 상태에서 상기 제1 상태로 변경되거나, 상기 후보 모션의 상태 정보가 상기 제3 상태에서 상기 제2 상태로 변경되면, 상기 후보 모션의 타입 정보를 제2 타입으로 식별할 수 있다. 여기서, 상기 제1 타입은 상기 제2 타입에 비해 후보 모션의 상태 정보가 상대적으로 급격히 변경되는 타입일 수 있다.
한편, 상기 적어도 하나의 프로세서는 기 설정된 기간 동안 획득된 상태 정보에 기초하여 상기 후보 모션의 상기 타입 정보를 식별할 수 있다.
한편, 상기 적어도 하나의 프로세서는 상기 제1 타입으로 식별된 적어도 하나의 후보 모션 중 주행 스코어가 가장 큰 제1 모션을 식별할 수 있고, 상기 제2 타입으로 식별된 적어도 하나의 후보 모션 중 주행 스코어가 가장 큰 제2 모션을 식별할 수 있고, 상기 제1 모션 또는 상기 제2 모션 중 어느 하나를 상기 최종 모션으로 식별할 수 있다.
한편, 상기 적어도 하나의 프로세서는 상기 제1 모션의 제1 주행 스코어가 상기 제2 모션의 제2 주행 스코어 및 임계 주행 스코어의 합을 초과하면, 상기 제1 모션을 상기 최종 모션으로 식별할 수 있고, 상기 제1 모션의 상기 제1 주행 스코어가 상기 제2 모션의 제2 주행 스코어 및 상기 임계 주행 스코어의 합 이하이면, 상기 제2 모션을 상기 최종 모션으로 식별할 수 있다.
한편, 상기 적어도 하나의 프로세서는 상기 각속도 변화량이 양수에서 음수로 변경되거나 상기 각속도 변화량이 음수에서 양수로 변경되면, 상기 각속도 변화량에 기초하여 상기 복수의 후보 모션 중 상기 최종 모션을 식별하는 소프트 주행 모드에 기초하여 상기 이동형 로봇을 이동하도록 상기 모터를 제어할 수 있다.
본 실시 예에 따른 이동형 로봇의 제어 방법은 상기 이동형 로봇의 주행 경로를 획득하는 단계, 상기 주행 경로를 따라 이동하는 상기 이동형 로봇의 모션 각각에 대응되는 각속도 변화량을 센서로부터 획득된 센싱 데이터에 기초하여 식별하는 단계, 상기 각속도 변화량에 기초하여 복수의 후보 모션 중 최종 모션을 식별하는 단계 및 상기 최종 모션에 기초하여 상기 이동형 로봇을 이동하도록 제어하는 단계를 포함할 수 있다.
한편, 상기 최종 모션을 식별하는 단계는 후보 모션의 각속도 변화량에 기초하여 상기 후보 모션의 상태 정보를 식별할 수 있고, 상기 상태 정보의 변경 여부에 따라 상기 후보 모션의 타입 정보를 식별할 수 있고, 상기 후보 모션에 대응되는 주행 스코어를 획득할 수 있고, 상기 주행 스코어 및 상기 타입 정보에 기초하여 상기 복수의 후보 모션 중 최종 모션을 식별할 수 있다.
한편, 상기 상태 정보를 식별하는 단계는 이전 시점 모션의 각속도에 기초하여 상기 이전 시점 모션의 상태 정보를 식별할 수 있고, 상기 이전 시점 모션의 각속도 및 상기 복수의 후보 모션의 각속도 간 차이에 기초하여 상기 후보 모션의 상태 정보를 식별할 수 있고, 상기 타입 정보를 식별하는 단계는 상기 이전 시점 모션의 상태 정보 및 상기 후보 모션의 상태 정보에 기초하여 상기 후보 모션의 타입 정보를 식별할 수 있다.
한편, 상기 주행 스코어는 상기 후보 모션에 기초하여 이동하는 상기 이동형 로봇이 장애물을 회피하도록 이동하는 거리가 클수록 큰 값이며, 상기 장애물을 회피한 이후 상기 이동형 로봇이 위치하는 예측 지점 및 목표 지점까지의 거리가 작을수록 큰 값일 수 있다.
한편, 상기 상태 정보를 식별하는 단계는 상기 후보 모션의 상기 각속도 변화량이 제1 임계값을 초과하면, 상기 후보 모션의 상태 정보를 제1 상태로 식별할 수 있고, 상기 후보 모션의 상기 각속도 변화량이 상기 제1 임계값보다 작은 제2 임계값 미만이면, 상기 후보 모션의 상태 정보를 제2 상태로 식별할 수 있고, 상기 후보 모션의 상기 각속도 변화량이 상기 제1 임계값 이하이고 상기 제2 임계값을 초과하면, 상기 후보 모션의 상태 정보를 제3 상태로 식별할 수 있다.
한편, 상기 타입 정보를 식별하는 단계는 상기 후보 모션의 상태 정보가 상기 제1 상태에서 상기 제2 상태로 변경되거나 상기 후보 모션의 상태 정보가 상기 제2 상태에서 상기 제1 상태로 변경되면, 상기 후보 모션의 타입 정보를 제1 타입으로 식별할 수 있고, 상기 후보 모션의 상태 정보가 상기 제1 상태에서 상기 제3 상태로 변경되거나, 상기 후보 모션의 상태 정보가 상기 제2 상태에서 상기 제3 상태로 변경되거나, 상기 후보 모션의 상태 정보가 상기 제3 상태에서 상기 제1 상태로 변경되거나, 상기 후보 모션의 상태 정보가 상기 제3 상태에서 상기 제2 상태로 변경되면, 상기 후보 모션의 타입 정보를 제2 타입으로 식별할 수 있다. 여기서, 상기 제1 타입은 상기 제2 타입에 비해 후보 모션의 상태 정보가 상대적으로 급격히 변경되는 타입일 수 있다.
한편, 상기 타입 정보를 식별하는 단계는 기 설정된 기간 동안 획득된 상태 정보에 기초하여 상기 후보 모션의 상기 타입 정보를 식별할 수 있다.
한편, 상기 최종 모션을 식별하는 단계는 상기 제1 타입으로 식별된 적어도 하나의 후보 모션 중 주행 스코어가 가장 큰 제1 모션을 식별할 수 있고, 상기 제2 타입으로 식별된 적어도 하나의 후보 모션 중 주행 스코어가 가장 큰 제2 모션을 식별할 수 있고, 상기 제1 모션 또는 상기 제2 모션 중 어느 하나를 상기 최종 모션으로 식별할 수 있다.
한편, 상기 최종 모션을 식별하는 단계는 상기 제1 모션의 제1 주행 스코어가 상기 제2 모션의 제2 주행 스코어 및 임계 주행 스코어의 합을 초과하면, 상기 제1 모션을 상기 최종 모션으로 식별할 수 있고, 상기 제1 모션의 상기 제1 주행 스코어가 상기 제2 모션의 제2 주행 스코어 및 상기 임계 주행 스코어의 합 이하이면, 상기 제2 모션을 상기 최종 모션으로 식별할 수 있다.
한편, 상기 각속도 변화량이 양수에서 음수로 변경되거나 상기 각속도 변화량이 음수에서 양수로 변경되면, 상기 각속도 변화량에 기초하여 상기 복수의 후보 모션 중 상기 최종 모션을 식별하는 소프트 주행 모드에 기초하여 상기 이동형 로봇을 이동하도록 제어하는 단계를 더 포함할 수 있다.
도 1은 이동형 로봇의 주행 경로를 설정하는 동작을 설명하기 위한 도면이다.
도 2는 본 개시의 일 실시 예에 따른 이동형 로봇을 도시한 블록도이다.
도 3은 도 2의 이동형 로봇 의 구체적인 구성을 설명하기 위한 블록도이다.
도 4는 이동형 로봇의 주행 경로를 계산하는 동작을 설명하기 위한 도면이다.
도 5는 이동형 로봇의 모션을 결정함에 있어 각속도 변화량을 고려하는 동작을 설명하기 위한 흐름도이다.
도 6은 이동형 로봇의 모션을 결정함에 있어 상태 정보를 고려하는 동작을 설명하기 위한 흐름도이다.
도 7은 이동형 로봇의 모션을 결정함에 있어 타입 정보를 고려하는 동작을 설명하기 위한 흐름도이다.
도 8은 이동형 로봇의 모션을 결정함에 있어 주행 스코어를 고려하는 동작을 설명하기 위한 흐름도이다.
도 9는 상태 정보를 계산하는 과정을 설명하기 위한 흐름도이다.
도 10은 다양한 실시 예에 따라 타입 정보를 계산하는 과정을 설명하기 위한 흐름도이다.
도 11은 다양한 실시 예에 따라 타입 정보를 계산하는 과정을 설명하기 위한 흐름도이다.
도 12는 타입 정보 및 주행 스코어에 기초하여 최종 모션을 식별하는 과정을 설명하기 위한 흐름도이다.
도 13은 각속도 변화량에 기초하여 복수의 후보 모션 중 최종 모션을 식별하는 계산 과정을 전반적으로 설명하기 위한 표이다.
도 14는 각속도 변화량을 설명하기 위한 도면이다.
도 15는 다양한 실시 예에 따라 타입 정보를 식별하는 동작을 설명하기 위한 도면이다.
도 16은 다양한 실시 예에 따라 타입 정보를 식별하는 동작을 설명하기 위한 도면이다.
도 17은 다양한 실시 예에 따라 타입 정보를 식별하는 동작을 설명하기 위한 도면이다.
도 18은 다양한 실시 예에 따라 기 설정된 기간 동안 저장된 각속도 변화량을 고려하여 타입 정보를 식별하는 동작을 설명하기 위한 도면이다.
도 19는 다양한 실시 예에 따라 기 설정된 기간 동안 저장된 각속도 변화량을 고려하여 타입 정보를 식별하는 동작을 설명하기 위한 도면이다.
도 20은 다양한 실시 예에 따라 기 설정된 기간 동안 저장된 각속도 변화량을 고려하여 타입 정보를 식별하는 동작을 설명하기 위한 도면이다.
도 21은 주행 스코어에 기초하여 최종 모션을 식별하는 실시 예를 설명하기 위한 도면이다.
도 22는 다양한 실시 예에 따라 주행 스코어를 계산하는 과정을 설명하기 위한 도면이다.
도 23은 다양한 실시 예에 따라 주행 스코어를 계산하는 과정을 설명하기 위한 도면이다.
도 24는 다양한 실시 예에 따라 주행 스코어의 최대값을 계산하는 과정을 설명하기 위한 도면이다.
도 25는 비결정 타입과 결정 타입 중 하나의 타입에 해당하는 모션을 최종 모션으로 식별하는 동작을 설명하기 위한 도면이다.
도 26은 복수의 후보 모션 중 하나의 모션을 최종 모션으로 선택하는 전체적 동작 과정을 설명하는 도면이다.
도 27은 이동형 로봇이 이동함에 따라 변경되는 위치 및 각속도를 설명하기 위한 도면이다.
도 28은 소프트 주행 모드로 동작하는 이동형 로봇을 설명하기 위한 흐름도이다.
도 29는 일반 주행 모드와 소프트 주행 모드를 비교하기 위한 도면이다.
도 30은 소프트 주행 모드와 관련된 인디케이터를 설명하기 위한 도면이다.
도 31은 다양한 실시 예에 따라 소프트 주행 모드로 주행하는 동작을 설명하기 위한 흐름도이다.
도 32는 다양한 실시 예에 따라 소프트 주행 모드로 주행하는 동작을 설명하기 위한 흐름도이다.
도 33은 본 개시의 일 실시 예에 따른 이동형 로봇의 제어 방법을 설명하기 위한 흐름도이다.
이하에서는 첨부 도면을 참조하여 본 개시를 상세히 설명한다.
본 개시의 실시 예에서 사용되는 용어는 본 개시에서의 기능을 고려하면서 가능한 현재 널리 사용되는 일반적인 용어들을 선택하였으나, 이는 당 분야에 종사하는 기술자의 의도 또는 판례, 새로운 기술의 출현 등에 따라 달라질 수 있다. 또한, 특정한 경우는 출원인이 임의로 선정한 용어도 있으며, 이 경우 해당되는 개시의 설명 부분에서 상세히 그 의미를 기재할 것이다. 따라서 본 개시에서 사용되는 용어는 단순한 용어의 명칭이 아닌, 그 용어가 가지는 의미와 본 개시의 전반에 걸친 내용을 토대로 정의되어야 한다.
본 명세서에서, "가진다," "가질 수 있다," "포함한다," 또는 "포함할 수 있다" 등의 표현은 해당 특징(예: 수치, 기능, 동작, 또는 부품 등의 구성요소)의 존재를 가리키며, 추가적인 특징의 존재를 배제하지 않는다.
A 또는/및 B 중 적어도 하나라는 표현은 "A" 또는 "B" 또는 "A 및 B" 중 어느 하나를 나타내는 것으로 이해되어야 한다.
본 명세서에서 사용된 "제1," "제2," "첫째," 또는 "둘째,"등의 표현들은 다양한 구성요소들을, 순서 및/또는 중요도에 상관없이 수식할 수 있고, 한 구성요소를 다른 구성요소와 구분하기 위해 사용될 뿐 해당 구성요소들을 한정하지 않는다.
어떤 구성요소(예: 제1 구성요소)가 다른 구성요소(예: 제2 구성요소)에 "(기능적으로 또는 통신적으로) 연결되어((operatively or communicatively) coupled with/to)" 있다거나 "접속되어(connected to)" 있다고 언급된 때에는, 어떤 구성요소가 다른 구성요소에 직접적으로 연결되거나, 다른 구성요소(예: 제3 구성요소)를 통하여 연결될 수 있다고 이해되어야 할 것이다.
단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "구성되다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
본 개시에서 "모듈" 혹은 "부"는 적어도 하나의 기능이나 동작을 수행하며, 하드웨어 또는 소프트웨어로 구현되거나 하드웨어와 소프트웨어의 결합으로 구현될 수 있다. 또한, 복수의 "모듈" 혹은 복수의 "부"는 특정한 하드웨어로 구현될 필요가 있는 "모듈" 혹은 "부"를 제외하고는 적어도 하나의 모듈로 일체화되어 적어도 하나의 프로세서(미도시)로 구현될 수 있다.
본 명세서에서, 사용자라는 용어는 전자 장치(이동형 로봇)를 사용하는 사람 또는 전자 장치(이동형 로봇)를 사용하는 장치(예: 인공지능 전자 장치)를 지칭할 수 있다.
이하 첨부된 도면들을 참조하여 본 개시의 일 실시 예를 보다 상세하게 설명한다.
도 1은 이동형 로봇(100)의 주행 경로를 설정하는 동작을 설명하기 위한 도면이다.
이동형 로봇(100)은 주행 경로(또는 주행 경로 정보)에 기초하여 이동할 수 있다. 주행 경로는 이동형 로봇(100)을 제어하기 위한 적어도 하나의 모션을 포함할 수 있다. 모션은 이동형 로봇의 이동 방향, 이동 속도, 회전 속도 등을 나타내는 정보를 의미할 수 있다. 주행 경로는 이동형 로봇(100)가 어디로 이동할지를 나타내는 것이므로, 주행 경로가 정해지는 단계에서 복수의 후보 모션이 존재할 수 있다.
이동형 로봇(100)은 목표 지점(10)까지 이동하기 위한 주행 경로를 생성(또는 획득)할 수 있다. 이동형 로봇(100)은 주행 경로 상에 장애물(20)이 존재하는지 판단할 수 있다. 주행 경로 상에 장애물(20)이 존재하는 경우, 이동형 로봇(100)은 장애물(20)을 회피하도록 주행 경로를 생성할 수 있다. 이동형 로봇(100)은 후보 모션(#1)에 따라 왼쪽으로 이동(또는 회전)할지 아니면 후보 모션(#2)에 따라 오른쪽으로 이동(또는 회전)할지 여부를 결정할 수 있다.
이동형 로봇(100)은 복수의 후보 모션 중 기 정해진 계산 방식에 따라 후보 모션 중 하나를 최종 모션으로 결정할 수 있다.
일 예로, 최고 주행 스코어(예를 들어, 최단 거리)를 가장 우선하는 계산 방식을 적용한다면, 이동형 로봇(100)은 후보 모션(#1)과 후보 모션(#2) 중 최고 주행 스코어를 가지는 모션(예를 들어, 최단 거리로 이동하는 모션)을 최종 모션으로 결정할 수 있다.
또 다른 예로, 각속도 변화량을 고려하는 계산 방식을 적용한다면, 이동형 로봇(100)은 각속도 변화량에 기초하여 기존 주행 방향을 최대한 유지하는 계산 방식으로 최종 모션을 결정할 수 있다.
한편, 도 1에서는 이동형 로봇(100)이 후보 모션 중 하나의 모션을 선택하는 것으로 설명하였다. 하나의 모션이 선택된 이후에도 장애물(20)을 회피하는 결정이 번복될 수 있다. 예를 들어, 장애물(20)을 바라보는 방향을 기준으로 좌측으로 피하기 위한 후보 모션이 선택된 이후에도, 이동형 로봇(100)은 우측으로 피하기 위한 후보 모션을 선택할 수 있다. 장애물(20)의 좌측으로 이동하는 후보 모션(#01)과 장애물(20)의 우측으로 이동하는 후보 모션(#02)의 스코어 차이가 임계값 미만일 경우, 이러한 상황이 발생할 수 있다.
한편, 도 1에서는 이동형 로봇(100)을 로봇 청소기로 표현하였으나, 본 발명에서 설명하는 로봇은 자동으로 이동하는 다양한 장치에 적용될 수 있다.
도 2는 본 개시의 일 실시 예에 따른 이동형 로봇(100)을 도시한 블록도이다.
도 2를 참조하면, 이동형 로봇(100)은 센서(110), 모터(120) 및 적어도 하나의 프로세서(130)를 포함할 수 있다.
센서(110)는 이동형 로봇(100)의 속도 또는 각속도를 센싱하는 센서일 수 있다. 적어도 하나의 프로세서(130)는 센서(110)로부터 획득된 센싱 데이터에 기초하여 이동형 로봇(100)의 속도 또는 각속도를 획득할 수 있다.
센서(110)는 이동형 로봇(100)의 주행 경로 상의 장애물을 식별할 수 있는 이미지 센서를 포함할 수 있다. 적어도 하나의 프로세서(130)는 센서(110)로부터 획득된 센싱 데이터에 기초하여 장애물 여부를 식별할 수 있다.
센서(110)는 복수의 센서를 포함하는 개념일 수 있다. 센서(110)는 센서부로 기재될 수 있다. 센서와 관련된 구체적인 설명은 도 3에서 기재한다.
모터(120)는 이동형 로봇(100)를 이동시키기 위해 물리적인 힘을 생성할 수 있다. 모터(120)는 구동부로 기재될 수 있다. 적어도 하나의 프로세서(130)는 주행 경로 또는 최종 모션에 따라 이동형 로봇(100)가 이동되도록 모터(120)를 제어할 수 있다.
적어도 하나의 프로세서(130)는 이동형 로봇(100)의 전반적인 제어 동작을 수행할 수 있다. 구체적으로, 적어도 하나의 프로세서(130)는 이동형 로봇(100)의 전반적인 동작을 제어하는 기능을 한다.
적어도 하나의 프로세서(130)는 디지털 신호를 처리하는 디지털 시그널 프로세서(digital signal processor(DSP), 마이크로 프로세서(microprocessor), TCON(Time controller)으로 구현될 수 있다. 다만, 이에 한정되는 것은 아니며, 중앙처리장치(central processing unit(CPU)), MCU(Micro Controller Unit), MPU(micro processing unit), 컨트롤러(controller), 어플리케이션 프로세서(application processor(AP)), GPU(graphics-processing unit) 또는 커뮤니케이션 프로세서(communication processor(CP)), ARM(advanced reduced instruction set computer (RISC) machines) 프로세서 중 하나 또는 그 이상을 포함하거나, 해당 용어로 정의될 수 있다. 또한, 적어도 하나의 프로세서(130)는 프로세싱 알고리즘이 내장된 SoC(System on Chip), LSI(large scale integration)로 구현될 수도 있고, FPGA(Field Programmable gate array) 형태로 구현될 수도 있다. 또한, 적어도 하나의 프로세서(130)는 메모리(160)에 저장된 컴퓨터 실행가능 명령어(computer executable instructions)를 실행함으로써 다양한 기능을 수행할 수 있다.
적어도 하나의 프로세서(130)는 이동형 로봇(100)을 구동하기 위해 모터(120)를 제어할 수 있다.
또한, 적어도 하나의 프로세서(130)은 센서(110)를 통해 센싱 데이터를 획득할 수 있다. 여기서, 센서(110)는 적어도 하나의 센서를 포함할 수 있다.
센서(110)는 주행 경로를 설정하기 위해 이동형 로봇(100)의 이동과 관련된 데이터를 센싱하기 위한 제1 센서를 포함할 수 있다. 예를 들어, 제1 센서는 이미지 센서 또는 라이다 센서 등을 의미할 수 있다. 따라서, 적어도 하나의 프로세서(130)은 제1 센서를 통해 획득한 센싱 데이터에 기초하여 주행 경로를 획득(또는 식별)할 수 있다.
센서(110)는 이동형 로봇(100)의 이동과 관련된 물리 데이터를 센싱하기 위한 제2 센서를 포함할 수 있다. 예를 들어, 제2 센서는 자이로 센서 또는 자이로 센서 등을 의미할 수 있다. 따라서, 적어도 하나의 프로세서(130)는 제2 센서를 통해 획득한 센싱 데이터에 기초하여 이동 위치, 속도, 가속도, 선속도 또는 각속도 중 적어도 하나를 획득(또는 식별)할 수 있다.
적어도 하나의 프로세서(130)는 이동형 로봇(100)의 주행 경로를 획득하고, 주행 경로를 따라 이동하는 이동형 로봇(100)의 모션 각각에 대응되는 각속도 변화량을 센서(110)로부터 획득된 센싱 데이터에 기초하여 식별하고, 각속도 변화량에 기초하여 복수의 후보 모션 중 최종 모션을 식별하고, 최종 모션에 기초하여 이동형 로봇(100)을 이동하도록 모터(120)를 제어하는 적어도 하나의 프로세서(130)를 포함할 수 있다.
여기서, 모션은 이동형 로봇의 이동 방향, 이동 속도, 회전 속도 등을 나타내는 정보를 의미할 수 있다. 모션은 선속도 또는 각속도 중 적어도 하나를 포함할 수 있다. 모션은 이동형 로봇(100)의 이동과 관련된 물리 데이터를 의미할 수 있다. 모션은 이동 데이터 또는 이동 정보로 기재될 수 있다.
적어도 하나의 프로세서(130)는 이동형 로봇(100)의 주행 동안 센서(110)로부터 센싱 데이터를 획득할 수 있다. 여기서, 센싱 데이터는 이동형 로봇(100)의 각속도 정보를 포함할 수 있다. 따라서, 적어도 하나의 프로세서(130)는 이동형 로봇(100)의 각속도 정보에 기초하여 각속도 변화량을 획득(또는 계산)할 수 있다. 그리고, 적어도 하나의 프로세서(130)는 메모리(160)에 획득된 각속도 변화량을 저장할 수 있다. 적어도 하나의 프로세서(130)는 기 설정된 기간 동안 각속도 변화량을 저장할 수 있다.
모션은 이미 이동형 로봇(100)이 주행을 완료한 데이터를 포함하는 과거 시점의 모션과 이동형 로봇(100)이 앞으로 주행할 데이터를 포함하는 미래 시점의 모션으로 구분될 수 있다.
미래 시점의 모션을 최종 모션으로 기재할 수 있다. 최종 모션은 복수의 후보 모션 중에서 최종적으로 선택될 수 있다. 후보 모션은 미래 시점에 이동형 로봇(100)이 이동할 방향 및 속도 등을 포함하는 정보일 수 있다. 후보 모션은 동적 윈도우 접근(Dynamic Window Approach) 방식에 기초하여 결정될 수 있다. 이와 관련된 설명은 도 14의 그래프(1410)에 기재한다. 후보 모션은 기 설정된 범위 이내의 선속도를 포함할 수 있다. 또한, 후보 모션은 기 설정된 범위 이내의 각속도를 포함할 수 있다.
적어도 하나의 프로세서(130)는 이동형 로봇(100)과 관련된 각속도 변화량에 기초하여 복수의 후보 모션 중 최종 모션을 식별할 수 있다.
한편, 적어도 하나의 프로세서(130)는 후보 모션의 각속도 변화량에 기초하여 후보 모션의 상태 정보를 식별하고, 상태 정보의 변경 여부에 따라 후보 모션의 타입 정보를 식별하고, 후보 모션에 대응되는 주행 스코어를 획득하고, 주행 스코어 및 타입 정보에 기초하여 타입 별 복수의 후보 모션 중 최종 모션을 식별할 수 있다.
여기서, 상태 정보는 이동형 로봇(100)의 주행 특성을 나타내는 정보를 의미할 수 있다. 여기서, 주행 특성은 각속도 변화량의 상태를 포함할 수 있다. 즉, 상태 정보는 각속도 변화량의 상태를 포함할 수 있다.
여기서, 타입 정보는 후보 모션이 특정 기준에 따라 구분된 타입을 나타내는 정보를 의미할 수 있다. 여기서, 특정 기준은 상태 정보의 변경 여부를 의미할 수 있다. 타입 정보는 그룹 정보로 기재될 수 있으며, 타입은 그룹으로 기재될 수 있다. 타입 정보는 후보 모션이 기존 이동 방향(또는 회전 방향)을 유지하기 위한 모션인지 기존 이동 방향(또는 회전 방향)을 변경하고자 하는 것인지를 나타내는 정보일 수 있다.
여기서, 주행 스코어는 복수의 후보 모션 각각에 대하여 특정 기준에 따라 계산된 점수를 의미할 수 있다. 여기서, 특정 기준은 최소 시간, 최소 이동 거리, 안정성 등일 수 있다. 여기서, 안정성은 장애물과 충돌하지 않음에 대한 안전 여부를 의미할 수 있다.
한편, 적어도 하나의 프로세서(130)는 이전 시점 모션의 각속도에 기초하여 이전 시점 모션의 상태 정보를 식별하고, 이전 시점 모션의 각속도 및 복수의 후보 모션의 각속도 간 차이에 기초하여 후보 모션 각각의 각속도 변화량을 식별하고, 이전 시점 모션의 상태 정보 및 후보 모션의 상태 정보에 기초하여 후보 모션의 타입 정보를 식별할 수 있다.
상태 정보는 이전 시점(N-1)에서 획득된 각속도와 현재 시점(N)에서 최종 결정되어야 하는 후보 모션의 각속도의 차이인 각속도 변화량에 기초하여 결정될 수 있다.
상태 정보는 각속도 변화량이 양수인지 음수인지를 나타낼 수 있다.
각속도 변화량이 양수이면, 상태 정보는 제1 상태(Positive)일 수 있다. 이동형 로봇(100)의 기존 주행 방향(또는 회전 방향으로 더 빠르게 이동(또는 회전)하는 것을 나타낼 수 있다.
각속도 변화량이 음수이면, 상태 정보는 제2 상태(negative)일 수 있다. 이동형 로봇(100)의 기존 주행 방향(또는 회전 방향)이 변경하는 것을 나타낼 수 있다.
각속도 변화량이 0이면, 상태 정보는 제3 상태(stable)일 수 있다. 여기서, 제3상태는 안정 상태(stable state) 또는 제로 상태(zero state)로 기재될 수 있다.
여기서, 각속도 변화량을 양수, 음수, 0을 기준으로 구분하면, 상태 정보가 미세한 변화에도 변경될 수 있다. 따라서, 적어도 하나의 프로세서(130)는 상태 정보를 제1 임계값 및 제1 임계값보다 작은 제2 임계값으로 구분할 수 있다.
다양한 실시 예에 따라, 제1 임계값의 절대값과 제2 임계값의 절대값이 동일할 수 있다.
한편, 적어도 하나의 프로세서(130)는 후보 모션의 각속도 변화량이 제1 임계값을 초과하면, 후보 모션의 상태 정보를 제1 상태(Positive)로 식별하고, 후보 모션의 각속도 변화량이 제1 임계값보다 작은 제2 임계값 미만이면, 후보 모션의 상태 정보를 제2 상태(negative)로 식별하고, 후보 모션의 각속도 변화량이 제1 임계값 이하이고 제2 임계값을 초과하면, 후보 모션의 상태 정보를 제3 상태(stable)로 식별할 수 있다. 상태 정보를 제1 상태(Positive), 제2 상태(negative), 제3 상태(stable) 등으로 구분하는 실시 예는 도 14 내지 도 17에서 기재한다.
한편, 적어도 하나의 프로세서(130)는 후보 모션의 상태 정보가 제1 상태(Positive)에서 제2 상태(negative)로 변경되거나 후보 모션의 상태 정보가 제2 상태(negative)에서 제1 상태(Positive)로 변경되면, 후보 모션의 타입 정보를 제1 타입으로 식별하고, 후보 모션의 상태 정보가 제1 상태(Positive)에서 제3 상태(stable)로 변경되거나, 후보 모션의 상태 정보가 제2 상태(negative)에서 제3 상태(stable)로 변경되거나, 후보 모션의 상태 정보가 제3 상태(stable)에서 제1 상태(Positive)로 변경되거나, 후보 모션의 상태 정보가 제3 상태(stable)에서 제2 상태(negative)로 변경되면, 후보 모션의 타입 정보를 제2 타입으로 식별하며, 제1 타입은, 제2 타입에 비해 후보 모션의 상태 정보가 상대적으로 급격히 변경되는 타입일 수 있다.
적어도 하나의 프로세서(130)는 기 설정된 상태 정보와 후보 모션의 상태 정보를 비교할 수 있다. 기 설정된 상태 정보는 이전 시점의 상태 정보 또는 기 저장된 상태 정보를 의미할 수 있다. 예를 들어, 기 설정된 상태 정보는 도 13의 표(1305)에서 “previous state”에 해당하는 negative일 수 있다. 후보 모션의 상태 정보는 도 13의 표(1305)에서 “current state”에 해당할 수 있다.
적어도 하나의 프로세서(130)는 상태 정보의 변경에 기초하여 후보 모션의 타입 정보를 식별할 수 있다. 적어도 하나의 프로세서(130)는 기 설정된 상태 정보(또는 이전 시점의 상태 정보)가 변경되었는지 여부에 따라 타입 정보를 결정할 수 있다.
여기서, 타입 정보는 제1 타입과 제2 타입으로 구분될 수 있다. 제1 타입은 기존의 주행 특성이 변경되는 타입을 의미할 수 있다. 제2 타입은 기존 주행 특성이 유지되는 타입을 의미할 수 있다.
상태 정보가 제1 상태(positive) 및 제2 상태(negative) 사이에서 변경되는 경우, 적어도 하나의 프로세서(130)는 후보 모션을 상태 정보가 급격하게 변경됨을 나타내는 비결정 타입(제1 타입)으로 결정할 수 있다.
상태 정보가 제3 상태(stable)에서 다른 상태(제1 상태 또는 제2 상태)로 변경되거나, 다른 상태(제1 상태 또는 제2 상태)에서 제3 상태(stable)로 변경되는 경우, 적어도 하나의 프로세서(130)는 후보 모션을 상태 정보가 유지됨을 나타내는 결정 타입(제2 타입)으로 결정할 수 있다.
여기서, 제1 타입은 비결정(indecisive) 타입으로 기재할 수 있고, 제2 타입은 결정(decisive) 타입으로 기재할 수 있다. 비결정 타입은 기존 주행 특성과 상이하므로 후보 모션을 바로 결정할 수 없는 타입(예를 들어, 방향 전환 모션 타입)임을 나타낼 수 있다. 결정 타입은 기존 주행 특성과 유사하므로 후보 모션을 바로 결정할 수 있는 타입(예를 들어, 방향 유지 모션 타입)임을 나타낼 수 있다.
한편, 적어도 하나의 프로세서(130)는 기 설정된 기간 동안 획득된 상태 정보에 기초하여 후보 모션의 타입 정보를 식별할 수 있다.
다양한 실시 예에 따라, 적어도 하나의 프로세서(130)는 바로 이전 시점의 상태 정보와 후보 모션의 상태 정보를 비교할 수 있다. 이전 시점은 현재 시점(N)을 기준으로 단위 시간 바로 직전 시점(N-1)을 의미할 수 있다.
다양한 실시 예에 따라, 적어도 하나의 프로세서(130)는 기 설정된 시간 동안 획득된 상태 정보에 기초하여 기 설정된 상태 정보를 결정할 수 있다. 그리고, 적어도 하나의 프로세서(130)는 기 설정된 상태 정보와 후보 모션의 상태 정보를 비교할 수 있다.
기 설정된 시간 동안 획득된 상태 정보가 다양한 경우 기 설정된 상태 정보를 결정하는 기준이 다양할 수 있다.
다양한 실시 예에 따라, 기 설정된 기간에 제1 상태(positive) 또는 제2 상태(negative) 중 어느 하나가 식별되는 경우, 적어도 하나의 프로세서(130)는 기 설정된 상태 정보를 식별된 제1 상태(positive) 또는 식별된 제2 상태(negative)로 식별할 수 있다. 또한, 기 설정된 기간에 제3 상태(stable)만 포함되는 경우, 이동형 로봇(100)은 기 설정된 상태 정보를 제3 상태(stable)로 식별할 수 있다. 또한, 기 설정된 기간에 제1 상태(positive) 및 제2 상태(negative)가 모두 식별되는 경우, 이동형 로봇(100)은 기 설정된 상태 정보를 가장 최근에 식별된 상태 정보로 결정할 수 있다.
다양한 실시 예에 따라, 적어도 하나의 프로세서(130)는 기 설정된 기간에 포함된 복수의 상태 정보 중 가장 많이 식별되는 상태 정보를 기 설정된 상태 정보로 식별할 수 있다.
타입 정보를 구분하는 구체적인 방법은 도 18 내지 도 20에서 기재한다.
한편, 주행 스코어는 후보 모션에 기초하여 이동하는 이동형 로봇(100)이 장애물을 회피하도록 이동하는 거리가 클수록 큰 값이며, 장애물을 회피한 이후 이동형 로봇(100)이 위치하는 예측 지점 및 목표 지점까지의 거리가 작을수록 큰 값인, 이동형 로봇(100).
주행 스코어와 관련된 구체적인 계산 방법은 도 21의 수학식(2120)에 기재한다.
한편, 적어도 하나의 프로세서(130)는 제1 타입(비결정 타입)으로 식별된 적어도 하나의 후보 모션 중 주행 스코어가 가장 큰 제1 모션을 식별하고, 제2 타입(결정 타입)으로 식별된 적어도 하나의 후보 모션 중 주행 스코어가 가장 큰 제2 모션을 식별하고, 제1 모션 또는 제2 모션 중 어느 하나를 최종 모션으로 식별할 수 있다.
적어도 하나의 프로세서(130)는 타입별로(그룹별로) 주행 스코어가 최대인 모션을 식별할 수 있다. 적어도 하나의 프로세서(130)는 비결정 타입(제1 타입)에 속한 후보 모션들 중 주행 스코어가 가장 큰 모션(제1 모션)을 식별할 수 있다. 적어도 하나의 프로세서(130)는 결정 타입(제2 타입)에 속한 후보 모션들 중 주행 스코어가 가장 큰 모션(제2 모션)을 식별할 수 있다.
여기서, 제1 모션의 주행 스코어는 제1 주행 스코어이고, 제2 모션의 주행 스코어는 제2 주행 스코어일 수 있다.
한편, 적어도 하나의 프로세서(130)는 제1 모션의 제1 주행 스코어가 제2 모션의 제2 주행 스코어 및 임계 주행 스코어의 합을 초과하면, 제1 모션을 최종 모션으로 식별하고, 제1 모션의 제1 주행 스코어가 제2 모션의 제2 주행 스코어 및 임계 주행 스코어의 합 이하이면, 제2 모션을 최종 모션으로 식별할 수 있다. 이와 관련된 구체적인 설명은 도 12 및 도 25에서 기재한다.
한편, 적어도 하나의 프로세서(130)는 이동형 로봇(100)을 일반 모드와 소프트 주행 모드로 구분하여 제어할 수 있다. 일반 모드는 최소 시간, 최소 이동 거리, 단순 장애물 회피 등에 기초하여 이동형 로봇(100)이 주행되는 모드를 의미할 수 있다. 한편, 소프트 주행 모드는 일반 모드에서 고려되는 항목 이외에 각속도 변화량을 추가적으로 고려하여 이동형 로봇(100)이 주행되는 모드를 의미할 수 있다. 각속도 변화량을 고려한다는 것은 기존 주행 방향(또는 기존 회전 방향)을 고려하는 것을 의미할 수 있다.
한편, 이동형 로봇(100)은 사용자 설정에 따라 주행 모드를 결정할 수 있다. 사용자 입력을 수신하기 위해 적어도 하나의 프로세서(130)은 디스플레이(140)에 가이드 화면을 표시할 수 있다. 가이드 화면과 관련된 구체적인 내용은 도 29에서 기재한다.
다양한 실시 예에 따라, 이동형 로봇(100)은 소프트 주행 모드로 항상 주행할 수 있다. 이와 관련된 설명은 도 28에서 기재한다.
다양한 실시 예에 따라, 이동형 로봇(100)은 일반 모드로 주행하고, 기 설정된 이벤트가 식별되는 경우에 한하여 소프트 주행 모드로 주행할 수 있다.
여기서, 기 설정된 이벤트는 장애물이 식별되는 이벤트일 수 있다. 장애물 식별 동작과 관련된 설명은 도 31에서 기재한다.
한편, 기 설정된 이벤트는 각속도 변화량의 부호(양수, 음수)가 변경되는 이벤트일 수 있다.
한편, 적어도 하나의 프로세서(130)는 각속도 변화량이 양수에서 음수로 변경되거나 각속도 변화량이 음수에서 양수로 변경되면, 각속도 변화량에 기초하여 복수의 후보 모션 중 최종 모션을 식별하는 소프트 주행 모드에 기초하여 이동형 로봇(100)을 이동하도록 모터(120)를 제어할 수 있다. 이와 관련된 구체적인 설명은 도 32에서 기재한다. 한편, 상술한 동작은 상기 각속도 변화량 상태 정보가 제1 상태(양수)에서 제2 상태(음수)로 변경되거나 상기 변화량 상태 정보가 제2 상태(음수)에서 제1 상태(양수)로 변경되면, 상기 각속도 변화량 상태 정보에 기초하여 상기 복수의 후보 모션 중 상기 최종 모션을 식별하는 소프트 주행 모드에 기초하여 상기 이동형 로봇을 이동하도록 제어하는 동작으로 기재될 수 있다.
한편, 기 설정된 이벤트는 각속도 변화량의 상태 정보가 변경되는 이벤트를 의미할 수 있다. 타입 정보에서는 제1 상태(positive) 및 제2 상태(negative) 상호 변경되는 경우에만 후보 모션이 비결정 타입(제1 타입)으로 구분된다고 기재하였다. 다양한 실시 예에 따라 기 설정된 이벤트는 타입 정보 결정 조건과 동일한 조건이 적용될 수 있다. 다양한 실시 예에 따라 기 설정된 이벤트는 타입 정보 결정 조건과 달리 상태 정보가 다른 상태로 변경되는 이벤트를 의미할 수 있다.
한편, 적어도 하나의 프로세서(130)는 각속도 변화량에 기초하여 복수의 후보 모션 중 최종 모션을 식별하는 소프트 주행 모드를 나타내는 인디케이터를 표시하도록 디스플레이(140)를 제어할 수 있다. 이와 관련된 구체적인 설명은 도 30에서 기재한다.
한편, 다양한 실시 예에 따라, 상태 정보가 2가지 상태(stable, unstable) 등으로 기재될 수 있다. 그리고, 타입 정보는 상태 정보가 변경되는 경우에 한하여 비결정 타입(제1 타입)으로 식별될 수 있다.
한편, 이상에서는 이동형 로봇(100)을 구성하는 간단한 구성에 대해서만 도시하고 설명하였지만, 구현 시에는 다양한 구성이 추가로 구비될 수 있다. 이에 대해서는 도 3을 참조하여 이하에서 설명한다.
도 3은 도 2의 이동형 로봇(100) 의 구체적인 구성을 설명하기 위한 블록도이다.
도 3을 참조하면, 이동형 로봇(100)은 센서(110), 모터(120), 적어도 하나의 프로세서(130), 디스플레이(140), 조작 인터페이스(150), 메모리(160), 스피커(170) 또는 마이크(180) 중 적어도 하나를 포함할 수 있다.
한편, 센서(110), 모터(120) 및 적어도 하나의 프로세서(130)의 동작 중에서 앞서 설명한 것과 동일한 동작에 대해서는 중복 설명은 생략한다.
센서(110)는 3차원 이미지 센서(111), 자이로 센서(112), 광 센서(113), 범퍼 센서(114), 가속도 센서(115), 벽면 추종 센서(116), 라이더 센서(117), 사물 인식 센서(118) 중 적어도 하나를 포함할 수 있다.
3차원 이미지 센서(111)는 이미지를 촬상하는 센서일 수 있다. 3차원 이미지 센서(111)는 3차원 공간 정보를 획득하는데 필요한 데이터를 획득할 수 있다. 3차원 이미지 센서(111)는 이미지를 입력 데이터로서 획득하고, 입력된 이미지에 기초하여 3차원 공간 정보를 출력 데이터로서 생성할 수 있다. 3차원 이미지 센서(111)는 2차원 이미지에 거리 정보를 추가적으로 획득하는 센서를 의미할 수 있다.
자이로 센서(112)는 각속도를 측정하는 센서를 의미할 수 있다. 자이로 센서(112)는 회전하는 물체의 위치 정보 및 방향 정보에 기초하여 방위 변화를 측정할 수 있다. 또한, 자이로 센서(112)에서 획득되는 센싱 데이터는 경사 각도에 관련된 정보를 획득하는데 이용될 수 있다.
광 센서(113)는 빛을 감지하는 센서일 수 있으며, 로봇 청소기(100)는 광 센서(113)로부터 획득되는 센싱 데이터에 기초하여 밝기 정보를 획득할 수 있다. 예를 들어, 광 센서(113)는 조도 센서, 적외선 센서, 자외선 센서, 가시광선 센서 중 적어도 하나를 의미할 수 있다. 여기서, 적외선 센서는 발광부와 수광부로 이루어 질 수 있으며, 적외선을 전방으로 발광하고 반사된 적외선을 수신할 수 있는 카메라를 이용하여 센싱 데이터를 획득할 수 있다.
범퍼 센서(114)는 로봇 청소기(100)의 본체에 부착되어 있는 접촉 센서를 의미할 수 있다. 범퍼 센서(114)는 장애물 또는 벽을 감지하기 위하여 물리적 접촉 여부에 대한 센싱 데이터를 획득할 수 있다. 또한, 범퍼 센서(114)는 본체의 외곽 부분에 배치될 수 있으며, 주행 중 장애물과 충돌 시 충격을 완화시키는 기능을 수행할 수 있다. 또한, 범퍼 센서(114)는 장애물 센서로 보조 센서의 역할을 수행할 수 있다. 예를 들어, 3차원 이미지 센서(111)가 인식하지 못한 장애물 등을 범퍼 센서(114)가 인식할 수 있다. 범퍼 센서(114)는 물체가 범퍼 센서(114)에 접촉되면 물리적인 힘에 의하여 스위치가 클릭되는 방식을 이용할 수 있다.
가속도 센서(115)는 로봇 청소기(100)의 운동 상태를 감지하여 속도의 변화에 대한 데이터를 획득하는 센서일 수 있다. 가속도 센서(115)는 로봇 청소기(100)의 이동 거리 및 이동 방향의 감지를 통해 움직임 벡터를 획득할 수 있다.
벽면 추종 센서(116, wall following sensor)는 벽면에 대한 데이터를 감지하여 벽면을 따라 주행할 수 있도록 센싱 데이터를 획득하는 센서를 의미할 수 있다. 로봇 청소기(100)는 벽면 추종 센서(116)에서 획득한 데이터에 기초하여 벽면을 따라 이동하면서 청소 동작을 수행할 수 있다.
라이다 센서(LIDAR sensor, 117)는 레이저를 비춰 사물과의 거리 정보 또는 위치 정보를 획득하는 센서일 수 있다. LIDAR(light detection and ranging)는 레이저 광을 이용하는 기술일 수 있으며, 레이저 광이 발광하는 시점부터 물체에 반사되어 수신되는 시점까지의 시간 및 파장의 변화를 이용하는 기술일 수 있다. 라이더 센서(117)로부터 획득되는 센싱 데이터를 이용하여 물체의 속도, 물체의 방향 또는 주변 공간의 형상을 획득할 수 있다.
사물 인식 센서(118)는 로봇 청소기(100)의 주행 경로 상에 있는 오브젝트를 인식하는 센서를 의미할 수 있다. 한편, 오브젝트를 인식하기 위해 사물 인식 센서(118)는 3차원 이미지 센서(111), 범퍼 센서(114), 라이다 센서(117) 중 적어도 하나로부터 센싱 데이터를 획득하여 오브젝트를 인식할 수 있다. 다른 센서들의 센싱 데이터를 이용한다는 점에서 사물 인식 센서(118)는 사물 인식 모듈로 기재할 수 있다.
또한, 센서(110)는 라인 레이저 센서(미도시)(line laser sensor)를 포함할 수 있다. 라인 레이저 센서(미도시)는 수직으로 라인 레이저를 발광하고 스캔한 영상을 이용하여 2차원 레이저가 장애물에 맺혔을 때 물리적으로 변하는 원리를 이용할 수 있다.
디스플레이(140)는 LCD(Liquid Crystal Display), OLED(Organic Light Emitting Diodes) 디스플레이, PDP(Plasma Display Panel) 등과 같은 다양한 형태의 디스플레이로 구현될 수 있다. 디스플레이(140)내에는 a-si TFT(amorphous silicon thin film transistor), LTPS(low temperature poly silicon) TFT, OTFT(organic TFT) 등과 같은 형태로 구현될 수 있는 구동 회로, 백라이트 유닛 등도 함께 포함될 수 있다. 한편, 디스플레이(140)는 터치 센서와 결합된 터치 스크린, 플렉시블 디스플레이(flexible display), 3차원 디스플레이(3D display, three-dimensional dispaly) 등으로 구현될 수 있다. 또한, 본 개시의 일 실시 예에 따른, 디스플레이(140)는 영상을 출력하는 디스플레이 패널뿐만 아니라, 디스플레이 패널을 하우징하는 베젤을 포함할 수 있다. 특히, 본 개시의 일 실시 예에 따른, 베젤은 사용자 인터렉션을 감지하기 위한 터치 센서(미도시)를 포함할 수 있다.
조작 인터페이스(150)는 버튼, 터치 패드, 마우스 및 키보드와 같은 장치로 구현되거나, 상술한 디스플레이 기능 및 조작 입력 기능도 함께 수행 가능한 터치 스크린으로도 구현될 수 있다. 여기서, 버튼은 이동형 로봇(100)의 본체 외관의 전면부나 측면부, 배면부 등의 임의의 영역에 형성된 기계적 버튼, 터치 패드, 휠 등과 같은 다양한 유형의 버튼이 될 수 있다.
메모리(160)는 적어도 하나의 프로세서(130)에 포함된 롬(ROM)(예를 들어, EEPROM(electrically erasable programmable read-only memory)), 램(RAM) 등의 내부 메모리로 구현되거나, 적어도 하나의 프로세서(130)와 별도의 메모리로 구현될 수도 있다. 이 경우, 메모리(160)는 데이터 저장 용도에 따라 이동형 로봇(100)에 임베디드된 메모리 형태로 구현되거나, 이동형 로봇(100)에 탈부착이 가능한 메모리 형태로 구현될 수도 있다. 예를 들어, 이동형 로봇(100)의 구동을 위한 데이터의 경우 이동형 로봇(100)에 임베디드된 메모리에 저장되고, 이동형 로봇(100)의 확장 기능을 위한 데이터의 경우 이동형 로봇(100)에 탈부착이 가능한 메모리에 저장될 수 있다.
한편, 이동형 로봇(100)에 임베디드된 메모리의 경우 휘발성 메모리(예: DRAM(dynamic RAM), SRAM(static RAM), 또는 SDRAM(synchronous dynamic RAM) 등), 비휘발성 메모리(non-volatile Memory)(예: OTPROM(one time programmable ROM), PROM(programmable ROM), EPROM(erasable and programmable ROM), EEPROM(electrically erasable and programmable ROM), mask ROM, flash ROM, 플래시 메모리(예: NAND flash 또는 NOR flash 등), 하드 드라이브, 또는 솔리드 스테이트 드라이브(solid state drive(SSD)) 중 적어도 하나로 구현되고, 이동형 로봇(100)에 탈부착이 가능한 메모리의 경우 메모리 카드(예를 들어, CF(compact flash), SD(secure digital), Micro-SD(micro secure digital), Mini-SD(mini secure digital), xD(extreme digital), MMC(multi-media card) 등), USB 포트에 연결 가능한 외부 메모리(예를 들어, USB 메모리) 등과 같은 형태로 구현될 수 있다.
스피커(170)는 각종 오디오 데이터뿐만 아니라 각종 알림 음이나 음성 메시지 등을 출력하는 구성요소일 수 있다.
마이크(180)는 사용자 음성이나 기타 소리를 입력 받아 오디오 데이터로 변환하기 위한 구성이다. 마이크(180)는 활성화 상태에서 사용자의 음성을 수신할 수 있다. 예를 들어, 마이크(180)는 이동형 로봇(100)의 상측이나 전면 방향, 측면 방향 등에 일체형으로 형성될 수 있다. 마이크(180)는 아날로그 형태의 사용자 음성을 수집하는 마이크, 수집된 사용자 음성을 증폭하는 앰프 회로, 증폭된 사용자 음성을 샘플링하여 디지털 신호로 변환하는 A/D 변환회로, 변환된 디지털 신호로부터 노이즈 성분을 제거하는 필터 회로 등과 같은 다양한 구성을 포함할 수 있다.
도 4는 이동형 로봇(100)의 주행 경로를 계산하는 동작을 설명하기 위한 도면이다.
실시 예(410)에 따라, 이동형 로봇(100)은 최단 거리 또는 최소 시간에 기초하여 주행할 수 있다. 이동형 로봇(100)은 주행 경로 상에서 이동 거리의 최소화 또는 이동 시간의 최소화를 위해 주행 경로를 급격하게 변경할 수 있다. 실시 예(410)로 동작하는 모드를 일반 주행 모드로 기재할 수 있다.
실시 예(420)에 따라, 이동형 로봇(100)은 기존 주행 경로를 최대한 유지하면서 주행할 수 있다. 불가피한 상황이 아니라면 최단 거리(또는 최소 시간)이 아니더라도 이동형 로봇(100)은 기존 주행 방향을 최대한 유지하도록 주행 경로를 설정할 수 있다. 기존 방향을 최대한 유지하는 방식에 따라 주행 경로가 생성되는 경우, 이동형 로봇(100)은 주행 경로를 급격하게 변경하지 않을 수 있다. 실시 예(420)로 동작하는 모드를 소프트 주행 모드로 기재할 수 있다.
도 5는 이동형 로봇(100)의 모션을 결정함에 있어 각속도 변화량을 고려하는 동작을 설명하기 위한 흐름도이다.
도 5를 참조하면, 이동형 로봇(100)은 복수의 후보 모션 각각에 대응되는 각속도 변화량을 획득할 수 있다 (S505). 이동형 로봇(100)은 현재 이동형 로봇(100)이 위치하는 지점에서 다음 이동 지점까지 이동하기 위한 다양한 후보 모션 중 하나의 최적 모션을 결정할 수 있다.
그리고, 이동형 로봇(100)은 각속도 변화량에 기초하여 복수의 후보 모션 중 하나의 최종 모션을 식별할 수 있다 (S510). 이동형 로봇(100)은 모션 하나가 수행될 때마다 각속도를 획득하고, 획득된 각속도의 변화를 계산할 수 있다. 이동형 로봇(100)은 계산된 각속도 변화량을 분석함으로써 이동형 로봇(100)의 주행 경로를 식별(또는 생성)할 수 있다.
그리고, 이동형 로봇(100)은 최종 모션에 기초하여 모터를 제어할 수 있다 (S515). 최종 모션이 결정되면, 이동형 로봇(100)은 최종 모션에 기초하여 이동형 로봇(100)이 제어되도록 모터(또는 구동부)를 제어할 수 있다.
도 6은 이동형 로봇(100)의 모션을 결정함에 있어 상태 정보를 고려하는 동작을 설명하기 위한 흐름도이다.
도 6의 S605, S620 단계는 도 5의 S505, S515 단계에 대응될 수 있다. 따라서, 중복 설명을 생략한다.
각속도 변화량이 획득된 후, 이동형 로봇(100)은 각속도 변화량에 기초하여 복수의 후보 모션 각각에 대응되는 상태 정보를 식별할 수 있다 (S610). 상태 정보는 이전 시점에서 획득된 각속도와 현재 시점에서 최종 결정되어야 하는 후보 모션의 각속도의 차이인 각속도 변화량에 기초하여 결정될 수 있다. 상태 정보를 결정하는 구체적인 동작은 도 9 및 도 13에서 기재한다.
그리고, 이동형 로봇(100)은 상태 정보에 기초하여 복수의 후보 모션 중 최종 모션을 식별할 수 있다 (S615). 이동형 로봇(100)은 상태 정보의 변화를 고려하여 최종 모션을 식별할 수 있다.
도 7은 이동형 로봇(100)의 모션을 결정함에 있어 타입 정보를 고려하는 동작을 설명하기 위한 흐름도이다.
도 7의 S705, S710, S725 단계는 도 6의 S605, S610, S620 단계에 대응될 수 있다. 따라서, 중복 설명을 생략한다.
각속도 변화량에 기초하여 상태 정보가 식별된 후, 이동형 로봇(100)은 상태 정보에 기초하여 복수의 후보 모션 각각에 대응되는 타입 정보를 식별할 수 있다 (S715). 타입 정보는 이전 시점에서 획득된 각속도 변화량과 현재 시점에서 최종 결정되어야 하는 후보 모션의 각속도 변화량을 비교하여 결정될 수 있다. 타입 정보를 결정하는 구체적인 동작은 도 15 내지 도 20에서 기재한다.
그리고, 이동형 로봇(100)은 타입 정보에 기초하여 최종 모션을 식별할 수 있다 (S720). 이동형 로봇(100)은 타입 정보에 따라 구분된 복수의 후보 모션 중 하나의 모션을 최종 모션으로 결정할 수 있다.
도 8은 이동형 로봇(100)의 모션을 결정함에 있어 주행 스코어를 고려하는 동작을 설명하기 위한 흐름도이다.
도 8의 S805, S810, S815, S830 단계는 S705, S710, S715, S725 단계에 대응될 수 있다. 따라서, 중복 설명을 생략한다.
타입 정보가 식별된 후, 이동형 로봇(100)은 복수의 후보 모션 각각에 대응되는 주행 스코어를 획득할 수 있다 (S820). 주행 스코어는 이동형 로봇(100)이 목표 지점까지 이동함에 있어 이동 거리, 이동 시간 및 안정성 측면에서 얼마나 우수한지를 나타내는 스코어를 의미할 수 있다. 주행 스코어가 큰 값을 갖는 모션일수록 이동형 로봇(100)의 주행에 적합한 모션인 것을 의미할 수 있다.
그리고, 이동형 로봇(100)은 타입 정보 별 최대 주행 스코어를 갖는 모션 중 최종 모션을 식별할 수 있다 (S825). 이동형 로봇(100)은 복수의 후보 모션을 기 설정된 타입으로 구분할 수 있다.
예를 들어, 10개의 후보 모션 중 3개의 후보 모션을 제1 타입으로 결정하고, 7개의 후보 모션을 제2 타입으로 결정하였다고 가정한다. 이동형 로봇(100)은 제1 타입의 후보 모션 중 주행 스코어가 가장 큰 모션을 제1 모션으로 결정할 수 있다. 또한, 이동형 로봇(100)은 제2 타입의 후보 모션 중 주행 스코어가 가장 큰 모션을 제2 모션으로 결정할 수 있다. 이동형 로봇(100)은 타입 정보 별 최대 주행 스코어를 갖는 제1 모션 또는 제2 모션 중 최종 모션을 식별할 수 있다.
도 9는 상태 정보를 계산하는 과정을 설명하기 위한 흐름도이다.
도 9의 S905, S935, S940 단계는 도 6의 S605, S615, S620 단계에 대응될 수 있다. 따라서, 중복 설명을 생략한다.
이동형 로봇(100)은 복수의 후보 모션 각각에 대응되는 각속도 변화량을 획득할 수 있다 (S905).
그리고, 이동형 로봇(100)은 각속도 변화량이 제1 임계값을 초과하는지 여부를 판단할 수 있다 (S910). 각속도 변화량이 제1 임계값을 초과하면 (S910-Y), 이동형 로봇(100)은 후보 모션의 상태 정보를 제1 상태(positive)로 식별할 수 있다 (S915).
각속도 변화량이 제1 임계값을 초과하지 않으면 (S910-N), 이동형 로봇(100)은 각속도 변화량이 제2 임계값 미만인지 여부를 판단할 수 있다 (S920). 각속도 변화량이 제2 임계값 미만이면 (S920-Y), 이동형 로봇(100)은 후보 모션의 상태 정보를 제2 상태(negative)로 식별할 수 있다 (S925).
각속도 변화량이 제2 임계값 미만이 아니면 (S920-N), 이동형 로봇(100)은 후보 모션의 상태 정보를 제3 상태(stable)로 식별할 수 있다 (S930).
이동형 로봇(100)은 후보 모션 각각에 대응되는 상태 정보를 식별하고, 식별된 정보를 저장할 수 있다.
그리고, 이동형 로봇(100)은 후보 모션의 상태 정보에 기초하여 최종 모션을 식별할 수 있다 (S935). 그리고, 이동형 로봇(100)은 최종 모션에 기초하여 모터를 제어할 수 있다 (S940).
도 10은 다양한 실시 예에 따라 타입 정보를 계산하는 과정을 설명하기 위한 흐름도이다.
도 10의 S1005, S1010, S1035, S1040 단계는 도 7의 S705, S710, S720, S725 단계에 대응될 수 있다. 또한, 복수의 후보 모션 각각이 제1 상태, 제2 상태, 제3 상태로 구분되는 동작은 도 9의 S910 내지 S930 단계와 동일할 수 있다. 따라서, 중복 설명을 생략한다.
상태 정보를 식별한 후, 이동형 로봇(100)은 상태 정보가 제1 상태에서 제2 상태로 변경되는지 여부를 식별할 수 있다 (S1015). 이동형 로봇(100)은 이전 시점에서의 상태 정보(이전 시점의 최종 모션에 대응되는 상태 정보)가 제1 상태이고 현재 시점에서의 상태 정보(후보 모션에 대응되는 상태 정보)가 제2 상태인지 식별할 수 있다. 상태 정보가 제1 상태에서 제2 상태로 변경되면 (S1015-Y), 이동형 로봇(100)은 후보 모션의 타입 정보가 비결정 타입(제1 타입)인 것으로 식별할 수 있다 (S1020).
상태 정보가 제1 상태에서 제2 상태로 변경되지 않으면 (S1015-N), 이동형 로봇(100)은 상태 정보가 제2 상태에서 제1 상태로 변경되었는지 여부를 식별할 수 있다 (S1025). 상태 정보가 제2 상태에서 제1 상태로 변경되었다면 (S1025-Y), 이동형 로봇(100)은 후보 모션의 타입 정보가 비결정 타입(제1 타입)인 것으로 식별할 수 있다 (S1020).
상태 정보가 제2 상태에서 제1 상태로 변경되지 않았다면 (S1025-N), 이동형 로봇(100)은 후보 모션의 타입 정보가 결정 타입(제2 타입)인 것으로 식별할 수 있다 (S1030). 이동형 로봇(100)은 복수의 후보 모션 각각의 타입 정보를 저장할 수 있다.
도 11은 다양한 실시 예에 따라 타입 정보를 계산하는 과정을 설명하기 위한 흐름도이다.
도 11의 S1105, S1110, S1130, S1135 단계는 도 10의 S1005, S1010, S1035, S1140 단계에 대응될 수 있다. 따라서, 중복 설명을 생략한다.
도 10에서는 상태 정보가 제1 상태에서 제2 상태로 변경되거나, 제2 상태에서 제1 상태로 변경되는 경우에 한하여 타입 정보가 비결정 타입(제1 타입)으로 식별할 수 있다. 하지만, 다양한 실시 예에 따라, 이동형 로봇(100)은 상태 정보가 다른 상태로 변경되는 경우 타입 정보를 비결정 타입(제1 타입)으로 식별할 수 있다. 예를 들어, 제1 상태에서 제2 상태 또는 제3 상태로 변경되는 경우, 이동형 로봇(100)은 후보 모션의 타입 정보를 비결정 타입(제1 타입)으로 식별할 수 있다. 또한, 제2 상태에서 제1 상태 또는 제 3상태로 변경되는 경우, 이동형 로봇(100)은 후보 모션의 타입 정보를 비결정 타입(제1 타입)으로 식별할 수 있다. 또한, 제3 상태에서 제1 상태 또는 제2 상태로 변경되는 경우, 이동형 로봇(100)은 후보 모션의 타입 정보를 비결정 타입(제1 타입)으로 식별할 수 있다.
상태 정보를 식별한 후, 이동형 로봇(100)은 상태 정보가 변경되었는지 여부를 식별할 수 있다 (S1115). 상태 정보가 변경된 경우 (S1115-Y), 이동형 로봇(100)은 후보 모션의 타입 정보가 비결정 타입(제1 타입)인 것으로 식별할 수 있다 (S1120).
상태 정보가 변경되지 않은 경우 (S1115-N), 이동형 로봇(100)은 후보 모션의 타입 정보가 결정 타입(제2 타입)인 것으로 식별할 수 있다 (S1125). 이동형 로봇(100)은 복수의 후보 모션 각각의 타입 정보를 저장할 수 있다.
도 12는 타입 정보 및 주행 스코어에 기초하여 최종 모션을 식별하는 과정을 설명하기 위한 흐름도이다.
도 12의 S1205, S1210, S1215, S1220, S1250 단계는 도 8의 S805, S810, S815, S820, S830 단계에 대응될 수 있다. 또한, 복수의 후보 모션 각각이 제1 상태, 제2 상태, 제3 상태로 구분되는 동작은 도 9의 S910 내지 S930 단계와 동일할 수 있다. 또한, 복수의 후보 모션 각각이 비결정 타입(제1 타입) 또는 결정 타입(제2 타입)으로 구분되는 동작은 도 10의 S1015 내지 S1030 단계와 동일할 수 있다. 따라서, 중복 설명을 생략한다.
주행 스코어를 획득한 후, 이동형 로봇(100)은 비결정 타입(제1 타입)에서 가장 높은 제1 주행 스코어를 갖는 제1 모션을 식별할 수 있다 (S1225).
그리고, 이동형 로봇(100)은 결정 타입(제2 타입)에서 가장 높은 제2 주행 스코어를 갖는 제2 모션을 식별할 수 있다 (S1230).
그리고, 이동형 로봇(100)은 제2 주행 스코어와 임계 주행 스코어를 합산할 수 있다. 그리고, 이동형 로봇(100)은 제1 주행 스코어가 제2 주행 스코어와 임계 주행 스코어의 합(또는 합산값)을 초과하는지 여부를 판단할 수 있다 (S1235). 제1 주행 스코어가 제2 주행 스코어와 임계 주행 스코어의 합(또는 합산값)을 초과하면 (S1235-Y), 이동형 로봇(100)은 제1 모션을 최종 모션으로 식별할 수 있다 (S1240).
제1 주행 스코어가 제2 주행 스코어와 임계 주행 스코어의 합(또는 합산값)을 초과하지 않으면 (S1235-N), 이동형 로봇(100)은 제2 모션을 최종 모션으로 식별할 수 있다 (S1245).
도 13은 각속도 변화량에 기초하여 복수의 후보 모션 중 최종 모션을 식별하는 계산 과정을 전반적으로 설명하기 위한 표이다.
도 13의 표(1305) 참조하면, 이동형 로봇(100)은 복수의 후보 모션(#01 내지 #10)의 주행 스코어를 획득할 수 있다. 여기서, 표(1305)는 주행 스코어 테이블을 의미할 수 있다.
Wi(W1 내지 W12)는 N 시점(현재 시점)에서 식별(또는 선택) 가능한 복수의 후보 모션의 각속도를 의미할 수 있다. 한편, 이동형 로봇(100)은 이전 시점(N-1)에서 식별된 최종 모션의 각속도를 저장할 수 있다. 표(1305)에서 이전 시점의 각속도는 -0.15이다.
그리고, 이동형 로봇(100)은 이전 시점의 각속도(-0.15)와 후보 모션의 각속도의 차이값에 기초하여 각속도 변화량을 획득할 수 있다.
예를 들어, 이동형 로봇(100)은 후보 모션(#01)의 각속도(0.1)와 이전 시점의 각속도(-0.15)의 차이값에 기초하여 각속도 변화량(+0.25)을 획득할 수 있다.
그리고, 이동형 로봇(100)은 각속도 변화량, 제1 임계값, 제2 임계값에 기초하여 후보 모션의 상태 정보를 식별할 수 있다. 제1 임계값은 0.1, 제2 임계값은 -0.1로 가정한다. 여기서, 제1 임계값 및 제2 임계값의 사용자의 설정에 따라 변경될 수 있다. 또한, 제1 임계값 및 제2 임계값의 절대값이 동일할 수 있다.
각속도 변화량이 제1 임계값(0.1)을 초과하면, 이동형 로봇(100)은 후보 모션의 상태 정보를 제1 상태(positive)로 식별할 수 있다. 각속도 변화량이 제1 임계값(0.1) 이하 및 제2 임계값(-0.1) 이상이면, 이동형 로봇(100)은 후보 모션의 상태 정보를 제3 상태(stable)로 식별할 수 있다. 각속도 변화량이 제2 임계값(-0.1) 미만이면, 이동형 로봇(100)은 후보 모션의 상태 정보를 제2 상태(negative)로 식별할 수 있다.
예를 들어, 후보 모션(#01)의 각속도 변화량(+0.25)이 제1 임계값(0.1)을 초과하므로, 이동형 로봇(100)은 후보 모션(#01)의 상태 정보를 제1 상태(positive)로 식별할 수 있다.
또한, 후보 모션(#04)의 각속도 변화량(+0.1)이 제1 임계값(0.1) 이하 및 제2 임계값(-0.1) 이상이므로, 후보 모션(#04)의 상태 정보를 제3 상태(stable)로 식별할 수 있다.
또한, 후보 모션(#09)의 각속도 변화량 (-0.15)이 제2 임계값(-0.1) 미만이므로, 이동형 로봇(100)은 후보 모션(#09)의 상태 정보를 제1 상태(positive)로 식별할 수 있다.
한편, 이동형 로봇(100)은 이전 시점에서 식별된 상태 정보를 저장할 수 있다. 여기서, 저장되는 상태 정보는 기 설정된 기간 동안 수집된 상태 정보를 종합하여 결정될 수 있다. 따라서, 상태 정보는 기 설정된 상태 정보로 기재될 수 있다. 예를 들어, 이전 시점의 상태 정보 또는 기 설정된 상태 정보가 제2 상태(negative)인 것으로 가정한다.
그리고, 이동형 로봇(100)은 기 설정된 상태 정보(이전 시점)와 후보 모션의 상태 정보(현재 시점)에 기초하여 타입 정보를 식별할 수 있다. 상태 정보가 제1 상태(positive)에서 제2 상태(negative)로 변경되거나 제2 상태(negative)에서 제1 상태(positive)로 변경되는 경우, 이동형 로봇(100)은 후보 모션의 타입 정보를 비결정 타입(제1 타입)으로 결정할 수 있다. 상태 정보가 제3 상태(stable)에서 변경되거나 제3 상태(stable)로 변경되는 경우, 이동형 로봇(100)은 후보 모션의 타입 정보를 결정 타입(제2 타입)으로 결정할 수 있다.
예를 들어, 후보 모션(#01)의 상태 정보가 제2 상태(negative)에서 제1 상태(positive)로 변경되었으므로, 이동형 로봇(100)은 후보 모션(#01)의 타입 정보를 비결정 타입(제1 타입)으로 식별할 수 있다.
또한, 후보 모션(#04)의 상태 정보가 제2 상태(negative)에서 제3 상태(stable)로 변경되었으므로, 이동형 로봇(100)은 후보 모션(#04)의 타입 정보를 결정 타입(제2 타입)으로 식별할 수 있다.
또한, 후보 모션(#09)의 상태 정보가 제2 상태(negative)에서 제2 상태(negative)로 유지되었으므로, 이동형 로봇(100)은 후보 모션(#09)의 타입 정보를 결정 타입(제2 타입)으로 식별할 수 있다.
그리고, 이동형 로봇(100)은 복수의 후보 모션 각각에 대응되는 주행 스코어를 계산할 수 있다. 주행 스코어와 관련된 구체적인 설명은 도 21 내지 도 24에서 기재한다.
그리고, 이동형 로봇(100)은 타입 정보 별로 최대 스코어를 갖는 모션을 식별할 수 있다.
예를 들어, 이동형 로봇(100)은 비결정 타입(제1 타입)으로 구분된 후보 모션들(w1, w2, w3) 중에서 최대 스코어(9)를 갖는 후보 모션(#02)을 식별할 수 있다. 또한, 이동형 로봇(100)은 결정 타입(제2 타입)으로 구분된 후보 모션들(w4, w5, w6, w7, w8, w9, w10) 중에서 최대 스코어(6)를 갖는 후보 모션(#07)을 식별할 수 있다.
그리고, 이동형 로봇(100)은 타입 정보 별 최대 스코어를 갖는 후보 모션들(w2, w7) 중에서 하나의 모션을 최종 모션으로 식별할 수 있다.
구체적으로, 이동형 로봇(100)은 타입 정보 별로 식별된 최대 스코어와 임계 스코어에 기초하여 최종 모션을 식별할 수 있다. 이동형 로봇(100)은 결정 타입(제2 타입)에서 획득된 최대 스코어와 임계 스코어를 합산한 값을 획득할 수 있다. 그리고, 이동형 로봇(100)은 비결정 타입(제1 타입)에서 획득된 최대 스코어가 결정 타입(제2 타입)에서 획득된 최대 스코어와 임계 스코어의 합산 값을 초과하는지 식별할 수 있다.
비결정 타입(제1 타입)에서 획득된 최대 스코어가 결정 타입(제2 타입)에서 획득된 최대 스코어와 임계 스코어의 합산 값을 초과하는 경우, 비결정 타입(제1 타입)에서 획득된 최대 스코어에 대응되는 후보 모션을 최종 모션으로 식별할 수 있다.
비결정 타입(제1 타입)에서 획득된 최대 스코어가 결정 타입(제2 타입)에서 획득된 최대 스코어와 임계 스코어의 합산 값을 초과하지 않는 경우, 결정 타입(제2 타입)에서 획득된 최대 스코어에 대응되는 후보 모션을 최종 모션으로 식별할 수 있다.
임계 스코어가 2라고 가정한다. 예를 들어, 비결정 타입(제1 타입)에서 획득된 최대 스코어(9)가 결정 타입(제2 타입)에서 획득된 최대 스코어(6)와 임계 스코어(2)의 합산 값(8)을 초과하므로, 이동형 로봇(100)은 비결정 타입(제1 타입)에서 획득된 최대 스코어에 대응되는 후보 모션(#02)을 최종 모션으로 식별할 수 있다.
도 14는 각속도 변화량을 설명하기 위한 도면이다.
도 14의 그래프(1410)를 참조하면, 이동형 로봇(100)은 동적 윈도우 접근(Dynamic Window Approach) 방식에 기초하여 주행 경로를 설정할 수 있다. 동적 윈도우 접근(Dynamic Window Approach) 방식은 로봇의 주행에 있어 장애물을 회피하는 방법을 의미하며, 유효한 검색 공간을 윈도우(window)로서 설정하고, 최적의 솔루션을 찾는 방법을 의미할 수 있다. 동적 윈도우 접근(Dynamic Window Approach) 방식에 따라 이동형 로봇(100)은 각속도(w^i) 및 선속도(V^j)가 정해진 모션을 결정할 수 있다. 여기서, 선속도는 이동형 로봇(100)에 포함된 센서(110)의 센싱 데이터에 기초하여 획득될 수 있다.
한편, 시점(N-2)의 유효한 검색 공간(1411)에서 복수의 후보 모션이 정해질 수 있다. 이동형 로봇(100)은 유효한 검색 공간(1411) 안에서 특정 각속도(w^i) 및 특정 선속도(v^j)를 포함하는 모션을 최종 모션으로 식별할 수 있다.
또한, 시점(N-1)의 유효한 검색 공간(1412)에서 복수의 후보 모션이 정해질 수 있다. 이동형 로봇(100)은 유효한 검색 공간(1412) 안에서 특정 각속도(w^i) 및 특정 선속도(v^j)를 포함하는 모션을 최종 모션으로 식별할 수 있다.
또한, 시점(N)의 유효한 검색 공간(1413)에서 복수의 후보 모션이 정해질 수 있다. 이동형 로봇(100)은 유효한 검색 공간(1413) 안에서 특정 각속도(w^i) 및 특정 선속도(v^j)를 포함하는 모션을 최종 모션으로 식별할 수 있다.
도 14의 그래프(1420)는 시간에 따른 각속도를 나타낸다. 즉, 그래프(1420)는 복수의 시점(N-2, N-1, N) 각각의 각속도를 나타낸다. 복수의 시점 각각에서 최종 모션이 선택될 수 있다. 이동형 로봇(100)은 복수의 시점 각각에서 선택된(또는 식별된) 최종 모션에 대응되는 각속도를 저장할 수 있다. 그리고, 이동형 로봇(100)은 각속도 변화량을 계산하고 계산된 각속도 변화량을 저장할 수 있다. 여기서, w^i는 각속도를 의미할 수 있으며, 각속도의 단위는 rad/s일 수 있다.
도 14의 그래프(1430)는 시간에 따른 각속도 변화량을 나타낸다. 그래프(1430)는 복수의 시점(N-2, N-1, N) 각각의 각속도 변화량을 나타낸다.
시점(N-2)에서는 각속도 변화량이 0인 것으로 가정한다. 이동형 로봇(100)은 각속도 변화량(0)이 제1 임계값 이하이고 제2 임계값 이상이므로, 이동형 로봇(100)은 N-2 시점의 상태 정보를 제3 상태(stable)로 식별할 수 있다.
시점(N-1)에서는 각속도 변화량이 제1 임계값을 초과하였으므로, 이동형 로봇(100)은 N-1 시점의 상태 정보를 제1 상태(positive)로 식별할 수 있다.
시점(N)에서는 각속도 변화량이 제2 임계값 미만이므로, 이동형 로봇(100)은 N 시점의 상태 정보를 제2 상태(negative)로 식별할 수 있다.
여기서, 제1 임계값과 제2 임계값의 절대값이 동일하며, 제1 임계값과 제2 임계값의 부호가 상이할 수 있다.
도 15는 다양한 실시 예에 따라 타입 정보를 식별하는 동작을 설명하기 위한 도면이다.
도 15의 실시 예(1510 )의 표(1511)는 상태 정보가 제3 상태(stable)에서 제1 상태(positive)로 변경된 것을 나타낸다. 이전 시점(ta)에서 상태 정보는 제3 상태(stable) 였으며, 현재 시점(tb)에서 후보 모션의 상태 정보는 제1 상태(positive)일 수 있다. 따라서, 이동형 로봇(100)은 실시 예(1510)의 타입 정보를 결정 타입(제2 타입)으로 결정할 수 있다.
도 15의 실시 예(1520 )의 표(1521)는 상태 정보가 제3 상태(stable)에서 제3 상태(stable)로 유지된 것을 나타낸다. 이전 시점(ta)에서 상태 정보는 제3 상태(stable) 였으며, 현재 시점(tb)에서 후보 모션의 상태 정보는 제3 상태(stable)일 수 있다. 따라서, 이동형 로봇(100)은 실시 예(1520)의 타입 정보를 결정 타입(제2 타입)으로 결정할 수 있다.
도 15의 실시 예(1530 )의 표(1531)는 상태 정보가 제3 상태(stable)에서 제2 상태(negative)로 변경된 것을 나타낸다. 이전 시점(ta)에서 상태 정보는 제3 상태(stable) 였으며, 현재 시점(tb)에서 후보 모션의 상태 정보는 제2 상태(negative) 일 수 있다. 따라서, 이동형 로봇(100)은 실시 예(1530)의 타입 정보를 결정 타입(제2 타입)으로 결정할 수 있다.
도 16은 다양한 실시 예에 따라 타입 정보를 식별하는 동작을 설명하기 위한 도면이다.
도 16의 실시 예(1610 )의 표(1611)는 상태 정보가 제1 상태(positive)에서 제1 상태(positive)로 유지된 것을 나타낸다. 이전 시점(ta)에서 상태 정보는 제1 상태(positive) 였으며, 현재 시점(tb)에서 후보 모션의 상태 정보는 제1 상태(positive)일 수 있다. 따라서, 이동형 로봇(100)은 실시 예(1610)의 타입 정보를 결정 타입(제2 타입)으로 결정할 수 있다.
도 16의 실시 예(1620 )의 표(1621)는 상태 정보가 제1 상태(positive)에서 제3 상태(stable)로 변경된 것을 나타낸다. 이전 시점(ta)에서 상태 정보는 제1 상태(positive)였으며, 현재 시점(tb)에서 후보 모션의 상태 정보는 제3 상태(stable)일 수 있다. 따라서, 이동형 로봇(100)은 실시 예(1620)의 타입 정보를 결정 타입(제2 타입)으로 결정할 수 있다.
도 16의 실시 예(1630 )의 표(1631)는 상태 정보가 제1 상태(positive)에서 제2 상태(negative)로 변경된 것을 나타낸다. 이전 시점(ta)에서 상태 정보는 제1 상태(positive) 였으며, 현재 시점(tb)에서 후보 모션의 상태 정보는 제2 상태(negative)일 수 있다. 따라서, 이동형 로봇(100)은 실시 예(1630)의 타입 정보를 비결정 타입(제1 타입)으로 결정할 수 있다.
도 17은 다양한 실시 예에 따라 타입 정보를 식별하는 동작을 설명하기 위한 도면이다.
도 17의 실시 예(1710 )의 표(1711)는 상태 정보가 제2 상태(negative)에서 제1 상태(positive)로 변경된 것을 나타낸다. 이전 시점(ta)에서 상태 정보는 제2 상태(negative) 였으며, 현재 시점(tb)에서 후보 모션의 상태 정보는 제1 상태(positive)일 수 있다. 따라서, 이동형 로봇(100)은 실시 예(1710)의 타입 정보를 비결정 타입(제1 타입)으로 결정할 수 있다.
도 17의 실시 예(1720 )의 표(1721)는 상태 정보가 제2 상태(negative)에서 제3 상태(stable)로 변경된 것을 나타낸다. 이전 시점(ta)에서 상태 정보는 제2 상태(negative)였으며, 현재 시점(tb)에서 후보 모션의 상태 정보는 제3 상태(stable)일 수 있다. 따라서, 이동형 로봇(100)은 실시 예(1720)의 타입 정보를 결정 타입(제2 타입)으로 결정할 수 있다.
도 17의 실시 예(1730 )의 표(1731)는 상태 정보가 제2 상태(negative)에서 제2 상태(negative)로 유지된 것을 나타낸다. 이전 시점(ta)에서 상태 정보는 제2 상태(negative) 였으며, 현재 시점(tb)에서 후보 모션의 상태 정보는 제2 상태(negative)일 수 있다. 따라서, 이동형 로봇(100)은 실시 예(1730)의 타입 정보를 결정 타입(제2 타입)으로 결정할 수 있다.
도 18은 다양한 실시 예에 따라 기 설정된 기간 동안 저장된 각속도 변화량을 고려하여 타입 정보를 식별하는 동작을 설명하기 위한 도면이다.
다양한 실시 예에 따라, 기 설정된 기간에 제1 상태(positive) 또는 제2 상태(negative) 중 어느 하나가 식별되는 경우, 이동형 로봇(100)은 기 설정된 상태 정보를 식별된 제1 상태(positive) 또는 식별된 제2 상태(negative)로 식별할 수 있다. 또한, 기 설정된 기간에 제3 상태(stable)만 포함되는 경우, 이동형 로봇(100)은 기 설정된 상태 정보를 제3 상태(stable)로 식별할 수 있다. 또한, 기 설정된 기간에 제1 상태(positive) 및 제2 상태(negative)가 모두 식별되는 경우, 이동형 로봇(100)은 기 설정된 상태 정보를 가장 최근에 식별된 상태 정보로 결정할 수 있다.
도 18의 그래프(1810)는 시간에 따른 각속도를 나타낸다. 그래프(1810)는 t0 시점부터 t7 시점까지의 각속도를 나타낸다. 이동형 로봇(100)은 t7 시점에서 복수의 후보 모션의 각속도에 기초하여 각속도 변화량을 획득할 수 있다.
도 18의 그래프(1820)는 시간에 따른 각속도 변화량을 나타낸다. 그래프(1820)는 t1 시점부터 t7 시점까지의 각속도 변화량을 나타낸다. 이동형 로봇(100)은 t7 시점에서 복수의 후보 모션 각각의 각속도 변화량에 기초하여 상태 정보를 식별할 수 있다.
도 18의 표(1830)는 시간에 따른 상태 정보를 나타낸다. 표(1830)는 t1 시점부터 t7 시점까지의 상태 정보를 나타낸다. 이동형 로봇(100)은 기 설정된 기간에 기초하여 이전 시점의 상태 정보를 식별할 수 있다.
예를 들어, 기 설정된 기간을 5 단위 시간으로 가정한다. 이동형 로봇(100)은 t2 내지 t6 시점 각각에 대응되는 상태 정보에 기초하여 기 설정된 상태 정보가 제2 상태(negative)인 것으로 식별 할 수 있다. t2 내지 t6에서 제1 상태(positive)는 식별되지 않고 제2 상태(negative)만 식별되기 때문이다. 그리고, 후보 모션의 상태 정보가 제2 상태(negative)인 것으로 가정한다. 기 설정된 상태 정보가 제2 상태(negative)이고 후보 모션의 상태 정보가 제2 상태(negative)이므로, 이동형 로봇(100)은 후보 모션의 타입 정보를 결정 타입(제2 타입)으로 결정할 수 있다.
도 19는 다양한 실시 예에 따라 기 설정된 기간 동안 저장된 각속도 변화량을 고려하여 타입 정보를 식별하는 동작을 설명하기 위한 도면이다.
도 19의 그래프(1910)는 시간에 따른 각속도를 나타낸다. 그래프(1910)는 t0 시점부터 t7 시점까지의 각속도를 나타낸다. 이동형 로봇(100)은 t7 시점에서 복수의 후보 모션의 각속도에 기초하여 각속도 변화량을 획득할 수 있다.
도 19의 그래프(1920)는 시간에 따른 각속도 변화량을 나타낸다. 그래프(1920)는 t1 시점부터 t7 시점까지의 각속도 변화량을 나타낸다. 이동형 로봇(100)은 t7 시점에서 복수의 후보 모션 각각의 각속도 변화량에 기초하여 상태 정보를 식별할 수 있다.
도 19의 표(1930)는 시간에 따른 상태 정보를 나타낸다. 표(1930)는 t1 시점부터 t7 시점까지의 상태 정보를 나타낸다. 이동형 로봇(100)은 기 설정된 기간에 기초하여 이전 시점의 상태 정보를 식별할 수 있다.
예를 들어, 기 설정된 기간을 5 단위 시간으로 가정한다. 이동형 로봇(100)은 t2 내지 t6 시점 각각에 대응되는 상태 정보에 기초하여 기 설정된 상태 정보가 제2 상태(negative)인 것으로 식별 할 수 있다. t2 내지 t6에서 제1 상태(positive)는 식별되지 않고 제2 상태(negative)만 식별되기 때문이다. 그리고, 후보 모션의 상태 정보가 제3 상태(stable)인 것으로 가정한다. 기 설정된 상태 정보가 제2 상태(negative)이고 후보 모션의 상태 정보가 제3 상태(stable)이므로, 이동형 로봇(100)은 후보 모션의 타입 정보를 결정 타입(제2 타입)으로 결정할 수 있다.
도 20은 다양한 실시 예에 따라 기 설정된 기간 동안 저장된 각속도 변화량을 고려하여 타입 정보를 식별하는 동작을 설명하기 위한 도면이다.
도 20의 그래프(2010)는 시간에 따른 각속도를 나타낸다. 그래프(2010)는 t0 시점부터 t7 시점까지의 각속도를 나타낸다. 이동형 로봇(100)은 t7 시점에서 복수의 후보 모션의 각속도에 기초하여 각속도 변화량을 획득할 수 있다.
도 20의 그래프(2020)는 시간에 따른 각속도 변화량을 나타낸다. 그래프(2020)는 t1 시점부터 t7 시점까지의 각속도 변화량을 나타낸다. 이동형 로봇(100)은 t7 시점에서 복수의 후보 모션 각각의 각속도 변화량에 기초하여 상태 정보를 식별할 수 있다.
도 20의 표(2030)는 시간에 따른 상태 정보를 나타낸다. 표(2030)는 t1 시점부터 t7 시점까지의 상태 정보를 나타낸다. 이동형 로봇(100)은 기 설정된 기간에 기초하여 이전 시점의 상태 정보를 식별할 수 있다.
예를 들어, 기 설정된 기간을 5 단위 시간으로 가정한다. 이동형 로봇(100)은 t2 내지 t6 시점 각각에 대응되는 상태 정보에 기초하여 기 설정된 상태 정보가 제2 상태(negative)인 것으로 식별 할 수 있다. t2 내지 t6에서 제1 상태(positive)는 식별되지 않고 제2 상태(negative)만 식별되기 때문이다. 그리고, 후보 모션의 상태 정보가 제1 상태(positive)인 것으로 가정한다. 기 설정된 상태 정보가 제2 상태(negative)이고 후보 모션의 상태 정보가 제1 상태(positive)이므로, 이동형 로봇(100)은 후보 모션의 타입 정보를 비결정 타입(제1 타입)으로 결정할 수 있다.
도 21은 주행 스코어에 기초하여 최종 모션을 식별하는 실시 예를 설명하기 위한 도면이다.
도 21의 실시 예(2110)는 이동형 로봇(100), 장애물(20) 및 목표 지점(10)을 나타낼 수 있다. 이동형 로봇(100)은 목표 지점(10)까지 이동하기 위해 장애물(20)을 회피하는 주행 경로를 생성할 수 있다. 주행 경로를 생성함에 있어 이동형 로봇(100)은 복수의 후보 모션 각각에 대응되는 주행 스코어를 계산할 수 있다.
도 21의 수학식(2120)은 주행 스코어를 계산하는 방법을 나타낸다. 수학식(2120)에 따라 주행 스코어는 “W_obs*C_obs - W_goal*D_goal”로 계산될 수 있다.
w^i는 후보 모션의 각속도를 나타낸다.
v^j는 후보 모션의 선속도를 나타낸다.
W_obs는 C_obs에 대응되는 가중치를 나타낸다.
C_obs는 이동형 로봇(100)의 예측 궤적 내에서 이동형 로봇(100)의 위치에서 장애물(20)의 위치까지의 거리(호(arc)의 길이 또는 직선의 길이)를 나타낸다. 다양한 실시 예에 따라, C_obs는 장애물(20)을 회피하기 위해 이동형 로봇(100)이 이동해야 하는 거리를 나타낼 수 있다.
W_goal은 D_goal 에 대응되는 가중치를 나타낸다.
D_goal은 이동형 로봇(100)의 예측 지점에서 목표 지점(10)까지의 거리를 나타낸다. 예측 지점은 예측 궤적 내에서 장애물(20)을 회피한 후 이동형 로봇(100)이 위치할 수 있는 지점을 의미할 수 있다.
W_obs 및 W_goal은 0보다 큰 값을 가질 수 있다.
도 21의 수학식(2130)은 최종 모션을 선택하기 위해 계산하는 방법을 나타낸다.
Desired Velocity(w,v)는 최종 모션을 나타낸다.
w는 최종 모션의 각속도를 나타낸다.
v는 최종 모션의 선속도를 나타낸다.
argmaxScore(w^i,v^j)는 각속도 및 선속도를 포함하는 복수의 후보 모션 중 주행 스코어가 최대인 각속도 및 선속도를 찾는 함수를 의미할 수 있다.
w^i는 후보 모션의 각속도를 나타내며, W_List에 포함된 값을 나타낼 수 있다.
v^j는 후보 모션의 선속도를 나타내며, V_List에 포함된 값을 나타낼 수 있다.
W_List는 기 설정된 공간(또는 유효한 검색 공간)을 나타내는 후보 모션의 각속도 범위를 나타낼 수 있다.
V_List는 기 설정된 공간(또는 유효한 검색 공간)을 나타내는 후보 모션의 각속도 범위를 나타낼 수 있다.
도 22는 다양한 실시 예에 따라 주행 스코어를 계산하는 과정을 설명하기 위한 도면이다.
도 22의 실시 예(2210)는 이동형 로봇(100), 장애물(20) 및 목표 지점(10)을 나타낼 수 있다. 도 22의 실시 예(2210)는 장애물(20)이 이동형 로봇(100)의 주행 방향의 우측에 존재하는 상황을 나타낸다.
이동형 로봇(100)이 위치하는 지점은 (x0,y0)이고, 목표 지점은 (x1,y1)이고, 장애물이 위치하는 지점은 (x2,y2)일 수 있다. 이동형 로봇(100)은 후보 모션의 각속도 및 후보 모션의 선속도에 기초하여 가상의 중심점을 (x3,y3)로 식별할 수 있다. 이동형 로봇(100)은 가상의 중심점 및 회전 반경(r)에 기초하여 예측 궤적을 식별할 수 있다. 그리고, 이동형 로봇(100)은 예측 궤적 내에서 예측 지점을 (x4,y4)로 식별할 수 있다. 그리고, 이동형 로봇(100)은 예측 궤적 내에서 이동형 로봇(100)과 장애물(20) 사이의 각도(θ)를 식별할 수 있다. 또한, 이동형 로봇(100)은 이동형 로봇(100)의 예측 궤적 내에서 이동형 로봇(100)의 위치에서 장애물(20)의 위치까지의 거리(C_obs)를 식별할 수 있다. 또한, 이동형 로봇(100)은 이동형 로봇(100)의 예측 지점에서 목표 지점(10)까지의 거리(D_goal)를 식별할 수 있다.
도 22의 그래프(2220)는 실시 예(2210)를 나타내기 위한 2차원 그래프일 수 있다. 그래프(2220)에서 가상의 삼각형(2221)을 통해 θ를 식별할 수 있다.
수학식(2230)은 가상의 중심점을 찾는 계산 방법을 나타낼 수 있다. 가상의 중심점은 이동형 로봇(100)의 위치(x0,y0)로부터 회전 반경(r)만큼 y축으로 이동된 점일 수 있다. 회전 반경(r)은 y3를 의미할 수 있다. 그리고, 회전 반경 (r)은 |v^j/w^i|일 수 있다.
수학식(2240)은 예측 궤적 내에서 이동형 로봇(100)과 장애물(20) 사이의 각도(θ)를 계산하는 방식을 나타낸다. 가상의 삼각형(2221)에 따라, 각도(θ)는 tan-1(|x2|/|y3-y2|)일 수 있다. 또한, r에 대한 수학식(2230)을 고려하면, 각도(θ)는 tan^-1(|x2|/||v^j/w^i|-y2|)일 수 있다.
수학식(2250)은 거리(C_obs)를 계산하는 방식을 나타낸다. 거리(C_obs)는 r*θ일 수 있다. 또한, r에 대한 수학식(2230)을 고려하면, 거리(C_obs)는 |v^j/w^i| *θ일 수 있다. 또한, θ에 대한 수학식(2240)을 고려하면, 거리(C_obs)는 |v^j/w^i|* tan^-1(|x2|/||v^j/w^i|-y2|)일 수 있다.
수학식(2260)은 거리(D_goal)를 계산하는 방식을 나타낸다. 거리(D_goal)는 root((x1-x4)^2+(y1-y4)^2)일 수 있다.
도 23은 다양한 실시 예에 따라 주행 스코어를 계산하는 과정을 설명하기 위한 도면이다.
도 23의 실시 예(2310)는 이동형 로봇(100), 장애물(20) 및 목표 지점(10)을 나타낼 수 있다. 도 23의 실시 예(2310)는 장애물(20)이 이동형 로봇(100)의 주행 방향의 좌측에 존재하는 상황을 나타낸다.
이동형 로봇(100)이 위치하는 지점은 (x0,y0)이고, 목표 지점은 (x1,y1)이고, 장애물이 위치하는 지점은 (x2,y2)일 수 있다. 가상의 중심점은 (x3,y3)이고. 예측 궤적 내에서 예측 지점은 (x4,y4)일 수 있다. 예측 궤적 내에서 이동형 로봇(100)과 장애물(20) 사이의 각도는 θ이고, 예측 궤적 내에서 이동형 로봇(100)의 위치에서 장애물(20)의 위치까지의 거리는 C_obs이고, 예측 지점에서 목표 지점(10)까지의 거리는 D_goal일 수 있다. 이와 관련된 설명은 도 23에서 기재하였으므로 중복 설명을 생략한다.
도 23의 그래프(2320)는 실시 예(2310)를 나타내기 위한 2차원 그래프일 수 있다. 그래프(2320)에서 가상의 삼각형(2321)을 통해 θ를 식별할 수 있다.
도 23의 수학식(2330, 2340, 2350, 2360)은 도 22의 수학식(2230,2240,2250,2260)에 대응될 수 있다. 따라서, 중복 설명을 생략한다.
도 24는 다양한 실시 예에 따라 주행 스코어의 최대값을 계산하는 과정을 설명하기 위한 도면이다.
도 24의 실시 예(2410)는 주행 스코어의 최대값을 찾는 과정을 그래프로 표현한 것이다. 그래프(2411)는 특정 유효한 검색 공간에 포함된 후보 모션의 각속도 및 후보 모션의 선속도를 나타낼 수 있다. 유효한 검색 공간은 후보 모션의 각속도 범위가 wa에서 wb이며, 후보 모션의 선속도 범위가 va에서 vb일 수 있다.
도 24의 수학식(2420)은 도 21의 수학식(2120)에 대응될 수 있다. 따라서, 중복 설명을 생략한다. 여기서, 수학식(2430)은 수학식(2420)을 “W_goal*D_goal”로 정리한 식일 수 있다.
여기서, 수학식(2440)은 수학식(2430)을 “D_goal”로 정리한 식일 수 있다. 수학식(2440)에 따라, 그래프(2412)는 x축이 C_obs이고 y축이 D_goal일 수 있다. 그래프(2412)에서 후보 모션 각각의 y축 절편을 고려하면 주행 스코어의 최대 주행 스코어를 계산할 수 있다.
도 25는 비결정 타입과 결정 타입 중 하나의 타입에 해당하는 모션을 최종 모션으로 식별하는 동작을 설명하기 위한 도면이다.
도 25를 참조하면, 이동형 로봇(100)은 타입 정보 별로 주행 스코어의 최대값을 획득할 수 있다. 구체적으로, 이동형 로봇(100)은 복수의 후보 모션을 비결정 타입(제1 타입) 또는 결정 타입(제2 타입)으로 구분할 수 있다.
이동형 로봇(100)은 비결정 타입(제1 타입)으로 구분된 후보 모션 중 최대 주행 스코어를 갖는 후보 모션(제1 모션)을 식별할 수 있다. 비결정 타입(제1 타입)에서 획득되는 최대 주행 스코어를 S_i로 기재한다. 또한, 이동형 로봇(100)은 결정 타입(제2 타입)으로 구분된 후보 모션 중 최대 주행 스코어를 갖는 후보 모션(제2 모션)을 식별할 수 있다. 결정 타입(제2 타입)에서 획득되는 최대 주행 스코어를 S_d로 기재한다.
이동형 로봇(100)은 제1 모션의 주행 스코어(S_i)와 제2 모션의 주행 스코어(S_d)에 기초하여 최종 모션을 식별할 수 있다. 이동형 로봇(100)은 제2 모션의 주행 스코어(S_d)와 임계 주행 스코어(S_adv)를 합산한 값(S_d+ S_adv)을 획득할 수 있다. 그리고, 이동형 로봇(100)은 제1 모션의 주행 스코어(S_i)와 합산값(S_d+ S_adv)을 비교하여 최종 모션을 식별할 수 있다.
실시 예(2510)에 따라, 제1 모션의 주행 스코어(S_i)가 합산값(S_d+ S_adv)을 초과하면, 이동형 로봇(100)은 주행 스코어(S_i)에 대응되는 제1 모션을 최종 모션으로 식별할 수 있다.
실시 예(2520)에 따라, 제1 모션의 주행 스코어(S_i)가 합산값(S_d+ S_adv) 이하이면, 이동형 로봇(100)은 주행 스코어(S_d)에 대응되는 제2 모션을 최종 모션으로 식별할 수 있다.
실시 예(2530)에 따라, 이동형 로봇(100)은 임계 주행 스코어(S_adv)를 추가적으로 고려함으로써 결정 타입으로 구분된 후보 모션을 선택할 확률을 높일 수 있다. 임계 주행 스코어(S_adv)가 클수록 결정 타입(제2 타입)의 후보 모션이 선택될 가능성이 높아질 수 있다.
실시 예(2530)에서 x축은 제1 모션(비결정 타입)의 주행 스코어(S_i)이고 y축은 선속도를 의미할 수 있다. 여기서, V_i는 제1 모션(비결정 타입)의 선속도이고 V_d는 제2 모션(결정 타입)의 선속도이다. 제1 모션의 주행 스코어(S_i)가 합산값(S_d+ S_adv)을 초과하면(또는 이상이면), 이동형 로봇(100)은 제1 모션(비결정 타입)의 선속도(V_i)로 모터를 제어할 수 있다. 또한, 제1 모션의 주행 스코어(S_i)가 합산값(S_d+ S_adv)을 초과하지 않으면, 이동형 로봇(100)은 제2 모션(결정 타입)의 선속도(V_d)로 모터를 제어할 수 있다. S_d에서 S_d+ S_adv까지 인 영역을 활성화 영역(Activation Region)으로 표현할 수 있다. 활성화 영역은 제2 모션의 주행 스코어(S_d )보다 큰 주행 스코어에 해당하여도 제2 모션(결정 타입)의 선속도(V_d)로 모터를 제어하는 영역일 수 있다.
도 26은 복수의 후보 모션 중 하나의 모션을 최종 모션으로 선택하는 전체적 동작 과정을 설명하는 도면이다.
도 26을 참조하면, 이동형 로봇(100)은 주행 경로 생성 모듈(2600)을 포함할 수 있다. 여기서, 주행 경로 생성 모듈(2600)은 “Forward Planner”로 기재될 수 있다. 주행 경로 생성 모듈(2600)은 모션 후보 생성 모듈(2610), 모션 분석 모듈(2620), 스코어 테이블 생성 모듈(2630) 또는 모션 선택 모듈(2640) 중 적어도 하나를 포함할 수 있다.
모션 후보 생성 모듈(2610)은 유효한 검색 공간(또는 동적 윈도우)에서 식별 가능한 복수의 후보 모션을 생성하는 모듈을 의미할 수 있다.
모션 분석 모듈(2620)은 모션 저장부(2621) 또는 모션 분류부(2622) 중 적어도 하나를 포함할 수 있다. 모션 저장부(2621)는 이동형 로봇(100)이 실제로 주행한 선속도 또는 각속도 정보를 저장할 수 있다. 모션 저장부(2621)는 모션과 관련된 정보를 저장할 수 있다. 모션 분류부(2622)는 모션 저장부(2621)에 저장된 모션 기록과 모션 후보 생성 모듈(2610)에서 생성된 후보 모션을 비교하여 모션의 타입 정보를 구분할 수 있다.
스코어 테이블 생성 모듈(2630)은 복수의 후보 모션 각각의 주행 스코어를 생성할 수 있다.
모션 선택 모듈(2640)은 생성된 주행 스코어에 기초하여 최종 모션을 식별할 수 있다. 구체적으로, 이동형 로봇(100)은 모션 분류부(2622)에서 분류된 타입 정보 및 스코어 테이블 생성 모듈(2630)에서 생성된 주행 스코어에 기초하여 최적의 최종 모션을 선택할 수 있다.
도 27은 이동형 로봇(100)이 이동함에 따라 변경되는 위치 및 각속도를 설명하기 위한 도면이다.
도 27의 그래프(2710)는 이동형 로봇(100)의 주행 경로를 나타내는 2차원 좌표계이다. 그래프(2710)에 따라, 이동형 로봇(100)은 시작 지점에서 출발하여 장애물(20)의 좌측 방향으로 이동할 수 있다.
도 27의 그래프(2720)는 시간에 따른 각속도를 나타낸다. 일반 모드로 주행하는 경우 3초 전후 및 6초 전후에서 각속도가 급격하게 변경된다. 하지만, 소프트 주행 모드(각속도 변화량을 고려하여 주행하는 모드)로 주행하는 경우, 3초 전후 및 6초 전후에서 각속도가 일정하게 유지될 수 있다. 따라서, 이동형 로봇(100)의 주행 안정성이 높아질 수 있다.
도 28은 소프트 주행 모드로 동작하는 이동형 로봇(100)을 설명하기 위한 흐름도이다.
도 28을 참조하면, 이동형 로봇(100)은 복수의 후보 모션 각각에 대응되는 각속도 변화량을 획득할 수 있다 (S2805). 그리고, 이동형 로봇(100)은 소프트 주행 모드로 주행할 수 있다 (S2810). 이동형 로봇(100)은 기본적으로 소프트 주행 모드로 항상 주행할 수 있다. 여기서, 소프트 주행 모드는 최소 시간 또는 최단 거리이외에 각속도 변화량을 추가적으로 고려하여 주행하는 모드일 수 있다. 각속도 변화량을 고려하는 주행 동작은 도 5 내지 도 12에서 기재한다.
도 29는 일반 주행 모드와 소프트 주행 모드를 비교하기 위한 도면이다.
도 29를 참조하면, 이동형 로봇(100)은 주행 모드를 선택하도록 가이드하기 위한 UI 화면(2900)을 사용자에게 제공할 수 있다. UI 화면(2900)은 주행 모드를 선택할 것을 나타내는 텍스트 정보(2910), 일반 주행 모드를 설명하는 UI(2910) 또는 소프트 주행 모드를 설명하는 UI(2920) 중 적어도 하나를 포함할 수 있다.
일반 주행 모드를 설명하는 UI(2910)는 최단 경로(또는 최소 시간)을 기준으로 주행함을 나타내는 텍스트 정보(2911) 또는 일반 주행 모드에 따른 주행 경로의 대표 예시를 나타내는 가이드 이미지 정보(2912) 중 적어도 하나를 포함할 수 있다. 여기서, 이미지 정보(2912)는 대표 실시 예의 이미지를 포함할 수 있다. 다양한 실시 예에 따라, 이미지 정보(2912)는 실제 예상 주행 경로의 이미지를 포함할 수 있다.
소프트 주행 모드를 설명하는 UI(2920)는 최단 경로(또는 최소 시간)을 기준으로 주행함을 나타내는 텍스트 정보(2921) 또는 소프트 주행 모드에 따른 주행 경로의 대표 예시를 나타내는 가이드 이미지 정보(2922) 중 적어도 하나를 포함할 수 있다. 여기서, 이미지 정보(2922)는 대표 실시 예의 이미지를 포함할 수 있다. 다양한 실시 예에 따라, 이미지 정보(2922)는 실제 예상 주행 경로의 이미지를 포함할 수 있다.
도 30은 소프트 주행 모드와 관련된 인디케이터를 설명하기 위한 도면이다.
도 30의 실시 예(3010)에 따라, 이동형 로봇(100)은 소프트 주행 모드를 나타내는 인디케이터(3011)를 표시할 수 있다. 이동형 로봇(100)은 사용자 설정에 따라 일반 모드와 소프트 주행 모드로 동작할 수 있다. 이동형 로봇(100)이 소프트 주행 모드로 동작하는 경우, 이동형 로봇(100)은 인디케이터(3011)를 표시할 수 있다. 인디케이터(3011)를 표시하는 동작은 특정 위치에 배치된 LED(light emitting diode)를 발광하는 것을 의미할 수 있다.
도 30의 실시 예(3020)에 따라, 이동형 로봇(100)은 디스플레이(140)를 포함할 수 있다. 그리고, 이동형 로봇(100)이 소프트 주행 모드로 동작하는 경우, 이동형 로봇(100)은 소프트 주행 모드로 주행함을 나타내는 인디케이터를 디스플레이(140)에 표시할 수 있다. 여기서, 인디케이터는 텍스트 정보(3021) 또는 아이콘(3022) 중 적어도 하나를 포함할 수 있다.
도 31은 다양한 실시 예에 따라 소프트 주행 모드로 주행하는 동작을 설명하기 위한 흐름도이다.
도 31을 참조하면, 이동형 로봇(100)은 복수의 후보 모션 각각에 대응되는 각속도 변화량을 획득할 수 있다 (S3105). 그리고, 이동형 로봇(100)은 장애물의 존재 여부를 식별할 수 있다 (S3110). 이동형 로봇(100)은 센서(110)로부터 획득된 센싱 데이터에 기초하여 이동형 로봇(100)의 주행 경로 상에 장애물이 있는지 여부를 식별할 수 있다.
장애물이 식별되면 (S3110-Y), 이동형 로봇(100)은 소프트 주행 모드로 주행할 수 있다 (S3115). 소프트 주행 모드는 각속도 변화량에 기초하여 이동형 로봇(100)의 주행 경로가 설정되는 모드일 수 있다.
장애물이 식별되지 않으면 (S3110-N), 이동형 로봇(100)은 일반 주행 모드로 주행할 수 있다 (S3120). 일반 주행 모드는 최단 거리 또는 최소 시간에 기초하여 이동형 로봇(100)의 주행 경로가 설정되는 모드일 수 있다.
도 32는 다양한 실시 예에 따라 소프트 주행 모드로 주행하는 동작을 설명하기 위한 흐름도이다.
도 32를 참조하면, 이동형 로봇(100)은 복수의 후보 모션 각각에 대응되는 각속도 변화량을 획득할 수 있다 (S3205). 그리고, 이동형 로봇(100)은 각속도 변화량이 양수에서 음수로 변경되는지 여부를 식별할 수 있다 (S3210).
각속도 변화량이 양수에서 음수로 변경되면 (S3210-Y), 이동형 로봇(100)은 소프트 주행 모드로 주행할 수 있다 (S3215).
각속도 변화량이 양수에서 음수로 변경되지 않으면 (S3210-N), 이동형 로봇(100)은 각속도 변화량이 음수에서 양수로 변경되는지 여부를 식별할 수 있다 (S3220). 각속도 변화량이 음수에서 양수로 변경되면 (S3220-Y), 이동형 로봇(100)은 소프트 주행 모드로 주행할 수 있다 (S3215).
각속도 변화량이 음수에서 양수로 변경되지 않으면 (S3220-N), 이동형 로봇(100)은 일반 주행 모드로 주행할 수 있다.
즉, 각속도 변화량이 음수에서 양수로 변경되거나 각속도 변화량이 음수에서 양수로 변경되는 경우에 한하여, 이동형 로봇(100)은 소프트 주행 모드로 주행할 수 있다. 각속도 변화량의 부호(음수, 양수)가 변경된다고 하여도, 실제로 이동 방향이 바로 변경되지 않을 수 있으며, 속도가 줄어들 수 있다. 따라서, 이동형 로봇(100)은 이동 방향이 급격하게 변경될 가능성을 각속도 변화량의 부호(음수, 양수)의 변화에 기초하여 판단할 수 있다. 그리고, 각속도 변화량의 부호(음수, 양수)의 변화가 식별되면, 이동형 로봇(100)은 소프트 주행 모드로 주행하여 이동 방향을 최대한 유지할 수 있다.
도 33은 본 개시의 일 실시 예에 따른 이동형 로봇(100)의 제어 방법을 설명하기 위한 흐름도이다.
도 33을 참조하면, 이동형 로봇(100)의 제어 방법은 이동형 로봇(100)의 주행 경로를 획득하는 단계, 주행 경로를 따라 이동하는 이동형 로봇(100)의 모션 각각에 대응되는 각속도 변화량을 센서로부터 획득된 센싱 데이터에 기초하여 식별하는 단계, 각속도 변화량에 기초하여 복수의 후보 모션 중 최종 모션을 식별하는 단계 및 최종 모션에 기초하여 이동형 로봇(100)을 이동하도록 제어하는 단계를 포함할 수 있다.
한편, 최종 모션을 식별하는 단계는 후보 모션의 각속도 변화량에 기초하여 후보 모션의 상태 정보를 식별할 수 있고, 상태 정보의 변경 여부에 따라 후보 모션의 타입 정보를 식별할 수 있고, 후보 모션에 대응되는 주행 스코어를 획득할 수 있고, 주행 스코어 및 타입 정보에 기초하여 복수의 후보 모션 중 최종 모션을 식별할 수 있다.
한편, 상태 정보를 식별하는 단계는 이전 시점 모션의 각속도에 기초하여 이전 시점 모션의 상태 정보를 식별할 수 있고, 이전 시점 모션의 각속도 및 복수의 후보 모션의 각속도 간 차이에 기초하여 후보 모션의 상태 정보를 식별할 수 있고, 타입 정보를 식별하는 단계는 이전 시점 모션의 상태 정보 및 후보 모션의 상태 정보에 기초하여 후보 모션의 타입 정보를 식별할 수 있다.
한편, 주행 스코어는 후보 모션에 기초하여 이동하는 이동형 로봇(100)이 장애물을 회피하도록 이동하는 거리가 클수록 큰 값이며, 장애물을 회피한 이후 이동형 로봇(100)이 위치하는 예측 지점 및 목표 지점까지의 거리가 작을수록 큰 값일 수 있다.
한편, 상태 정보를 식별하는 단계는 후보 모션의 각속도 변화량이 제1 임계값을 초과하면, 후보 모션의 상태 정보를 제1 상태로 식별할 수 있고, 후보 모션의 각속도 변화량이 제1 임계값보다 작은 제2 임계값 미만이면, 후보 모션의 상태 정보를 제2 상태로 식별할 수 있고, 후보 모션의 각속도 변화량이 제1 임계값 이하이고 제2 임계값을 초과하면, 후보 모션의 상태 정보를 제3 상태로 식별할 수 있다.
한편, 타입 정보를 식별하는 단계는 후보 모션의 상태 정보가 제1 상태에서 제2 상태로 변경되거나 후보 모션의 상태 정보가 제2 상태에서 제1 상태로 변경되면, 후보 모션의 타입 정보를 제1 타입으로 식별할 수 있고, 후보 모션의 상태 정보가 제1 상태에서 제3 상태로 변경되거나, 후보 모션의 상태 정보가 제2 상태에서 제3 상태로 변경되거나, 후보 모션의 상태 정보가 제3 상태에서 제1 상태로 변경되거나, 후보 모션의 상태 정보가 제3 상태에서 제2 상태로 변경되면, 후보 모션의 타입 정보를 제2 타입으로 식별할 수 있다. 여기서, 제1 타입은 제2 타입에 비해 후보 모션의 상태 정보가 상대적으로 급격히 변경되는 타입일 수 있다.
한편, 타입 정보를 식별하는 단계는 기 설정된 기간 동안 획득된 상태 정보에 기초하여 후보 모션의 타입 정보를 식별할 수 있다.
한편, 최종 모션을 식별하는 단계는 제1 타입으로 식별된 적어도 하나의 후보 모션 중 주행 스코어가 가장 큰 제1 모션을 식별할 수 있고, 제2 타입으로 식별된 적어도 하나의 후보 모션 중 주행 스코어가 가장 큰 제2 모션을 식별할 수 있고, 제1 모션 또는 제2 모션 중 어느 하나를 최종 모션으로 식별할 수 있다.
한편, 최종 모션을 식별하는 단계는 제1 모션의 제1 주행 스코어가 제2 모션의 제2 주행 스코어 및 임계 주행 스코어의 합을 초과하면, 제1 모션을 최종 모션으로 식별할 수 있고, 제1 모션의 제1 주행 스코어가 제2 모션의 제2 주행 스코어 및 임계 주행 스코어의 합 이하이면, 제2 모션을 최종 모션으로 식별할 수 있다.
한편, 각속도 변화량이 양수에서 음수로 변경되거나 각속도 변화량이 음수에서 양수로 변경되면, 각속도 변화량에 기초하여 복수의 후보 모션 중 최종 모션을 식별하는 소프트 주행 모드에 기초하여 이동형 로봇(100)을 이동하도록 제어하는 단계를 더 포함할 수 있다.
한편, 도 33과 같은 이동형 로봇(100)의 제어 방법은 도 2 또는 도 3의 구성을 가지는 이동형 로봇(100) 상에서 실행될 수 있으며, 그 밖의 구성을 가지는 장치 상에서도 실행될 수 있다.
한편, 상술한 본 개시의 다양한 실시 예들에 따른 방법들은, 기존 이동형 로봇(100)에 설치 가능한 어플리케이션 형태로 구현될 수 있다.
또한, 상술한 본 개시의 다양한 실시 예들에 따른 방법들은, 기존 이동형 로봇(100)에 대한 소프트웨어 업그레이드, 또는 하드웨어 업그레이드 만으로도 구현될 수 있다.
또한, 상술한 본 개시의 다양한 실시 예들은 이동형 로봇(100)에 구비된 임베디드 서버, 또는 이동형 로봇(100) 및 디스플레이 장치 중 적어도 하나의 외부 서버를 통해 수행되는 것도 가능하다.
한편, 본 개시의 일시 예에 따르면, 이상에서 설명된 다양한 실시 예들은 기기(machine)(예: 컴퓨터)로 읽을 수 있는 저장 매체(machine-readable storage media)에 저장된 명령어를 포함하는 소프트웨어로 구현될 수 있다. 기기는, 저장 매체로부터 저장된 명령어를 호출하고, 호출된 명령어에 따라 동작이 가능한 장치로서, 개시된 실시 예들에 따른 이동형 로봇(100)를 포함할 수 있다. 명령이 프로세서에 의해 실행될 경우, 프로세서가 직접, 또는 프로세서의 제어 하에 다른 구성요소들을 이용하여 명령에 해당하는 기능을 수행할 수 있다. 명령은 컴파일러 또는 인터프리터에 의해 생성 또는 실행되는 코드를 포함할 수 있다. 기기로 읽을 수 있는 저장 매체는, 비일시적(non-transitory) 저장 매체의 형태로 제공될 수 있다. 여기서, '비일시적'은 저장 매체가 신호(signal)를 포함하지 않으며 실재(tangible)한다는 것을 의미할 뿐 데이터가 저장 매체에 반영구적 또는 임시적으로 저장됨을 구분하지 않는다.
또한, 본 개시의 일 실시 예에 따르면, 이상에서 설명된 다양한 실시 예들에 따른 방법은 컴퓨터 프로그램 제품(computer program product)에 포함되어 제공될 수 있다. 컴퓨터 프로그램 제품은 상품으로서 판매자 및 구매자 간에 거래될 수 있다. 컴퓨터 프로그램 제품은 기기로 읽을 수 있는 저장 매체(예: compact disc read only memory (CD-ROM))의 형태로, 또는 어플리케이션 스토어(예: 플레이 스토어TM)를 통해 온라인으로 배포될 수 있다. 온라인 배포의 경우에, 컴퓨터 프로그램 제품의 적어도 일부는 제조사의 서버, 어플리케이션 스토어의 서버, 또는 중계 서버의 메모리와 같은 저장 매체에 적어도 일시 저장되거나, 임시적으로 생성될 수 있다.
또한, 상술한 다양한 실시 예들에 따른 구성 요소(예: 모듈 또는 프로그램) 각각은 단수 또는 복수의 개체로 구성될 수 있으며, 전술한 해당 서브 구성 요소들 중 일부 서브 구성 요소가 생략되거나, 또는 다른 서브 구성 요소가 다양한 실시 예에 더 포함될 수 있다. 대체적으로 또는 추가적으로, 일부 구성 요소들(예: 모듈 또는 프로그램)은 하나의 개체로 통합되어, 통합되기 이전의 각각의 해당 구성 요소에 의해 수행되는 기능을 동일 또는 유사하게 수행할 수 있다. 다양한 실시 예들에 따른, 모듈, 프로그램 또는 다른 구성 요소에 의해 수행되는 동작들은 순차적, 병렬적, 반복적 또는 휴리스틱하게 실행되거나, 적어도 일부 동작이 다른 순서로 실행되거나, 생략되거나, 또는 다른 동작이 추가될 수 있다.
이상에서는 본 개시의 바람직한 실시 예에 대하여 도시하고 설명하였지만, 본 개시는 상술한 특정의 실시 예에 한정되지 아니하며, 청구범위에서 청구하는 본 개시의 요지를 벗어남이 없이 당해 개시에 속하는 기술분야에서 통상의 지식을 가진 자에 의해 다양한 변형 실시가 가능한 것은 물론이고, 이러한 변형실시들은 본 개시의 기술적 사상이나 전망으로부터 개별적으로 이해되어져서는 안될 것이다.
100: 이동형 로봇
110: 센서
120: 모터
130: 적어도 하나의 프로세서

Claims (20)

  1. 이동형 로봇에 있어서,
    센서;
    상기 이동형 로봇을 구동하기 위한 모터; 및
    상기 이동형 로봇의 주행 경로를 획득하고,
    상기 주행 경로를 따라 이동하는 상기 이동형 로봇의 모션 각각에 대응되는 각속도 변화량을 상기 센서로부터 획득된 센싱 데이터에 기초하여 식별하고,
    상기 각속도 변화량에 기초하여 복수의 후보 모션 중 최종 모션을 식별하고,
    상기 최종 모션에 기초하여 상기 이동형 로봇을 이동하도록 상기 모터를 제어하는 적어도 하나의 프로세서;를 포함하는, 이동형 로봇.
  2. 제1 항에 있어서,
    상기 적어도 하나의 프로세서는,
    후보 모션의 각속도 변화량에 기초하여 상기 후보 모션의 상태 정보를 식별하고,
    상기 상태 정보의 변경 여부에 따라 상기 후보 모션의 타입 정보를 식별하고,
    상기 후보 모션에 대응되는 주행 스코어를 획득하고,
    상기 주행 스코어 및 상기 타입 정보에 기초하여 상기 복수의 후보 모션 중 최종 모션을 식별하는, 이동형 로봇.
  3. 제2 항에 있어서,
    상기 적어도 하나의 프로세서는,
    이전 시점 모션의 각속도에 기초하여 상기 이전 시점 모션의 상태 정보를 식별하고,
    상기 이전 시점 모션의 각속도 및 상기 복수의 후보 모션의 각속도 간 차이에 기초하여 상기 후보 모션의 상태 정보를 식별하고,
    상기 이전 시점 모션의 상태 정보 및 상기 후보 모션의 상태 정보에 기초하여 상기 후보 모션의 타입 정보를 식별하는, 이동형 로봇.
  4. 제2 항에 있어서,
    상기 주행 스코어는,
    상기 후보 모션에 기초하여 이동하는 상기 이동형 로봇이 장애물을 회피하도록 이동하는 거리가 클수록 큰 값이며,
    상기 장애물을 회피한 이후 상기 이동형 로봇이 위치하는 예측 지점 및 목표 지점까지의 거리가 작을수록 큰 값인, 이동형 로봇.
  5. 제2 항에 있어서,
    상기 적어도 하나의 프로세서는,
    상기 후보 모션의 상기 각속도 변화량이 제1 임계값을 초과하면, 상기 후보 모션의 상태 정보를 제1 상태로 식별하고,
    상기 후보 모션의 상기 각속도 변화량이 상기 제1 임계값보다 작은 제2 임계값 미만이면, 상기 후보 모션의 상태 정보를 제2 상태로 식별하고,
    상기 후보 모션의 상기 각속도 변화량이 상기 제1 임계값 이하이고 상기 제2 임계값을 초과하면, 상기 후보 모션의 상태 정보를 제3 상태로 식별하는, 이동형 로봇.
  6. 제5항에 있어서,
    상기 적어도 하나의 프로세서는,
    상기 후보 모션의 상태 정보가 상기 제1 상태에서 상기 제2 상태로 변경되거나 상기 후보 모션의 상태 정보가 상기 제2 상태에서 상기 제1 상태로 변경되면, 상기 후보 모션의 타입 정보를 제1 타입으로 식별하고,
    상기 후보 모션의 상태 정보가 상기 제1 상태에서 상기 제3 상태로 변경되거나, 상기 후보 모션의 상태 정보가 상기 제2 상태에서 상기 제3 상태로 변경되거나, 상기 후보 모션의 상태 정보가 상기 제3 상태에서 상기 제1 상태로 변경되거나, 상기 후보 모션의 상태 정보가 상기 제3 상태에서 상기 제2 상태로 변경되면, 상기 후보 모션의 타입 정보를 제2 타입으로 식별하며,
    상기 제1 타입은,
    상기 제2 타입에 비해 후보 모션의 상태 정보가 상대적으로 급격히 변경되는 타입인, 이동형 로봇.
  7. 제6항에 있어서,
    상기 적어도 하나의 프로세서는,
    기 설정된 기간 동안 획득된 상태 정보에 기초하여 상기 후보 모션의 상기 타입 정보를 식별하는, 이동형 로봇.
  8. 제6항에 있어서,
    상기 적어도 하나의 프로세서는,
    상기 제1 타입으로 식별된 적어도 하나의 후보 모션 중 주행 스코어가 가장 큰 제1 모션을 식별하고,
    상기 제2 타입으로 식별된 적어도 하나의 후보 모션 중 주행 스코어가 가장 큰 제2 모션을 식별하고,
    상기 제1 모션 또는 상기 제2 모션 중 어느 하나를 상기 최종 모션으로 식별하는, 이동형 로봇.
  9. 제8항에 있어서,
    상기 적어도 하나의 프로세서는,
    상기 제1 모션의 제1 주행 스코어가 상기 제2 모션의 제2 주행 스코어 및 임계 주행 스코어의 합을 초과하면, 상기 제1 모션을 상기 최종 모션으로 식별하고,
    상기 제1 모션의 상기 제1 주행 스코어가 상기 제2 모션의 제2 주행 스코어 및 상기 임계 주행 스코어의 합 이하이면, 상기 제2 모션을 상기 최종 모션으로 식별하는, 이동형 로봇.
  10. 제1 항에 있어서,
    상기 적어도 하나의 프로세서는,
    상기 각속도 변화량이 양수에서 음수로 변경되거나 상기 각속도 변화량이 음수에서 양수로 변경되면, 상기 각속도 변화량에 기초하여 상기 복수의 후보 모션 중 상기 최종 모션을 식별하는 소프트 주행 모드에 기초하여 상기 이동형 로봇을 이동하도록 상기 모터를 제어하는, 이동형 로봇.
  11. 이동형 로봇의 제어 방법에 있어서,
    상기 이동형 로봇의 주행 경로를 획득하는 단계;
    상기 주행 경로를 따라 이동하는 상기 이동형 로봇의 모션 각각에 대응되는 각속도 변화량을 센서로부터 획득된 센싱 데이터에 기초하여 식별하는 단계;
    상기 각속도 변화량에 기초하여 복수의 후보 모션 중 최종 모션을 식별하는 단계; 및
    상기 최종 모션에 기초하여 상기 이동형 로봇을 이동하도록 제어하는 단계;를 포함하는, 제어 방법.
  12. 제11 항에 있어서,
    상기 최종 모션을 식별하는 단계는,
    후보 모션의 각속도 변화량에 기초하여 상기 후보 모션의 상태 정보를 식별하고,
    상기 상태 정보의 변경 여부에 따라 상기 후보 모션의 타입 정보를 식별하고,
    상기 후보 모션에 대응되는 주행 스코어를 획득하고,
    상기 주행 스코어 및 상기 타입 정보에 기초하여 상기 복수의 후보 모션 중 최종 모션을 식별하는, 제어 방법.
  13. 제12 항에 있어서,
    상기 상태 정보를 식별하는 단계는,
    이전 시점 모션의 각속도에 기초하여 상기 이전 시점 모션의 상태 정보를 식별하고,
    상기 이전 시점 모션의 각속도 및 상기 복수의 후보 모션의 각속도 간 차이에 기초하여 상기 후보 모션의 상태 정보를 식별하고,
    상기 타입 정보를 식별하는 단계는,
    상기 이전 시점 모션의 상태 정보 및 상기 후보 모션의 상태 정보에 기초하여 상기 후보 모션의 타입 정보를 식별하는, 제어 방법.
  14. 제12 항에 있어서,
    상기 주행 스코어는,
    상기 후보 모션에 기초하여 이동하는 상기 이동형 로봇이 장애물을 회피하도록 이동하는 거리가 클수록 큰 값이며,
    상기 장애물을 회피한 이후 상기 이동형 로봇이 위치하는 예측 지점 및 목표 지점까지의 거리가 작을수록 큰 값인, 제어 방법.
  15. 제12 항에 있어서,
    상기 상태 정보를 식별하는 단계는,
    상기 후보 모션의 상기 각속도 변화량이 제1 임계값을 초과하면, 상기 후보 모션의 상태 정보를 제1 상태로 식별하고,
    상기 후보 모션의 상기 각속도 변화량이 상기 제1 임계값보다 작은 제2 임계값 미만이면, 상기 후보 모션의 상태 정보를 제2 상태로 식별하고,
    상기 후보 모션의 상기 각속도 변화량이 상기 제1 임계값 이하이고 상기 제2 임계값을 초과하면, 상기 후보 모션의 상태 정보를 제3 상태로 식별하는, 제어 방법.
  16. 제15항에 있어서,
    상기 타입 정보를 식별하는 단계는,
    상기 후보 모션의 상태 정보가 상기 제1 상태에서 상기 제2 상태로 변경되거나 상기 후보 모션의 상태 정보가 상기 제2 상태에서 상기 제1 상태로 변경되면, 상기 후보 모션의 타입 정보를 제1 타입으로 식별하고,
    상기 후보 모션의 상태 정보가 상기 제1 상태에서 상기 제3 상태로 변경되거나, 상기 후보 모션의 상태 정보가 상기 제2 상태에서 상기 제3 상태로 변경되거나, 상기 후보 모션의 상태 정보가 상기 제3 상태에서 상기 제1 상태로 변경되거나, 상기 후보 모션의 상태 정보가 상기 제3 상태에서 상기 제2 상태로 변경되면, 상기 후보 모션의 타입 정보를 제2 타입으로 식별하며,
    상기 제1 타입은,
    상기 제2 타입에 비해 후보 모션의 상태 정보가 상대적으로 급격히 변경되는 타입인, 제어 방법.
  17. 제16항에 있어서,
    상기 타입 정보를 식별하는 단계는,
    기 설정된 기간 동안 획득된 상태 정보에 기초하여 상기 후보 모션의 상기 타입 정보를 식별하는, 제어 방법.
  18. 제16항에 있어서,
    상기 최종 모션을 식별하는 단계는,
    상기 제1 타입으로 식별된 적어도 하나의 후보 모션 중 주행 스코어가 가장 큰 제1 모션을 식별하고,
    상기 제2 타입으로 식별된 적어도 하나의 후보 모션 중 주행 스코어가 가장 큰 제2 모션을 식별하고,
    상기 제1 모션 또는 상기 제2 모션 중 어느 하나를 상기 최종 모션으로 식별하는, 제어 방법.
  19. 제18항에 있어서,
    상기 최종 모션을 식별하는 단계는,
    상기 제1 모션의 제1 주행 스코어가 상기 제2 모션의 제2 주행 스코어 및 임계 주행 스코어의 합을 초과하면, 상기 제1 모션을 상기 최종 모션으로 식별하고,
    상기 제1 모션의 상기 제1 주행 스코어가 상기 제2 모션의 제2 주행 스코어 및 상기 임계 주행 스코어의 합 이하이면, 상기 제2 모션을 상기 최종 모션으로 식별하는, 제어 방법.
  20. 제11 항에 있어서,
    상기 각속도 변화량이 양수에서 음수로 변경되거나 상기 각속도 변화량이 음수에서 양수로 변경되면, 상기 각속도 변화량에 기초하여 상기 복수의 후보 모션 중 상기 최종 모션을 식별하는 소프트 주행 모드에 기초하여 상기 이동형 로봇을 이동하도록 제어하는 단계;를 더 포함하는, 제어 방법.

KR1020220103567A 2022-05-09 2022-08-18 이동형 로봇 및 그 제어 방법 KR20230157214A (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
PCT/KR2023/001385 WO2023219229A1 (ko) 2022-05-09 2023-01-31 이동형 로봇 및 그 제어 방법
US18/142,928 US20230356391A1 (en) 2022-05-09 2023-05-03 Movable robot and controlling method thereof

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR20220056459 2022-05-09
KR1020220056459 2022-05-09

Publications (1)

Publication Number Publication Date
KR20230157214A true KR20230157214A (ko) 2023-11-16

Family

ID=88964753

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020220103567A KR20230157214A (ko) 2022-05-09 2022-08-18 이동형 로봇 및 그 제어 방법

Country Status (1)

Country Link
KR (1) KR20230157214A (ko)

Similar Documents

Publication Publication Date Title
CN107533374B (zh) 虚拟现实中的头部、手势和触摸输入的动态切换和合并
CN108292146B (zh) 虚拟现实中的激光指示器交互和缩放
JP5554457B2 (ja) 3次元オブジェクトを検出およびトラッキングするためのオクルージョンの使用
KR102283747B1 (ko) 시선 추적을 갖는 타겟 위치결정
CN109906424B (zh) 用于虚拟现实系统的输入控制器稳定技术
US20200193976A1 (en) Natural language input disambiguation for spatialized regions
WO2017115635A1 (ja) 情報処理方法及び情報処理プログラム
US11169601B2 (en) Methods and systems for determining teleoperating user intent via eye tracking
JP2019502193A (ja) 仮想現実環境におけるナビゲーション用制御システム
US20180143693A1 (en) Virtual object manipulation
KR20140010178A (ko) 제스처 기반 게임을 위한 안전 설계
KR20110032367A (ko) 실시간 동작인식시스템 및 그의 방법
JP2012208782A (ja) 移動予測装置、ロボット制御装置、移動予測プログラムおよび移動予測方法
KR20180114756A (ko) 헤드 마운티드 디스플레이의 충돌 경고 장치 및 방법
KR20230157214A (ko) 이동형 로봇 및 그 제어 방법
EP3864494B1 (en) Locating spatialized sounds nodes for echolocation using unsupervised machine learning
US20230356391A1 (en) Movable robot and controlling method thereof
US11548154B2 (en) Systems and methods for dimensionally-restricted robotic teleoperation
US10810800B2 (en) Apparatus and method for providing virtual reality content of moving means
KR20170138723A (ko) 전자 장치, 외부 서버 및 그 제어 방법
US10434653B2 (en) Movement mapping based control of telerobot
EP4338896A1 (en) Robot and method for controlling robot
WO2023032321A1 (ja) 情報処理装置、情報処理方法及びプログラム
EP4296014A1 (en) Robot and control method therefor
US20240094740A1 (en) Driving robot generating driving map and controlling method thereof