KR20230091396A - 로봇 및 로봇의 경로 탐색 방법 - Google Patents

로봇 및 로봇의 경로 탐색 방법 Download PDF

Info

Publication number
KR20230091396A
KR20230091396A KR1020210180473A KR20210180473A KR20230091396A KR 20230091396 A KR20230091396 A KR 20230091396A KR 1020210180473 A KR1020210180473 A KR 1020210180473A KR 20210180473 A KR20210180473 A KR 20210180473A KR 20230091396 A KR20230091396 A KR 20230091396A
Authority
KR
South Korea
Prior art keywords
robot
search
path
cells
obstacle
Prior art date
Application number
KR1020210180473A
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 KR1020210180473A priority Critical patent/KR20230091396A/ko
Publication of KR20230091396A publication Critical patent/KR20230091396A/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
    • B25J11/00Manipulators not otherwise provided for
    • B25J11/0005Manipulators having means for high-level communication with users, e.g. speech generator, face recognition means
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • 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
    • 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/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

Landscapes

  • Engineering & Computer Science (AREA)
  • Robotics (AREA)
  • Mechanical Engineering (AREA)
  • Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • General Health & Medical Sciences (AREA)
  • Human Computer Interaction (AREA)
  • Control Of Position, Course, Altitude, Or Attitude Of Moving Bodies (AREA)

Abstract

로봇의 경로 탐색 방법은, 맵 이미지 상에 로봇의 현재 위치에 상응하는 노드를 설정하고, 설정된 로봇의 현재 위치에 상응하는 노드를 기준으로 복수의 검색 방향 각각을 따라 검색 범위 내의 복수의 셀을 대상으로 경로 탐색을 수행한다.
경로 탐색을 수행하는 단계는, 복수의 검색 방향 중 특정 검색 방향으로의 검색 범위 내의 복수의 셀을 대상으로 장애물의 존재 여부를 검사하고, 검색 범위 내의 복수의 셀 중 하나의 셀에 장애물이 획득되는 경우, 특정 방향으로의 경로를 이동 불가능 경로로 결정하며, 검색 범위 내의 복수의 셀에 장애물이 획득되지 않는 경우, 특정 방향으로의 경로를 이동 가능 경로로 결정하고, 이동 가능 경로 상에서 장애물이 획득된 셀에 후보 노드를 설정한다.

Description

로봇 및 로봇의 경로 탐색 방법{Robot and method of navigating a path in a robot}
실시예는 로봇 및 로봇의 경로 탐색 방법에 관한 것이다.
로봇은 스스로 보유한 능력에 의해 주어진 일을 자동으로 처리하거나 작동하는 기계로서, 로봇의 응용분야는 대체로 산업용, 의료용, 우주용, 해저용 등 다양한 분야로 분류된다. 최근에는 음성이나 제스쳐 등을 통해 인간과 커뮤니케이션이나 인터랙션을 수행할 수 있는 커뮤니케이션 로봇이 증가되는 추세이다.
이러한 커뮤니케이션 로봇은 특정 장소에 배치되어 이용자에게 각종 정보를 안내하는 안내 로봇이나, 가정에 구비되는 홈 로봇 등 다양한 종류의 로봇을 포함할 수 있다. 또한, 커뮤니케이션 로봇은 학습자와의 인터랙션을 통해 상기 학습자의 학습을 지도하거나 보조하는 교육용 로봇을 포함할 수 있다.
이러한 로봇은 가정뿐만 아니라 공항과 같은 공공 장소에서도 다양한 기능을 수행할 수 있다.
로봇은 스스로 주변을 살피고 장애물을 감지하면서 바퀴나 다리를 이용하여 목적지까지 최적 경로를 찾는다.
도 1은 일반적인 검색 방향 및 검색 범위를 보여준다.
도 1에 도시한 바와 같이, 일반적으로, 로봇은 맵 이미지(10) 상에 정의된 복수의 셀(11)을 이용하여 현재의 위치를 나타내는 노드(12)를 기준으로 주어진 방향(13a 내지 13h)을 따라 장애물을 셀(11) 단위로 찾는다. 즉, 로봇은 8개의 방향(13a 내지 13h)을 따라 셀(11) 단위로 장애물을 찾는다.
8방향(13a 내지 13h)으로의 셀(11) 단위 장애물을 검색하는 것은 많은 연산량을 발생시켜, 연산 부담을 초래한다. 예컨대, 장애물이 간헐적으로 위치하여 수개의 셀(11)이나 수 십 개의 셀(11)에서 장애물이 찾아짐에도 불구하고, 불필요하게 장애물을 셀(11) 단위로 찾는 과정을 수행하여, 불필요한 연산이 발생된다.
특히, 맵 이미지(10) 상에 포함된 셀(11)의 개수가 많거나 복수의 로봇이 동시에 경로 탐색을 하는 경우, 연산량이 기하급수적으로 증가되어, 로봇의 연산 부담뿐만 아니라 상위단, 예컨대 클라우드 시스템에서의 연산 부담이 가중된다. 이러한 연산 부담은 신속한 경로 탐색을 방해하는 제약 요인으로 작용한다.
이러한 경우, 로봇의 연산 버퍼링 등으로 로봇이 일시적으로 이동하지 못하고 중지되거나, 로봇의 연산 결과가 나올 때까지 로봇이 이동하지 못하고 대기하는 등, 로봇의 신속한 이동을 방해할 수 있다.
실시예는 전술한 문제 및 다른 문제를 해결하는 것을 목적으로 한다.
실시예의 다른 목적은 연산 부담을 경감할 수 있는 로봇 및 로봇의 경로 탐색 방법을 제공하는 것이다.
또한 실시예의 또 다른 목적은 신속한 이동이 가능한 로봇 및 로봇의 경로 탐색 방법을 제공하는 것이다.
실시예의 기술적 과제는 본 항목에 기재된 것에 한정되지 않으며, 발명의 설명을 통해 파악될 수 있는 것을 포함한다.
상기 또는 다른 목적을 달성하기 위해 실시예의 제1 측면에 따르면, 로봇의 경로 탐색 방법은, 맵 이미지 상에 상기 로봇의 현재 위치에 상응하는 노드를 설정하는 단계; 및 상기 설정된 로봇의 현재 위치에 상응하는 노드를 기준으로 복수의 검색 방향 각각을 따라 검색 범위 내의 복수의 셀을 대상으로 경로 탐색을 수행하는 단계를 포함한다. 상기 검색 범위는 상기 특정 검색 방향을 따라 설정된다. 상기 경로 탐색을 수행하는 단계는, 상기 복수의 검색 방향 중 특정 검색 방향으로의 상기 검색 범위 내의 상기 복수의 셀을 대상으로 장애물의 존재 여부를 검사하는 단계; 상기 검색 범위 내의 상기 복수의 셀 중 하나의 셀에 장애물이 획득되는 경우, 상기 특정 방향으로의 경로를 이동 불가능 경로로 결정하는 단계; 및 상기 검색 범위 내의 상기 복수의 셀에 장애물이 획득되지 않는 경우, 상기 특정 방향으로의 경로를 이동 가능 경로로 결정하고, 상기 이동 가능 경로 상에서 상기 장애물이 획득된 셀에 후보 노드를 설정하는 단계를 포함한다.
상기 또는 다른 목적을 달성하기 위해 실시예의 제2 측면에 따르면, 로봇은, 장애물을 감지하는 적어도 하나 이상의 센싱부; 및 프로세서를 포함한다. 상기 프로세서는, 맵 이미지 상에 로봇의 현재 위치에 상응하는 노드를 설정하고, 상기 설정된 로봇의 현재 위치에 상응하는 노드를 기준으로 복수의 검색 방향 각각을 따라 검색 범위 내의 복수의 셀을 대상으로 경로 탐색을 수행한다. 상기 검색 범위는 상기 특정 검색 방향을 따라 설정된다. 상기 프로세서는, 상기 복수의 검색 방향 중 특정 검색 방향으로의 상기 검색 범위 내의 상기 복수의 셀을 대상으로 장애물의 존재 여부를 검사하고, 상기 검색 범위 내의 상기 복수의 셀 중 하나의 셀에 장애물이 획득되는 경우, 상기 특정 방향으로의 경로를 이동 불가능 경로로 결정하며, 상기 검색 범위 내의 상기 복수의 셀에 장애물이 획득되지 않는 경우, 상기 특정 방향으로의 경로를 이동 가능 경로로 결정하고, 상기 이동 가능 경로 상에서 상기 장애물이 획득된 셀에 후보 노드를 설정한다.
실시예에 따른 로봇 및 로봇의 경로 탐색 방법의 효과에 대해 설명하면 다음과 같다.
도 7 내지 도 12에 도시한 바와 같이, 복수의 검색 방향(331 내지 334) 각각으로 검색 범위(R) 내의 복수의 셀(310)을 대상으로 장애물의 존재 여부를 결정함으로써, 보다 빠르게 장애물을 식별하여 로봇(100a)의 신속한 이동이 가능하다.
또한, 검색 범위(R) 내의 복수의 셀(310) 중에서 로봇(100a)의 현재 위치에 상응하는 노드, 즉 제1 노드(320)로부터 가장 먼 셀(311)부터 덜 먼 셀(312 내지 315)의 순서로 장애물의 존재 여부를 결정함으로써, 보다 넓고 큰 검색 범위(R)로 장애물의 검색이 가능하여 연산 부담을 크게 줄일 수 있다.
아울러, 도 13에 도시한 바와 같이, 로봇(100a)의 이동 속도가 낮을 때에는 복수의 검색 방향(331 내지 334) 각각으로 검색 범위(R)도 비교적 작게 하여 좀 더 세밀하게 장애물의 존재 여부를 검사하고, 로봇(100a)의 이동 속도가 높을 때에는 복수의 검색 방향(331 내지 334) 각각으로 검색 범위(R)도 비교적 크게 하여 큼직하게 장애물의 존재 여부를 검사할 수 있다. 즉, 로봇(100a)의 이동 속도에 따라 그에 맞게 검색 범위(R)를 변경하여, 로봇(100a)에 연산 부담이 가중되지 않도록 하여, 로봇(100a)의 신속하고 원활한 이동이 가능하다.
실시예의 적용 가능성의 추가적인 범위는 이하의 상세한 설명으로부터 명백해질 것이다. 그러나 실시예의 사상 및 범위 내에서 다양한 변경 및 수정은 당업자에게 명확하게 이해될 수 있으므로, 상세한 설명 및 바람직한 실시예와 같은 특정 실시예는 단지 예시로 주어진 것으로 이해되어야 한다.
도 1은 일반적인 검색 방향 및 검색 범위를 보여준다.
도 2은 본 발명의 일 실시 예에 따른 로봇을 포함하는 AI 장치를 나타낸다.
도 3는 본 발명의 일 실시 예에 따른 로봇과 연결되는 AI 서버를 나타낸다.
도 4은 본 발명의 일 실시 예에 따른 로봇을 포함하는 AI 시스템을 나타낸다.
도 5는 본 발명의 일 실시 예에 따른 로봇의 사시도이다.
도 6는 본 발명의 일 실시 예에 따른 로봇의 제어 구성을 나타내는 블록도이다.
도 7은 제1 실시예에 따른 로봇의 경로 탐색 방법을 설명하는 순서도이다.
도 8은 도 7의 S220을 상세히 도시한다.
도 9는 실시예에 따른 검색 방향 및 검색 범위를 보여준다.
도 10은 검색 범위 내에서 장애물이 획득되는 모습을 보여준다.
도 11은 검색 범위 내에서 장애물이 획득되지 않는 모습을 보여준다.
도 12는 도 8의 S221을 상세히 도시한다.
도 13은 제2 실시예에 따른 로봇의 경로 탐색 방법을 설명하는 순서도이다.
도 14는 로봇의 이동 속도가 느릴 때의 검색 범위를 보여준다.
도 15는 로봇의 이동 속도가 빠를 때의 검색 범위를 보여준다.
이하, 첨부된 도면을 참조하여 본 명세서에 개시된 실시예를 상세히 설명하되, 도면 부호에 관계없이 동일하거나 유사한 구성요소는 동일한 참조 번호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다. 이하의 설명에서 사용되는 구성요소에 대한 접미사 '모듈' 및 '부'는 명세서 작성의 용이함이 고려되어 부여되거나 혼용되는 것으로서, 그 자체로 서로 구별되는 의미 또는 역할을 갖는 것은 아니다. 또한, 첨부된 도면은 본 명세서에 개시된 실시예를 쉽게 이해할 수 있도록 하기 위한 것이며, 첨부된 도면에 의해 본 명세서에 개시된 기술적 사상이 제한되는 것은 아니다. 또한, 층, 영역 또는 기판과 같은 요소가 다른 구성요소 '상(on)'에 존재하는 것으로 언급될 때, 이것은 직접적으로 다른 요소 상에 존재하거나 또는 그 사이에 다른 중간 요소가 존재할 수도 있는 것을 포함한다.
로봇은 스스로 보유한 능력에 의해 주어진 일을 자동으로 처리하거나 작동하는 기계를 의미할 수 있다. 특히, 환경을 인식하고 스스로 판단하여 동작을 수행하는 기능을 갖는 로봇을 지능형 로봇이라 칭할 수 있다.
로봇은 사용 목적이나 분야에 따라 산업용, 의료용, 가정용, 군사용 등으로 분류할 수 있다.
로봇은 액츄에이터 또는 모터를 포함하는 구동부를 구비하여 로봇 관절을 움직이는 등의 다양한 물리적 동작을 수행할 수 있다. 또한, 이동 가능한 로봇은 구동부에 휠, 브레이크, 프로펠러 등이 포함되어, 구동부를 통해 지상에서 주행하거나 공중에서 비행할 수 있다.
인공 지능은 인공적인 지능 또는 이를 만들 수 있는 방법론을 연구하는 분야를 의미하며, 머신 러닝(기계 학습, Machine Learning)은 인공 지능 분야에서 다루는 다양한 문제를 정의하고 그것을 해결하는 방법론을 연구하는 분야를 의미한다. 머신 러닝은 어떠한 작업에 대하여 꾸준한 경험을 통해 그 작업에 대한 성능을 높이는 알고리즘으로 정의하기도 한다.
인공 신경망(ANN: Artificial Neural Network)은 머신 러닝에서 사용되는 모델로써, 시냅스의 결합으로 네트워크를 형성한 인공 뉴런(노드)들로 구성되는, 문제 해결 능력을 가지는 모델 전반을 의미할 수 있다. 인공 신경망은 다른 레이어의 뉴런들 사이의 연결 패턴, 모델 파라미터를 갱신하는 학습 과정, 출력값을 생성하는 활성화 함수(Activation Function)에 의해 정의될 수 있다.
인공 신경망은 입력층(Input Layer), 출력층(Output Layer), 그리고 선택적으로 하나 이상의 은닉층(Hidden Layer)를 포함할 수 있다. 각 층은 하나 이상의 뉴런을 포함하고, 인공 신경망은 뉴런과 뉴런을 연결하는 시냅스를 포함할 수 있다. 인공 신경망에서 각 뉴런은 시냅스를 통해 입력되는 입력 신호들, 가중치, 편향에 대한 활성 함수의 함숫값을 출력할 수 있다.
모델 파라미터는 학습을 통해 결정되는 파라미터를 의미하며, 시냅스 연결의 가중치와 뉴런의 편향 등이 포함된다. 그리고, 하이퍼파라미터는 머신 러닝 알고리즘에서 학습 전에 설정되어야 하는 파라미터를 의미하며, 학습률(Learning Rate), 반복 횟수, 미니 배치 크기, 초기화 함수 등이 포함된다.
인공 신경망의 학습의 목적은 손실 함수를 최소화하는 모델 파라미터를 결정하는 것으로 볼 수 있다. 손실 함수는 인공 신경망의 학습 과정에서 최적의 모델 파라미터를 결정하기 위한 지표로 이용될 수 있다.
머신 러닝은 학습 방식에 따라 지도 학습(Supervised Learning), 비지도 학습(Unsupervised Learning), 강화 학습(Reinforcement Learning)으로 분류할 수 있다.
지도 학습은 학습 데이터에 대한 레이블(label)이 주어진 상태에서 인공 신경망을 학습시키는 방법을 의미하며, 레이블이란 학습 데이터가 인공 신경망에 입력되는 경우 인공 신경망이 추론해 내야 하는 정답(또는 결과 값)을 의미할 수 있다. 비지도 학습은 학습 데이터에 대한 레이블이 주어지지 않는 상태에서 인공 신경망을 학습시키는 방법을 의미할 수 있다. 강화 학습은 어떤 환경 안에서 정의된 에이전트가 각 상태에서 누적 보상을 최대화하는 행동 혹은 행동 순서를 선택하도록 학습시키는 학습 방법을 의미할 수 있다.
인공 신경망 중에서 복수의 은닉층을 포함하는 심층 신경망(DNN: Deep Neural Network)으로 구현되는 머신 러닝을 딥 러닝(심층 학습, Deep Learning)이라 부르기도 하며, 딥 러닝은 머신 러닝의 일부이다. 이하에서, 머신 러닝은 딥 러닝을 포함하는 의미로 사용된다.
도 2은 본 발명의 일 실시 예에 따른 로봇을 포함하는 AI 장치를 나타낸다.
AI 장치(100)는 TV, 프로젝터, 휴대폰, 스마트폰, 데스크탑 컴퓨터, 노트북, 디지털방송용 단말기, PDA(personal digital assistants), PMP(portable multimedia player), 네비게이션, 태블릿 PC, 웨어러블 장치, 셋톱박스(STB), DMB 수신기, 라디오, 세탁기, 냉장고, 데스크탑 컴퓨터, 디지털 사이니지, 로봇, 차량 등과 같은, 고정형 기기 또는 이동 가능한 기기 등으로 구현될 수 있다.
도 2을 참조하면, AI 장치(100)는 통신부(110), 입력부(120), 러닝 프로세서(130), 센싱부(140), 출력부(150), 메모리(170) 및 프로세서(180) 등을 포함할 수 있다.
통신부(110)는 유무선 통신 기술을 이용하여 다른 AI 장치(100a 내지 100e)나 AI 서버(200) 등의 외부 장치들과 데이터를 송수신할 수 있다. 예컨대, 통신부(110)는 외부 장치들과 센서 정보, 사용자 입력, 학습 모델, 제어 신호 등을 송수신할 수 있다.
이때, 통신부(110)가 이용하는 통신 기술에는 GSM(Global System for Mobile communication), CDMA(Code Division Multi Access), LTE(Long Term Evolution), 5G, WLAN(Wireless LAN), Wi-Fi(Wireless-Fidelity), 블루투스(Bluetooth™RFID(Radio Frequency Identification), 적외선 통신(Infrared Data Association; IrDA), ZigBee, NFC(Near Field Communication) 등이 있다.
입력부(120)는 다양한 종류의 데이터를 획득할 수 있다.
이때, 입력부(120)는 영상 신호 입력을 위한 카메라, 오디오 신호를 수신하기 위한 마이크로폰, 사용자로부터 정보를 입력 받기 위한 사용자 입력부 등을 포함할 수 있다. 여기서, 카메라나 마이크로폰을 센서로 취급하여, 카메라나 마이크로폰으로부터 획득한 신호를 센싱 데이터 또는 센서 정보라고 할 수도 있다.
입력부(120)는 모델 학습을 위한 학습 데이터 및 학습 모델을 이용하여 출력을 획득할 때 사용될 입력 데이터 등을 획득할 수 있다. 입력부(120)는 가공되지 않은 입력 데이터를 획득할 수도 있으며, 이 경우 프로세서(180) 또는 러닝 프로세서(130)는 입력 데이터에 대하여 전처리로써 입력 특징점(input feature)을 추출할 수 있다.
러닝 프로세서(130)는 학습 데이터를 이용하여 인공 신경망으로 구성된 모델을 학습시킬 수 있다. 여기서, 학습된 인공 신경망을 학습 모델이라 칭할 수 있다. 학습 모델은 학습 데이터가 아닌 새로운 입력 데이터에 대하여 결과 값을 추론해 내는데 사용될 수 있고, 추론된 값은 어떠한 동작을 수행하기 위한 판단의 기초로 이용될 수 있다.
이때, 러닝 프로세서(130)는 AI 서버(200)의 러닝 프로세서(240)과 함께 AI 프로세싱을 수행할 수 있다.
이때, 러닝 프로세서(130)는 AI 장치(100)에 통합되거나 구현된 메모리를 포함할 수 있다. 또는, 러닝 프로세서(130)는 메모리(170), AI 장치(100)에 직접 결합된 외부 메모리 또는 외부 장치에서 유지되는 메모리를 사용하여 구현될 수도 있다.
센싱부(140)는 다양한 센서들을 이용하여 AI 장치(100) 내부 정보, AI 장치(100)의 주변 환경 정보 및 사용자 정보 중 적어도 하나를 획득할 수 있다.
이때, 센싱부(140)에 포함되는 센서에는 근접 센서, 조도 센서, 가속도 센서, 자기 센서, 자이로 센서, 관성 센서, RGB 센서, IR 센서, 지문 인식 센서, 초음파 센서, 광 센서, 마이크로폰, 라이다, 레이더 등이 있다. 여기서, 라이다는 3D TOF(Time Of Flight) 센서일 수 있지만, 이에 대해서는 한정하지 않는다.
출력부(150)는 시각, 청각 또는 촉각 등과 관련된 출력을 발생시킬 수 있다.
이때, 출력부(150)에는 시각 정보를 출력하는 디스플레이부, 청각 정보를 출력하는 스피커, 촉각 정보를 출력하는 햅틱 모듈 등이 포함될 수 있다.
메모리(170)는 AI 장치(100)의 다양한 기능을 지원하는 데이터를 저장할 수 있다. 예컨대, 메모리(170)는 입력부(120)에서 획득한 입력 데이터, 학습 데이터, 학습 모델, 학습 히스토리 등을 저장할 수 있다.
프로세서(180)는 데이터 분석 알고리즘 또는 머신 러닝 알고리즘을 사용하여 결정되거나 생성된 정보에 기초하여, AI 장치(100)의 적어도 하나의 실행 가능한 동작을 결정할 수 있다. 그리고, 프로세서(180)는 AI 장치(100)의 구성 요소들을 제어하여 결정된 동작을 수행할 수 있다.
이를 위해, 프로세서(180)는 러닝 프로세서(130) 또는 메모리(170)의 데이터를 요청, 검색, 수신 또는 활용할 수 있고, 상기 적어도 하나의 실행 가능한 동작 중 예측되는 동작이나, 바람직한 것으로 판단되는 동작을 실행하도록 AI 장치(100)의 구성 요소들을 제어할 수 있다.
이때, 프로세서(180)는 결정된 동작을 수행하기 위하여 외부 장치의 연계가 필요한 경우, 해당 외부 장치를 제어하기 위한 제어 신호를 생성하고, 생성한 제어 신호를 해당 외부 장치에 전송할 수 있다.
프로세서(180)는 사용자 입력에 대하여 의도 정보를 획득하고, 획득한 의도 정보에 기초하여 사용자의 요구 사항을 결정할 수 있다.
이때, 프로세서(180)는 음성 입력을 문자열로 변환하기 위한 STT(Speech To Text) 엔진 또는 자연어의 의도 정보를 획득하기 위한 자연어 처리(NLP: Natural Language Processing) 엔진 중에서 적어도 하나 이상을 이용하여, 사용자 입력에 상응하는 의도 정보를 획득할 수 있다.
이때, STT 엔진 또는 NLP 엔진 중에서 적어도 하나 이상은 적어도 일부가 머신 러닝 알고리즘에 따라 학습된 인공 신경망으로 구성될 수 있다. 그리고, STT 엔진 또는 NLP 엔진 중에서 적어도 하나 이상은 러닝 프로세서(130)에 의해 학습된 것이나, AI 서버(200)의 러닝 프로세서(240)에 의해 학습된 것이거나, 또는 이들의 분산 처리에 의해 학습된 것일 수 있다.
프로세서(180)는 AI 장치(100)의 동작 내용이나 동작에 대한 사용자의 피드백 등을 포함하는 이력 정보를 수집하여 메모리(170) 또는 러닝 프로세서(130)에 저장하거나, AI 서버(200) 등의 외부 장치에 전송할 수 있다. 수집된 이력 정보는 학습 모델을 갱신하는데 이용될 수 있다.
프로세서(180)는 메모리(170)에 저장된 응용 프로그램을 구동하기 위하여, AI 장치(100)의 구성 요소들 중 적어도 일부를 제어할 수 있다. 나아가, 프로세서(180)는 상기 응용 프로그램의 구동을 위하여, AI 장치(100)에 포함된 구성 요소들 중 둘 이상을 서로 조합하여 동작시킬 수 있다.
도 3는 본 발명의 일 실시 예에 따른 로봇과 연결되는 AI 서버를 나타낸다.
도 3를 참조하면, AI 서버(200)는 머신 러닝 알고리즘을 이용하여 인공 신경망을 학습시키거나 학습된 인공 신경망을 이용하는 장치를 의미할 수 있다. 여기서, AI 서버(200)는 복수의 서버들로 구성되어 분산 처리를 수행할 수도 있고, 5G 네트워크로 정의될 수 있다. 이때, AI 서버(200)는 AI 장치(100)의 일부의 구성으로 포함되어, AI 프로세싱 중 적어도 일부를 함께 수행할 수도 있다.
AI 서버(200)는 통신부(210), 메모리(230), 러닝 프로세서(240) 및 프로세서(260) 등을 포함할 수 있다.
통신부(210)는 AI 장치(100) 등의 외부 장치와 데이터를 송수신할 수 있다.
메모리(230)는 모델 저장부(231)를 포함할 수 있다. 모델 저장부(231)는 러닝 프로세서(240)을 통하여 학습 중인 또는 학습된 모델(또는 인공 신경망, 231a)을 저장할 수 있다.
러닝 프로세서(240)는 학습 데이터를 이용하여 인공 신경망(231a)을 학습시킬 수 있다. 학습 모델은 인공 신경망의 AI 서버(200)에 탑재된 상태에서 이용되거나, AI 장치(100) 등의 외부 장치에 탑재되어 이용될 수도 있다.
학습 모델은 하드웨어, 소프트웨어 또는 하드웨어와 소프트웨어의 조합으로 구현될 수 있다. 학습 모델의 일부 또는 전부가 소프트웨어로 구현되는 경우 학습 모델을 구성하는 하나 이상의 명령어(instruction)는 메모리(230)에 저장될 수 있다.
프로세서(260)는 학습 모델을 이용하여 새로운 입력 데이터에 대하여 결과 값을 추론하고, 추론한 결과 값에 기초한 응답이나 제어 명령을 생성할 수 있다.
도 4은 본 발명의 일 실시 예에 따른 로봇을 포함하는 AI 시스템을 나타낸다.
도 4을 참조하면, AI 시스템(1)은 AI 서버(200), 로봇(100a), 자율 주행 차량(100b), XR 장치(100c), 스마트폰(100d) 또는 가전(100e) 중에서 적어도 하나 이상이 클라우드 네트워크(10)와 연결된다. 여기서, AI 기술이 적용된 로봇(100a), 자율 주행 차량(100b), XR 장치(100c), 스마트폰(100d) 또는 가전(100e) 등을 AI 장치(100a 내지 100e)라 칭할 수 있다.
로봇(100a), 자율 주행 차량(100b), XR 장치(100c), 스마트폰(100d) 또는 가전(100e) 중에서 적어도 하나 이상은 도 2에 도시된 AI 장치(100)일 수 있다.
클라우드 네트워크(10)는 클라우드 컴퓨팅 인프라의 일부를 구성하거나 클라우드 컴퓨팅 인프라 안에 존재하는 네트워크를 의미할 수 있다. 여기서, 클라우드 네트워크(10)는 3G 네트워크, 4G 또는 LTE(Long Term Evolution) 네트워크 또는 5G 네트워크 등을 이용하여 구성될 수 있다.
즉, AI 시스템(1)을 구성하는 각 장치들(100a 내지 100e, 200)은 클라우드 네트워크(10)를 통해 서로 연결될 수 있다. 특히, 각 장치들(100a 내지 100e, 200)은 기지국을 통해서 서로 통신할 수도 있지만, 기지국을 통하지 않고 직접 서로 통신할 수도 있다.
AI 서버(200)는 AI 프로세싱을 수행하는 서버와 빅 데이터에 대한 연산을 수행하는 서버를 포함할 수 있다.
AI 서버(200)는 AI 시스템(1)을 구성하는 AI 장치들인 로봇(100a), 자율 주행 차량(100b), XR 장치(100c), 스마트폰(100d) 또는 가전(100e) 중에서 적어도 하나 이상과 클라우드 네트워크(10)을 통하여 연결되고, 연결된 AI 장치들(100a 내지 100e)의 AI 프로세싱을 적어도 일부를 도울 수 있다.
이때, AI 서버(200)는 AI 장치(100a 내지 100e)를 대신하여 머신 러닝 알고리즘에 따라 인공 신경망을 학습시킬 수 있고, 학습 모델을 직접 저장하거나 AI 장치(100a 내지 100e)에 전송할 수 있다.
이때, AI 서버(200)는 AI 장치(100a 내지 100e)로부터 입력 데이터를 수신하고, 학습 모델을 이용하여 수신한 입력 데이터에 대하여 결과 값을 추론하고, 추론한 결과 값에 기초한 응답이나 제어 명령을 생성하여 AI 장치(100a 내지 100e)로 전송할 수 있다.
또는, AI 장치(100a 내지 100e)는 직접 학습 모델을 이용하여 입력 데이터에 대하여 결과 값을 추론하고, 추론한 결과 값에 기초한 응답이나 제어 명령을 생성할 수도 있다.
이하에서는, 상술한 기술이 적용되는 AI 장치(100a 내지 100e)의 다양한 실시 예들을 설명한다. 여기서, 도 4에 도시된 AI 장치(100a 내지 100e)는 도 2에 도시된 AI 장치(100)의 구체적인 실시 예로 볼 수 있다.
로봇(100a)은 AI 기술이 적용되어, 안내 로봇, 운반 로봇, 청소 로봇, 웨어러블 로봇, 엔터테인먼트 로봇, 펫 로봇, 무인 비행 로봇 등으로 구현될 수 있다.
로봇(100a)은 동작을 제어하기 위한 로봇 제어 모듈을 포함할 수 있고, 로봇 제어 모듈은 소프트웨어 모듈 또는 이를 하드웨어로 구현한 칩을 의미할 수 있다.
로봇(100a)은 다양한 종류의 센서들로부터 획득한 센서 정보를 이용하여 로봇(100a)의 상태 정보를 획득하거나, 주변 환경 및 객체를 검출(인식)하거나, 맵 데이터를 생성하거나, 이동 경로 및 주행 계획을 결정하거나, 사용자 상호작용에 대한 응답을 결정하거나, 동작을 결정할 수 있다.
여기서, 로봇(100a)은 이동 경로 및 주행 계획을 결정하기 위하여, 라이다, 레이더, 카메라 중에서 적어도 하나 이상의 센서에서 획득한 센서 정보를 이용할 수 있다.
로봇(100a)은 적어도 하나 이상의 인공 신경망으로 구성된 학습 모델을 이용하여 상기한 동작들을 수행할 수 있다. 예컨대, 로봇(100a)은 학습 모델을 이용하여 주변 환경 및 객체를 인식할 수 있고, 인식된 주변 환경 정보 또는 객체 정보를 이용하여 동작을 결정할 수 있다. 여기서, 학습 모델은 로봇(100a)에서 직접 학습되거나, AI 서버(200) 등의 외부 장치에서 학습된 것일 수 있다.
이때, 로봇(100a)은 직접 학습 모델을 이용하여 결과를 생성하여 동작을 수행할 수도 있지만, AI 서버(200) 등의 외부 장치에 센서 정보를 전송하고 그에 따라 생성된 결과를 수신하여 동작을 수행할 수도 있다.
로봇(100a)은 맵 데이터, 센서 정보로부터 검출한 객체 정보 또는 외부 장치로부터 획득한 객체 정보 중에서 적어도 하나 이상을 이용하여 이동 경로와 주행 계획을 결정하고, 구동부를 제어하여 결정된 이동 경로와 주행 계획에 따라 로봇(100a)을 주행시킬 수 있다.
맵 데이터에는 로봇(100a)이 이동하는 공간에 배치된 다양한 객체들에 대한 객체 식별 정보가 포함될 수 있다. 예컨대, 맵 데이터에는 벽, 문 등의 고정 객체들과 화분, 책상 등의 이동 가능한 객체들에 대한 객체 식별 정보가 포함될 수 있다. 그리고, 객체 식별 정보에는 명칭, 종류, 거리, 위치 등이 포함될 수 있다.
또한, 로봇(100a)은 사용자의 제어/상호작용에 기초하여 구동부를 제어함으로써, 동작을 수행하거나 주행할 수 있다. 이때, 로봇(100a)은 사용자의 동작이나 음성 발화에 따른 상호작용의 의도 정보를 획득하고, 획득한 의도 정보에 기초하여 응답을 결정하여 동작을 수행할 수 있다.
<로봇 사시도 예>
도 5는 본 발명의 일 실시 예에 따른 로봇의 사시도이다.
도 5를 참조하면, 로봇(100a)은 사용자와의 커뮤니케이션이나 인터랙션을 통해 사용자에게 정보 또는 콘텐츠를 제공하거나 특정 행위를 유도하는 등의 동작을 수행하는 커뮤니케이션 로봇에 해당할 수 있다.
예컨대, 로봇(100a)은 가정에 배치되는 홈 로봇일 수 있다. 이러한 홈 로봇은 사용자와의 인터랙션을 통해 사용자에게 각종 정보 또는 콘텐츠를 제공하거나, 가정 내에서 발생하는 이벤트를 모니터링하는 등의 동작을 수행할 수 있다.
상술한 동작의 수행을 위해, 로봇(100a)은 사용자 또는 로봇 주변의 영상을 획득하는 카메라(142), 사용자의 음성 또는 로봇 주변의 소리 등을 획득하는 적어도 하나의 마이크로폰(124; 도 6 참조), 그래픽 또는 텍스트를 출력하는 디스플레이(152), 음성이나 음향을 출력하는 사운드 출력부(154; 예컨대 스피커), 및 특정 이벤트나 상황에 매핑된 색상이나 패턴의 광을 출력하는 광 출력부(156; 도 6 참조) 등의 입출력 수단을 포함할 수 있다.
로봇(100a)은 내부에 구현된 적어도 하나의 마이크로폰(124)을 통해 로봇 외부의 소리를 원활히 획득하기 위해, 커버(또는 케이스)의 외면에 형성된 적어도 하나의 마이크로폰 홀(125a~125c)을 포함할 수 있다. 마이크로폰 홀(125a~125c) 각각은 어느 하나의 마이크로폰(124)에 대응하는 위치에 형성되고, 마이크로폰(124)은 상기 마이크로폰 홀(125a~125c)을 통해 외부와 연통될 수 있다. 한편, 로봇(100a)은 서로 이격되어 배치된 복수의 마이크로폰들을 포함할 수 있고, 이 경우 로봇(100a)은 상기 복수의 마이크로폰들을 이용하여 소리가 발생한 방향을 감지할 수 있다.
디스플레이(152)는 로봇(100a)으로부터 일 면을 향하도록 배치될 수 있다. 이하, 디스플레이(152)가 향하는 방향을 로봇(100a)의 전방으로 정의한다. 한편, 사운드 출력부(154)는 로봇(100a)의 하부에 배치된 것으로 도시되어 있으나, 사운드 출력부(154)의 위치는 실시 예에 따라 다양하게 변경될 수 있다.
광 출력부(156)는 LED 등의 광원으로 구현되어, 로봇(100a)의 상태나 이벤트 등을 색상이나 출력 패턴의 변화를 통해 나타낼 수 있다. 도 5에서는 로봇(100a)의 양 측면에 배치되는 제1 광 출력부(156a)와, 로봇(100a)의 하부에 배치되는 제2 광 출력부(156b)가 도시되어 있으나, 광 출력부(156)의 수 및 배치 위치는 다양하게 변경될 수 있다.
비록 도시되지는 않았으나, 로봇(100a)은 일 위치에서 다른 위치로 이동하기 위한 이동 수단(주행 수단)을 더 포함할 수도 있다. 예컨대, 상기 이동 수단은 적어도 하나의 휠 및 상기 휠을 회전시키는 모터를 포함할 수 있다.
<로봇 제어구성>
도 6는 본 발명의 일 실시 예에 따른 로봇의 제어 구성을 나타내는 블록도이다.
도 6를 참조하면, 로봇(100a)은 통신부(110), 입력부(120), 러닝 프로세서(130), 센싱부(140), 출력부(150), 회전 기구(160), 메모리(170), 및 프로세서(180)를 포함할 수 있다. 도 5에 도시된 구성들은 설명의 편의를 위한 일례로서, 로봇(100a)은 도 5에 도시된 구성들보다 많거나 적은 구성들을 포함할 수 있다.
한편, 도 2의 AI 장치(100)와 관련된 내용은 본 발명의 로봇(100a)에도 유사하게 적용되는 바, 도 2에서 상술한 내용과 중복되는 내용은 생략한다.
통신부(110)는 로봇(100a)을 네트워크를 통해 서버, 이동 단말기, 다른 로봇 등과 연결하기 위한 통신 모듈들을 포함할 수 있다. 상기 통신 모듈들 각각은 도 2에서 상술한 통신 기술 중 어느 하나를 지원할 수 있다.
예컨대, 로봇(100a)은 공유기 등의 액세스 포인트를 통해 네트워크와 연결될 수 있다. 이에 따라, 로봇(100a)은 입력부(120)나 센싱부(140) 등을 통해 획득되는 각종 정보를, 상기 네트워크를 통해 서버나 이동 단말기로 제공할 수 있다. 또한, 로봇(100a)은 상기 서버나 이동 단말기로부터 정보나 데이터, 명령 등을 수신할 수 있다.
입력부(120)는 다양한 종류의 데이터를 획득하는 적어도 하나의 입력 수단을 포함할 수 있다. 예컨대, 상기 적어도 하나의 입력 수단은 버튼이나 다이얼 등의 물리 입력 수단, 터치 패드나 터치 패널과 같은 터치 입력부(122), 사용자의 음성이나 로봇(100a) 주변의 소리 등을 수신하는 마이크로폰(124) 등을 포함할 수 있다. 사용자는 입력부(120)를 통해 각종 요청이나 명령을 로봇(100a)으로 입력할 수 있다.
센싱부(140)는 로봇(100a) 주변의 다양한 정보를 센싱하는 적어도 하나의 센서를 포함할 수 있다. 예컨대 센싱부(140)는 카메라(142), 근접 센서, 조도 센서, 터치 센서, 및 자이로 센서(자이로스코프) 등의 다양한 센서들을 포함할 수 있다.
카메라(142)는 로봇(100a) 주변의 영상을 획득할 수 있다. 실시 예에 따라, 프로세서(180)는 카메라(142)를 통해 사용자의 얼굴을 포함하는 이미지를 획득하여 사용자를 인식하거나, 사용자의 제스쳐나 표정 등을 획득할 수 있다.
근접 센서는 로봇(100a) 주변에 사용자 등의 오브젝트가 접근함을 감지할 수 있다. 예컨대, 근접 센서에 의해 사용자의 접근이 감지되는 경우, 프로세서(180)는 출력부(150)를 통해 초기 화면이나 초기 음성을 출력하여 사용자로 하여금 로봇(100a)의 사용을 유도할 수 있다.
조도 센서는 로봇(100a)이 배치된 공간의 밝기를 감지할 수 있다. 프로세서(180)는 상기 조도 센서의 감지 결과 및/또는 시간대 정보에 기초한 다양한 동작을 수행하도록 구성들을 제어할 수 있다.
터치 센서는 사용자의 신체 일부가 로봇(100a)의 소정 영역에 접촉됨을 감지할 수 있다.
자이로 센서는 로봇(100a)의 회전각이나 기울기 등을 감지할 수 있다. 프로세서(180)는 자이로 센서의 감지 결과에 기초하여 로봇(100a)이 향하는 방향을 인식하거나, 외부로부터의 충격 등을 감지할 수 있다.
출력부(150)는 로봇(100a)의 동작이나 상태, 로봇(100a)에서 실행되는 각종 서비스, 프로그램, 애플리케이션 등과 관련된 각종 정보 또는 콘텐츠를 출력할 수 있다. 또한, 출력부(150)는 사용자와의 인터랙션을 수행하기 위한 각종 메시지나 정보를 출력할 수 있다.
출력부(150)는 디스플레이(152), 스피커(154), 및 광 출력부(156) 등을 포함할 수 있다.
디스플레이(152)는 상술한 각종 정보, 메시지, 또는 콘텐츠를 그래픽 형태로 출력할 수 있다. 실시 예에 따라, 디스플레이(152)는 터치 입력부(122)와 함께 터치 스크린 형태로 구현될 수 있고, 이 경우 디스플레이(152)는 출력 수단뿐만 아니라 입력 수단으로서도 기능할 수 있다.
스피커(154)는 상기 각종 정보, 메시지, 또는 콘텐츠를 음성이나 음향 형태로 출력할 수 있다.
광 출력부(156)는 LED 등의 광원으로 구현될 수 있다. 프로세서(180)는 광 출력부(156)를 통해 로봇(100a)의 상태 등을 나타낼 수 있다. 실시 예에 따라, 광 출력부(156)는 보조적인 출력 수단으로서 디스플레이(152) 및/또는 스피커(154)와 함께 각종 정보를 사용자에게 제공할 수도 있다.
회전 기구(160)는 로봇(100a)을 수직 축을 기준으로 회전시키기 위한 제1 모터를 포함할 수 있다. 프로세서(180)는 상기 회전 기구(160)에 포함된 제1 모터를 제어하여 로봇(100a)을 회전시킴으로써, 로봇(100a)의 디스플레이(152) 및 카메라(142)가 향하는 방향을 좌우 방향으로 변경시킬 수 있다.
실시 예에 따라, 회전 기구(160)는 로봇(100a)을 전후 방향으로 소정 각도 틸팅시키기 위한 제2 모터를 더 포함할 수도 있다. 프로세서(180)는 상기 제2 모터를 제어하여 로봇(100a)을 틸팅시킴으로써, 디스플레이(152) 및 카메라(142)가 향하는 방향을 상하 방향으로 변경시킬 수 있다.
메모리(170)는 로봇(100a)에 포함된 구성 요소들의 동작을 제어하기 위한 제어 데이터, 입력부(120)를 통해 획득된 입력이나 센싱부(140)를 통해 획득되는 정보에 기초한 동작을 수행하기 위한 데이터 등의 각종 데이터가 저장될 수 있다.
또한, 메모리(170)에는 프로세서(180)에 포함된 적어도 하나의 프로세서나 컨트롤러에 의해 실행되는 소프트웨어 모듈이나 애플리케이션 등의 프로그램 데이터가 저장될 수 있다.
이러한 메모리(170)는 하드웨어적으로, ROM, RAM, EPROM, 플래시 드라이브, 하드 드라이브 등과 같은 다양한 저장기기를 포함할 수 있다.
프로세서(180)는 로봇(100a)의 동작을 제어하는 적어도 하나의 프로세서나 컨트롤러 등을 포함할 수 있다. 구체적으로, 프로세서(180)는 적어도 하나의 CPU, AP(application processor), 마이크로컴퓨터(또는 마이컴), 집적 회로, ASIC(application specific integrated circuit) 등을 포함할 수 있다.
[제1 실시예]
도 7은 제1 실시예에 따른 로봇의 경로 탐색 방법을 설명하는 순서도이다.
도 5 내지 도 7을 참조하면, 로봇(100a), 즉 프로세서(180)는 맵 이미지 상에 로봇(100a)의 현재 위치에 상응하는 노드(320)를 설정할 수 있다(S210).
센싱부(140)에서 감지된 감지 신호를 바탕으로 로봇(100a)의 현재 위치를 결정하고, 상기 결정된 현재 위치를 맵 이미지 상에 노드로서 설정할 수 있다.
로봇(100a)은 경로 탐색을 수행할 수 있다(S220). 즉, 로봇(100a)은 상기 설정된 로봇(100a)의 현재 위치에 상응하는 노드(320)를 기준으로 복수의 검색 방향 각각을 따라 검색 범위 내의 복수의 셀을 대상으로 경로 탐색을 수행할 수 있다. 검색 범위 내의 복수의 셀을 몇 개로 할지는 미지 설정될 수 있다. 검색 범위는 특정 검색 방향을 따라 설정될 수 있다. 맵 이미지 상에 정의된 셀은 적어도 하나 이상의 픽셀을 포함할 수 있다. 적어도 하나 이상의 픽셀에 의해 셀의 사이즈나 폭이 결정될 수 있다.
구체적으로, 도 8에 도시한 바와 같이, 로봇(100a)은 복수의 검색 방향 중 특정 검색 방향으로의 검색 범위(R) 내의 복수의 셀을 대상으로 장애물의 존재 여부를 검사할 수 있다(S221).
도 9에 도시한 바와 같이, 로봇(100a)의 현재 위치에 상응하는 노드(320)이 맵 이미지(300) 상에 설정될 수 있다.
로봇(100a)의 현재 위치가 노드(320)로서 맵 이미지(300) 상에 설정되면, 로봇(100a)은 맵 이미지(300) 상게 기 설정된 검색 방향(331 내지 334) 각각으로 검색 범위(R) 내에 포함된 복수의 셀(310)을 대상으로 장애물의 존재 여부를 검사할 수 있다.
도면에는 검색 범위(R)로서 5개의 셀(310)을 포함하는 범위가 도시될 수 있지만, 검색 범위(R)로서 5개 미만인 복수의 셀(310)이나 5개를 초과하는 셀(310)일 수도 있다.
도면에는 기 설정된 검색 방향(331 내지 334)으로 4방향이 도시되고 있지만, 8방향, 16방향, 32방향 등일 수도 있다.
장애물의 존재 여부의 검사는 복수의 검색 방향(331 내지 334) 각각에 대해 순차적으로 수행될 수 있지만, 이에 대해서는 한정하지 않는다. 예컨대, 제1 검색 방향(331)을 따라 제1 검색 범위 내의 복수의 셀(310)을 대상으로 장애물의 존재 여부를 검사할 수 있다. 이후, 제2 검색 방향(332)을 따라 제2 검색 범위 내의 복수의 셀(310)을 대상으로 장애물의 존재 여부를 검사할 수 있다. 이후, 제3 검색 방향(333)을 따라 제3 검색 범위 내의 복수의 셀(310)을 대상으로 장애물의 존재 여부를 검사할 수 있다. 이후, 제4 검색 방향(334)을 따라 제4 검색 범위 내의 복수의 셀(310)을 대상으로 장애물의 존재 여부를 검사할 수 있다. 제1 내지 제4 검색 범위 각각은 동일한 개수, 예컨대 5개의 셀(310)을 포함하는 범위일 수 있지만, 서로 상이한 개수의 셀(310)을 포함하는 범위일 수도 있다. 5개의 셀(310)을 포함하는 범위는 5개의 셀(310) 각각의 폭의 합산값일 수 있다.
로봇(100a)은 검색 범위(R) 내의 복수의 셀(310) 중 하나의 셀에 장애물이 존재하는지를 결정할 수 있다(S222).
장애물의 존재 여부는 셀(310)의 밝기 정보를 바탕으로 결정될 수 있다. 예컨대, 셀(310)의 밝기 정보가 0인 경우 장애물이 존재하는 것으로 결정되고, 셀(310)의 밝기 정보가 1인 경우 장애물이 존재하지 않는 것으로 결정될 수 있다. 이와 반대로, 장애물의 존재 여부가 결정될 수도 있다.
검색 범위(R) 내의 복수의 셀(310) 중 하나의 셀에 장애물이 획득되는 경우, 로봇(100a)은 특정 검색 방향으로의 경로를 이동 불가능한 경로로 결정할 수 있다(S223).
검색 범위(R) 내의 복수의 셀(310)에 장애물이 획득되지 않는 경우, 로봇(100a)은 특정 검색 방향으로의 경로를 이동 가능 경로로 결정하고(224), 이동 가능 경로 상에서 장애물이 획득되지 않은 셀(310)에 후보 노드를 맵 이미지(300) 상에 설정할 수 있다(S225).
도 10에 도시한 바와 같이, 제1 검색 방향(331)으로의 검색 범위(R) 내의 복수의 셀(310) 중 일부 셀에 장애물(340)이 획득되므로, 로봇(100a)은 제1 검색 방향(331)의 경로를 이동 불가능 경로로 결정할 수 있다.
제2 검색 방향(332)으로의 검색 범위(R) 내의 복수의 셀(310), 제3 검색 방향(333)으로의 검색 범위(R) 내의 복수의 셀(310) 그리고 제4 검색 방향(334)으로의 검색 범위(R) 내의 복수의 셀(310)에서 장애물이 획득되지 않으므로, 로봇(100a)은 장애물이 획득된 셀(310), 예컨대 로봇(100a)의 현재 위치에 상응하는 노드(320)로부터 5번째 이격된 셀(310)에 후보 노드(322 내지 324)를 맵 이미지(300) 상에 설정할 수 있다.
도 11에 도시한 바와 같이, 제1 내지 제4 검색 방향(331 내지 334) 각각으로의 검색 범위(R) 내의 복수의 셀(310) 모두에서 장애물(341)이 획득되지 않을 수 있다. 이러한 경우, 제1 내지 제4 검색 방향(331 내지 334) 각각에서 후보 노드(321 내지 324)가 맵 이미지(300) 상에 설정될 수 있다.
다시 도 7에 도시한 바와 같이, 복수의 검색 방향(331 내지 334)에서 복수의 후보 노드가 설정된 경우, 로봇(100a)은 이들 복수의 후보 노드 중 하나를 최종 노드로 결정할 수 있다(S230). 최종 노드는 로봇(100a)이 이동할 노드일 수 있다. 최종 노드는 최소 비용을 고려하여 결정될 수 있다. 최소 비용은 특정 검색 방향으로의 이동시에 발생되는 비용 요소를 토대로 가장 작게 산출된 비용일 수 있다. 최소 비용은 예컨대, A*(star) 알고리즘에서 기 공지된 기술로서, 상세한 설명은 생략한다.
로봇(100a)은 상기 결정된 최종 노드를 맵 이미지(300) 상에 설정할 수 있다.
로봇(100a)은 최종 노드로 이동할 수 있다(S240). 맵 이미지(300) 상에 로봇(100a)의 현재 위치에 상응하는 노드(제1 노드, 320)와 최종 노드(제2 노드)가 설정되고 하나의 셀의 폭을 알고 있으므로, 로봇(100a)이 이동해야 할 거리가 쉽게 획득될 수 있다.
도 10에 도시한 바와 같이, 제4 검색 방향(334)에서 제1 노드(320)에서 5번째 이격된 셀(324)에 제2 노드(324)가 최종 노드로 설정되고, 셀(310)의 폭이 10cm인 경우, 5*10=50cm가 로봇(100a)의 이동 거리로 획득될 수 있다. 따라서, 로봇(100a)은 제4 검색 방향(334)을 따라 50cm 이동할 수 있다.
로봇(100a)은 상기 이동된 위치가 목표 위치인지를 결정할 수 있다(S250). 목표 위치 여부는 방향, 거리 등을 이용하여 결정될 수 있다.
상기 이동된 위치가 목표 위치가 아닌 경우, 로봇(100a)은 목표 위치에 도달할 때까지 경로 탐색을 반복 수행할 수 있다.
상기 이동된 위치가 목표 위치인 경우, 로봇(100a)은 이동을 종료할 수 있다(S260).
한편, 도 12를 참조하여 도 8의 S221을 상세히 설명한다.
도 12에 도시한 바와 같이, 로봇(100a)은 복수의 검색 방향(331 내지 334) 각각을 따라 검색 범위(R)를 설정할 수 있다(S2210).
예컨대, 도 9에 도시한 바와 같이, 검색 방향(331 내지 334)은 4방향으로서, 제1 검색 방향(331), 제2 검색 방향(332), 제3 검색 방향(333) 및 제4 검색 방향(334)을 포함할 수 있다. 예컨대, 검색 범위(R)는 5개의 셀(K)을 포함하는 범위일 수 있다.
로봇(100a)은 로봇(100a)의 현재 위치에 상응하는 노드, 즉 제1 노드(320)로부터 가장 먼 셀(도 10 및 도 11의 311)을 대상으로 장애물의 존재 여부를 검사할 수 있다(S2220, S2230). 가장 먼 셀(311)은 K가 5인 경우, 제1 노드(320)로부터 5번째 이격된 셀(311)일 수 있다.
제1 노드(320)로부터 가장 먼 셀(311)에 장애물이 획득되지 않는 경우, 로봇(100a)은 맵 이미지(300) 상에서 제1 노드(320)로부터 가장 먼 셀(311)에 후보 노드를 설정할 수 있다(도 8의 S225).
제1 노드(320)로부터 가장 먼 셀(311)에 장애물이 획득되는 경우, 로봇(100a)은 검색 범위(R) 내의 복수의 셀(310)의 검사가 모두 완료되었는지(m=0) 여부를 결정할 수 있다(S2240).
검색 범위(R) 내의 셀(310)에 장애물이 획득되고 해당 셀(310)의 검사가 모두 완료된 경우, 로봇(100a)은 특정 검색 방향으로의 경로를 이동 불가능 경로로 결정하고, 다른 방향에서의 장애물의 존재 여부를 검사할 수 있다.
검색 범위(R) 내의 셀(310)에 장애물이 획득되고 해당 셀(310)의 검사가 모두 완료되지 않은 경우, 덜 먼 셀(312 내지 315)을 대상으로 장애물의 존재 여부를 검사할 수 있다(S2250).
즉, 도 12에 도시한 바와 같이, m=m-1이고 K=5이므로, m=5-1=4가 되어, 제1 노드(320)로부터 5번째 이격된 셀(311)보다 덜 먼 셀, 즉 4번째 이격된 셀(312)을 대상으로 장애물의 존재 여부를 검사할 수 있다.
이와 같은 방식으로, 제1 노드(320)로부터 3번째 이격된 셀(313), 2번째 이격된 셀(314) 그리고 1번째 이격된 셀(315)을 대상으로 순차적으로 장애물의 존재 여부가 결정될 수 있다. 이와 같이 순차적으로 각 셀(311 내지 315)에서의 장애물의 존재 여부가 결정되어, 특정 셀에서 장애물이 결정되지 않는 경우, 맵 이미지(300) 상에서 특정 셀에 후보 노드를 설정할 수 있다.
다른 예로서, 제1 노드(320)으로부터 5번째 이격된 셀(311), 4번째 이격된 셀(312), 3번째 이격된 셀(313), 2번째 이격된 셀(314) 그리고 1번째 이격된 셀(315)을 대상으로 순차적으로 장애물이 검사될 때, 장애물이 획득되는 경우, 더 이상 장애물이 존재하지 않는 셀을 찾지 않을 수 있다. 예컨대, 5번째 이격된 셀(311)에 장애물이 존재하는 경우, 4번째 이격된 셀(312), 3번째 이격된 셀(313), 2번째 이격된 셀(314) 그리고 1번째 이격된 셀(315)에 대한 장애물 검사가 수행되지 않고, 다른 검색 방향에서의 장애물 검사가 수행될 수 있다. 이와 같이 동작됨으로써, 연산량이 더욱 더 줄어 연산 부담이 훨씬 경감될 수 있다.
종래에는 제1 노드(320)로부터 수 셀이나 수십 셀 이상 이격되어 장애물이 존재함에도 불구하고, 제1 노드(320)로부터 1셀 단위로 장애물이 위치하는 데까지 순차적으로 장애물의 존재 여부를 결정하므로 연산량이 크게 증가될 수 있다. 복수의 로봇(100a) 각각이 이와 같은 방식으로 장애물을 검색하는 경우, 복수의 로봇(100a)을 관리 및/또는 제어하는 클라우드 시스템에 상당한 연산 부담이 가중될 수 있다.
제1 실시예에 따르면, 검색 범위(R) 내의 복수의 셀(310)을 대상으로 장애물의 존재 여부를 결정함으로써, 보다 빠르게 장애물을 식별하여 로봇(100a)의 신속한 이동이 가능하다.
제1 실시예에 따르면, 검색 범위(R) 내의 복수의 셀(310) 중에서 로봇(100a)의 현재 위치에 상응하는 노드, 즉 제1 노드(320)로부터 가장 먼 셀(311)부터 덜 먼 셀(312 내지 315)의 순서로 장애물의 존재 여부를 결정함으로써, 보다 넓고 큰 검색 범위(R)로 장애물의 검색이 가능하여 연산 부담을 크게 줄일 수 있다.
[제2 실시예]
도 13은 제2 실시예에 따른 로봇의 경로 탐색 방법을 설명하는 순서도이다.
도 13에서 S410 및 S440 내지 S480은 각각 도 7에서 S210 내지 S260와 동일하므로, 상세한 설명은 생략한다.
도 5, 도 6 및 도 13에 도시한 바와 같이, 로봇(100a)의 현재의 위치에 상응하는 노드, 즉 제1 노드(320)가 맵 이미지(300) 상에 설정되면, 로봇(100a)은 로봇(100a)의 현재 이동 속도를 획득할 수 있다(S420).
센싱부는 속도 센서를 포함할 수 있다. 따라서, 로봇(100a)은 속도 센서에서 감지된 속도 신호를 바탕으로 로봇(100a)의 현재 이동 속도를 획득할 수 있다. 로봇(100a)의 현재 이동 속도는 다른 구성 요소나 다른 방법에 의해 획득될 수도 있다.
로봇(100a)은 로봇(100a)의 현재 이동 속도에 따라 복수의 검색 방향(331 내지 334) 각각의 검색 범위(R)를 변경할 수 있다(S430). 즉, 기 설정된 제1 검색 검위가 로봇(100a)의 현재 이동 속도에 따라 제2 검색 범위로 변경될 수 있다.
예컨대, 이동 속도에 따라 설정된 검색 범위(R)를 포함하는 룩업 테이블이 메모리(170)에 저장될 수 있다. 예컨대, 룩업 테이블은 복수의 이동 속도 범위와 각 이동 속도 범위에 따른 검색 범위(R)를 포함할 수 있다.
예컨대, 룩업 테이블은 표 1과 같이 나타낼 수 있다. 로봇(100a)이 이동할 수 있는 최대 이동 속도에 따라 이동 속도 범위의 개수와 검색 범위(R)가 달라질 수 있다.
표 1에서 로봇(100a)의 최대 이동 속도는 1.5m/s이다.
이동 속도 범위 검색 범위
제1 이동 속도 범위(0~0.3m/s) R1(1cell)
제2 이동 속도 범위(0.31m/s~0.6m/s) R2(2cells)
제3 이동 속도 범위(0.61m/s~0.9m/s) R3(3cells)
제4 이동 속도 범위(0.91m/s~1.2m/s) R4(4cells)
제5 이동 속도 범위(1.21m/s~1.5m/s) R5(5cells)
로봇(100a)의 현재 이동 속도가 획득되면, 로봇(100a)은 메모리에 저장된 룩업 테이블을 조회하여 로봇(100a)의 현재 이동 속도가 포함되는 이동 속도 범위를 결정하고, 상기 결정된 이동 속도 범위에 따른 검색 범위(R)를 획득할 수 있다. 예컨대, 표 1에 나타낸 바와 같이, 로봇(100a)의 현재 이동 속도가 1.27m/s인 경우, 로봇(100a)은 룩업 테이블을 조회하여 1.2m/s가 제5 이동 속도 범위에 포함되는 것으로 결정하고, 제5 이동 속도 범위에 따른 검색 범위, 즉 R5를 획득할 수 있다. R5는 5개의 셀(310)이 포함된 범위일 수 있다.
도 14에 도시한 바와 같이, 로봇(100a)의 현재 이동 속도가 0.2m/s로서 로봇(100a)의 현재 이동 속도가 낮은 경우, 로봇(100a)은 룩업 테이블을 바탕으로 R1인 검색 범위를 획득할 수 있다. R1의 검색 범위는 한 개의 셀을 포함하는 범위일 수 있다. 이러한 경우, 로봇(100a)은 S440 내지 S480을 통해 R1의 검색 범위를 이용하여 경로 탐색을 수행하여 장애물을 회피하여 이동할 수 있다.
도 15에 도시한 바와 같이, 로봇(100a)의 현재 이동 속도가 0.8m/s로서 로봇(100a)의 현재 이동 속도가 높은 경우, 로봇(100a)은 룩업 테이블을 바탕으로 R3인 검색 범위를 획득할 수 있다. R3의 검색 범위는 3개의 셀을 포함하는 범위일 수 있다. 이러한 경우, 로봇(100a)은 S440 내지 S480을 통해 R3의 검색 범위를 이용하여 경로 탐색을 수행하여 장애물을 회피하여 이동할 수 있다. R3의 검색 범위는 R1의 검색 범위보다 더 클 수 있다. 즉, R1의 검색 범위에서는 한 개의 셀 단위로 장애물의 존재 여부가 결정되는데 반해, R3의 검색 범위에서는 3개의 셀 단위로 장애물의 존재 여부가 결정될 수 있다. 따라서, 로봇(100a)의 이동 속도가 클수록 검색 범위를 증가시켜 연산 부담을 줄여 신속한 로봇(100a)의 이동이 가능하다.
따라서, 로봇(100a)의 이동 속도가 낮을 때에는 검색 범위(R)도 비교적 작게 하여 좀 더 세밀하게 장애물의 존재 여부를 검사하고, 로봇(100a)의 이동 속도가 높을 때에는 검색 범위(R)도 비교적 크게 하여 큼직하게 장애물의 존재 여부를 검사할 수 있다. 즉, 로봇(100a)의 이동 속도에 따라 그에 맞게 검색 범위(R)를 변경하여, 로봇(100a)에 연산 부담이 가중되지 않도록 하여, 로봇(100a)의 신속하고 원활한 이동이 가능하다.
상기의 상세한 설명은 모든 면에서 제한적으로 해석되어서는 아니되고 예시적인 것으로 고려되어야 한다. 실시예의 범위는 첨부된 청구항의 합리적 해석에 의해 결정되어야 하고, 실시예의 등가적 범위 내에서의 모든 변경은 실시예의 범위에 포함된다.

Claims (10)

  1. 로봇의 경로 탐색 방법에 있어서,
    a)맵 이미지 상에 상기 로봇의 현재 위치에 상응하는 노드를 설정하는 단계; 및
    b)상기 설정된 로봇의 현재 위치에 상응하는 노드를 기준으로 복수의 검색 방향 각각을 따라 검색 범위 내의 복수의 셀을 대상으로 경로 탐색을 수행하는 단계를 포함하고,
    상기 검색 범위는 상기 특정 검색 방향을 따라 설정되고,
    상기 경로 탐색을 수행하는 단계는,
    상기 복수의 검색 방향 중 특정 검색 방향으로의 상기 검색 범위 내의 상기 복수의 셀을 대상으로 장애물의 존재 여부를 검사하는 단계;
    상기 검색 범위 내의 상기 복수의 셀 중 하나의 셀에 장애물이 획득되는 경우, 상기 특정 방향으로의 경로를 이동 불가능 경로로 결정하는 단계; 및
    상기 검색 범위 내의 상기 복수의 셀에 장애물이 획득되지 않는 경우, 상기 특정 방향으로의 경로를 이동 가능 경로로 결정하고, 상기 이동 가능 경로 상에서 상기 장애물이 획득된 셀에 후보 노드를 설정하는 단계를 포함하는
    로봇의 경로 탐색 방법.
  2. 제1항에 있어서,
    c)상기 복수의 검색 방향 중 특정 검색 방향으로 힉득된 후보 노드가 복수인 경우, 최소 비용을 고려하여 최종 노드를 결정하는 단계를 포함하는
    로봇의 경로 탐색 방법.
  3. 제2항에 있어서,
    d)상기 로봇을 상기 결정된 최종 노드로 이동하는 단계를 포함하는
    로봇의 경로 탐색 방법.
  4. 제3항에 있어서,
    e)목표 위치에 도달할 때까지 상기 a) 단계 내지 d) 단계를 반복적으로 수행하는 단계를 포함하는
    로봇의 경로 탐색 방법.
  5. 제1항에 있어서,
    상기 검색 범위 내의 상기 복수의 셀을 대상으로 장애물의 존재 여부를 검사하는 단계는,
    상기 복수의 셀 중 상기 설정된 로봇의 현재 위치에 상응하는 노드로부터 가장 먼 셀을 대상으로 장애물의 존재 여부를 검사하는 단계;
    상기 설정된 로봇의 현재 위치에 상응하는 노드로부터 가장 먼 셀에 상기 장애물이 획득되지 않는 경우, 상기 가장 먼 셀에 후보 노드를 설정하는 단계를 포함하는
    로봇의 경로 탐색 방법.
  6. 제5항에 있어서,
    상기 설정된 로봇의 현재 위치에 상응하는 노드로부터 가장 먼 셀에 상기 장애물이 획득되는 경우, 상기 설정된 로봇의 현재 위치에 상응하는 노드로부터 상기 가장 먼 셀보다 덜 먼 셀을 대상으로 장애물의 존재 여부를 검사하는 단계;
    상기 덜 먼 셀 중 장애물이 획득되지 않는 셀에 후보 노드를 설정하는 단계를 포함하는
    로봇의 경로 탐색 방법.
  7. 제1항에 있어서,
    상기 로봇의 현재 이동 속도를 획득하는 단계;
    상기 획득된 로봇의 현재 이동 속도에 따라 상기 검색 범위를 변경하는 단계를 포함하는
    로봇의 경로 탐색 방법.
  8. 제1항에 있어서,
    상기 복수의 검색 방향은 4방향, 8방향, 16방향 및 32방향 중 하나인
    로봇의 경로 탐색 방법.
  9. 제1항에 있어서,
    상기 셀은 상기 맵 이미지의 적어도 하나 이상의 픽셀을 포함하는
    로봇의 경로 탐색 방법.
  10. 장애물을 감지하는 적어도 하나 이상의 센싱부; 및
    프로세서를 포함하고,
    상기 프로세서는,
    맵 이미지 상에 로봇의 현재 위치에 상응하는 노드를 설정하고,
    상기 설정된 로봇의 현재 위치에 상응하는 노드를 기준으로 복수의 검색 방향 각각을 따라 검색 범위 내의 복수의 셀을 대상으로 경로 탐색을 수행하고,
    상기 검색 범위는 상기 특정 검색 방향을 따라 설정되고,
    상기 프로세서는,
    상기 복수의 검색 방향 중 특정 검색 방향으로의 상기 검색 범위 내의 상기 복수의 셀을 대상으로 장애물의 존재 여부를 검사하고,
    상기 검색 범위 내의 상기 복수의 셀 중 하나의 셀에 장애물이 획득되는 경우, 상기 특정 방향으로의 경로를 이동 불가능 경로로 결정하며,
    상기 검색 범위 내의 상기 복수의 셀에 장애물이 획득되지 않는 경우, 상기 특정 방향으로의 경로를 이동 가능 경로로 결정하고, 상기 이동 가능 경로 상에서 상기 장애물이 획득된 셀에 후보 노드를 설정하는
    로봇.
KR1020210180473A 2021-12-16 2021-12-16 로봇 및 로봇의 경로 탐색 방법 KR20230091396A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020210180473A KR20230091396A (ko) 2021-12-16 2021-12-16 로봇 및 로봇의 경로 탐색 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020210180473A KR20230091396A (ko) 2021-12-16 2021-12-16 로봇 및 로봇의 경로 탐색 방법

Publications (1)

Publication Number Publication Date
KR20230091396A true KR20230091396A (ko) 2023-06-23

Family

ID=86993633

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210180473A KR20230091396A (ko) 2021-12-16 2021-12-16 로봇 및 로봇의 경로 탐색 방법

Country Status (1)

Country Link
KR (1) KR20230091396A (ko)

Similar Documents

Publication Publication Date Title
US11663516B2 (en) Artificial intelligence apparatus and method for updating artificial intelligence model
US11029803B2 (en) Robot
US20210097852A1 (en) Moving robot
US11513522B2 (en) Robot using an elevator and method for controlling the same
US11559902B2 (en) Robot system and control method of the same
US11738465B2 (en) Robot and controlling method thereof
KR20190107627A (ko) 차량의 위치 정보를 제공하는 인공 지능 장치 및 그 방법
US11433548B2 (en) Robot system and control method thereof
US11376742B2 (en) Robot and method of controlling the same
US11450326B2 (en) Device for recognizing voice content, server connected thereto, and method for recognizing voice content
KR20210066207A (ko) 객체를 인식하는 인공 지능 장치 및 그 방법
US11314263B2 (en) Robot system and control method of the same
US20210183364A1 (en) Artificial intelligence apparatus and method for predicting performance of voice recognition model in user environment
US20210078180A1 (en) Robot system and control method of the same
KR102229562B1 (ko) 음성 인식 서비스를 제공하는 인공 지능 장치 및 그의 동작 방법
KR20210050201A (ko) 로봇, 로봇의 작동 방법 및 상기 로봇을 포함하는 로봇 시스템
US11345023B2 (en) Modular robot and operation method thereof
KR20230091396A (ko) 로봇 및 로봇의 경로 탐색 방법
US11550328B2 (en) Artificial intelligence apparatus for sharing information of stuck area and method for the same
US20190369940A1 (en) Content providing method and apparatus for vehicle passenger
KR20210070153A (ko) 로봇
KR20230091335A (ko) 자율 주행 로봇, 클라우드 장치 및 위치 보정 방법
US11478697B2 (en) Terminal connected to action robot and operating method thereof
KR20240066697A (ko) 인공 지능 장치 및 그의 연동기기 업데이트 방법
KR20230109505A (ko) 로봇 이동 시뮬레이션을 기반으로 로봇 이동 경로를 생성하는 인공 지능 장치 및 그 방법