KR20240029678A - 무빙 워크를 이용하는 로봇 및 그 제어 방법 - Google Patents

무빙 워크를 이용하는 로봇 및 그 제어 방법 Download PDF

Info

Publication number
KR20240029678A
KR20240029678A KR1020220107763A KR20220107763A KR20240029678A KR 20240029678 A KR20240029678 A KR 20240029678A KR 1020220107763 A KR1020220107763 A KR 1020220107763A KR 20220107763 A KR20220107763 A KR 20220107763A KR 20240029678 A KR20240029678 A KR 20240029678A
Authority
KR
South Korea
Prior art keywords
robot
moving
identified
processor
walk
Prior art date
Application number
KR1020220107763A
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 KR1020220107763A priority Critical patent/KR20240029678A/ko
Priority to PCT/KR2023/012666 priority patent/WO2024043756A1/ko
Priority to US18/529,774 priority patent/US20240109192A1/en
Publication of KR20240029678A publication Critical patent/KR20240029678A/ko

Links

Images

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J11/00Manipulators not otherwise provided for
    • B25J11/008Manipulators for service tasks
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1679Programme controls characterised by the tasks executed
    • 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
    • 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
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J19/00Accessories fitted to manipulators, e.g. for monitoring, for viewing; Safety devices combined with or specially adapted for use in connection with manipulators
    • B25J19/02Sensing devices
    • B25J19/021Optical sensing devices
    • B25J19/023Optical sensing devices including video camera means
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J5/00Manipulators mounted on wheels or on carriages
    • B25J5/007Manipulators mounted on wheels or on carriages mounted on wheels
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/0093Programme-controlled manipulators co-operating with conveyor means
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1656Programme controls characterised by programming, planning systems for manipulators
    • B25J9/1664Programme controls characterised by programming, planning systems for manipulators characterised by motion, path, trajectory planning
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1674Programme controls characterised by safety, monitoring, diagnostic
    • 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
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60GVEHICLE SUSPENSION ARRANGEMENTS
    • B60G17/00Resilient suspensions having means for adjusting the spring or vibration-damper characteristics, for regulating the distance between a supporting surface and a sprung part of vehicle or for locking suspension during use to meet varying vehicular or surface conditions, e.g. due to speed or load
    • B60G17/015Resilient suspensions having means for adjusting the spring or vibration-damper characteristics, for regulating the distance between a supporting surface and a sprung part of vehicle or for locking suspension during use to meet varying vehicular or surface conditions, e.g. due to speed or load the regulating means comprising electric or electronic elements
    • B60G17/016Resilient suspensions having means for adjusting the spring or vibration-damper characteristics, for regulating the distance between a supporting surface and a sprung part of vehicle or for locking suspension during use to meet varying vehicular or surface conditions, e.g. due to speed or load the regulating means comprising electric or electronic elements characterised by their responsiveness, when the vehicle is travelling, to specific motion, a specific condition, or driver input
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/20Analysis of motion
    • G06T7/246Analysis of motion using feature-based methods, e.g. the tracking of corners or segments
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1602Programme controls characterised by the control system, structure, architecture
    • B25J9/161Hardware, e.g. neural networks, fuzzy logic, interfaces, processor
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60GVEHICLE SUSPENSION ARRANGEMENTS
    • B60G2400/00Indexing codes relating to detected, measured or calculated conditions or factors
    • B60G2400/05Attitude
    • B60G2400/051Angle
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60GVEHICLE SUSPENSION ARRANGEMENTS
    • B60G2500/00Indexing codes relating to the regulated action or device
    • B60G2500/30Height or ground clearance
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60GVEHICLE SUSPENSION ARRANGEMENTS
    • B60G2800/00Indexing codes relating to the type of movement or to the condition of the vehicle and to the end result to be achieved by the control action
    • B60G2800/01Attitude or posture control

Landscapes

  • Engineering & Computer Science (AREA)
  • Mechanical Engineering (AREA)
  • Robotics (AREA)
  • Multimedia (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Control Of Position, Course, Altitude, Or Attitude Of Moving Bodies (AREA)

Abstract

본 개시는 로봇 및 그 제어 방법을 제공한다. 본 개시의 일 실시 예에 따른 로봇은, 카메라, 복수의 휠 및 상기 복수의 휠 각각과 상기 로봇의 바디를 연결하기 위한 서스펜션을 포함하는 구동부 및 프로세서를 포함하고, 상기 프로세서는 상기 로봇이 무빙 워크의 탑승 영역에 위치한 것으로 식별되면, 상기 카메라를 통해 획득된 상기 무빙 워크에 대한 복수의 이미지에 기초하여 상기 무빙 워크의 이동 방향 및 이동 속도를 식별하고, 상기 로봇이 상기 식별된 이동 방향에 대응되는 탑승 방향을 향하도록 상기 구동부를 제어하고, 상기 식별된 이동 속도에 대응되는 각도로 상기 로봇이 기울어지도록 상기 복수의 휠 중 적어도 하나의 휠에 연결된 서스펜션을 제어하고, 상기 기울어진 로봇이 상기 탑승 방향으로 이동하여 상기 무빙 워크에 탑승하도록 상기 구동부를 제어한다.

Description

무빙 워크를 이용하는 로봇 및 그 제어 방법{robot using moving walk way and method for controlling thereof}
본 개시는 로봇 및 그 제어 방법에 관한 것이다. 더욱 상세하게는 무빙 워크를 이용하는 로봇 및 그 제어 방법에 관한 것이다.
최근 전자 기술의 발달로 다양한 산업 분야에서 로봇이 이용되고 있다. 객체 인식 기술의 발달로 로봇은 다양한 사물을 정확히 구별할 수 있게 되었고, 자율 주행 기술의 발달로 로봇은 주행 공간에서 사람의 통행을 방해하지 않으면서 안정적인 주행이 가능해졌다. 음식점에서 사용자가 주문한 음식을 서빙하는 서빙 로봇, 공항이나 대형 마트 등에서 사용자에게 길을 안내하는 가이드 로봇 등을 보더라도, 로봇이 이용되는 분야와 방식이 다양해진 것을 알 수 있다.
다양한 분야에서 로봇이 이용됨에 따라, 로봇이 주행하는 주행 공간의 유형 및 크기 또한 다양해졌다. 기존에는 로봇이 협소하고 제한된 공간에서만 주행이 가능했다면, 이제는 보다 넓고 개방적인 공간에서도 주행이 가능해졌다. 대형 마트, 공항 등과 같이 복수의 층으로 구성된 대형 건물의 경우 로봇은 무빙 워크(예를 들어, 경사형 무빙 워크)를 이용하여, 대형 건물 내 층간 이동도 수행할 수 있게 되었다. 다만, 로봇이 무빙 워크를 이용 하는 경우에는, 로봇은 무빙 워크의 이동 속도 또는 무빙 워크의 경사 각을 고려하여 적절한 자세를 취해야만 한다.
구체적으로, 지면에 고정된 계단과 달리 무빙 워크는 움직이기 때문에, 무빙 워크에 탑승하는 로봇은 무빙 워크의 이동 속도를 고려하여 안정적인 자세를 취해야만 한다. 또한 지면과 평행하는 플레이트가 계단을 형성하여 움직이는 에스컬레이터와 달리, 서로 다른 층의 주행 공간을 연결하는 무빙 워크의 경우 경사 각을 갖기 때문에, 무빙 워크에 탑승한 로봇은 무빙 워크의 경사 각에 맞는 안정적인 자세를 취해야만 한다.
다만, 종래 로봇은 무빙 워크에 탑승한 이후 무빙 워크의 이동 속도와 경사 각을 감지하여, 안정적인 자세를 취할 수 있었다. 다만, 이러한 방식은 로봇이 무빙 워크의 이동 속도 및 경사 각을 예측하고, 사전에 안정적인 자세를 취하지 못한다는 문제점이 있다.
본 개시는 상술한 필요성에 따른 것으로, 본 개시의 목적은 무빙 워크를 이용하는 로봇 및 그 제어 방법을 제공함에 있다.
이상과 같은 목적을 달성하기 위한 본 개시의 일 실시 예에 따른 로봇은, 카메라, 복수의 휠 및 상기 복수의 휠 각각과 상기 로봇의 바디를 연결하기 위한 서스펜션을 포함하는 구동부 및 프로세서를 포함한다. 상기 프로세서는 상기 로봇이 무빙 워크의 탑승 영역에 위치한 것으로 식별되면, 상기 카메라를 통해 획득된 상기 무빙 워크에 대한 복수의 이미지에 기초하여 상기 무빙 워크의 이동 방향 및 이동 속도를 식별한다. 상기 프로세서는 상기 로봇이 상기 식별된 이동 방향에 대응되는 탑승 방향을 향하도록 상기 구동부를 제어한다. 상기 프로세서는 상기 식별된 이동 속도에 대응되는 각도로 상기 로봇이 기울어지도록 상기 복수의 휠 중 적어도 하나의 휠에 연결된 서스펜션을 제어한다. 상기 프로세서는 상기 기울어진 로봇이 상기 탑승 방향으로 이동하여 상기 무빙 워크에 탑승하도록 상기 구동부를 제어한다.
여기서, 상기 프로세서는, 상기 로봇이 탑승 영역에 위치한 상태에서 상기 카메라를 통해 획득된 복수의 이미지에 기초하여 상기 무빙 워크의 복수의 플레이트 간의 경계 선을 식별한다. 상기 프로세서는 상기 식별된 경계 선의 법선 벡터에 기초하여 상기 무빙 워크의 이동 방향을 식별하고, 상기 식별된 경계 선의 이동 속도에 기초하여 상기 무빙 워크의 이동 속도를 식별한다.
또한, 상기 프로세서는, 상기 로봇이 상기 무빙 워크에 탑승한 것으로 식별되면, 상기 카메라를 통해 획득된 상기 무빙 워크에 대한 복수의 이미지에 기초하여 상기 무빙 워크의 복수의 플레이트를 식별한다. 상기 프로세서는, 상기 식별된 복수의 플레이트 중 적어도 하나의 플레이트의 법선 벡터에 기초하여 상기 무빙 워크의 경사 각을 식별한다. 상기 프로세서는, 상기 식별된 경사 각에 기초하여 상기 로봇이 직립 하도록 상기 적어도 하나의 휠의 서스펜션을 제어한다.
여기서, 상기 프로세서는, 상기 무빙 워크의 이동 속도 및 서스펜션의 응답 속도에 기초하여 상기 복수의 플레이트 중 상기 적어도 하나의 플레이트를 식별한다.
또한, 상기 로봇은, 센서를 더 포함하고, 상기 프로세서는, 상기 로봇이 상기 무빙 워크에 탑승한 상태에서 상기 카메라를 통해 획득된 복수의 이미지에 기초하여 상기 복수의 플레이트가 식별되지 않는 것으로 식별되면, 상기 센서를 통해 획득된 센싱 값에 기초하여 상기 로봇이 직립 하도록 상기 적어도 하나의 휠의 서스펜션을 제어한다.
또한, 상기 프로세서는, 상기 로봇이 상기 무빙 워크의 하차 영역과 기 설정된 거리 이내에 위치한 것으로 식별되면, 상기 획득된 복수의 이미지에 기초하여 상기 무빙 워크의 이동 방향을 식별한다. 상기 프로세서는 상기 로봇이 상기 식별된 이동 방향에 대응되는 하차 방향을 향하도록 상기 구동부를 제어한다. 상기 프로세서는 상기 직립 한 로봇이 상기 하차 방향으로 이동하여 상기 무빙 워크에서 하차하도록 상기 구동부를 제어한다.
여기서, 상기 프로세서는, 상기 하차 영역에 객체가 존재하는 것으로 식별되면, 상기 하차 방향과 반대 방향으로 상기 로봇이 이동하도록 상기 구동부를 제어한다.
여기서, 상기 프로세서는, 상기 식별된 경사 각이 기 설정된 각도 이내이면, 상기 로봇이 상기 무빙 워크의 하차 영역과 기 설정된 거리 이내인 것으로 식별한다.
한편, 상기 프로세서는, 상기 로봇이 탑승 영역에 위치한 상태에서 상기 카메라를 통해 획득된 복수의 이미지에 기초하여 상기 무빙 워크의 폭을 식별한다. 상기 프로세서는 상기 식별된 무빙 워크의 폭에 기초하여, 상기 로봇의 상기 무빙 워크의 탑승 위치를 결정한다. 상기 프로세서는 상기 결정된 탑승 위치에서 상기 로봇이 상기 식별된 이동 방향에 대응되는 탑승 방향을 향하도록 상기 구동부를 제어한다.
이상과 같은 목적을 달성하기 위한 본 개시의 일 실시 예에 따른 로봇을 제어하는 방법은, 상기 로봇의 프로세서가 로봇이 무빙 워크의 탑승 영역에 위치한 것으로 식별되면, 카메라를 통해 획득된 상기 무빙 워크에 대한 복수의 이미지에 기초하여 상기 무빙 워크의 이동 방향 및 이동 속도를 식별한다. 그리고 상기 프로세서는 상기 로봇이 상기 식별된 이동 방향에 대응되는 탑승 방향을 향하도록 상기 로봇의 구동부를 제어한다. 그리고, 상기 프로세서는 상기 식별된 이동 속도에 대응되는 각도로 상기 로봇이 기울어지도록 상기 구동부에 포함된 복수의 휠 중 적어도 하나의 휠에 연결된 서스펜션을 제어한다. 그리고, 상기 프로세서는 상기 기울어진 로봇이 상기 탑승 방향으로 이동하여 상기 무빙 워크에 탑승하도록 상기 구동부를 제어한다. 이때, 상기 로봇의 상기 복수의 휠 각각은 상기 서스펜션을 통해 상기 로봇의 바디와 각각 연결된다.
여기서, 상기 식별하는 단계는, 상기 로봇이 탑승 영역에 위치한 상태에서 상기 카메라를 통해 획득된 복수의 이미지에 기초하여 상기 무빙 워크의 복수의 플레이트 간의 경계 선을 식별하는 단계, 상기 식별된 경계 선의 법선 벡터에 기초하여 상기 무빙 워크의 이동 방향을 식별하는 단계 및 상기 식별된 경계 선의 이동 속도에 기초하여 상기 무빙 워크의 이동 속도를 식별하는 단계를 포함한다.
또한, 상기 로봇이 상기 무빙 워크에 탑승한 것으로 식별되면, 상기 카메라를 통해 획득된 상기 무빙 워크에 대한 복수의 이미지에 기초하여 상기 무빙 워크의 복수의 플레이트를 식별하는 단계, 상기 식별된 복수의 플레이트 중 적어도 하나의 플레이트의 법선 벡터에 기초하여 상기 무빙 워크의 경사 각을 식별하는 단계 및 상기 식별된 경사 각에 기초하여 상기 로봇이 직립 하도록 상기 적어도 하나의 휠의 서스펜션을 제어하는 단계를 더 포함한다.
여기서, 상기 무빙 워크의 이동 속도 및 서스펜션의 응답 속도에 기초하여 상기 복수의 플레이트 중 상기 적어도 하나의 플레이트를 식별한다.
또한, 상기 로봇이 상기 무빙 워크에 탑승한 상태에서 상기 카메라를 통해 획득된 복수의 이미지에 기초하여 상기 복수의 플레이트가 식별되지 않는 것으로 식별되면, 상기 로봇의 센서를 통해 획득된 센싱 값에 기초하여 상기 로봇이 직립 하도록 상기 적어도 하나의 휠의 서스펜션을 제어하는 단계를 더 포함한다.
여기서, 상기 로봇을 제어하는 방법은 상기 로봇이 상기 무빙 워크의 하차 영역과 기 설정된 거리 이내에 위치한 것으로 식별되면, 상기 획득된 복수의 이미지에 기초하여 상기 무빙 워크의 이동 방향을 식별하는 단계, 상기 로봇이 상기 식별된 이동 방향에 대응되는 하차 방향을 향하도록 상기 구동부를 제어하는 단계 및 상기 직립 한 상기 로봇이 상기 하차 방향으로 이동하여 상기 무빙 워크에서 하차하도록 상기 구동부를 제어하는 단계를 더 포함한다.
상기 로봇을 제어하는 방법은, 상기 하차 영역에 객체가 존재하는 것으로 식별되면, 상기 하차 방향과 반대 방향으로 상기 로봇이 이동하도록 상기 구동부를 제어하는 단계를 더 포함한다.
여기서, 식별된 경사 각이 기 설정된 각도 이내이면, 상기 로봇이 상기 무빙 워크의 하차 영역과 기 설정된 거리 이내인 것으로 식별한다
한편, 로봇의 프로세서에 의해 실행되는 경우, 상기 로봇이 동작을 수행하도록 하는 컴퓨터 명령을 저장하는 비일시적 컴퓨터 판독 가능 기록 매체에 있어서, 상기 동작은, 상기 로봇의 프로세서가 로봇이 무빙 워크의 탑승 영역에 위치한 것으로 식별되면, 카메라를 통해 획득된 상기 무빙 워크에 대한 복수의 이미지에 기초하여 상기 무빙 워크의 이동 방향 및 이동 속도를 식별한다. 그리고 상기 프로세서는 상기 로봇이 상기 식별된 이동 방향에 대응되는 탑승 방향을 향하도록 상기 로봇의 구동부를 제어한다. 그리고, 상기 프로세서는 상기 식별된 이동 속도에 대응되는 각도로 상기 로봇이 기울어지도록 상기 구동부에 포함된 복수의 휠 중 적어도 하나의 휠에 연결된 서스펜션을 제어한다. 그리고, 상기 프로세서는 상기 기울어진 로봇이 상기 탑승 방향으로 이동하여 상기 무빙 워크에 탑승하도록 상기 구동부를 제어한다. 이때, 상기 로봇의 상기 복수의 휠 각각은 상기 서스펜션을 통해 상기 로봇의 바디와 각각 연결된다.
도 1은 본 개시의 일 실시 예에 따른 무빙 워크를 이용하는 로봇의 개략적인 예시도이다.
도 2는 본 개시의 일 실시 예에 따른 로봇의 개략적인 구성도이다.
도 3은 본 개시의 일 실시 예에 따른, 무빙 워크의 이동 방향 및 이동 속도를 식별하는 방법을 나타낸 예시도이다.
도 4는 본 개시의 일 실시 예에 따른, 플레이트 간의 경계 선에 기초하여, 무빙 워크의 이동 방향 및 이동 속도를 식별하는 방법에 대한 예시도이다.
도 5는 본 개시의 일 실시 예에 따른, 무빙 워크의 이동 방향에 기초하여, 로봇의 탑승 방향을 결정하는 것을 나타낸 예시도이다.
도 6은 본 개시의 일 실시 예에 따른, 무빙 워크의 이동 속도에 기초하여 로봇이 기울어지는 각도를 결정하는 것을 나타낸 예시도이다.
도 7을 본 개시의 일 실시 예에 따른, 무빙 워크에 탑승한 로봇이 복수의 플레이트를 식별하는 것을 나타낸 예시도이다.
도 8은 본 개시의 일 실시 예에 따른, 플레이트의 법선 벡터를 기초로 무빙 워크의 경사 각을 식별하는 방법에 관한 예시도이다.
도 9는 본 개시의 일 실시 예에 따른, 식별된 경사 각에 기초하여 로봇의 적어도 하나의 휠의 서스펜션을 제어하는 방법에 관한 예시도이다.
도 10은 본 개시의 일 실시 예에 따른, 카메라를 통해 획득된 이미지에 기초하여, 하차 영역 및 하차 영역과 로봇 간의 거리를 식별하는 것을 설명하기 위한 도면이다.
도 11은 본 개시의 일 실시 예에 따른, 하차 영역에 객체가 존재하는 경우, 로봇이 하차 방향과 반대 방향으로 이동하도록 구동부를 제어하는 것을 설명하기 위한 도면이다.
도 12는 본 개시의 일 실시 예에 따른, 로봇의 세부적인 구성도이다.
도 13는 본 개시의 일 실시 예에 따른, 무빙 워크에 탑승하는 로봇을 제어하는 방법을 개략적으로 타낸 순서도이다.
도 14는 본 개시의 일 실시 예에 따른, 로봇이 무빙 워크에 탑승하는 동안 로봇을 제어하는 방법을 개략적으로 타낸 순서도이다.
도 15는 본 개시의 일 실시 예에 따른, 무빙 워크에 하차하는 로봇을 제어하는 방법을 개략적으로 타낸 순서도이다.
본 실시 예들은 다양한 변환을 가할 수 있고 여러 가지 실시 예를 가질 수 있는 바, 특정 실시 예들을 도면에 예시하고 상세한 설명에 상세하게 설명하고자 한다. 그러나 이는 특정한 실시 형태에 대해 범위를 한정하려는 것이 아니며, 본 개시의 실시 예의 다양한 변경(modifications), 균등물(equivalents), 및/또는 대체물(alternatives)을 포함하는 것으로 이해되어야 한다. 도면의 설명과 관련하여, 유사한 구성요소에 대해서는 유사한 참조 부호가 사용될 수 있다.
본 개시를 설명함에 있어서, 관련된 공지 기능 혹은 구성에 대한 구체적인 설명이 본 개시의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그에 대한 상세한 설명은 생략한다.
덧붙여, 하기 실시 예는 여러 가지 다른 형태로 변형될 수 있으며, 본 개시의 기술적 사상의 범위가 하기 실시 예에 한정되는 것은 아니다. 오히려, 이들 실시 예는 본 개시를 더욱 충실하고 완전하게 하고, 당업자에게 본 개시의 기술적 사상을 완전하게 전달하기 위하여 제공되는 것이다.
본 개시에서 사용한 용어는 단지 특정한 실시 예를 설명하기 위해 사용된 것으로, 권리범위를 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다.
본 개시에서, "가진다," "가질 수 있다," "포함한다," 또는 "포함할 수 있다" 등의 표현은 해당 특징(예: 수치, 기능, 동작, 또는 부품 등의 구성요소)의 존재를 가리키며, 추가적인 특징의 존재를 배제하지 않는다.
본 개시에서, "A 또는 B," "A 또는/및 B 중 적어도 하나," 또는 "A 또는/및 B 중 하나 또는 그 이상"등의 표현은 함께 나열된 항목들의 모든 가능한 조합을 포함할 수 있다. 예를 들면, "A 또는 B," "A 및 B 중 적어도 하나," 또는 "A 또는 B 중 적어도 하나"는, (1) 적어도 하나의 A를 포함, (2) 적어도 하나의 B를 포함, 또는 (3) 적어도 하나의 A 및 적어도 하나의 B 모두를 포함하는 경우를 모두 지칭할 수 있다.
본 개시에서 사용된 "제1," "제2," "첫째," 또는 "둘째,"등의 표현들은 다양한 구성요소들을, 순서 및/또는 중요도에 상관없이 수식할 수 있고, 한 구성요소를 다른 구성요소와 구분하기 위해 사용될 뿐 해당 구성요소들을 한정하지 않는다.
어떤 구성요소(예: 제1 구성요소)가 다른 구성요소(예: 제2 구성요소)에 "(기능적으로 또는 통신적으로) 연결되어((operatively or communicatively) coupled with/to)" 있다거나 "접속되어(connected to)" 있다고 언급된 때에는, 상기 어떤 구성요소가 상기 다른 구성요소에 직접적으로 연결되거나, 다른 구성요소(예: 제3 구성요소)를 통하여 연결될 수 있다고 이해되어야 할 것이다.
반면에, 어떤 구성요소(예: 제1 구성요소)가 다른 구성요소(예: 제2 구성요소)에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 상기 어떤 구성요소와 상기 다른 구성요소 사이에 다른 구성요소(예: 제3 구성요소)가 존재하지 않는 것으로 이해될 수 있다.
본 개시에서 사용된 표현 "~하도록 구성된(또는 설정된)(configured to)"은 상황에 따라, 예를 들면, "~에 적합한(suitable for)," "~하는 능력을 가지는(having the capacity to)," "~하도록 설계된(designed to)," "~하도록 변경된(adapted to)," "~하도록 만들어진(made to)," 또는 "~를 할 수 있는(capable of)"과 바꾸어 사용될 수 있다. 용어 "~하도록 구성된(또는 설정된)"은 하드웨어적으로 "특별히 설계된(specifically designed to)" 것만을 반드시 의미하지 않을 수 있다.
대신, 어떤 상황에서는, "~하도록 구성된 장치"라는 표현은, 그 장치가 다른 장치 또는 부품들과 함께 "~할 수 있는" 것을 의미할 수 있다. 예를 들면, 문구 "A, B, 및 C를 수행하도록 구성된(또는 설정된) 프로세서"는 해당 동작을 수행하기 위한 전용 프로세서(예: 임베디드 프로세서), 또는 메모리 장치에 저장된 하나 이상의 소프트웨어 프로그램들을 실행함으로써, 해당 동작들을 수행할 수 있는 범용 프로세서(generic-purpose processor)(예: CPU 또는 application processor)를 의미할 수 있다.
실시 예에 있어서 '모듈' 혹은 '부'는 적어도 하나의 기능이나 동작을 수행하며, 하드웨어 또는 소프트웨어로 구현되거나 하드웨어와 소프트웨어의 결합으로 구현될 수 있다. 또한, 복수의 '모듈' 혹은 복수의 '부'는 특정한 하드웨어로 구현될 필요가 있는 '모듈' 혹은 '부'를 제외하고는 적어도 하나의 모듈로 일체화되어 적어도 하나의 프로세서로 구현될 수 있다.
한편, 도면에서의 다양한 요소와 영역은 개략적으로 그려진 것이다. 따라서, 본 발명의 기술적 사상은 첨부한 도면에 그려진 상대적인 크기나 간격에 의해 제한되지 않는다.
이하에서는 첨부한 도면을 참고하여 본 개시에 따른 실시 예에 대하여 본 개시가 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다.
도 1은 본 개시의 일 실시 예에 따른 무빙 워크를 이용하는 로봇의 개략적인 예시도이다.
무빙 워크 (Moving Walk)는 주행 공간 내 설치되어 사람, 화물, 로봇 등이 자동으로 이동할 수 있도록 컨베이어 벨트로 설계된 구조물 또는 기계 장치를 의미한다. 무빙 워크는 무빙 워크 웨이(Moving Walkway), 무빙 사이드 워크(Moving Sidewalk), 무빙 페이먼트(Moving Pavement), 오토 워크(Autowalk), 트레블레이터(Travelator) 등으로 지칭될 수 있다. 본 명세서에서는 본 개시의 설명의 편의를 위해 무빙 워크로 지칭하도록 한다.
한편, 본 개시의 일 실시 예에 따른 로봇(100)이 이용하는 무빙 워크(200)는 바닥 면과 수평을 이뤄 동일한 층 내에서 이동이 가능한 수평형 무빙 워크와 일정한 기울기를 갖도록 형성되어 층간 이동이 가능한 경사형 무빙 워크를 모두 포함한다.
본 개시의 일 실시 예에 따른 로봇(100)은 건물 내 공간을 주행하면서 공기 정화 작업을 수행할 수 있는 로봇, 가정 내 공간을 주행하며 의류 정리, 설거지 등의 작업을 수행할 수 있는 가사 지원형 로봇 또는 빌딩 내 공간을 주행하며 경비를 수행할 수 있는 경비 형 로봇 등과 같은 다양한 전자 장치로 구현될 수 있다.
다만, 이에 한정되는 것은 아니며, 로봇(100)은 이동 가능한 다양한 로봇으로 구현될 수 있다. 일 예로, 로봇(100)은 가정 내 공간을 주행하면서 청소 작업을 수행할 수 있는 로봇 청소기, 사람을 대신해 운전을 수행하는 자동 주행 차량 또는 목적지까지 물품을 이동시킬 수 있는 자동 경로 차량(Automated Guided Vehicle)등으로 구현될 수도 있다.
도 1을 참조하면, 본 개시의 일 실시 예에 따른 로봇(100)은 경사형 무빙 워크(200)를 이용한다. 로봇(100)은 경사형 무빙 워크(200)를 통해 서로 다른 층의 주행 공간(1 및 2)의 이동이 가능하다.
이때, 로봇(100)은 무빙 워크(200)에 탑승하기 전(①)에 무빙 워크(200)의 이동 속도와 이동 방향을 식별하고, 이동 속도와 이동 방향에 기초하여 로봇의 자세를 식별할 수 있다. 식별된 로봇의 자세는 로봇(100)이 무빙 워크(200)에 안정적으로 탑승할 수 있도록 무빙 워크(200)의 이동 속도와 이동 방향에 기초하여 식별된 자세일 수 있다. 이에 따라, 로봇(100)은 움직이는 무빙 워크(200)에 탑승하였을 때 넘어지거나 또는 로봇(100)에 탑재된 물건이나 음식에 가해지는 충격을 완화시킬 수 있다.
또한, 본 개시의 일 실시 예에 따른 로봇(100)은 무빙 워크(200)의 경사각을 식별하고, 경사각 기초하여 로봇의 자세를 식별할 수 있다. 식별된 로봇의 자세는 로봇(100)이 무빙 워크(200)에 안정적으로 탑승할 수 있도록 무빙 워크(200)의 경사각에 기초하여 식별된 자세일 수 있다. 보다 구체적으로, 무빙 워크(200)에 경사각에 기초하여 식별된 자세는, 로봇(100)이 워크가 설치된 직립 하도록 로봇(100)이 서 있는 자세일 수 있다. 이에 따라, 로봇(100)은 경사 각을 갖고 움직이는 무빙 워크(200)에 탑승하는 동안, 로봇(100)에 탑재된 물건이나 음식을 보다 안전하게 운송할 수 있다.
또한, 본 개시의 일 실시 예에 따른 로봇(100)은 무빙 워크(200)에 하차하기 전(③)에 무빙 워크(200)의 이동 방향을 식별하고, 식별된 이동 방향에 기초하여 로봇(100)의 하차 방향을 식별할 수 있다. 식별된 하차 방향은 로봇(100)이 무빙 워크(200)에 안정적으로 하차할 수 있도록 무빙 워크(200)의 이동 방향과 일치하는 방향일 수 있다. 이에 따라, 로봇(100)은 움직이는 무빙 워크(200)에 하차할 때 올바른 방향으로 하차할 수 있다.
본 개시의 일 실시 예에 따라, 로봇(100)은 무빙 워크(200)에 탑승하기 전(①)의 상태를 탑승 준비 모드로, 로봇(100)이 무빙 워크(200)에 탑승하는 동안(③)의 상태를 탑승 모드로 그리고 무빙 워크(200)에 하차하기 전(③)의 상태를 하차 모드로 설정하고, 각각의 모드에서의 로봇(100)의 동작 방법을 구분할 수 있다.
이하에서, 이와 관련된 본 개시의 일 실시 예에 따른 무빙 워크(200)를 이용하는 로봇(100)에 대하여 자세히 설명하도록 한다.
도 2는 본 개시의 일 실시 예에 따른 로봇(100)의 개략적인 구성도이다. 도 2를 참조하면, 본 개시의 일 실시 예에 따른 로봇(100)은 카메라(110), 구동부(120) 및 프로세서(130)를 포함한다.
본 개시의 실시 예에 따라, 로봇(100)은 헤드(Head)와 바디(Body)로 구분될 수 있다. 일 예로, 로봇(100)의 헤드는 카메라(110) 또는 센서를 포함하여, 로봇(100) 주변의 객체에 대한 이미지를 획득하거나 또는 객체를 감지하는 기능을 수행할 수 있다. 로봇(100)의 바디는 구동부(120)와 연결되어 로봇(100)을 이동시키거나 또는 로봇(100)을 지지하는 프레임의 기능을 수행할 수 있다. 이때, 헤드는 회전 가능한 모터 등과 연결되어 바디 상에 부착될 수 있다. 이에 따라, 로봇(100)은 구동부(120)를 제어하지 않고도, 헤드를 360° 회전시켜 로봇(100) 주변의 객체에 대한 정보를 획득할 수 있다. 다만, 이에 제한되는 것은 아니며, 로봇(100)은 헤드와 바디가 구분되지 않는 일체형으로 구현될 수도 있으며, 이때 바디와 헤드는 각각 수행하는 기능에 따라 로봇(100) 상에서 구분될 수 있다.
카메라(110)는 로봇(100) 주변의 객체를 촬영하여 객체에 관한 복수의 이미지(10)를 획득한다. 구체적으로, 카메라(110)는 로봇(100)이 무빙 워크(200)의 탑승 영역(3) 및 하차 영역(4)에 관한 복수의 이미지(10)를 획득할 수 있으며, 무빙 워크(200)의 고정 플레이트(210) 및 복수의 이동 플레이트(220)에 관한 이미지를 획득할 수도 있다. 또한, 카메라(110)는 하차 영역(4)에 존재하는 객체(예를 들어, 사람, 동물 등)에 관한 이미지를 획득할 수도 있다.
이를 위해, 카메라(110)는 CMOS 구조를 가진 촬상 소자(CIS, CMOS Image Sensor), CCD 구조를 가진 촬상 소자(Charge Coupled Device) 등의 촬상 소자로 구현될 수 있다. 다만, 이에 한정되는 것은 아니며, 카메라(110)는 피사체를 촬영할 수 있는 다양한 해상도의 카메라(110) 모듈로 구현될 수 있다.
한편, 카메라(110)는 뎁스 카메라(110), 스테레오 카메라(110) 또는 RGB 카메라(110) 등으로 구현될 수 있다. 이를 통해, 카메라(110)는 객체에 관한 이미지와 함께 객체의 뎁스 정보를 함께 획득할 수 있다.
구동부(120)는 로봇(100)을 주행 시킬 수 있는 장치이다. 구동부(120)는 프로세서(130)의 제어에 따라 주행 방향 및 주행 속도를 조절할 수 있다. 일 예에 따른 구동부(120)는 로봇(100)이 주행하기 위한 동력을 발생시키는 동력 발생 장치(예: 사용 연료(또는 에너지원)에 따라 가솔린 엔진(engine), 디젤 엔진, LPG(liquefied petroleum gas) 엔진, 전기 모터 등), 주행 방향을 조절하기 위한 조향 장치(예: 기계식 스티어링(manual steering), 유압식 스티어링(hydraulics steering), 전자식 스티어링(electronic control power steering; EPS) 등)를 포함할 수 있다.
한편, 구동부(120)는 복수의 휠(121)(제1 휠(121)(121-1), 제2 휠(121)(121-2), …, 제n 휠(121)(121-n), n은 2 이상의 자연수))을 포함한다. 복수의 휠(121)은 프로세서(130)의 제어에 기초하여, 회전하여 로봇(100)을 이동시킨다. 구체적으로, 구동부(120)는 프로세서(130)에 의해 생성된 제어 정보(예를 들어, 이동 및 이동 속도 등)에 대응하는 전기적 신호를 수신하면, 수신된 전기적 신호에 기초하여 동력 발생 장치를 구동하고, 복수의 휠(121)을 회전시킬 수 있다.
또는, 프로세서(130)의 제어에 기초하여, 복수의 휠(121) 중 적어도 하나의 휠이 회전하거나 또는 복수의 휠(121)의 회전 속도를 다르게 하여 로봇(100)을 회전시킬 수도 있다. 구체적으로, 구동부(120)는 프로세서(130)에 의해 생성된 제어 정보(예를 들어, 회전 방향 및 회전 속도 등)에 대응하는 전기적 신호를 수신하면, 수신된 전기적 신호에 기초하여 동력 발생 장치를 구동하고, 복수의 휠(121) 중 적어도 하나의 휠을 회전시킬 수 있다. 또는, 구동부(120)는 각각의 휠에 대한 서로 다른 크기의 전기적 신호를 수신하고, 각각의 휠을 서로 다른 속도로 회전시킬 수 있다.
이하에서는, 프로세서(130)가 구동부(120)의 복수의 휠(121)의 회전 및 정지에 관한 제어 신호를 생성하고, 생성된 제어 신호에 대응하는 전기적 신호를 구동부(120)에 송신하여, 구동부(120)의 복수의 휠(121)을 회전시키거나 정지시키는 것을 프로세서(130)가 복수의 휠(121)을 제어하는 것으로 설명한다.
그리고, 구동부(120)는 복수의 서스펜션(122)(제1 서스펜션(122-1), 제2 서스펜션(122-2), …, 제n 서스펜션 (122-n), n은 2 이상의 자연수)를 포함한다. 서스펜션(122)은, 주행하는 로봇(100)과 바닥 면 사이에서 발생되는 충격을 완화하거나 또는 흡수하기 위한 구성이다.
본 개시의 일 실시 예에 따른, 서스펜션(122)은 각각의 휠을 로봇(100)과 바디를 연결하는 기능을 수행한다. 이로써, 서스펜션(122)은 휠(121)이 회전하여 로봇(100)을 이동시키는 과정에서, 로봇(100)과 바닥 면 사이에서 발생되는 충격을 완화하는 기능을 수행할 수 있다. 이를 위해 서스펜션(122)은, 에어 서스펜션(122), 멀티 링크 서스펜션(122) 등 다양한 현가 장치로 구현될 수 있다.
한편, 서스펜션(122)은 프로세서(130)의 제어에 의해 압축 되거나 또는 인장 될 수 있다. 서스펜션(122)이 압축되면 서스펜션(122)이 연결하는 휠(121)과 로봇(100)의 바디 간의 거리가 줄어들고, 서스펜션(122)이 인장 되면, 서스펜션(122)이 연결하는 휠(121)과 로봇(100)의 바디 간의 거리는 늘어날 수 있다. 이에 따라, 본 개시의 로봇(100)은 서스펜션(122)을 압축하거나 또는 인장 시켜, 로봇의 자세를 변경할 수 있다.
이하에서는, 프로세서(130)가 구동부(120)의 서스펜션(122)을 인장 시키거나 또는 압축 시키는 제어 신호를 생성하고, 생성된 제어 신호에 대응하는 전기적 신호를 구동부(120)에 송신하여, 구동부(120)의 서스펜션(122)인 인장 되거나 또는 압축되는 것을 프로세서(130)가 서스펜션(122)을을 제어하는 것으로 설명한다.
한편, 이하에서는 본 개시의 로봇(100)이 4개의 휠(121)과 4개의 휠(121)을 로봇(100)의 바디와 연결하는 4개의 서스펜션(122)을 포함하는 것으로 설명하도록 한다. 이는 발명의 설명의 편의를 위한 것이며, 본 개시의 로봇(100)은 실시 예에 따라, 다양한 개수의 휠(121)과 서스펜션(122)으로 구성될 수 있다.
한편, 본 개시의 일 실시 예에 따라, 로봇(100)은 적어도 하나의 센서를 포함할 수도 있다. 여기서, 적어도 하나의 센서는 로봇(100) 주변의 객체를 감지하기 위해 이용되는 센서(예를 들어, 라이다 센서, ToF 센서 등)와 로봇의 자세를 감지하는 센서(예를 들어, IMU 센서 등)으로 구현될 수 있다.
프로세서(130)는 로봇(100)의 전반적인 동작을 제어할 수 있다. 이를 위해, 프로세선(130)는 RAM(Random Access Memory), ROM(Read Only Memory), CPU(central processing unit), GPU(Graphic processing unit) 및 시스템 버스 등을 포함할 수 있으며, 로봇(100)에 포함된 하나 이상의 구성요소들의 제어에 관한 연산이나 데이터 처리를 실행할 수 있다.
프로세서(130)는 스토리지에 저장된 하나 이상의 명령어를 실행시켜 로봇(100)에 포함된 하나 이상의 구성요소들을 제어하거나, 하드웨어적인 회로 내지는 칩으로서 하나 이상의 구성요소들을 제어하거나, 또는 소프트웨어 및 하드웨어의 결합으로서 하나 이상의 구성요소들을 제어할 수 있다.
프로세서(130)는 카메라(110), 구동부(120), 적어도 하나의 센서(도시되지 않음) 및 스토리지(도시되지 않음)를 포함한 로봇(100) 내 다양한 구성요소들과 전기적으로 연결되어 이들을 제어할 수 있다.
본 개시의 일 실시 예에 따라, 프로세서(130)는, 로봇(100)이 무빙 워크(200)의 탑승 영역(3)에 위치한 것으로 식별되면, 카메라(110)를 통해 획득된 무빙 워크(200)에 대한 복수의 이미지(10)에 기초하여 무빙 워크(200)의 이동 방향 및 이동 속도를 식별한다.
구체적으로, 프로세서(130)는 로봇(100)이 위치한 주행 공간에 대한 맵 데이터를 기초로 로봇(100)이 무빙 워크(200)의 탑승 영역(3)에 위치한 것을 식별한다. 여기서, 맵 데이터는 로봇(100)이 주행하도록 설정된 주행 공간에 관한 정보가 포함된 맵 데이터이다. 주행 공간에 관한 정보는 주행 공간 내 설정된 로봇(100)의 주행 경로, 주행 공간 내 구조물(예를 들어, 무빙 워크(200)), 지형 및 장애물 등의 위치 정보 등을 포함한다. 맵 데이터는 로봇(100)의 메모리에 저장될 수 있으며, 또는 로봇(100)의 통신 인터페이스를 통해 외부 서버로부터 수신할 수 있다.
로봇(100)은 맵 데이터를 기초로 기 설정된 주행 경로에 따라 주행 공간 내에서 이동할 수 있다. 이때, 주행 경로가 무빙 워크(200) 상에 설정된 경우, 프로세서(130)는 로봇(100)이 무빙 워크(200)로 이동하도록 구동부(120)를 제어할 수 있다. 다만, 이에 한정되는 것은 아니며 로봇(100)은 사용자 또는 로봇(100)과 통신하는 외부 전자 장치를 트래킹하여 주행 공간 내에서 이동할 수 있다. 이때, 프로세서(130)는 사용자 또는 외부 전자 장치가 무빙 워크(200)로 이동하는 경우, 사용자 또는 외부 전자 장치를 따라 무빙 워크(200)로 이동하도록 구동부(120)를 제어할 수도 있다.
한편, 프로세서(130)는 맵 데이터에 기초하여, 로봇(100)이 무빙 워크(200)의 탑승 영역(3)에 위치한 것을 식별할 수 있다.
탑승 영역(3)은 무빙 워크(200)에 탑승하기 위하여 사람 또는 로봇(100)이 대기하는 영역을 의미한다. 일 예로, 탑승 영역(3)은 무빙 워크(200)에 탑승구에 설치된 고정 플레이트(210)를 포함할 수 있다. 고정 플레이트(210)란, 무빙 워크(200)의 탑승구 및 하차구에 설치된 고정된 플레이트를 의미한다. 고정 플레이트(210)는 랜딩 플레이트로 지칭될 수도 있다.
고정 플레이트(210)는, 무빙 워크(200)의 컨베이어 벨트 형성하는 복수의 이동 플레이트(220)와는 구별된다. 이동 플레이트(220)는 무빙 워크(200)의 롤러 상단에 배치되고, 구동기 및 구동 체인에 의해 특정 방향으로 움직인다. 한편, 플레이트는 스텝, 발판, 디딤판 등으로 지칭될 수도 있다.
한편, 탑승 영역(3)은 무빙 워크(200)의 탑승구 주변의 바닥 면을 더 포함할 수 있다. 일 예로, 탑승 영역(3)은 무빙 워크(200)의 탑승구에 설치된 고정 플레이트(210)를 포함하고, 고정 플레이트(210) 주변의 기 설정된 범위의 바닥 면을 포함할 수도 있다.
이와 같은 탑승 영역(3)은 맵 데이터 상에 기 설정될 수 있다. 따라서, 프로세서(130)는 맵 데이터를 기초로 로봇(100)이 탑승 영역(3)에 위치 하였는지 식별할 수 있다.
한편, 프로세서(130)는 탑승 영역(3)의 고정 플레이트(210) 상에 설치된 포스트 빔을 식별함에 따라 로봇(100)이 탑승 영역(3)에 위치한 것으로 식별할 수도 있다. 일 예로, 로봇(100)이 주행하는 동안 카메라(110)를 통해 획득된 이미지 상에서 포스트 빔이 인식되면, 프로세서(130)는 로봇(100)이 탑승 영역(3)에 위치한 것으로 식별할 수 있다. 이를 위해, 프로세서(130)는 포스트 빔을 인식하도록 학습된 신경망 모델을 이용할 수 있다.
여기서, 신경망 모델은 이미지의 특징 정보를 추출하는 컨볼루션 레이어(Convolutional Layer) 및 추출된 특징 정보에 기초하여 이미지에 포함된 객체를 식별하도록 학습된 풀리-커넥티드 레이어(Fully-connected Layer)를 포함하는 CNN Convolutional Neural Network)일 수 있다. 신경망 모델은 메모리에 저장될 수 있다. 뿐만 아니라, 프로세서(130)는 로봇(100)의 통신 인터페이스를 통해 탑승 영역(3)의 포스트 빔과 통신을 수행하여, 로봇(100)과 포스트 빔 간의 거리를 식별할 수도 있다. 이때, 식별된 거리가 기 설정된 거리 이내이면, 프로세서(130)는 로봇(100)이 탑승 영역(3)에 위치한 것으로 식별할 수도 있다.
또한, 프로세서(130)는 로봇(100)이 주행하는 동안 카메라(110)를 통해 획득된 이미지 상에서 이동 플레이트(220)가 식별되면, 로봇(100)이 탑승 영역(3)에 위치한 것으로 식별할 수도 있다. 일 예로, 로봇(100)이 주행하는 동안 카메라(110)를 통해 획득된 이미지 상에서 프로세서(130)는 무빙 워크(200)의 이동 플레이트(220)를 식별할 수 있다. 구체적으로, 프로세서(130)는 로봇(100)이 무빙 워크(200)로 이동함에 따라, 카메라(110)를 통해 무빙 워크(200)에 대한 이미지를 반복하여 획득할 수 있다. 그리고, 프로세서(130)는 카메라(110)를 통해 획득된 이미지 상에서 무빙 워크(200)의 이동 영역이 점차 확장되는 것을 식별할 수 있다.
여기서, 이동 영역은 무빙 워크(200)의 이동 플레이트(220)를 포함하는 영역일 수 있다. 따라서, 무빙 워크(200)에 로봇(100)이 가까워 짐에 따라, 카메라(110)를 통해 실시간으로 획득되는 이미지 상에서 이동 영역이 점차 확장되는 것을 프로세서(130)는 식별할 수 있다. 그리고, 프로세서(130)는 이동 영역이 기 설정된 범위 이상이면, 로봇(100)이 탑승 영역(3)에 위치한 것으로 식별할 수 있다.
뿐만 아니라, 로봇(100)은 이미지 상에서 탑승 영역(3)을 식별하도록 학습된 신경망 모델을 통해 로봇(100)이 탑승 영역(3)에 위치하였는지 식별할 수 있다. 구체적으로, 로봇(100)이 위치한 주행 공간 내 무빙 워크(200)의 탑승 영역(3)을 포함한 다양한 탑승 영역(3)에서 획득될 수 있는 다수의 이미지(즉, 학습 데이터)를 통해 학습된 신경망 모델을 이용하여, 프로세서(130)는 로봇(100)이 탑승 영역(3)에 위치하였는지 식별할 수도 있다. 이미지 내에 포함된 탑승 영역(3)을 검출하는 신경망 모델은, CNN(Convolutional Neural Network) 모델, FCN(Fully Convolutional Networks) 모델, RCNN (Regions with Convolutional Neuron Networks features) 모델, YOLO 모델 등으로 구현될 수 있다. 그리고, 신경망 모델은 메모리에 저장될 수 있다.
이처럼, 다양한 방식에 의해 프로세서(130)는 로봇(100)이 탑승 영역(3)에 위치한 것을 식별할 수 있다.
프로세서(130)는, 로봇(100)이 탑승 영역(3)에 위치한 것으로 식별되면 카메라(110)를 통해 무빙 워크(200)에 대한 복수의 이미지(10)를 획득한다. 그리고, 프로세서(130)는 획득된 무빙 워크(200)에 대한 복수의 이미지(10)를 바탕으로, 무빙 워크(200)의 이동 방향 및 이동 속도를 식별한다.
구체적으로, 프로세서(130)는 로봇(100)이 탑승 영역(3)에 위치한 것으로 식별되면, 로봇(100)이 정지하도록 구동부(120)를 제어할 수 있다. 그리고, 프로세서(130)는 로봇(100)이 정지된 상태에서, 카메라(110)를 통해 무빙 워크(200)에 대한 복수의 이미지(10)를 획득할 수 있다.
이때, 본 개시의 일 실시 예에 따라, 프로세서(130)는 복수의 이미지(10)를 획득하기 위하여 로봇(100)이 이동하도록 구동부(120)를 제어할 수 있다. 구체적으로, 프로세서(130)는 로봇(100)이 탑승 영역(3)에 위치한 것으로 감지되면, 탑승 영역(3) 내 이미지 획득 지점으로 이동하도록 구동부(120)를 제어할 수 있다.
이미지 획득 지점이란, 무빙 워크(200)를 탑승하기 위한 사용자, 또는 또 다른 로봇(100)의 통행을 방해하지 않고, 무빙 워크(200)에 대한 이미지를 획득하도록 설정된 위치일 수 있다. 여기서, 이미지 획득 지점은 맵 데이터 상에 각각의 탑승 지역에 대하여 사전에 설정될 수 있다.
또는 프로세서(130)는 로봇(100)이 탑승 지역에 위치한 것으로 식별되면, 카메라(110)릍 통해 무빙 워크(200)에 대한 적어도 하나의 이미지를 획득하고, 획득된 적어도 하나의 이미지를 통해 무빙 워크(200)의 폭을 식별할 수 있다. 여기서, 무빙 워크(200)의 폭은 획득된 적어도 하나의 이미지에서 이동 플레이트(220)를 검출하고, 검출된 이동 플레이트(220)의 폭에 기초하여 식별될 수 있다. 그리고, 프로세서(130)는 식별된 무빙 워크(200)의 폭에 기초하여, 로봇(100)의 이미지 획득 지점을 선정할 수 있다. 일 예로, 로봇(100)은 식별된 무빙 워크(200)의 폭과 로봇(100)의 바디에 관한 크기 정보(예를 들어, 로봇(100)의 바디의 길이 정보 등)에 기초하여, 로봇(100)이 무빙 워크(200)의 탑승 구의 일 측에서 위치하도록 구동부(120)를 제어할 수 있다.
그리고, 프로세서(130)는, 획득된 무빙 워크(200)에 대한 복수의 이미지(10)를 통해 무빙 워크(200)의 이동 방향과 이동 속도를 식별할 수 있다. 구체적으로, 프로세서(130)는 획득된 무빙 워크(200)에 대한 복수의 이미지(10) 내에서 이동 플레이트(220)를 검출할 수 있다. 그리고 프로세서(130)는 각각의 이미지 내에서 검출된 이동 플레이트(220)의 위치를 식별하고 식별된 이동 플레이트(220)의 위치 변화를 식별할 수 있다. 그리고, 프로세서(130)는 식별된 이동 플레이트(220)의 위치 변화를 기초로 무빙 워크(200)의 이동 방향을 식별할 수 있으며, 또한 식별된 이동 플레이트(220)의 위치 변화 및 복수의 이미지(10)에 관한 프레임 레이트(Frame Rate)에 기초하여 무빙 워크(200)의 이동 속도를 식별할 수 있다.
이하에서는, 무빙 워크(200)의 이동 방향 및 이동 속도를 식별하는 본 개시의 일 실시 예에 대하여 자세히 설명하도록 한다.
도 3은 본 개시의 일 실시 예에 따른, 무빙 워크의 이동 방향 및 이동 속도를 식별하는 방법을 나타낸 예시도이다.
도 3을 참조하면, 로봇(100)이 탑승 영역(3)에 위치한 것으로 식별되면, 프로세서(130)는 카메라(110)를 통해 탑승 영역(3)에서 무빙 워크(200)에 대한 복수의 이미지(11, 12)를 획득할 수 있다. 구체적으로, 프로세서(130)는 t1 시점에 무빙 워크(200)에 대한 제1 이미지(11)를 획득하고, t2 시점에 무빙 워크(200)에 대한 제2 이미지(12)를 획득할 수 있다.
한편, 프로세서(130)는 카메라(110)를 통해 획득된 복수의 이미지(10)에 관한 관심 영역(20)을 설정할 수 있다. 구체적으로, 프로세서(130)는 획득된 복수의 이미지(10)를 비교하여, 이미지 내에서 가변 영역을 식별할 수 있다. 복수의 이미지(10) 내에서의 고정 플레이트(210)는 고정된 상태로 움직이지 않으므로, 가변 영역은 복수의 이미지(10) 내에서 검출되는 이동 플레이트(220)의 움직임에 기초하여 식별될 수 있다. 그리고, 프로세서(130)는 가변 영역에 대응하는 영역을 관심 영역을 설정할 수 있다.
그리고, 프로세서(130)는 설정된 관심 영역 내에서 적어도 하나의 이동 플레이트(220)의 위치 변화를 식별할 수 있다.
도 3을 참조하면, 프로세서(130)는 제1 이미지(11)와 제2 이미지(12)에서의 제1 이동 플레이트(221)와 제2 이동 플레이트(222)의 위치 변화를 식별할 수 있다. 그리고, 프로세서(130)는 제1 이미지(11)와 제2 이미지(12)에서의 각각의 이동 플레이트(220)(제1 이동 플레이트(221) 및 제2 이동 플레이트(222))의 위치 변화를 기초로, 무빙 워크(200)의 이동 방향 및 이동 속도를 식별할 수 있다. 이때, 프로세서(130)는 무빙 워크(200)의 이동 방향이 북쪽인 것으로 식별할 수 있다.
한편, 프로세서(130)는 복수의 이미지(10) 내에서 검출되는 각각의 이동 플레이트(220)에 대한 식별자(예를 들어, 플레이트 ID 등)를 설정하고, 각각의 이동 플레이트(220)를 트래킹 할 수도 있다.
한편, 본 개시의 일 실시 예에 따라, 프로세서(130)는, 로봇(100)이 탑승 영역(3)에 위치한 상태에서 카메라(110)를 통해 획득된 복수의 이미지(10)에 기초하여 무빙 워크(200)의 복수의 플레이트 간의 경계 선을 식별하고, 식별된 경계 선의 법선 벡터(40)에 기초하여 무빙 워크(200)의 이동 방향을 식별하고, 식별된 경계 선의 이동 속도에 기초하여 무빙 워크(200)의 이동 속도를 식별할 수 있다.
도 4는 본 개시의 일 실시 예에 따른, 플레이트 간의 경계 선에 기초하여, 무빙 워크의 이동 방향 및 이동 속도를 식별하는 방법에 대한 예시도이다.
구체적으로, 프로세서(130)는 로봇(100)이 탑승 영역(3)에 위치한 상태에서 카메라(110)를 통해 무빙 워크(200)에 대한 복수의 이미지(10)를 획득하고, 획득된 복수의 이미지(10)에 기초하여 무빙 워크(200)의 인접한 복수의 이동 플레이트(220) 간의 경계 선을 식별할 수 있다.
프로세서(130)는 복수의 이미지(10) 각각에 직선 검출 알고리즘을 적용하여 각각의 이미지 내에서 직선 성분들을 추출할 수 있다. 일 예로, 프로세서(130)는 허프 변환을 통해 각각의 이미지에 포함된 직선 성분들을 추출할 수 있다. 추출된 직선 성분에는 고정 플레이트(210)와 이동 플레이트(220) 간의 경계, 인접한 복수의 이동 플레이트(220) 간의 경계, 이동 플레이트(220)에 표시된 안전 선, 무빙 워크(200)의 핸드 레일 등이 포함될 수 있다.
이와 같이, 각각의 이미지에서 추출된 직선 성분들 중에서 프로세서(130)는 인접한 복수의 이동 플레이트(220) 간의 경계에 대응하는 경계 선을 식별할 수 있다. 구체적으로, 프로세서(130)는 각각의 이미지 내에서 설정된 관심 영역(20) 내 직선 성분을 이동 플레이트(220) 간의 경계 선으로 식별할 수 있다. 또는 프로세서(130)는 각각의 직선 성분이 갖는 특징 정보를 식별하고, 식별된 특징 정보를 기초로 복수의 직선 성분들 중에서 복수의 이동 플레이트(220) 간의 경계 선을 선별할 수 있다. 또는 프로세서(130)는 복수의 이미지(10)를 비교하여, 각각의 이미지에서 위치가 변경되는 직선 성분을 검출하고, 검출된 직선 성분을 복수의 이동 플레이트(220) 간의 경계 선으로 식별할 수 있다.
그리고, 프로세서(130)는 복수의 이미지(10)에서 식별되는 인접한 복수의 이동 플레이트(220) 간의 경계 선을 트래킹 하고, 경계 선의 이동 방향 및 이동 속도를 식별할 수 있다.
구체적으로, 프로세서(130)는 식별된 경계 선을 트래킹 하여, 각각의 이미지에서의 경계 선의 위치 변화를 식별하고, 식별된 경계 선의 위치 변화 및 각각의 이미지의 프레임 레이트에 기초하여 경계 선의 이동 속도를 식별할 수 있다.
도 4를 참조하면, 프로세서(130)는 t3 시점에 획득한 제3 이미지(13)와 t4 시점에 획득한 제4 이미지(14)에 각각 설정된 관심 영역(20)에 포함된 직선 성분을 검출할 수 있다.
구체적으로, 프로세서(130)는 제3 이미지(13) 및 제4 이미지(14)에서 검출되는 복수의 직선 성분 에는, 고정 플레이트(210)와 이동 플레이트(220) 간의 경계 선 및 난간 데크와 이동 플레이트(220) 간의 경계 선, 인접한 복수의 이동 플레이트(220) 간의 경계 선이 포함될 수 있다. 이때, 프로세서(130)는 관심 영역에 포함된 복수의 이동 플레이트(220) 간의 경계 선을 식별하고, 식별된 경계 선을 트래킹 할 수 있다.
한편, 프로세서(130)는 인접한 복수의 이동 플레이트(220) 간의 경계 선의 법선 벡터(40)를 추출하고, 추출된 법선 벡터(40)를 기초로 무빙 워크(200)의 이동 방향을 식별할 수 있다. 구체적으로, 프로세서(130)는 이동 플레이트(220) 간의 경계 선에 수직인 법선 벡터(40)를 식별할 수 있다. 그리고, 프로세서(130)는 식별된 법선 벡터(40)의 방향을 이동 플레이트(220)의 위치가 변경되는 방향으로 식별할 수 있다. 일 예로, 프로세서(130)는 이미지 내 이동 플레이트(220) 간의 경계 선의 위치를 기초로, 2차원 좌표 공간 내에서의 경계 선의 좌표 값을 식별하고, 식별된 좌표 값에 기초하여 2차원 좌표 공간 내에서의 경계 선에 대한 법선 벡터(40)를 식별할 수 있다.
다시 도 4를 참조하면, 프로세서(130)는 t3 시점에 획득한 제3 이미지(13)와 t4 시점에 획득한 제4 이미지(14)에서 각각 제3 이동 플레이트(221)와 제4 이동 플레이트(222)의 경계 선(31)을 식별하고, 제4 이미지에서 경계 선(31)에 대한 법선 벡터(40)를 추출할 수 있다. 이는, 제3 이미지에서의 경계 선(31)과 제4 이미지에서의 경계 선(31)의 위치 변화에 기초하여 식별될 수 있다. 그리고, 프로세서(130)는 추출된 법선 벡터(40)의 방향을 무빙 워크(200)의 이동 방향으로 식별할 수 있다.
한편, 본 개시의 일 실시 예에 따라 프로세서(130)는 카메라(110)를 통해 획득된 복수의 이미지(10)에서 검출되는 복수의 이동 플레이트(220) 중 무빙 워크(200)의 이동 방향 및 이동 속도를 식별하기 위해 이용할 적어도 하나의 플레이트를 선별할 수 있다.
구체적으로, 프로세서(130)는 복수의 이미지(10)에서 검출되는 복수의 이동 플레이트(220)에 대한 거리 정보를 획득할 수 있다. 이동 플레이트(220)에 대한 거리 정보는 카메라(110)(예를 들어, 스테레오 카메라(110), RGB 카메라(110) 등) 및/또는 센서(라이다 센서, ToF 센서 등)을 통해 획득될 수 있다. 그리고, 프로세서(130)는 획득된 거리 정보를 기초로 복수의 이동 플레이트(220)의 3차원의 위치 정보(예를 들어, 기 설정된 3차원의 좌표 공간에서의 좌표 값)를 획득할 수 있다. 그리고, 프로세서(130)는 복수의 이동 플레이트(220)의 3차원의 위치 정보를 기초로, 복수의 이동 플레이트(220) 중 높이(예를 들어, z 축상 위치)가 가장 낮은 이동 플레이트(220)를 검출할 수 있다. 그리고, 프로세서(130)는 검출된 이동 플레이트(220)의 위치 변화를 기초로 무빙 워크(200)의 이동 방향 및 이동 속도를 식별할 수 있다.
본 개시의 일 실시 예에 따라, 프로세서(130)는 무빙 워크(200)의 이동 방향 및 이동 속도를 식별한 후, 로봇(100)이 식별된 이동 방향에 대응되는 탑승 방향을 향하도록 구동부(120)를 제어하고, 식별된 이동 속도에 대응되는 각도로 로봇(100)이 기울어지도록 복수의 휠(121) 중 적어도 하나의 휠에 연결된 서스펜션(122)을 제어한다. 그리고, 프로세서(130)는 기울어진 로봇(100)이 탑승 방향으로 이동하여 무빙 워크(200)에 탑승하도록 구동부(120)를 제어할 수 있다.
도 5는 본 개시의 일 실시 예에 따른, 무빙 워크의 이동 방향에 기초하여, 로봇의 탑승 방향을 결정하는 것을 나타낸 예시도이고, 도 6은 본 개시의 일 실시 예에 따른, 무빙 워크의 이동 속도에 기초하여 로봇이 기울어지는 각도를 결정하는 것을 나타낸 예시도이다.
구체적으로, 프로세서(130)는 식별된 무빙 워크(200)의 이동 방향에 기초하여, 로봇(100)의 탑승 방향을 식별할 수 있다. 일 예로, 프로세서(130)는 무빙 워크(200)의 이동 플레이트(220) 간의 경계 선의 법선 벡터(40)의 방향을 로봇(100)의 탑승 방향으로 식별할 수 있다. 즉, 프로세서(130)는 무빙 워크(200)의 이동 방향을 로봇(100)의 탑승 방향으로 식별할 수 있다.
그리고, 프로세서(130)는 로봇(100)이 식별된 탑승 방향을 향하도록 구동부(120)를 제어할 수 있다. 즉, 프로세서(130)는 로봇(100)의 바디가 향하는 벡터가 추출된 법선 벡터(40)와 방향이 일치하도록 로봇(100)의 구동부(120)를 제어할 수 있다. 이를 위해, 프로세서(130)는 무빙 워크(200)의 이동 방향에 기초하여 제어 정보를 생성하고, 생성된 제어 정보를 기초로 구동부(120)에 포함된 휠(121)을 회전시켜 로봇(100)이 탑승 방향을 향하도록 제어할 수 있다. 즉, 프로세서(130)는 구동부(120)를 제어하여 무빙 워크(200)의 이동 방향으로 로봇(100)을 정렬하도록 제어할 수 있다.
도 5를 참조하면, 프로세서(130)는 무빙 워크(200)의 이동 방향을 북쪽으로 식별하였다. 이때, 프로세서(130)는 무빙 워크(200)의 이동 방향에 기초하여 로봇(100)의 무빙 워크(200)의 탑승 방향을 북쪽으로 식별할 수 있다. 그리고, 프로세서(130)는 로봇(100)이 탑승 방향인 북쪽을 향하도록 휠(121)을 회전시킬 수 있다. 이를 통해, 동북 방향을 향했던 로봇(100)은 무빙 워크(200)의 이동 방향과 일치하는 북쪽 방향으로 회전할 수 있다.
그리고, 프로세서(130)는 로봇(100)이 탑승 방향을 향하도록 구동부(120)를 제어한 후, 식별된 무빙 워크(200)의 이동 속도에 대응되는 각도로 로봇(100)이 기울어지도록 복수의 휠(121) 중 적어도 하나의 휠에 연결된 서스펜션(122)을 제어할 수 있다.
구체적으로, 프로세서(130)는 구동부(120)를 제어하여, 로봇(100)이 탑승 방향을 향하여 정렬되면, 무빙 워크(200)의 이동 속도에 대응되는 각도를 식별할 수 있다. 프로세서(130)는 무빙 워크(200)의 이동 속도에 대응되는 각도를 로봇(100)의 피치 각도(Pitch Angle)로 식별할 수 있다. 이때, 무빙 워크(200)의 이동 속도에 대응되는 각도는, 무빙 워크(200)의 이동 속도, 이동 플레이트(220)의 마찰 계수, 로봇(100)의 무게, 로봇(100)에 적재된 물건의 무게 등을 고려하여 식별될 수 있다.
일 예로, 무빙 워크(200)의 이동 속도에 대응되는 각도는 하기의 수학식 1에 기초하여 식별될 수 있다.
수학식 1
(식 1)
여기서, θ는 무빙 워크(200)의 이동 속도에 대응되는 각도이고, v는 무빙 워크(200)의 이동 속도이고, m은 로봇(100)의 질량이고, g는 중력 가속도이고, c는 이동 플레이트(220)의 마찰 계수 등을 고려하여 설정된 계수이다.
프로세서(130)는 무빙 워크(200)의 이동 속도를 기초로 식별된, 무빙 워크(200)의 이동 속도에 대응되는 각도로 로봇(100)이 기울어지도록 복수의 휠(121) 중 적어도 하나의 휠에 연결된 서스펜션(122)을 제어할 수 있다. 구체적으로, 프로세서(130)는 무빙 워크(200)의 이동 속도에 대응되는 각도로 로봇(100)이 기울어지기 위한 복수의 휠(121) 각각의 서스펜션(122)의 길이를 식별하고, 복수의 휠(121) 중 서스펜션(122)의 길이가 변경되어야 하는 적어도 하나의 휠을 식별할 수 있다. 그리고, 프로세서(130)는 식별된 적어도 하나의 휠의 서스펜션(122)의 길이가 조절되도록 제어 정보를 생성하고, 생성된 제어 정보를 기초로 구동부(120)를 제어하여 로봇(100)이 무빙 워크(200)의 이동 속도에 대응되는 각도로 기울어지도록 할 수 있다.
일 예로, 프로세서(130)는 복수의 휠(121) 중 적어도 하나의 휠에 연결된 서스펜션(122)이 인장 되도록 제어하거나 또는 프로세서(130)는 복수의 휠(121) 중 적어도 하나의 휠에 연결된 서스펜션(122)이 압축되도록 제어함으로써, 로봇(100)이 식별된 무빙 워크(200)의 이동 속도에 대응되는 각도로 기울어지도록 할 수 있다.
도 6을 참조하면, 프로세서(130)는 식별된 무빙 워크(200)의 이동 속도(v1)에 대응하는 각도(θ1)로 로봇(100)이 이동하도록 복수의 휠(121) 중 후방에 위치한 제3 휠(121) 및 제4 휠(121)에 각각 연결된 서스펜션(122)을 제어할 수 있다. 구체적으로, 도 6에서는 프로세서(130)가 제3 휠(121)에 연결된 서스펜션(122)과 제4 휠(121)에 연결된 서스펜션(122)이 인장 시켜 로봇(100)이 기울어지도록 하였다.
그리고, 본 개시의 일 실시 예에 따라, 프로세서(130)는, 로봇(100)이 무빙 워크(200)의 이동 속도에 대응하는 각도로 기울어진 후에는, 기울어진 로봇(100)이 탑승 방향으로 이동하여 무빙 워크(200)에 탑승하도록 구동부(120)를 제어한다.
구체적으로, 프로세서(130)는 로봇(100)이 무빙 워크(200)의 이동 속도에 대응하는 각도로 기울어진 상태에서 탑승 방향을 향해 이동하도록 구동부(120)를 제어할 수 있다. 이때, 프로세서(130)는 무빙 워크(200)의 이동 속도를 기초로 로봇(100)이 무빙 워크(200)에 탑승하기 위한 이동 속도(즉, 탑승 속도)를 결정할 수도 있다. 일 예로, 프로세서(130)는 식별된 무빙 워크(200)의 속도보다 기 설정된 비율만큼 증가된 속도로 무빙 워크(200)의 탑승 속도를 결정할 수 있다.
상술한 본 개시의 일 실시예와 같이, 프로세서(130)는 탑승 영역(3)에서 카메라(110)를 통해 획득된 이미지를 기초로, 로봇(100)이 탑승하고자 하는 무빙 워크(200)의 이동 방향 및 이동 속도를 식별한다. 그리고, 식별된 이동 방향 및 이동 속도에 적합한 로봇의 자세와 로봇(100)의 이동 방향을 결정한다. 특히 무빙 워크(200) 마다 이동 방향 및 이동 속도가 상이할 수 있지만, 본 개시에 따른 로봇(100)은 각각의 무빙 워크(200)의 이동 방향 및 이동 속도를 구별하여 식별할 수 있다. 또한, 무빙 워크(200)에 탑승한 후 무빙 워크(200)의 이동 방향 및 이동 속도를 고려하여 로봇의 자세를 결정하는 것이 아니며, 로봇(100)이 무빙 워크(200)에 탑승하기 전에 사전에 무빙 워크(200)의 이동 방향 및 이동 속도를 고려하여 로봇(100)의 탑승 자세를 결정하기 때문에, 무빙 워크(200)에 로봇(100)의 안정적인 탑승이 가능하다.
한편, 본 개시의 일 실시 예에 따라, 프로세서(130)는, 로봇(100)이 탑승 영역(3)에 위치한 상태에서 카메라(110)를 통해 획득된 복수의 이미지(10)에 기초하여 무빙 워크(200)의 폭을 식별하고, 식별된 무빙 워크(200)의 폭에 기초하여, 로봇(100)의 무빙 워크(200)의 탑승 위치를 결정하고, 결정된 탑승 위치에서 로봇(100)이 식별된 이동 방향에 대응되는 탑승 방향을 향하도록 구동부(120)를 제어할 수 있다.
구체적으로, 프로세서(130)는 로봇(100)이 탑승 영역(3)에 위치한 상태에서 카메라(110)를 통해 획득된 복수의 이미지(10)에 기초하여 무빙 워크(200)의 폭을 식별할 수 있다. 프로세서(130)는 이미지 내에서 검출된 이동 플레이트(220) 간의 경계 선의 길이 정보를 기초로 무빙 워크(200)의 폭을 식별할 수 있다. 또는, 프로세서(130)는 이미지 내 설정된 관심 영역의 폭에 기초하여 무빙 워크(200)의 폭을 식별할 수도 있다.
이처럼, 프로세서(130)는 식별된 무빙 워크(200)의 폭에 기초하여, 로봇(100)의 무빙 워크(200)의 탑승 위치를 결정할 수 있다. 일 예로, 프로세서(130)는 로봇(100)이 무빙 워크(200)의 폭에 기초하여, 로봇(100)의 탑승 위치를 무빙 워크(200)의 중앙으로 결정할 수 있다. 그리고, 프로세서(130)는 결정된 탑승 위치에 로봇(100)이 위치하도록 구동부(120)를 제어할 수 있다. 그리고, 프로세서(130)는 결정된 탑승 위치에서 로봇(100)이 식별된 이동 방향에 대응되는 탑승 방향을 향하도록 구동부(120)를 제어할 수 있다. 그리고, 프로세서(130)는 로봇(100)이 무빙 워크(200)의 이동 속도에 대응하는 각도로 기울어지도록 적어도 하나의 휠에 연결된 서스펜션(122)을 제어하고, 기울어진 로봇(100)이 결정된 탑승 위치에서 탑승 방향으로 이동하여 무빙 워크(200)에 탑승하도록 구동부(120)를 제어할 수 있다.
이하에서는, 도 7 내지 도 9에 기초하여, 로봇(100)이 무빙 워크(200)에 탑승한 이후 무빙 워크(200)의 경사 각에 기초하여, 로봇의 자세를 정렬하는 구체적인 방법에 대하여 설명하도록 한다.
본 개시의 일 실시 예에 따라 프로세서(130)는, 로봇(100)이 무빙 워크(200)에 탑승한 것으로 식별되면, 카메라(110)를 통해 획득된 무빙 워크(200)에 대한 복수의 이미지(10)에 기초하여 무빙 워크(200)의 복수의 플레이트를 식별할 수 있다.
구체적으로, 프로세서(130)는 로봇(100)이 무빙 워크(200)에 탑승하였는지 식별할 수 있다. 이때, 프로세서(130)는 맵 데이터 상에서 구동부(120)의 제어 없이도 로봇(100)의 위치가 변경되는 것으로 식별되면 로봇(100)이 무빙 워크(200)에 탑승한 것으로 식별할 수 있다. 또는 프로세서(130)는 구동부(120)의 복수의 휠(121)이 무빙 워크(200) 상에 위치한 것으로 감지되면, 로봇(100)이 무빙 워크(200)에 탑승한 것으로 식별할 수 있다.
그리고, 프로세서(130)는 로봇(100)이 무빙 워크(200)에 탑승한 것으로 식별되면, 로봇(100)이 정지하도록 구동부(120)를 제어하고, 로봇(100)이 정지된 상태에서 카메라(110)를 통해 무빙 워크(200)에 대한 복수의 이미지(10)를 획득할 수 있다.
이때, 본 개시의 일 실시 예에 따라, 프로세서(130)는 복수의 이미지(10)를 획득하기에 앞서, 또는 복수의 이미지(10)를 획득하는 동안 기울어진 로봇(100)이 직립 하도록 복수의 휠(121) 중 적어도 하나의 휠의 서스펜션(122)을 제어할 수 있다.
구체적으로, 프로세서(130)는 무빙 워크(200)의 이동 속도에 기초하여 기울어진 로봇(100)을 다시 원상태로 복구시킬 수 있다. 여기서, 로봇(100)의 원상태는 로봇(100)이 무빙 워크(200)에 탑승하기 전의 로봇(100)의 상태, 또는 로봇(100)이 직립 한 상태일 수 있다. 한편, 로봇(100)이 직립한 상태는, 로봇이 무빙 워크(200)가 설치된 바닥 면과 평행을 이루는 상태일 수 있다. 일 예로, 프로세서(130)는 무빙 워크(200)의 이동 속도에 기초하여 인장 된 적어도 하나의 휠에 연결된 서스펜션(122)이 압축되도록 제어하거나 또는 무빙 워크(200)의 이동 속도에 기초하여 압축된 적어도 하나의 휠에 연결된 서스펜션(122)이 인장 되도록 제어함으로써, 로봇(100)이 무빙 워크(200)가 설치된 바닥 면과 평행을 이루도록 할 수 잇다.
또한, 본 개시의 일 실시 예에 따라, 프로세서(130)는 로봇(100)이 무빙 워크(200)에 탑승한 것으로 식별되면, 식별된 탑승 방향에 기초하여 로봇(100)을 정렬할 수 있다. 일 예로, 로봇(100)이 무빙 워크(200)에 탑승하는 경우, 무빙 워크(200)(예를 들어, 무빙 워크(200)의 이동 플레이트(220))와 로봇(100)(예를 들어, 로봇(100)의 휠(121)) 사이에서 발생되는 마찰력 등에 의해 탑승 시 무빙 워크(200)의 이동 방향과 일치하던 로봇(100)의 방향이 틀어질 수 있다.
이에 따라, 프로세서(130)는 로봇(100)이 무빙 워크(200)에 탑승한 것으로 식별되면, 탑승 전에 식별된 탑승 방향에 기초하여, 무빙 워크(200)에 로봇(100)이 탑승한 직후에 로봇(100)이 무빙 워크(200)의 이동 방향을 향해 정렬되었는지 식별할 수 있다. 그리고, 프로세서(130)는 로봇(100)이 무빙 워크(200)의 이동 방향을 향해 정렬되지 않은 것으로 식별되면, 탑승 전에 식별된 탑승 방향에 기초하여, 로봇(100)이 무빙 워크(200)의 이동 방향을 향해 정렬되도록 구동부(120)의 휠(121)을 제어할 수 있다.
한편, 프로세서(130)는 획득된 복수의 이미지(10) 내에서 무빙 워크(200)의 복수의 플레이트를 식별할 수 있다. 여기서, 로봇(100)이 무빙 워크(200) 상에서 정지된 상태에서 획득된 복수의 이미지(10)에서 식별되는 복수의 플레이트는 상술하여 설명한 무빙 워크(200)의 이동 플레이일 수 있다.
다만, 탑승 영역(3)에서 획득된 복수의 이미지(10)에서 식별되는 이동 플레이트(220)와는 다르게, 로봇(100)이 무빙 워크(200)에서 탑승한 상태에서 획득된 복수의 이미지(10)에서는 이동 플레이트(220)의 위치 변화가 식별되지 않을 수 있다. 왜냐하면, 무빙 로봇(100)에 로봇(100)이 탑승하는 동안, 로봇(100)과 이동 플레이트(220)가 동일한 이동 속도로 움직이기 때문이다. 즉, 움직이는 무빙 워크(200) 상의 로봇(100)과 이동 플레이트(220) 간의 상대 속도는 '0'의 값을 갖는다.
한편, 프로세서(130)는, 카메라(110)를 통해 획득한 복수의 이미지(10)를 통해 무빙 워크(200)의 복수의 이동 플레이트(220)를 식별할 수 있다. 이때, 프로세서(130)가 복수의 이미지(10)를 통해 식별하는 복수의 이동 플레이트(220)는 로봇(100)의 전방에 위치한 복수의 이동 플레이트(220)와 로봇(100)이 서있는 로봇(100) 아래의 이동 플레이트를 포함할 수 있다.
한편, 프로세서(130)는 획득된 복수의 이미지(10)를 통해 로봇(100)과 각각의 이동 플레이트(220) 간의 거리를 식별할 수 있다. 일 예로, 프로세서(130)는 뎁스 카메라(110) 또는 스테레오 카메라(110) 등으로 구현되는 카메라(110)로 획득된 복수의 이미지(10)를 통해 복수의 이동 플레이트(220)와 로봇(100) 간의 거리를 각각 식별할 수 있다. 그리고, 프로세서(130)는 식별된 각각의 이동 플레이트(220) 간의 거리를 기초로, 로봇(100)을 기준으로 각각의 이동 플레이트(220)의 위치를 식별할 수 있다. 일 예로, 프로세서(130)는 식별된 각각의 이동 플레이트(220)의 위치를 3차원 좌표 공간(300)에서 각각 식별할 수 있다.
한편, 프로세서(130)는 로봇(100)의 센서(예를 들어, 라이다 센서 또는 ToF 센서 등)를 이용하여 복수의 이동 플레이트(220)를 식별할 수도 있다. 일 예로, 프로세서(130)는 라이다 센서에서 방출된 레이저가 로봇(100) 주변의 객체에 도달한 후 반사되는 위치를 점으로 식별할 수 있다. 프로세서(130)는 식별된 복수의 점 중 각각의 이동 플레이트(220)에 대응하는 군집화 된 포인트의 집합을 식별할 수 있다. 이때, 프로세서(130)는 RANSAC(Random Sample Consensus) 기법, 주성분 분석(Principal Component Analysis, PCA) 기법 등에 기초하여 각각의 이동 플레이트(220)에 대응하는 군집화 된 포인트 집합을 식별할 수 있다.
이와 같이, 프로세서(130)는 로봇(100) 주변의 복수의 이동 플레이트(220)를 식별하고, 로봇(100)으로부터 각각의 이동 플레이트(220)의 거리 및 3차원 좌표 공간(300) 내에서의 각각의 플레이트의 위치를 식별할 수 있다.
한편, 프로세서(130)는 카메라(110)를 통해 획득한 복수의 이미지(10)와 센서를 통해 획득된 센싱 정보(플레이트에 관한 포인트 클라우드)를 조합하여 복수의 이동 플레이트(220)를 식별할 수 있다.
이밖에도, 프로세서(130)는 다양한 방법에 의해 카메라(110)를 통해 획득된 복수의 이미지(10) 내에서 복수의 플레이트를 식별하고, 식별된 복수의 플레이트 각각의 위치를 식별할 수 있다.
도 7을 본 개시의 일 실시 예에 따른, 무빙 워크(200)에 탑승한 로봇(100)이 복수의 플레이트를 식별하는 것을 나타낸 예시도이다.
도 7을 참조하면, 프로세서(130)는 카메라(110)를 통해 획득된 이미지 상에서 복수의 이동 플레이트(220)(즉, 제5 이동 플레이트(225), 제6 이동 플레이트(226) 및 제7 이동 플레이트(227))를 검출할 수 있다. 그리고, 프로세서(130)는 카메라(110) 또는 센서를 통해 획득된 각각의 플레이트의 거리 정보에 기초하여, 기 설정된 3차원 좌표 공간(300)에서 각각의 플레이트의 위치를 식별할 수 있다.
또한, 프로세서(130)는 상술한 탑승 지역에서와 마찬가지로 각각의 이미지 상에서 복수의 이동 플레이트(220)를 검출하기 위하여 각각의 이미지에 허프 변환을 적용하거나 또는 검출된 복수의 이동 플레이트(220)에 대하여 식별자를 설정할 수도 있다. 이에 관하여는 탑승 지역에서의 프로세서(130)의 동작과 관련하여 설명한 내용이 동일하게 적용될 수 있다.
무빙 워크(200)의 복수의 이동 플레이트(220)를 식별한 후 프로세서(130)는 식별된 복수의 이동 플레이트(200) 중 적어도 하나의 플레이트의 법선 벡터(40)에 기초하여 무빙 워크(200)의 경사 각을 식별할 수 있다.
구체적으로, 프로세서(130)는 식별된 복수의 이동 플레이트(220)의 법선 벡터(40)를 각각 추출할 수 있다. 일 예로, 프로세서(130)는 3차원 좌표 공간(300)에서 식별된 각각의 이동 플레이트(220)의 위치 정보를 기초로, 각각의 이동 플레이트(220)에 대응하는 면(225', 226' 및 227')의 좌표를 식별할 수 있다. 이때, 각각의 이동 플레이트에 대응하는 면(225', 226' 및 227')의 좌표는 행렬, 벡터 등으로 식별될 수 있다.
그리고, 프로세서(130)는 각각의 이동 플레이트에 대응하는 면(225', 226' 및 227')에 대한 법선 벡터(40)를 추출할 수 있다. 이때, 각각의 이동 플레이트에 대응하는 면(225', 226' 및 227')에 대한 각각의 법선 벡터(40)는 동일한 z축 방향(예를 들어, +z 축 방향)으로 추출될 수 있다. 이때, 일 예로 프로세서(130)는 최소 자승법(Least Square Method) 등에 기초하여 각각의 이동 플레이트(220)에 대응하는 면(225', 226' 및 227')에 대한 법선 벡터를 추출할 수 있다. 다시 도 7을 참조하면, 3차원 좌표 공간(300) 상에서 프로세서(130)는 각각의 이동 플레이트의 위치 정보에 기초하여, 제5 이동 플레이트(225)에 대응하는 면(225')에 대한 법선 벡터(41)를 추출하고, 제6 이동 플레이트(226)에 대응하는 면(226') 대한 법선 벡터(42)를 추출하고, 제7 이동 플레이트(227)에 대응하는 면(227')대한 법선 벡터(43)를 각각 추출할 수 있다.
이와 같이 이동 플레이트(220)의 법선 벡터(40)를 추출한 후, 프로세서(130)는 각각의 법선 벡터를 기초로 무빙 워크(200)의 경사각을 식별할 수 있다.
구체적으로, 프로세서(130)는 로봇의 자세를 기준으로 각각의 법선 벡터(40)의 위치 및 방향을 식별하여 각각의 이동 플레이트가 형성하는 경사 각(구체적으로 각각의 이동 플레이트와 무빙 워크(200)가 설치된 바닥 면과 이루는 경사 각)을 식별할 수 있다.
일 예로, 프로세서(130)가 로봇(100)이 무빙 워크(200)에 탑승한 이후 구동부(120)를 제어하여 로봇(100)이 직립하면(또는 무빙 워크(200)가 설치된 바닥 면과 평행을 이루도록 하였다면), 프로세서(130)는 3차원 좌표 공간(300) 내에서 로봇(100)과 각각의 이동 플레이트의 법선 벡터 간의 각도를 식별하고, 식별된 각도를 기초로 각각의 이동 플레이트가 형성하는 경사 각을 식별할 수 있다.
이하에서는, 설명의 편의를 위하여, 3차원 좌표 공간(300)에서 식별되는 법선 벡터의 x 성분이 '0'인 것으로 상정하여 설명하도록 한다.
도 8은 본 개시의 일 실시 예에 따른, 플레이트의 법선 벡터를 기초로 무빙 워크(200)의 경사 각을 식별하는 방법에 관한 예시도이다.
도 8을 참조하면, 프로세서(130)는 제5 이동 플레이트(225)의 법선 벡터(41)를 추출하고, 3차원 좌표 공간(300)에서의 로봇(100)을 기준으로 법선 벡터의 위치 및 방향을 식별할 수 있다. 구체적으로, 프로세서는 로봇의 바디가 향하는 방향의 벡터(즉, y 성분의 벡터)와 로봇의 헤더 및 바디의 수직 방향의 벡터(즉, z 성분의 벡터)와 법선 제5 이동 플레이트(225)에 대응하는 법선 벡터(41)에 기초하여, 제5 이동 플레이트(225)의 경사 각으로 θ1을 식별할 수 있다. 그리고, 프로세서(130)는 제6 이동 플레이트(226)에 대응하는 법선 벡터(42)를 추출하고, 3차원 좌표 공간(300)에서의 로봇(100)을 기준으로 법선 벡터(42)의 위치 및 방향을 식별할 수 있다. 그리고, 법선 벡터의 위치 및 방향을 기준으로 제6 이동 플레이트(226)의 경사 각인 θ2를 식별할 수 있다. 마찬가지로, 프로세서(130)는 제7 이동 플레이트(227)의 법선 벡터(43)를 기초로, 제7 이동 플레이트(227)의 경사 각인 θ3를 식별할 수 있다.
도 9는 본 개시의 일 실시 예에 따른, 식별된 경사 각에 기초하여 로봇의 적어도 하나의 휠의 서스펜션을 제어하는 방법에 관한 예시도이다.
그리고, 본 개시의 일 실시 예에 따라, 프로세서(130)는 식별된 경사 각에 기초하여 로봇(100)이 직립하도록 적어도 하나의 휠의 서스펜션(122)을 제어할 수 있다. 즉, 로봇(100)이 무빙 워크(200)가 설치된 바닥 면과 평행을 이루도록 적어도 하나의 휠의 서스펜션(122)을 제어할 수 있다.
구체적으로, 프로세서(130)는 식별된 경사 각에 기초하여 로봇(100)의 회전 각(롤 각도(Roll Angle) 및 피치 각도(Pitch Angle))을 식별할 수 있다. 그리고, 프로세서(130)는 식별된 로봇(100)의 회전 각에 기초하여 로봇(100)이 회전하도록 적어도 하나의 휠의 서스펜션(122)을 인장하거나 압축시킬 수 있다.
한편, 프로세서(130)는 로봇(100)의 전방에 위치한 복수의 이동 플레이트(220)의 경사각을 각각 식별한 후, 로봇(100)이 서있는 이동 플레이트(220)가 전방에 위치한 이동 플레이트(220)의 위치로 이동하는 시점을 식별할 수 있다.
일 예로, 도 9를 참조하면 로봇(100)이 서있는 제8 이동 플레이트(228)는 t2 시점에 t1 시점에 제5 이동 플레이트(225)가 위치했던 지점으로 이동한다. 이때, 프로세서(130)는 t1 시점에서 획득한 이미지를 기초로 식별된 제5 이동 플레이트(225)의 경사각에 기초하여, t2 시점에서의 로봇(100)이 위치한 제8 이동 플레이트(228)의 경사각을 예측할 수 있다.
이에 따라, 프로세서(130)는 t1 시점에 로봇(100)의 서있는 제8 이동 플레이트(228)가 d1을 지나 d2(즉, t1 시점에 제5 이동 플레이트(225)의 위치)로 이동하는 경우, 식별된 경사 각에 기초하여 로봇(100)이 무빙 워크(200)가 설치된 바닥 면과 평행을 이루도록 적어도 하나의 휠의 서스펜션(122)을 제어할 수 있다. 일 예로, 도 9에서는 식별된 경사각 θ1에 기초하여 프로세서(130)는 로봇(100)의 제3 및 제4 휠(121-3 및 121-4)에 각각 연결된 서스펜션(즉, 제3 서스펜션(122-3) 및 제4 서스펜션(122-4))을 인장 시킬 수 있다. 구체적으로, 프로세서(130)는 제3 서스펜션(122-3) 및 제4 서스펜션(122-4)의 길이가 l2만큼 늘어나도록 각각의 제3 서스펜션(122-3) 및 제4 서스펜션(122-4)에 관한 제어 정보를 생성하고, 생성된 제어 정보를 바탕으로 각각의 제3 서스펜션(122-3) 및 제4 서스펜션(122-4)을 인장 시킬 수 있다.
이에 따라, 로봇(100)은 t2 시점에 무빙 워크(200)가 설치된 바닥 면과 평행을 이룰 수 있다. 한편, 도 9에서는 로봇(100)의 피치 각을 조절하는 것으로만 도시 되었으나, 이는 본 개시의 설명의 편의를 위한 것일 뿐 프로세서(130)는 각각의 이동 플레이트(220)의 경사 각에 기초하여 로봇(100)의 피치 각도와 함께 요 각도를 조정할 수 있다.
한편, 프로세서(130)가 식별된 경사 각에 기초하여, 로봇(100)이 무빙 워크(200)가 설치된 바닥 면과 평행을 이루도록 적어도 하나의 휠의 서스펜션(122)을 제어하는 시점은 무빙 워크(200)의 이동 속도 및 이동 플레이트(220)의 길이 정보에 기초하여 설정될 수 있다. 즉, 다시 도 9를 참조하면, 프로세서(130)는 무빙 워크(200)의 이동 속도(v) 및 이동 플레이트(220)의 길이 정보(l)에 기초하여, t1 시점에 로봇(100)이 위치한 제8 이동 플레이트(228)가 t2 시점에 d2(즉, t1 시점에 제5 이동 플레이트(225)의 위치)에 위치할 것으로 판단할 수 있다. 따라서, 프로세서(130)는 t2 시점이 도달하기 직전(예를 들어, t2 시점으로부터 소정 시간 이전)에 t1 시점에 식별된 제5 이동 플레이트(225)의 경사 각에 기초하여, 적어도 하나의 휠의 서스펜션(122)을 제어할 수 있다. 이에 따라, 로봇(100)이 서있는 제8 이동 플레이트(228)가 d2에 이동하더라도 로봇(100)은 d1에서와 마찬가지로 바닥 면과 평행을 이룰 수 있다.
한편, 도면에 명확히 도시되지는 않았으나, 무빙 워크(200)의 이동 속도(v) 및 이동 플레이트(220)의 길이 정보(l)에 기초하여, 프로세서(130)는 t2 시점 이후 시점(예를 들어, t3 시점)에 로봇(100)이 위치한 제8 이동 플레이트(228)가 d3(즉, t1 시점에 제6 이동 플레이트의 위치)에 위치할 것으로 판단할 수 있다. 이동 플레이트(220)의 길이 정보(l)는 카메라(110)를 통해 획득된 이동 플레이트(220)에 대한 거리 정보 또는 센서를 통해 획득된 이동 플레이트(220)의 포인트 클라우드 등에 기초하여 식별될 수 있다.
이때, 프로세서(130)는 t1 시점에 식별된 제6 이동 플레이트의 경사 각에 기초하여, 로봇(100)의 적어도 하나의 휠의 서스펜션(122)을 제어할 수 있다. 일 예로, 프로세서(130)는, 제5 이동 플레이트(225)의 법선 벡터와 제6 이동 플레이트의 법선 벡터를 기초로, t1 시점에 식별된 제5 이동 플레이트(225)의 경사 각과 제6 이동 플레이트(226) 경사 각의 차이를 식별할 수 있다. 그리고, 프로세서(130)는 식별된 경사 각의 차이를 기초로, t2 시점에서의 로봇의 자세를 기준으로 t3 시점에서의 로봇(100)이 무빙 워크(200)가 설치된 바닥 면과 평행을 이루도록 적어도 하나의 휠에 연결된 서스펜션(122)을 제어 정보를 생성할 수 있다. 그리고, 프로세서(130)는 생성된 제어 정보(예를 들어, 적어도 하나의 휠에 연결된 서스펜션(122)의 인장 또는 압축 길이 정보)를 기초로 t3 시점에서 로봇(100)이 바닥 면과 평행을 이루도록 로봇의 자세를 조정할 수 있다.
다만 이에 제한되는 것은 아니며, 프로세서(130)는 t2 시점에 획득된 복수의 이미지(10)를 통해 d3에 위치한 제5 이동 플레이트(225)의 법선 벡터를 다시 추출할 수도 있으며, 3차원 좌표 공간(300) 내에서 t2 시점에서의 로봇의 자세(즉, 로봇(100)의 바닥 면에 대한 수평 자세)를 기준으로 제5 이동 플레이트(225)의 법선 벡터의 위치 및 방향을 식별할 수 있다.
그리고, 프로세서(130)는 t2 시점에 제5 이동 플레이트(225)의 경사 각을 식별할 수 있다. 이때, 프로세서(130)는 t2 시점에 로봇(100)이 위치한 제8 이동 플레이트(228)와 제5 이동 플레이트(225)의 상대적 각도 차이를 식별할 수도 있다. 그리고, 프로세서(130)는 식별된 상대적인 각도 차이 또는 제5 이동 플레이트(225)의 경사 각에 기초하여, 로봇(100)이 무빙 워크(200)가 설치된 바닥 면과 평행을 이루도록 적어도 하나의 휠에 연결된 서스펜션(122)을 제어할 수 있다.
이처럼, 프로세서(130)는 식별된 경사 각에 기초하여 로봇(100)이 무빙 워크(200)가 설치된 바닥 면과 평행을 이루도록 적어도 하나의 휠의 서스펜션(122)을 제어한 후에도 다시 카메라(110)를 통해 획득한 이미지에 기초하여 무빙 워크(200)의 복수의 이동 플레이트(220)를 식별하고, 식별된 복수의 플레이트(220) 중 적어도 하나의 이동 플레이트의 법선 벡터에 기초하여 무빙 워크(200)의 경사 각을 계속하여 식별할 수 있다. 이를 통해, 프로세서(130)는 로봇(100)이 위치한 이동 플레이트(220)의 경사 각이 변경되더라도, 사전에 이동 플레이트(220)의 경사 각을 예측하여 로봇의 자세가 바닥 면과 수평이 되도록 제어할 수 있다.
한편, 본 개시의 일 실시 예에 따라 프로세서(130)는, 로봇(100)이 무빙 워크(200)에 탑승하는 동안 식별된 경사각에 기초하여 적어도 하나의 휠에 연결된 서스펜션(122)을 제어할 뿐만 아니라, 적어도 하나의 휠을 회전 시켜 로봇(100)의 방향을 조정할 수도 있다. 구체적으로, 프로세서(130)는 카메라(110)를 통해 획득된 무빙 워크(200)의 이미지를 기초로, 복수의 이동 플레이트(220) 간의 경계 선을 식별할 수 있다.
즉, 탑승 영역(3)에서 수행한 것과 마찬가지로, 프로세서(130)는 직선 검출 알고리즘(예를 들어, 허프 변화(Hough Transform)무빙 워크(200)의 복수의 이동 플레이트(220) 간의 경계 선을 검출할 수 있다. 그리고, 프로세서(130)는 검출된 경계 선에 대한 법선 벡터를 추출하고, 추출된 법선 벡터를 기초로 무빙 워크(200)의 이동 방향을 계속하여 식별할 수 있다. 그리고, 프로세서(130)는 로봇의 자세가 무빙 워크(200)의 이동 방향을 향하도록 적어도 하나의 휠이 회전하도록 구동부(120)를 제어할 수 있다.
한편, 본 개시의 일 실시 예에 따라 프로세서(130)는, 무빙 워크(200)의 이동 속도에 기초하여 카메라(110)를 통해 획득된 이미지 상에서 검출된 복수의 이동 플레이트(220) 중 적어도 하나의 이동 플레이트를 선별할 수 있다. 그리고, 프로세서(130)는 선별된 적어도 하나의 플레이트에 대해서만 법선 벡터를 추출할 수도 있다. 이하에서는 선별된 적어도 하나의 플레이트를 타겟 플레이트로 지칭하도록 한다.
도 9를 참조하면 프로세서(130)는 복수의 이동 플레이트(220)(제5 내지 제7 이동 플레이트(225 내지 227) 중 제5 및 제6 이동 플레이트(225 및 226) 만을 타겟 플레이트로 선별하고, 제5 및 제6 이동 플레이트(225 및 226) 에 대한 법선 벡터 만을 추출할 수 있다. 왜냐하면, t1 시점에 제7 이동 플레이트(227)의 경사 각을 식별하기 위하여 제7 이동 플레이트(227)의 법선 벡터를 추출하더라도, t2 시점에서 식별되는 제6 이동 플레이트(226)의 법선 벡터를 통해 d3 위치(즉, t1 시점에 제7 이동 플레이트)에서의 이동 플레이트(220)의 경사 각을 식별할 수 있다. 따라서, 프로세서(130)는 복수의 이미지(10)를 통해 검출되는 복수의 이동 플레이트(220) 중 법선 벡터(40)를 추출하는 이동 플레이트(즉, 타겟 플레이트)를 선별함으로써, 로봇(100)의 불필요한 리소스 낭비를 방지할 수 있다.
한편, 타겟 플레이트는 무빙 워크(200)의 이동 속도에 기초하여 선별될 수 있다. 즉, 무빙 워크(200)의 이동 속도가 느리면 타겟 플레이트를 적은 개수로 선별하고, 무빙 워크(200)의 이동 속도가 빠르면 타겟 플레이트를 많은 개수로 선별할 수 있다. 무빙 워크(200)의 이동 속도가 빠를 수록, 로봇(100)이 서있는 이동 플레이트(220)의 경사 각 또한 빠르게 변경될 수 있다. 따라서, 프로세서(130)는 로봇(100)으로부터 멀리 떨어진 이동 플레이트(220)에 관한 경사 각까지 예측하는 것이 무빙 워크(200)에서 로봇(100)이 보다 안정적인 자세를 취할 수 있기 때문이다.
또한, 본 개시의 일 실시 예에 따라 프로세서(130)는 무빙 워크(200)의 이동 속도 및 서스펜션(122)의 응답 속도에 기초하여 복수의 플레이트 중 적어도 하나의 플레이트를 식별할 수 있다.
구체적으로, 프로세서(130)는 카메라(110)를 통해 획득된 복수의 이미지(10) 상에서 검출된 복수의 이동 플레이트(220) 중 무빙 워크(200)의 이동 속도 및 서스펜션(122)의 응답 속도에 기초하여 타겟 플레이트를 선별할 수 있다. 일 예로, 도 9를 참조하면 서스펜션(122)의 응답 속도보다 무빙 워크(200)의 이동 속도보다 느린 경우, 프로세서(130)는 t1 시점에 식별된 복수의 이동 플레이트(220)(제5 내지 제7 이동 플레이트(225 내지 227)) 중 제6 이동 플레이트(226)를 타겟 플레이트로 설정할 수 있다. 또는 서스펜션(122)의 응답 속도가 무빙 워크(200)의 이동 속도보다 빠른 경우, 프로세서(130)는 t1 시점에 식별된 복수의 이동 플레이트(220)(제5 내지 제7 이동 플레이트(225 내지 227))를 모두 타겟 플레이트로 설정할 수 있다.
이처럼, 프로세서(130)는 식별된 무빙 워크(200)의 이동 속도와 서스펜션(122)의 응답 속도를 비교하고, 비교 결과에 기초하여 유동적으로 타겟 플레이를 설정할 수 있다. 이에 따라, 프로세서(130)는 무빙 워크(200)의 이동 속도에 맞춰 적절하게 로봇의 자세를 변경할 수 있다.
또한 본 개시의 일 실시 예에 따라 프로세서(130)는, 로봇(100)이 무빙 워크(200)에 탑승한 상태에서 카메라(110)를 통해 획득된 복수의 이미지(10)에 기초하여 복수의 이동 플레이트가 식별되지 않는 것으로 식별되면, 로봇(100)의 센서를 통해 획득된 센싱 값에 기초하여 로봇(100)이 직립하도록 적어도 하나의 휠의 서스펜션(122)을 제어할 수 있다. 이때, 로봇(100)의 센서는 IMU(Inertial Measurement Unit) 센서를 포함할 수 있다.
일 예로, 로봇(100)의 전방에 객체가 존재하는 경우, 카메라(110)를 통해 획득된 이미지에는 이동 플레이트(220)가 포함되지 않을 수 있다. 이 경우, 프로세서(130)는 무빙 워크(200)의 경사 각을 식별할 수 없다. 따라서, 프로세서(130)는 로봇(100)이 무빙 워크(200)에 탑승하는 동안 카메라(110)를 통해 획득된 복수의 이미지(10) 상에서 무빙 워크(200)의 이동 플레이트(220)가 검출되지 않거나 또는 검출된 무빙 워크(200)가 기 설정된 개수 미만인 경우에는 IMU 센서를 통해 무빙 워크(200)의 경사 각을 식별할 수 있다.
IMU 센서는 가속도 계(Accelerometer)와 각속도 계(Gyroscope)로 구성된 센서로서 로봇의 자세를 센싱 하여, 로봇의 자세가 이루는 각도를 산출할 수 있다. 이때, 로봇의 자세가 이루는 각도는 무빙 워크(200)의 경사 각과 대응될 수 있다. 따라서, 프로세서(130)는 IMU 센서를 기초로 획득한 센싱 정보(즉, 로봇의 자세가 이루는 각도)를 기초로 로봇(100)이 직립하기 위한(도는 로봇(100)이 바닥 면과 수평이 되기 위한) 각도를 식별할 수 있다. 그리고, 프로세서(130)는 식별된 각도를 기초로, 적어도 하나의 휠에 연결된 서스펜션(122)을 연장하거나 압축시켜 로봇(100)이 직립 하도록 제어할 수 있다.
한편, 로봇(100)은 라이다 센서, ToF 센서 등에 기초하여 로봇(100) 전방에 객체가 존재하거나 또는 객체와 로봇(100) 간의 거리가 기 설정된 거리 이내인 것으로 식별되면, IMU 센서를 통해 획득된 센싱 값에 기초하여 로봇(100)이 직립 하도록 적어도 하나의 휠의 서스펜션(122)을 제어할 수도 있다.
한편, 본 개시의 일 실시 예에 따라, 프로세서(130)는 복수의 이미지(10)를 통해 식별된 복수의 이동 플레이트(220)의 법선 벡터를 기초로, 무빙 워크(200)의 경사 각을 식별하고, 식별된 무빙 워크(200)의 경사 각에 기초하여 적어도 하나의 휠에 연결된 서스펜션(122)을 제어하는 경우에도, IMU 센서를 활용할 수 도 있다. 구체적으로, 프로세서(130)는 로봇(100) 전방에 위치한 이동 플레이트(220)의 법선 벡터를 기초로, 로봇(100)이 직립 하도록 적어도 하나의 휠에 연결된 서스펜션(122)을 제어한 이후, IMU 센서를 통해 획득된 센싱 값에 기초하여 로봇(100)이 정확히 직립을 하였는지 검증할 수 있다. 그리고, 프로세서(130)는 IMU 센서를 통해 획득된 센싱 값에 기초하여 로봇(100)이 정확히 직립하지 않은 것으로 식별되면, 획득된 센싱 값으로 서스펜션(122)에 관한 보상 값을 식별할 수 있다. 그리고, 식별된 보상 값에 기초하여, 프로세서(130)는 적어도 하나의 휠에 연결된 서스펜션(122)을 다시 제어할 수 있다.
이하에서는, 도 10 내지 도 11에 기초하여, 로봇(100)이 무빙 워크(200)에서 하차하기 위하여 로봇의 자세를 정렬하는 구체적인 방법에 대하여 설명하도록 한다.
본 개시의 일 실시 예에 따라, 프로세서(130)는 로봇(100)이 무빙 워크(200)의 하차 영역(4)으로부터 기 설정된 거리 이내에 위치한 것으로 식별되면, 획득된 복수의 이미지(10)에 기초하여 무빙 워크(200)의 이동 방향을 식별하고, 로봇(100)이 식별된 이동 방향에 대응되는 하차 방향을 향하도록 구동부(120)를 제어하고, 직립한 로봇(100)이 하차 방향으로 이동하여 무빙 워크(200)에서 하차하도록 구동부(120)를 제어한다.
구체적으로, 먼저 프로세서(130)는 하차 영역(4)을 식별하고, 식별된 하차 영역(4)과 로봇(100) 간의 거리를 식별할 수 있다.
하차 영역(4)은 무빙 워크(200)에 탑승하던 사람 또는 로봇(100)이 무빙 워크(200)의 이동 플레이트(220)에서 하차한 후 착지하는 영역을 의미한다. 일 예로, 하차 영역(4)은 무빙 워크(200)에 하차구에 설치된 고정 플레이트(210)를 포함할 수 있다.
한편, 하차 영역(4)은 무빙 워크(200)의 탑승구 주변의 바닥 면을 더 포함할 수 있다. 일 예로, 탑승 영역(3)은 무빙 워크(200)의 탑승구에 설치된 고정 플레이트(210)를 포함하고, 고정 플레이트(210) 주변의 기 설정된 범위의 바닥 면을 포함할 수 있다.
한편, 프로세서(130)는 맵 데이터에 기초하여, 하차 영역(4)을 식별할 수 있다. 구체적으로, 각각의 무빙 워크(200)의 하차 영역(4)은 맵 데이터 상에 기 설정될 수 있다. 따라서, 프로세서(130)는 맵 데이터를 기초로 하차 영역(4)의 위치를 식별할 수 있다. 프로세서(130)는 맵 데이터 상에서의 로봇(100)의 실시간 위치를 식별하고, 로봇(100)이 탑승한 무빙 워크(200)의 하차 영역(4)과 로봇(100) 간의 거리를 식별할 수 있다. 그리고, 프로세서(130)는 맵 데이터 상에서의 로봇(100)의 위치와 로봇(100)이 탑승한 무빙 워크(200)의 하차 영역(4)의 위치 간의 거리가 기 설정된 거리 이내이면, 로봇(100)이 무빙 워크(200)의 하차 영역(4)과 기 설정된 거리 이내에 위치한 것으로 식별할 수 있다.
또한, 프로세서(130)는 로봇(100)이 주행하는 동안 카메라(110)를 통해 획득된 이미지 상에서 고정 플레이트(210)를 식별하고, 식별된 고정 플레이트(210)를 기초로 하차 영역(4) 및 하차 영역(4)과 로봇(100) 간의 거리를 식별할 수 있다.
일 예로, 로봇(100)이 무빙 워크(200)에 탑승하는 동안 카메라(110)를 통해 획득된 이미지 상에서는, 로봇(100) 전방에 위치한 무빙 워크(200)의 이동 플레이트(220)만이 검출될 수 있다. 그러나, 로봇(100)이 점차 무빙 워크(200)에 하차 영역(4)에 가까워짐에 따라, 카메라(110)를 통해 획득된 이미지 상에서는 하차 영역(4)에 위치한 고정 플레이트(210)가 검출될 수 있다. 따라서, 프로세서(130)는 획득된 이미지 상에서 고정 플레이트(210)가 검출되면, 검출된 고정 플레이트(210)를 포함하는 영역을 하차 영역(4)으로 식별하고, 식별된 하차 영역(4)과 로봇(100) 간의 거리를 식별할 수 있다.
도 10은 본 개시의 일 실시 예에 따른, 카메라를 통해 획득된 이미지에 기초하여, 하차 영역 및 하차 영역과 로봇 간의 거리를 식별하는 것을 설명하기 위한 도면이다.
구체적으로, 도 10을 참조하면, t6 시점에 획득된 이미지(13)에서는 고정 플레이트(210)가 검출되지 않는 반면에, t7 및 t8 시점에 획득된 이미지(14, 및 15)에서는 고정 플레이트(210)가 검출된다. 이때, 프로세서(130)는 검출된 고정 플레이트(210)와 로봇(100) 간의 거리를 식별할 수 있다. 카메라(110)(예를 들어, 뎁스 카메라(110), 스테레오 카메라(110) 등)를 통해 획득되는 이미지에 포함된 고정 플레이트(210)의 뎁스 값 또는 센서를 통해 획득되는 로봇(100)과 고정 플레이트(210) 간의 거리에 관한 센싱 값에 기초하여 고정 플레이트(210)와 로봇(100) 간의 거리가 식별될 수 있다. 그리고, 프로세서(130)는 고정 플레이트(210)와 로봇(100) 간의 거리가 기 설정된 거리 이내이면, 로봇(100)이 하차 영역(4)으로부터 기 설정된 거리 이내에 위치한 것으로 식별할 수 있다.
또는, 프로세서(130)는 로봇(100)이 하차 영역(4)에 가까워 짐에 따라, 카메라(110)를 통해 획득된 이미지(10) 상에서 무빙 워크(200)의 고정 플레이트(210)의 영역이 점차 확장되는 것을 식별할 수 있다. 따라서, 무빙 워크(200)의 하차 영역(4)에 로봇(100)이 가까워 짐에 따라, 카메라(110)를 통해 실시간으로 획득되는 이미지 상에서 고정 플레이트(210)의 영역이 점차 확장되는 것을 프로세서(130)는 식별할 수 있다.
일 예로, 다시 도 8을 참조하면, t8 시점에 획득된 이미지(15)에서 검출되는 고정 플레이트(210)의 영역(또는, 고정 플레이트(210)의 부분)이 t7 시점에 획득된 이미지(14)에서는 검출되는 고정 플레이트(210)의 영역(또는, 고정 플레이트(210)의 부분)보다 더 증가되었다. 이때, 프로세서(130)는 카메라(110)를 통해 획득된 복수의 이미지(10) 내에서 위치 및 크기가 변경되는 영역을 하차 영역(4)으로 식별할 수 있다. 이에 따라, 프로세서(130)는 고정 플레이트(210)의 영역이 기 설정된 범위 이상이면, 로봇(100)이 하차 영역(4)으로부터 기 설정된 거리 이내에 위치한 것으로 식별할 수 있다.
또는, 프로세서(130)는 로봇(100)이 무빙 워크(200)에 탑승하는 동안 획득된 이미지(10)를 통해 식별되는 복수의 이동 플레이트(220)의 개수를 식별하고, 식별되는 이동 플레이트(220)의 개수에 기초하여 로봇(100)이 하차 영역(4)으로부터 기 설정된 거리 이내에 위치한 것으로 식별할 수 있다. 구체적으로, 프로세서(130)는 식별되는 이동 플레이트(220)의 개수가 변경되거나, 또는 식별되는 이동 플레이트(220)의 개수가 기 설정된 개수 미만이면, 로봇(100)이 하차 영역(4)으로부터 기 설정된 거리 이내에 위치한 것으로 식별할 수 있다.
다시 도 8을 참조하면, t6 시점에 획득된 이미지(13)에서 검출되는 이동 플레이트(220)는 3개이고, t7 시점에 획득된 이미지(14)에서는 검출되는 이동 플레이트(220)는 2개이고, t8에서 획득된 이미지(150)에서는 검출되는 이동 플레이트(220)는 1개이다. 이때, 기 설정된 개수가 2개인 경우, 프로세서(130)는 t8 시점에 로봇(100)이 하차 영역(4)으로부터 기 설정된 거리 이내에 위치한 것으로 식별할 수 있다.
한편, 로봇(100)은 이미지(10) 상에서 하차 영역(4)을 식별하도록 학습된 신경망 모델을 통해 하차 영역(4)을 식별할 수 있다. 구체적으로, 로봇(100)이 위치한 주행 공간 내 무빙 워크(200)의 하차 영역(4)의 이미지를 포함한 다양한 하차 영역(4)에서 획득될 수 있는 다수의 이미지(즉, 학습 데이터)를 통해 학습된 신경망 모델을 이용하여, 프로세서(130)는 무빙 워크(200)의 하차 영역(4)을 식별할 수도 있다. 이미지 내에 포함된 하차 영역(4)을 검출하는 신경망 모델은, CNN(Convolutional Neural Network) 모델, FCN(Fully Convolutional Networks) 모델, RCNN (Regions with Convolutional Neuron Networks features) 모델, YOLO 모델 등으로 구현될 수 있다. 그리고, 신경망 모델은 메모리에 저장될 수 있다.
또는, 프로세서(130)는 식별된 무빙 워크(200)의 경사 각이 기 설정된 각도 이내이면, 로봇(100)이 무빙 워크(200)의 하차 영역(4)과 기 설정된 거리 이내인 것으로 식별할 수도 있다. 한편, 경사 형 무빙 워크(200)의 경우, 무빙 워크(200)의 하차 영역(4)에서 경사 각이 최소일 수 있다. 일 예로, 무빙 워크(200)의 하차 영역(4)에서 경사 각은 무빙 워크(200)와 무빙 워크(200)가 설치된 바닥 면과 평행이 되도록 0°일 수 있다.
따라서, 로봇(100)이 무빙 워크(200)의 하차 영역(4)에 가까워 짐에 따라, 식별되는 무빙 워크(200)의 경사 각 또한 감소할 수 있다. 따라서, 프로세서(130)는 로봇(100)의 전방에 위치한 이동 플레이트(220)의 법선 벡터를 기초로, 무빙 워크(200)의 경사 각을 실시간으로 식별하고, 프로세서(130)는 식별된 경사 각이 기 설정된 각도 이내이면, 로봇(100)이 무빙 워크(200)의 하차 영역(4)으로부터 기 설정된 거리 이내인 것으로 식별할 수 있다.
프로세서(130)는 하차 영역(4)의 고정 플레이트(210) 상에 설치된 포스트 빔을 식별함에 따라 로봇(100)이 탑승 영역(3)에 위치한 것으로 식별할 수도 있다. 일 예로, 로봇(100)이 무비 워크(200)에 탑승하는 동안 카메라(110)를 통해 획득된 이미지 상에서 포스트 빔이 인식되면, 프로세서(130)는 로봇(100)의 전방에 하차 영역(4)이 있는 것으로 식별할 수 있다. 이를 위해 프로세서(130)는 하차 영역(4)의 포스트 빔을 인식하도록 학습된 신경망 모델을 이용할 수 있다.
여기서, 신경망 모델은 이미지의 특징 정보를 추출하는 컨볼루션 레이어(Convolutional Layer) 및 추출된 특징 정보에 기초하여 이미지에 포함된 객체를 식별하도록 학습된 풀리-커넥티드 레이어(Fully-connected Layer)를 포함하는 CNN Convolutional Neural Network)일 수 있다. 신경망 모델은 메모리에 저장될 수 있다. 뿐만 아니라, 프로세서(130)는 로봇(100)의 통신 인터페이스를 통해 하차 영역(4)의 포스트 빔과 통신을 수행하여, 로봇(100)과 포스트 빔 간의 거리를 식별할 수도 있다. 이때, 식별된 거리가 기 설정된 거리 이내이면, 프로세서(130)는 로봇(100)이 탑승 영역(3)에 위치한 것으로 식별할 수도 있다.
이처럼, 다양한 방식에 의해 프로세서(130)는 하차 영역(4)을 식별하고, 식별된 하차 영역(4)과 로봇(100) 간의 거리를 식별할 수 있다.
한편, 본 개시의 일 실시 예에 따라 프로세서(130)는 로봇(100)이 하차 영역(4)으로부터 기 설정된 거리 이내인 것으로 식별되면, 획득된 복수의 이미지(10)에 기초하여 무빙 워크(200)의 이동 방향을 식별하고, 로봇(100)이 식별된 이동 방향에 대응되는 하차 방향을 향하도록 구동부(120)를 제어할 수 있다. 그리고, 프로세서(130)는 직립을 유지하는 로봇(100)이 하차 방향으로 이동하여 무빙 워크(200)에서 하차하도록 구동부(120)를 제어할 수 있다.
구체적으로, 프로세서(130)는 카메라(110)를 통해 획득된 복수의 이미지(10) 상에 무빙 워크(200)의 이동 플레이트(220)를 포함하는 관심 영역(20)을 설정하고, 관심 영역(20) 내의 이동 플레이트(220)의 위치 변화를 식별할 수 있다. 그리고, 식별된 이동 플레이트(220)의 위치 변화에 기초하여, 하차 영역(4)에서의 무빙 워크(200)의 이동 방향을 식별할 수 있다.
이때, 프로세서(130)는 직선 검출 알고리즘을 이용하여 복수의 이동 플레이트(220) 간의 경계 선을 식별하고, 식별된 경계 선에 수직인 법선 벡터(40)를 추출하여, 하차 영역(4)에서의 무빙 워크(200)의 이동 방향을 식별할 수 있다.
프로세서(130)가 획득된 복수의 이미지(10)에 기초하여 하차 영역(4)에서의 무빙 워크(200)의 이동 방향을 식별하는 방법은, 탑승 영역(3)에서 무빙 워크(200)의 이동 방향을 식별하는 방법이 동일하게 적용될 수 있다. 따라서, 이에 관한 자세한 설명은 생략하도록 한다.
프로세서(130)는 무빙 워크(200)의 이동 방향을 식별한 후, 로봇(100)이 식별된 이동 방향에 대응되는 하차 방향을 향하도록 구동부(120)를 제어할 수 있다. 구체적으로, 프로세서(130)는 하차 영역(4)에서의 무빙 워크(200)의 이동 방향에 기초하여 제어 정보를 생성하고, 생성된 제어 정보를 기초로 구동부(120)에 포함된 휠(121)을 회전시켜 로봇(100)이 하차 방향을 향하도록 제어할 수 있다. 즉, 프로세서(130)는 구동부(120)를 제어하여 무빙 워크(200)의 이동 방향으로 로봇(100)을 정렬하도록 제어할 수 있다.
그리고, 프로세서(130)는 직립한 로봇(100)이 하차 방향으로 이동하여 무빙 워크(200)에서 하차하도록 구동부(120)를 제어할 수 있다. 구체적으로, 프로세서(130)는 로봇(100)이 바닥 면과 평행인지 식별할 수 있다. 이때, 무빙 워크(200)의 경사 각이 하차 영역(4)에서 감소함에 따라, 하차 영역(4)으로부터 기 설정된 거리 이내에서의 로봇(100)은 바닥 면과 평행을 이룰 수 있다.
한편, 프로세서(130)는 IMU 센서를 통해 로봇의 자세를 검증할 수 있다. 즉, IMU 센서를 통해 획득된 센싱 값에 기초하여 로봇(100)이 직립 하였는지(또는 바닥 면과 평행을 이루는지) 식별하고, 로봇(100)이 직립 하지 않은 것으로 식별되면(또는 바닥 면과 평행을 이루지 않는 것으로 식별되면), IMU 센서를 통해 획득된 센싱 값에 기초하여 적어도 하나의 휠에 연결된 서스펜션(122)을 제어할 수 있다. 그리고, 프로세서(130)는 로봇(100)이 직립한 것으로 식별되면(또는 바닥 면과 평행인 것으로 식별되면), 식별된 하차 방향으로 이동하여 무빙 워크(200)에서 로봇(100)이 하차하도록 구동부(120)를 제어할 수 있다.
이때, 무빙 워크(200)에서 하차하기 위한 로봇(100)의 이동 속도는 무빙 워크(200)의 이동 속도에 기초하여 설정될 수 있다. 즉, 프로세서(130)는 무빙 워크(200)의 이동 속도보다 기 설정된 비율만큼 큰 속도로 하차 속도를 설정할 수 있다. 그리고, 프로세서(130)는 설정된 하차 속도로 로봇(100)이 식별된 하차 방향으로 이동하도록 구동부(120)를 제어할 수 있다.
이를 위해, 프로세서(130)는 하차 영역(4)에서의 무빙 워크(200)의 이동 속도를 식별할 수도 있다. 구체적으로, 프로세서(130)는 카메라(110)를 통해 획득된 복수의 이미지(10) 상에 무빙 워크(200)의 이동 플레이트(220)를 포함하는 관심 영역(20)을 설정하고, 관심 영역(20) 내의 이동 플레이트(220)의 위치 변화 및 복수의 이미지(10)에 관한 프레임 레이트(Frame Rate)에 기초하여 무빙 워크(200)의 이동 속도를 식별할 수 있다.
이때, 프로세서(130)는 직선 검출 알고리즘을 이용하여, 복수의 이동 플레이트(220) 간의 경계 선을 식별하고, 식별된 경계 선을 트래킹 하여 경계 선의 위치 변화를 식별할 수도 있다. 프로세서(130)가 획득된 복수의 이미지(10)에 기초하여 하차 영역(4)에서의 무빙 워크(200)의 이동 속도를 식별하는 방법은, 탑승 영역(3)에서 무빙 워크(200)의 이동 속도를 식별하는 방법이 동일하게 적용될 수 있다. 따라서, 이에 관한 자세한 설명은 생략하도록 한다.
한편, 본 개시의 일 실시 예에 따라, 프로세서(130)는 하차 영역(4)에서의 무빙 워크(200)의 이동 속도에 대응되는 각도로 로봇(100)이 기울어지도록 복수의 휠(121) 중 적어도 하나의 휠에 연결된 서스펜션(122)을 제어하고, 기울어진 로봇(100)이 하차 방향으로 이동하여 무빙 워크(200)에서 하차하도록 구동부(120)를 제어할 수도 있다. 구체적으로, 프로세서(130)는 하차 영역(4)에서의 마찰력 등을 고려하여, 로봇(100)이 하차 방향과 반대 방향으로 기울어지도록 적어도 하나의 휠에 연결된 서스펜션(122)을 인장 시키거나, 압축시킬 수 있다. 예를 들어, 프로세서(130)는, 로봇(100)의 하차 방향 쪽에 위치한 휠(121)(즉, 제1 휠(121-1) 및 제2 휠(121-2))에 연결된 서스펜션(즉, 제1 서스펜션(122-1) 및 제2 서스펜션(122-2))을 인장 시켜 로봇(100)이 하차 방향과 반대 방향으로 기울어지도록 로봇(100)을 제어할 수 있다.
이에 관하여는 탑승 영역(3)에서의 무빙 워크(200)의 이동 속도에 기초하여 로봇(100)이 기울어지는 각도를 식별하는 방법 및 적어도 하나의 휠에 연결된 서스펜션(122)을 제어하여 로봇(100)이 기울어지도록 제어하는 방법이 동일하게 적용될 수 있으므로, 구체적인 설명은 생략하도록 한다.
한편, 프로세서(130)는 하차 영역(4)에서의 로봇(100)의 구동 모드에 따라, 로봇의 자세를 직립 자세로 식별할 수도 있으며, 또는 기울어진 자세로 식별할 수도 있다. 일 예로, 로봇(100)이 무빙 워크(200)에서 하차한 후 하차 영역(4)에 정지하는 경우에는 로봇의 자세를 무빙 워크(200)의 이동 속도에 대응하는 각도로 기울어지도록 적어도 하나의 휠에 연결된 서스펜션(122)을 제어할 수 있다. 그러나, 로봇(100)이 무빙 워크(200)에서 하차한 후 하차 영역(4)에서 이동하는 경우에는, 로봇(100)이 직립 하도록 적어도 하나의 휠에 연결된 서스펜션(122)을 제어할 수 있다.
한편, 본 개시의 일 실시 예에 따라, 프로세서(130)는, 하차 영역(4)에 객체가 존재하는 것으로 식별되면, 하차 방향과 반대 방향으로 로봇(100)이 이동하도록 구동부(120)를 제어할 수 있다.
구체적으로, 프로세서(130)는 카메라(110)를 통해 획득된 이미지에 기초하여 하차 영역(4)에 객체(410)가 존재하는지 식별할 수 있다. 즉, 프로세서(130)는 획득된 이미지 내에 하차 영역(4) 및 하차 영역(4) 상의 객체(410)가 검출되면, 하차 영역(4)에 객체(410)가 존재하는 것으로 식별할 수 있다. 또는 프로세서(130)는 센서(예를 들어, 라이다 센서, ToF 센서 등)을 통해 로봇(100)의 전방에 위치한 하차 영역(4)에 객체(410)가 존재하는지 식별할 수 있다.
프로세서(130)는 로봇(100)이 하차 영역(4)에 객체(410)가 존재하는 것으로 식별되고, 하차 영역(4)에 존재하는 객체(410)와 로봇(100) 간의 거리를 식별한다. 그리고, 프로세서(130)는 식별된 거리가 기 설정된 거리 미만인 것으로 식별되면, 식별된 하차 방향과 반대 방향으로 로봇(100)이 이동하도록 구동부(120)의 복수의 휠(121)을 제어할 수 있다. 구체적으로, 프로세서(130)는 복수의 휠(1210)이 무빙 워크의 이동 방향과 반대 방향으로 회전하도록 제어할 수 있다.
이때, 본 개시의 일 실시 예에 따라, 프로세서(130)는 식별된 하차 영역(4)에서의 무빙 워크(200)의 이동 속도와 동일한 속도로, 하차 방향과 반대 방향을 향해 로봇(100)이 이동하도록 구동부(120)를 제어할 수 있다. 이를 통해, 로봇(100)은 무빙 워크(200) 상에서의 위치를 유지할 수 있다. 이는 마치, 사람이 무빙 워크(200)에서 제자리 걸음을 하는 것과 같은 동일한 효과를 발휘할 수 있다. 그리고, 로봇(100)은 하차 영역(4)에 존재하지 않는 것으로 식별되면(예를 들어, 하차 영역(4)에 존재했던 객체가 사라진 것으로 식별되면), 로봇(100)이 하차 방향으로 이동하여 무빙 워크(200)에서 하차하도록 구동부(120)를 제어할 수 있다.
도 11은 본 개시의 일 실시 예에 따른, 하차 영역에 객체가 존재하는 경우, 로봇(100)이 하차 방향과 반대 방향으로 이동하도록 구동부(120)를 제어하는 것을 설명하기 위한 도면이다.
도 11을 참조하면, 프로세서(130)는 하차 영역(4)에 사람(410)이 존재하는 것을 감지할 수 있다. 이때, 프로세서(130)는 하차 영역(4)에서의 무빙 워크(200)의 이동 속도(v)와 동일한 속도(v)로 로봇(100)이 하차 방향과 반대 방향으로 이동하도록 구동부(120)를 제어할 수 있다. 이를 통해, 로봇(100)은 하차 영역(4)에 존재하는 사람(410)이 사라질 때까지 무빙 워크(200) 상에서의 로봇(100)의 위치를 유지할 수 있다. 이를 통해, 무빙 워크(200) 상에 머무르면서 하차 영역(4)에 존재하는 사람(410)과의 충돌을 피할 수 있다.
한편, 프로세서(130)는 하차 영역(4)에 객체가 존재하는 것으로 식별되어, 하차 방향과 반대 방향을 향해 로봇(100)이 이동하도록 구동부(120)를 제어하는 동안, 로봇(100)의 후방에 또 다른 객체(420)가 존재하는지 식별할 수 있다.
구체적으로, 다시 도 11을 참조하면 프로세서(130)는 로봇(100)의 후방에 구비된 카메라(110)를 통해 획득된 이미지 또는 후방에 구비된 센서를 통해 또는 로봇(100)에 구비된 센서를 회전시켜, 로봇(100)의 후방에 위치한 또 다른 객체(420)를 식별할 수 있다. 이때, 프로세서(130)는 하차 방향과 반대 방향을 향해 로봇(100)이 이동하도록 구동부(120)를 제어하는 동안, 로봇(100)의 후방에 위치한 또 다른 객체(420)와 로봇(100) 간의 거리를 식별할 수 있다.
그리고, 프로세서(130)는 로봇(100)의 후방에 위치한 또 다른 객체(420)와 로봇(100) 간의 거리가 기 설정되 거리 이내이면, 로봇(100)의 통신 인터페이스를 통해 무빙 워크(200)를 통제하는 서버에 무빙 워크(200)를 정지할 것을 요청하는 신호를 송신할 수 있다. 또는 프로세서(130)는 통신 인터페이스를 통해 직접 무빙 워크(200)에 무빙 워크(200)의 동작을 정지하도록 제어하는 신호를 송신할 수도 있다.
도 12는 본 개시의 일 실시 예에 따른, 로봇의 세부적인 구성도이다.
도 12를 참조하면, 로봇(100)은 카메라(110), 구동부(120), 디스플레이(140), 센서(150), 메모리(160), 스피커(170), 사용자 인터페이스(180) 및 통신 인터페이스(190)를 포함한다. 도 12에 도시된 구성 중 도 2에 도시된 구성과 중복되는 구성에 대해서는 자세한 설명을 생략하도록 한다.
디스플레이(140)는 다양한 시각 정보를 표시할 수 있다. 일 예로, 디스플레이(140)는 맵 데이터, 로봇(100)의 주행 경로, 무빙 워크(200)의 이동 방향 및 이동 속도 등에 관한 정보를 표시할 수 있다.
이를 위해, 디스플레이(140)는 자발광 소자를 포함하는 디스플레이 또는, 비자발광 소자 및 백라이트를 포함하는 디스플레이로 구현될 수 있다. 예를 들어, LCD(Liquid Crystal Display), OLED(Organic Light Emitting Diodes) 디스플레이, LED(Light Emitting Diodes), 마이크로 LED(micro LED), Mini LED, PDP(Plasma Display Panel), QD(Quantum dot) 디스플레이, QLED(Quantum dot light-emitting diodes) 등과 같은 다양한 형태의 디스플레이로 구현될 수 있다.
디스플레이(140) 내에는 a-si TFT, LTPS(low temperature poly silicon) TFT, OTFT(organic TFT) 등과 같은 형태로 구현될 수 있는 구동 회로, 백라이트 유닛 등도 함께 포함될 수 있다. 한편, 디스플레이(140)는 터치 센서와 결합된 터치 스크린, 플렉시블 디스플레이(flexible display), 롤러블 디스플레이(rollable display), 3차원 디스플레이(3D display), 복수의 디스플레이 모듈이 물리적으로 연결된 디스플레이 등으로 구현될 수 있다.
또한, 디스플레이(140)는 터치 패널과 함께 터치스크린을 구성할 수도 있다.
이를 통해, 디스플레이부(140)는 로봇(100)과 사용자 사이의 정보를 출력하는 출력부로써 기능함과 동시에, 로봇(100)과 사용자 사이의 입력 인터페이스를 제공하는 입력부로써 기능할 수 있다.
메모리(150)는 본 개시의 다양한 실시 예를 위해 필요한 데이터를 저장할 수 있다. 일 예로, 메모리(150)에는 로봇(100)이 위치한 주행 공간에 관한 맵 데이터가 저장될 수 있다.
메모리(150)는 데이터 저장 용도에 따라 로봇(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 메모리) 등과 같은 형태로 구현될 수 있다.
일 예에 따라, 메모리(150)는 복수의 신경망(또는, 인공 지능) 모델에 관한 정보를 저장할 수 있다. 일 예로, 메모리(150)는 카메라(110)를 통해 획득된 이미지 상에서 탑승 영역(3)을 식별하도록 학습된 신경망 모델 및 카메라(110)를 통해 획득된 이미지 상에서 하차 영역(4)을 식별하도록 학습된 신경망 모델을 저장할 수 있다.
여기서, 신경망 모델에 관한 정보를 저장한다는 것은 신경망 모델의 동작과 관련된 다양한 정보, 예를 들어 신경망 모델에 포함된 적어도 하나의 레이어에 대한 정보, 적어도 하나의 레이어 각각에서 이용되는 파라미터, 바이어스 등에 대한 정보 등을 저장한다는 것을 의미할 수 있다. 다만, 프로세서(130)의 구현 형태에 따라 신경망 모델에 관한 정보가 프로세서(130)의 내부 메모리에 저장될 수 있음은 물론이다. 예를 들어, 프로세서(130)가 전용 하드웨어로 구현되는 경우, 신경망 모델에 관한 정보는 프로세서(130) 내부 메모리에 저장될 수도 있다.
한편, 로봇(100)은 적어도 하나의 센서(160)를 포함한다. 적어도 하나의 센서(160)는 상술하여 설명한 로봇(100) 주변의 객체를 감지하는 센서(예를 들어, 라이다 센서, ToF 센서 등)과 로봇의 자세를 감지하는 센서(예를 들어, IMU 센서 등) 이외에도 제스처 센서, 자이로 센서, 기압 센서, 마그네틱 센서, 가속도 센서, 그립 센서, 근접 센서, 컬러(color) 센서(예: RGB(red, green, blue) 센서), 생체 센서, 온/습도 센서, 조도 센서 또는 UV(ultra violet) 센서 중의 적어도 하나를 더 포함할 수도 있다.
스피커(170)는, 음향 신호를 로봇(100)의 외부로 출력할 수 있다. 스피커(170)는 멀티미디어 재생, 녹음 재생, 각종 알림 음, 음성 메시지 등을 출력할 수 있다. 로봇(100)는 스피커(170)와 같은 오디오 출력 장치를 포함할 수 있으나, 오디오 출력 단자와 같은 출력 장치를 포함할 수 있다. 특히, 스피커(170)는 획득한 정보, 획득한 정보에 기초하여 가공·생산한 정보, 사용자 음성에 대한 응답 결과 또는 동작 결과 등을 음성 형태로 제공할 수 있다. 일 예로, 프로세서(130)는 로봇(100)이 무빙 워크(200)의 하차 영역(4)과 기 설정된 거리 이내에 위치하고, 하차 영역(4)에 객체가 존재하는 것으로 식별되면, 스피커(170)를 통해 경고 음을 출력할 수 있다.
사용자 인터페이스(180)는 로봇(100)이 사용자와 인터렉션(Interaction)을 수행하는 데 이용되는 구성으로, 프로세서(130)는 사용자 인터페이스(180)를 통해 로봇(100)의 제어 정보, 로봇(100)이 위치한 주행 공간 정보(예를 들어, 주행 공간에 대한 맵 데이터 등) 및 무빙 워크(200) 정보 등 다양한 정보를 입력 받을 수 있다. 한편, 사용자 인터페이스(180)는 터치 센서, 모션 센서, 버튼, 조그(Jog) 다이얼, 스위치, 마이크 중 적어도 하나를 포함할 수 있으나 이에 한정되는 것은 아니다.
통신 인터페이스(190)는 다양한 타입의 컨텐츠를 송신하거나 또는 수신할 수 있다. 일 예로, 통신 인터페이스(190)는 AP 기반의 Wi-Fi(와이파이, Wireless LAN 네트워크), 블루투스(Bluetooth), 지그비(Zigbee), 유/무선 LAN(Local Area Network), WAN(Wide Area Network), 이더넷(Ethernet), IEEE 1394, HDMI(High-Definition Multimedia Interface), USB(Universal Serial Bus), MHL(Mobile High-Definition Link), AES/EBU(Audio Engineering Society/ European Broadcasting Union), 옵티컬(Optical), 코액셜(Coaxial 등과 같은 통신 방식을 통해 외부 장치(예를 들어, 사용자 단말기), 외부 저장 매체(예를 들어, USB 메모리), 외부 서버(예를 들어 웹 하드) 등으로부터 스트리밍 또는 다운로드 방식으로 신호를 수신하거나 송신할 수 있다.
한편, 본 개시의 일 실시 예에 따라, 프로세서(130)는 통신 인터페이스(190)를 통해 무빙 워크(200) 통제 서버(500)에 무빙 워크(200)의 구동을 정지할 것을 요청하는 신호를 송신할 수 있다. 또는, 프로세서(130)는 통신 인터페이스(190)를 통해 무빙 워크(200)(200)에 무빙 워크(200)(200)의 구동을 정지하는 제어 신호를 송신할 수도 있다.
또한, 프로세서(130)는 통신 인터페이스(190)를 통해 사용자 단말기와 통신할 수 있다. 이때, 프로세서(130)는 통신 인터페이스(190)를 통해 통신하는 사용자 단말기의 위치 정보를 수신하고, 사용자 단말기를 로봇(100)이 트래킹 하도록 구동부(120)를 제어할 수 있다.
도 13는 본 개시의 일 실시 예에 따른, 무빙 워크에 탑승하는 로봇을 제어하는 방법을 개략적으로 타낸 순서도이다.
본 개시의 일 실시 예에 따른, 로봇(100)을 제어하는 방법에 의하면 프로세서(130)는 로봇(100)이 무빙 워크(200)의 탑승 영역(3)에 위치하였는지 식별한다(S1310).
그리고, 프로세서(130)는 카메라(110)를 통해 획득된 무빙 워크(200)에 대한 복수의 이미지(10)에 기초하여 무빙 워크(200)의 이동 방향 및 이동 속도를 식별한다(S1320). 이때, 프로세서(130)는 로봇(100)이 탑승 영역(3)에 위치한 상태에서 카메라(110)를 통해 획득된 복수의 이미지(10)에 기초하여 무빙 워크(200)의 복수의 플레이트 간의 경계 선을 식별하고, 식별된 경계 선의 법선 벡터에 기초하여 무빙 워크(200)의 이동 방향을 식별할 수 있다. 그리고, 프로세서(130)는 식별된 경계 선의 이동 속도에 기초하여 무빙 워크(200)의 이동 속도를 식별할 수 있다.
한편, 프로세서(130)는 무빙 워크(200)의 이동 방향 및 이동 속도를 식별한 후 로봇(100)이 식별된 이동 방향에 대응되는 탑승 방향을 향하도록 로봇(100)의 구동부(120)를 제어한다(S1330).
그리고, 프로세서(130)는 식별된 이동 속도에 대응되는 각도로 로봇(100)이 기울어지도록 구동부(120)에 포함된 복수의 휠(121) 중 적어도 하나의 휠에 연결된 서스펜션(122)을 제어한(S1340) 후 기울어진 로봇(100)이 탑승 방향으로 이동하여 무빙 워크(200)에 탑승하도록 구동부(120)를 제어한다(S1350).
이때, 본 개시의 일 실시 예에 따른 복수의 휠(121) 각각은 서스펜션(122)을 통해 로봇(100)의 바디와 각각 연결된다.
도 14는 본 개시의 일 실시 예에 따른, 로봇(100)이 무빙 워크(200)에 탑승하는 동안 로봇을 제어하는 방법을 개략적으로 타낸 순서도이다.
도 14에 도시된 S1410, S1420, S1430, S1440, 및 S1450 단계는 도 13에서 설명된 S1310, S1320, S1330, S1340, 및 S1350 단계에 대응될 수 있다. 따라서, 이에 관한 상세한 설명은 생략하도록 한다.
도 14에 따르면, 본 개시의 일 실시 예에 따라, 프로세서(130)는 로봇(100)이 무빙 워크(200)에 탑승한 것으로 식별되면, 카메라(110)를 통해 획득된 무빙 워크(200)에 대한 복수의 이미지(10)에 기초하여 무빙 워크(200)의 복수의 플레이트를 식별한다(S1460).
그리고, 프로세서(130)는 식별된 복수의 플레이트 중 적어도 하나의 플레이트의 법선 벡터에 기초하여 무빙 워크(200)의 경사 각을 식별한다(S1470). 이때, 프로세서(130)는 무빙 워크(200)의 이동 속도 및 서스펜션(122)의 응답 속도에 기초하여 복수의 플레이트 중 적어도 하나의 플레이트를 식별할 수 있다. 즉, 프로세서(130)는 무빙 워크(200)의 이동 속도와 서스펜션(122)의 응답 속도에 기초하여, 복수의 플레이트 중 무빙 워크(200)의 경사 각을 식별하는데 이용되는 법선 벡터를 추출하는 타겟 플레이트를 선정할 수 있다.
무빙 워크(200)의 경사 각을 식별한 후, 프로세서(130)는 식별된 경사 각에 기초하여 로봇(100)이 직립 하도록 적어도 하나의 휠의 서스펜션(122)을 제어한다(S1480). 일 예로, 로봇(100)이 직립을 한 상태는 로봇(100)이 무빙 워크(200)가 설치된 바닥 면과 평행을 이루는 상태일 수 있다.
한편, 본 개시의 일 실시 예에 따라, 프로세서(130)는 로봇(100)이 무빙 워크(200)에 탑승한 상태에서 카메라(110)를 통해 획득된 복수의 이미지(10)에 기초하여 복수의 플레이트가 식별되지 않는 것으로 식별되면, 로봇(100)의 센서를 통해 획득된 센싱 값에 기초하여 로봇(100)이 직립 하도록 적어도 하나의 휠의 서스펜션(122)을 제어할 수 있다. 이때, 로봇(100)의 센서는 IMU(Inertial Measurement Unit) 센서를 포함할 수 있다. 즉, 프로세서(130)는 IMU 센서를 통해 획득된 센싱 값에 기초하여 로봇의 자세를 식별하고, 식별된 로봇의 자세가 직립 하도록 적어도 하나의 휠을 서스펜션(122)을 제어할 수 있다.
도 15는 본 개시의 일 실시 예에 따른, 무빙 워크(200)에 하차하는 로봇(100)을 제어하는 방법을 개략적으로 타낸 순서도이다.
도 15에 도시된 S1505. S1510, S1515, S1520, S1525, S1530, S1535 및 S1540 단계는 도 14에서 설명된 S1410, S1420, S1430, S1440, 1450, S1460, S1470, 및 1480 단계에 대응될 수 있다. 따라서, 이에 관한 상세한 설명은 생략하도록 한다.
본 개시의 일 실시 예에 따라, 프로세서(130)는 로봇(100)이 무빙 워크(200)의 하차 영역(4)과 기 설정된 거리 이내에 위치한 것으로 식별되면, 획득된 복수의 이미지(10)에 기초하여 무빙 워크(200)의 이동 방향을 식별한다(S1545). 이때, 프로세서(130)는 플레이트의 법선 벡터에 기초하여 식별된 경사 각이 기 설정된 각도 이내이면, 로봇(100)이 무빙 워크(200)의 하차 영역(4)과 기 설정된 거리 이내인 것으로 식별할 수 있다.
그리고, 프로세서(130)는 로봇(100)이 식별된 이동 방향에 대응되는 하차 방향을 향하도록 구동부(120)를 제어한다(S1550).
그리고, 로봇(100)이 식별된 이동 방향을 향하도록 구동부(120)를 제어한 후, 프로세서(130)는 직립한 로봇(100)이 하차 방향으로 이동하여 무빙 워크(200)에서 하차하도록 구동부(120)를 제어한다(S1555). 즉, 프로세서(130)는 무빙 워크(200)가 설치된 바닥 면과 평행인 로봇(100)이 하차 방향으로 이동하여 무빙 워크(200)에서 하차하도록 구동부(120)를 제어할 수 있다.
이때, 본 개시의 일 실시 예에 따라, 프로세서(130)는 하차 영역(4)에 객체가 존재하는 것으로 식별되면, 하차 방향과 반대 방향으로 로봇(100)이 무빙 워크(200) 상에서 이동하도록 구동부(120)를 제어할 수 있다.
한편, 상술한 설명에서, 단계 S1310 내지 S1350, S1410 내지 S1480 및 S1505 내지 S1555는 본 발명의 실시 예에 따라서, 추가적인 단계들로 더 분할되거나, 더 적은 단계들로 조합될 수 있다. 또한, 일부 단계는 필요에 따라 생략될 수도 있고, 단계 간의 순서가 변경될 수도 있다.
한편, 상술한 본 개시의 다양한 실시 예들에 따른 방법들은, 기존 로봇에 설치 가능한 어플리케이션 형태로 구현될 수 있다. 또는 상술한 본 개시의 다양한 실시 예들에 따른 방법들은 딥 러닝 기반의 학습된 신경망(또는 심층 학습된 신경망) 즉, 학습 네트워크 모델을 이용하여 수행될 수 있다. 또한, 상술한 본 개시의 다양한 실시 예들에 따른 방법들은, 기존 로봇에 대한 소프트웨어 업그레이드, 또는 하드웨어 업그레이드 만으로도 구현될 수 있다. 또한, 상술한 본 개시의 다양한 실시 예들은 로봇에 구비된 임베디드 서버, 또는 로봇의 외부 서버를 통해 수행되는 것도 가능하다.
한편, 본 개시의 일시 예에 따르면, 이상에서 설명된 다양한 실시 예들은 기기(machine)(예: 컴퓨터)로 읽을 수 있는 저장 매체(machine-readable storage media)에 저장된 명령어를 포함하는 소프트웨어로 구현될 수 있다. 기기는, 저장 매체로부터 저장된 명령어를 호출하고, 호출된 명령어에 따라 동작이 가능한 장치로서, 개시된 실시 예들에 따른 디스플레이 장치(예: 디스플레이 장치(A))를 포함할 수 있다. 명령이 프로세서에 의해 실행될 경우, 프로세서가 직접, 또는 프로세서의 제어 하에 다른 구성요소들을 이용하여 명령에 해당하는 기능을 수행할 수 있다. 명령은 컴파일러 또는 인터프리터에 의해 생성 또는 실행되는 코드를 포함할 수 있다. 기기로 읽을 수 있는 저장 매체는, 비일시적(non-transitory) 저장매체의 형태로 제공될 수 있다. 여기서, '비일시적'은 저장 매체가 신호(signal)를 포함하지 않으며 실재(tangible)한다는 것을 의미할 뿐 데이터가 저장매체에 반영구적 또는 임시적으로 저장됨을 구분하지 않는다.
또한, 일 실시 예에 따르면, 이상에서 설명된 다양한 실시 예들에 따른 방법은 컴퓨터 프로그램 제품(computer program product)에 포함되어 제공될 수 있다. 컴퓨터 프로그램 제품은 상품으로서 판매자 및 구매자 간에 거래될 수 있다. 컴퓨터 프로그램 제품은 기기로 읽을 수 있는 저장 매체(예: compact disc read only memory (CD-ROM))의 형태로, 또는 어플리케이션 스토어(예: 플레이 스토어TM)를 통해 온라인으로 배포될 수 있다. 온라인 배포의 경우에, 컴퓨터 프로그램 제품의 적어도 일부는 제조사의 서버, 어플리케이션 스토어의 서버, 또는 중계 서버의 메모리와 같은 저장 매체에 적어도 일시 저장되거나, 임시적으로 생성될 수 있다.
또한, 상술한 다양한 실시 예들에 따른 구성 요소(예: 모듈 또는 프로그램) 각각은 단수 또는 복수의 개체로 구성될 수 있으며, 전술한 해당 서브 구성 요소들 중 일부 서브 구성 요소가 생략되거나, 또는 다른 서브 구성 요소가 다양한 실시 예에 더 포함될 수 있다. 대체적으로 또는 추가적으로, 일부 구성 요소들(예: 모듈 또는 프로그램)은 하나의 개체로 통합되어, 통합되기 이전의 각각의 해당 구성 요소에 의해 수행되는 기능을 동일 또는 유사하게 수행할 수 있다. 다양한 실시 예들에 따른, 모듈, 프로그램 또는 다른 구성 요소에 의해 수행되는 동작들은 순차적, 병렬적, 반복적 또는 휴리스틱하게 실행되거나, 적어도 일부 동작이 다른 순서로 실행되거나, 생략되거나, 또는 다른 동작이 추가될 수 있다.
이상에서는 본 개시의 바람직한 실시 예에 대하여 도시하고 설명하였지만, 본 개시는 상술한 특정의 실시 예에 한정되지 아니하며, 청구범위에서 청구하는 본 개시의 요지를 벗어남이 없이 당해 개시에 속하는 기술분야에서 통상의 지식을 가진 자에 의해 다양한 변형실시가 가능한 것은 물론이고, 이러한 변형실시들은 본 개시의 기술적 사상이나 전망으로부터 개별적으로 이해되어서는 안될 것이다.
100: 로봇 110: 카메라
120: 구동부 121: 휠
122: 서스펜션 130: 프로세서

Claims (18)

  1. 로봇에 있어서,
    카메라;
    복수의 휠 및 상기 복수의 휠 각각과 상기 로봇의 바디를 연결하기 위한 서스펜션을 포함하는 구동부; 및
    상기 로봇이 무빙 워크의 탑승 영역에 위치한 것으로 식별되면, 상기 카메라를 통해 획득된 상기 무빙 워크에 대한 복수의 이미지에 기초하여 상기 무빙 워크의 이동 방향 및 이동 속도를 식별하고,
    상기 로봇이 상기 식별된 이동 방향에 대응되는 탑승 방향을 향하도록 상기 구동부를 제어하고, 상기 식별된 이동 속도에 대응되는 각도로 상기 로봇이 기울어지도록 상기 복수의 휠 중 적어도 하나의 휠에 연결된 서스펜션을 제어하고,
    상기 기울어진 로봇이 상기 탑승 방향으로 이동하여 상기 무빙 워크에 탑승하도록 상기 구동부를 제어하는 프로세서;를 포함하는 로봇.
  2. 제1항에 있어서,
    상기 프로세서는,
    상기 로봇이 탑승 영역에 위치한 상태에서 상기 카메라를 통해 획득된 복수의 이미지에 기초하여 상기 무빙 워크의 복수의 플레이트 간의 경계 선을 식별하고, 상기 식별된 경계 선의 법선 벡터에 기초하여 상기 무빙 워크의 이동 방향을 식별하고, 상기 식별된 경계 선의 이동 속도에 기초하여 상기 무빙 워크의 이동 속도를 식별하는, 로봇.
  3. 제1항에 있어서,
    상기 프로세서는,
    상기 로봇이 상기 무빙 워크에 탑승한 것으로 식별되면, 상기 카메라를 통해 획득된 상기 무빙 워크에 대한 복수의 이미지에 기초하여 상기 무빙 워크의 복수의 플레이트를 식별하고,
    상기 식별된 복수의 플레이트 중 적어도 하나의 플레이트의 법선 벡터에 기초하여 상기 무빙 워크의 경사 각을 식별하고,
    상기 식별된 경사 각에 기초하여 상기 로봇이 직립 하도록 상기 적어도 하나의 휠의 서스펜션을 제어하는, 로봇.
  4. 제3항에 있어서,
    상기 프로세서는,
    상기 무빙 워크의 이동 속도 및 서스펜션의 응답 속도에 기초하여 상기 복수의 플레이트 중 상기 적어도 하나의 플레이트를 식별하는, 로봇.
  5. 제3항에 있어서,
    상기 로봇은, 센서를 더 포함하고,
    상기 프로세서는,
    상기 로봇이 상기 무빙 워크에 탑승한 상태에서 상기 카메라를 통해 획득된 복수의 이미지에 기초하여 상기 복수의 플레이트가 식별되지 않는 것으로 식별되면, 상기 센서를 통해 획득된 센싱 값에 기초하여 상기 로봇이 직립 하도록 상기 적어도 하나의 휠의 서스펜션을 제어하는, 로봇.
  6. 제3항에 있어서,
    상기 프로세서는,
    상기 로봇이 상기 무빙 워크의 하차 영역과 기 설정된 거리 이내에 위치한 것으로 식별되면, 상기 획득된 복수의 이미지에 기초하여 상기 무빙 워크의 이동 방향을 식별하고, 상기 로봇이 상기 식별된 이동 방향에 대응되는 하차 방향을 향하도록 상기 구동부를 제어하고, 상기 직립한 로봇이 상기 하차 방향으로 이동하여 상기 무빙 워크에서 하차하도록 상기 구동부를 제어하는, 로봇.
  7. 제6항에 있어서,
    상기 프로세서는,
    상기 하차 영역에 객체가 존재하는 것으로 식별되면, 상기 하차 방향과 반대 방향으로 상기 로봇이 이동하도록 상기 구동부를 제어하는, 로봇.
  8. 제6항에 있어서,
    상기 프로세서는,
    상기 식별된 경사 각이 기 설정된 각도 이내이면, 상기 로봇이 상기 무빙 워크의 하차 영역과 기 설정된 거리 이내인 것으로 식별하는, 로봇.
  9. 제1항에 있어서,
    상기 프로세서는,
    상기 로봇이 탑승 영역에 위치한 상태에서 상기 카메라를 통해 획득된 복수의 이미지에 기초하여 상기 무빙 워크의 폭을 식별하고, 상기 식별된 무빙 워크의 폭에 기초하여, 상기 로봇의 상기 무빙 워크의 탑승 위치를 결정하고, 상기 결정된 탑승 위치에서 상기 로봇이 상기 식별된 이동 방향에 대응되는 탑승 방향을 향하도록 상기 구동부를 제어하는, 로봇.
  10. 로봇을 제어하는 방법에 있어서,
    상기 로봇이 무빙 워크의 탑승 영역에 위치한 것으로 식별되면, 카메라를 통해 획득된 상기 무빙 워크에 대한 복수의 이미지에 기초하여 상기 무빙 워크의 이동 방향 및 이동 속도를 식별하는 단계;
    상기 로봇이 상기 식별된 이동 방향에 대응되는 탑승 방향을 향하도록 상기 로봇의 구동부를 제어하는 단계;
    상기 식별된 이동 속도에 대응되는 각도로 상기 로봇이 기울어지도록 상기 구동부에 포함된 복수의 휠 중 적어도 하나의 휠에 연결된 서스펜션을 제어하는 단계; 및
    상기 기울어진 로봇이 상기 탑승 방향으로 이동하여 상기 무빙 워크에 탑승하도록 상기 구동부를 제어하는 단계를 포함하고,
    상기 복수의 휠 각각은 상기 서스펜션을 통해 상기 로봇의 바디와 각각 연결되는, 방법.
  11. 제10항에 있어서,
    상기 식별하는 단계는,
    상기 로봇이 탑승 영역에 위치한 상태에서 상기 카메라를 통해 획득된 복수의 이미지에 기초하여 상기 무빙 워크의 복수의 플레이트 간의 경계 선을 식별하는 단계;
    상기 식별된 경계 선의 법선 벡터에 기초하여 상기 무빙 워크의 이동 방향을 식별하는 단계; 및
    상기 식별된 경계 선의 이동 속도에 기초하여 상기 무빙 워크의 이동 속도를 식별하는 단계를 포함하는, 방법.
  12. 제10항에 있어서,
    상기 로봇이 상기 무빙 워크에 탑승한 것으로 식별되면, 상기 카메라를 통해 획득된 상기 무빙 워크에 대한 복수의 이미지에 기초하여 상기 무빙 워크의 복수의 플레이트를 식별하는 단계;
    상기 식별된 복수의 플레이트 중 적어도 하나의 플레이트의 법선 벡터에 기초하여 상기 무빙 워크의 경사 각을 식별하는 단계; 및
    상기 식별된 경사 각에 기초하여 상기 로봇이 직립 하도록 상기 적어도 하나의 휠의 서스펜션을 제어하는 단계를 더 포함하는, 방법.
  13. 제12항에 있어서,
    상기 무빙 워크의 이동 속도 및 서스펜션의 응답 속도에 기초하여 상기 복수의 플레이트 중 상기 적어도 하나의 플레이트를 식별하는 단계를 더 포함하는, 방법.
  14. 제12항에 있어서,
    상기 로봇이 상기 무빙 워크에 탑승한 상태에서 상기 카메라를 통해 획득된 복수의 이미지에 기초하여 상기 복수의 플레이트가 식별되지 않는 것으로 식별되면, 상기 로봇의 센서를 통해 획득된 센싱 값에 기초하여 상기 로봇이 직립 하도록 상기 적어도 하나의 휠의 서스펜션을 제어하는 단계를 더 포함하는, 방법.
  15. 제12항에 있어서,
    상기 로봇이 상기 무빙 워크의 하차 영역과 기 설정된 거리 이내에 위치한 것으로 식별되면, 상기 획득된 복수의 이미지에 기초하여 상기 무빙 워크의 이동 방향을 식별하는 단계;
    상기 로봇이 상기 식별된 이동 방향에 대응되는 하차 방향을 향하도록 상기 구동부를 제어하는 단계; 및
    상기 직립한 상기 로봇이 상기 하차 방향으로 이동하여 상기 무빙 워크에서 하차하도록 상기 구동부를 제어하는 단계를 더 포함하는, 방법.
  16. 제15항에 있어서,
    상기 하차 영역에 객체가 존재하는 것으로 식별되면, 상기 하차 방향과 반대 방향으로 상기 로봇이 이동하도록 상기 구동부를 제어하는 단계를 더 포함하는, 방법.
  17. 제15항에 있어서,
    상기 식별된 경사 각이 기 설정된 각도 이내이면, 상기 로봇이 상기 무빙 워크의 하차 영역과 기 설정된 거리 이내인 것으로 식별하는, 방법.
  18. 제10항에 있어서,
    상기 로봇이 탑승 영역에 위치한 상태에서 상기 카메라를 통해 획득된 복수의 이미지에 기초하여 상기 무빙 워크의 폭을 식별하는 단계; 및
    상기 식별된 무빙 워크의 폭에 기초하여, 상기 로봇의 상기 무빙 워크의 탑승 위치를 결정하는 단계;를 더 포함하고,
    상기 탑승 방향을 향하도록 상기 로봇의 구동부를 제어하는 단계는,
    상기 결정된 탑승 위치에서 상기 로봇이 상기 식별된 이동 방향에 대응되는 탑승 방향을 향하도록 상기 구동부를 제어하는, 방법.
KR1020220107763A 2022-08-26 2022-08-26 무빙 워크를 이용하는 로봇 및 그 제어 방법 KR20240029678A (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020220107763A KR20240029678A (ko) 2022-08-26 2022-08-26 무빙 워크를 이용하는 로봇 및 그 제어 방법
PCT/KR2023/012666 WO2024043756A1 (ko) 2022-08-26 2023-08-25 무빙 워크를 이용하는 로봇 및 그 제어 방법
US18/529,774 US20240109192A1 (en) 2022-08-26 2023-12-05 Robot using moving walk and method of controlling the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020220107763A KR20240029678A (ko) 2022-08-26 2022-08-26 무빙 워크를 이용하는 로봇 및 그 제어 방법

Publications (1)

Publication Number Publication Date
KR20240029678A true KR20240029678A (ko) 2024-03-06

Family

ID=90013826

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020220107763A KR20240029678A (ko) 2022-08-26 2022-08-26 무빙 워크를 이용하는 로봇 및 그 제어 방법

Country Status (3)

Country Link
US (1) US20240109192A1 (ko)
KR (1) KR20240029678A (ko)
WO (1) WO2024043756A1 (ko)

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW202030141A (zh) * 2018-12-11 2020-08-16 美商智力股份有限公司 用於偵測電扶梯之系統、裝置及方法
US11865717B2 (en) * 2019-04-08 2024-01-09 Lg Electronics Inc. Method of controlling movement of cart robot in response to change in travel surface using artificial intelligence and cart robot implementing the same
US11537137B2 (en) * 2019-06-18 2022-12-27 Lg Electronics Inc. Marker for space recognition, method of moving and lining up robot based on space recognition and robot of implementing thereof
KR20190086628A (ko) * 2019-06-28 2019-07-23 엘지전자 주식회사 모바일 로봇을 무빙워크에 진입시키는 방법 및 그 모바일 로봇
CN111891252B (zh) * 2020-08-06 2021-11-05 齐鲁工业大学 一种四足仿生机器人的身体姿态斜坡自适应控制方法

Also Published As

Publication number Publication date
US20240109192A1 (en) 2024-04-04
WO2024043756A1 (ko) 2024-02-29

Similar Documents

Publication Publication Date Title
US11289192B2 (en) Interfacing with a mobile telepresence robot
US10809081B1 (en) User interface and augmented reality for identifying vehicles and persons
US10894321B1 (en) Mobile robot
US20180088583A1 (en) Time-dependent navigation of telepresence robots
US20210396620A1 (en) Determining vehicle load center of mass
WO2015017691A1 (en) Time-dependent navigation of telepresence robots
KR102629036B1 (ko) 로봇 및 그의 제어 방법
CA2800372A1 (en) Mobile human interface robot
JP7462891B2 (ja) エスカレータを検出するためのシステム、装置、及び方法
US11983006B2 (en) Autonomously motile device with remote control
US11334094B2 (en) Method for maintaining stability of mobile robot and mobile robot thereof
KR20210069416A (ko) 운송 장치 및 상기 운송 장치를 포함하는 로봇
KR20240029678A (ko) 무빙 워크를 이용하는 로봇 및 그 제어 방법
KR102564408B1 (ko) 모바일 자동화 장치의 광 방출기의 제어를 위한 방법 및 장치
KR20210141294A (ko) 전자 장치 및 그의 제어 방법
US20240069555A1 (en) Robot operable to disembark from escalator and method of controlling same
KR20240028125A (ko) 에스컬레이터에서 하차하는 로봇 및 그 제어 방법
US11233937B1 (en) Autonomously motile device with image capture
KR20220084721A (ko) 로봇에 포함된 센서의 이상을 감지하는 방법 및 장치
US11846514B1 (en) User interface and augmented reality for representing vehicles and persons
KR102330909B1 (ko) 인공지능용 영상을 제공하는 영상처리방법 및 장치와 인공지능 기기를 위한 정보제공시스템
KR102545742B1 (ko) 계단 등반 로봇 및 이의 동작 방법
US11803188B1 (en) System for docking an autonomous mobile device using inductive sensors
TWI799051B (zh) 叉取棧板的自動搬運車和叉取棧板方法
KR20240015547A (ko) 주행이 가능한 소형 로봇 및 이의 제어 방법