Processing

Please wait...

Settings

Settings

Goto Application

1. WO2020153628 - ROBOT AND CONTROL METHOD THEREOF

Document

명세서

발명의 명칭

기술분야

1  

배경기술

2   3   4  

발명의 상세한 설명

기술적 과제

5  

과제 해결 수단

6   7   8   9   10   11   12   13   14   15   16   17   18   19  

발명의 효과

20  

도면의 간단한 설명

21   22   23   24   25   26   27   28   29  

발명의 실시를 위한 최선의 형태

30  

발명의 실시를 위한 형태

31   32   33   34   35   36   37   38   39   40   41   42   43   44   45   46   47   48   49   50   51   52   53   54   55   56   57   58   59   60   61   62   63   64   65   66   67   68   69   70   71   72   73   74   75   76   77   78   79   80   81   82   83   84   85   86   87   88   89   90   91   92   93   94   95   96   97   98   99   100   101   102   103   104   105   106   107   108   109   110   111   112   113   114   115   116   117   118   119   120   121   122   123   124   125   126   127   128   129   130   131   132   133   134   135   136   137   138   139   140   141   142   143  

산업상 이용가능성

144   145  

청구범위

1   2   3   4   5   6   7   8   9   10   11   12   13   14  

도면

1   2   3   4   5   6   7   8   9  

명세서

발명의 명칭 : 로봇 및 그 제어 방법

기술분야

[1]
본 발명은 로봇 및 그 제어 방법에 관한 것으로, 더욱 상세하게는 이동 속도를 변경하는 로봇 및 그 제어 방법에 관한 것이다.

배경기술

[2]
전자 기술의 발달로 다양한 로봇이 개발되고 있다. 로봇은 각종 산업 분야, 의료 분야, 우주 항공 분야뿐만 아니라, 일반 가정집에도 활용되고 있다.
[3]
특히, 최근에는 사람을 대신해 물품을 분류하고, 목적지까지 물품을 운반하는 자동 경로 차량(Automated Guided Vehicle) 및 가정 내 실내 공간을 스스로 주행하면서 청소를 주행하는 로봇 청소기 등이 개발되고 있다.
[4]
한편, 이와 같은 로봇은 일정한 속도로 주행하면서 작업을 수행하는 것이 일반적이다. 그러나, 로봇이 빠르게 이동해도 무관한 공간에서 기설정된 속도로 작업을 수행하는 것은 작업의 효율을 감소시킬 수 있다. 또한, 로봇이 느리게 이동해야 하는 공간에서 그보다 빠르게 설정된 속도로 작업을 수행하는 것은 충돌 등의 위험성이 있다.

발명의 상세한 설명

기술적 과제

[5]
본 개시는 상술한 문제점을 해결하기 위해 안출된 것으로서, 본 개시는 주변 환경에 기초하여 이동 속도를 스스로 제어하는 로봇 및 그 제어 방법을 제공함에 있다.

과제 해결 수단

[6]
상기 목적을 달성하기 위한 본 개시의 일 실시 예에 따른 로봇은 구동부 및 상기 로봇의 작업의 수행을 위한 사용자 명령이 입력되면, 상기 로봇의 주변 환경 정보에 기초하여 상기 로봇의 구동 레벨을 결정하고, 구동 레벨 별로 기설정된 최대 허용 토크에 대한 정보 및 최대 허용 속도에 대한 정보에 기초하여, 상기 로봇의 구동 레벨에 대응되는 최대 허용 토크 및 최대 허용 속도를 판단하고, 상기 최대 허용 토크에 기초하여 상기 로봇의 최대 허용 가속도를 산출하고, 상기 최대 허용 가속도에 기초하여 상기 로봇의 이동 속도가 상기 최대 허용 속도에 도달하도록 상기 구동부를 제어하며, 상기 로봇이 상기 최대 허용 속도로 이동하는 동안 상기 작업을 수행하도록 상기 로봇을 제어하는 프로세서를 포함한다.
[7]
여기에서, 상기 로봇의 주변 환경 정보는, 상기 로봇이 위치하는 공간에 대한 정보를 포함하고, 상기 프로세서는, 공간별 구동 레벨에 관한 정보에 기초하여, 상기 로봇이 위치하는 공간에 대응되는 구동 레벨을 판단하고, 상기 판단된 구동 레벨을 상기 로봇의 구동 레벨로 결정할 수 있다.
[8]
그리고, 상기 프로세서는, 작업의 종류별 구동 레벨에 관한 정보에 기초하여, 상기 로봇이 수행 중인 작업에 대응되는 구동 레벨을 판단하고, 상기 로봇이 위치하는 공간에 대응되는 구동 레벨 및 상기 로봇이 수행 중인 작업에 대응되는 구동 레벨 중에서 상대적으로 높은 구동 레벨을 상기 로봇의 구동 레벨로 결정할 수 있다.
[9]
그리고, 상기 프로세서는, 카메라를 통해 촬영된 영상 또는 마이크를 통해 수신된 사용자 음성에 기초하여, 상기 로봇의 주변에 위치하는 사용자를 식별하고, 사용자 별 구동 레벨에 관한 정보에 기초하여, 상기 식별된 사용자에 대응되는 구동 레벨을 판단하고, 상기 로봇이 위치하는 공간에 대응되는 구동 레벨 및 상기 식별된 사용자에 대응되는 구동 레벨 중에서, 상대적으로 높은 구동 레벨을 상기 로봇의 구동 레벨로 결정할 수 있다.
[10]
그리고, 상기 프로세서는, 상기 식별된 사용자가 상기 로봇으로부터 기설정된 범위 내 위치하는 경우, 상기 로봇이 위치하는 공간에 대응되는 구동 레벨 및 상기 식별된 사용자에 대응되는 구동 레벨 중에서, 상대적으로 높은 구동 레벨을 상기 로봇의 구동 레벨로 결정하고, 상기 식별된 사용자가 상기 로봇으로부터 기설정된 범위 밖에 위치하는 경우, 상기 로봇이 위치하는 공간에 대응되는 구동 레벨을 상기 로봇의 구동 레벨로 결정할 수 있다.
[11]
그리고, 상기 프로세서는, 기저장된 지도 정보에 기초하여 상기 로봇의 주행 방향을 변경하거나, 상기 로봇 주변에서 장애물 및 사용자 중 적어도 하나가 감지되는 경우 상기 주행 방향을 변경하고, 상기 주행 방향을 변경하는 동안 상기 최대 허용 가속도에 기초하여 상기 로봇의 이동 속도를 감소시키도록 상기 구동부를 제어할 수 있다.
[12]
그리고, 상기 프로세서는, 상기 로봇이 상기 주행 방향을 변경하는 동안 베지어(Bezier) 곡선에 따라 상기 로봇이 이동하도록 상기 구동부를 제어할 수 있다.
[13]
한편, 본 개시의 일 실시 예에 따른 로봇의 제어 방법은, 상기 로봇의 작업의 수행을 위한 사용자 명령이 입력되면, 상기 로봇의 주변 환경 정보에 기초하여 상기 로봇의 구동 레벨을 결정하는 단계, 구동 레벨 별로 기설정된 최대 허용 토크에 대한 정보 및 최대 허용 속도에 대한 정보에 기초하여, 상기 로봇의 구동 레벨에 대응되는 최대 허용 토크 및 최대 허용 속도를 판단하는 단계, 상기 최대 허용 토크에 기초하여 상기 로봇의 최대 허용 가속도를 산출하는 단계, 상기 최대 허용 가속도에 기초하여 상기 로봇의 이동 속도가 상기 최대 허용 속도에 도달하도록 상기 로봇을 제어하는 단계 및 상기 로봇이 상기 최대 허용 속도로 이동하는 동안 상기 작업을 수행하도록 하는 단계를 포함한다.
[14]
여기에서, 상기 로봇의 주변 환경 정보는, 상기 로봇이 위치하는 공간에 대한 정보를 포함하고, 상기 구동 레벨을 결정하는 단계는, 공간별 구동 레벨에 관한 정보에 기초하여, 상기 로봇이 위치하는 공간에 대응되는 구동 레벨을 판단하고, 상기 판단된 구동 레벨을 상기 로봇의 구동 레벨로 결정할 수 있다.
[15]
그리고, 상기 구동 레벨을 결정하는 단계는, 작업의 종류별 구동 레벨에 관한 정보에 기초하여, 상기 로봇이 수행 중인 작업에 대응되는 구동 레벨을 판단하고, 상기 로봇이 위치하는 공간에 대응되는 구동 레벨 및 상기 로봇이 수행 중인 작업에 대응되는 구동 레벨 중에서 상대적으로 높은 구동 레벨을 상기 로봇의 구동 레벨로 결정할 수 있다.
[16]
그리고, 본 제어 방법은 카메라를 통해 촬영된 영상 또는 마이크를 통해 수신된 사용자 음성에 기초하여, 상기 로봇의 주변에 위치하는 사용자를 식별하는 단계를 더 포함하고, 상기 구동 레벨을 결정하는 단계는, 사용자 별 구동 레벨에 관한 정보에 기초하여, 상기 식별된 사용자에 대응되는 구동 레벨을 판단하고, 상기 로봇이 위치하는 공간에 대응되는 구동 레벨 및 상기 식별된 사용자에 대응되는 구동 레벨 중에서, 상대적으로 높은 구동 레벨을 상기 로봇의 구동 레벨로 결정할 수 있다.
[17]
그리고, 상기 구동 레벨을 결정하는 단계는, 상기 식별된 사용자가 상기 로봇으로부터 기설정된 범위 내 위치하는 경우, 상기 로봇이 위치하는 공간에 대응되는 구동 레벨 및 상기 식별된 사용자에 대응되는 구동 레벨 중에서, 상대적으로 높은 구동 레벨을 상기 로봇의 구동 레벨로 결정하고, 상기 식별된 사용자가 상기 로봇으로부터 기설정된 범위 밖에 위치하는 경우, 상기 로봇이 위치하는 공간에 대응되는 구동 레벨을 상기 로봇의 구동 레벨로 결정할 수 있다.
[18]
그리고, 본 제어 방법은 기저장된 지도 정보에 기초하여 상기 로봇의 주행 방향을 변경하거나, 상기 로봇 주변에서 장애물 및 사용자 중 적어도 하나가 감지되는 경우 상기 주행 방향을 변경하고, 상기 주행 방향을 변경하는 동안 상기 최대 허용 가속도에 기초하여 상기 로봇의 이동 속도를 감소시키는 단계를 더 포함할 수 있다.
[19]
그리고, 본 제어 방법은 상기 로봇이 상기 주행 방향을 변경하는 동안 베지어(Bezier) 곡선에 따라 상기 로봇이 이동하도록 제어하는 단계를 더 포함할 수 있다.

발명의 효과

[20]
이상과 같은 본 개시의 다양한 실시 예에 따르면, 로봇은 작업 공간 내에서 작업을 신속하게 처리할 수 있다. 또한, 로봇은 별도의 센서를 구비하지 않고도 장애물 등과의 충돌을 피할 수 있다.

도면의 간단한 설명

[21]
도 1은 본 개시의 일 실시 예에 따른 로봇을 설명하기 위한 블록도이다.
[22]
도 2는 본 개시의 일 실시 예에 따른 공간별 구동 레벨에 관한 정보를 설명하기 위한 도면이다.
[23]
도 3은 본 개시의 일 실시 예에 따른 구동 레벨 별로 기설정된 최대 허용 토크 및 최대 허용 속도에 대한 정보를 설명하기 위한 도면이다.
[24]
도 4는 본 개시의 일 실시 예에 따른 로봇의 이동 속도를 도시한 도면이다.
[25]
도 5는 본 개시의 일 실시 예에 따른 작업의 종류별 구동 레벨에 관한 정보를 설명하기 위한 도면이다.
[26]
도 6은 본 개시의 일 실시 예에 따른 사용자 별 구동 레벨에 관한 정보를 설명하기 위한 도면이다.
[27]
도 7은 본 개시의 일 실시 예에 따른 로봇의 이동 궤적을 설명하기 위한 도면이다.
[28]
도 8은 본 개시의 일 실시 예에 따른 로봇을 설명하기 위한 상세 블록도이다.
[29]
도 9는 본 개시의 일 실시 예에 따른 로봇의 제어 방법을 설명하기 위한 순서도이다.

발명의 실시를 위한 최선의 형태

[30]
-

발명의 실시를 위한 형태

[31]
먼저, 본 명세서 및 청구범위에서 사용되는 용어는 본 개시의 기능을 고려하여 일반적인 용어들을 선택하였다. 하지만, 이러한 용어들은 당 분야에 종사하는 기술자의 의도나 법률적 또는 기술적 해석 및 새로운 기술의 출현 등에 따라 달라질 수 있다. 또한, 일부 용어는 출원인이 임의로 선정한 용어도 있다. 이러한 용어에 대해서는 본 명세서에서 정의된 의미로 해석될 수 있으며, 구체적인 용어 정의가 없으면 본 명세서의 전반적인 내용 및 당해 기술 분야의 통상적인 기술 상식을 토대로 해석될 수도 있다.
[32]
또한, 본 개시를 설명함에 있어서, 관련된 공지 기능 혹은 구성에 대한 구체적인 설명이 본 개시의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우, 그에 대한 상세한 설명은 축약하거나 생략한다.
[33]
나아가, 이하 첨부 도면들 및 첨부 도면들에 기재된 내용들을 참조하여 본 개시의 실시 예를 상세하게 설명하지만, 본 개시가 실시 예들에 의해 제한되거나 한정되는 것은 아니다.
[34]
이하, 첨부된 도면을 참조하여 본 개시를 상세히 설명한다.
[35]
도 1은 본 개시의 일 실시 예에 따른 로봇을 설명하기 위한 블록도이다.
[36]
본 개시의 일 실시 예에 따른 로봇(100)은 목적지까지 물품을 이동시킬 수 있는 자동 경로 차량(Automated Guided Vehicle) 또는 가정 내 공간을 주행하면서 청소 작업을 수행할 수 있는 로봇 청소기 중 하나가 될 수 있다. 다만, 이에 한정되는 것은 아니고, 로봇(100)은 건물 내 공간을 주행하면서 공기 정화 작업을 수행할 수 있는 로봇, 인간을 탑승시켜서 목적지까지 이동시킬 수 있는 이동형 로봇, 가정 내 공간을 주행하며 의류 정리, 설거지 등의 작업을 수행할 수 있는 가사 지원형 로봇 또는 빌딩 내 공간을 주행하며 경비를 수행할 수 있는 경비형 봇 등과 같이 바퀴를 구비한 다양한 로봇으로 구현될 수 있다.
[37]
도 1을 참조하면, 본 개시의 일 실시 예에 따른 로봇(100)은 구동부(110) 및 프로세서(120)를 포함한다.
[38]
구동부(110)는 로봇(100)을 이동시킬 수 있다. 이를 위해, 구동부(110)는 하나 또는 둘 이상의 바퀴와 연결되고, 바퀴를 회전시킬 수 있는 모터 등의 구동 유닛을 구비할 수 있다. 그리고 구동부(110)는 프로세서(120)의 제어 신호에 따라 로봇(100)의 이동, 정지, 방향 전환 등의 주행 동작을 수행할 수 있다.
[39]
프로세서(120)는 로봇(100)의 전반적인 동작을 제어한다. 이를 위해, 프로세서(120)는 중앙처리장치(central processing unit(CPU)), 어플리케이션 프로세서(application processor(AP)), 또는 커뮤니케이션 프로세서(communication processor(CP)) 중 하나 또는 그 이상을 포함할 수 있다. 그리고, 프로세서(120)는 적어도 하나의 범용 프로세서(general processor), 디지털 신호 프로세서(digital signal processor), ASIC(Application specific integrated circuit), SoC(system on chip), MICOM(Microcomputer) 등으로 구현될 수 있다.
[40]
프로세서(120)는 로봇(100)의 주변 환경 정보에 기초하여, 로봇(100)의 구동 레벨을 결정할 수 있다. 여기에서, 주변 환경 정보는 로봇(100)이 위치하는 공간에 대한 정보로서, 프로세서(120)는 기저장된 지도 정보에 기초하여 로봇(100)이 위치하는 공간을 판단하고, 해당 공간에 대응되는 구동 레벨을 판단할 수 있다.
[41]
예를 들어, 프로세서(120)는 기저장된 지도 정보에 기초하여 로봇(100)이 거실에 위치하는 것으로 판단되면, 공간별 구동 레벨 정보에 기초하여 거실에 대응되는 구동 레벨을 로봇(100)의 구동 레벨로 결정할 수 있다.
[42]
그리고, 프로세서(120)는 구동 레벨 별로 기설정된 최대 허용 속도에 대한 정보 및 최대 허용 토크에 대한 정보에 기초하여, 로봇(100)의 구동 레벨에 대응되는 최대 허용 속도 및 최대 허용 토크를 판단할 수 있다.
[43]
그리고, 프로세서(120)는 최대 허용 토크에 기초하여, 로봇의(100)의 최대 허용 가속도를 산출하고, 최대 허용 가속도에 기초하여 로봇(100)의 이동 속도가 최대 허용 속도에 도달하도록 구동부(110)를 제어할 수 있다.
[44]
이에 따라, 본 개시는 해당 공간에서 신속하게 작업을 수행할 수 있을 뿐 만 아니라, 최대 허용 속도 내에서 작업을 수행하므로 안전하게 작업을 수행할 수 있다.
[45]
한편, 프로세서(120)는 기저장된 지도 정보에 기초하여 로봇(100)의 주행 방향을 변경하는 경우, 상술한 최대 허용 가속도에 기초하여 로봇(100)의 이동 속도를 감소시킬 수 있다. 이에 따라, 본 개시는 해당 공간에서 신속하게 작업을 수행하면서도 충돌 등을 방지할 수 있다.
[46]
이하 도 2 내지 도 4를 참조하여, 프로세서(120)의 동작에 대해 보다 상세히 설명한다.
[47]
도 2는 본 개시의 일 실시 예에 따른 공간별 구동 레벨에 관한 정보를 설명하기 위한 도면이다.
[48]
프로세서(120)는 로봇(100)의 작업을 수행시키기 위한 사용자 명령이 입력되면, 로봇(100)의 주변 환경 정보에 기초하여 로봇(100)의 구동 레벨을 결정할 수 있다.
[49]
여기에서, 주변 환경 정보는, 로봇(100)이 위치하는 공간에 대한 정보를 포함할 수 있다. 구체적으로, 프로세서(120)는 기저장된 지도 정보에 기초하여 로봇(100) 위치하는 공간을 판단하고, 로봇(100)이 위치하는 공간에 기초하여, 로봇(100)의 구동 레벨을 결정할 수 있다.
[50]
예를 들어, 프로세서(120)는 기저장된 지도 정보에 기초하여 로봇(100)이 위치하는 공간이 거실이라고 판단되면, 거실에 대응되는 구동 레벨을 로봇(100)의 구동 레벨로 결정할 수 있다.
[51]
이를 위해, 프로세서(120)는 기저장된 공간별 구동 레벨에 관한 정보를 이용할 수 있다.
[52]
예를 들어, 도 2를 참조하면, 로봇(100)은 거실에 대응되는 구동 레벨은 1이고, 주방에 대응되는 구동 레벨은 2이며, Room 1 및 Room 2에 대응되는 구동 레벨을 5이고, Room 3에 대응되는 구동 레벨은 3인 공간별 구동 레벨에 관한 정보를 저장하고 있을 수 있다.
[53]
그리고, 프로세서(120)는 거실에서 로봇(100)의 작업을 수행시키기 위한 사용자 명령이 입력되면, 기저장된 공간별 구동 레벨에 관한 정보에 기초하여, 거실에 대응되는 구동 레벨 1을 로봇(100)의 구동 레벨로 결정할 수 있다.
[54]
한편, 여기서는 공간별 구동 레벨에 관한 정보가 기저장된 것으로 설명하였으나, 이는 서버(미도시) 또는 스마트 폰 등의 외부 전자 장치(미도시)로부터 수신할 수도 있다. 또한, 상술한 공간별 구동 레벨에 관한 정보는 일 실시 예일 뿐, 이는 사용자 명령에 따라 다양하게 설정 또는 변경될 수 있다. 가령, 거실에 대응되는 구동 레벨은 3으로 설정될 수 있다.
[55]
또한, 여기서는 기저장된 지도 정보에 기초하여 로봇(100)이 위치하는 공간을 판단하는 실시 예를 설명하였으나 이는 일 실시 예일 뿐, 로봇(100)은 비콘 등의 외부 장치로부터 위치에 관한 정보를 수신하는 등의 다양한 방법으로 로봇(100)이 위치하는 공간을 판단할 수 있다.
[56]
또한, 여기서는 작업을 수행시키기 위한 사용자 명령이 입력되면, 주변 환경 정보에 기초하여 로봇(100)의 구동 레벨을 결정하는 것으로 설명하였으나, 이는 일 실시 예일 뿐이다. 프로세서(120)는 작업을 수행하는 동안 계속해서 주변 환경 정보를 획득하고, 주변 환경 정보가 변경된 것으로 판단되면, 변경된 주변 환경 정보에 기초하여 로봇(100)의 구동 레벨을 결정할 수 있다. 즉, 프로세서(120)는 거실에서 작업을 수행하던 상태에서, 로봇(100)의 이동에 따라 로봇(100)이 주방에 위치하는 경우, 주방에 대응되는 구동 레벨을 로봇(100)의 구동 레벨로 결정할 수 있다.
[57]
도 3은 본 개시의 일 실시 예에 따른 구동 레벨 별로 기설정된 최대 허용 토크 및 최대 허용 속도에 대한 정보를 설명하기 위한 도면이다.
[58]
프로세서(120)는 로봇(100)의 구동 레벨이 결정되면, 구동 레벨 별로 기설정된 최대 허용 토크에 대한 정보 및 최대 허용 속도에 대한 정보에 기초하여, 로봇(100)의 구동 레벨에 대응되는 최대 허용 속도 및 최대 허용 토크를 판단할 수 있다.
[59]
이를 위해, 프로세서(120)는 기저장된, 구동 레벨 별로 기설정된 최대 허용 토크에 대한 정보 및 최대 허용 속도에 대한 정보를 이용할 수 있다.
[60]
예를 들어, 도 3을 참조하면, 로봇(100)은 구동 레벨 1에 대응되는 최대 허용 토크 및 최대 허용 속도는 각각 100(N · m) 및 5(m/sec)이고, 구동 레벨 2에 대응되는 최대 허용 토크 및 최대 허용 속도는 각각 80(N · m) 및 4(m/sec)이며, 구동 레벨 3에 대응되는 최대 허용 토크 및 최대 허용 속도는 각각 60(N · m) 및 3(m/sec)이고, 구동 레벨 4에 대응되는 최대 허용 토크 및 최대 허용 속도는 각각 40(N · m) 및 2(m/sec)이며, 구동 레벨 5에 대응되는 최대 허용 토크 및 최대 허용 속도는 각각 20(N · m) 및 1(m/sec)인, 구동 레벨 별로 기설정된 최대 허용 토크에 대한 정보 및 최대 허용 속도에 대한 정보를 저장하고 있을 수 있다.
[61]
그리고, 프로세서(120)는 기저장된, 구동 레벨 별로 기설정된 최대 허용 토크에 대한 정보 및 최대 허용 속도에 대한 정보에 기초하여, 로봇(100)의 구동 레벨에 대응되는 최대 허용 토크 및 최대 허용 속도를 판단할 수 있다.
[62]
예를 들어, 거실에서 로봇(100)의 작업을 수행하기 위한 사용자 명령이 입력되는 경우, 프로세서(120)는 거실에 대응되는 구동 레벨 1을 판단하고, 구동 레벨 1에 대응되는 최대 허용 토크 100(N · m) 및 최대 허용 속도 5(m/sec)를 로봇(100)의 최대 허용 토크 및 최대 허용 속도로 판단할 수 있다.
[63]
그리고, 프로세서(120)는 최대 허용 토크에 기초하여, 로봇(100)의 최대 허용 가속도를 산출할 수 있다.
[64]
구체적으로, 프로세서(120)는 로봇(100)의 질량, 로봇(100)의 바퀴와 접촉되는 바닥면의 마찰 계수 및 로봇(100)의 바퀴의 반경에 기초하여, 최대 허용 토크에 대응되는 최대 허용 가속도를 산출할 수 있다. 이를 위해, 로봇(100)은 로봇(100)의 질량에 대한 정보 및 로봇(100)의 바퀴의 반경에 대한 정보를 기저장하고 있을 수 있다. 또한, 로봇(100)은 공간 별 바닥면의 종류에 대한 정보 및 마찰 계수에 대한 정보를 기저장하고 있을 수 있다. 또는, 로봇(100)은 센서(미도시)를 통해 바닥면을 감지하고, 바닥면 별 마찰 계수에 대한 정보에 기초하여, 로봇(100)의 바퀴와 접촉되는 바닥면의 마찰 계수를 판단할 수도 있다.
[65]
한편, 최대 허용 토크에 기초하여, 물체의 최대 허용 가속도를 산출하는 방법에는 다양한 수학식이 적용될 수 있다.
[66]
일 예로, 프로세서(120)는 하기와 같은 수학식을 통해 최대 허용 가속도를 산출할 수 있다.
[67]
[68]
(여기에서, , , , : 최대 허용 토크, : 최대 허용 가속도, : 최대 허용 속도, : 바퀴의 반경, : 바퀴 중심과 바퀴 사이의 거리, : 관성 행렬, : 코리올리-원심력, : viscous 마찰계수, 이다.)
[69]
한편, 상술한 수학식은 최대 허용 가속도를 산출하기 위한 일 실시 예에 따른 수학식일 뿐, 프로세서(120)는 로봇(100)의 질량 및 로봇(100)의 바퀴의 반경에 기초한 다양한 수학식을 통해, 최대 허용 토크에 대응되는 최대 허용 가속도를 산출할 수 있다.
[70]
또한, 상술한 수학식은 로봇(100)이 두 개의 바퀴를 통해 이동하는 경우를 상정한 것이나. 실시 예에 따라 로봇(100)는 상이한 개수의 바퀴로 구현될 수 있고, 이 경우 상술한 수학식이 달라질 수 있음은 물론이다.
[71]
이후, 프로세서(120)는 최대 허용 가속도에 기초하여, 로봇(100)의 이동 속도가 상기 최대 허용 속도에 도달하도록 구동부(110)를 제어하며, 로봇(100)이 최대 허용 속도로 이동하는 동안 작업을 수행하도록 할 수 있다.
[72]
이에 따라, 본 개시는 해당 공간에서 신속하게 작업을 수행할 수 있다 .또한, 본 개시는 최대 허용 속도 내에서 작업을 수행하므로 안전하게 작업을 수행할 수 있다.
[73]
한편, 프로세서(120)는 기저장된 지도 정보에 기초하여 로봇(100)의 주행 방향을 변경하는 경우, 상술한 최대 허용 가속도에 기초하여 로봇(100)의 이동 속도를 감소시킬 수 있다.
[74]
예를 들어, 프로세서(120)는 기저장된 지도 정보에 기초하여, 로봇(100)이 벽면과 충돌할 가능성이 있는 경우, 최대 허용 가속도에 기초하여 로봇(100)의 이동 속도를 감소시키면서 로봇(100)의 주행 방향을 변경시킬 수 있다.
[75]
이에 따라, 본 개시는 해당 공간에서 최대한의 시간 동안 최고 속도로 이동하면서 작업을 수행할 수 있다. 또한, 본 개시는 신속하게 작업을 수행하면서도 충돌 등을 방지할 수 있다
[76]
이에 따른, 로봇(100)의 이동 속도를 도시한 도면은 도 4와 같다. 도 4를 참조하면, 본 개시는 최대 허용 가속도로 최대 속도에 도달한 뒤, 최대 속도로 작업을 수행하고, 이후 장애물 등과의 충돌 가능성이 있을 경우, 최대 허용 가속도로 이동 속도를 감소시킴을 알 수 있다.
[77]
한편, 이상에서는 주변 환경 정보에 기초하여 로봇(100)의 구동 레벨을 결정하는 실시 예를 설명하였다. 그러나, 본 개시는 주변 환경 정보 외 다양한 정보를 더 고려하여 로봇의 구동 레벨을 결정할 수 있다. 이하, 도 5 및 도 6을 참조하여 설명한다.
[78]
도 5는 본 개시의 일 실시 예에 따른 작업의 종류별 구동 레벨에 관한 정보를 설명하기 위한 도면이다.
[79]
프로세서(120)는 작업의 종류별 구동 레벨에 관한 정보에 기초하여, 로봇(100)이 수행 중인 작업에 대응되는 구동 레벨을 판단할 수 있다.
[80]
이를 위해, 프로세서(120)는 기저장된, 작업의 종류별 구동 레벨에 관한 정보를 이용할 수 있다.
[81]
예를 들어, 도 5를 참조하면, 로봇(100)은 청소 작업에 대응되는 구동 레벨은 3이고, 물품 이동에 대응되는 구동 레벨은 2이며, 사용자 이동에 대응되는 구동 레벨을 5이고, 경비에 대응되는 구동 레벨은 2인 작업의 종류별 구동 레벨에 관한 정보를 저장하고 있을 수 있다.
[82]
그리고, 프로세서(120)는 로봇(100)의 작업을 수행시키기 위한 사용자 명령이 입력되면, 작업의 종류별 구동 레벨에 관한 정보에 기초하여, 로봇(100)의 작업에 대응되는 구동 레벨을 판단할 수 있다.
[83]
예를 들어, 프로세서(120)는 로봇(100)의 청소 작업을 수행하기 위한 사용자 명령이 입력되면, 작업의 종류별 구동 레벨에 관한 정보에 기초하여, 청소 작업에 대응되는 구동 레벨인 3을 로봇(100)의 구동 레벨로 판단할 수 있다.
[84]
그리고, 프로세서(120)는 로봇(100)이 위치하는 공간에 대응되는 구동 레벨 및 로봇(100)이 수행 중인 작업에 대응되는 구동 레벨 중에서 상대적으로 높은 구동 레벨을 로봇(100)의 구동 레벨로 결정할 수 있다.
[85]
예를 들어, 프로세서(120)는 거실에서 로봇(100)의 청소 작업을 수행하기 위한 사용자 명령이 입력되는 경우, 거실에 대응되는 구동 레벨 1 및 청소 작업에 대응되는 구동 레벨 3 중에서 높은 구동 레벨인 3을 로봇(100)의 구동 레벨로 결정할 수 있다.
[86]
이후, 프로세서(120)는 전술한 바와 같이, 구동 레벨 별로 기설정된 최대 허용 토크에 대한 정보 및 최대 허용 속도에 대한 정보에 기초하여, 로봇(100)의 최대 허용 가속도를 산출하고, 최대 허용 가속도에 기초하여 로봇(100)의 작업을 수행할 수 있다.
[87]
이와 같이, 로봇(100)이 위치하는 공간과 함께 로봇(100)이 수행중인 작업을 고려하여 로봇(100)의 구동 레벨을 결정함으로써, 본 개시는 작업 별로 허용된 최대 속도 내에서 작업을 효율적이고 안전하게 수행할 수 있다.
[88]
도 6은 본 개시의 일 실시 예에 따른 사용자 별 구동 레벨에 관한 정보를 설명하기 위한 도면이다.
[89]
프로세서(120)는 사용자 별 구동 레벨에 관한 정보에 기초하여, 사용자에 대응되는 구동 레벨을 판단할 수 있다.
[90]
이를 위해, 프로세서(120)는 기저장된, 사용자 별 구동 레벨에 관한 정보를 이용할 수 있다.
[91]
예를 들어, 도 6을 참조하면, 로봇(100)은 사용자 A에 대응되는 구동 레벨은 1이고, 사용자 B에 대응되는 구동 레벨은 2이며, 사용자 C에 대응되는 구동 레벨을 5이고, 사용자 D에 대응되는 구동 레벨은 3인 사용자 별 구동 레벨에 관한 정보를 저장하고 있을 수 있다.
[92]
그리고, 프로세서(120)는 로봇(100)의 작업을 수행시키기 위한 사용자 명령이 입력되면, 사용자 별 구동 레벨에 관한 정보에 기초하여, 사용자에 대응되는 구동 레벨을 판단할 수 있다.
[93]
이를 위해, 프로세서(120)는 로봇(100) 주변의 사용자를 식별할 수 있다.
[94]
구체적으로, 프로세서(120)는 카메라를 통해 촬영된 영상을 분석하여, 로봇(100) 주변의 사용자를 식별할 수 있다. 여기에서, 카메라는 로봇(100) 전방에 포함될 수 있음은 물론, 로봇(100) 측면 및 후방에 포함될 수 있다.
[95]
한편, 영상 분석 방법에는 다양한 알고리즘이 적용될 수 있다. 예를 들어, 프로세서(100)는 카메라를 통해 촬영된 영상에 오브젝트 인식 알고리즘을 적용하여 사용자의 얼굴을 인식하고, 기저장된 복수의 사용자의 얼굴 중에서 로봇(100) 주변에 위치하는 사용자를 식별할 수 있다. 또는, 프로세서(120)는 카메라를 통해 촬영된 영상에 CNN(Convolution Neural Network)을 기반으로 하는 인공 지능 모델을 적용하여 로봇(100) 주변에 위치하는 사용자를 식별할 수도 있다.
[96]
한편, 프로세서(120)는 마이크를 통해 수신된 사용자 음성에 기초하여, 로봇(100)의 주변에 위치하는 사용자를 식별할 수도 있다.
[97]
구체적으로, 프로세서(120)는 마이크를 통해 사용자 음성이 수신되면, 사용자 음성의 에너지, 주파수 대역 및/또는 사용자 음성의 울림 값 (RT, reverberation time)과 같은 사용자 음성의 특성을 판단할 수 있다. 그리고, 프로세서(120)는 기저장된 사용자 별 사용자 음성의 특성과 마이크를 통해 수신된 사용자 음성의 특성을 비교함으로써, 로봇(100) 주변에 위치하는 사용자를 식별할 수 있다.
[98]
그리고, 프로세서(120)는 사용자 별 구동 레벨에 관한 정보에 기초하여, 식별된 사용자에 대응되는 구동 레벨을 판단할 수 있다.
[99]
예를 들어, 프로세서(120)는 카메라를 통해 촬영된 영상 또는 마이크를 통해 수신된 사용자 음성에 기초하여, 로봇(100) 주변에 사용자 A가 위치하는 것으로 판단되면, 사용자 A에 대응되는 구동 레벨인 1을 사용자에 대응되는 구동 레벨로 판단할 수 있다.
[100]
그리고, 프로세서(120)는 로봇(100)이 위치하는 공간에 대응되는 구동 레벨 및 식별된 사용자에 대응되는 구동 레벨 중에서 상대적으로 높은 구동 레벨을 로봇(100)의 구동 레벨로 결정할 수 있다.
[101]
예를 들어, 프로세서(120)는 주방에서 작업을 수행 중인 로봇(100)의 주변에서 사용자 A가 식별된 경우, 주방에 대응되는 구동 레벨 2 및 사용자 A에 대응되는 구동 레벨 1 중에서 높은 구동 레벨인 2를 로봇(100)의 구동 레벨로 결정할 수 있다.
[102]
이후, 프로세서(120)는 전술한 바와 같이, 구동 레벨 별로 기설정된 최대 허용 토크에 대한 정보 및 최대 허용 속도에 대한 정보에 기초하여, 로봇(100)의 최대 허용 가속도를 산출하고, 최대 허용 가속도에 기초하여 로봇(100)의 작업을 수행할 수 있다.
[103]
이와 같이, 로봇(100)이 위치하는 공간과 함께 로봇(100) 주변의 사용자를 고려하여 로봇(100)의 구동 레벨을 결정함으로써, 본 개시는 특히 로봇(100) 주변에 노인 또는 아동이 위치하는 경우에 있어서, 안전하게 작업을 수행할 수 있다.
[104]
한편, 프로세서(120)는 식별된 사용자의 위치에 따라 로봇(100)의 구동 레벨을 달리 결정할 수 있다.
[105]
구체적으로, 프로세서(120)는 식별된 사용자가 로봇(100)으로부터 기설정된 범위 내 위치하는 경우, 로봇(100)이 위치하는 공간에 대응되는 구동 레벨 및 식별된 사용자에 대응되는 구동 레벨 중에서, 상대적으로 높은 구동 레벨을 로봇(100)의 구동 레벨로 결정하고, 식별된 사용자가 로봇(100)으로부터 기설정된 범위 밖에 위치하는 경우, 로봇(100)이 위치하는 공간에 대응되는 구동 레벨을 로봇(100)의 구동 레벨로 결정할 수 있다. 여기에서, 기설정된 범위는, 로봇(100)으로부터 1m 등 사용자 명령에 따라 다양하게 설정 또는 변경될 수 있다.
[106]
예를 들어, 프로세서(120)는 식별된 사용자가 로봇(100)으로부터 1m 범위 내에 위치하는 경우, 로봇(100)이 위치하는 공간에 대응되는 구동 레벨 및 식별된 사용자에 대응되는 구동 레벨 중에서, 상대적으로 높은 구동 레벨을 로봇(100)의 구동 레벨로 결정하고, 식별된 사용자가 로봇(100)으로부터 1m 범위 밖에 위치하는 경우, 로봇(100)이 위치하는 공간에 대응되는 구동 레벨을 로봇(100)의 구동 레벨로 결정할 수 있다.
[107]
이는, 로봇(100)과 멀리 떨어진 곳에 사용자가 위치하여, 로봇(100)과 사용자가 충돌 가능성이 낮음에도, 로봇(100)이 느린 속도로 작업을 수행하는 경우를 방지하기 위함이다. 이에 따라, 로봇(100)은 효율적으로 작업을 수행할 수 있다.
[108]
도 7은 본 개시의 일 실시 예에 따른 로봇의 이동 궤적을 설명하기 위한 도면이다.
[109]
전술한 바와 같이, 프로세서(120)는 기저장된 지도 정보에 기초하여, 로봇(100)의 주행 방향을 변경하는 경우, 최대 허용 가속도에 기초하여 로봇(100)의 이동 속도를 감소시키도록 구동부(110)를 제어할 수 있다.
[110]
또는, 프로세서(120)는 로봇(100) 주변에서 장애물 및 사용자 중 적어도 하나가 감지되는 경우 로봇(100)의 주행 방향을 변경하고, 이 때 최대 허용 가속도에 기초하여 로봇(100)의 이동 속도를 감소시키도록 구동부(110)를 제어할 수 있다.
[111]
한편, 프로세서(120)는 로봇(100)이 주행 방향을 변경하는 동안, 기설정된 궤적을 따라 로봇(100)이 이동하도록 구동부(110)를 제어할 수 있다.
[112]
구체적으로, 프로세서(120)는 로봇(100)이 주행 방향을 변경하는 동안 베지어(Bezier) 곡선에 따라 이동하도록 구동부(110)를 제어할 수 있다. 여기에서, 베지어 곡선은 시작 지점 및 종료 지점 이외에 1개 이상의 추가 지점을 더 고려하여, 시작 지점부터 종료 지점까지를 연결한 곡선을 의미한다.
[113]
일 예로, 프로세서(120)는 로봇(100)이 주행 방향을 변경하는 동안, 5차 베지어 곡선에 따라 로봇(100)이 이동하도록 구동부(110)를 제어할 수 있다. 5차 베지어 곡선에 따른 궤적의 경우, 하기와 같은 수학식에 기초하여 결정될 수 있다.
[114]
[115]
여기에서, 시작 지점(P0)은 로봇(100)이 주행 방향을 변경하기 시작한 지점을 의미하고, 종료 지점(P5)은 로봇(100)이 직선 방향으로 주행을 시작한 지점을 의미한다. 그리고, 추가 지점(P1 내지 P4)는 시작 지점 및 종료 지점간의 거리, 로봇(100)의 바퀴의 반경 등에 기초하여 기설정되어 있을 수 있음은 물론, 사용자 명령에 따라 다양하게 설정 또는 변경될 수 있다.
[116]
한편, 5차 베지어 곡선은 일 실시 예일 뿐, 본 개시는 3차 베지어 곡선 등 다양한 차수의 베지어 곡선을 통해 로봇(100)을 이동시킬 수 있음은 물론이다.
[117]
이에 따라, 로봇(100)은 도 7과 같은 궤적을 통해 이동할 수 있다. 이에 따라, 본 개시는 변곡점에서 단순 원형 또는 직선 방향으로 로봇(100)의 주행 방향을 변경하는 경우에 비하여 로봇(100)의 진동을 줄이고, 특히 순간적으로 가속도가 무한대가 되는 경우를 방지하여 모터의 고장을 예방할 수 있다.
[118]
도 8은 본 개시의 일 실시 예에 따른 로봇을 설명하기 위한 상세 블록도이다.
[119]
도 8을 참조하면, 본 개시의 일 실시 예에 따른 로봇(100)은 구동부(110), 저장부(130), 통신부(140), 디스플레이(150), 감지부(160), 인터페이스(170) 및 프로세서(120)를 포함할 수 있다. 이하, 상술한 내용과 중복되는 부분은 생략하거나 축약하여 설명한다.
[120]
저장부(130)는 로봇(100)의 동작에 필요한 각종 프로그램 및 데이터를 저장할 수 있다. 저장부(130)는 비휘발성 메모리, 휘발성 메모리, 플래시메모리(flash-memory), 하드디스크 드라이브(HDD) 또는 솔리드 스테이트 드라이브(SSD) 등으로 구현될 수 있다.
[121]
저장부(130)는 공간별 구동 레벨에 관한 정보, 작업의 종류별 구동 레벨에 관한 정보 또는 사용자 별 구동 레벨에 관한 정보를 저장할 수 있다. 또한, 저장부(130)는 사용자의 얼굴에 관한 정보 및 사용자 음성의 특성에 관한 정보를 저장할 수 있다. 또한, 저장부(130)는 구동 레벨 별로 기설정된 최대 허용 토크에 대한 정보 및 최대 허용 속도에 대한 정보를 저장할 수 있다.
[122]
저장부(130)는 구동부(110)의 구동에 따라 생성된 지도 정보를 저장할 수 있다. 여기에서, 지도 정보는 로봇(100) 의 이동 경로를 나타내는 정보로, 이미지 형태일 수 있으며, 좌표 형태의 궤적 데이터일 수도 있다.
[123]
또한, 저장부(130)는 통신부(140)를 통하여 수신한 실내 공간의 평면도를 저장할 수 있다. 여기서, 평면도는 공간 별 위치 정보 및 면적 정보를 포함할 수 있다.
[124]
통신부(140)는 외부 장치와 통신을 수행하여 다양한 데이터를 송수신할 수 있다. 예를 들어, 통신부(140)는 BT(Bluetooth), BLE(Bluetooth Low Energy), WI-FI(Wireless Fidelity), Zigbee 등과 같은 다양한 통신 방식 등을 통해 외부 장치와 통신을 수행할 수 있다.
[125]
그리고 통신부(140)는 외부 장치로부터 작업의 수행을 위한 사용자 명령을 수신할 수 있다. 여기에서, 작업은 공기 정화 작업, 청소 작업 또는 물품 이동 등과 같은 다양한 작업이 될 수 있다. 한편, 외부 장치는 스마트 폰 등이 될 수 있으나 반드시 이에 한정되는 것은 아니다.
[126]
디스플레이(150)는 다양한 화면을 표시할 수 있다. 일 예로, 디스플레이(150)는 로봇(100)이 제공하는 다양한 기능과 관련된 정보 및/또는 사용자와 인터랙션 하기 위한 유저 인터페이스(User Interface)를 표시할 수 있다. 또한, 디스플레이(150)는 현재 수행 중인 작업의 종류 또는 작업의 진행 정도에 관한 정보를 표시할 수 있다.
[127]
이와 같은, 디스플레이(150)는 LCD(Liquid Crystal Display), PDP(Plasma Display Panel), LED(light emitting diode) 또는 OLED(organic light emitting diode) 등과 같은 다양한 형태로 구현될 수 있다.
[128]
또한, 디스플레이(150)는 터치 감지부와 결합되어 터치 스크린으로 구현될 수도 있다.
[129]
감지부(160)는 로봇 (100) 주변의 장애물을 감지할 수 있다. 구체적으로, 감지부(160)는 초음파 센서(supersonic sensor), 적외선 센서(Infrared sensor), RF 센서 등을 이용하여 로봇(100) 주변의 장애물의 위치 및 장애물과의 거리를 감지할 수 있다. 또한, 감지부(160)는 장애물과의 충돌을 통하여 장애물을 감지하는 충돌 센서를 더 포함할 수 있다.
[130]
인터페이스(170)는 로봇 (100)이 지원하는 각종 기능을 사용자가 설정 또는 선택할 수 있는 다수의 기능 키를 구비할 수 있다. 이러한 인터페이스(170)는 복수의 버튼 등과 같은 장치로 구현될 수 있으며, 디스플레이(150)의 기능을 동시에 수행할 수 있는 터치 스크린으로 구현될 수도 있다.
[131]
인터페이스(170)는 로봇의(100)의 전원 제어를 위한 명령, 작업을 선택하기 위한 명령, 작업 영역을 선택하기 위한 명령 명령 등을 입력 받을 수 있다.
[132]
그 외, 본 개시의 일 실시 예에 따른 로봇(100)은 주변의 사용자를 촬영하기 위한 카메라(미도시) 및 사용자 음성을 수신하기 위한 마이크(미도시)를 더 포함할 수 있다.
[133]
도 9는 본 개시의 일 실시 예에 따른 로봇의 제어 방법을 설명하기 위한 순서도이다.
[134]
본 개시의 일 실시 예에 따른 로봇은, 로봇의 작업의 수행을 위한 사용자 명령이 입력되면, 로봇의 주변 환경 정보에 기초하여 로봇의 구동 레벨을 결정(S910)할 수 있다. 여기에서, 주변 환경 정보는 로봇이 위치하는 공간에 대한 정보로서, 로봇은 기저장된 지도 정보에 기초하여 로봇이 위치하는 공간을 판단하고, 해당 공간에 대응되는 구동 레벨을 판단할 수 있다.
[135]
그리고, 로봇은 구동 레벨 별로 기설정된 최대 허용 속도에 대한 정보 및 최대 허용 토크에 대한 정보에 기초하여, 로봇의 구동 레벨에 대응되는 최대 허용 속도 및 최대 허용 토크를 판단(S920)할 수 있다. 이를 위해, 로봇은 기저장된, 구동 레벨 별로 기설정된 최대 허용 토크에 대한 정보 및 최대 허용 속도에 대한 정보를 이용할 수 있다.
[136]
그리고, 로봇은 최대 허용 토크에 기초하여 로봇의 최대 허용 가속도를 산출(S930)할 수 있다. 구체적으로, 로봇은 로봇의 질량, 로봇의 바퀴와 접촉되는 바닥면의 마찰 계수 및 로봇의 바퀴의 반경에 기초하여, 최대 허용 토크에 대응되는 최대 허용 가속도를 산출할 수 있다.
[137]
그리고, 로봇은 최대 허용 가속도에 기초하여, 로봇의 이동 속도가 최대 허용 속도에 도달하도록 로봇을 제어(S940)하고, 최대 허용 속도로 이동하는 동안 작업을 수행하도록 로봇을 제어(S950)할 수 있다.
[138]
이에 따라, 본 개시는 해당 공간에서 신속하게 작업을 수행할 수 있다 .또한, 본 개시는 최대 허용 속도 내에서 작업을 수행하므로 안전하게 작업을 수행할 수 있다.
[139]
한편, 상술한 본 발명의 다양한 실시 예들에 따른 방법들은, 기존 로봇에 설치 가능한 소프트웨어 또는 어플리케이션 형태로 구현될 수 있다.
[140]
또한, 상술한 본 발명의 다양한 실시 예들에 따른 방법들은, 기존 로봇에 대한 소프트웨어 업그레이드, 또는 하드웨어 업그레이드만으로도 구현될 수 있다.
[141]
한편, 본 발명에 따른 로봇의 제어 방법을 순차적으로 수행하는 프로그램이 저장된 비일시적 판독 가능 매체(non-transitory computer readable medium)가 제공될 수 있다.
[142]
비일시적 판독 가능 매체란 레지스터, 캐시, 메모리 등과 같이 짧은 순간 동안 데이터를 저장하는 매체가 아니라 반영구적으로 데이터를 저장하며, 기기에 의해 판독(reading)이 가능한 매체를 의미한다. 구체적으로는, 상술한 다양한 어플리케이션 또는 프로그램들은 CD, DVD, 하드 디스크, 블루레이 디스크, USB, 메모리카드, ROM 등과 같은 비일시적 판독 가능 매체에 저장되어 제공될 수 있다.
[143]
또한, 이상에서는 본 발명의 바람직한 실시 예에 대하여 도시하고 설명하였지만, 본 발명은 상술한 특정의 실시 예에 한정되지 아니하며, 청구범위에서 청구하는 본 발명의 요지를 벗어남이 없이 당해 발명이 속하는 기술분야에서 통상의 지식을 가진 자에 의해 다양한 변형실시가 가능한 것은 물론이고, 이러한 변형실시들은 본 발명의 기술적 사상이나 전망으로부터 개별적으로 이해되어져서는 안될 것이다.

산업상 이용가능성

[144]
-
[145]
-

청구범위

[청구항 1]
로봇에 있어서, 구동부; 및 상기 로봇의 작업의 수행을 위한 사용자 명령이 입력되면, 상기 로봇의 주변 환경 정보에 기초하여 상기 로봇의 구동 레벨을 결정하고, 구동 레벨 별로 기설정된 최대 허용 토크에 대한 정보 및 최대 허용 속도에 대한 정보에 기초하여, 상기 로봇의 구동 레벨에 대응되는 최대 허용 토크 및 최대 허용 속도를 판단하고, 상기 최대 허용 토크에 기초하여 상기 로봇의 최대 허용 가속도를 산출하고, 상기 최대 허용 가속도에 기초하여 상기 로봇의 이동 속도가 상기 최대 허용 속도에 도달하도록 상기 구동부를 제어하며, 상기 로봇이 상기 최대 허용 속도로 이동하는 동안 상기 작업을 수행하도록 상기 로봇을 제어하는 프로세서;를 포함하는, 로봇.
[청구항 2]
제1항에 있어서, 상기 로봇의 주변 환경 정보는, 상기 로봇이 위치하는 공간에 대한 정보를 포함하고, 상기 프로세서는, 공간별 구동 레벨에 관한 정보에 기초하여, 상기 로봇이 위치하는 공간에 대응되는 구동 레벨을 판단하고, 상기 판단된 구동 레벨을 상기 로봇의 구동 레벨로 결정하는, 로봇.
[청구항 3]
제2항에 있어서, 상기 프로세서는, 작업의 종류별 구동 레벨에 관한 정보에 기초하여, 상기 로봇이 수행 중인 작업에 대응되는 구동 레벨을 판단하고, 상기 로봇이 위치하는 공간에 대응되는 구동 레벨 및 상기 로봇이 수행 중인 작업에 대응되는 구동 레벨 중에서 상대적으로 높은 구동 레벨을 상기 로봇의 구동 레벨로 결정하는, 로봇.
[청구항 4]
제2항에 있어서, 상기 프로세서는, 카메라를 통해 촬영된 영상 또는 마이크를 통해 수신된 사용자 음성에 기초하여, 상기 로봇의 주변에 위치하는 사용자를 식별하고, 사용자 별 구동 레벨에 관한 정보에 기초하여, 상기 식별된 사용자에 대응되는 구동 레벨을 판단하고, 상기 로봇이 위치하는 공간에 대응되는 구동 레벨 및 상기 식별된 사용자에 대응되는 구동 레벨 중에서, 상대적으로 높은 구동 레벨을 상기 로봇의 구동 레벨로 결정하는, 로봇.
[청구항 5]
제4항에 있어서, 상기 프로세서는, 상기 식별된 사용자가 상기 로봇으로부터 기설정된 범위 내 위치하는 경우, 상기 로봇이 위치하는 공간에 대응되는 구동 레벨 및 상기 식별된 사용자에 대응되는 구동 레벨 중에서, 상대적으로 높은 구동 레벨을 상기 로봇의 구동 레벨로 결정하고, 상기 식별된 사용자가 상기 로봇으로부터 기설정된 범위 밖에 위치하는 경우, 상기 로봇이 위치하는 공간에 대응되는 구동 레벨을 상기 로봇의 구동 레벨로 결정하는, 로봇.
[청구항 6]
제1항에 있어서, 상기 프로세서는, 기저장된 지도 정보에 기초하여 상기 로봇의 주행 방향을 변경하거나, 상기 로봇 주변에서 장애물 및 사용자 중 적어도 하나가 감지되는 경우 상기 주행 방향을 변경하고, 상기 주행 방향을 변경하는 동안 상기 최대 허용 가속도에 기초하여 상기 로봇의 이동 속도를 감소시키도록 상기 구동부를 제어하는, 로봇.
[청구항 7]
제6항에 있어서, 상기 프로세서는, 상기 로봇이 상기 주행 방향을 변경하는 동안 베지어(Bezier) 곡선에 따라 상기 로봇이 이동하도록 상기 구동부를 제어하는, 로봇.
[청구항 8]
로봇의 제어 방법에 있어서, 상기 로봇의 작업의 수행을 위한 사용자 명령이 입력되면, 상기 로봇의 주변 환경 정보에 기초하여 상기 로봇의 구동 레벨을 결정하는 단계; 구동 레벨 별로 기설정된 최대 허용 토크에 대한 정보 및 최대 허용 속도에 대한 정보에 기초하여, 상기 로봇의 구동 레벨에 대응되는 최대 허용 토크 및 최대 허용 속도를 판단하는 단계; 상기 최대 허용 토크에 기초하여 상기 로봇의 최대 허용 가속도를 산출하는 단계; 상기 최대 허용 가속도에 기초하여 상기 로봇의 이동 속도가 상기 최대 허용 속도에 도달하도록 상기 로봇을 제어하는 단계; 및 상기 로봇이 상기 최대 허용 속도로 이동하는 동안 상기 작업을 수행하도록 상기 로봇을 제어하는 단계;를 포함하는, 로봇의 제어 방법.
[청구항 9]
제8항에 있어서, 상기 로봇의 주변 환경 정보는, 상기 로봇이 위치하는 공간에 대한 정보를 포함하고, 상기 구동 레벨을 결정하는 단계는, 공간별 구동 레벨에 관한 정보에 기초하여, 상기 로봇이 위치하는 공간에 대응되는 구동 레벨을 판단하고, 상기 판단된 구동 레벨을 상기 로봇의 구동 레벨로 결정하는, 로봇의 제어 방법.
[청구항 10]
제9항에 있어서, 상기 구동 레벨을 결정하는 단계는, 작업의 종류별 구동 레벨에 관한 정보에 기초하여, 상기 로봇이 수행 중인 작업에 대응되는 구동 레벨을 판단하고, 상기 로봇이 위치하는 공간에 대응되는 구동 레벨 및 상기 로봇이 수행 중인 작업에 대응되는 구동 레벨 중에서 상대적으로 높은 구동 레벨을 상기 로봇의 구동 레벨로 결정하는, 로봇의 제어 방법.
[청구항 11]
제9항에 있어서, 카메라를 통해 촬영된 영상 또는 마이크를 통해 수신된 사용자 음성에 기초하여, 상기 로봇의 주변에 위치하는 사용자를 식별하는 단계;를 더 포함하고, 상기 구동 레벨을 결정하는 단계는, 사용자 별 구동 레벨에 관한 정보에 기초하여, 상기 식별된 사용자에 대응되는 구동 레벨을 판단하고, 상기 로봇이 위치하는 공간에 대응되는 구동 레벨 및 상기 식별된 사용자에 대응되는 구동 레벨 중에서, 상대적으로 높은 구동 레벨을 상기 로봇의 구동 레벨로 결정하는, 로봇의 제어 방법.
[청구항 12]
제11항에 있어서, 상기 구동 레벨을 결정하는 단계는, 상기 식별된 사용자가 상기 로봇으로부터 기설정된 범위 내 위치하는 경우, 상기 로봇이 위치하는 공간에 대응되는 구동 레벨 및 상기 식별된 사용자에 대응되는 구동 레벨 중에서, 상대적으로 높은 구동 레벨을 상기 로봇의 구동 레벨로 결정하고, 상기 식별된 사용자가 상기 로봇으로부터 기설정된 범위 밖에 위치하는 경우, 상기 로봇이 위치하는 공간에 대응되는 구동 레벨을 상기 로봇의 구동 레벨로 결정하는, 로봇의 제어 방법.
[청구항 13]
제8항에 있어서, 기저장된 지도 정보에 기초하여 상기 로봇의 주행 방향을 변경하거나, 상기 로봇 주변에서 장애물 및 사용자 중 적어도 하나가 감지되는 경우 상기 주행 방향을 변경하고, 상기 주행 방향을 변경하는 동안 상기 최대 허용 가속도에 기초하여 상기 로봇의 이동 속도를 감소시키는 단계;를 더 포함하는, 로봇의 제어 방법.
[청구항 14]
제13항에 있어서, 상기 로봇이 상기 주행 방향을 변경하는 동안 베지어(Bezier) 곡선에 따라 상기 로봇이 이동하도록 제어하는 단계;를 더 포함하는, 로봇의 제어 방법.

도면

[도1]

[도2]

[도3]

[도4]

[도5]

[도6]

[도7]

[도8]

[도9]