KR20200094831A - 로봇 및 그 제어 방법 - Google Patents

로봇 및 그 제어 방법 Download PDF

Info

Publication number
KR20200094831A
KR20200094831A KR1020190008025A KR20190008025A KR20200094831A KR 20200094831 A KR20200094831 A KR 20200094831A KR 1020190008025 A KR1020190008025 A KR 1020190008025A KR 20190008025 A KR20190008025 A KR 20190008025A KR 20200094831 A KR20200094831 A KR 20200094831A
Authority
KR
South Korea
Prior art keywords
robot
driving level
maximum allowable
driving
information
Prior art date
Application number
KR1020190008025A
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 KR1020190008025A priority Critical patent/KR20200094831A/ko
Priority to PCT/KR2020/000227 priority patent/WO2020153628A1/ko
Priority to US17/424,247 priority patent/US11938637B2/en
Publication of KR20200094831A publication Critical patent/KR20200094831A/ko

Links

Images

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course or altitude of land, water, air, or space vehicles, e.g. automatic pilot
    • G05D1/02Control of position or course in two dimensions
    • G05D1/021Control of position or course in two dimensions specially adapted to land vehicles
    • G05D1/0212Control of position or course in two dimensions specially adapted to land vehicles with means for defining a desired trajectory
    • G05D1/0223Control of position or course in two dimensions specially adapted to land vehicles with means for defining a desired trajectory involving speed control of the vehicle
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J11/00Manipulators not otherwise provided for
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1656Programme controls characterised by programming, planning systems for manipulators
    • B25J9/1664Programme controls characterised by programming, planning systems for manipulators characterised by motion, path, trajectory planning
    • B25J9/1666Avoiding collision or forbidden zones
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J13/00Controls for manipulators
    • B25J13/003Controls for manipulators by means of an audio-responsive input
    • 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
    • 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/026Acoustical sensing devices
    • 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/1602Programme controls characterised by the control system, structure, architecture
    • B25J9/161Hardware, e.g. neural networks, fuzzy logic, interfaces, processor
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1615Programme controls characterised by special kind of manipulator, e.g. planar, scara, gantry, cantilever, space, closed chain, passive/active joints and tendon driven manipulators
    • B25J9/162Mobile manipulator, movable base with manipulator arm mounted on it
    • 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/1633Programme controls characterised by the control loop compliant, force, torque control, e.g. combined with position control
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/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/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

Abstract

로봇이 개시된다. 본 로봇은 구동부 및 로봇의 작업의 수행을 위한 사용자 명령이 입력되면, 로봇의 주변 환경 정보에 기초하여 로봇의 구동 레벨을 결정하고, 구동 레벨 별로 기설정된 최대 허용 토크에 대한 정보 및 최대 허용 속도에 대한 정보에 기초하여, 로봇의 구동 레벨에 대응되는 최대 허용 토크 및 최대 허용 속도를 판단하고, 최대 허용 토크에 기초하여 로봇의 최대 허용 가속도를 산출하고, 최대 허용 가속도에 기초하여 로봇의 이동 속도가 최대 허용 속도에 도달하도록 구동부를 제어하며, 로봇이 최대 허용 속도로 이동하는 동안 작업을 수행하도록 로봇을 제어하는 프로세서를 포함한다.

Description

로봇 및 그 제어 방법{ROBOT AND METHOD FOR CONTROLLING THEREOF}
본 발명은 로봇 및 그 제어 방법에 관한 것으로, 더욱 상세하게는 이동 속도를 변경하는 로봇 및 그 제어 방법에 관한 것이다.
전자 기술의 발달로 다양한 로봇이 개발되고 있다. 로봇은 각종 산업 분야, 의료 분야, 우주 항공 분야뿐만 아니라, 일반 가정집에도 활용되고 있다.
특히, 최근에는 사람을 대신해 물품을 분류하고, 목적지까지 물품을 운반하는 자동 경로 차량(Automated Guided Vehicle) 및 가정 내 실내 공간을 스스로 주행하면서 청소를 주행하는 로봇 청소기 등이 개발되고 있다.
한편, 이와 같은 로봇은 일정한 속도로 주행하면서 작업을 수행하는 것이 일반적이다. 그러나, 로봇이 빠르게 이동해도 무관한 공간에서 기설정된 속도로 작업을 수행하는 것은 작업의 효율을 감소시킬 수 있다. 또한, 로봇이 느리게 이동해야 하는 공간에서 그보다 빠르게 설정된 속도로 작업을 수행하는 것은 충돌 등의 위험성이 있다.
본 개시는 상술한 문제점을 해결하기 위해 안출된 것으로서, 본 개시는 주변 환경에 기초하여 이동 속도를 스스로 제어하는 로봇 및 그 제어 방법을 제공함에 있다.
상기 목적을 달성하기 위한 본 개시의 일 실시 예에 따른 로봇은 구동부 및 상기 로봇의 작업의 수행을 위한 사용자 명령이 입력되면, 상기 로봇의 주변 환경 정보에 기초하여 상기 로봇의 구동 레벨을 결정하고, 구동 레벨 별로 기설정된 최대 허용 토크에 대한 정보 및 최대 허용 속도에 대한 정보에 기초하여, 상기 로봇의 구동 레벨에 대응되는 최대 허용 토크 및 최대 허용 속도를 판단하고, 상기 최대 허용 토크에 기초하여 상기 로봇의 최대 허용 가속도를 산출하고, 상기 최대 허용 가속도에 기초하여 상기 로봇의 이동 속도가 상기 최대 허용 속도에 도달하도록 상기 구동부를 제어하며, 상기 로봇이 상기 최대 허용 속도로 이동하는 동안 상기 작업을 수행하도록 상기 로봇을 제어하는 프로세서를 포함한다.
여기에서, 상기 로봇의 주변 환경 정보는, 상기 로봇이 위치하는 공간에 대한 정보를 포함하고, 상기 프로세서는, 공간별 구동 레벨에 관한 정보에 기초하여, 상기 로봇이 위치하는 공간에 대응되는 구동 레벨을 판단하고, 상기 판단된 구동 레벨을 상기 로봇의 구동 레벨로 결정할 수 있다.
그리고, 상기 프로세서는, 작업의 종류별 구동 레벨에 관한 정보에 기초하여, 상기 로봇이 수행 중인 작업에 대응되는 구동 레벨을 판단하고, 상기 로봇이 위치하는 공간에 대응되는 구동 레벨 및 상기 로봇이 수행 중인 작업에 대응되는 구동 레벨 중에서 상대적으로 높은 구동 레벨을 상기 로봇의 구동 레벨로 결정할 수 있다.
그리고, 상기 프로세서는, 카메라를 통해 촬영된 영상 또는 마이크를 통해 수신된 사용자 음성에 기초하여, 상기 로봇의 주변에 위치하는 사용자를 식별하고, 사용자 별 구동 레벨에 관한 정보에 기초하여, 상기 식별된 사용자에 대응되는 구동 레벨을 판단하고, 상기 로봇이 위치하는 공간에 대응되는 구동 레벨 및 상기 식별된 사용자에 대응되는 구동 레벨 중에서, 상대적으로 높은 구동 레벨을 상기 로봇의 구동 레벨로 결정할 수 있다.
그리고, 상기 프로세서는, 상기 식별된 사용자가 상기 로봇으로부터 기설정된 범위 내 위치하는 경우, 상기 로봇이 위치하는 공간에 대응되는 구동 레벨 및 상기 식별된 사용자에 대응되는 구동 레벨 중에서, 상대적으로 높은 구동 레벨을 상기 로봇의 구동 레벨로 결정하고, 상기 식별된 사용자가 상기 로봇으로부터 기설정된 범위 밖에 위치하는 경우, 상기 로봇이 위치하는 공간에 대응되는 구동 레벨을 상기 로봇의 구동 레벨로 결정할 수 있다.
그리고, 상기 프로세서는, 기저장된 지도 정보에 기초하여 상기 로봇의 주행 방향을 변경하거나, 상기 로봇 주변에서 장애물 및 사용자 중 적어도 하나가 감지되는 경우 상기 주행 방향을 변경하고, 상기 주행 방향을 변경하는 동안 상기 최대 허용 가속도에 기초하여 상기 로봇의 이동 속도를 감소시키도록 상기 구동부를 제어할 수 있다.
그리고, 상기 프로세서는, 상기 로봇이 상기 주행 방향을 변경하는 동안 베지어(Bezier) 곡선에 따라 상기 로봇이 이동하도록 상기 구동부를 제어할 수 있다.
한편, 본 개시의 일 실시 예에 따른 로봇의 제어 방법은, 상기 로봇의 작업의 수행을 위한 사용자 명령이 입력되면, 상기 로봇의 주변 환경 정보에 기초하여 상기 로봇의 구동 레벨을 결정하는 단계, 구동 레벨 별로 기설정된 최대 허용 토크에 대한 정보 및 최대 허용 속도에 대한 정보에 기초하여, 상기 로봇의 구동 레벨에 대응되는 최대 허용 토크 및 최대 허용 속도를 판단하는 단계, 상기 최대 허용 토크에 기초하여 상기 로봇의 최대 허용 가속도를 산출하는 단계, 상기 최대 허용 가속도에 기초하여 상기 로봇의 이동 속도가 상기 최대 허용 속도에 도달하도록 상기 로봇을 제어하는 단계 및 상기 로봇이 상기 최대 허용 속도로 이동하는 동안 상기 작업을 수행하도록 하는 단계를 포함한다.
여기에서, 상기 로봇의 주변 환경 정보는, 상기 로봇이 위치하는 공간에 대한 정보를 포함하고, 상기 구동 레벨을 결정하는 단계는, 공간별 구동 레벨에 관한 정보에 기초하여, 상기 로봇이 위치하는 공간에 대응되는 구동 레벨을 판단하고, 상기 판단된 구동 레벨을 상기 로봇의 구동 레벨로 결정할 수 있다.
그리고, 상기 구동 레벨을 결정하는 단계는, 작업의 종류별 구동 레벨에 관한 정보에 기초하여, 상기 로봇이 수행 중인 작업에 대응되는 구동 레벨을 판단하고, 상기 로봇이 위치하는 공간에 대응되는 구동 레벨 및 상기 로봇이 수행 중인 작업에 대응되는 구동 레벨 중에서 상대적으로 높은 구동 레벨을 상기 로봇의 구동 레벨로 결정할 수 있다.
그리고, 본 제어 방법은 카메라를 통해 촬영된 영상 또는 마이크를 통해 수신된 사용자 음성에 기초하여, 상기 로봇의 주변에 위치하는 사용자를 식별하는 단계를 더 포함하고, 상기 구동 레벨을 결정하는 단계는, 사용자 별 구동 레벨에 관한 정보에 기초하여, 상기 식별된 사용자에 대응되는 구동 레벨을 판단하고, 상기 로봇이 위치하는 공간에 대응되는 구동 레벨 및 상기 식별된 사용자에 대응되는 구동 레벨 중에서, 상대적으로 높은 구동 레벨을 상기 로봇의 구동 레벨로 결정할 수 있다.
그리고, 상기 구동 레벨을 결정하는 단계는, 상기 식별된 사용자가 상기 로봇으로부터 기설정된 범위 내 위치하는 경우, 상기 로봇이 위치하는 공간에 대응되는 구동 레벨 및 상기 식별된 사용자에 대응되는 구동 레벨 중에서, 상대적으로 높은 구동 레벨을 상기 로봇의 구동 레벨로 결정하고, 상기 식별된 사용자가 상기 로봇으로부터 기설정된 범위 밖에 위치하는 경우, 상기 로봇이 위치하는 공간에 대응되는 구동 레벨을 상기 로봇의 구동 레벨로 결정할 수 있다.
그리고, 본 제어 방법은 기저장된 지도 정보에 기초하여 상기 로봇의 주행 방향을 변경하거나, 상기 로봇 주변에서 장애물 및 사용자 중 적어도 하나가 감지되는 경우 상기 주행 방향을 변경하고, 상기 주행 방향을 변경하는 동안 상기 최대 허용 가속도에 기초하여 상기 로봇의 이동 속도를 감소시키는 단계를 더 포함할 수 있다.
그리고, 본 제어 방법은 상기 로봇이 상기 주행 방향을 변경하는 동안 베지어(Bezier) 곡선에 따라 상기 로봇이 이동하도록 제어하는 단계를 더 포함할 수 있다.
이상과 같은 본 개시의 다양한 실시 예에 따르면, 로봇은 작업 공간 내에서 작업을 신속하게 처리할 수 있다. 또한, 로봇은 별도의 센서를 구비하지 않고도 장애물 등과의 충돌을 피할 수 있다.
도 1은 본 개시의 일 실시 예에 따른 로봇을 설명하기 위한 블록도이다.
도 2는 본 개시의 일 실시 예에 따른 공간별 구동 레벨에 관한 정보를 설명하기 위한 도면이다.
도 3은 본 개시의 일 실시 예에 따른 구동 레벨 별로 기설정된 최대 허용 토크 및 최대 허용 속도에 대한 정보를 설명하기 위한 도면이다.
도 4는 본 개시의 일 실시 예에 따른 로봇의 이동 속도를 도시한 도면이다.
도 5는 본 개시의 일 실시 예에 따른 작업의 종류별 구동 레벨에 관한 정보를 설명하기 위한 도면이다.
도 6은 본 개시의 일 실시 예에 따른 사용자 별 구동 레벨에 관한 정보를 설명하기 위한 도면이다.
도 7은 본 개시의 일 실시 예에 따른 로봇의 이동 궤적을 설명하기 위한 도면이다.
도 8은 본 개시의 일 실시 예에 따른 로봇을 설명하기 위한 상세 블록도이다.
도 9는 본 개시의 일 실시 예에 따른 로봇의 제어 방법을 설명하기 위한 순서도이다.
먼저, 본 명세서 및 청구범위에서 사용되는 용어는 본 개시의 기능을 고려하여 일반적인 용어들을 선택하였다. 하지만, 이러한 용어들은 당 분야에 종사하는 기술자의 의도나 법률적 또는 기술적 해석 및 새로운 기술의 출현 등에 따라 달라질 수 있다. 또한, 일부 용어는 출원인이 임의로 선정한 용어도 있다. 이러한 용어에 대해서는 본 명세서에서 정의된 의미로 해석될 수 있으며, 구체적인 용어 정의가 없으면 본 명세서의 전반적인 내용 및 당해 기술 분야의 통상적인 기술 상식을 토대로 해석될 수도 있다.
또한, 본 개시를 설명함에 있어서, 관련된 공지 기능 혹은 구성에 대한 구체적인 설명이 본 개시의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우, 그에 대한 상세한 설명은 축약하거나 생략한다.
나아가, 이하 첨부 도면들 및 첨부 도면들에 기재된 내용들을 참조하여 본 개시의 실시 예를 상세하게 설명하지만, 본 개시가 실시 예들에 의해 제한되거나 한정되는 것은 아니다.
이하, 첨부된 도면을 참조하여 본 개시를 상세히 설명한다.
도 1은 본 개시의 일 실시 예에 따른 로봇을 설명하기 위한 블록도이다.
본 개시의 일 실시 예에 따른 로봇(100)은 목적지까지 물품을 이동시킬 수 있는 자동 경로 차량(Automated Guided Vehicle) 또는 가정 내 공간을 주행하면서 청소 작업을 수행할 수 있는 로봇 청소기 중 하나가 될 수 있다. 다만, 이에 한정되는 것은 아니고, 로봇(100)은 건물 내 공간을 주행하면서 공기 정화 작업을 수행할 수 있는 로봇, 인간을 탑승시켜서 목적지까지 이동시킬 수 있는 이동형 로봇, 가정 내 공간을 주행하며 의류 정리, 설거지 등의 작업을 수행할 수 있는 가사 지원형 로봇 또는 빌딩 내 공간을 주행하며 경비를 수행할 수 있는 경비형 봇 등과 같이 바퀴를 구비한 다양한 로봇으로 구현될 수 있다.
도 1을 참조하면, 본 개시의 일 실시 예에 따른 로봇(100)은 구동부(110) 및 프로세서(120)를 포함한다.
구동부(110)는 로봇(100)을 이동시킬 수 있다. 이를 위해, 구동부(110)는 하나 또는 둘 이상의 바퀴와 연결되고, 바퀴를 회전시킬 수 있는 모터 등의 구동 유닛을 구비할 수 있다. 그리고 구동부(110)는 프로세서(120)의 제어 신호에 따라 로봇(100)의 이동, 정지, 방향 전환 등의 주행 동작을 수행할 수 있다.
프로세서(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) 등으로 구현될 수 있다.
프로세서(120)는 로봇(100)의 주변 환경 정보에 기초하여, 로봇(100)의 구동 레벨을 결정할 수 있다. 여기에서, 주변 환경 정보는 로봇(100)이 위치하는 공간에 대한 정보로서, 프로세서(120)는 기저장된 지도 정보에 기초하여 로봇(100)이 위치하는 공간을 판단하고, 해당 공간에 대응되는 구동 레벨을 판단할 수 있다.
예를 들어, 프로세서(120)는 기저장된 지도 정보에 기초하여 로봇(100)이 거실에 위치하는 것으로 판단되면, 공간별 구동 레벨 정보에 기초하여 거실에 대응되는 구동 레벨을 로봇(100)의 구동 레벨로 결정할 수 있다.
그리고, 프로세서(120)는 구동 레벨 별로 기설정된 최대 허용 속도에 대한 정보 및 최대 허용 토크에 대한 정보에 기초하여, 로봇(100)의 구동 레벨에 대응되는 최대 허용 속도 및 최대 허용 토크를 판단할 수 있다.
그리고, 프로세서(120)는 최대 허용 토크에 기초하여, 로봇의(100)의 최대 허용 가속도를 산출하고, 최대 허용 가속도에 기초하여 로봇(100)의 이동 속도가 최대 허용 속도에 도달하도록 구동부(110)를 제어할 수 있다.
이에 따라, 본 개시는 해당 공간에서 신속하게 작업을 수행할 수 있을 뿐 만 아니라, 최대 허용 속도 내에서 작업을 수행하므로 안전하게 작업을 수행할 수 있다.
한편, 프로세서(120)는 기저장된 지도 정보에 기초하여 로봇(100)의 주행 방향을 변경하는 경우, 상술한 최대 허용 가속도에 기초하여 로봇(100)의 이동 속도를 감소시킬 수 있다. 이에 따라, 본 개시는 해당 공간에서 신속하게 작업을 수행하면서도 충돌 등을 방지할 수 있다.
이하 도 2 내지 도 4를 참조하여, 프로세서(120)의 동작에 대해 보다 상세히 설명한다.
도 2는 본 개시의 일 실시 예에 따른 공간별 구동 레벨에 관한 정보를 설명하기 위한 도면이다.
프로세서(120)는 로봇(100)의 작업을 수행시키기 위한 사용자 명령이 입력되면, 로봇(100)의 주변 환경 정보에 기초하여 로봇(100)의 구동 레벨을 결정할 수 있다.
여기에서, 주변 환경 정보는, 로봇(100)이 위치하는 공간에 대한 정보를 포함할 수 있다. 구체적으로, 프로세서(120)는 기저장된 지도 정보에 기초하여 로봇(100) 위치하는 공간을 판단하고, 로봇(100)이 위치하는 공간에 기초하여, 로봇(100)의 구동 레벨을 결정할 수 있다.
예를 들어, 프로세서(120)는 기저장된 지도 정보에 기초하여 로봇(100)이 위치하는 공간이 거실이라고 판단되면, 거실에 대응되는 구동 레벨을 로봇(100)의 구동 레벨로 결정할 수 있다.
이를 위해, 프로세서(120)는 기저장된 공간별 구동 레벨에 관한 정보를 이용할 수 있다.
예를 들어, 도 2를 참조하면, 로봇(100)은 거실에 대응되는 구동 레벨은 1이고, 주방에 대응되는 구동 레벨은 2이며, Room 1 및 Room 2에 대응되는 구동 레벨을 5이고, Room 3에 대응되는 구동 레벨은 3인 공간별 구동 레벨에 관한 정보를 저장하고 있을 수 있다.
그리고, 프로세서(120)는 거실에서 로봇(100)의 작업을 수행시키기 위한 사용자 명령이 입력되면, 기저장된 공간별 구동 레벨에 관한 정보에 기초하여, 거실에 대응되는 구동 레벨 1을 로봇(100)의 구동 레벨로 결정할 수 있다.
한편, 여기서는 공간별 구동 레벨에 관한 정보가 기저장된 것으로 설명하였으나, 이는 서버(미도시) 또는 스마트 폰 등의 외부 전자 장치(미도시)로부터 수신할 수도 있다. 또한, 상술한 공간별 구동 레벨에 관한 정보는 일 실시 예일 뿐, 이는 사용자 명령에 따라 다양하게 설정 또는 변경될 수 있다. 가령, 거실에 대응되는 구동 레벨은 3으로 설정될 수 있다.
또한, 여기서는 기저장된 지도 정보에 기초하여 로봇(100)이 위치하는 공간을 판단하는 실시 예를 설명하였으나 이는 일 실시 예일 뿐, 로봇(100)은 비콘 등의 외부 장치로부터 위치에 관한 정보를 수신하는 등의 다양한 방법으로 로봇(100)이 위치하는 공간을 판단할 수 있다.
또한, 여기서는 작업을 수행시키기 위한 사용자 명령이 입력되면, 주변 환경 정보에 기초하여 로봇(100)의 구동 레벨을 결정하는 것으로 설명하였으나, 이는 일 실시 예일 뿐이다. 프로세서(120)는 작업을 수행하는 동안 계속해서 주변 환경 정보를 획득하고, 주변 환경 정보가 변경된 것으로 판단되면, 변경된 주변 환경 정보에 기초하여 로봇(100)의 구동 레벨을 결정할 수 있다. 즉, 프로세서(120)는 거실에서 작업을 수행하던 상태에서, 로봇(100)의 이동에 따라 로봇(100)이 주방에 위치하는 경우, 주방에 대응되는 구동 레벨을 로봇(100)의 구동 레벨로 결정할 수 있다.
도 3은 본 개시의 일 실시 예에 따른 구동 레벨 별로 기설정된 최대 허용 토크 및 최대 허용 속도에 대한 정보를 설명하기 위한 도면이다.
프로세서(120)는 로봇(100)의 구동 레벨이 결정되면, 구동 레벨 별로 기설정된 최대 허용 토크에 대한 정보 및 최대 허용 속도에 대한 정보에 기초하여, 로봇(100)의 구동 레벨에 대응되는 최대 허용 속도 및 최대 허용 토크를 판단할 수 있다.
이를 위해, 프로세서(120)는 기저장된, 구동 레벨 별로 기설정된 최대 허용 토크에 대한 정보 및 최대 허용 속도에 대한 정보를 이용할 수 있다.
예를 들어, 도 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)인, 구동 레벨 별로 기설정된 최대 허용 토크에 대한 정보 및 최대 허용 속도에 대한 정보를 저장하고 있을 수 있다.
그리고, 프로세서(120)는 기저장된, 구동 레벨 별로 기설정된 최대 허용 토크에 대한 정보 및 최대 허용 속도에 대한 정보에 기초하여, 로봇(100)의 구동 레벨에 대응되는 최대 허용 토크 및 최대 허용 속도를 판단할 수 있다.
예를 들어, 거실에서 로봇(100)의 작업을 수행하기 위한 사용자 명령이 입력되는 경우, 프로세서(120)는 거실에 대응되는 구동 레벨 1을 판단하고, 구동 레벨 1에 대응되는 최대 허용 토크 100(N · m) 및 최대 허용 속도 5(m/sec)를 로봇(100)의 최대 허용 토크 및 최대 허용 속도로 판단할 수 있다.
그리고, 프로세서(120)는 최대 허용 토크에 기초하여, 로봇(100)의 최대 허용 가속도를 산출할 수 있다.
구체적으로, 프로세서(120)는 로봇(100)의 질량, 로봇(100)의 바퀴와 접촉되는 바닥면의 마찰 계수 및 로봇(100)의 바퀴의 반경에 기초하여, 최대 허용 토크에 대응되는 최대 허용 가속도를 산출할 수 있다. 이를 위해, 로봇(100)은 로봇(100)의 질량에 대한 정보 및 로봇(100)의 바퀴의 반경에 대한 정보를 기저장하고 있을 수 있다. 또한, 로봇(100)은 공간 별 바닥면의 종류에 대한 정보 및 마찰 계수에 대한 정보를 기저장하고 있을 수 있다. 또는, 로봇(100)은 센서(미도시)를 통해 바닥면을 감지하고, 바닥면 별 마찰 계수에 대한 정보에 기초하여, 로봇(100)의 바퀴와 접촉되는 바닥면의 마찰 계수를 판단할 수도 있다.
한편, 최대 허용 토크에 기초하여, 물체의 최대 허용 가속도를 산출하는 방법에는 다양한 수학식이 적용될 수 있다.
일 예로, 프로세서(120)는 하기와 같은 수학식을 통해 최대 허용 가속도를 산출할 수 있다.
Figure pat00001
(여기에서,
Figure pat00002
,
Figure pat00003
,
Figure pat00004
,
Figure pat00005
: 최대 허용 토크,
Figure pat00006
: 최대 허용 가속도,
Figure pat00007
: 최대 허용 속도,
Figure pat00008
: 바퀴의 반경,
Figure pat00009
: 바퀴 중심과 바퀴 사이의 거리,
Figure pat00010
: 관성 행렬,
Figure pat00011
: 코리올리-원심력,
Figure pat00012
: viscous 마찰계수,
Figure pat00013
Figure pat00014
이다.)
한편, 상술한 수학식은 최대 허용 가속도를 산출하기 위한 일 실시 예에 따른 수학식일 뿐, 프로세서(120)는 로봇(100)의 질량 및 로봇(100)의 바퀴의 반경에 기초한 다양한 수학식을 통해, 최대 허용 토크에 대응되는 최대 허용 가속도를 산출할 수 있다.
또한, 상술한 수학식은 로봇(100)이 두 개의 바퀴를 통해 이동하는 경우를 상정한 것이나. 실시 예에 따라 로봇(100)는 상이한 개수의 바퀴로 구현될 수 있고, 이 경우 상술한 수학식이 달라질 수 있음은 물론이다.
이후, 프로세서(120)는 최대 허용 가속도에 기초하여, 로봇(100)의 이동 속도가 상기 최대 허용 속도에 도달하도록 구동부(110)를 제어하며, 로봇(100)이 최대 허용 속도로 이동하는 동안 작업을 수행하도록 할 수 있다.
이에 따라, 본 개시는 해당 공간에서 신속하게 작업을 수행할 수 있다 .또한, 본 개시는 최대 허용 속도 내에서 작업을 수행하므로 안전하게 작업을 수행할 수 있다.
한편, 프로세서(120)는 기저장된 지도 정보에 기초하여 로봇(100)의 주행 방향을 변경하는 경우, 상술한 최대 허용 가속도에 기초하여 로봇(100)의 이동 속도를 감소시킬 수 있다.
예를 들어, 프로세서(120)는 기저장된 지도 정보에 기초하여, 로봇(100)이 벽면과 충돌할 가능성이 있는 경우, 최대 허용 가속도에 기초하여 로봇(100)의 이동 속도를 감소시키면서 로봇(100)의 주행 방향을 변경시킬 수 있다.
이에 따라, 본 개시는 해당 공간에서 최대한의 시간 동안 최고 속도로 이동하면서 작업을 수행할 수 있다. 또한, 본 개시는 신속하게 작업을 수행하면서도 충돌 등을 방지할 수 있다
이에 따른, 로봇(100)의 이동 속도를 도시한 도면은 도 4와 같다. 도 4를 참조하면, 본 개시는 최대 허용 가속도로 최대 속도에 도달한 뒤, 최대 속도로 작업을 수행하고, 이후 장애물 등과의 충돌 가능성이 있을 경우, 최대 허용 가속도로 이동 속도를 감소시킴을 알 수 있다.
한편, 이상에서는 주변 환경 정보에 기초하여 로봇(100)의 구동 레벨을 결정하는 실시 예를 설명하였다. 그러나, 본 개시는 주변 환경 정보 외 다양한 정보를 더 고려하여 로봇의 구동 레벨을 결정할 수 있다. 이하, 도 5 및 도 6을 참조하여 설명한다.
도 5는 본 개시의 일 실시 예에 따른 작업의 종류별 구동 레벨에 관한 정보를 설명하기 위한 도면이다.
프로세서(120)는 작업의 종류별 구동 레벨에 관한 정보에 기초하여, 로봇(100)이 수행 중인 작업에 대응되는 구동 레벨을 판단할 수 있다.
이를 위해, 프로세서(120)는 기저장된, 작업의 종류별 구동 레벨에 관한 정보를 이용할 수 있다.
예를 들어, 도 5를 참조하면, 로봇(100)은 청소 작업에 대응되는 구동 레벨은 3이고, 물품 이동에 대응되는 구동 레벨은 2이며, 사용자 이동에 대응되는 구동 레벨을 5이고, 경비에 대응되는 구동 레벨은 2인 작업의 종류별 구동 레벨에 관한 정보를 저장하고 있을 수 있다.
그리고, 프로세서(120)는 로봇(100)의 작업을 수행시키기 위한 사용자 명령이 입력되면, 작업의 종류별 구동 레벨에 관한 정보에 기초하여, 로봇(100)의 작업에 대응되는 구동 레벨을 판단할 수 있다.
예를 들어, 프로세서(120)는 로봇(100)의 청소 작업을 수행하기 위한 사용자 명령이 입력되면, 작업의 종류별 구동 레벨에 관한 정보에 기초하여, 청소 작업에 대응되는 구동 레벨인 3을 로봇(100)의 구동 레벨로 판단할 수 있다.
그리고, 프로세서(120)는 로봇(100)이 위치하는 공간에 대응되는 구동 레벨 및 로봇(100)이 수행 중인 작업에 대응되는 구동 레벨 중에서 상대적으로 높은 구동 레벨을 로봇(100)의 구동 레벨로 결정할 수 있다.
예를 들어, 프로세서(120)는 거실에서 로봇(100)의 청소 작업을 수행하기 위한 사용자 명령이 입력되는 경우, 거실에 대응되는 구동 레벨 1 및 청소 작업에 대응되는 구동 레벨 3 중에서 높은 구동 레벨인 3을 로봇(100)의 구동 레벨로 결정할 수 있다.
이후, 프로세서(120)는 전술한 바와 같이, 구동 레벨 별로 기설정된 최대 허용 토크에 대한 정보 및 최대 허용 속도에 대한 정보에 기초하여, 로봇(100)의 최대 허용 가속도를 산출하고, 최대 허용 가속도에 기초하여 로봇(100)의 작업을 수행할 수 있다.
이와 같이, 로봇(100)이 위치하는 공간과 함께 로봇(100)이 수행중인 작업을 고려하여 로봇(100)의 구동 레벨을 결정함으로써, 본 개시는 작업 별로 허용된 최대 속도 내에서 작업을 효율적이고 안전하게 수행할 수 있다.
도 6은 본 개시의 일 실시 예에 따른 사용자 별 구동 레벨에 관한 정보를 설명하기 위한 도면이다.
프로세서(120)는 사용자 별 구동 레벨에 관한 정보에 기초하여, 사용자에 대응되는 구동 레벨을 판단할 수 있다.
이를 위해, 프로세서(120)는 기저장된, 사용자 별 구동 레벨에 관한 정보를 이용할 수 있다.
예를 들어, 도 6을 참조하면, 로봇(100)은 사용자 A에 대응되는 구동 레벨은 1이고, 사용자 B에 대응되는 구동 레벨은 2이며, 사용자 C에 대응되는 구동 레벨을 5이고, 사용자 D에 대응되는 구동 레벨은 3인 사용자 별 구동 레벨에 관한 정보를 저장하고 있을 수 있다.
그리고, 프로세서(120)는 로봇(100)의 작업을 수행시키기 위한 사용자 명령이 입력되면, 사용자 별 구동 레벨에 관한 정보에 기초하여, 사용자에 대응되는 구동 레벨을 판단할 수 있다.
이를 위해, 프로세서(120)는 로봇(100) 주변의 사용자를 식별할 수 있다.
구체적으로, 프로세서(120)는 카메라를 통해 촬영된 영상을 분석하여, 로봇(100) 주변의 사용자를 식별할 수 있다. 여기에서, 카메라는 로봇(100) 전방에 포함될 수 있음은 물론, 로봇(100) 측면 및 후방에 포함될 수 있다.
한편, 영상 분석 방법에는 다양한 알고리즘이 적용될 수 있다. 예를 들어, 프로세서(100)는 카메라를 통해 촬영된 영상에 오브젝트 인식 알고리즘을 적용하여 사용자의 얼굴을 인식하고, 기저장된 복수의 사용자의 얼굴 중에서 로봇(100) 주변에 위치하는 사용자를 식별할 수 있다. 또는, 프로세서(120)는 카메라를 통해 촬영된 영상에 CNN(Convolution Neural Network)을 기반으로 하는 인공 지능 모델을 적용하여 로봇(100) 주변에 위치하는 사용자를 식별할 수도 있다.
한편, 프로세서(120)는 마이크를 통해 수신된 사용자 음성에 기초하여, 로봇(100)의 주변에 위치하는 사용자를 식별할 수도 있다.
구체적으로, 프로세서(120)는 마이크를 통해 사용자 음성이 수신되면, 사용자 음성의 에너지, 주파수 대역 및/또는 사용자 음성의 울림 값 (RT, reverberation time)과 같은 사용자 음성의 특성을 판단할 수 있다. 그리고, 프로세서(120)는 기저장된 사용자 별 사용자 음성의 특성과 마이크를 통해 수신된 사용자 음성의 특성을 비교함으로써, 로봇(100) 주변에 위치하는 사용자를 식별할 수 있다.
그리고, 프로세서(120)는 사용자 별 구동 레벨에 관한 정보에 기초하여, 식별된 사용자에 대응되는 구동 레벨을 판단할 수 있다.
예를 들어, 프로세서(120)는 카메라를 통해 촬영된 영상 또는 마이크를 통해 수신된 사용자 음성에 기초하여, 로봇(100) 주변에 사용자 A가 위치하는 것으로 판단되면, 사용자 A에 대응되는 구동 레벨인 1을 사용자에 대응되는 구동 레벨로 판단할 수 있다.
그리고, 프로세서(120)는 로봇(100)이 위치하는 공간에 대응되는 구동 레벨 및 식별된 사용자에 대응되는 구동 레벨 중에서 상대적으로 높은 구동 레벨을 로봇(100)의 구동 레벨로 결정할 수 있다.
예를 들어, 프로세서(120)는 주방에서 작업을 수행 중인 로봇(100)의 주변에서 사용자 A가 식별된 경우, 주방에 대응되는 구동 레벨 2 및 사용자 A에 대응되는 구동 레벨 1 중에서 높은 구동 레벨인 2를 로봇(100)의 구동 레벨로 결정할 수 있다.
이후, 프로세서(120)는 전술한 바와 같이, 구동 레벨 별로 기설정된 최대 허용 토크에 대한 정보 및 최대 허용 속도에 대한 정보에 기초하여, 로봇(100)의 최대 허용 가속도를 산출하고, 최대 허용 가속도에 기초하여 로봇(100)의 작업을 수행할 수 있다.
이와 같이, 로봇(100)이 위치하는 공간과 함께 로봇(100) 주변의 사용자를 고려하여 로봇(100)의 구동 레벨을 결정함으로써, 본 개시는 특히 로봇(100) 주변에 노인 또는 아동이 위치하는 경우에 있어서, 안전하게 작업을 수행할 수 있다.
한편, 프로세서(120)는 식별된 사용자의 위치에 따라 로봇(100)의 구동 레벨을 달리 결정할 수 있다.
구체적으로, 프로세서(120)는 식별된 사용자가 로봇(100)으로부터 기설정된 범위 내 위치하는 경우, 로봇(100)이 위치하는 공간에 대응되는 구동 레벨 및 식별된 사용자에 대응되는 구동 레벨 중에서, 상대적으로 높은 구동 레벨을 로봇(100)의 구동 레벨로 결정하고, 식별된 사용자가 로봇(100)으로부터 기설정된 범위 밖에 위치하는 경우, 로봇(100)이 위치하는 공간에 대응되는 구동 레벨을 로봇(100)의 구동 레벨로 결정할 수 있다. 여기에서, 기설정된 범위는, 로봇(100)으로부터 1m 등 사용자 명령에 따라 다양하게 설정 또는 변경될 수 있다.
예를 들어, 프로세서(120)는 식별된 사용자가 로봇(100)으로부터 1m 범위 내에 위치하는 경우, 로봇(100)이 위치하는 공간에 대응되는 구동 레벨 및 식별된 사용자에 대응되는 구동 레벨 중에서, 상대적으로 높은 구동 레벨을 로봇(100)의 구동 레벨로 결정하고, 식별된 사용자가 로봇(100)으로부터 1m 범위 밖에 위치하는 경우, 로봇(100)이 위치하는 공간에 대응되는 구동 레벨을 로봇(100)의 구동 레벨로 결정할 수 있다.
이는, 로봇(100)과 멀리 떨어진 곳에 사용자가 위치하여, 로봇(100)과 사용자가 충돌 가능성이 낮음에도, 로봇(100)이 느린 속도로 작업을 수행하는 경우를 방지하기 위함이다. 이에 따라, 로봇(100)은 효율적으로 작업을 수행할 수 있다.
도 7은 본 개시의 일 실시 예에 따른 로봇의 이동 궤적을 설명하기 위한 도면이다.
전술한 바와 같이, 프로세서(120)는 기저장된 지도 정보에 기초하여, 로봇(100)의 주행 방향을 변경하는 경우, 최대 허용 가속도에 기초하여 로봇(100)의 이동 속도를 감소시키도록 구동부(110)를 제어할 수 있다.
또는, 프로세서(120)는 로봇(100) 주변에서 장애물 및 사용자 중 적어도 하나가 감지되는 경우 로봇(100)의 주행 방향을 변경하고, 이 때 최대 허용 가속도에 기초하여 로봇(100)의 이동 속도를 감소시키도록 구동부(110)를 제어할 수 있다.
한편, 프로세서(120)는 로봇(100)이 주행 방향을 변경하는 동안, 기설정된 궤적을 따라 로봇(100)이 이동하도록 구동부(110)를 제어할 수 있다.
구체적으로, 프로세서(120)는 로봇(100)이 주행 방향을 변경하는 동안 베지어(Bezier) 곡선에 따라 이동하도록 구동부(110)를 제어할 수 있다. 여기에서, 베지어 곡선은 시작 지점 및 종료 지점 이외에 1개 이상의 추가 지점을 더 고려하여, 시작 지점부터 종료 지점까지를 연결한 곡선을 의미한다.
일 예로, 프로세서(120)는 로봇(100)이 주행 방향을 변경하는 동안, 5차 베지어 곡선에 따라 로봇(100)이 이동하도록 구동부(110)를 제어할 수 있다. 5차 베지어 곡선에 따른 궤적의 경우, 하기와 같은 수학식에 기초하여 결정될 수 있다.
Figure pat00015
여기에서, 시작 지점(P0)은 로봇(100)이 주행 방향을 변경하기 시작한 지점을 의미하고, 종료 지점(P5)은 로봇(100)이 직선 방향으로 주행을 시작한 지점을 의미한다. 그리고, 추가 지점(P1 내지 P4)는 시작 지점 및 종료 지점간의 거리, 로봇(100)의 바퀴의 반경 등에 기초하여 기설정되어 있을 수 있음은 물론, 사용자 명령에 따라 다양하게 설정 또는 변경될 수 있다.
한편, 5차 베지어 곡선은 일 실시 예일 뿐, 본 개시는 3차 베지어 곡선 등 다양한 차수의 베지어 곡선을 통해 로봇(100)을 이동시킬 수 있음은 물론이다.
이에 따라, 로봇(100)은 도 7과 같은 궤적을 통해 이동할 수 있다. 이에 따라, 본 개시는 변곡점에서 단순 원형 또는 직선 방향으로 로봇(100)의 주행 방향을 변경하는 경우에 비하여 로봇(100)의 진동을 줄이고, 특히 순간적으로 가속도가 무한대가 되는 경우를 방지하여 모터의 고장을 예방할 수 있다.
도 8은 본 개시의 일 실시 예에 따른 로봇을 설명하기 위한 상세 블록도이다.
도 8을 참조하면, 본 개시의 일 실시 예에 따른 로봇(100)은 구동부(110), 저장부(130), 통신부(140), 디스플레이(150), 감지부(160), 인터페이스(170) 및 프로세서(120)를 포함할 수 있다. 이하, 상술한 내용과 중복되는 부분은 생략하거나 축약하여 설명한다.
저장부(130)는 로봇(100)의 동작에 필요한 각종 프로그램 및 데이터를 저장할 수 있다. 저장부(130)는 비휘발성 메모리, 휘발성 메모리, 플래시메모리(flash-memory), 하드디스크 드라이브(HDD) 또는 솔리드 스테이트 드라이브(SSD) 등으로 구현될 수 있다.
저장부(130)는 공간별 구동 레벨에 관한 정보, 작업의 종류별 구동 레벨에 관한 정보 또는 사용자 별 구동 레벨에 관한 정보를 저장할 수 있다. 또한, 저장부(130)는 사용자의 얼굴에 관한 정보 및 사용자 음성의 특성에 관한 정보를 저장할 수 있다. 또한, 저장부(130)는 구동 레벨 별로 기설정된 최대 허용 토크에 대한 정보 및 최대 허용 속도에 대한 정보를 저장할 수 있다.
저장부(130)는 구동부(110)의 구동에 따라 생성된 지도 정보를 저장할 수 있다. 여기에서, 지도 정보는 로봇(100) 의 이동 경로를 나타내는 정보로, 이미지 형태일 수 있으며, 좌표 형태의 궤적 데이터일 수도 있다.
또한, 저장부(130)는 통신부(140)를 통하여 수신한 실내 공간의 평면도를 저장할 수 있다. 여기서, 평면도는 공간 별 위치 정보 및 면적 정보를 포함할 수 있다.
통신부(140)는 외부 장치와 통신을 수행하여 다양한 데이터를 송수신할 수 있다. 예를 들어, 통신부(140)는 BT(Bluetooth), BLE(Bluetooth Low Energy), WI-FI(Wireless Fidelity), Zigbee 등과 같은 다양한 통신 방식 등을 통해 외부 장치와 통신을 수행할 수 있다.
그리고 통신부(140)는 외부 장치로부터 작업의 수행을 위한 사용자 명령을 수신할 수 있다. 여기에서, 작업은 공기 정화 작업, 청소 작업 또는 물품 이동 등과 같은 다양한 작업이 될 수 있다. 한편, 외부 장치는 스마트 폰 등이 될 수 있으나 반드시 이에 한정되는 것은 아니다.
디스플레이(150)는 다양한 화면을 표시할 수 있다. 일 예로, 디스플레이(150)는 로봇(100)이 제공하는 다양한 기능과 관련된 정보 및/또는 사용자와 인터랙션 하기 위한 유저 인터페이스(User Interface)를 표시할 수 있다. 또한, 디스플레이(150)는 현재 수행 중인 작업의 종류 또는 작업의 진행 정도에 관한 정보를 표시할 수 있다.
이와 같은, 디스플레이(150)는 LCD(Liquid Crystal Display), PDP(Plasma Display Panel), LED(light emitting diode) 또는 OLED(organic light emitting diode) 등과 같은 다양한 형태로 구현될 수 있다.
또한, 디스플레이(150)는 터치 감지부와 결합되어 터치 스크린으로 구현될 수도 있다.
감지부(160)는 로봇 (100) 주변의 장애물을 감지할 수 있다. 구체적으로, 감지부(160)는 초음파 센서(supersonic sensor), 적외선 센서(Infrared sensor), RF 센서 등을 이용하여 로봇(100) 주변의 장애물의 위치 및 장애물과의 거리를 감지할 수 있다. 또한, 감지부(160)는 장애물과의 충돌을 통하여 장애물을 감지하는 충돌 센서를 더 포함할 수 있다.
인터페이스(170)는 로봇 (100)이 지원하는 각종 기능을 사용자가 설정 또는 선택할 수 있는 다수의 기능 키를 구비할 수 있다. 이러한 인터페이스(170)는 복수의 버튼 등과 같은 장치로 구현될 수 있으며, 디스플레이(150)의 기능을 동시에 수행할 수 있는 터치 스크린으로 구현될 수도 있다.
인터페이스(170)는 로봇의(100)의 전원 제어를 위한 명령, 작업을 선택하기 위한 명령, 작업 영역을 선택하기 위한 명령 명령 등을 입력 받을 수 있다.
그 외, 본 개시의 일 실시 예에 따른 로봇(100)은 주변의 사용자를 촬영하기 위한 카메라(미도시) 및 사용자 음성을 수신하기 위한 마이크(미도시)를 더 포함할 수 있다.
도 9는 본 개시의 일 실시 예에 따른 로봇의 제어 방법을 설명하기 위한 순서도이다.
본 개시의 일 실시 예에 따른 로봇은, 로봇의 작업의 수행을 위한 사용자 명령이 입력되면, 로봇의 주변 환경 정보에 기초하여 로봇의 구동 레벨을 결정(S910)할 수 있다. 여기에서, 주변 환경 정보는 로봇이 위치하는 공간에 대한 정보로서, 로봇은 기저장된 지도 정보에 기초하여 로봇이 위치하는 공간을 판단하고, 해당 공간에 대응되는 구동 레벨을 판단할 수 있다.
그리고, 로봇은 구동 레벨 별로 기설정된 최대 허용 속도에 대한 정보 및 최대 허용 토크에 대한 정보에 기초하여, 로봇의 구동 레벨에 대응되는 최대 허용 속도 및 최대 허용 토크를 판단(S920)할 수 있다. 이를 위해, 로봇은 기저장된, 구동 레벨 별로 기설정된 최대 허용 토크에 대한 정보 및 최대 허용 속도에 대한 정보를 이용할 수 있다.
그리고, 로봇은 최대 허용 토크에 기초하여 로봇의 최대 허용 가속도를 산출(S930)할 수 있다. 구체적으로, 로봇은 로봇의 질량, 로봇의 바퀴와 접촉되는 바닥면의 마찰 계수 및 로봇의 바퀴의 반경에 기초하여, 최대 허용 토크에 대응되는 최대 허용 가속도를 산출할 수 있다.
그리고, 로봇은 최대 허용 가속도에 기초하여, 로봇의 이동 속도가 최대 허용 속도에 도달하도록 로봇을 제어(S940)하고, 최대 허용 속도로 이동하는 동안 작업을 수행하도록 로봇을 제어(S950)할 수 있다.
이에 따라, 본 개시는 해당 공간에서 신속하게 작업을 수행할 수 있다 .또한, 본 개시는 최대 허용 속도 내에서 작업을 수행하므로 안전하게 작업을 수행할 수 있다.
한편, 상술한 본 발명의 다양한 실시 예들에 따른 방법들은, 기존 로봇에 설치 가능한 소프트웨어 또는 어플리케이션 형태로 구현될 수 있다.
또한, 상술한 본 발명의 다양한 실시 예들에 따른 방법들은, 기존 로봇에 대한 소프트웨어 업그레이드, 또는 하드웨어 업그레이드만으로도 구현될 수 있다.
한편, 본 발명에 따른 로봇의 제어 방법을 순차적으로 수행하는 프로그램이 저장된 비일시적 판독 가능 매체(non-transitory computer readable medium)가 제공될 수 있다.
비일시적 판독 가능 매체란 레지스터, 캐시, 메모리 등과 같이 짧은 순간 동안 데이터를 저장하는 매체가 아니라 반영구적으로 데이터를 저장하며, 기기에 의해 판독(reading)이 가능한 매체를 의미한다. 구체적으로는, 상술한 다양한 어플리케이션 또는 프로그램들은 CD, DVD, 하드 디스크, 블루레이 디스크, USB, 메모리카드, ROM 등과 같은 비일시적 판독 가능 매체에 저장되어 제공될 수 있다.
또한, 이상에서는 본 발명의 바람직한 실시 예에 대하여 도시하고 설명하였지만, 본 발명은 상술한 특정의 실시 예에 한정되지 아니하며, 청구범위에서 청구하는 본 발명의 요지를 벗어남이 없이 당해 발명이 속하는 기술분야에서 통상의 지식을 가진 자에 의해 다양한 변형실시가 가능한 것은 물론이고, 이러한 변형실시들은 본 발명의 기술적 사상이나 전망으로부터 개별적으로 이해되어져서는 안될 것이다.
100: 로봇
110: 구동부
120: 프로세서

Claims (14)

  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) 곡선에 따라 상기 로봇이 이동하도록 제어하는 단계;를 더 포함하는, 로봇의 제어 방법.
KR1020190008025A 2019-01-22 2019-01-22 로봇 및 그 제어 방법 KR20200094831A (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020190008025A KR20200094831A (ko) 2019-01-22 2019-01-22 로봇 및 그 제어 방법
PCT/KR2020/000227 WO2020153628A1 (ko) 2019-01-22 2020-01-07 로봇 및 그 제어 방법
US17/424,247 US11938637B2 (en) 2019-01-22 2020-01-07 Robot and control method thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190008025A KR20200094831A (ko) 2019-01-22 2019-01-22 로봇 및 그 제어 방법

Publications (1)

Publication Number Publication Date
KR20200094831A true KR20200094831A (ko) 2020-08-10

Family

ID=71736244

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190008025A KR20200094831A (ko) 2019-01-22 2019-01-22 로봇 및 그 제어 방법

Country Status (3)

Country Link
US (1) US11938637B2 (ko)
KR (1) KR20200094831A (ko)
WO (1) WO2020153628A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023003158A1 (ko) * 2021-07-20 2023-01-26 삼성전자주식회사 로봇 및 그 제어 방법

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2022102061A (ja) * 2020-12-25 2022-07-07 トヨタ自動車株式会社 制御装置、タスクシステム、制御方法及び制御プログラム

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS538840U (ko) 1976-07-07 1978-01-25
JPS5464514U (ko) 1977-10-13 1979-05-08
JPS5842245U (ja) 1981-09-12 1983-03-19 石黒 静 杭打案内治具
JPS6071839U (ja) 1983-10-24 1985-05-21 株式会社ノーリツ 風呂釜と給湯器の複合燃焼装置
KR20030093643A (ko) * 2002-06-04 2003-12-11 삼성전자주식회사 로봇의 모션 제어 장치 및 방법
KR100654676B1 (ko) 2005-03-07 2006-12-08 삼성광주전자 주식회사 로봇청소기
JP5308840B2 (ja) 2009-01-21 2013-10-09 ファナック株式会社 給電調整装置を備えたロボットシステム
KR101618030B1 (ko) 2009-07-28 2016-05-09 주식회사 유진로봇 이동 로봇의 위치 인식 및 주행 제어 방법과 이를 이용한 이동 로봇
JP5464514B2 (ja) 2009-08-21 2014-04-09 公立大学法人首都大学東京 ロボット制御装置、ロボット制御方法、ロボット制御プログラム、及びロボット
JP5617562B2 (ja) 2010-11-26 2014-11-05 株式会社国際電気通信基礎技術研究所 移動ロボット
JP5842245B2 (ja) 2011-04-28 2016-01-13 株式会社国際電気通信基礎技術研究所 コミュニケーションロボット
CN104428107B (zh) 2012-07-10 2016-06-29 西门子公司 机器人布置和用于控制机器人的方法
EP2890529A2 (en) 2012-08-31 2015-07-08 Rethink Robotics Inc. Systems and methods for safe robot operation
KR20140086245A (ko) * 2012-12-28 2014-07-08 레드원테크놀러지 주식회사 제한된 시간 내에서의 로봇 커버리지 방법 및 시스템
JP6071839B2 (ja) 2013-10-22 2017-02-01 本田技研工業株式会社 脚式移動ロボットの制御システム
US10198008B2 (en) * 2013-11-15 2019-02-05 Hitachi, Ltd. Mobile robot system
US9623564B2 (en) 2015-03-06 2017-04-18 King Fahd University Of Petroleum And Minerals Target-seeking control method and system for mobile robots
US9505140B1 (en) 2015-06-02 2016-11-29 Irobot Corporation Contact sensors for a mobile robot
US10065316B2 (en) 2016-02-05 2018-09-04 Rethink Robotics, Inc. Systems and methods for safe robot operation
US10265859B2 (en) 2016-02-09 2019-04-23 Cobalt Robotics Inc. Mobile robot with removable fabric panels
KR102578138B1 (ko) * 2016-10-07 2023-09-13 엘지전자 주식회사 공항 로봇 및 이를 포함하는 시스템
EP3617828A1 (en) * 2018-08-28 2020-03-04 Nilfisk A/S Autonomous surface treatment vehicle with fast wall mode

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023003158A1 (ko) * 2021-07-20 2023-01-26 삼성전자주식회사 로봇 및 그 제어 방법

Also Published As

Publication number Publication date
US11938637B2 (en) 2024-03-26
WO2020153628A1 (ko) 2020-07-30
US20220152828A1 (en) 2022-05-19

Similar Documents

Publication Publication Date Title
US11961285B2 (en) System for spot cleaning by a mobile robot
CN111565896B (zh) 用于清洁的移动装置、协作清洁系统及其控制方法
CN113164000B (zh) 机器人真空吸尘器及其清洁路线规划方法
US10542859B2 (en) Cleaning robot and controlling method thereof
US9448635B2 (en) Rapid gesture re-engagement
US9098188B2 (en) Display device and method for controlling the same
US10143347B2 (en) Cleaning device and control method therefor
KR20170087384A (ko) 청소로봇을 원격으로 제어하기 위한 원격 제어 장치, 제어 시스템 및 제어 방법
KR20140139241A (ko) 입력 처리 방법 및 그 전자 장치
CN104137045A (zh) 用户手势识别
JP6215933B2 (ja) 入力装置及び動作要求を入力する方法
KR20200094831A (ko) 로봇 및 그 제어 방법
KR102434410B1 (ko) 전자장치 및 그의 동작 방법
JPWO2014109262A1 (ja) タッチパネルシステム
CN106325493A (zh) 车辆及其控制方法
JP6665276B2 (ja) トリガ領域
JP2022518880A (ja) ロボットがトラップ状態から脱出するように制御する方法、装置、ロボット
JP5800361B2 (ja) 表示制御装置及びそれを用いた表示装置
US20140320430A1 (en) Input device
US11440189B2 (en) Method and robot device for sharing object data
US20160379416A1 (en) Apparatus and method for controlling object movement
CN106354145A (zh) 控制平衡车的方法和装置
CN108724171B (zh) 智能机器人的控制方法、装置和智能机器人
KR20210054920A (ko) 전자 장치 및 그 제어 방법
KR20160057647A (ko) 사용자 단말기를 이용한 로봇 구동 시스템 및 그 방법

Legal Events

Date Code Title Description
E902 Notification of reason for refusal