WO2022045677A1 - 로봇 및 로봇의 제어 방법 - Google Patents
로봇 및 로봇의 제어 방법 Download PDFInfo
- Publication number
- WO2022045677A1 WO2022045677A1 PCT/KR2021/011090 KR2021011090W WO2022045677A1 WO 2022045677 A1 WO2022045677 A1 WO 2022045677A1 KR 2021011090 W KR2021011090 W KR 2021011090W WO 2022045677 A1 WO2022045677 A1 WO 2022045677A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- robot
- driving data
- driving
- communication connection
- error
- Prior art date
- Legal status (The legal status 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 status listed.)
- Ceased
Links
Images
Classifications
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05D—SYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
- G05D1/00—Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
- G05D1/02—Control of position or course in two dimensions
- G05D1/021—Control of position or course in two dimensions specially adapted to land vehicles
- G05D1/0276—Control of position or course in two dimensions specially adapted to land vehicles using signals provided by a source external to the vehicle
- G05D1/028—Control of position or course in two dimensions specially adapted to land vehicles using signals provided by a source external to the vehicle using a RF signal
- G05D1/0282—Control of position or course in two dimensions specially adapted to land vehicles using signals provided by a source external to the vehicle using a RF signal generated in a local control room
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Program-controlled manipulators
- B25J9/16—Program controls
- B25J9/1602—Program controls characterised by the control system, structure, architecture
- B25J9/161—Hardware, e.g. neural networks, fuzzy logic, interfaces, processor
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Program-controlled manipulators
- B25J9/16—Program controls
- B25J9/1628—Program controls characterised by the control loop
- B25J9/1633—Program controls characterised by the control loop compliant, force, torque control, e.g. combined with position control
-
- A—HUMAN NECESSITIES
- A61—MEDICAL OR VETERINARY SCIENCE; HYGIENE
- A61H—PHYSICAL THERAPY APPARATUS, e.g. DEVICES FOR LOCATING OR STIMULATING REFLEX POINTS IN THE BODY; ARTIFICIAL RESPIRATION; MASSAGE; BATHING DEVICES FOR SPECIAL THERAPEUTIC OR HYGIENIC PURPOSES OR SPECIFIC PARTS OF THE BODY
- A61H1/00—Apparatus for passive exercising; Vibrating apparatus; Chiropractic devices, e.g. body impacting devices, external devices for briefly extending or aligning unbroken bones
- A61H1/02—Stretching or bending or torsioning apparatus for exercising
- A61H1/0237—Stretching or bending or torsioning apparatus for exercising for the lower limbs
- A61H1/0244—Hip
-
- A—HUMAN NECESSITIES
- A61—MEDICAL OR VETERINARY SCIENCE; HYGIENE
- A61H—PHYSICAL THERAPY APPARATUS, e.g. DEVICES FOR LOCATING OR STIMULATING REFLEX POINTS IN THE BODY; ARTIFICIAL RESPIRATION; MASSAGE; BATHING DEVICES FOR SPECIAL THERAPEUTIC OR HYGIENIC PURPOSES OR SPECIFIC PARTS OF THE BODY
- A61H3/00—Appliances for aiding patients or disabled persons to walk about
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J13/00—Controls for manipulators
- B25J13/08—Controls for manipulators by means of sensing devices, e.g. viewing or touching devices
- B25J13/085—Force or torque sensors
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J19/00—Accessories fitted to manipulators, e.g. for monitoring, for viewing; Safety devices combined with or specially adapted for use in connection with manipulators
- B25J19/02—Sensing devices
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Program-controlled manipulators
- B25J9/0006—Exoskeletons, i.e. resembling a human figure
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Program-controlled manipulators
- B25J9/16—Program controls
- B25J9/1628—Program controls characterised by the control loop
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Program-controlled manipulators
- B25J9/16—Program controls
- B25J9/1628—Program controls characterised by the control loop
- B25J9/1653—Program controls characterised by the control loop parameters identification, estimation, stiffness, accuracy, error analysis
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Program-controlled manipulators
- B25J9/16—Program controls
- B25J9/1679—Program controls characterised by the tasks executed
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B9/00—Safety arrangements
- G05B9/02—Safety arrangements electric
- G05B9/03—Safety arrangements electric with multiple-channel loop, i.e. redundant control systems
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05D—SYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
- G05D1/00—Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
- G05D1/0055—Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots with safety arrangements
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05D—SYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
- G05D1/00—Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
- G05D1/0055—Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots with safety arrangements
- G05D1/0077—Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots with safety arrangements using redundant signals or controls
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05D—SYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
- G05D1/00—Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
- G05D1/02—Control of position or course in two dimensions
- G05D1/021—Control of position or course in two dimensions specially adapted to land vehicles
- G05D1/0212—Control of position or course in two dimensions specially adapted to land vehicles with means for defining a desired trajectory
- G05D1/0223—Control 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
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05D—SYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
- G05D1/00—Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
- G05D1/02—Control of position or course in two dimensions
- G05D1/021—Control of position or course in two dimensions specially adapted to land vehicles
- G05D1/0268—Control of position or course in two dimensions specially adapted to land vehicles using internal positioning means
- G05D1/0274—Control of position or course in two dimensions specially adapted to land vehicles using internal positioning means using mapping information stored in a memory device
-
- A—HUMAN NECESSITIES
- A61—MEDICAL OR VETERINARY SCIENCE; HYGIENE
- A61H—PHYSICAL THERAPY APPARATUS, e.g. DEVICES FOR LOCATING OR STIMULATING REFLEX POINTS IN THE BODY; ARTIFICIAL RESPIRATION; MASSAGE; BATHING DEVICES FOR SPECIAL THERAPEUTIC OR HYGIENIC PURPOSES OR SPECIFIC PARTS OF THE BODY
- A61H3/00—Appliances for aiding patients or disabled persons to walk about
- A61H2003/007—Appliances for aiding patients or disabled persons to walk about secured to the patient, e.g. with belts
-
- A—HUMAN NECESSITIES
- A61—MEDICAL OR VETERINARY SCIENCE; HYGIENE
- A61H—PHYSICAL THERAPY APPARATUS, e.g. DEVICES FOR LOCATING OR STIMULATING REFLEX POINTS IN THE BODY; ARTIFICIAL RESPIRATION; MASSAGE; BATHING DEVICES FOR SPECIAL THERAPEUTIC OR HYGIENIC PURPOSES OR SPECIFIC PARTS OF THE BODY
- A61H2201/00—Characteristics of apparatus not provided for in the preceding codes
- A61H2201/16—Physical interface with patient
- A61H2201/1602—Physical interface with patient kind of interface, e.g. head rest, knee support or lumbar support
- A61H2201/164—Feet or leg, e.g. pedal
- A61H2201/1642—Holding means therefor
-
- A—HUMAN NECESSITIES
- A61—MEDICAL OR VETERINARY SCIENCE; HYGIENE
- A61H—PHYSICAL THERAPY APPARATUS, e.g. DEVICES FOR LOCATING OR STIMULATING REFLEX POINTS IN THE BODY; ARTIFICIAL RESPIRATION; MASSAGE; BATHING DEVICES FOR SPECIAL THERAPEUTIC OR HYGIENIC PURPOSES OR SPECIFIC PARTS OF THE BODY
- A61H2201/00—Characteristics of apparatus not provided for in the preceding codes
- A61H2201/50—Control means thereof
- A61H2201/5007—Control means thereof computer controlled
- A61H2201/501—Control means thereof computer controlled connected to external computer devices or networks
-
- A—HUMAN NECESSITIES
- A61—MEDICAL OR VETERINARY SCIENCE; HYGIENE
- A61H—PHYSICAL THERAPY APPARATUS, e.g. DEVICES FOR LOCATING OR STIMULATING REFLEX POINTS IN THE BODY; ARTIFICIAL RESPIRATION; MASSAGE; BATHING DEVICES FOR SPECIAL THERAPEUTIC OR HYGIENIC PURPOSES OR SPECIFIC PARTS OF THE BODY
- A61H2230/00—Measuring physical parameters of the user
- A61H2230/62—Posture
- A61H2230/625—Posture used as a control parameter for the apparatus
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Program-controlled manipulators
- B25J9/16—Program controls
- B25J9/1674—Program controls characterised by safety, monitoring, diagnostic
Definitions
- the present disclosure relates to a control method of a robot and a control method of the robot, and specifically, even when an error occurs in the communication connection between the robot and an external device, the robot's motions performed before and after the error occur naturally. It relates to a robot and a method for controlling the robot.
- driving data previously stored in the robot or driving data generated by the robot itself may be used, but the driving data is received from an external device such as a server or an edge computing device in real time. Also, it is possible to control the operation of the robot based on the received driving data.
- the present disclosure has been devised to solve the problems described above, and an object of the present disclosure is to provide a robot in which at least a part of the robot's operation is controlled based on driving data received from an external device, between the robot and the external device. Even when an error in communication connection occurs, it is intended to control the operation of the robot performed before and after the error occurs so that it naturally continues.
- the robot includes a communication unit including a circuit, a driving unit for driving the robot, a memory and a processor for storing at least one instruction
- the processor receives driving data from an external device connected to the robot through the communication unit by executing the at least one instruction and stores it in the memory, and based on the driving data, the robot responds to the driving data.
- the driving unit is controlled to perform an operation, and when an error occurs in the communication connection between the robot and the external device, a critical section is based on a point in time when an error in the communication connection occurs among the driving data pre-stored in the memory. Identifies second drive data matching the first drive data received from the external device in the inside, and based on the third drive data continuous to the second drive data, the time when an error with respect to the communication connection occurs at the robot
- the driving unit is controlled to perform subsequent operations.
- each of the first driving data and the second driving data includes information on at least one parameter for controlling the driving unit, and the information on the at least one parameter includes information on a force applied to the robot. And it may include information about the time the force is applied to the robot.
- the processor may identify second driving data matching the first driving data based on information on at least one parameter included in each of the first driving data and the second driving data.
- the critical section may be a section from a point in time before a preset time based on the time when the error with respect to the communication connection occurs to the time when the error with respect to the communication connection occurs.
- the driving unit may be controlled to perform an operation subsequent to the operation corresponding to the third driving data.
- the processor receives the fifth driving data from the external device through the communication unit may be received, and the driving unit may be controlled so that the robot performs an operation after the error in the communication connection is resolved based on the fifth driving data.
- the robot is a traveling robot worn on the user's body
- the processor controls the driving unit to perform an operation for assisting the user's walking while the robot operates in the first mode, While the robot operates in the second mode, the driving unit may be controlled such that the robot performs an operation for applying resistance to the user's gait.
- the robot further includes at least one sensor, and the processor controls the communication unit to acquire information about the user's gait through the at least one sensor and transmit it to the external device, and through the communication unit Driving data corresponding to information on the user's gait may be received from the external device.
- the robot is a traveling robot
- the processor obtains map information on the path the robot moves and stores it in the memory, and when an error occurs in the communication connection between the robot and the external device, the map A position at which the robot stops may be identified based on the information, and the driving unit may be controlled to stop the robot after decelerating to the stop position based on the third driving data.
- the control method of the robot includes the steps of receiving and storing driving data from an external device connected to the robot, controlling the driving unit of the robot so that the robot performs an operation corresponding to the driving data based on the driving data; When an error occurs in the communication connection between the robot and the external device, it matches the first driving data received from the external device within a critical section based on the point in time when the communication connection error occurs among the previously stored driving data.
- the steps of identifying the second driving data and controlling the driving unit so that the robot performs an operation after the point in time when an error with respect to the communication connection occurs based on third driving data continuous to the second driving data include
- each of the first driving data and the second driving data includes information on at least one parameter for controlling the driving unit, and the information on the at least one parameter includes information on a force applied to the robot. And it may include information about the time the force is applied to the robot.
- the step of identifying the second driving data includes selecting second driving data matching the first driving data based on information on at least one parameter included in each of the first driving data and the second driving data. can be identified.
- the critical section may be a section from a point in time before a preset time based on the time when the error with respect to the communication connection occurs to the time when the error with respect to the communication connection occurs.
- the method may further include controlling the driving unit to perform an operation subsequent to the operation corresponding to the third driving data.
- the method may further include controlling the driving unit so that the robot performs an operation after the error in the communication connection is resolved based on the step and the fifth driving data.
- the robot is a traveling robot worn on the user's body
- the control method of the robot includes the driving unit so that the robot performs an operation to assist the user's walking while the robot operates in the first mode.
- the method may further include controlling the driving unit and controlling the driving unit so that the robot performs an operation for applying resistance to the user's gait while the robot operates in the second mode.
- the method may further include acquiring and transmitting information on the user's gait to the external device and receiving driving data corresponding to the user's gait information from the external device.
- the robot is a traveling robot
- the control method of the robot includes the steps of acquiring and storing map information on a path the robot moves, and when an error occurs in the communication connection between the robot and the external device, the It may include identifying a position at which the robot will stop based on map information and controlling the driving unit to stop the robot after decelerating to the position where it will stop based on the third driving data.
- a non-transitory computer-readable recording medium including a program for executing a control method of a robot
- the control method of the robot is external connected to the robot receiving and storing driving data from a device; controlling a driving unit of the robot so that the robot performs an operation corresponding to the driving data based on the driving data; identifying second driving data matching the first driving data received from the external device within a critical section based on a time point at which the communication connection error occurs among previously stored driving data, and the The method may include controlling the driving unit so that the robot performs an operation after a point in time when an error with respect to the communication connection occurs based on third driving data consecutive to the second driving data.
- FIG. 1 is a conceptual diagram for briefly explaining a robot and an external device according to an embodiment of the present disclosure
- FIG. 2 is a view for briefly explaining a method for controlling a robot according to an embodiment of the present disclosure
- FIG. 3 is a view for explaining in detail a control process of a robot for each section according to a temporary example of the present disclosure
- FIG. 4 is a view for explaining in more detail a control process of a robot for each section according to an embodiment of the present disclosure
- 5 is a flowchart for explaining the control process of the robot according to the present disclosure when an error occurs in the communication connection between the robot and an external device and the error is resolved;
- FIG. 6 is a block diagram illustrating a hardware configuration of a robot according to an embodiment of the present disclosure
- FIG. 7 is a block diagram illustrating a software configuration according to an embodiment of the present disclosure.
- FIG. 8 is a view for explaining a control process when the robot is a walking assistance robot according to an embodiment of the present disclosure
- FIG. 9 is a view for explaining a control process when the robot is a traveling robot according to an embodiment of the present disclosure.
- FIG. 10 is a diagram for describing a control process when there are a plurality of external devices according to an embodiment of the present disclosure.
- expressions such as “have,” “may have,” “include,” or “may include” indicate the presence of a corresponding characteristic (eg, a numerical value, function, operation, or component such as a part). and does not exclude the presence of additional features.
- expressions such as “A or B,” “at least one of A and/and B,” or “one or more of A or/and B” may include all possible combinations of the items listed together.
- “A or B,” “at least one of A and B,” or “at least one of A or B” means (1) includes at least one A, (2) includes at least one B; Or (3) it may refer to all cases including both at least one A and at least one B.
- a component eg, a first component
- another component eg, a second component
- the certain element may be directly connected to the other element or may be connected through another element (eg, a third element).
- a component eg, a first component
- another component eg, a second component
- the expression “a device configured to” may mean that the device is “capable of” with other devices or parts.
- a processor configured (or configured to perform) A, B, and C refers to a dedicated processor (eg, an embedded processor) for performing the corresponding operations, or by executing one or more software programs stored in a memory device.
- a generic-purpose processor eg, a CPU or an application processor
- a 'module' or 'unit' performs at least one function or operation, and may be implemented as hardware or software, or a combination of hardware and software.
- a plurality of 'modules' or a plurality of 'units' may be integrated into at least one module and implemented with at least one processor, except for 'modules' or 'units' that need to be implemented with specific hardware.
- FIG. 1 is a conceptual diagram for briefly explaining a robot and an external device according to an embodiment of the present disclosure.
- the 'driving data' is a term for collectively referring to data for controlling the operation of the robot 100 .
- the driving data refers to data configured to control the operation of the robot 100 by controlling the driving unit included in the robot 100 .
- the driving data may include information on at least one parameter for controlling the driving unit in a specific section.
- the information about the at least one parameter may include information about a force applied to the robot 100 and information about a time when the force is applied to the robot 100 .
- information on at least one parameter is not limited thereto.
- the driving data may be generated by the external device 200 based on information about the robot operation received from the robot 100 .
- the 'drive unit' refers to a configuration capable of generating power for implementing various operations of the robot 100 based on driving data.
- the power generated by the driving unit may be transmitted to the supporting unit physically connected to the driving unit to move the supporting unit, and thus various operations of the robot 100 may be implemented.
- FIGS. 6, 8 and 9 A more detailed description of the driving unit and the supporting unit will be described in detail with reference to FIGS. 6, 8 and 9 .
- the robot 100 may receive driving data C1 for performing the operation of the fourth section while performing the operation of the third section based on the received driving data B1, and based on the received driving data C1, Driving data A2 for performing the operation of the fifth period may be received while the operation of the fourth period is performed. Furthermore, the robot may continuously perform the process as described above in the fifth section and the section following it.
- the robot 100 receives the driving data from the external device 200 and the process of performing an operation corresponding to the driving data can be performed in real time means that the robot 100 and the external device 200 communicate with each other. It is assumed that no error occurs in the connection. That is, in the example of FIG. 3 , the robot 100 and the robot 100 in the process of receiving the driving data for performing the operation of the sixth section while performing the operation of the fifth section based on the received driving data A2 If an error occurs in the communication connection between the external devices 200 , the operation of the sixth section continuous to the fifth section may not be smoothly performed.
- the robot 100 may identify whether an error has occurred in the communication connection between the robot 100 and the external device 200 ( S230 ).
- the term 'identification' may be replaced with terms such as 'confirmation', 'detection', 'detection' or 'judgment'.
- the robot 100 while performing an operation corresponding to the driving data based on the driving data received from the external device 200 , the robot 100 causes an error in the communication connection between the robot 100 and the external device 200 . occurrence can be continuously detected and monitored.
- the 'critical section' is a section from a point in time before a preset time based on a point in time when an error in communication connection between the robot 100 and the external device 200 occurs to a point in time when an error in communication connection occurs.
- the critical section may be a section from the start time of the fourth section to a time point at which an error with respect to the communication connection occurs.
- the 'preset time' may be set in various ways according to embodiments.
- 'pre-stored driving data' is a term for generically the driving data received before the critical period as defined above, and is used in a meaning distinct from 'driving data received within the critical period'. That is, as in the example of FIG. 3 , when the critical section is preset as a section from the start time of the fourth section to the time when an error in communication connection occurs, the pre-stored driving data is external before the start time of the fourth section. It may include driving data A1, driving data B1, and driving data C1, which are driving data received from the device and stored in the memory, and the driving data received within the critical period is a result of an error in communication connection from the start of the fourth period.
- the driving data A2 received from the external device before the time point and stored in the memory may be included.
- the process of identifying the second driving data matching the first driving data may be performed based on information about at least one parameter included in each of the first driving data and the second driving data.
- the robot 100 may identify the second driving data matching the first driving data based on information on at least one parameter included in each of the first driving data and the second driving data.
- the information on the at least one parameter may include information about the force applied to the robot 100 and information about the time when the force is applied to the robot 100 .
- Specific parameters may vary depending on the implementation example of the robot 100, and examples of various types of parameters will be described in detail with reference to FIGS. 6 and 7 .
- the robot 100 compares the first driving data with the second driving data, and as a result of the comparison, information on at least one parameter included in the first driving data and at least one parameter included in the second driving data
- the second driving data 1 It can be identified as driving data matching the driving data.
- the similarity of the information on the at least one parameter included in the first driving data and the information on the at least one parameter included in the second driving data means the information on the at least one parameter included in the first driving data. It may mean a case in which a difference between the information on at least one parameter included in the second driving data is less than a preset threshold value.
- the robot 100 may perform an operation after the point in time when an error in communication connection occurs based on the third driving data continuous to the second driving data.
- the third driving data refers to driving data received in a section continuous to the section in which the second driving data is received and stored in the robot's memory.
- the robot 100 performs a sixth operation based on the driving data B1 received in the second section continuous to the first section in which the driving data A1 is received. You can perform the operation of the section.
- FIG. 4 is a diagram for explaining in more detail a control process of a robot for each section according to an embodiment of the present disclosure.
- FIG. 4 illustrates a change in the magnitude of a parameter value included in the driving data according to the passage of time when the driving data is received in order to explain in more detail a process of identifying the second driving data matching the first driving data.
- the parameter may be a force applied to the robot 100, but is not limited thereto.
- the robot 100 receives and stores driving data from the external device 200 connected to the robot 100, and based on the received driving data, it A corresponding operation may be performed. At this time, if an error in the communication connection between the robot 100 and the external device 200 occurs, the robot 100 operates outside the critical section based on the point in time when an error in the communication connection among the pre-stored driving data occurs. Second driving data matching the first driving data received from the device 200 may be identified. In addition, the robot 100 may perform an operation after the point in time when an error in communication connection occurs based on the third driving data continuous to the second driving data.
- the robot 100 is
- the driving data 410 may be identified as driving data matching the driving data 430 .
- the robot 100 may perform an operation after the point in time when an error in communication connection occurs based on the driving data 420 continuous to the driving data 410 .
- the driving data 440 of FIG. 4 indicates that the driving data 420 may be used to perform an operation after the point in time when an error with respect to the communication connection occurs.
- FIG. 5 is a flowchart for explaining a control process of a robot according to the present disclosure when an error occurs in a communication connection between the robot and an external device and the error is resolved.
- the robot 100 when an error occurs in the communication connection between the robot 100 and the external device 200 ( S230-Y), the robot 100 causes an error among the pre-stored driving data. Identifies second driving data matching the first driving data received from the external device 200 within a threshold section based on the time point at which is generated (S240), and based on the third driving data continuous to the second driving data It is possible to perform an operation after the point in time when an error with respect to the communication connection occurs (S250, S510).
- the robot 100 may receive the fifth driving data from the external device 200 (S530). ). Then, the robot 100 may perform an operation after the error in the communication connection is resolved based on the received fifth driving data (S540).
- a seventh section (not shown) continuous from the external device 200 to the sixth section while an operation of the sixth section is performed based on the driving data B1 continuous to the driving data A1
- the robot 100 may perform the operation of the seventh section (not shown) based on the received driving data C2 (not shown).
- FIG. 6 is a block diagram illustrating a hardware configuration of a robot according to an embodiment of the present disclosure.
- the robot 100 may include a communication unit 110 , a driving unit 120 , a memory 130 , and a processor 140 .
- a communication unit 110 may include a communication unit 110 , a driving unit 120 , a memory 130 , and a processor 140 .
- a new configuration may be added or some configuration may be omitted in addition to such a configuration in carrying out the present disclosure.
- the communication unit 110 may include at least one of a WiFi module, a Bluetooth module, a wireless communication module, and an NFC module.
- each of the WiFi module and the Bluetooth module may perform communication using a WiFi method and a Bluetooth method.
- various types of connection information such as an SSID may be first transmitted and received, and various types of information may be transmitted and received after communication connection using this.
- the wireless communication module may perform communication according to various communication standards such as IEEE, Zigbee, 3rd Generation (3G), 3rd Generation Partnership Project (3GPP), Long Term Evolution (LTE), 5th Generation (5G), and the like.
- the NFC module may perform communication using a Near Field Communication (NFC) method using a 13.56 MHz band among various RF-ID frequency bands such as 135 kHz, 13.56 MHz, 433 MHz, 860 to 960 MHz, and 2.45 GHz.
- NFC Near Field Communication
- the driving unit 120 refers to a configuration capable of generating power for implementing various operations of the robot 100 based on driving data. And, the power generated by the driving unit 120 can be transmitted to a support (not shown) physically connected to the driving unit 120 to move the support (not shown), and thus various operations of the robot 100 are implemented. can be
- various software modules for operating the robot 100 may be stored in the memory 130 , and the processor 140 executes various software modules stored in the memory 130 to It is possible to control the operation of the robot 100 . That is, the memory 130 is accessed by the processor 140 , and reading/writing/modification/deletion/update of data by the processor 140 may be performed.
- the term memory 130 refers to the memory 130, a ROM (not shown) in the processor 140, a RAM (not shown), or a memory card (not shown) mounted in the robot 100 (eg, For example, it may be used in the meaning of including a micro SD card, a memory stick).
- driving data received from the external device 200 may be stored in the memory 130 , and information about a user's gait acquired through at least one sensor may be stored. may be
- the processor 140 controls the overall operation of the robot 100 .
- the processor 140 is connected to the configuration of the robot 100 including the communication unit 110 , the driving unit 120 and the memory 130 as described above, and is stored in the memory 130 as described above. By executing at least one instruction, the overall operation of the electronic device may be controlled.
- the processor 140 may be implemented in various ways.
- the processor 140 may include an Application Specific Integrated Circuit (ASIC), an embedded processor, a microprocessor, hardware control logic, a hardware finite state machine (FSM), or a digital signal processor (Digital Signal). Processor, DSP).
- ASIC Application Specific Integrated Circuit
- FSM hardware finite state machine
- DSP digital signal processor
- the term processor 140 may be used to include a central processing unit (CPU), a graphic processing unit (GPU), a main processing unit (MPU), and the like.
- the processor 140 receives the driving data from the external device 200 connected to the robot 100 through the communication unit 110 , and stores the received driving data in the memory 130 , and the driving data Based on , the robot 100 controls the driving unit 120 to perform an operation corresponding to the driving data, and when an error occurs in the communication connection between the robot 100 and the external device 200, the memory 130 Identifies second driving data matching the first driving data received from the external device 200 within a critical section based on a time point when an error in communication connection occurs among driving data previously stored in the , and continues to the second driving data Based on the third driving data, the robot 100 may control the driving unit 120 to perform an operation after the point in time when an error with respect to the communication connection occurs.
- FIG. 7 is a block diagram illustrating a software configuration according to an embodiment of the present disclosure.
- the robot 100 includes a driving data storage module 1010 , a communication error detection module 1020 , a driving data identification module 1030 and a driving unit 120 control module 1040 .
- the driving data storage module 1010 refers to a module that stores driving data received from the external device 200 in the memory 130 . Specifically, when driving data is received from the external device 200 through the communication unit 110 , the driving data storage module 1010 may store the received driving data in one area of the memory 130 . In addition, the processor 140 may control the driving unit 120 to perform an operation of the robot 100 corresponding to the driving data based on the driving data stored in the memory 130 .
- the communication error detection module 1020 refers to a module for detecting whether an error occurs in the communication connection between the robot 100 and the external device 200 . Specifically, while performing an operation corresponding to the driving data based on the driving data received from the external device 200 , the robot 100 causes an error in the communication connection between the robot 100 and the external device 200 . It is possible to continuously detect whether or not is generated, and transmit information according to the detection result to the driving data identification module 1030 .
- the driving data identification module 1030 refers to a module for identifying driving data matching the driving data received from the external device 200 within a critical section among the driving data pre-stored in the memory 130 . Specifically, the driving data identification module 1030 identifies driving data for performing an operation of a specific section among the driving data pre-stored in the memory 130 , and transmits information according to the identification result to the driving unit 120 control module 1040 . ) can be sent to For example, when information indicating that an error has occurred in the communication connection between the robot 100 and the external device 200 is received from the communication error detection module 1020 , the driving data identification module 1030 selects one of the previously stored driving data. Identifies second driving data matching the first driving data received from the external device 200 within a critical section based on the time when an error in communication connection occurs, and controls information according to the identification result to the driving unit 120 may be transmitted to the module 1040 .
- the driving unit 120 control module 1040 refers to a module that controls the driving unit 120 based on driving data. Specifically, when information on driving data for performing an operation of a specific section is transmitted from the driving data identification module 1030, the driving unit 120 control module 1040 receives driving data for performing an operation of the specific section. Based on this, the driving unit 120 may be controlled. For example, when information on second driving data matching the first driving data is received from the driving data identification module 1030 , the driving unit 120 control module 1040 controls the third driving data continuous to the second driving data. Based on the data, the driving unit 120 may be controlled to perform an operation after the point in time when an error in communication connection occurs.
- FIG 8 is a view for explaining a control process when the robot is a walking assistance robot according to an embodiment of the present disclosure.
- the robot 100 according to the present disclosure may be implemented as a walking assistance robot 100 - 1 in particular.
- the walking assistance robot 100 - 1 refers to a robot 100 that is worn on the user's body to assist the user's walking.
- the walking assistance robot 100 - 1 includes a driving unit 810 , a support unit 820 , a thigh belt 830 , at least one sensor 840 , a communication unit 850 , and a memory. 860 and a processor 870 .
- a driving unit 810 a driving unit 810
- a support unit 820 a thigh belt 830
- at least one sensor 840 a sensor 840
- a communication unit 850 e.g., a communication unit 850
- a memory. 860 and a processor 870 e.g., a processor 870 .
- the driving unit 810, the supporting unit 820, and the thigh belt 830 disposed on the right side of the user's leg are illustrated, but the driving unit 810, the supporting unit 820 and the thigh belt 830 are also on the left side of the user's leg. can be placed.
- content overlapping with the content described with reference to FIG. 6 will be omitted, and the description will be focused on the case in which the robot 100 according to the present disclosure is implemented as the walking assistance robot 100-1.
- the force transmitted to the user's lower body may be applied in a direction corresponding to the moving direction of the user's leg, or may be applied in a direction opposite to the moving direction of the user's leg. That is, the walking assistance robot 100-1 according to the present disclosure performs an operation for assisting a user's walking in a first mode (assist mode) and a second mode ( exercise mode).
- At least one sensor 840 may detect information about the user's walking when the user walks.
- the 'information on the user's gait' may include information on at least one of the angles of both hip joints, the difference between the angles of both hip joints, and the movement directions of both hip joints when the user walks.
- the information on the user's gait may include information on the acceleration when the user walks and information on the landing point of the user's foot when the user walks. That is, in the present disclosure, the information on the user's gait is used as a generic term for all information related to the movement of the user's legs when the user walks.
- the communication unit 850 may communicate with the external device 200 to receive driving data from the external device 200 , and may also use the external device 200 as a user interface. information about the gait of In addition, the memory 860 may store driving data received from the external device 200 and information about the user's gait acquired through the at least one sensor 840 .
- the processor 870 may be connected to the driving unit 810 , the communication unit 850 , and the memory 860 to control the operation of the walking assistance robot 100 - 1 . Specifically, the processor 870 may acquire information about the user's gait through at least one sensor 840 . Then, when information on the user's gait is obtained, the processor 870 may control the communication unit 850 to transmit information on the user's gait to the external device 200 . When driving data corresponding to the information on the user's gait is received from the external device 200 through the communication unit 850 , the processor 870 controls the operation of the walking assistance robot 100-1 based on the received driving data. can be controlled
- the processor 870 may control the driving unit 810 to apply a predetermined force in a direction corresponding to the direction in which the user's leg moves while the walking assistance robot 100-1 operates in the first mode. there is.
- the processor 870 causes an error in the communication connection among the driving data pre-stored in the memory 860 . It is possible to identify driving data corresponding to driving data that is not normally received, and control the driving unit 810 to apply a predetermined force in a direction corresponding to the moving direction of the user's leg based on the identified driving data. Accordingly, in spite of the occurrence of an error in the communication connection, the operation of the first mode performed before and after the occurrence of the error in the communication connection can be naturally continued.
- the processor 870 may control the driving unit 810 to apply a predetermined force in a direction opposite to the direction in which the user's leg moves while the walking assistance robot 100 - 1 operates in the second mode.
- the processor 870 causes an error in the communication connection among the driving data pre-stored in the memory 860 . It is possible to identify driving data corresponding to driving data that is not normally received, and control the driving unit 810 to apply a predetermined force in a direction opposite to the direction in which the user's leg moves based on the identified driving data. Accordingly, despite the occurrence of an error in the communication connection, the operation in the second mode performed before and after the error in the communication connection occurs can be naturally continued.
- FIG 9 is a view for explaining a control process when the robot is a traveling robot according to an embodiment of the present disclosure.
- the robot 100 according to the present disclosure may be implemented as a walking assistance robot 100-1 as shown in FIG. 8, or may be implemented as a traveling robot 100-2 as shown in FIG.
- the traveling robot 100 - 2 according to the present disclosure refers to a robot that travels on a path from a current location to a destination.
- the traveling robot 100 - 2 according to the present disclosure may include a companion robot or a retail service robot traveling in a limited indoor space, as well as a road traveling robot 100 - 2 traveling in an outdoor space.
- the traveling robot 100 - 2 according to the present disclosure may include a driving unit, a wheel, a communication unit, a memory, and a processor.
- content overlapping with the content described with reference to FIG. 6 will be omitted, and the description will be focused on the case in which the robot according to the present disclosure is implemented as a walking assistance robot.
- the driving unit may generate a rotational force based on electrical energy supplied to the robot, and the rotational force may be transmitted to the wheels.
- the traveling robot 100 - 2 may move from the current position to the destination by rotation of the wheels.
- the processor receives the driving data from the external device 200 connected to the driving robot 100-2 through the communication unit and stores it in a memory, and based on the driving data, the driving robot 100-2 corresponds to the driving data.
- the driving unit may be controlled to perform an operation.
- the processor performs the operation of the external device 200 within a critical section based on the time when the error occurs among the driving data pre-stored in the memory. ) to identify the second driving data matching the first driving data received from and control the driving unit so that the robot performs an operation after the point in time when a communication error occurs based on the third driving data continuous to the second driving data can do.
- communication between the traveling robot 100 - 2 and the external device 200 while the traveling robot 100 - 2 travels a route from the current location to the destination based on the driving data received from the external device 200 .
- the processor identifies the driving data corresponding to the driving data not normally received due to the communication connection error among the driving data pre-stored in the memory, and determines the communication connection based on the identified driving data.
- the driving unit may be controlled so that the traveling robot 100 - 2 can safely decelerate and then stop.
- the processor may obtain information on the path while the driving robot 100 - 2 moves on the path, generate map information based thereon, and store the map information in the memory. And, communication between the driving robot 100-2 and the external device 200 while the driving robot 100-2 travels a route from the current location to the destination based on the driving data received from the external device 200
- the processor may identify a position at which the robot will stop based on pre-stored map information, and may control the driving unit to stop the driving robot 100 - 2 after decelerating to a position where it will stop.
- FIG. 10 is a diagram for describing a control process when there are a plurality of external devices according to an embodiment of the present disclosure.
- the plurality of external devices 200 include a first external device 200 - 1 which is an edge computing device for processing data requiring rapidity, and a cloud for processing data requiring advanced processing.
- the second external device 200 - 2 which is a computing device may be included.
- the robot 100 may perform various operations by using at least some of the driving data received from the first external device 200 - 1 and the driving data received from the second external device 200 - 2 .
- the robot 100 may receive driving data from the first external device 200 - 1 ( S1010 ) and store the received driving data ( S1020 ). Then, the robot 100 may perform an operation corresponding to the driving data based on the driving data received from the first external device 200 - 1 ( S1030 ).
- the robot 100 receives the driving data from the first external device 200-1. and a process of performing an operation corresponding to the driving data can be performed in real time.
- the robot 100 transmits the driving data to the second external device 200-2. It can be requested (S1050).
- the robot 100 performs an operation corresponding to the driving data based on the driving data received from the second external device 200-2 (S1060). can be performed (S1070).
- the robot 100 receives the driving data from the second external device 200-2. and a process of performing an operation corresponding to the driving data can be performed in real time.
- the robot 100 may receive the driving data from the second external device 200 - 2 and perform a process of performing an operation corresponding to the driving data in real time.
- the robot 100 receives the second driving data matching the first driving data received from the external device within a critical section based on the point in time when the error for the second communication connection among the previously stored driving data occurs. It is identified ( S1090 ), and based on the third driving data continuous to the second driving data, an operation after the point in time when an error in communication connection occurs may be performed ( S1095 ).
- control method of the robot 100 may be implemented as a program and provided to the robot 100 .
- the program including the control method of the robot 100 may be provided by being stored in a non-transitory computer readable medium.
- the control method of the robot 100 includes receiving and storing driving data from an external device connected to the robot 100 . , controlling the driving unit of the robot 100 so that the robot 100 performs an operation corresponding to the driving data based on the driving data, and when an error occurs in the communication connection between the robot 100 and an external device, the Identifying second driving data matching the first driving data received from an external device within a critical section based on a time point at which an error in communication connection among the stored driving data occurs, and a third driving successive to the second driving data Based on the data, the robot 100 may include controlling the driving unit to perform an operation after the point in time when an error with respect to the communication connection occurs.
- the non-transitory readable medium refers to a medium that stores data semi-permanently, rather than a medium that stores data for a short moment, such as a register, a cache, a memory, and the like, and can be read by a device.
- the various applications or programs described above may be provided by being stored in a non-transitory readable medium such as a CD, DVD, hard disk, Blu-ray disk, USB, memory card, ROM, and the like.
- control method of the robot 100 and the computer-readable recording medium including the program for executing the control method of the robot 100 have been briefly described, but this is only for omitting the redundant description, and the robot 100 ) of the various embodiments may be applied to a computer-readable recording medium including a program for executing a control method of the robot 100 and a control method of the robot 100, of course.
- the method according to various embodiments disclosed in this document may be provided as included in a computer program product.
- Computer program products may be traded between sellers and buyers as commodities.
- the computer program product is distributed in the form of a device-readable storage medium (eg compact disc read only memory (CD-ROM)), or through an application store (eg Play StoreTM) or on two user devices (eg, It can be distributed online (eg download or upload), directly between smartphones (eg smartphones).
- a portion of the computer program product eg, a downloadable app
- a machine-readable storage medium such as a memory of a manufacturer's server, a server of an application store, or a relay server. It may be temporarily stored or temporarily created.
- each of the components may be composed of a singular or a plurality of entities, and some of the above-described corresponding sub-components are omitted. Alternatively, other sub-components may be further included in various embodiments. Alternatively or additionally, some components (eg, a module or a program) may be integrated into a single entity to perform the same or similar functions performed by each corresponding component prior to integration.
- operations performed by a module, program, or other component may be sequentially, parallelly, repetitively or heuristically executed, or at least some operations may be executed in a different order, omitted, or other operations may be added.
- unit or “module” used in the present disclosure includes a unit composed of hardware, software, or firmware, and may be used interchangeably with terms such as, for example, logic, logic block, part, or circuit.
- a “unit” or “module” may be an integrally formed component or a minimum unit or a part of performing one or more functions.
- the module may be configured as an application-specific integrated circuit (ASIC).
- ASIC application-specific integrated circuit
- Various embodiments of the present disclosure may be implemented as software including instructions stored in a machine-readable storage medium readable by a machine (eg, a computer).
- the device calls the stored instructions from the storage medium.
- the robot 100 as a device capable of operating according to the called command, the robot 100 according to the disclosed embodiments may be included.
- the processor may perform a function corresponding to the instruction by using other components directly or under the control of the processor.
- Instructions may include code generated or executed by a compiler or interpreter.
Landscapes
- Engineering & Computer Science (AREA)
- Robotics (AREA)
- Mechanical Engineering (AREA)
- Automation & Control Theory (AREA)
- Physics & Mathematics (AREA)
- Radar, Positioning & Navigation (AREA)
- General Physics & Mathematics (AREA)
- Aviation & Aerospace Engineering (AREA)
- Remote Sensing (AREA)
- Health & Medical Sciences (AREA)
- Pain & Pain Management (AREA)
- General Health & Medical Sciences (AREA)
- Veterinary Medicine (AREA)
- Physical Education & Sports Medicine (AREA)
- Rehabilitation Therapy (AREA)
- Life Sciences & Earth Sciences (AREA)
- Animal Behavior & Ethology (AREA)
- Epidemiology (AREA)
- Public Health (AREA)
- Human Computer Interaction (AREA)
- Artificial Intelligence (AREA)
- Evolutionary Computation (AREA)
- Fuzzy Systems (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Manipulator (AREA)
Abstract
로봇 및 로봇의 제어 방법이 개시된다. 본 개시에 따른 로봇은 통신부를 통해 로봇과 연결된 외부 장치로부터 구동 데이터를 수신하여 메모리에 저장하고, 구동 데이터를 바탕으로 로봇이 구동 데이터에 대응되는 동작을 수행하도록 구동부를 제어한다. 그리고, 로봇과 외부 장치 사이의 통신 연결에 대한 오류가 발생되면, 로봇은 메모리에 기 저장된 구동 데이터 중 통신 연결에 대한 오류가 발생된 시점을 기준으로 임계 구간 내에 외부 장치로부터 수신된 제1 구동 데이터에 매칭되는 제2 구동 데이터를 식별하고, 제2 구동 데이터에 연속되는 제3 구동 데이터를 바탕으로 로봇이 통신 연결에 대한 오류가 발생된 시점 이후의 동작을 수행하도록 구동부를 제어한다.
Description
본 개시는 로봇 및 로봇의 제어 방법의 제어 방법에 관한 것으로서, 구체적으로는 로봇과 외부 장치 사이의 통신 연결에 대한 오류가 발생되는 경우에도 그 오류 발생 전후로 수행되는 로봇의 동작을 자연스럽게 이어지도록 할 수 있는 로봇 및 로봇의 제어 방법에 관한 것이다.
CROSS-REFERENCE TO RELATED APPLICATION
본 출원은 2020년 08월 27일에 출원된 대한민국 특허출원 제10-2020-0108817 호에 기초하여 우선권을 주장하며, 해당 출원의 모든 내용은 그 전체가 본 출원에 레퍼런스로 포함된다.
근래에는 반려 로봇 또는 리테일 서비스 로봇 등과 같이 한정된 공간을 주행하면서 사용자의 편의를 도모하기 위한 로봇, 그리고 사용자의 신체에 부착되어 사용자의 보행을 보조하기 위한 보행 보조 로봇 등과 같이 다앙한 종류의 로봇이 사용자에게 제공되고 있다.
특히, 로봇의 구동을 제어함에 있어서는, 로봇에 기 저장된 구동 데이터 또는 로봇 자체에서 생성된 구동 데이터를 이용할 수도 있으나, 서버 또는 엣지 컴퓨팅 장치(edge computing device)와 같은 외부 장치로부터 구동 데이터를 실시간으로 수신하고, 수신된 구동 데이터를 바탕으로 로봇의 동작을 제어할 수도 있다.
그런데, 외부 장치로부터 수신된 구동 데이터를 바탕으로 로봇의 동작을 제어하는 경우, 로봇과 외부 장치 사이의 통신 연결에 대한 오류가 발생되어 구동 데이터의 수신이 원활하게 이루어지지 않게 되면, 로봇의 동작의 오작동 내지는 급정지를 초래하게 되는 문제가 있다. 예를 들어, 통신 연결에 대한 오류에 따라, 반려 로봇 또는 리테일 서비스 로봇의 경우 잘못된 방향으로 주행함에 따라 장애물과 충돌할 수도 있고, 보행 보조 로봇의 경우 오작동 또는 급정지에 따라 사용자의 의도치 않은 동작 내지는 사용자의 부상을 초래할 수도 있다.
본 개시는 상술한 바와 같은 문제점을 해결하기 위해 안출된 것으로서, 본 개시의 목적은 로봇의 동작 중 적어도 일부가 외부 장치로부터 수신된 구동 데이터를 바탕으로 제어되는 로봇에 있어서, 로봇과 외부 장치 사이의 통신 연결에 대한 오류가 발생되는 경우에도 그 오류 발생 전후로 수행되는 로봇의 동작을 자연스럽게 이어지도록 제어함에 있다.
상술한 바와 같은 목적을 달성하기 위한 본 개시의 일 실시 예에 따르면, 로봇은 회로를 포함하는 통신부, 상기 로봇을 구동하는 구동부, 적어도 하나의 인스트럭션(instruction)을 저장하는 메모리 및 프로세서를 포함하고, 상기 프로세서는, 상기 적어도 하나의 인스트럭션을 실행함으로써, 상기 통신부를 통해 상기 로봇과 연결된 외부 장치로부터 구동 데이터를 수신하여 상기 메모리에 저장하고, 상기 구동 데이터를 바탕으로 상기 로봇이 상기 구동 데이터에 대응되는 동작을 수행하도록 상기 구동부를 제어하며, 상기 로봇과 상기 외부 장치 사이의 통신 연결에 대한 오류가 발생되면, 상기 메모리에 기 저장된 구동 데이터 중 상기 통신 연결에 대한 오류가 발생된 시점을 기준으로 임계 구간 내에 상기 외부 장치로부터 수신된 제1 구동 데이터에 매칭되는 제2 구동 데이터를 식별하고, 상기 제2 구동 데이터에 연속되는 제3 구동 데이터를 바탕으로 상기 로봇이 상기 통신 연결에 대한 오류가 발생된 시점 이후의 동작을 수행하도록 상기 구동부를 제어한다.
여기서, 상기 제1 구동 데이터 및 상기 제2 구동 데이터 각각은 상기 구동부를 제어하기 위한 적어도 하나의 파라미터에 대한 정보를 포함하고, 상기 적어도 하나의 파라미터에 대한 정보는 상기 로봇에 인가되는 힘에 대한 정보 및 상기 로봇에 힘이 인가되는 시간에 대한 정보를 포함할 수 있다.
여기서, 상기 프로세서는 상기 제1 구동 데이터 및 상기 제2 구동 데이터 각각에 포함된 적어도 하나의 파라미터에 대한 정보를 바탕으로 상기 제1 구동 데이터에 매칭되는 제2 구동 데이터를 식별할 수 있다.
한편, 상기 임계 구간은 상기 통신 연결에 대한 오류가 발생된 시점을 기준으로 기 설정된 시간 이전의 시점부터 상기 통신 연결에 대한 오류가 발생된 시점까지의 구간일 수 있다.
한편, 상기 프로세서는 상기 제3 구동 데이터를 바탕으로 상기 제3 구동 데이터에 대응되는 동작이 수행되는 동안 상기 발생된 통신 연결에 대한 오류가 유지되면, 상기 제3 구동 데이터에 연속되는 제4 구동 데이터를 바탕으로 상기 제3 구동 데이터에 대응되는 동작 이후의 동작을 수행하도록 상기 구동부를 제어할 수 있다.
여기서, 상기 프로세서는 상기 제4 구동 데이터를 바탕으로 상기 제4 구동 데이터에 대응되는 동작이 수행되는 동안 상기 발생된 통신 연결에 대한 오류가 해결되면, 상기 통신부를 통해 상기 외부 장치로부터 제5 구동 데이터를 수신하고, 상기 제5 구동 데이터를 바탕으로 상기 로봇이 상기 통신 연결에 대한 오류가 해결된 이후의 동작을 수행하도록 상기 구동부를 제어할 수 있다.
한편, 상기 로봇은 상기 사용자의 신체에 착용되는 주행 로봇이며, 상기 프로세서는 상기 로봇이 제1 모드로 동작하는 동안 상기 로봇이 상기 사용자의 보행을 보조하기 위한 동작을 수행하도록 상기 구동부를 제어하며, 상기 로봇이 제2 모드로 동작하는 동안 상기 로봇이 상기 사용자의 보행에 저항을 가하기 위한 동작을 수행하도록 상기 구동부를 제어할 수 있다.
여기서, 상기 로봇은 적어도 하나의 센서를 더 포함하고, 상기 프로세서는 상기 적어도 하나의 센서를 통해 상기 사용자의 보행에 대한 정보를 획득하여 상기 외부 장치로 전송하도록 상기 통신부를 제어하고, 상기 통신부를 통해 상기 외부 장치로부터 상기 사용자의 보행에 대한 정보에 대응되는 구동 데이터를 수신할 수 있다.
한편, 상기 로봇은 주행 로봇이고, 상기 프로세서는 상기 로봇이 이동하는 경로에 대한 맵 정보를 획득하여 상기 메모리에 저장하고, 상기 로봇 및 상기 외부 장치 사이의 통신 연결에 대한 오류가 발생되면, 상기 맵 정보를 바탕으로 상기 로봇이 정지할 위치를 식별하며, 상기 제3 구동 데이터를 바탕으로 상기 로봇이 상기 정지할 위치까지 감속한 후 정지하도록 상기 구동부를 제어할 수 있다.
상술한 바와 같은 목적을 달성하기 위한 본 개시의 일 실시 예에 따르면,
로봇의 제어 방법은 상기 로봇과 연결된 외부 장치로부터 구동 데이터를 수신하여 저장하는 단계, 상기 구동 데이터를 바탕으로 상기 로봇이 상기 구동 데이터에 대응되는 동작을 수행하도록 상기 로봇의 구동부를 제어하는 단계, 상기 로봇과 상기 외부 장치 사이의 통신 연결에 대한 오류가 발생되면, 기 저장된 구동 데이터 중 상기 통신 연결에 대한 오류가 발생된 시점을 기준으로 임계 구간 내에 상기 외부 장치로부터 수신된 제1 구동 데이터에 매칭되는 제2 구동 데이터를 식별하는 단계 및 상기 제2 구동 데이터에 연속되는 제3 구동 데이터를 바탕으로 상기 로봇이 상기 통신 연결에 대한 오류가 발생된 시점 이후의 동작을 수행하도록 상기 구동부를 제어하는 단계를 포함한다.
여기서, 상기 제1 구동 데이터 및 상기 제2 구동 데이터 각각은 상기 구동부를 제어하기 위한 적어도 하나의 파라미터에 대한 정보를 포함하고, 상기 적어도 하나의 파라미터에 대한 정보는 상기 로봇에 인가되는 힘에 대한 정보 및 상기 로봇에 힘이 인가되는 시간에 대한 정보를 포함할 수 있다.
여기서, 상기 제2 구동 데이터를 식별하는 단계는 상기 제1 구동 데이터 및 상기 제2 구동 데이터 각각에 포함된 적어도 하나의 파라미터에 대한 정보를 바탕으로 상기 제1 구동 데이터에 매칭되는 제2 구동 데이터를 식별할 수 있다.
한편, 상기 임계 구간은 상기 통신 연결에 대한 오류가 발생된 시점을 기준으로 기 설정된 시간 이전의 시점부터 상기 통신 연결에 대한 오류가 발생된 시점까지의 구간일 수 있다.
한편, 상기 제3 구동 데이터를 바탕으로 상기 제3 구동 데이터에 대응되는 동작이 수행되는 동안 상기 발생된 통신 연결에 대한 오류가 유지되면, 상기 제3 구동 데이터에 연속되는 제4 구동 데이터를 바탕으로 상기 제3 구동 데이터에 대응되는 동작 이후의 동작을 수행하도록 상기 구동부를 제어하는 단계를 더 포함할 수 있다.
여기서, 상기 제4 구동 데이터를 바탕으로 상기 제4 구동 데이터에 대응되는 동작이 수행되는 동안 상기 발생된 통신 연결에 대한 오류가 해결되면, 상기 통신부를 통해 상기 외부 장치로부터 제5 구동 데이터를 수신하는 단계 및 상기 제5 구동 데이터를 바탕으로 상기 로봇이 상기 통신 연결에 대한 오류가 해결된 이후의 동작을 수행하도록 상기 구동부를 제어하는 단계를 더 포함할 수 있다.
한편, 상기 로봇은 상기 사용자의 신체에 착용되는 주행 로봇이며, 상기 로봇의 제어 방법은 상기 로봇이 제1 모드로 동작하는 동안 상기 로봇이 상기 사용자의 보행을 보조하기 위한 동작을 수행하도록 상기 구동부를 제어하는 단계 및 상기 로봇이 제2 모드로 동작하는 동안 상기 로봇이 상기 사용자의 보행에 저항을 가하기 위한 동작을 수행하도록 상기 구동부를 제어하는 단계를 더 포함할 수 있다.
여기서, 상기 사용자의 보행에 대한 정보를 획득하여 상기 외부 장치로 전송하는 단계 및 상기 외부 장치로부터 상기 사용자의 보행에 대한 정보에 대응되는 구동 데이터를 수신하는 단계를 더 포함할 수 있다.
한편, 상기 로봇은 주행 로봇이고, 상기 로봇의 제어 방법은 상기 로봇이 이동하는 경로에 대한 맵 정보를 획득하여 저장하는 단계, 상기 로봇 및 상기 외부 장치 사이의 통신 연결에 대한 오류가 발생되면, 상기 맵 정보를 바탕으로 상기 로봇이 정지할 위치를 식별하는 단계 및 상기 제3 구동 데이터를 바탕으로 상기 로봇이 상기 정지할 위치까지 감속한 후 정지하도록 상기 구동부를 제어하는 단계를 포함할 수 있다.
상술한 바와 같은 목적을 달성하기 위한 본 개시의 일 실시 예에 따르면, 로봇의 제어 방법을 실행하는 프로그램을 포함하는 비일시적 컴퓨터 판독 가능 기록매체에 있어서, 상기 로봇의 제어 방법은 상기 로봇과 연결된 외부 장치로부터 구동 데이터를 수신하여 저장하는 단계, 상기 구동 데이터를 바탕으로 상기 로봇이 상기 구동 데이터에 대응되는 동작을 수행하도록 상기 로봇의 구동부를 제어하는 단계, 상기 로봇과 상기 외부 장치 사이의 통신 연결에 대한 오류가 발생되면, 기 저장된 구동 데이터 중 상기 통신 연결에 대한 오류가 발생된 시점을 기준으로 임계 구간 내에 상기 외부 장치로부터 수신된 제1 구동 데이터에 매칭되는 제2 구동 데이터를 식별하는 단계 및 상기 제2 구동 데이터에 연속되는 제3 구동 데이터를 바탕으로 상기 로봇이 상기 통신 연결에 대한 오류가 발생된 시점 이후의 동작을 수행하도록 상기 구동부를 제어하는 단계를 포함할 수 있다.
도 1은 본 개시의 일 실시 예에 따른 로봇 및 외부 장치에 대해 간략하게 설명하기 위한 개념도,
도 2는 본 개시의 일 실시 예에 따른 로봇의 제어 방법을 간략하게 설명하기 위한 도면,
도 3은 본 개시의 일시 예에 따른 로봇의 제어 과정을 각각의 구간 별로 상세하게 설명하기 위한 도면,
도 4는 본 개시의 일 실시 예에 따라 로봇의 제어 과정을 각각의 구간 별로 보다 상세하게 설명하기 위한 도면,
도 5는 로봇과 외부 장치 사이의 통신 연결에 대한 오류가 발생된 후 그 오류가 해결된 경우 본 개시에 따른 로봇의 제어 과정에 대해 설명하기 위한 흐름도,
도 6은 본 개시의 일 실시 예에 따른 로봇의 하드웨어 구성을 설명하기 위한 블록도,
도 7은 본 개시의 일 실시 예에 따른 소프트웨어 구성을 설명하기 위한 블록도,
도 8은 본 개시의 일 실시 예에 따른 로봇이 보행 보조 로봇인 경우의 제어 과정에 대해 설명하기 위한 도면,
도 9는 본 개시의 일 실시 예에 따른 로봇이 주행 로봇인 경우의 제어 과정에 대해 설명하기 위한 도면, 그리고,
도 10은 본 개시의 일 실시 예에 따른 외부 장치가 복수인 경우의 제어 과정에 대해 설명하기 위한 도면이다.
본 실시 예들은 다양한 변환을 가할 수 있고 여러 가지 실시 예를 가질 수 있는바, 특정 실시 예들을 도면에 예시하고 상세한 설명에 상세하게 설명하고자 한다. 그러나 이는 특정한 실시 형태에 대해 범위를 한정하려는 것이 아니며, 본 개시의 실시 예의 다양한 변경(modifications), 균등물(equivalents), 및/또는 대체물(alternatives)을 포함하는 것으로 이해되어야 한다. 도면의 설명과 관련하여, 유사한 구성요소에 대해서는 유사한 참조 부호가 사용될 수 있다.
본 개시를 설명함에 있어서, 관련된 공지 기능 혹은 구성에 대한 구체적인 설명이 본 개시의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그에 대한 상세한 설명은 생략한다.
덧붙여, 하기 실시 예는 여러 가지 다른 형태로 변형될 수 있으며, 본 개시의 기술적 사상의 범위가 하기 실시 예에 한정되는 것은 아니다. 오히려, 이들 실시 예는 본 개시를 더욱 충실하고 완전하게 하고, 당업자에게 본 개시의 기술적 사상을 완전하게 전달하기 위하여 제공되는 것이다.
본 개시에서 사용한 용어는 단지 특정한 실시 예를 설명하기 위해 사용된 것으로, 권리범위를 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다.
본 개시에서, "가진다," "가질 수 있다," "포함한다," 또는 "포함할 수 있다" 등의 표현은 해당 특징(예: 수치, 기능, 동작, 또는 부품 등의 구성요소)의 존재를 가리키며, 추가적인 특징의 존재를 배제하지 않는다.
본 개시에서, "A 또는 B," "A 또는/및 B 중 적어도 하나," 또는 "A 또는/및 B 중 하나 또는 그 이상"등의 표현은 함께 나열된 항목들의 모든 가능한 조합을 포함할 수 있다. 예를 들면, "A 또는 B," "A 및 B 중 적어도 하나," 또는 "A 또는 B 중 적어도 하나"는, (1) 적어도 하나의 A를 포함, (2) 적어도 하나의 B를 포함, 또는 (3) 적어도 하나의 A 및 적어도 하나의 B 모두를 포함하는 경우를 모두 지칭할 수 있다.
본 개시에서 사용된 "제1," "제2," "첫째," 또는 "둘째,"등의 표현들은 다양한 구성요소들을, 순서 및/또는 중요도에 상관없이 수식할 수 있고, 한 구성요소를 다른 구성요소와 구분하기 위해 사용될 뿐 해당 구성요소들을 한정하지 않는다.
어떤 구성요소(예: 제1 구성요소)가 다른 구성요소(예: 제2 구성요소)에 "(기능적으로 또는 통신적으로) 연결되어((operatively or communicatively) coupled with/to)" 있다거나 "접속되어(connected to)" 있다고 언급된 때에는, 상기 어떤 구성요소가 상기 다른 구성요소에 직접적으로 연결되거나, 다른 구성요소(예: 제3 구성요소)를 통하여 연결될 수 있다고 이해되어야 할 것이다.
반면에, 어떤 구성요소(예: 제1 구성요소)가 다른 구성요소(예: 제2 구성요소)에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 상기 어떤 구성요소와 상기 다른 구성요소 사이에 다른 구성요소(예: 제3 구성요소)가 존재하지 않는 것으로 이해될 수 있다.
본 개시에서 사용된 표현 "~하도록 구성된(또는 설정된)(configured to)"은 상황에 따라, 예를 들면, "~에 적합한(suitable for)," "~하는 능력을 가지는(having the capacity to)," "~하도록 설계된(designed to)," "~하도록 변경된(adapted to)," "~하도록 만들어진(made to)," 또는 "~를 할 수 있는(capable of)"과 바꾸어 사용될 수 있다. 용어 "~하도록 구성된(또는 설정된)"은 하드웨어적으로 "특별히 설계된(specifically designed to)" 것만을 반드시 의미하지 않을 수 있다.
대신, 어떤 상황에서는, "~하도록 구성된 장치"라는 표현은, 그 장치가 다른 장치 또는 부품들과 함께 "~할 수 있는" 것을 의미할 수 있다. 예를 들면, 문구 "A, B, 및 C를 수행하도록 구성된(또는 설정된) 프로세서"는 해당 동작을 수행하기 위한 전용 프로세서(예: 임베디드 프로세서), 또는 메모리 장치에 저장된 하나 이상의 소프트웨어 프로그램들을 실행함으로써, 해당 동작들을 수행할 수 있는 범용 프로세서(generic-purpose processor)(예: CPU 또는 application processor)를 의미할 수 있다.
실시 예에 있어서 '모듈' 혹은 '부'는 적어도 하나의 기능이나 동작을 수행하며, 하드웨어 또는 소프트웨어로 구현되거나 하드웨어와 소프트웨어의 결합으로 구현될 수 있다. 또한, 복수의 '모듈' 혹은 복수의 '부'는 특정한 하드웨어로 구현될 필요가 있는 '모듈' 혹은 '부'를 제외하고는 적어도 하나의 모듈로 일체화되어 적어도 하나의 프로세서로 구현될 수 있다.
한편, 도면에서의 다양한 요소와 영역은 개략적으로 그려진 것이다. 따라서, 본 발명의 기술적 사상은 첨부한 도면에 그려진 상대적인 크기나 간격에 의해 제한되지 않는다.
이하에서는 첨부한 도면을 참고하여 본 개시에 따른 실시 예에 대하여 본 개시가 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다.
도 1은 본 개시의 일 실시 예에 따른 로봇 및 외부 장치에 대해 간략하게 설명하기 위한 개념도이다.
도 1에 도시된 바와 같이, 본 개시에 따른 로봇(100)은 로봇(100)과 연결된 외부 장치(200)로부터 구동 데이터를 수신하고, 수신된 구동 데이터를 바탕으로 로봇(100)의 동작을 제어할 수 있다.
먼저, 본 개시에 따른 '로봇(100)'은 사용자의 신체에 착용되는 보행 보조 로봇 또는 한정된 공간을 주행하며 사용자에게 서비스를 제공하는 서비스용 로봇 등으로 구현될 수 있다. 다만, 본 개시에 따른 로봇(100)이 특정 유형의 로봇에 국한되는 것은 아니며, 로봇(100)의 동작 중 적어도 일부가 외부 장치(200)에 의해 수신된 구동 데이터를 바탕으로 제어되는 로봇(100)이라면 본 개시에 따른 로봇(100)에 해당될 수 있다.
'외부 장치(200)'는 서버 또는 엣지 컴퓨팅 장치(edge computing device) 등으로 구현될 수 있다. 여기서, 엣지 컴퓨팅 장치란 클라우드 컴퓨팅을 통해 다수의 디바이스에 관련된 데이터를 처리하는 경우 발생할 수 있는 데이터 지연 현상 및 보안상의 문제점 등을 해결하기 위한 장치로서, 데이터 소스의 물리적인 위치나 그 위치와 가까운 곳에서 컴퓨팅을 수행할 수 있는 장치를 말한다. 한편, 본 개시에 따른 외부 장치(200)의 유형 또한 특정 유형에 국한되는 것은 아니며, 외부 장치(200)와 연결된 로봇(100)의 동작을 제어하기 위한 구동 데이터를 생성하여 로봇(100)으로 전송할 수 있는 장치라면 본 개시에 따른 외부 장치(200)에 해당될 수 있다.
한편, 로봇(100)과 외부 장치(200)가 '연결'되어 있다는 것은 로봇(100) 및 외부 장치(200) 사이에 통신 연결을 위한 요청과 응답이 교환된 결과 통신 연결이 수립된 상태라는 것을 의미한다. 본 개시에 따른 통신 연결의 방식에 특별한 제한이 있는 것은 아니다.
'구동 데이터'는 로봇(100)의 동작을 제어하기 위한 데이터를 총칭하기 위한 용어이다. 구체적으로, 구동 데이터는 로봇(100)에 포함된 구동부를 제어함으로써 로봇(100)의 동작을 제어할 수 있도록 구성된 데이터를 말한다. 구체적으로, 구동 데이터는 특정 구간에 구동부를 제어하기 위한 적어도 하나의 파라미터에 대한 정보를 포함할 수 있다. 여기서, 적어도 하나의 파라미터에 대한 정보는 로봇(100)에 인가되는 힘에 대한 정보 및 로봇(100)에 힘이 인가되는 시간에 대한 정보를 포함할 수 있다. 다만, 적어도 하나의 파라미터에 대한 정보가 이에 국한되는 것은 아니다. 한편, 구동 데이터는 외부 장치(200)가 로봇(100)으로부터 수신된 로봇의 동작에 대한 정보를 바탕으로 생성된 것일 수 있다.
여기서, '구동부'는 구동 데이터를 바탕으로 로봇(100)의 다양한 동작을 구현하기 위한 동력을 발생시킬 수 있는 구성을 말한다. 그리고, 구동부에 의해 발생된 동력은 구동부에 물리적으로 연결된 지지부에 전달되어 지지부를 움직이게 할 수 있으며, 이에 따라 로봇(100)의 다양한 동작이 구현될 수 있다. 구동부 및 지지부에 대한 보다 구체적인 설명은 도 6, 도 8 및 도 9를 참조하여 상술한다.
도 2는 본 개시의 일 실시 예에 따른 로봇의 제어 방법을 간략하게 설명하기 위한 도면이다. 그리고, 도 3은 본 개시의 일시 예에 따른 로봇의 제어 과정을 각각의 구간 별로 상세하게 설명하기 위한 도면이다.
도 2에 도시된 바와 같이, 본 개시에 따른 로봇(100)은 로봇(100)과 연결된 외부 장치(200)로부터 구동 데이터를 수신하여 저장하고(S210), 수신된 구동 데이터를 바탕으로 수신된 구동 데이터에 대응되는 동작을 수행할 수 있다(S220).
특히, 로봇(100)이 외부 장치(200)로부터 구동 데이터를 수신하고 그 구동 데이터에 대응되는 동작을 수행하는 과정은 실시간으로 수행될 수 있다. 예를 들어, 본 개시에 따른 제어 과정은 도 3에 도시된 바와 같이 연속된 제1 구간 내지 제6 구간에서 순차적으로 수행될 수 있다. 그리고, 로봇(100)은 제1 구간에서 제2 구간의 동작을 수행하기 위한 구동 데이터 A1을 외부 장치(200)로부터 수신하고, 수신된 구동 데이터 A1을 바탕으로 제2 구간의 동작을 수행하면서 제3 구간의 동작을 수행하기 위한 구동 데이터 B1을 수신할 수 있다. 나아가, 로봇(100)은 수신된 구동 데이터 B1을 바탕으로 제3 구간의 동작을 수행하면서 제4 구간의 동작을 수행하기 위한 구동 데이터 C1을 수신할 수 있으며, 수신된 구동 데이터 C1을 바탕으로 제4 구간의 동작을 수행하면서, 제5 구간의 동작을 수행하기 위한 구동 데이터 A2를 수신할 수 있다. 나아가, 로봇은 제5 구간 및 그에 이어지는 구간에서도 상술한 바와 같은 과정을 연속적으로 수행할 수 있다.
그런데, 로봇(100)이 외부 장치(200)로부터 구동 데이터를 수신하고 구동 데이터에 대응되는 동작을 수행하는 과정이 실시간으로 수행될 수 있다는 것은, 로봇(100)과 외부 장치(200) 사이의 통신 연결에 오류가 발생되지 않는 경우를 전제로 한다. 즉, 도 3의 예에서, 로봇(100)이 수신된 구동 데이터 A2를 바탕으로 제5 구간의 동작을 수행하면서 제6 구간의 동작을 수행하기 위한 구동 데이터를 수신하는 과정에서 로봇(100)과 외부 장치(200) 사이의 통신 연결에 대한 오류가 발생되면, 제5 구간에 연속되는 제6 구간의 동작이 원활하게 수행되지 않을 수 있다.
따라서, 도 2에 도시된 바와 같이, 본 개시에 따른 로봇(100)은 로봇(100)과 외부 장치(200) 사이의 통신 연결에 대한 오류의 발생 여부를 식별할 수 있다(S230). 여기서, '식별'이라는 용어는 '확인', '감지', '탐지' 또는 '판단' 등의 용어로 대체될 수 있다. 구체적으로, 외부 장치(200)로부터 수신된 구동 데이터를 바탕으로 그 구동 데이터에 대응되는 동작을 수행하는 동안, 로봇(100)은 로봇(100)과 외부 장치(200) 사이의 통신 연결에 대한 오류의 발생 여부를 지속적으로 감지하고 모니터링할 수 있다.
여기서, '통신 연결에 대한 오류'가 발생된다는 것은 로봇(100)과 외부 장치(200) 사이의 통신 연결에 있어서 데이터의 지연, 변조 및 손실 등이 발생되는 것 자체를 의미할 수 있으며, 보다 구체적으로는 데이터의 지연, 변조 및 손실 등이 발생됨에 따라, 특정 구간의 동작을 수행하기 위한 구동 데이터의 적어도 일부가 그 특정 구간의 시작 시점 이전에 수신되지 않는다는 것을 의미할 수 있다.
로봇(100)과 외부 장치(200) 사이의 통신 연결에 대한 오류가 발생되지 않으면(S230-N), 로봇(100)은 외부 장치(200)로부터 구동 데이터를 정상적으로 수신하고, 수신된 구동 데이터를 바탕으로 구동 데이터에 대응되는 동작을 수행할 수 있다. 즉, 로봇(100)은 통신 연결이 정상적으로 유지되는 구간 동안 외부 장치(200)로부터 구동 데이터를 수신하고 구동 데이터에 대응되는 동작을 수행하는 과정을 실시간으로 수행할 수 있다. 즉, 도 3의 예에서, 로봇(100)은 제1 구간 내지 제4 구간 동안 수신된 구동 데이터를 바탕으로 제2 구간 내지 제5 구간의 동작을 원활하게 수행할 수 있다.
반면, 로봇(100)과 외부 장치(200) 사이의 통신 연결에 대한 오류가 발생되면(S230-Y), 로봇(100)은 기 저장된 구동 데이터 중 통신 연결에 대한 오류가 발생된 시점을 기준으로 임계 구간 내에 외부 장치(200)로부터 수신된 제1 구동 데이터에 매칭되는 제2 구동 데이터를 식별할 수 있다(S240).
여기서, '임계 구간'은 로봇(100)과 외부 장치(200) 사이의 통신 연결에 대한 오류가 발생된 시점을 기준으로 기 설정된 시간 이전의 시점부터 통신 연결에 대한 오류가 발생된 시점까지의 구간을 의미할 수 있다. 예를 들어, 도 3의 제5 구간에서 통신 연결에 대한 오류가 발생되는 경우, 임계 구간은 제4 구간의 시작 시점부터 통신 연결에 대한 오류가 발생된 시점까지의 구간일 수 있다. 다만, '기 설정된 시간'은 실시 예에 따라 다양하게 설정될 수 있음은 물론이다.
한편, '기 저장된 구동 데이터'란 앞서 정의한 바와 같은 임계 구간 이전에 수신된 구동 데이터를 총칭하기 위한 용어로서, '임계 구간 내에 수신된 구동 데이터'와 구별되는 의미로 사용된다. 즉, 도 3의 예에서와 같이 임계 구간이 제4 구간의 시작 시점부터 통신 연결에 대한 오류가 발생된 시점까지의 구간으로 기 설정된 경우, 기 저장된 구동 데이터는 제4 구간의 시작 시점 이전에 외부 장치로부터 수신되어 메모리에 저장된 구동 데이터인 구동 데이터 A1, 구동 데이터 B1 및 구동 데이터 C1를 포함할 수 있으며, 임계 구간 내에 수신된 구동 데이터는 제4 구간의 시작 시점부터 통신 연결에 대한 오류가 발생된 시점 이전에 외부 장치로부터 수신되어 메모리에 저장된 구동 데이터 A2를 포함할 수 있다.
한편, 제1 구동 데이터에 매칭되는 제2 구동 데이터를 식별하는 과정은 제1 구동 데이터 및 제2 구동 데이터 각각에 포함된 적어도 하나의 파라미터에 대한 정보를 바탕으로 수행될 수 있다.
구체적으로, 로봇(100)은 제1 구동 데이터 및 제2 구동 데이터 각각에 포함된 적어도 하나의 파라미터에 대한 정보를 바탕으로 제1 구동 데이터에 매칭되는 제2 구동 데이터를 식별할 수 있다. 전술한 바와 같이, 적어도 하나의 파라미터에 대한 정보는 로봇(100)에 인가되는 힘에 대한 정보 및 로봇(100)에 힘이 인가되는 시간에 대한 정보를 포함할 수 있다. 구체적인 파라미터는 로봇(100)의 구현 예에 따라 달라 질 수 있는바, 다양한 종류의 파라미터의 예시에 대해서는 도 6 및 도 7을 참조하여 상술한다.
보다 구체적으로, 로봇(100)은 제1 구동 데이터와 제2 구동 데이터를 비교하고, 비교 결과 제1 구동 데이터에 포함된 적어도 하나의 파라미터에 대한 정보와 제2 구동 데이터에 포함된 적어도 하나의 파라미터에 대한 정보가 동일한 것으로 식별되거나, 제1 구동 데이터에 포함된 적어도 하나의 파라미터에 대한 정보와 제2 구동 데이터에 포함된 적어도 하나의 파라미터에 대한 정보가 유사한 것으로 식별되면, 제2 구동 데이터를 제1 구동 데이터에 매칭되는 구동 데이터로 식별할 수 있다. 여기서, 제1 구동 데이터에 포함된 적어도 하나의 파라미터에 대한 정보와 제2 구동 데이터에 포함된 적어도 하나의 파라미터에 대한 정보가 유사하다는 것은, 제1 구동 데이터에 포함된 적어도 하나의 파라미터에 대한 정보와 제2 구동 데이터에 포함된 적어도 하나의 파라미터에 대한 정보 사이의 차이가 기 설정된 임계 값 미만인 경우를 의미할 수 있다.
다시 도 3의 예를 들어 설명하면, 로봇(100)이 수신된 구동 데이터 A2를 바탕으로 제5 구간의 동작을 수행하면서 제6 구간의 동작을 수행하기 위한 구동 데이터를 수신하는 과정에서 로봇(100)과 외부 장치(200) 사이의 통신 연결에 대한 오류가 발생되는 경우, 제5 구간의 동작을 수행하기 위한 구동 데이터 A2는 이미 수신된 바 있기 때문에 제5 구간의 동작까지는 원활하게 수행될 수 있다. 그러나, 통신 연결에 대한 오류가 해결되어 제6 구간이 시작되기 전에 제6 구간의 동작을 수행하기 위한 구동 데이터 B2가 수신되지 않는 한, 제6 구간의 동작은 원활하게 수행되지 않을 수 있다. 이 때, 로봇(100)은 기 저장된 구동 데이터 중 임계 구간 내에 외부 장치(200)로부터 수신된 구동 데이터 A2에 포함된 적어도 하나의 파라미터에 대한 정보와 제1 구간에 수신된 구동 데이터 A1에 포함된 적어도 하나의 파라미터에 대한 정보가 동일하거나 유사하면, 구동 데이터 A1을 구동 데이터 A2에 매칭되는 구동 데이터로 식별할 수 있다.
제1 구동 데이터에 매칭되는 제2 구동 데이터가 식별되면, 로봇(100)은 제2 구동 데이터에 연속되는 제3 구동 데이터를 바탕으로 통신 연결에 대한 오류가 발생된 시점 이후의 동작을 수행할 수 있다(S250). 여기서, 제3 구동 데이터는 제2 구동 데이터가 수신된 구간에 연속되는 구간에 수신되어 로봇의 메모리에 저장된 구동 데이터를 말한다. 도 3의 예에서, 구동 데이터 A2에 매칭되는 구동 데이터 A1이 식별되면, 로봇(100)은 구동 데이터 A1이 수신된 제1 구간에 연속되는 제2 구간에 수신된 구동 데이터 B1을 바탕으로 제6 구간의 동작을 수행할 수 있다.
한편, '통신 연결에 대한 오류가 발생된 시점 이후'가 반드시 통신 연결에 대한 오류가 발생된 시점 직후부터의 시간을 의미하는 것은 아니며, 통신 연결에 대한 오류가 발생된 시점을 포함하는 구간의 다음 구간부터의 시간을 의미할 수도 있다. 전술한 바와 같이, 통신 연결에 대한 오류가 발생된 시점을 포함하는 구간의 동작을 수행하기 위한 구동 데이터는 이미 통신 연결에 대한 오류가 발생되기에 앞서 정상적으로 수신될 수 있기 때문이다.
이상에서 상술한 바와 같은 본 개시의 실시 예에 따르면, 외부 장치(200)로부터 구동 데이터를 수신하여 로봇(100)의 동작을 수행하는 동안 외부 장치(200)와의 통신 연결에 대한 오류가 발생되는 경우에도, 기 저장된 구동 데이터 중 통신 연결에 대한 오류에 의해 정상적으로 수신되지 않은 구동 데이터에 대응되는 구동 데이터를 식별하고 식별된 구동 데이터를 바탕으로 로봇(100)의 동작을 수행할 수 있다. 그리고 이에 따라, 통신 연결에 대한 오류 발생 전후로 수행되는 로봇(100)의 동작이 자연스럽게 이어질 수 있게 된다.
도 4는 본 개시의 일 실시 예에 따라 로봇의 제어 과정을 각각의 구간 별로 보다 상세하게 설명하기 위한 도면이다.
구체적으로, 도 4는 제1 구동 데이터에 매칭되는 제2 구동 데이터를 식별하는 과정을 보다 상세하게 설명하기 위해, 구동 데이터가 수신되는 시간의 흐름에 따른 구동 데이터에 포함된 파라미터 값의 크기 변화를 그래프로 나타낸 것이다. 여기서, 파라미터는 로봇(100)에 인가되는 힘일 수 있으며, 다만 이에 국한되는 것은 아니다.
도 2 및 도 3을 참조하여 상술한 바와 같이, 본 개시에 따른 로봇(100)은 로봇(100)과 연결된 외부 장치(200)로부터 구동 데이터를 수신하여 저장하고, 수신된 구동 데이터를 바탕으로 그에 대응되는 동작을 수행할 수 있다. 이 때, 로봇(100)과 외부 장치(200) 사이의 통신 연결에 대한 오류가 발생되면, 로봇(100)은 기 저장된 구동 데이터 중 통신 연결에 대한 오류가 발생된 시점을 기준으로 임계 구간 내에 외부 장치(200)로부터 수신된 제1 구동 데이터에 매칭되는 제2 구동 데이터를 식별할 수 있다. 그리고, 로봇(100)은 제2 구동 데이터에 연속되는 제3 구동 데이터를 바탕으로 통신 연결에 대한 오류가 발생된 시점 이후의 동작을 수행할 수 있다.
도 3에서는 구동 데이터가 각각의 구간에 대응되는 것을 전제로 설명하였으나 본 개시가 이에 국한되는 것은 아니다. 즉, 도 4에 도시된 바와 같이, 구동 데이터는 구동 데이터를 구성하는 파라미터의 변화 형태에 따라 구분될 수도 있다. 구체적으로, 도 4의 예에서, 파라미터 값이 감소하는 형태의 구동 데이터(410), 파라미터 값이 증가하는 형태의 구동 데이터(420), 파라미터 값이 다시 감소하는 형태의 구동 데이터(430), 그리고, 파라미터 값이 다시 증가하는 형태의 구동 데이터(440)로 구분될 수 있다. 그리고, 로봇(100)은 도 4의 구동 데이터(410), 구동 데이터(420) 및 구동 데이터(430)을 바탕으로 구동 데이터(410), 구동 데이터(420) 및 구동 데이터(430) 각각에 대응되는 구간의 동작을 수행할 수 있다.
그런데, 제5 구간에서 로봇(100)과 외부 장치(200) 사이의 통신 연결에 대한 오류가 발생되면, 로봇(100)은 기 저장된 구동 데이터 중 통신 연결에 대한 오류가 발생된 시점을 기준으로 임계 구간 내에 외부 장치(200)로부터 수신된 구동 데이터 중 적어도 일부(430)를 식별하고, 식별된 구동 데이터(430)에 매칭되는 구동 데이터를 식별할 수 있다. 구체적으로, 로봇(100)은 구동 데이터(410) 및 구동 데이터(430) 각각에 포함된 적어도 하나의 파라미터에 대한 정보를 바탕으로 구동 데이터(430)에 매칭되는 구동 데이터(410)를 식별할 수 있다. 즉, 도 4에 도시된 바와 같이, 구동 데이터(410)의 시간에 따른 파라미터 값의 크기 변화와 구동 데이터(430)의 시간에 따른 파라미터 값의 크기 변화가 동일하거나 유사한 경우, 로봇(100)은 구동 데이터(410)를 구동 데이터(430)에 매칭되는 구동 데이터로 식별할 수 있다.
나아가, 로봇(100)은 구동 데이터(410)에 연속되는 구동 데이터(420)을 바탕으로 통신 연결에 대한 오류가 발생된 시점 이후의 동작을 수행할 수 있다. 도 4의 구동 데이터(440)은 구동 데이터(420)가 통신 연결에 대한 오류가 발생된 시점 이후의 동작을 수행하는데 이용될 수 있다는 것을 나타낸 것이다.
한편, 도 3 및 도 4에서는 제1 구간 내지 제6 구간의 크기가 모두 동일한 것을 전제로 도시하였으나, 각 구간의 크기는 서로 상이할 수도 있다.
도 5는 로봇과 외부 장치 사이의 통신 연결에 대한 오류가 발생된 후 그 오류가 해결된 경우 본 개시에 따른 로봇의 제어 과정에 대해 설명하기 위한 흐름도이다.
이상에서는 로봇(100)과 외부 장치(200) 사이의 통신 연결에 대한 오류가 발생된 경우의 로봇(100)의 제어 과정에 대해 상술하였으나, 통신 연결에 대한 오류가 하드웨어의 결함 등에 따라 지속되는 경우가 아닌 한, 통신 연결에 대한 오류는 해결될 수 있다. 그리고, 로봇(100)과 외부 장치(200) 사이의 통신 연결에 대한 오류가 해결되면, 로봇(100)은 다시 외부 장치(200)로부터 구동 데이터를 정상적으로 수신하고, 수신된 구동 데이터를 바탕으로 그에 대응되는 동작을 수행할 수 있다.
구체적으로, 도 2를 참조하여 상술한 바와 같이, 로봇(100)과 외부 장치(200) 사이의 통신 연결에 대한 오류가 발생되면(S230-Y), 로봇(100)은 기 저장된 구동 데이터 중 오류가 발생된 시점을 기준으로 임계 구간 내에 외부 장치(200)로부터 수신된 제1 구동 데이터에 매칭되는 제2 구동 데이터를 식별하고(S240), 제2 구동 데이터에 연속되는 제3 구동 데이터를 바탕으로 통신 연결에 대한 오류가 발생된 시점 이후의 동작을 수행할 수 있다(S250, S510).
그 후, 제3 구동 데이터를 바탕으로 제3 구동 데이터에 대응되는 동작이 수행되는 동안 통신 연결에 대한 오류가 유지되면(S520-N), 로봇(100)은 제3 구동 데이터에 연속되는 제4 구동 데이터를 바탕으로 제3 구동 데이터에 대응되는 동작 이후의 동작을 수행할 수 있다(S530). 물론, 여기서, 제4 구동 데이터는 제3 구동 데이터가 수신된 구간에 연속되는 구간에 수신되어 로봇(100)의 메모리에 저장된 구동 데이터를 말한다.
즉, 도 3을 참조하여 상술한 예에서, 구동 데이터 A2에 매칭되는 구동 데이터 A1이 식별되면, 로봇(100)은 구동 데이터 A1이 수신된 제1 구간에 연속되는 제2 구간에 수신된 구동 데이터 B1을 바탕으로 제6 구간의 동작을 수행하고, 제6 구간의 동작이 수행되는 동안 통신 연결에 대한 오류가 유지되면, 나아가 제3 구간에 수신된 구동 데이터 C1을 바탕으로 제7 구간(미도시)의 동작을 수행할 수 있다.
한편, 로봇(100)과 외부 장치(200) 사이의 통신 연결에 대한 오류가 해결되면(S520-Y), 로봇(100)은 외부 장치(200)로부터 제5 구동 데이터를 수신할 수 있다(S530). 그리고, 로봇(100)은 수신된 제5 구동 데이터를 바탕으로 통신 연결에 대한 오류가 해결된 이후의 동작을 수행할 수 있다(S540).
즉, 도 3을 참조하여 상술한 예에서, 구동 데이터 A1에 연속되는 구동 데이터 B1을 바탕으로 제6 구간의 동작을 수행하는 동안 외부 장치(200)로부터 제6 구간에 연속된 제7 구간(미도시)의 동작을 수행하기 위한 구동 데이터 C2(미도시)가 수신되면, 로봇(100)은 수신된 구동 데이터 C2(미도시)를 바탕으로 제7 구간(미도시)의 동작을 수행할 수 있다.
도 6은 본 개시의 일 실시 예에 따른 로봇의 하드웨어 구성을 설명하기 위한 블록도이다.
도 6에 도시된 바와 같이, 본 개시에 따른 로봇(100)은 통신부(110), 구동부(120), 메모리(130) 및 프로세서(140)를 포함할 수 있다. 그러나, 이와 같은 구성은 예시적인 것으로서, 본 개시를 실시함에 있어 이와 같은 구성에 더하여 새로운 구성이 추가되거나 일부 구성이 생략될 수 있음을 물론이다.
통신부(110)는 회로를 포함하며, 외부 장치(200)와의 통신을 수행할 수 있다. 구체적으로, 프로세서(140)는 통신부(110)를 통해 연결된 외부 장치(200)로부터 각종 데이터 또는 정보를 수신할 수 있으며, 외부 장치(200)로 각종 데이터 또는 정보를 전송할 수도 있다.
통신부(110)는 WiFi 모듈, Bluetooth 모듈, 무선 통신 모듈, 및 NFC 모듈 중 적어도 하나를 포함할 수 있다. 구체적으로, WiFi 모듈과 Bluetooth 모듈 각각은 WiFi 방식, Bluetooth 방식으로 통신을 수행할 수 있다. WiFi 모듈이나 Bluetooth 모듈을 이용하는 경우에는 SSID 등과 같은 각종 연결 정보를 먼저 송수신하여, 이를 이용하여 통신 연결한 후 각종 정보들을 송수신할 수 있다.
또한, 무선 통신 모듈은 IEEE, Zigbee, 3G(3rd Generation), 3GPP(3rd Generation Partnership Project), LTE(Long Term Evolution), 5G(5th Generation) 등과 같은 다양한 통신 규격에 따라 통신을 수행할 수 있다. 그리고, NFC 모듈은 135kHz, 13.56MHz, 433MHz, 860~960MHz, 2.45GHz 등과 같은 다양한 RF-ID 주파수 대역들 중에서 13.56MHz 대역을 사용하는 NFC(Near Field Communication) 방식으로 통신을 수행할 수 있다.
특히, 본 개시에 따른 다양한 실시 예에 있어서, 통신부(110)는 외부 장치(200)와 통신을 수행하여, 외부 장치(200)로부터 구동 데이터를 수신할 수 있으며, 또한 외부 장치(200)로 사용자의 보행에 대한 정보를 전송할 수 있다.
구동부(120)는 구동 데이터를 바탕으로 로봇(100)의 다양한 동작을 구현하기 위한 동력을 발생시킬 수 있는 구성을 말한다. 그리고, 구동부(120)에 의해 발생된 동력은 구동부(120)에 물리적으로 연결된 지지부(미도시)에 전달되어 지지부(미도시)를 움직이게 할 수 있으며, 이에 따라 로봇(100)의 다양한 동작이 구현될 수 있다.
구체적으로, 구동부(120)는 로봇(100)에 공급되는 전기 에너지를 바탕으로 소정 토크의 회전력을 발생시키는 모터를 포함할 수 있으며, 로봇(100)에 공급되는 유압이나 공기압을 바탕으로 회전력을 발생시키는 피스톤 또는 실린더 장치를 포함할 수도 있다. 그리고, 지지부(미도시)는 복수의 마디 및 복수의 마디를 연결하는 복수의 관절을 포함할 수 있으며, 그 밖에도 로봇(100)의 다양한 동작을 수행할 수 있도록 다양한 형상으로 구현될 수 있다. 한편, 본 개시에 따른 로봇(100)은 복수의 구동부(120) 또는 복수의 지지부(미도시)를 포함할 수 있다. 나아가, 각각의 구동부(120) 및 지지부(미도시)에 포함되는 구성들의 개수 또한 특별한 개수로 제한되지 않는다.
특히, 본 개시에 따른 다양한 실시 예에 있어서, 구동부(120)는 로봇(100)의 유형에 따라 다양한 유형과 다양한 개수로 다양한 위치에 배치될 수 있다. 구체적인 로봇(100)의 유형에 따른 구동부(120)의 구성에 대해서는 도 8 및 도 9를 참조하여 후술한다.
메모리(130)에는 전자 장치에 관한 적어도 하나의 인스트럭션(instruction)이 저장될 수 있다. 그리고, 메모리(130)에는 로봇(100)을 구동시키기 위한 O/S(Operating System)가 저장될 수 있다. 또한, 메모리(130)에는 본 개시의 다양한 실시 예들에 따라 로봇(100)이 동작하기 위한 각종 소프트웨어 프로그램이나 애플리케이션이 저장될 수도 있다. 그리고, 메모리(130)는 플래시 메모리(Flash Memory) 등과 같은 반도체 메모리나 하드디스크(Hard Disk) 등과 같은 자기 저장 매체 등을 포함할 수 있다.
구체적으로, 메모리(130)에는 본 개시의 다양한 실시 예에 따라 로봇(100)이 동작하기 위한 각종 소프트웨어 모듈이 저장될 수 있으며, 프로세서(140)는 메모리(130)에 저장된 각종 소프트웨어 모듈을 실행하여 로봇(100)의 동작을 제어할 수 있다. 즉, 메모리(130)는 프로세서(140)에 의해 액세스되며, 프로세서(140)에 의한 데이터의 독취/기록/수정/삭제/갱신 등이 수행될 수 있다.
한편, 본 개시에서 메모리(130)라는 용어는 메모리(130), 프로세서(140) 내 롬(미도시), 램(미도시) 또는 로봇(100)에 장착되는 메모리 카드(미도시)(예를 들어, micro SD 카드, 메모리 스틱)를 포함하는 의미로 사용될 수 있다.
특히, 본 개시에 따른 다양한 실시 예에 있어서, 메모리(130)에는 외부 장치(200)로부터 수신된 구동 데이터가 저장될 수 있으며, 적어도 하나의 센서를 통해 획득된 사용자의 보행에 대한 정보가 저장될 수도 있다.
그 밖에도 본 개시의 목적을 달성하기 위한 범위 내에서 필요한 다양한 정보가 메모리(130)에 저장될 수 있으며, 메모리(130)에 저장된 정보는 서버 또는 외부 장치(200)로부터 수신되거나 사용자에 의해 입력됨에 따라 갱신될 수도 있다.
프로세서(140)는 로봇(100)의 전반적인 동작을 제어한다. 구체적으로, 프로세서(140)는 상술한 바와 같은 통신부(110), 구동부(120) 및 메모리(130)를 포함하는 로봇(100)의 구성과 연결되며, 상 상술한 바와 같은 메모리(130)에 저장된 적어도 하나의 인스트럭션을 실행함으로써, 전자 장치의 동작을 전반적으로 제어할 수 있다.
프로세서(140)는 다양한 방식으로 구현될 수 있다. 예를 들어, 프로세서(140)는 주문형 집적 회로(Application Specific Integrated Circuit, ASIC), 임베디드 프로세서, 마이크로 프로세서, 하드웨어 컨트롤 로직, 하드웨어 유한 상태 기계(hardware Finite State Machine, FSM), 디지털 신호 프로세서(Digital Signal Processor, DSP) 중 적어도 하나로 구현될 수 있다. 한편, 본 개시에서 프로세서(140)라는 용어는 CPU(Central Processing Unit), GPU(Graphic Processing Unit) 및 MPU(Main Processing Unit)등을 포함하는 의미로 사용될 수 있다.
특히, 본 개시에 따른 다양한 실시 예에 있어서, 프로세서(140)는 통신부(110)를 통해 로봇(100)과 연결된 외부 장치(200)로부터 구동 데이터를 수신하여 메모리(130)에 저장하고, 구동 데이터를 바탕으로 로봇(100)이 구동 데이터에 대응되는 동작을 수행하도록 구동부(120)를 제어하며, 로봇(100)과 외부 장치(200) 사이의 통신 연결에 대한 오류가 발생되면, 메모리(130)에 기 저장된 구동 데이터 중 통신 연결에 대한 오류가 발생된 시점을 기준으로 임계 구간 내에 외부 장치(200)로부터 수신된 제1 구동 데이터에 매칭되는 제2 구동 데이터를 식별하고, 제2 구동 데이터에 연속되는 제3 구동 데이터를 바탕으로 로봇(100)이 통신 연결에 대한 오류가 발생된 시점 이후의 동작을 수행하도록 구동부(120)를 제어할 수 있다.
프로세서(140)의 제어를 바탕으로 한 본 개시에 따른 다양한 실시 예에 대해서는 도 1 내지 도 5를 참조하여 상술하였으므로 중복 설명은 생략한다.
한편, 도 6에 도시되지는 않았으나, 본 개시에 따른 로봇(100)은 적어도 하나의 센서, 입력부 및 출력부를 더 포함할 수도 있다. 구체적으로, 적어도 하나의 센서는 로봇(100)의 움직임에 대한 정보 또는 로봇(100) 외부의 환경에 대한 정보를 감지할 수 있으며, 입력부는 마이크, 카메라, 및 리모컨 신호 수신부 중 적어도 하나를 포함하고, 프로세서(140)는 입력부를 통해 사용자 로봇(100)의 동작을 제어하기 위한 사용자 명령을 수신할 수 있다. 그리고, 출력부는 디스플레이, 스피커 및 인디케이터 중 적어도 하나를 포함하고, 프로세서(140)는 출력부를 통해 로봇(100)이 수행할 수 있는 다양한 기능을 출력할 수 있다.
도 7은 본 개시의 일 실시 예에 따른 소프트웨어 구성을 설명하기 위한 블록도이다.
도 7에 도시된 바와 같이, 본 개시에 따른 로봇(100)은 구동 데이터 저장 모듈(1010), 통신 오류 감지 모듈(1020), 구동 데이터 식별 모듈(1030) 및 구동부(120) 제어 모듈(1040)을 포함할 수 있다. 그리고, 프로세서(140)는 메모리(130)에 저장된 구동 데이터를 바탕으로, 구동 데이터 저장 모듈(1010), 통신 오류 감지 모듈(1020), 구동 데이터 식별 모듈(1030) 및 구동부(120) 제어 모듈(1040)을 통해 본 개시에 따른 다양한 제어 과정을 수행할 수 있다.
구동 데이터 저장 모듈(1010)은 외부 장치(200)로부터 수신된 구동 데이터를 메모리(130)에 저장하는 모듈을 말한다. 구체적으로, 통신부(110)를 통해 외부 장치(200)로부터 구동 데이터가 수신되면, 구동 데이터 저장 모듈(1010)은 메모리(130)의 일 영역에 수신된 구동 데이터를 저장할 수 있다. 그리고, 프로세서(140)는 메모리(130)에 저장된 구동 데이터를 바탕으로 구동 데이터에 대응되는 로봇(100)의 동작을 수행하도록 구동부(120)를 제어할 수 있다.
통신 오류 감지 모듈(1020)은 로봇(100)과 외부 장치(200) 사이의 통신 연결에 대한 오류의 발생 여부를 감지하는 모듈을 말한다. 구체적으로, 외부 장치(200)로부터 수신된 구동 데이터를 바탕으로 그 구동 데이터에 대응되는 동작을 수행하는 동안, 로봇(100)은 로봇(100)과 외부 장치(200) 사이의 통신 연결에 대한 오류의 발생 여부를 지속적으로 감지하고, 그 감지 결과에 따른 정보를 구동 데이터 식별 모듈(1030)에 전송할 수 있다.
구동 데이터 식별 모듈(1030)은 메모리(130)에 기 저장된 구동 데이터 중 임계 구간 내에 외부 장치(200)로부터 수신된 구동 데이터에 매칭되는 구동 데이터를 식별하는 모듈을 말한다. 구체적으로, 구동 데이터 식별 모듈(1030)은 메모리(130)에 기 저장된 구동 데이터 중 특정 구간의 동작을 수행하기 위한 구동 데이터를 식별하고, 그 식별 결과에 따른 정보를 구동부(120) 제어 모듈(1040)에 전송할 수 있다. 예를 들어, 통신 오류 감지 모듈(1020)로부터 로봇(100)과 외부 장치(200) 사이의 통신 연결에 대한 오류가 발생되었다는 정보가 수신되면, 구동 데이터 식별 모듈(1030)은 기 저장된 구동 데이터 중 통신 연결에 대한 오류가 발생된 시점을 기준으로 임계 구간 내에 외부 장치(200)로부터 수신된 제1 구동 데이터에 매칭되는 제2 구동 데이터를 식별하고, 그 식별 결과에 따른 정보를 구동부(120) 제어 모듈(1040)에 전송할 수 있다.
구동부(120) 제어 모듈(1040)은 구동 데이터를 바탕으로 구동부(120)를 제어하는 모듈을 말한다. 구체적으로, 구동 데이터 식별 모듈(1030)로부터 특정 구간의 동작을 수행하기 위한 구동 데이터에 대한 정보가 전송되면, 구동부(120) 제어 모듈(1040)은 그 특정 구간의 동작을 수행하기 위한 구동 데이터를 바탕으로 구동부(120)를 제어할 수 있다. 예를 들어, 구동 데이터 식별 모듈(1030)로부터 제1 구동 데이터에 매칭되는 제2 구동 데이터에 대한 정보가 수신되면, 구동부(120) 제어 모듈(1040)은 제2 구동 데이터에 연속되는 제3 구동 데이터를 바탕으로 통신 연결에 대한 오류가 발생된 시점 이후의 동작 수행하도록 구동부(120)를 제어할 수 있다.
이상에서 도 7을 참조하여, 본 개시에 따른 소프트웨어 모듈의 구성에 대해 설명하였으나, 이는 일 실시 예에 불과할 뿐, 도 7에 도시된 바와는 다른 방식으로 구현될 수도 있음은 물론이다.
도 8은 본 개시의 일 실시 예에 따른 로봇이 보행 보조 로봇인 경우의 제어 과정에 대해 설명하기 위한 도면이다.
전술한 바와 같이, 본 개시에 따른 로봇(100)의 유형에 특별한 제한이 있는 것은 아니지만, 본 개시에 따른 로봇(100)은 특히, 보행 보조 로봇(100-1)으로 구현될 수 있다. 보행 보조 로봇(100-1)은 사용자의 신체에 착용되어 사용자의 보행을 보조할 수 있는 로봇(100)을 말한다. 구체적으로, 도 8에 도시된 바와 같이, 보행 보조 로봇(100-1)은 구동부(810), 지지부(820), 허벅지 벨트(830), 적어도 하나의 센서(840), 통신부(850), 메모리(860) 및 프로세서(870)를 포함할 수 있다. 도 8에서는 사용자의 다리 오른쪽에 배치되는 구동부(810), 지지부(820) 및 허벅지 벨트(830)에 대해 도시하였으나, 사용자의 다리 왼쪽에도 구동부(810), 지지부(820) 및 허벅지 벨트(830)가 배치될 수 있다. 이하에서는 도 6을 참조하여 설명한 내용과 중복되는 내용은 생략하고, 본 개시에 따른 로봇(100)이 보행 보조 로봇(100-1)으로 구현되는 경우에 대한 내용을 중심으로 설명한다.
구동부(810)는 구동 데이터를 바탕으로 보행 보조 로봇(100-1)의 다양한 동작을 수행하기 위한 동력을 발생시킬 수 있는 구성을 말한다. 구체적으로, 구동부(810)는 로봇(100)에 공급되는 전기 에너지를 바탕으로 소정 토크의 회전력을 발생시키는 모터를 포함할 수 있다. 그리고, 구동부(810)에 의해 발생된 동력은 구동부(810)에 물리적으로 연결된 지지부(820)에 전달되며, 나아가 지지부(820)에 연결된 허벅지 벨트(830)를 통해 사용자의 하체에 전달될 수 있다.
여기서, 사용자의 하체에 전달되는 힘은 사용자의 다리가 움직이는 방향에 대응되는 방향으로 인가될 수도 있고, 사용자의 다리가 움직이는 방향에 반대되는 방향으로 인가될 수도 있다. 즉, 본 개시에 따른 보행 보조 로봇(100-1)은 사용자의 보행을 보조하기 위한 동작을 수행하는 제1 모드(보조 모드) 및 사용자의 보행에 저항을 가하기 위한 동작을 수행하는 제2 모드(운동 모드)로 동작할 수 있다.
특히, 사용자의 보행 시 사용자의 오른쪽 다리에 전달되는 힘의 방향은 사용자의 보행 동작에 대응되도록, 사용자의 왼쪽 다리에 전달되는 힘의 방향과 반대 방향일 수 있다. 즉, 사용자의 보행 시 사용자의 오른쪽 다리와 왼쪽 다리에 전달되는 힘의 방향은 사용자의 보행 동작에 대응되도록 서로 반대 방향으로 인가될 수 있다. 그리고, 사용자의 보행 시 사용자의 움직임에 따라 사용자의 오른쪽 다리 및 왼쪽 다리 각각의 운동은 일정한 보행 패턴을 가질 수 있으며, 그에 따라 로봇(100)에 의해 사용자의 오른쪽 다리 및 왼쪽 다리 각각에 인가되는 힘의 크기와 방향 또한 사용자의 보행 패턴에 대응되는 일정한 패턴을 가질 수 있다. 예를 들어, 사용자의 보행 시 로봇(100)에 의해 사용자의 오른쪽 다리 및 왼쪽 다리 각각에 인가되는 힘의 크기는 도 4에 도시된 바와 같이 일정한 패턴을 가질 수 있다.
적어도 하나의 센서(840)는 사용자의 보행 시 사용자의 보행에 대한 정보를 감지할 수 있다. 여기서, '사용자의 보행에 대한 정보'는 사용자의 보행 시 사용자 양쪽 고관절의 각도, 양쪽 고관절의 각도 차이 및 양쪽 고관절의 운동 방향 중 적어도 하나에 대한 정보를 포함할 수 있다. 또한, 사용자의 보행에 대한 정보는 사용자의 보행 시 가속도에 대한 정보 및 사용자의 보행 시 사용자 발의 착지 지점에 대한 정보 등을 포함할 수도 있다. 즉, 본 개시에 있어서, 사용자의 보행에 대한 정보는 사용자의 보행 시 사용자 다리의 운동에 관련된 모든 정보를 총칭하기 위한 용어로 사용된다.
한편, 도 6을 참조하여 전술한 바와 같이, 통신부(850)는 외부 장치(200)와 통신을 수행하여, 외부 장치(200)로부터 구동 데이터를 수신할 수 있으며, 또한 외부 장치(200)로 사용자의 보행에 대한 정보를 전송할 수 있다. 그리고, 메모리(860)는 외부 장치(200)로부터 수신된 구동 데이터 및 적어도 하나의 센서(840)를 통해 획득된 사용자의 보행에 대한 정보를 저장할 수 있다.
프로세서(870)는 구동부(810), 통신부(850) 및 메모리(860)와 연결되어, 보행 보조 로봇(100-1)의 동작을 제어할 수 있다. 구체적으로, 프로세서(870)는 적어도 하나의 센서(840)를 통해 사용자의 보행에 대한 정보를 획득할 수 있다. 그리고, 사용자의 보행에 대한 정보가 획득되면, 프로세서(870)는 사용자의 보행에 대한 정보를 외부 장치(200)로 전송하도록 통신부(850)를 제어할 수 있다. 통신부(850)를 통해 외부 장치(200)로부터 사용자의 보행에 대한 정보에 대응되는 구동 데이터를 수신되면, 프로세서(870)는 수신된 구동 데이터를 바탕으로 보행 보조 로봇(100-1)의 동작을 제어할 수 있다.
구체적으로, 프로세서(870)는 보행 보조 로봇(100-1)이 제1 모드로 동작하는 동안 사용자의 보행에 대응되는 구동 데이터를 바탕으로 사용자의 다리가 움직이는 방향에 대응되는 방향으로 소정의 힘이 인가되도록 구동부(810)를 제어할 수 있으며, 보행 보조 로봇(100-1)이 제2 모드로 동작하는 동안 사용자의 보행에 대응되는 구동 데이터를 바탕으로 사용자의 다리가 움직이는 방향에 반대되는 방향으로 소정의 힘이 인가되도록 구동부(810)를 제어할 수 있다.
그리고, 프로세서(870)는 도 1 내지 도 7를 통해 상술한 바와 같은 다양한 실시 예를 구현할 수 있다. 특히, 프로세서(870)는 통신부(850)를 통해 보행 보조 로봇(100-1)과 연결된 외부 장치(200)로부터 구동 데이터를 수신하여 메모리(860)에 저장하고, 구동 데이터를 바탕으로 보행 보조 로봇(100-1)이 구동 데이터에 대응되는 동작을 수행하도록 구동부(810)를 제어할 수 있다. 그리고, 보행 보조 로봇(100-1)과 외부 장치(200) 사이의 통신 연결에 대한 오류가 발생되면, 프로세서(870)는 메모리(860)에 기 저장된 구동 데이터 중 오류가 발생된 시점을 기준으로 임계 구간 내에 외부 장치(200)로부터 수신된 제1 구동 데이터에 매칭되는 제2 구동 데이터를 식별하고, 제2 구동 데이터에 연속되는 제3 구동 데이터를 바탕으로 로봇(100)이 통신 오류가 발생된 시점 이후의 동작을 수행하도록 구동부(810)를 제어할 수 있다.
예를 들어, 프로세서(870)는 보행 보조 로봇(100-1)이 제1 모드로 동작하는 동안 사용자의 다리가 움직이는 방향에 대응되는 방향으로 소정의 힘이 인가되도록 구동부(810)를 제어할 수 있다. 이 때, 보행 보조 로봇(100-1)과 외부 장치(200) 사이의 통신 연결에 대한 오류가 발생되면, 프로세서(870)는 메모리(860)에 기 저장된 구동 데이터 중 통신 연결에 대한 오류에 의해 정상적으로 수신되지 않은 구동 데이터에 대응되는 구동 데이터를 식별하고 식별된 구동 데이터를 바탕으로 사용자의 다리가 움직이는 방향에 대응되는 방향으로 소정의 힘이 인가되도록 구동부(810)를 제어할 수 있다. 이에 따라, 통신 연결에 대한 오류가 발생되었음에도 불구하고, 통신 연결에 대한 오류 발생 전후로 수행되는 제1 모드의 동작이 자연스럽게 이어질 수 있게 된다.
또한, 프로세서(870)는 보행 보조 로봇(100-1)이 제2 모드로 동작하는 동안 사용자의 다리가 움직이는 방향에 반대되는 방향으로 소정의 힘이 인가되도록 구동부(810)를 제어할 수 있다. 이 때, 보행 보조 로봇(100-1)과 외부 장치(200) 사이의 통신 연결에 대한 오류가 발생되면, 프로세서(870)는 메모리(860)에 기 저장된 구동 데이터 중 통신 연결에 대한 오류에 의해 정상적으로 수신되지 않은 구동 데이터에 대응되는 구동 데이터를 식별하고 식별된 구동 데이터를 바탕으로 사용자의 다리가 움직이는 방향에 반대되는 방향으로 소정의 힘이 인가되도록 구동부(810)를 제어할 수 있다. 이에 따라, 통신 연결에 대한 오류가 발생되었음에도 불구하고, 통신 연결에 대한 오류 발생 전후로 수행되는 제2 모드의 동작이 자연스럽게 이어질 수 있게 된다.
도 9는 본 개시의 일 실시 예에 따른 로봇이 주행 로봇인 경우의 제어 과정에 대해 설명하기 위한 도면이다.
본 개시에 따른 로봇(100)은 도 8과 같은 보행 보조 로봇(100-1)으로 구현될 수도 있으나, 도 9에 도시된 바와 같은 주행 로봇(100-2)으로 구현될 수도 있다. 본 개시에 따른 주행 로봇(100-2)은 현재 위치로부터 목적지까지 경로를 주행하는 로봇을 말한다. 예를 들어, 본 개시에 따른 주행 로봇(100-2)은 한정된 실내 공간을 주행하는 반려 로봇 또는 리테일 서비스 로봇뿐만 아니라, 실외 공간을 주행하는 도로 주행 로봇(100-2) 등을 포함할 수 있다. 도 9에 도시하지는 않았으나, 본 개시에 따른 주행 로봇(100-2)은 구동부, 바퀴, 통신부, 메모리 및 프로세서를 포함할 수 있다. 이하에서는 도 6을 참조하여 설명한 내용과 중복되는 내용은 생략하고, 본 개시에 따른 로봇이 보행 보조 로봇으로 구현되는 경우에 대한 내용을 중심으로 설명한다.
구동부는 로봇에 공급되는 전기 에너지를 바탕으로 회전력을 발생시킬 수 있으며, 그 회전력은 바퀴에 전달될 수 있다. 그리고, 주행 로봇(100-2)은 바퀴의 회전에 의해 현재 위치로부터 목적지까지 이동할 수 있다.
그리고, 프로세서는 통신부를 통해 주행 로봇(100-2)과 연결된 외부 장치(200)로부터 구동 데이터를 수신하여 메모리에 저장하고, 구동 데이터를 바탕으로 주행 로봇(100-2)이 구동 데이터에 대응되는 동작을 수행하도록 구동부를 제어할 수 있다. 그리고, 주행 로봇(100-2)과 외부 장치(200) 사이의 통신 연결에 대한 오류가 발생되면, 프로세서는 메모리에 기 저장된 구동 데이터 중 오류가 발생된 시점을 기준으로 임계 구간 내에 외부 장치(200)로부터 수신된 제1 구동 데이터에 매칭되는 제2 구동 데이터를 식별하고, 제2 구동 데이터에 연속되는 제3 구동 데이터를 바탕으로 로봇이 통신 오류가 발생된 시점 이후의 동작을 수행하도록 구동부를 제어할 수 있다.
예를 들어, 주행 로봇(100-2)이 외부 장치(200)로부터 수신된 구동 데이터를 바탕으로 현재 위치에서 목적지까지의 경로를 주행하는 동안 주행 로봇(100-2)과 외부 장치(200) 사이의 통신 연결에 대한 오류가 발생되면, 프로세서는 메모리에 기 저장된 구동 데이터 중 통신 연결에 대한 오류에 의해 정상적으로 수신되지 않은 구동 데이터에 대응되는 구동 데이터를 식별하고, 식별된 구동 데이터를 바탕으로 통신 연결에 대한 오류가 발생된 시점 이후에도 주행 로봇(100-2)이 목적지에 도착할 수 있도록 구동부를 제어할 수 있다.
또한, 주행 로봇(100-2)이 외부 장치(200)로부터 수신된 구동 데이터를 바탕으로 현재 위치에서 목적지까지의 경로를 주행하는 동안 주행 로봇(100-2)과 외부 장치(200) 사이의 통신 연결에 대한 오류가 발생되면, 프로세서는 메모리에 기 저장된 구동 데이터 중 통신 연결에 대한 오류에 의해 정상적으로 수신되지 않은 구동 데이터에 대응되는 구동 데이터를 식별하고, 식별된 구동 데이터를 바탕으로 통신 연결에 대한 오류가 발생된 시점 이후에 주행 로봇(100-2)이 안전하게 감속한 후 정지할 수 있도록 구동부를 제어할 수 있다.
한편, 프로세서는 주행 로봇(100-2)이 경로를 이동하는 동안 그 경로에 대한 정보를 획득하고, 그에 기초하여 맵 정보를 생성하여 메모리에 저장할 수 있다. 그리고, 주행 로봇(100-2)이 외부 장치(200)로부터 수신된 구동 데이터를 바탕으로 현재 위치에서 목적지까지의 경로를 주행하는 동안 주행 로봇(100-2)과 외부 장치(200) 사이의 통신 연결에 대한 오류가 발생되면, 프로세서는 기 저장된 맵 정보를 바탕으로 로봇이 정지할 위치를 식별하고, 주행 로봇(100-2)이 정지할 위치까지 감속한 후 정지하도록 구동부를 제어할 수도 있다.
도 10은 본 개시의 일 실시 예에 따른 외부 장치가 복수인 경우의 제어 과정에 대해 설명하기 위한 도면이다.
이상에서는 외부 장치(200)가 하나인 경우를 전제로 설명하였으나, 본 개시에 따른 외부 장치(200)는 복수일 수도 있다. 구체적으로, 본 개시에 따른 복수의 외부 장치(200)는 신속성을 요구하는 데이터를 처리하기 위한 엣지 컴퓨팅 장치인 제1 외부 장치(200-1) 및 고도의 처리를 요구하는 데이터를 처리하기 위한 클라우드 컴퓨팅 장치인 제2 외부 장치(200-2)를 포함할 수 있다. 그리고, 로봇(100)은 제1 외부 장치(200-1)로부터 수신된 구동 데이터 및 제2 외부 장치(200-2)로부터 수신된 구동 데이터 중 적어도 일부를 이용하여 다양한 동작을 수행할 수 있다.
구체적으로, 도 7에 도시된 바와 같이, 로봇(100)은 제1 외부 장치(200-1)로부터 구동 데이터를 수신하고(S1010) 수신된 구동 데이터를 저장할 수 있다(S1020). 그리고, 로봇(100)은 제1 외부 장치(200-1)로부터 수신된 구동 데이터를 바탕으로 그 구동 데이터에 대응되는 동작을 수행할 수 있다(S1030).
이 때, 로봇(100)과 제1 외부 장치(200-1) 사이의 제1 통신 연결에 대한 오류가 발생되지 않으면, 로봇(100)은 제1 외부 장치(200-1)로부터 구동 데이터를 수신하고 그 구동 데이터에 대응되는 동작을 수행하는 과정을 실시간으로 수행할 수 있다. 반면, 로봇(100)과 제1 외부 장치(200-1) 사이의 제1 통신 연결에 대한 오류가 발생되면(S1040), 로봇(100)은 제2 외부 장치(200-2)로 구동 데이터를 요청할 수 있다(S1050). 그리고, 제2 외부 장치(200-2)로부터 구동 데이터가 수신되면(S1060), 로봇(100)은 제2 외부 장치(200-2)로부터 수신된 구동 데이터를 바탕으로 그 구동 데이터에 대응되는 동작을 수행할 수 있다(S1070).
이 경우, 로봇(100)과 제2 외부 장치(200-2) 사이의 제2 통신 연결에 대한 오류가 발생되지 않으면, 로봇(100)은 제2 외부 장치(200-2)로부터 구동 데이터를 수신하고 그 구동 데이터에 대응되는 동작을 수행하는 과정을 실시간으로 수행할 수 있다. 뿐만 아니라, 로봇(100)과 제2 외부 장치(200-2) 사이의 제2 통신 연결에 대한 오류가 발생되더라도, 로봇(100)과 제1 외부 장치(200-1) 사이의 제1 통신 연결에 대한 오류가 해결되면, 로봇(100)은 제2 외부 장치(200-2)로부터 구동 데이터를 수신하고 그 구동 데이터에 대응되는 동작을 수행하는 과정을 실시간으로 수행할 수 있다.
그러나, 제1 외부 장치(200-1) 사이의 제1 통신 연결에 대한 오류가 해결되지 않은 상태에서 로봇(100)과 제2 외부 장치(200-2) 사이의 제2 통신 연결에 대한 오류가 발생되면(S1080), 로봇(100)은 기 저장된 구동 데이터 중 제2 통신 연결에 대한 오류가 발생된 시점을 기준으로 임계 구간 내에 외부 장치로부터 수신된 제1 구동 데이터에 매칭되는 제2 구동 데이터를 식별하고(S1090), 제2 구동 데이터에 연속되는 제3 구동 데이터를 바탕으로 통신 연결에 대한 오류가 발생된 시점 이후의 동작을 수행할 수 있다(S1095).
이상에서는 도 10을 참조하여 본 개시에 따른 외부 장치가 복수 개인 경우의 실시 예에 대해 상술하였으나, 본 개시가 이에 국한되는 것은 아니다. 즉, 도 1 내지 도 9를 참조하여 상술한 바와 같은 본 개시의 다양한 실시 예는 본 개시에 따른 외부 장치가 복수 개인 경우에도 마찬가지로 적용될 수 있다.
한편, 이상에서 상술한 실시 예에 따른 로봇(100)의 제어 방법은 프로그램으로 구현되어 로봇(100)에 제공될 수 있다. 특히, 로봇(100)의 제어 방법을 포함하는 프로그램은 비일시적 판독 가능 매체(non-transitory computer readable medium)에 저장되어 제공될 수 있다.
구체적으로, 로봇(100)의 제어 방법을 실행하는 프로그램을 포함하는 컴퓨터 판독 가능 기록매체에 있어서, 로봇(100)의 제어 방법은 로봇(100)과 연결된 외부 장치로부터 구동 데이터를 수신하여 저장하는 단계, 구동 데이터를 바탕으로 로봇(100)이 구동 데이터에 대응되는 동작을 수행하도록 로봇(100)의 구동부를 제어하는 단계, 로봇(100)과 외부 장치 사이의 통신 연결에 대한 오류가 발생되면, 기 저장된 구동 데이터 중 통신 연결에 대한 오류가 발생된 시점을 기준으로 임계 구간 내에 외부 장치로부터 수신된 제1 구동 데이터에 매칭되는 제2 구동 데이터를 식별하는 단계 및 제2 구동 데이터에 연속되는 제3 구동 데이터를 바탕으로 로봇(100)이 통신 연결에 대한 오류가 발생된 시점 이후의 동작을 수행하도록 구동부를 제어하는 단계를 포함할 수 있다.
여기서, 비일시적 판독 가능 매체란 레지스터, 캐쉬, 메모리 등과 같이 짧은 순간 동안 데이터를 저장하는 매체가 아니라 반영구적으로 데이터를 저장하며, 기기에 의해 판독(reading)이 가능한 매체를 의미한다. 구체적으로는, 상술한 다양한 어플리케이션 또는 프로그램들은 CD, DVD, 하드 디스크, 블루레이 디스크, USB, 메모리카드, ROM 등과 같은 비일시적 판독 가능 매체에 저장되어 제공될 수 있다.
이상에서 로봇(100)의 제어 방법, 그리고 로봇(100)의 제어 방법을 실행하는 프로그램을 포함하는 컴퓨터 판독 가능 기록매체에 대해 간략하게 설명하였으나, 이는 중복 설명을 생략하기 위한 것일 뿐이며, 로봇(100)에 대한 다양한 실시 예는 로봇(100)의 제어 방법, 그리고 로봇(100)의 제어 방법을 실행하는 프로그램을 포함하는 컴퓨터 판독 가능 기록매체에 대해서도 적용될 수 있음은 물론이다.
한편, 기기로 읽을 수 있는 저장매체는, 비일시적(non-transitory) 저장매체의 형태로 제공될 수 있다. 여기서, '비일시적 저장매체'는 실재(tangible)하는 장치이고, 신호(signal)(예: 전자기파)를 포함하지 않는다는 것을 의미할 뿐이며, 이 용어는 데이터가 저장매체에 반영구적으로 저장되는 경우와 임시적으로 저장되는 경우를 구분하지 않는다. 예로, '비일시적 저장매체'는 데이터가 임시적으로 저장되는 버퍼를 포함할 수 있다.
일 실시 예에 따르면, 본 문서에 개시된 다양한 실시 예들에 따른 방법은 컴퓨터 프로그램 제품(computer program product)에 포함되어 제공될 수 있다. 컴퓨터 프로그램 제품은 상품으로서 판매자 및 구매자 간에 거래될 수 있다. 컴퓨터 프로그램 제품은 기기로 읽을 수 있는 저장 매체(예: compact disc read only memory (CD-ROM))의 형태로 배포되거나, 또는 어플리케이션 스토어(예: 플레이 스토어TM)를 통해 또는 두개의 사용자 장치들(예: 스마트폰들) 간에 직접, 온라인으로 배포(예: 다운로드 또는 업로드)될 수 있다. 온라인 배포의 경우에, 컴퓨터 프로그램 제품(예: 다운로더블 앱(downloadable app))의 적어도 일부는 제조사의 서버, 어플리케이션 스토어의 서버, 또는 중계 서버의 메모리와 같은 기기로 읽을 수 있는 저장 매체에 적어도 일시 저장되거나, 임시적으로 생성될 수 있다.
상술한 바와 같은 본 개시의 다양한 실시 예에 따르면, 외부 장치(200)로부터 구동 데이터를 수신하여 로봇(100)의 동작을 수행하는 동안 외부 장치(200)와의 통신 연결에 대한 오류가 발생되는 경우에도, 기 저장된 구동 데이터 중 통신 연결에 대한 오류에 의해 정상적으로 수신되지 않은 구동 데이터에 대응되는 구동 데이터를 식별하고 식별된 구동 데이터를 바탕으로 로봇(100)의 동작을 수행할 수 있다. 그리고 이에 따라, 통신 연결에 대한 오류 발생 전후로 수행되는 로봇(100)의 동작이 자연스럽게 이어질 수 있게 된다.
이상에서 상술한 바와 같은 본 개시의 다양한 실시 예들에 따른 구성 요소(예: 모듈 또는 프로그램) 각각은 단수 또는 복수의 개체로 구성될 수 있으며, 전술한 해당 서브 구성 요소들 중 일부 서브 구성 요소가 생략되거나, 또는 다른 서브 구성 요소가 다양한 실시 예에 더 포함될 수 있다. 대체적으로 또는 추가적으로, 일부 구성 요소들(예: 모듈 또는 프로그램)은 하나의 개체로 통합되어, 통합되기 이전의 각각의 해당 구성 요소에 의해 수행되는 기능을 동일 또는 유사하게 수행할 수 있다.
다양한 실시 예들에 따른, 모듈, 프로그램 또는 다른 구성 요소에 의해 수행되는 동작들은 순차적, 병렬적, 반복적 또는 휴리스틱하게 실행되거나, 적어도 일부 동작이 다른 순서로 실행되거나, 생략되거나, 또는 다른 동작이 추가될 수 있다.
한편, 본 개시에서 사용된 용어 "부" 또는 "모듈"은 하드웨어, 소프트웨어 또는 펌웨어로 구성된 유닛을 포함하며, 예를 들면, 로직, 논리 블록, 부품, 또는 회로 등의 용어와 상호 호환적으로 사용될 수 있다. "부" 또는 "모듈"은, 일체로 구성된 부품 또는 하나 또는 그 이상의 기능을 수행하는 최소 단위 또는 그 일부가 될 수 있다. 예를 들면, 모듈은 ASIC(application-specific integrated circuit)으로 구성될 수 있다.
본 개시의 다양한 실시 예들은 기기(machine)(예: 컴퓨터)로 읽을 수 있는 저장 매체(machine-readable storage media에 저장된 명령어를 포함하는 소프트웨어로 구현될 수 있다. 기기는 저장 매체로부터 저장된 명령어를 호출하고, 호출된 명령어에 따라 동작이 가능한 장치로서, 개시된 실시 예들에 따른 로봇(100))을 포함할 수 있다.
상기 명령이 프로세서에 의해 실행될 경우, 프로세서가 직접 또는 상기 프로세서의 제어 하에 다른 구성요소들을 이용하여 상기 명령에 해당하는 기능을 수행할 수 있다. 명령은 컴파일러 또는 인터프리터에 의해 생성 또는 실행되는 코드를 포함할 수 있다.
이상에서는 본 개시의 바람직한 실시 예에 대하여 도시하고 설명하였지만, 본 개시는 상술한 특정의 실시 예에 한정되지 아니하며, 청구범위에서 청구하는 본 개시의 요지를 벗어남이 없이 당해 개시가 속하는 기술분야에서 통상의 지식을 가진 자에 의해 다양한 변형실시가 가능한 것은 물론이고, 이러한 변형실시들은 본 개시의 기술적 사상이나 전망으로부터 개별적으로 이해되어서는 안 될 것이다.
Claims (15)
- 로봇에 있어서,회로를 포함하는 통신부;상기 로봇을 구동하는 구동부;적어도 하나의 인스트럭션(instruction)을 저장하는 메모리; 및프로세서; 를 포함하고,상기 프로세서는, 상기 적어도 하나의 인스트럭션을 실행함으로써,상기 통신부를 통해 상기 로봇과 연결된 외부 장치로부터 구동 데이터를 수신하여 상기 메모리에 저장하고,상기 구동 데이터를 바탕으로 상기 로봇이 상기 구동 데이터에 대응되는 동작을 수행하도록 상기 구동부를 제어하며,상기 로봇과 상기 외부 장치 사이의 통신 연결에 대한 오류가 발생되면, 상기 메모리에 기 저장된 구동 데이터 중 상기 통신 연결에 대한 오류가 발생된 시점을 기준으로 임계 구간 내에 상기 외부 장치로부터 수신된 제1 구동 데이터에 매칭되는 제2 구동 데이터를 식별하고,상기 제2 구동 데이터에 연속되는 제3 구동 데이터를 바탕으로 상기 로봇이 상기 통신 연결에 대한 오류가 발생된 시점 이후의 동작을 수행하도록 상기 구동부를 제어하는 로봇.
- 제1 항에 있어서,상기 제1 구동 데이터 및 상기 제2 구동 데이터 각각은 상기 구동부를 제어하기 위한 적어도 하나의 파라미터에 대한 정보를 포함하고,상기 적어도 하나의 파라미터에 대한 정보는 상기 로봇에 인가되는 힘에 대한 정보 및 상기 로봇에 힘이 인가되는 시간에 대한 정보를 포함하는 로봇.
- 제2 항에 있어서,상기 프로세서는,상기 제1 구동 데이터 및 상기 제2 구동 데이터 각각에 포함된 적어도 하나의 파라미터에 대한 정보를 바탕으로 상기 제1 구동 데이터에 매칭되는 제2 구동 데이터를 식별하는 로봇.
- 제1 항에 있어서,상기 임계 구간은 상기 통신 연결에 대한 오류가 발생된 시점을 기준으로 기 설정된 시간 이전의 시점부터 상기 통신 연결에 대한 오류가 발생된 시점까지의 구간인 로봇.
- 제1 항에 있어서,상기 프로세서는,상기 제3 구동 데이터를 바탕으로 상기 제3 구동 데이터에 대응되는 동작이 수행되는 동안 상기 발생된 통신 연결에 대한 오류가 유지되면, 상기 제3 구동 데이터에 연속되는 제4 구동 데이터를 바탕으로 상기 제3 구동 데이터에 대응되는 동작 이후의 동작을 수행하도록 상기 구동부를 제어하는 로봇.
- 제5 항에 있어서,상기 프로세서는,상기 제4 구동 데이터를 바탕으로 상기 제4 구동 데이터에 대응되는 동작이 수행되는 동안 상기 발생된 통신 연결에 대한 오류가 해결되면, 상기 통신부를 통해 상기 외부 장치로부터 제5 구동 데이터를 수신하고,상기 제5 구동 데이터를 바탕으로 상기 로봇이 상기 통신 연결에 대한 오류가 해결된 이후의 동작을 수행하도록 상기 구동부를 제어하는 로봇.
- 제1 항에 있어서,상기 로봇은 상기 사용자의 신체에 착용되는 주행 로봇이며,상기 프로세서는,상기 로봇이 제1 모드로 동작하는 동안 상기 로봇이 상기 사용자의 보행을 보조하기 위한 동작을 수행하도록 상기 구동부를 제어하며,상기 로봇이 제2 모드로 동작하는 동안 상기 로봇이 상기 사용자의 보행에 저항을 가하기 위한 동작을 수행하도록 상기 구동부를 제어하는 로봇.
- 제7 항에 있어서,적어도 하나의 센서; 를 더 포함하고,상기 프로세서는,상기 적어도 하나의 센서를 통해 상기 사용자의 보행에 대한 정보를 획득하여 상기 외부 장치로 전송하도록 상기 통신부를 제어하고,상기 통신부를 통해 상기 외부 장치로부터 상기 사용자의 보행에 대한 정보에 대응되는 구동 데이터를 수신하는 로봇.
- 제1 항에 있어서,상기 로봇은 주행 로봇이고,상기 프로세서는,상기 로봇이 이동하는 경로에 대한 맵 정보를 획득하여 상기 메모리에 저장하고,상기 로봇 및 상기 외부 장치 사이의 통신 연결에 대한 오류가 발생되면, 상기 맵 정보를 바탕으로 상기 로봇이 정지할 위치를 식별하며,상기 제3 구동 데이터를 바탕으로 상기 로봇이 상기 정지할 위치까지 감속한 후 정지하도록 상기 구동부를 제어하는 로봇.
- 로봇의 제어 방법에 있어서,상기 로봇과 연결된 외부 장치로부터 구동 데이터를 수신하여 저장하는 단계;상기 구동 데이터를 바탕으로 상기 로봇이 상기 구동 데이터에 대응되는 동작을 수행하도록 상기 로봇의 구동부를 제어하는 단계;상기 로봇과 상기 외부 장치 사이의 통신 연결에 대한 오류가 발생되면, 기 저장된 구동 데이터 중 상기 통신 연결에 대한 오류가 발생된 시점을 기준으로 임계 구간 내에 상기 외부 장치로부터 수신된 제1 구동 데이터에 매칭되는 제2 구동 데이터를 식별하는 단계; 및상기 제2 구동 데이터에 연속되는 제3 구동 데이터를 바탕으로 상기 로봇이 상기 통신 연결에 대한 오류가 발생된 시점 이후의 동작을 수행하도록 상기 구동부를 제어하는 단계; 를 포함하는 로봇의 제어 방법.
- 제10 항에 있어서,상기 제1 구동 데이터 및 상기 제2 구동 데이터 각각은 상기 구동부를 제어하기 위한 적어도 하나의 파라미터에 대한 정보를 포함하고,상기 적어도 하나의 파라미터에 대한 정보는 상기 로봇에 인가되는 힘에 대한 정보 및 상기 로봇에 힘이 인가되는 시간에 대한 정보를 포함하는 로봇의 제어 방법.
- 제11 항에 있어서,상기 제2 구동 데이터를 식별하는 단계는,상기 제1 구동 데이터 및 상기 제2 구동 데이터 각각에 포함된 적어도 하나의 파라미터에 대한 정보를 바탕으로 상기 제1 구동 데이터에 매칭되는 제2 구동 데이터를 식별하는 로봇의 제어 방법.
- 제10 항에 있어서,상기 임계 구간은 상기 통신 연결에 대한 오류가 발생된 시점을 기준으로 기 설정된 시간 이전의 시점부터 상기 통신 연결에 대한 오류가 발생된 시점까지의 구간인 로봇의 제어 방법.
- 제10 항에 있어서,상기 제3 구동 데이터를 바탕으로 상기 제3 구동 데이터에 대응되는 동작이 수행되는 동안 상기 발생된 통신 연결에 대한 오류가 유지되면, 상기 제3 구동 데이터에 연속되는 제4 구동 데이터를 바탕으로 상기 제3 구동 데이터에 대응되는 동작 이후의 동작을 수행하도록 상기 구동부를 제어하는 단계; 를 더 포함하는 로봇의 제어 방법.
- 제14 항에 있어서,상기 제4 구동 데이터를 바탕으로 상기 제4 구동 데이터에 대응되는 동작이 수행되는 동안 상기 발생된 통신 연결에 대한 오류가 해결되면, 상기 통신부를 통해 상기 외부 장치로부터 제5 구동 데이터를 수신하는 단계; 및상기 제5 구동 데이터를 바탕으로 상기 로봇이 상기 통신 연결에 대한 오류가 해결된 이후의 동작을 수행하도록 상기 구동부를 제어하는 단계; 를 더 포함하는 로봇의 제어 방법.
Priority Applications (3)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN202180052999.2A CN115989114B (zh) | 2020-08-27 | 2021-08-20 | 机器人和用于机器人的控制方法 |
| EP21861974.0A EP4173769A4 (en) | 2020-08-27 | 2021-08-20 | ROBOTS AND CONTROL METHOD FOR ROBOTS |
| US18/108,905 US20230191599A1 (en) | 2020-08-27 | 2023-02-13 | Robot and control method for robot |
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| KR1020200108817A KR20220027666A (ko) | 2020-08-27 | 2020-08-27 | 로봇 및 로봇의 제어 방법 |
| KR10-2020-0108817 | 2020-08-27 |
Related Child Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| US18/108,905 Continuation US20230191599A1 (en) | 2020-08-27 | 2023-02-13 | Robot and control method for robot |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| WO2022045677A1 true WO2022045677A1 (ko) | 2022-03-03 |
Family
ID=80353594
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| PCT/KR2021/011090 Ceased WO2022045677A1 (ko) | 2020-08-27 | 2021-08-20 | 로봇 및 로봇의 제어 방법 |
Country Status (5)
| Country | Link |
|---|---|
| US (1) | US20230191599A1 (ko) |
| EP (1) | EP4173769A4 (ko) |
| KR (1) | KR20220027666A (ko) |
| CN (1) | CN115989114B (ko) |
| WO (1) | WO2022045677A1 (ko) |
Families Citing this family (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| DE102019217427A1 (de) * | 2019-11-12 | 2021-05-12 | Kuka Deutschland Gmbh | Steuern und/oder Überwachen einer Maschinenanordnung |
| CN116728405A (zh) * | 2023-06-02 | 2023-09-12 | 广州鹏远智能设备有限公司 | 一种基于5g网络的医疗机器人的控制方法及系统 |
Citations (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2004314255A (ja) * | 2003-04-17 | 2004-11-11 | Yaskawa Electric Corp | ロボットの制御装置 |
| JP2010167550A (ja) * | 2008-12-24 | 2010-08-05 | Daihen Corp | ロボット制御システム及びコントローラ |
| JP2015186834A (ja) * | 2014-03-27 | 2015-10-29 | セイコーエプソン株式会社 | ロボット制御装置、把持部制御装置、ロボット、把持部、ロボット制御方法、及びプログラム |
| KR20180033652A (ko) * | 2016-09-26 | 2018-04-04 | 삼성전자주식회사 | 보행 보조 장치 및 보행 보조 장치의 동작 방법 |
| KR102012548B1 (ko) * | 2017-01-25 | 2019-08-20 | 엘지전자 주식회사 | 로봇의 진입 가능 영역을 식별하는 방법 및 이를 구현하는 로봇 |
| KR20200108817A (ko) | 2020-09-14 | 2020-09-21 | 송종봉 | 오염물질을 처리하는 방법 및 그 장치 |
Family Cites Families (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US9393691B2 (en) * | 2009-02-12 | 2016-07-19 | Mitsubishi Electric Corporation | Industrial robot system including action planning circuitry for temporary halts |
| KR20130120307A (ko) * | 2012-04-25 | 2013-11-04 | 주식회사 하이로시 | 주행로봇 및 주행로봇의 제어방법 |
| US10730186B2 (en) * | 2015-05-21 | 2020-08-04 | Kastanienbaum GmbH | Method and device for open-loop/closed-loop control of an actuator-driven robot joint |
| CN110154030B (zh) * | 2019-06-13 | 2021-05-18 | 哈尔滨玄智科技有限公司 | 一种对战机器人控制方法、对战机器人及控制终端 |
-
2020
- 2020-08-27 KR KR1020200108817A patent/KR20220027666A/ko not_active Ceased
-
2021
- 2021-08-20 CN CN202180052999.2A patent/CN115989114B/zh active Active
- 2021-08-20 WO PCT/KR2021/011090 patent/WO2022045677A1/ko not_active Ceased
- 2021-08-20 EP EP21861974.0A patent/EP4173769A4/en active Pending
-
2023
- 2023-02-13 US US18/108,905 patent/US20230191599A1/en active Pending
Patent Citations (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2004314255A (ja) * | 2003-04-17 | 2004-11-11 | Yaskawa Electric Corp | ロボットの制御装置 |
| JP2010167550A (ja) * | 2008-12-24 | 2010-08-05 | Daihen Corp | ロボット制御システム及びコントローラ |
| JP2015186834A (ja) * | 2014-03-27 | 2015-10-29 | セイコーエプソン株式会社 | ロボット制御装置、把持部制御装置、ロボット、把持部、ロボット制御方法、及びプログラム |
| KR20180033652A (ko) * | 2016-09-26 | 2018-04-04 | 삼성전자주식회사 | 보행 보조 장치 및 보행 보조 장치의 동작 방법 |
| KR102012548B1 (ko) * | 2017-01-25 | 2019-08-20 | 엘지전자 주식회사 | 로봇의 진입 가능 영역을 식별하는 방법 및 이를 구현하는 로봇 |
| KR20200108817A (ko) | 2020-09-14 | 2020-09-21 | 송종봉 | 오염물질을 처리하는 방법 및 그 장치 |
Non-Patent Citations (1)
| Title |
|---|
| See also references of EP4173769A4 |
Also Published As
| Publication number | Publication date |
|---|---|
| KR20220027666A (ko) | 2022-03-08 |
| US20230191599A1 (en) | 2023-06-22 |
| CN115989114B (zh) | 2025-03-11 |
| EP4173769A1 (en) | 2023-05-03 |
| CN115989114A (zh) | 2023-04-18 |
| EP4173769A4 (en) | 2024-01-03 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| WO2020032486A1 (en) | Apparatus and method for communicating by using bluetooth low energy | |
| WO2018093055A1 (en) | Mobile robot system and mobile robot | |
| WO2020067785A1 (ko) | 사물의 위치 및 방향을 기반으로 기능을 제어하는 전자 장치 및 방법 | |
| WO2018043966A1 (ko) | 로봇 청소기, 단말 장치 및 그 제어 방법 | |
| WO2021261716A1 (ko) | 도킹 스테이션, 이동 로봇 및 도킹 스테이션과 이동 로봇을 제어하는 이동 로봇 관리 시스템 | |
| WO2022045677A1 (ko) | 로봇 및 로봇의 제어 방법 | |
| WO2015152614A1 (en) | Method of reconnecting master device and slave device | |
| WO2023096151A1 (ko) | 로봇 및 그 제어 방법 | |
| WO2021125626A1 (ko) | 무선 통신을 이용하여 출입을 제어하는 전자 장치 및 그 방법 | |
| WO2019066521A1 (en) | ELECTRONIC DEVICE AND METHOD FOR CONTROLLING ELECTRONIC DEVICE | |
| WO2019066541A1 (en) | INPUT DEVICE, ELECTRONIC DEVICE, SYSTEM COMPRISING THE SAME, AND CORRESPONDING CONTROL METHOD | |
| WO2021187695A1 (ko) | 복수의 통신 방식을 사용하는 전자 장치 및 이의 제어 방법 | |
| WO2020145688A1 (en) | Electronic device and controlling method thereof | |
| WO2020256497A1 (ko) | 블루투스 통신 연결 방법 및 그 전자 장치 | |
| WO2020171472A1 (en) | Electronic device and control method thereof | |
| WO2020197339A1 (en) | Method for processing network packets and electronic device therefor | |
| WO2019209075A1 (ko) | 외부 전자 장치를 제어하는 전자 장치 및 방법 | |
| WO2022234923A1 (ko) | 통신 기반 로봇 제어 방법 및 시스템과, 로봇이 배치되는 건물 | |
| WO2018105965A1 (en) | Vehicle operating method and vehicle operating apparatus | |
| WO2019225925A1 (ko) | 객체 위치 추정 방법 및 이를 위한 장치 | |
| WO2020262808A1 (ko) | 영역(zone)을 형성하여 전자 장치에 관한 서비스를 제공하는 방법 및 그 장치 | |
| WO2022164179A1 (ko) | 전자 장치 및 전자 장치에서 와이파이 기반 로밍 방법 | |
| WO2022030860A1 (ko) | Iot 환경에서 타겟 전자 장치를 제어하기 위한 전자 장치 및 그에 관한 방법 | |
| WO2019031715A1 (ko) | 가상코드 기반의 제어시스템, 방법 및 프로그램, 제어디바이스 및 제어신호생성수단 | |
| WO2020180072A1 (ko) | 엣지 컴퓨팅 환경에서 어플리케이션 재배치를 제어하기 위한 장치 및 방법 |
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: 21861974 Country of ref document: EP Kind code of ref document: A1 |
|
| ENP | Entry into the national phase |
Ref document number: 2021861974 Country of ref document: EP Effective date: 20230126 |
|
| NENP | Non-entry into the national phase |
Ref country code: DE |
|
| WWG | Wipo information: grant in national office |
Ref document number: 202180052999.2 Country of ref document: CN |