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

로봇 및 그 제어 방법 Download PDF

Info

Publication number
WO2020153628A1
WO2020153628A1 PCT/KR2020/000227 KR2020000227W WO2020153628A1 WO 2020153628 A1 WO2020153628 A1 WO 2020153628A1 KR 2020000227 W KR2020000227 W KR 2020000227W WO 2020153628 A1 WO2020153628 A1 WO 2020153628A1
Authority
WO
WIPO (PCT)
Prior art keywords
robot
driving level
driving
maximum allowable
information
Prior art date
Application number
PCT/KR2020/000227
Other languages
English (en)
French (fr)
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 US17/424,247 priority Critical patent/US11938637B2/en
Publication of WO2020153628A1 publication Critical patent/WO2020153628A1/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

Definitions

  • the present invention relates to a robot and its control method, and more particularly, to a robot and its control method for changing the moving speed.
  • Robots are used not only in various industrial fields, medical fields, and aerospace fields, but also in general homes.
  • the present disclosure has been devised to solve the above-described problems, and the present disclosure is to provide a robot and a control method for controlling the movement speed on the basis of the surrounding environment.
  • the robot determines a driving level of the robot based on the environment information of the robot when a driving unit and a user command for performing the robot's work are input, Based on the information on the maximum allowable torque and the maximum allowable speed preset for each driving level, the maximum allowable torque and the maximum allowable speed corresponding to the driving level of the robot are determined, and the robot is based on the maximum allowable torque Calculates the maximum allowable acceleration, and controls the driving unit so that the movement speed of the robot reaches the maximum allowable speed based on the maximum allowable acceleration, and performs the operation while the robot moves at the maximum allowable speed. And a processor that controls the robot.
  • the surrounding environment information of the robot includes information about a space in which the robot is located, and the processor, based on information on a driving level for each space, a driving level corresponding to a space in which the robot is located And determine the determined driving level as the driving level of the robot.
  • the processor determines a driving level corresponding to a task being performed by the robot, and a driving level corresponding to a space in which the robot is located, and the robot being performed, based on information on a driving level for each type of work.
  • a relatively high driving level among driving levels corresponding to the task may be determined as the driving level of the robot.
  • the processor based on the user's voice received through the microphone or the image taken through the camera, identifies the user located in the vicinity of the robot, based on the information on the driving level for each user, the identified The driving level corresponding to the user may be determined, and a driving level corresponding to the space in which the robot is located and a driving level corresponding to the identified user may determine a relatively high driving level as the driving level of the robot.
  • the processor may have a relatively high driving level among driving levels corresponding to the space in which the robot is located and driving levels corresponding to the identified user. Is determined as the driving level of the robot, and when the identified user is located outside the predetermined range from the robot, the driving level corresponding to the space in which the robot is located may be determined as the driving level of the robot.
  • the processor changes the driving direction of the robot based on pre-stored map information, or changes the driving direction when at least one of an obstacle and a user is detected around the robot, while changing the driving direction
  • the driving unit may be controlled to reduce the moving speed of the robot based on the maximum allowable acceleration.
  • the processor may control the driving unit to move the robot according to a Bezier curve while the robot changes the driving direction.
  • the control method of the robot when a user command for performing the operation of the robot is input, determining the driving level of the robot based on the surrounding environment information of the robot, driving Determining the maximum allowable torque and the maximum allowable speed corresponding to the driving level of the robot based on the information on the maximum allowable torque and the maximum allowable speed preset for each level, and the robot based on the maximum allowable torque Calculating a maximum allowable acceleration of the step, controlling the robot such that the movement speed of the robot reaches the maximum allowable speed based on the maximum allowable acceleration, and performing the operation while the robot moves at the maximum allowable speed. Includes steps to perform.
  • the surrounding environment information of the robot includes information about a space in which the robot is located, and the step of determining the driving level is a space in which the robot is located based on information on a driving level for each space. It is possible to determine the driving level corresponding to, and determine the determined driving level as the driving level of the robot.
  • the determining of the driving level may include determining a driving level corresponding to a task being performed by the robot based on information on a driving level for each type of work, and a driving level corresponding to a space in which the robot is located, and The driving level of the robot may be determined as a relatively high driving level among driving levels corresponding to the work being performed by the robot.
  • control method further includes identifying a user located in the vicinity of the robot based on a user voice received through a microphone or an image captured through a camera, and the determining of the driving level comprises: Based on the information on the driving level for each user, the driving level corresponding to the identified user is determined, and the driving level corresponding to the space in which the robot is located and the driving level corresponding to the identified user are relatively high.
  • the driving level can be determined as the driving level of the robot.
  • the determining of the driving level may include, when the identified user is located within a predetermined range from the robot, among driving levels corresponding to a space in which the robot is located and driving levels corresponding to the identified user, The relatively high driving level is determined as the driving level of the robot, and when the identified user is located outside the preset range from the robot, the driving level corresponding to the space where the robot is located is determined as the driving level of the robot Can.
  • control method changes the driving direction of the robot based on pre-stored map information, or changes the driving direction when at least one of an obstacle and a user is detected around the robot, while changing the driving direction
  • the method may further include reducing the moving speed of the robot based on the maximum allowable acceleration.
  • the control method may further include controlling the robot to move according to a Bezier curve while the robot changes the driving direction.
  • the robot can quickly process the work in the work space.
  • the robot can avoid collision with an obstacle or the like without a separate sensor.
  • FIG. 1 is a block diagram illustrating a robot according to an embodiment of the present disclosure.
  • FIG. 2 is a diagram for explaining information on a driving level for each space according to an embodiment of the present disclosure.
  • FIG. 3 is a view for explaining information about a maximum allowable torque and a maximum allowable speed that are preset for each driving level according to an embodiment of the present disclosure.
  • FIG. 4 is a diagram illustrating a moving speed of a robot according to an embodiment of the present disclosure.
  • FIG. 5 is a view for explaining information on a driving level for each type of work according to an embodiment of the present disclosure.
  • FIG. 6 is a view for explaining information on a driving level for each user according to an embodiment of the present disclosure.
  • FIG. 7 is a view for explaining a movement trajectory of a robot according to an embodiment of the present disclosure.
  • FIG. 8 is a detailed block diagram illustrating a robot according to an embodiment of the present disclosure.
  • FIG. 9 is a flowchart illustrating a method of controlling a robot according to an embodiment of the present disclosure.
  • FIG. 1 is a block diagram illustrating a robot according to an embodiment of the present disclosure.
  • the robot 100 may be one of an automated guided vehicle capable of moving goods to a destination or a robot cleaner capable of performing cleaning while driving in a space in the home. have.
  • the present invention is not limited thereto, and the robot 100 is a robot capable of performing air purification while driving in the space in the building, a mobile robot capable of moving a human to a destination, and driving the space in the home to organize clothing.
  • It can be implemented with various robots equipped with wheels, such as a household-supporting robot that can perform tasks such as washing dishes or a security-type bot that can perform expenses while driving in a space in a building.
  • the robot 100 includes a driving unit 110 and a processor 120.
  • the driving unit 110 may move the robot 100.
  • the driving unit 110 may be connected to one or more wheels, and may include a driving unit such as a motor capable of rotating the wheels.
  • the driving unit 110 may perform driving operations such as movement, stop, and direction change of the robot 100 according to the control signal of the processor 120.
  • the processor 120 controls the overall operation of the robot 100.
  • the processor 120 may include one or more of a central processing unit (CPU), an application processor (AP), or a communication processor (CP).
  • the processor 120 may be implemented by at least one general-purpose processor (digital processor), digital signal processor (digital signal processor), application specific integrated circuit (ASIC), system on chip (SoC), microcomputer (MICOM), and the like. have.
  • the processor 120 may determine a driving level of the robot 100 based on the surrounding environment information of the robot 100.
  • the surrounding environment information is information about the space in which the robot 100 is located, and the processor 120 determines a space in which the robot 100 is located based on pre-stored map information, and drives the corresponding space. You can judge the level.
  • the processor 120 drives the robot 100 to drive the driving level corresponding to the living room based on the driving level information for each space. You can decide by level.
  • the processor 120 may determine the maximum allowable speed and the maximum allowable torque corresponding to the driving level of the robot 100, based on the information on the maximum allowable speed and the maximum allowable torque preset for each drive level. have.
  • the processor 120 calculates the maximum allowable acceleration of the robot 100 based on the maximum allowable torque, and the driving unit 110 so that the moving speed of the robot 100 reaches the maximum allowable speed based on the maximum allowable acceleration. ) Can be controlled.
  • the present disclosure can not only perform the work quickly in the corresponding space, but also perform the work within the maximum allowable speed, so that the work can be safely performed.
  • the processor 120 may reduce the moving speed of the robot 100 based on the maximum allowable acceleration. Accordingly, the present disclosure can prevent collisions and the like while quickly performing operations in the corresponding space.
  • FIG. 2 is a diagram for explaining information on a driving level for each space according to an embodiment of the present disclosure.
  • the processor 120 may determine a driving level of the robot 100 based on the surrounding environment information of the robot 100.
  • the surrounding environment information may include information about a space in which the robot 100 is located.
  • the processor 120 may determine a space in which the robot 100 is located based on pre-stored map information, and determine a driving level of the robot 100 based on the space in which the robot 100 is located.
  • the processor 120 may determine a driving level corresponding to the living room as a driving level of the robot 100.
  • the processor 120 may use information about a driving level for each pre-stored space.
  • the robot 100 has a driving level corresponding to the living room is 1, a driving level corresponding to the kitchen is 2, and a driving level corresponding to Room 1 and Room 2 is 5, and Room
  • the driving level corresponding to 3 may store information on the driving level for each space of 3 persons.
  • the processor 120 sets the driving level 1 corresponding to the living room to the robot 100 based on information on the driving level for each space that is pre-stored. It can be determined by the driving level.
  • the driving level for each space may be received from an external electronic device (not shown) such as a server (not shown) or a smart phone.
  • an external electronic device such as a server (not shown) or a smart phone.
  • the above-described information on the driving level for each space is only an embodiment, and may be variously set or changed according to a user command.
  • the driving level corresponding to the living room may be set to 3.
  • the robot 100 receives information about a location from an external device such as a beacon.
  • the space in which the robot 100 is located may be determined by various methods such as.
  • the processor 120 may continuously acquire the surrounding environment information while performing the work, and if it is determined that the surrounding environment information has been changed, may determine the driving level of the robot 100 based on the changed surrounding environment information. That is, when the robot 120 is located in the kitchen according to the movement of the robot 100 in the state in which the processor 120 is performing work in the living room, the driving level corresponding to the kitchen is set to the driving level of the robot 100 Can decide.
  • FIG. 3 is a view for explaining information about a maximum allowable torque and a maximum allowable speed that are preset for each driving level according to an embodiment of the present disclosure.
  • the processor 120 may allow the maximum allowance corresponding to the driving level of the robot 100 based on information on the maximum allowable torque and the maximum allowable speed preset for each drive level. Speed and maximum allowable torque can be determined.
  • the processor 120 may use information about the maximum allowable torque and the maximum allowable speed preset for each driving level, which are pre-stored.
  • the robot 100 has maximum allowable torque and maximum allowable speed corresponding to drive level 1 of 100 (N ⁇ m) and 5 (m/sec), respectively, and corresponds to drive level 2
  • the maximum allowable torque and maximum allowable speed are 80 (Nm) and 4 (m/sec), respectively, and the maximum allowable torque and maximum allowable speed corresponding to drive level 3 are 60 (Nm) and 3 (m), respectively.
  • the maximum allowable torque and maximum allowable speed corresponding to drive level 4 are 40 (Nm) and 2 (m/sec), respectively, and the maximum allowable torque and maximum allowable speed corresponding to drive level 5 are respectively 20 (N ⁇ m) and 1 (m / sec), information about the maximum allowable torque preset for each driving level and the maximum allowable speed may be stored.
  • the processor 120 sets the maximum allowable torque and the maximum allowable speed corresponding to the driving level of the robot 100 based on the information about the maximum allowable torque and the maximum allowable torque preset for each drive level, which are stored in advance. I can judge.
  • the processor 120 determines the driving level 1 corresponding to the living room, and the maximum allowable torque 100 corresponding to the driving level 1 ( N ⁇ m) and the maximum allowable speed 5 (m/sec) may be determined as the maximum allowable torque and maximum allowable speed of the robot 100.
  • the processor 120 may calculate the maximum allowable acceleration of the robot 100 based on the maximum allowable torque.
  • the processor 120 is based on the mass of the robot 100, the friction coefficient of the bottom surface in contact with the wheel of the robot 100 and the radius of the wheel of the robot 100, the maximum allowable torque corresponding to the maximum allowable torque Acceleration can be calculated.
  • the robot 100 may store information about the mass of the robot 100 and information about the radius of the wheel of the robot 100. Further, the robot 100 may pre-store information on the type of the floor surface for each space and information on the friction coefficient. Alternatively, the robot 100 may detect the floor surface through a sensor (not shown), and determine the friction coefficient of the floor surface contacting the wheel of the robot 100 based on information on the friction coefficient for each floor surface. have.
  • the processor 120 may calculate the maximum allowable acceleration through the following equation.
  • the above-described equation is only an equation according to an embodiment for calculating the maximum allowable acceleration, the processor 120 through various equations based on the mass of the robot 100 and the radius of the wheel of the robot 100, The maximum allowable acceleration corresponding to the maximum allowable torque can be calculated.
  • the above equation assumes that the robot 100 moves through two wheels.
  • the robot 100 may be implemented with a different number of wheels, and in this case, the above-described equation may vary.
  • the processor 120 controls the driving unit 110 such that the movement speed of the robot 100 reaches the maximum allowable speed based on the maximum allowable acceleration, while the robot 100 moves at the maximum allowable speed Can be done.
  • the present disclosure can perform work quickly in the corresponding space.
  • the present disclosure performs work within the maximum allowable speed, so that the work can be safely performed.
  • the processor 120 may reduce the moving speed of the robot 100 based on the maximum allowable acceleration.
  • the processor 120 may reduce the moving speed of the robot 100 based on the maximum allowable acceleration based on the pre-stored map information, and if the robot 100 may collide with the wall surface, the robot 100 ) Can change the driving direction.
  • the present disclosure can perform the operation while moving at the maximum speed for the maximum time in the corresponding space.
  • the present disclosure can prevent collisions and the like while quickly performing operations.
  • FIG. 4 the drawing showing the moving speed of the robot 100 is shown in FIG. 4.
  • the present disclosure performs a task at a maximum speed after reaching the maximum speed with the maximum allowable acceleration, and then decreases the moving speed with the maximum allowable acceleration when there is a possibility of collision with an obstacle, etc. have.
  • the present disclosure may determine the driving level of the robot by further considering various information in addition to the surrounding environment information. Hereinafter, it will be described with reference to FIGS. 5 and 6.
  • FIG. 5 is a view for explaining information on a driving level for each type of work according to an embodiment of the present disclosure.
  • the processor 120 may determine a driving level corresponding to a task being performed by the robot 100 based on information on a driving level for each type of work.
  • the processor 120 may use pre-stored information about a driving level for each type of work.
  • the robot 100 has a driving level corresponding to a cleaning operation of 3, a driving level corresponding to a movement of goods is 2, a driving level corresponding to a user's movement of 5, and an expense.
  • the corresponding driving level may store information on a driving level for each type of work.
  • the processor 120 may determine a driving level corresponding to the task of the robot 100 based on information on a driving level for each type of task. have.
  • the processor 120 sets the driving level 3 corresponding to the cleaning operation to the robot based on information on the driving level for each type of operation ( 100).
  • the processor 120 determines a driving level corresponding to a space in which the robot 100 is located and a driving level corresponding to a task being performed by the robot 100 as a driving level of the robot 100 Can.
  • the processor 120 is a higher driving level among driving level 1 corresponding to the living room and driving level 3 corresponding to the cleaning operation. 3 may be determined as the driving level of the robot 100.
  • the processor 120 calculates the maximum allowable acceleration of the robot 100 based on the information on the maximum allowable torque and the maximum allowable speed preset for each driving level, and calculates the maximum allowable acceleration. Based on this, the operation of the robot 100 may be performed.
  • the present disclosure enables efficient and efficient operation within the maximum speed allowed for each operation. It can be done safely.
  • FIG. 6 is a view for explaining information on a driving level for each user according to an embodiment of the present disclosure.
  • the processor 120 may determine a driving level corresponding to the user based on the information on the driving level for each user.
  • the processor 120 may use pre-stored information about a driving level for each user.
  • the robot 100 has a driving level corresponding to user A 1, a driving level corresponding to user B 2, a driving level corresponding to user C 5, and a user D
  • the driving level corresponding to may store information on a driving level for each user of 3 persons.
  • the processor 120 may determine a driving level corresponding to the user based on information on the driving level for each user.
  • the processor 120 may identify a user around the robot 100.
  • the processor 120 may identify an user around the robot 100 by analyzing an image captured through the camera.
  • the camera may be included in front of the robot 100, as well as in the side and rear of the robot 100.
  • the processor 100 may recognize a user's face by applying an object recognition algorithm to an image photographed through the camera, and may identify a user located in the vicinity of the robot 100 among a plurality of previously stored faces of the user. have.
  • the processor 120 may identify an user located around the robot 100 by applying an artificial intelligence model based on a Convolution Neural Network (CNN) to the image captured through the camera.
  • CNN Convolution Neural Network
  • the processor 120 may identify a user located in the vicinity of the robot 100 based on the user voice received through the microphone.
  • the processor 120 may determine characteristics of the user voice, such as energy of the user voice, a frequency band, and/or a reverberation time (RT) of the user voice. In addition, the processor 120 may identify a user located in the vicinity of the robot 100 by comparing the characteristics of the user voice for each pre-stored user with the characteristics of the user voice received through the microphone.
  • characteristics of the user voice such as energy of the user voice, a frequency band, and/or a reverberation time (RT) of the user voice.
  • RT reverberation time
  • the processor 120 may determine a driving level corresponding to the identified user based on the information on the driving level for each user.
  • the processor 120 is a driving level corresponding to the user A. 1 may be determined as a driving level corresponding to the user.
  • the processor 120 may determine a driving level corresponding to the space in which the robot 100 is located and a driving level corresponding to the identified user as a driving level of the robot 100.
  • the processor 120 is a higher driving level among driving level 2 corresponding to the kitchen and driving level 1 corresponding to the user A 2 may be determined as the driving level of the robot 100.
  • the processor 120 calculates the maximum allowable acceleration of the robot 100 based on the information on the maximum allowable torque and the maximum allowable speed preset for each driving level, and calculates the maximum allowable acceleration. Based on this, the operation of the robot 100 may be performed.
  • the present disclosure is particularly directed to the elderly or children located around the robot 100. In some cases, work can be done safely.
  • the processor 120 may differently determine a driving level of the robot 100 according to the identified user's location.
  • the processor 120 is relatively selected from the driving level corresponding to the space in which the robot 100 is located and the driving level corresponding to the identified user.
  • the high driving level is determined as the driving level of the robot 100, and when the identified user is located outside the preset range from the robot 100, the driving level corresponding to the space where the robot 100 is located is determined by the robot 100.
  • the preset range may be variously set or changed according to a user command such as 1 m from the robot 100.
  • the processor 120 is relatively selected from the driving level corresponding to the space in which the robot 100 is located and the driving level corresponding to the identified user.
  • the high driving level is determined as the driving level of the robot 100, and when the identified user is located outside the 1 m range from the robot 100, the driving level corresponding to the space in which the robot 100 is located is determined by the robot 100. It can be determined by the driving level.
  • FIG. 7 is a view for explaining a movement trajectory of a robot according to an embodiment of the present disclosure.
  • the processor 120 drives the driving unit 110 to reduce the moving speed of the robot 100 based on the maximum allowable acceleration. ) Can be controlled.
  • the processor 120 changes the driving direction of the robot 100 when at least one of an obstacle and a user is detected around the robot 100, and at this time, based on the maximum allowable acceleration, the moving speed of the robot 100 is changed.
  • the driving unit 110 may be controlled to decrease.
  • the processor 120 may control the driving unit 110 such that the robot 100 moves along the predetermined trajectory while the robot 100 changes the driving direction.
  • the processor 120 may control the driving unit 110 to move according to the Bezier curve while the robot 100 changes the driving direction.
  • the Bezier curve means a curve connecting the start point to the end point by considering one or more additional points in addition to the start point and end point.
  • the processor 120 may control the driving unit 110 to move the robot 100 according to the fifth Bezier curve while the robot 100 changes the driving direction.
  • the trajectory according to the fifth order Bezier curve may be determined based on the following equation.
  • the starting point P0 means a point at which the robot 100 starts changing the driving direction
  • the ending point P5 means a point at which the robot 100 starts driving in a linear direction
  • the additional points P1 to P4 may be preset based on the distance between the start point and the end point, the radius of the wheel of the robot 100, and may be variously set or changed according to a user command. .
  • the fifth-order Bezier curve is only an example, and the present disclosure is capable of moving the robot 100 through various orders of Bezier curves, such as the third-order Bezier curve.
  • the robot 100 may move through a trajectory as shown in FIG. 7. Accordingly, the present disclosure reduces vibration of the robot 100 compared to a case where the traveling direction of the robot 100 is changed in a simple circular or straight direction at an inflection point, and in particular prevents a case where the acceleration is infinitely instantaneous and the motor Failure can be prevented.
  • FIG. 8 is a detailed block diagram illustrating a robot according to an embodiment of the present disclosure.
  • the robot 100 includes a driving unit 110, a storage unit 130, a communication unit 140, a display 150, a sensing unit 160, and an interface 170 And a processor 120.
  • a driving unit 110 a storage unit 130
  • a communication unit 140 a communication unit 140
  • a display 150 a display 150
  • a sensing unit 160 a sensing unit 160
  • an interface 170 a processor 120.
  • the storage unit 130 may store various programs and data necessary for the operation of the robot 100.
  • the storage unit 130 may be implemented as a non-volatile memory, volatile memory, flash-memory, hard disk drive (HDD) or solid state drive (SSD).
  • the storage unit 130 may store information on a driving level for each space, information on a driving level for each type of work, or information on a driving level for each user. In addition, the storage unit 130 may store information about a user's face and characteristics of a user's voice. In addition, the storage unit 130 may store information on a maximum allowable torque and a maximum allowable speed preset for each driving level.
  • the storage unit 130 may store map information generated according to the driving of the driving unit 110.
  • the map information is information indicating the movement path of the robot 100, may be in the form of an image, or may be locus data in the form of coordinates.
  • the storage unit 130 may store a plan view of the indoor space received through the communication unit 140.
  • the floor plan may include location information and area information for each space.
  • the communication unit 140 may transmit and receive various data by performing communication with an external device.
  • the communication unit 140 may communicate with an external device through various communication methods such as BT (Bluetooth), BLE (Bluetooth Low Energy), WI-FI (Wireless Fidelity), and Zigbee.
  • BT Bluetooth
  • BLE Bluetooth Low Energy
  • WI-FI Wireless Fidelity
  • Zigbee Zigbee
  • the communication unit 140 may receive a user command for performing a task from an external device.
  • the operation may be various operations such as an air purification operation, a cleaning operation, or moving goods.
  • the external device may be a smart phone or the like, but is not limited thereto.
  • the display 150 may display various screens. For example, the display 150 may display information related to various functions provided by the robot 100 and/or a user interface for interacting with a user. In addition, the display 150 may display information on the type of the task currently being performed or the progress of the task.
  • the display 150 may be implemented in various forms such as a liquid crystal display (LCD), a plasma display panel (PDP), a light emitting diode (LED), or an organic light emitting diode (OLED).
  • LCD liquid crystal display
  • PDP plasma display panel
  • LED light emitting diode
  • OLED organic light emitting diode
  • the display 150 may be implemented as a touch screen in combination with a touch sensing unit.
  • the sensing unit 160 may detect obstacles around the robot 100. Specifically, the sensing unit 160 may detect a position of an obstacle around the robot 100 and a distance from the obstacle using a supersonic sensor, an infrared sensor, and an RF sensor. In addition, the sensing unit 160 may further include a collision sensor that detects an obstacle through collision with the obstacle.
  • the interface 170 may include a plurality of function keys that a user can set or select various functions supported by the robot 100.
  • the interface 170 may be implemented as a device such as a plurality of buttons, or may be implemented as a touch screen capable of simultaneously performing the functions of the display 150.
  • the interface 170 may receive a command for power control of the robot 100, a command for selecting a task, a command command for selecting a work area, and the like.
  • the robot 100 may further include a camera (not shown) for photographing a nearby user and a microphone (not shown) for receiving a user voice.
  • FIG. 9 is a flowchart illustrating a method of controlling a robot according to an embodiment of the present disclosure.
  • the robot may determine the driving level of the robot based on the environment information of the robot when a user command for performing the robot's work is input (S910 ).
  • the surrounding environment information is information about a space in which the robot is located, and the robot can determine a space in which the robot is located based on pre-stored map information, and determine a driving level corresponding to the space.
  • the robot may determine the maximum allowable speed and the maximum allowable torque corresponding to the driving level of the robot based on information on the maximum allowable speed and the maximum allowable torque preset for each driving level (S920). To this end, the robot may use information about the maximum allowable torque and the maximum allowable speed preset for each driving level.
  • the robot may calculate the maximum allowable acceleration of the robot based on the maximum allowable torque (S930). Specifically, the robot may calculate the maximum allowable acceleration corresponding to the maximum allowable torque based on the mass of the robot, the friction coefficient of the bottom surface in contact with the robot's wheel, and the radius of the wheel of the robot.
  • the robot may control the robot so that the robot's moving speed reaches the maximum allowable speed based on the maximum allowable acceleration (S940), and control the robot to perform the operation while moving at the maximum allowable speed (S950). .
  • the present disclosure can perform work quickly in the corresponding space.
  • the present disclosure performs work within the maximum allowable speed, so that the work can be safely performed.
  • a non-transitory computer readable medium in which a program for sequentially performing a control method of a robot according to the present invention is stored may be provided.
  • the non-transitory readable medium means a medium that stores data semi-permanently and that can be read by a device, rather than a medium that stores data for a short time, such as registers, caches, and memory.
  • a non-transitory readable medium such as a CD, DVD, hard disk, Blu-ray disk, USB, memory card, ROM, and the like.

Abstract

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

Description

로봇 및 그 제어 방법
본 발명은 로봇 및 그 제어 방법에 관한 것으로, 더욱 상세하게는 이동 속도를 변경하는 로봇 및 그 제어 방법에 관한 것이다.
전자 기술의 발달로 다양한 로봇이 개발되고 있다. 로봇은 각종 산업 분야, 의료 분야, 우주 항공 분야뿐만 아니라, 일반 가정집에도 활용되고 있다.
특히, 최근에는 사람을 대신해 물품을 분류하고, 목적지까지 물품을 운반하는 자동 경로 차량(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 PCTKR2020000227-appb-img-000001
(여기에서,
Figure PCTKR2020000227-appb-img-000002
,
Figure PCTKR2020000227-appb-img-000003
,
Figure PCTKR2020000227-appb-img-000004
,
Figure PCTKR2020000227-appb-img-000005
: 최대 허용 토크,
Figure PCTKR2020000227-appb-img-000006
: 최대 허용 가속도,
Figure PCTKR2020000227-appb-img-000007
: 최대 허용 속도,
Figure PCTKR2020000227-appb-img-000008
: 바퀴의 반경,
Figure PCTKR2020000227-appb-img-000009
: 바퀴 중심과 바퀴 사이의 거리,
Figure PCTKR2020000227-appb-img-000010
: 관성 행렬,
Figure PCTKR2020000227-appb-img-000011
: 코리올리-원심력,
Figure PCTKR2020000227-appb-img-000012
: viscous 마찰계수,
Figure PCTKR2020000227-appb-img-000013
Figure PCTKR2020000227-appb-img-000014
이다.)
한편, 상술한 수학식은 최대 허용 가속도를 산출하기 위한 일 실시 예에 따른 수학식일 뿐, 프로세서(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 PCTKR2020000227-appb-img-000015
여기에서, 시작 지점(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 등과 같은 비일시적 판독 가능 매체에 저장되어 제공될 수 있다.
또한, 이상에서는 본 발명의 바람직한 실시 예에 대하여 도시하고 설명하였지만, 본 발명은 상술한 특정의 실시 예에 한정되지 아니하며, 청구범위에서 청구하는 본 발명의 요지를 벗어남이 없이 당해 발명이 속하는 기술분야에서 통상의 지식을 가진 자에 의해 다양한 변형실시가 가능한 것은 물론이고, 이러한 변형실시들은 본 발명의 기술적 사상이나 전망으로부터 개별적으로 이해되어져서는 안될 것이다.
-
-

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

Priority Applications (1)

Application Number Priority Date Filing Date Title
US17/424,247 US11938637B2 (en) 2019-01-22 2020-01-07 Robot and control method thereof

Applications Claiming Priority (2)

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

Publications (1)

Publication Number Publication Date
WO2020153628A1 true WO2020153628A1 (ko) 2020-07-30

Family

ID=71736244

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2020/000227 WO2020153628A1 (ko) 2019-01-22 2020-01-07 로봇 및 그 제어 방법

Country Status (3)

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

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2022102061A (ja) * 2020-12-25 2022-07-07 トヨタ自動車株式会社 制御装置、タスクシステム、制御方法及び制御プログラム
WO2023003158A1 (ko) * 2021-07-20 2023-01-26 삼성전자주식회사 로봇 및 그 제어 방법

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20030093643A (ko) * 2002-06-04 2003-12-11 삼성전자주식회사 로봇의 모션 제어 장치 및 방법
KR20110011424A (ko) * 2009-07-28 2011-02-08 주식회사 유진로봇 이동 로봇의 위치 인식 및 주행 제어 방법과 이를 이용한 이동 로봇
KR20140086245A (ko) * 2012-12-28 2014-07-08 레드원테크놀러지 주식회사 제한된 시간 내에서의 로봇 커버리지 방법 및 시스템
US20160299509A1 (en) * 2013-11-15 2016-10-13 Hitachi, Ltd. Mobile Robot System
KR20180038870A (ko) * 2016-10-07 2018-04-17 엘지전자 주식회사 공항 로봇 및 이를 포함하는 시스템

Family Cites Families (17)

* 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 株式会社ノーリツ 風呂釜と給湯器の複合燃焼装置
KR100654676B1 (ko) 2005-03-07 2006-12-08 삼성광주전자 주식회사 로봇청소기
JP5308840B2 (ja) 2009-01-21 2013-10-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 株式会社国際電気通信基礎技術研究所 コミュニケーションロボット
EP2838698B2 (de) 2012-07-10 2020-01-01 Siemens Aktiengesellschaft Roboteranordnung und verfahren zum steuern eines roboters
US9043025B2 (en) 2012-08-31 2015-05-26 Rethink Robotics, Inc. Systems and methods for safe robot operation
JP6071839B2 (ja) 2013-10-22 2017-02-01 本田技研工業株式会社 脚式移動ロボットの制御システム
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
EP3617828A1 (en) * 2018-08-28 2020-03-04 Nilfisk A/S Autonomous surface treatment vehicle with fast wall mode

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20030093643A (ko) * 2002-06-04 2003-12-11 삼성전자주식회사 로봇의 모션 제어 장치 및 방법
KR20110011424A (ko) * 2009-07-28 2011-02-08 주식회사 유진로봇 이동 로봇의 위치 인식 및 주행 제어 방법과 이를 이용한 이동 로봇
KR20140086245A (ko) * 2012-12-28 2014-07-08 레드원테크놀러지 주식회사 제한된 시간 내에서의 로봇 커버리지 방법 및 시스템
US20160299509A1 (en) * 2013-11-15 2016-10-13 Hitachi, Ltd. Mobile Robot System
KR20180038870A (ko) * 2016-10-07 2018-04-17 엘지전자 주식회사 공항 로봇 및 이를 포함하는 시스템

Also Published As

Publication number Publication date
KR20200094831A (ko) 2020-08-10
US20220152828A1 (en) 2022-05-19
US11938637B2 (en) 2024-03-26

Similar Documents

Publication Publication Date Title
WO2013085085A1 (en) Automatic moving apparatus and manual operation method thereof
AU2014297039B2 (en) Auto-cleaning system, cleaning robot and method of controlling the cleaning robot
WO2011059296A2 (ko) 로봇 청소기 및 그의 제어 방법
WO2019124913A1 (en) Robot cleaners and controlling method thereof
WO2021101047A1 (en) Mobile robot device and method for controlling mobile robot device
WO2018052204A1 (ko) 공항 로봇 및 그를 포함하는 공항 로봇 시스템
WO2020153628A1 (ko) 로봇 및 그 제어 방법
WO2018128353A1 (en) Robot cleaner and method for controlling thereof
WO2015072623A1 (ko) 클리닝 디바이스 및 그 제어 방법
WO2018043957A1 (en) Robot cleaner
WO2011013862A1 (ko) 이동 로봇의 위치 인식 및 주행 제어 방법과 이를 이용한 이동 로봇
WO2018043966A1 (ko) 로봇 청소기, 단말 장치 및 그 제어 방법
WO2017034056A1 (ko) 이동 로봇 및 이의 제어방법
WO2021045559A1 (en) Cleaner and control method thereof
WO2020218644A1 (ko) 인공지능을 이용하여 로봇의 위치를 재정의하는 방법 및 로봇
WO2018117513A1 (ko) 공항용 로봇 및 그의 동작 방법
WO2018117514A1 (ko) 공항용 로봇 및 그의 동작 방법
KR101352518B1 (ko) 이동 로봇, 단말 장치, 및 이동 로봇의 원격 제어 시스템과 방법
KR20130027345A (ko) 이동 로봇, 및 이동 로봇의 원격 제어 시스템 및 방법
WO2021020911A1 (en) Mobile robot
WO2019151734A1 (ko) 카메라 구동 방식 변경 기반의 음성 및 얼굴 인식 장치 및 방법
WO2020096169A1 (ko) 이동 로봇의 도난 방지 시스템
WO2021040179A1 (ko) 로봇 및 이의 제어 방법
WO2021158066A1 (en) Electronic apparatus and control method thereof
WO2017003152A1 (en) Apparatus and method for controlling object movement

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 20744926

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 20744926

Country of ref document: EP

Kind code of ref document: A1