WO2022234923A1 - Communication-based robot control method and system, and building in which robot is positioned - Google Patents
Communication-based robot control method and system, and building in which robot is positioned Download PDFInfo
- Publication number
- WO2022234923A1 WO2022234923A1 PCT/KR2022/000145 KR2022000145W WO2022234923A1 WO 2022234923 A1 WO2022234923 A1 WO 2022234923A1 KR 2022000145 W KR2022000145 W KR 2022000145W WO 2022234923 A1 WO2022234923 A1 WO 2022234923A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- robot
- control command
- controlling
- control
- driving unit
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 73
- 238000004891 communication Methods 0.000 title claims description 101
- 210000004556 brain Anatomy 0.000 claims description 73
- 238000012545 processing Methods 0.000 claims description 48
- 230000033001 locomotion Effects 0.000 claims description 37
- 238000007781 pre-processing Methods 0.000 claims description 18
- 230000008569 process Effects 0.000 claims description 12
- 238000013439 planning Methods 0.000 claims description 11
- 230000004927 fusion Effects 0.000 claims description 7
- 238000012937 correction Methods 0.000 claims description 5
- 230000007613 environmental effect Effects 0.000 claims description 3
- 230000006870 function Effects 0.000 description 12
- 238000012384 transportation and delivery Methods 0.000 description 7
- 230000005540 biological transmission Effects 0.000 description 6
- 238000007726 management method Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 4
- 230000004807 localization Effects 0.000 description 4
- 230000006855 networking Effects 0.000 description 4
- 238000003860 storage Methods 0.000 description 4
- 238000004364 calculation method Methods 0.000 description 3
- 238000012423 maintenance Methods 0.000 description 3
- 230000004044 response Effects 0.000 description 3
- 238000004140 cleaning Methods 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 238000009826 distribution Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 235000013361 beverage Nutrition 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000003252 repetitive effect Effects 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 230000002194 synthesizing effect Effects 0.000 description 1
Images
Classifications
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/16—Programme controls
- B25J9/1656—Programme controls characterised by programming, planning systems for manipulators
- B25J9/1664—Programme controls characterised by programming, planning systems for manipulators characterised by motion, path, trajectory planning
-
- 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/006—Controls for manipulators by means of a wireless system for controlling one or several manipulators
-
- 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/088—Controls for manipulators by means of sensing devices, e.g. viewing or touching devices with position, velocity or acceleration sensors
- B25J13/089—Determining the position of the robot with reference to its environment
-
- 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
- B25J5/00—Manipulators mounted on wheels or on carriages
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J5/00—Manipulators mounted on wheels or on carriages
- B25J5/007—Manipulators mounted on wheels or on carriages mounted on wheels
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/16—Programme controls
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/16—Programme controls
- B25J9/1602—Programme controls characterised by the control system, structure, architecture
-
- 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
-
- 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
Definitions
- the following description relates to a method and system for controlling a robot, and to a method and system for controlling a robot by generating a control command for controlling a driving unit of the robot based on raw data received from the robot. .
- a robot implemented to provide such a service may move to a destination on an optimal route through autonomous driving, for example, and provide a service at the destination.
- the driving unit of the robot may be controlled based on the state of the robot or the surrounding environment. Configuring the robot so that the operation for controlling the robot's driving unit is performed on the robot side not only complicates the implementation of the robot, but also increases the maintenance cost of the robot and reduces the scalability of the robot.
- Korean Patent Laid-Open No. 10-2005-0024840 is a technology related to a path planning method for an autonomous mobile robot, and it is a technology for a mobile robot that moves autonomously at home or in an office to avoid obstacles and to find an optimal path that can move safely and quickly to a target point. How to plan is disclosed.
- a robot control method in which a robot control system generates a control command for controlling a driving unit of the robot based on raw data received from the robot, and transmits the generated control command to the robot to control the driving unit of the robot.
- the robot control system generates a low-level control command to control the driving unit of the robot based on the raw sensing data received through wireless communication with the robot, and recognition and command interpretation based on the sensing data from the robot side.
- a method of controlling a robot performed by a robot control system, receiving raw data from the robot, based on the received raw data, a control command for controlling a driving unit of the robot and transmitting the generated control command to the robot, wherein the control command is input to the driving unit and includes a low-level control command for controlling the driving unit.
- a method of controlling is provided.
- the driving unit includes at least one of an actuator and a motor
- the control command includes a command for controlling at least one of speed, position, and torque of the actuator, or for controlling at least one of the speed and torque of the motor It can contain commands.
- the control command may include a command for feedback control of the actuator or the motor.
- the raw data may include raw sensing data obtained by the sensor unit of the robot.
- the generating of the control command includes preprocessing the raw sensing data, wherein the raw sensing data is an image acquired by a camera of the sensor unit or a plurality of sensing units acquired by a plurality of sensors of the sensor unit. data, wherein the pre-processing includes performing refine processing to enable recognition of an object in the image, or the plurality of It may include fusion (fusion) of the sensed data of.
- the generating of the control command may include, based on the raw sensing data, obtaining at least one information of the state information of the robot and environment information of an environment in which the robot is driven, and based on the obtained information, the It may include generating the control command for controlling the driving unit.
- the acquiring may include at least one of i) generating a local map around the robot based on the raw sensing data, and ii) recognizing an object around the robot based on the raw sensing data. one, and the at least one piece of information may be acquired based on at least one of the local map and the recognition result of the object.
- the control command is a control command for controlling movement of the robot for autonomous driving of the robot, and generating the control command includes a motion plan associated with the robot, the state information and the environment information. based on , it is possible to generate a control command for the driving unit to cause the robot to follow the movement plan and avoid obstacles in the environment.
- the movement plan includes information on a path through which the robot should travel, the status information includes a position of the robot, the environment information includes information about objects around the robot, and the control command may include a command for feedback-controlling at least one of a motor and an actuator included in the driving unit so that the robot moves along the path and avoids the obstacle.
- the raw sensing data is that the sensing data first collected from the sensor unit is pre-processed by the robot side, and the control command may be input to the driving unit after correction processing at the robot side.
- the raw data may be received from the robot, and the control command may be transmitted to the robot.
- the robot may be a brainless robot that controls the driving unit by executing the low-level control command received from the robot control system without performing a process of interpreting the received control command.
- the method for controlling the robot includes generating a robot control model for controlling the other robot based on predefined information about the other robot when control of the other robot is requested, based on the robot control model
- the method may further include estimating the state of the other robot and generating a control command for controlling the driving unit of the other robot based on the estimated state of the other robot.
- the predefined information about the other robot used to generate the robot control model includes specification information of a sensor unit and a driving unit included in the other robot, physical shape information of the other robot, and dynamics associated with the other robot. It may include a dynamics model.
- the robot is controlled by a first robot brain of the robot control system, the receiving step, the generating step, and the transmitting step are performed by the first robot brain, the method of controlling the robot Further comprising the step of configuring a second robot brain logically separated from the first robot brain for controlling the other robot when the control of the other robot is requested, and receiving the raw data from the other robot , generation of a control command for controlling the driving unit of the other robot and transmission of a control command for controlling the driving unit of the other robot may be performed through the second robot brain.
- the first robot brain is first connected to the robot through a gateway of the robot control system, and after the initial connection, communicates with the robot through the communication unit of the first robot brain, and the second robot brain is the other robot It is connected to the gateway for the first time, and after the initial connection, it can communicate with the other robot through the communication unit of the second robot brain.
- the robot may be switched to a standby mode.
- the robot When an object is detected within a predetermined distance from the robot, the robot may be switched to a standby mode regardless of the control command.
- a robot control system for controlling a robot, comprising at least one processor implemented to execute a command readable by a wireless communication unit and a computer, wherein the at least one processor includes the wireless communication unit and the robot According to the communication between the wireless communication unit of the receiving raw data from the robot, based on the received raw data, generates a control command for controlling the driving unit of the robot, between the wireless communication unit and the wireless communication unit of the robot According to communication, the generated control command is transmitted to the robot, and the control command is input to the driving unit, and includes a low-level control command for controlling the driving unit, a robot control system is provided. .
- the raw data includes raw sensing data obtained by a sensor unit of the robot, and the at least one processor, a preprocessor preprocessing the raw sensing data, based on the preprocessed raw sensing data,
- a robot generating the control command for controlling the driving unit based on the robot state and environment recognition processing unit obtaining at least one information of the state information of the robot and the environment information of the environment in which the robot is driven, and the obtained information It may include a control unit.
- the control command is a control command for controlling the movement of the robot for autonomous driving of the robot
- the at least one processor includes a travel planning unit for managing a movement plan associated with the robot, the robot control unit comprising: Based on the state information and the environment information, it is possible to generate a control command for the driving unit to cause the robot to follow the movement plan and avoid obstacles in the environment.
- the at least one processor is configured to generate a robot control model for controlling the other robot based on predefined information about the other robot when control of the other robot is requested, wherein the robot control model is configured to: It is possible to estimate the state of the other robot, and generate a control command for controlling the driving unit of the other robot based on the estimated state of the other robot.
- the at least one processor comprises a first robot brain, wherein the first robot brain is configured to receive the raw data, generate the control command, and send the control command to the robot, wherein the at least one The processor is configured to generate a second robot brain logically separated from the first robot brain for controlling the other robot when the control of the other robot is requested, and receiving raw data from the other robot, The generation of a control command for controlling the driving unit of the other robot and transmission of the control command for controlling the driving unit of the other robot may be performed through the second robot brain.
- a wireless communication unit in a robot controlled by a robot control system, a wireless communication unit, a sensor unit including at least one sensor, a driving unit including at least one of a motor and an actuator, and a sensor driver for the sensor unit and the and a control unit including a driving unit driver for the driving unit, wherein the control unit transmits raw data including raw sensing data obtained by the sensor unit to the robot control system through the wireless communication unit,
- the robot control system receives a control command for controlling the driving unit generated based on the raw data through the wireless communication unit, executes the received control command to control the driving unit, and the received control A command is input to the driving unit, and includes a low-level control command for controlling the driving unit, the robot is provided.
- the robot control system generates a low-level control command to control the driving unit of the robot based on the raw sensing data received through wireless communication with the robot, and the actuator included in the driving unit of the robot through the low-level control command
- the robot can be configured to include an on-board computer system that does not include a complex on-board computer system or includes minimal hardware.
- the robot Since the robot is simply implemented so that the driving unit of the robot is controlled according to a control command from the robot control system, the possibility of changing the function and scalability of the robot can be increased according to the configuration of the robot control system.
- FIG. 1 shows a method of controlling a robot, according to an embodiment.
- FIG. 2 is a block diagram illustrating a robot, according to an embodiment.
- FIG. 3 is a block diagram illustrating a robot control system for controlling a robot, according to an embodiment.
- FIG. 4 illustrates a method for the robot control system to control the driving unit of the robot through a low-level control command based on wireless communication between the robot and the robot control system, according to an embodiment.
- FIG. 5 is a flowchart illustrating a method of controlling a robot, according to an embodiment.
- FIG. 6 is a flowchart illustrating a method of generating a control command for controlling a driving unit of a robot in a robot control system, according to an example.
- FIG. 7 illustrates a method in which the robot autonomously travels by controlling the driving unit of the robot through a low-level control command by the robot control system based on wireless communication between the robot and the robot control system, according to an example.
- FIG. 8 is a flowchart illustrating a method of controlling a robot by generating a robot control model, according to an embodiment.
- FIG. 9 is a flowchart illustrating a method of controlling a robot by generating a robot brain, according to an example.
- FIG. 10 illustrates a multi-robot control method for controlling a plurality of robots, according to an example.
- FIG. 1 shows a method of controlling a robot, according to an embodiment.
- the robot 100 illustrated in FIG. 1 may be, for example, a service robot configured to provide a service in a space such as a building, indoors, or other open area.
- the robot 100 may be configured to perform a specific function or perform a task related to provision of a service according to control by the robot control system 120 .
- the space in which the robot 100 travels is a place where the robot 100 provides a service, and may represent, for example, a building.
- a space is a space where a plurality of persons (hereinafter, referred to as users) work or reside, and may include a plurality of partitioned spaces.
- a space may represent a part of a building (a specific floor or subspace within that floor).
- the robot 100 which is a service robot, may be configured to provide a service on at least one floor of a space.
- the robot control system 120 may be configured to control each of a plurality of robots. At this time, each of the robots may move in the space to provide a service to an appropriate location in the space or an appropriate user.
- the service provided by the robot 100 may include, for example, at least one of a delivery service delivery service, a beverage (coffee, etc.) delivery service according to an order, a cleaning service, and other information/content providing services.
- the robot 100 may provide a service to a predetermined user or at a predetermined location in space through autonomous driving.
- the robot 100 may move to a specific location according to the control by the robot control system 120 or may execute other tasks or functions required to provide services.
- the robot control system 120 generates a control command for controlling the driving unit of the robot 100 based on the raw data received from the robot 100, and transmits the generated control command to the robot to It is possible to control the driving unit of (100).
- the robot control system 120 may receive raw data including raw sensing data collected by the sensor unit of the robot 100 from the robot 100 (1).
- the robot control system 120 may generate a control command for controlling the driving unit of the robot 100 to a low-level based on the received raw data (2).
- the robot control system 120 may transmit the generated control command to the robot 100 (3), and the robot 100 may control the driving unit by executing the received control command.
- the robot control system 120 does not generate a high-level command abstracted as a control command for controlling the driving unit of the robot 100, but operates the motor and/or actuator of the driving unit (lower level). You can create low-level control commands that give you direct control. Therefore, on the robot 100 side, there is no need to perform a process of interpreting the received control command, and only by executing the received low-level control command (eg, input to the driving unit), the driving unit can be operated according to the corresponding control command. .
- the robot 100 may be implemented as a brainless robot that controls the driving unit by executing a low-level control command from the robot control system 120 without performing a process of interpreting the received control command.
- the robot control system 120 may be implemented as a robot brain (brain system) that controls such a brainless robot.
- the robot 100 transmits the collected raw sensing data to the robot control system 120 and receives a low-level control command from the robot control system 120 to operate the driving unit. It may not contain components such as computer systems.
- FIG. 2 is a block diagram illustrating a robot, according to an embodiment.
- the robot 100 may be a service robot used to provide a service in a space.
- the robot 100 may be configured to provide a service to a predetermined user or at a predetermined location in space through autonomous driving.
- the robot 100 may be a physical device, and as shown, may include a control unit 104 , a driving unit 108 , a sensor unit 106 , and a communication unit 102 .
- the control unit 104 may be a physical processor built into the robot 100 or an onboard computer system.
- the robot 100 implemented as a brainless robot communicates with the robot control system 120 , transmits data to the robot control system 120 , and receives a command received from the robot control system 120 . It may include only the components necessary for processing (eg, transmission to the drive unit 108 and/or the sensor unit 106 ).
- control unit 104 transmits the raw sensing data collected through the sensor unit 106 to the robot control system 120 , and receives a low-level control command from the robot control system 120 to operate the driving unit 108 . It may include only a configuration to make it happen. In other words, the control unit 104 may not include a complex configuration (eg, GPU, etc.) for interpreting and processing the sensed data and control commands.
- a complex configuration eg, GPU, etc.
- the control unit 104 may include a sensor driver for the sensor unit 106 and a driver driver for the driving unit 108 .
- the communication unit 102 may be configured for the robot 100 to communicate with other devices (such as the robot control system 120 ). In other words, the communication unit 102 transmits/receives data and/or information to/from other devices such as the robot control system 120 , an antenna of the robot 100 , a data bus, a network interface card, a network interface chip, and a networking interface. It may be a hardware module, such as a port, or a software module, such as a network device driver or networking program.
- the communication unit 102 is a wireless communication unit for communicating with the robot control system 120 , and transmits raw data including (raw) sensing data to the robot control system 120 , and from the robot control system 120 .
- a control command for the driving unit 108 may be received.
- the sensor unit 106 may be configured to collect data required for autonomous driving and service provision of the robot 100 .
- the sensor unit 106 may not include expensive sensing equipment, and may only include a sensor such as a low-cost ultrasonic sensor and/or a low-cost camera.
- the sensor unit 106 may include sensors for identifying objects such as other robots, people, obstacles, etc. in front and/or behind. For example, other robots, people, and other features may be identified through the camera of the sensor unit 106 .
- the sensor unit 106 may include an infrared sensor (or an infrared camera).
- the sensor unit 106 may further include a sensor for recognizing/identifying a nearby user, another robot, or a feature.
- the sensor unit 106 may include at least one distance sensor for identifying a distance to an object(s) existing in the vicinity.
- the sensor unit may include a sensor for detecting the state of the robot 100 and recognizing the environment, including an odometer.
- the (raw) sensing data from the sensors of the sensor unit 106 may be transmitted to the robot control system 120 through the communication unit 102 .
- the sensed data may be transmitted to the robot control system 120 through the communication unit 102 via a sensor driver (or sensor hub) of the control unit 104 .
- the driving unit 108 controls the movement of the robot 100 and may include equipment (hardware) for performing this as a configuration that enables movement.
- the driving unit 108 may include equipment (hardware) for performing a function necessary for the robot 100 to perform a task related to the requested service.
- the driving unit 108 may include at least one motor and/or at least one actuator for operating wheels, caterpillar wheels, legs, etc. for movement of the robot 100 .
- the driving unit 108 may include equipment related to a service provided by the robot 100 .
- the driving unit 108 of the robot 100 is configured to load food/delivery or deliver food/delivery to a user (eg, robot arm).
- a user e.g, robot arm
- the robot 100 may further include a speaker and/or a display for providing information/content.
- the driving unit 108 may be controlled according to a control command from the robot control system 120 .
- the driving unit 108 may execute a low-level control command received from the robot control system 120 to perform an operation corresponding to the control command. For example, when a low-level control command from the robot control system 120 is input to the driving unit 108 , the driving unit 108 may perform an operation indicated by the corresponding control command.
- a control command from the robot control system 120 may be transmitted to the driving unit 108 through the communication unit 102 .
- a control command from the robot control system 120 is received via the communication unit 102 and transmitted to each component of the driving unit 108 (eg, each motor and/or actuator) by a driving unit driver of the control unit 104 .
- each component of the driving unit 108 eg, each motor and/or actuator
- the robot 100 transmits the sensed data from the sensor unit 106 to the robot control system 120 and receives a control command from the robot control system 120 to control the bar, (corresponding to the brain). It can be a brainless robot (controlled by the robot control system 120 ).
- each of the robots 100 may have different sizes and shapes (ie, different types of sensor units 106 and/or driving units 108 ) according to models or services provided.
- FIG. 2 The description of the technical features described above with reference to FIG. 1 may be applied to FIG. 2 as it is, and thus a redundant description will be omitted.
- FIG. 3 is a block diagram illustrating a robot control system for controlling a robot composed of a plurality of modular robots, according to an embodiment.
- the robot control system 120 may be a device for controlling the movement (ie, driving) in the space of the robot 100 and the provision of services in the space by the robot 100 .
- the robot control system 120 may control movement of each of the plurality of robots and the provision of services of each of the robots 100 .
- the robot control system 120 can plan and set a path to be moved by the robot 100 in order to provide a service through communication with the robot 100, and transmit a control command for movement according to this path to the robot ( 100) can be forwarded.
- the robot 100 may move to a predetermined position or to a predetermined user according to the received control command.
- the robot 100 may provide a service (perform a service-related task) to a predetermined location or to a predetermined user according to the control of the robot control system 120 .
- the robot control system 120 may include at least one computing device.
- the robot control system 120 may be a device for planning and setting a route for the traveling of the robot 100 and controlling the movement of the robot 100 as described above.
- the robot control system 120 may include at least one computing device, and may be implemented as at least one server (eg, a cloud server) located in or outside the space in which the robot 100 travels.
- the robot control system 120 may include a memory 330 , a processor 320 , a communication unit 310 , and an input/output interface 340 .
- the memory 330 is a computer-readable recording medium and may include a random access memory (RAM), a read only memory (ROM), and a permanent mass storage device such as a disk drive.
- RAM random access memory
- ROM read only memory
- a permanent mass storage device such as a disk drive.
- the ROM and the non-volatile mass storage device may be separated from the memory 330 and included as separate permanent storage devices.
- an operating system and at least one program code may be stored in the memory 330 .
- These software components may be loaded from a computer-readable recording medium separate from the memory 330 .
- the separate computer-readable recording medium may include a computer-readable recording medium such as a floppy drive, a disk, a tape, a DVD/CD-ROM drive, and a memory card.
- the software components may be loaded into the memory 330 through the communication unit 310 rather than a computer-readable recording medium.
- the processor 320 may be configured to process instructions of a computer program by performing basic arithmetic, logic, and input/output operations.
- the command may be provided to the processor 320 by the memory 330 or the communication unit 310 .
- the processor 320 may be configured to execute a received instruction according to a program code loaded into the memory 330 .
- the communication unit 310 may be configured for the robot control system 120 to communicate with other devices (such as the robot 100 or another server). In other words, the communication unit 310 transmits/receives data and/or information to/from other devices, such as an antenna of the robot control system 120, a data bus, a network interface card, a network interface chip, and a hardware module such as a networking interface port or the like. It may be a software module such as a network device driver or a networking program.
- the communication unit 310 is a wireless communication unit for communicating with the robot 100 , and receives raw data including (raw) sensing data from the robot 100 , and for the driving unit 108 to the robot 100 .
- Control commands can be sent.
- the robot 100 and the robot control system 120 may transmit and receive data and commands by communicating through the respective wireless communication units 102 and 310 .
- the input/output interface 340 may be a means for interfacing with an input device such as a keyboard or mouse and an output device such as a display or speaker.
- the robot control system 120 and the processor 320 may include more components than the illustrated components.
- the processor 320 may include components such as those shown in FIG. 4 (eg, 410 to 440 ).
- raw data including the raw sensing data collected by the sensor unit 106 of the robot 100 from the robot 100 through the communication unit 310 may be received by the processor 320, and the processor ( The 320 may generate a control command (low-level control command) for the driving unit 108 of the robot 100 based on the sensed data received from the robot 100 .
- the processor 320 may transmit a control command to the robot 100 through the communication unit 310 , and thus the driving unit 108 may be controlled according to the transmitted control command.
- the communication unit 310 may utilize socket communication, a stream, a message queue, and the like for communication with the robot 100 .
- the operation of the processor 320 generating a control command for the driving unit 108 may be performed by the components 410 to 440 .
- Each of the components 410 to 440 of the processor 320 may be a software and/or hardware module as a part of the processor 320 , and may represent a function (functional block) implemented by the processor. Configurations 410 to 440 of the processor 320 will be described later with reference to FIG. 4 .
- FIG. 3 The description of the technical features described above with reference to FIGS. 1 and 2 can be applied to FIG. 3 as it is, and thus a redundant description will be omitted.
- FIG. 4 illustrates a method for the robot control system to control the driving unit of the robot through a low-level control command based on wireless communication between the robot and the robot control system, according to an embodiment.
- the robot control system 120 may include a preprocessor 410 , a robot state and environment recognition processor 420 , a robot controller 430 , and a travel planner 440 . These components 410 to 440 may be a part of the above-described processor 320 or a function implemented by the processor 320 . Components included in the processor 320 may perform different functions ( different functions).
- control unit 104 of the robot 100 may include a sensor driver 450 and a driving unit driver 460 .
- the sensor unit 106 includes a plurality of sensors 470 - 1 to 4
- the driving unit 108 is illustrated as including an actuator 482 and a motor 484 .
- the robot 100 as a brainless robot and the robot control system 120 as a brain system for controlling the robot 100 will be described in more detail.
- the control unit 104 of the robot 100 transmits raw data including the raw sensing data acquired (collected) by the sensor unit 106 (ie, the sensors 470-1 to 4) to the robot control system 120 .
- Raw data including raw sensing data may be transmitted from the sensors 470-1 to 4 to the sensor driver 450 (sensor hub) and may be transmitted to the robot control system 120 through the wireless communication unit 102 . have.
- the robot control system 120 may receive raw data including raw sensing data from the robot 100 according to communication between its own wireless communication unit 320 and the wireless communication unit 102 of the robot 100 .
- the processor 320 of the robot control system 120 may generate a control command for controlling the driving unit 108 of the robot 100 based on the received raw data.
- the robot control system 120 may transmit the generated control command to the robot 100 according to communication between its own wireless communication unit 320 and the wireless communication unit 102 of the robot 100 .
- the control command may be received by the robot 100 through the wireless communication unit 102 , and the robot 100 may control the driving unit 108 by executing the control command.
- the control command from the robot control system 120 is received by the driving unit driver 104 through the wireless communication unit 102, and the elements that require control of the driving unit 108 (actuator 482 and/or motor 484) )) can be entered.
- the driving unit driver 104 may determine an element to be controlled by the received control command among the actuator 482 and the motor 484 , and transmit the control command to the determined element for controlling the determined element.
- the control command received by the robot 100 from the robot control system 120 is input to the drive unit 108 (actuator 482 and/or motor 484 ), and the drive unit 108 (actuator 482 and/or motor 484 ). low-level control commands for controlling the motor 484).
- the robot control system 120 does not generate and transmit a high-level command abstracted as a control command for controlling the driving unit 108 to the robot 100, but rather the motor ( 482 ) and/or actuators 484 may be generated and sent to the robot 100 to allow direct (low-level) control of the actuators 484 .
- feedback control of the robot 100 of the robot control system 120 may be performed.
- the raw sensing data (or raw data) received by the robot communication unit 310 may be preprocessed first by the preprocessor 410 .
- the preprocessed raw sensing data may be processed by the robot state and environment recognition processing unit 420 .
- the robot state and environment recognition processing unit 420 is based on the raw sensing data preprocessed by the preprocessing unit 410, the robot 100 is driven and the state information indicating the (real-time or near real-time) state of the robot 100. It is possible to acquire (generate) at least one piece of environment information of the environment to be used.
- the robot control unit 430 may generate a (low level) control command for controlling the driving unit 108 based on the information obtained by the robot state and environment recognition processing unit 420 .
- the robot control unit 430 may calculate a command for specifically controlling the actuator 482 and the motor 484 of the driving unit 108 .
- the robot controller 430 may generate a command for controlling at least one of the speed, position, and torque of the actuator 482 or a command for controlling at least one of the speed and torque of the motor 484 .
- Actuator 482 may be comprised of at least one motor, slider, or cylinder.
- the robot control unit 430 may further use the reference information in generating a control command for the driving unit 108 .
- the robot control unit 430 may A control command for the driving unit 108 may be generated with reference to a motion plan from the driving planner 450 that manages the related movement plan.
- the robot control unit 430 based on the state information of the robot 100 obtained (generated) from the raw sensing data, and the environment information of the environment in which the robot 100 travels, the robot 100 determines the movement plan. It can generate control commands for the drive unit 108 to follow and avoid obstacles in the environment.
- the actuator 482 and the motor 484 can be appropriately controlled so that the robot 100 can avoid obstacles while traveling according to the movement plan.
- the robot controller 430 may further consider information on dynamics of the robot 100 in generating a control command.
- the dynamics information may be an example of the aforementioned reference information.
- the robot control unit 430 is delayed (eg, a delay in wireless communication between the robot control system 120 and the robot 100) in order to ensure real-time control of the robot 100 in generating the control command. It is possible to correct the control command in consideration of
- the processor 320 may further include components not shown for providing a service through autonomous driving of the robot 100 .
- the processor 320 may include a map generation module, a localization processing module, a route planning processing module, and a service operation module.
- the map generation module may be a component for generating an indoor map of a target facility using sensing data generated by a mapping robot (not shown) autonomously driving inside a space for a target facility (eg, inside a space).
- the localization processing module may determine the position of the robot 100 inside the target facility by using the sensing data from the robot 100 and the indoor map of the target facility generated through the map generation module.
- the localization processing module may be included in the robot state and environment recognition processing unit 420 described above.
- the path planning processing module may generate a control signal for controlling the indoor autonomous driving of the robot 100 by using the sensing data received from the above-described robot and the generated indoor map.
- the path planning processing module may be included in the above-described robot control unit 430 or travel planning unit 440 .
- the path planning processing module may generate a path (ie, path data) of the robot 100 .
- the generated path (path data) may be set for the robot 100 for the robot 100 to travel along the corresponding path.
- the path that the robot 100 is set to travel may be included in a movement plan used by the robot controller 430 to generate a command for the robot 100 .
- the service operation module of the processor 320 may include a function for controlling the service provided by the robot 100 in the space.
- the robot control system 120 or a service provider operating the space provides an IDE (Integrated Development Environment) for a service (eg, cloud service) provided by the robot control system 120 to a user or a manufacturer of the robot 100 . ) can be provided.
- the user or the manufacturer of the robot 100 may create software for controlling the service provided in the space by the robot 100 through the IDE and register it in the robot control system 120 .
- the service operation module may control the service provided by the robot 100 using software registered in association with the robot 100 .
- the robot control system 120 controls the indoor autonomous driving of the robot 100 .
- commands related to the robot 100 to provide a series of services for delivering goods to the user and outputting user response voices when arriving at the target location may be transmitted to the robot 100 .
- the robot control unit 430 may obtain reference information referenced in generating a control command for the driving unit 108 (ie, a control command for processing a service-related task) through the service operation module.
- FIG. 4 The description of the technical features described above with reference to FIGS. 1 to 3 can be applied to FIG. 4 as it is, and thus a redundant description will be omitted.
- FIG. 5 is a flowchart illustrating a method of controlling a robot, according to an embodiment.
- the robot control system 120 may receive raw data from the robot 100 .
- the raw data may include raw sensing data acquired by the sensor unit 106 of the robot 100 .
- the raw sensing data is data collected or acquired from each of the sensors and the camera included in the sensor unit 106, and may be data that has not been processed through pre-processing or the like.
- the raw sensing data may be data obtained by performing minimal pre-processing or correction processing on the sensing data first collected from the sensor unit 106 on the robot 100 side.
- the raw sensing data may be the first preprocessing of the sensing data first collected from the sensor unit 106 .
- this primary pre-processing is a minimal noise removal from the sensed data or cropping of an image (corresponding to the sensed data), or just processing the sensed data into a format for transmission through the wireless communication unit 102 .
- the robot control system 120 may generate a control command for controlling the driving unit 108 of the robot 100 based on the raw data received from the robot 100 .
- the robot control system 120 may transmit the generated control command to the robot 100 .
- the control command transmitted to the robot 100 generated by the robot control system 120 controls the driving unit 108 of the robot 100 (based on raw data including the sensed data from the robot 100) feedback control. It may be for That is, the control command may include a command for feedback control of at least one of an actuator and a motor included in the driving unit 108 .
- the control command may be input to the driving unit 108 and include a low-level control command for controlling the driving unit 108 .
- the robot control system 120 does not generate a high-level command abstracted as a control command for controlling the drive unit 108, but directly (low-level) the motor and/or actuator of the drive unit. You can create low-level control commands that allow you to do this.
- control command may include a command for controlling at least one of a speed, a position, and a torque of an actuator included in the driving unit 108 .
- control command may include a command for controlling at least one of a speed and a torque of a motor included in the driving unit 108 .
- the reception of the raw data from the robot 100 in the above-described step 510 and the transmission of the control command to the robot 100 in the step 530 are performed with the wireless communication unit 102 of the robot 100 and the robot control. It may be performed according to communication between the wireless communication units 310 of the system 120 .
- a controller that generates a low-level control command for controlling the robot 100 is used as a remote location of the robot 100 , the robot control system 120 .
- a control loop consisting of the sensor unit 106 - the controller - the driving unit 108 may be implemented outside the robot 100 .
- localization of the robot 100, sensing data fusion, image processing and (object) recognition, and other sensing data processing are performed by the robot control system (120) can be performed on the side.
- the planning process - establishment of a movement plan based on the map, information of the robot 100, work information (related to the service), etc. - and the control process - generation of a control command based on the processed sensing data and movement plan - are both robot control This may be performed on the system 120 side.
- speed control, position control, torque control, etc. may be variously performed according to the type of the driving unit 108 through a low-level control command.
- the robot ( 100) when the control command is not received by the robot 100 within the first predetermined time period, or when the control command is not transmitted to the robot 100 for the second predetermined time period or longer, the robot ( 100) can be switched to a standby mode.
- the first time and the second time may be the same, may be set differently, and may be set by the robot control system 120 or the manager of the robot 100, respectively.
- the robot 100 when an object is detected within a predetermined distance from the robot 100 , the robot 100 may be switched to a standby mode. At this time, the robot 100 may ignore the control command from the robot control system 120 (ie, regardless of the control command) and switch to the standby mode.
- the robot 100 and the minimum safety around the robot 100 may be secured. That is, in order to promote safety around the robot 100 and the robot 100, the robot 100 stops operation (or switches to a standby mode) when a control command is not received periodically (or over a certain period of time). )can do.
- the robot 100 may stop operating.
- the robot 100 controls The operation can be stopped preemptively regardless of the command.
- the control unit 104 of the robot 100 may include a minimum configuration (filter, etc.) for detecting an object existing within a predetermined distance.
- the robot 100 and the minimum safety around the robot 100 can be guaranteed.
- FIG. 5 The description of the technical features described above with reference to FIGS. 1 to 4 can be applied to FIG. 5 as it is, and thus a redundant description will be omitted.
- FIG. 6 is a flowchart illustrating a method of generating a control command for controlling a driving unit of a robot in a robot control system, according to an example.
- the robot control system 120 may pre-process the raw sensing data received from the robot 100 .
- the preprocessor 410 described above with reference to FIG. 4 may preprocess the raw sensing data.
- the raw sensing data may include an image acquired by a camera of the sensor unit 106 or a plurality of sensing data acquired by a plurality of sensors (eg, distance sensors) of the sensor unit.
- the pre-processing for the raw sensing data may include performing a refine process to enable recognition of an object in an image.
- the pre-processing of the image may include improving the image so that an object such as an obstacle, a person, a robot, or the like can be recognized from the image.
- the pre-processing for the raw sensing data is the state of the robot 100 (eg, position, posture, operation state, etc.) or the state of the environment in which the robot 100 travels (eg, the position of the surrounding object, the surrounding object distribution situation). and the like) of fusion (ie, combining, processing, and synthesizing a plurality of sensing data) of a plurality of sensed data to determine.
- the preprocessor 410 may preprocess the raw sensed data by filtering the received raw sensed data to remove noise or outliers.
- the preprocessor 410 is based on the time-related metadata (eg, timestamp, round-trip time, etc.) of the sensing data included in the sensing data, (robot 100) Time-based sensing data can be corrected (using the past state information and sensed data or the history of state information).
- the pre-processing unit 410 may perform a process to compensate for the latency caused by wireless communication between the wireless communication unit 310 and the wireless communication unit 102 for the sensed data.
- the robot control system 120 may acquire at least one of the state information of the robot 100 and the environment information of the environment in which the robot 100 travels based on the raw sensing data.
- the robot state and environment recognition processing unit 420 described above with reference to FIG. 4 may perform step 620 .
- the raw sensed data used to obtain the state information and/or the environment information may represent the raw sensed data preprocessed in step 610 .
- the robot state and environment recognition processing unit 420 may acquire real-time (or near real-time) state information and/or environment information of the robot 100 based on the sensed data from the robot 100 .
- the robot state and environment recognition processing unit 420 may play a role of creating local information around the robot 100 using sensor fusion (ie, fusion of sensing data collected from a plurality of sensors).
- the state information of the robot 100 may include, for example, at least one of a position, an attitude, and an operation state (speed, torque, etc.) of the robot 100 (or the driving unit 108 ).
- the environment information may include, for example, at least one of a location of an object around the robot 100 and a distribution situation of a surrounding object in relation to an environment in which the robot 100 is driven.
- the robot state and environment recognition processing unit 420 generates a local map around the robot 100 based on the sensed data from the robot 100 and/or (from a camera or distance sensor). ) based on the sensing data, it is possible to recognize an object around the robot 100 .
- the robot state and environment recognition processing unit 420 may further use a path or a motion plan on which the robot 100 travels as reference data.
- the robot state and environment recognition processing unit 420 may acquire state information and/or environment information based on at least one of the generated local map and/or the recognition result of the object.
- the robot control system 120 may generate a control command for the driving unit 108 based on the information obtained in step 620 .
- the robot controller 430 described above with reference to FIG. 4 may perform step 630 .
- the robot control unit 430 may generate a low-level control command for appropriately controlling the driving unit 108 of the robot 100 based on the state information and the environment information of the robot 100 .
- the robot control unit 430 is configured to avoid obstacles identified in the environment while the robot 100 follows the movement plan, based on a motion plan associated with the robot 100, state information of the robot 100, and environment information.
- a control command for the driving unit 108 may be generated.
- the movement plan may include information on a path through which the robot 100 should travel.
- the robot control unit 430 may obtain such a movement plan from the travel planning unit 440 .
- the travel planner 440 is a global travel planner, and serves to create a global route plan for the robot 100 , and may create a route by utilizing the node map constructed for the space. That is, when generating the control command, the robot controller 430 may refer to a path (movement) plan including a path for the robot 100 to travel.
- the state information may include a position of the robot 100 .
- the position of the robot 100 may correspond to a current position (at the time the sensing data is collected).
- the environment information may include information about objects around the robot 100 .
- the information about the object may include position information of a person, a robot, or an obstacle in the vicinity of the robot 100 .
- the robot control unit 430 controls the robot 100 as a control command so that the robot 100 moves along the path (represented by the movement plan) and avoids the surrounding obstacles (based on the environment information and status information).
- a command for feedback control of at least one of the motor and the actuator may be generated.
- the robot control unit 430 can move the robot 100 from the current position to the next waypoint (waypoint) from the global route plan, and the obstacles around the robot 100 detected from the sensing data. You can control the robot to avoid it.
- the robot control unit 430 may establish an optimal speed plan to be taken by the robot 100 , and transmit a control command for this to the driving unit 108 of the robot 100 .
- the generated control command may be directly input to the driving unit 108 of the robot 100 as a low-level control command to control the driving unit 108 .
- the driving unit 108 may be input after correction processing (eg, minimal in the driving unit driver) on the robot 100 side.
- the correction processing may be processing into a format that allows the driving unit 108 to recognize the control command received from the robot control system 120 .
- the robot control system 120 controls the driving unit 108 of the robot 100 through a low-level control command. This shows how the robot 100 autonomously travels.
- the sensor unit 106 of the robot 100 can collect sensing data for understanding the state of the robot 100 and recognizing the environment (1), and control the robot through wireless communication with the collected raw sensing data. It can be transmitted to the system 120 (2).
- the robot control system 120 may determine the state of the robot 100 based on the raw sensing data (after preprocessing the raw sensing data) and recognize the environment in which the robot 100 runs (3).
- the robot control system 120 may generate a control command for controlling the driving unit 108 with reference to the path plan of the robot 100 based on the state and environment information of the robot 100 (4).
- the robot control system 120 may generate a control command to allow the robot 100 to travel on a planned path and to avoid surrounding obstacles and transmit it to the robot 100 (5).
- the robot 100 may appropriately control the motor and/or actuator of the driving unit 108 according to the received control command (6). Accordingly, the robot 100 may autonomously travel while avoiding obstacles along a path to provide a service.
- FIG. 8 is a flowchart illustrating a method of controlling a robot by generating a robot control model, according to an embodiment.
- step 810 the robot control system 120 (processor 320 ) controls the robot 100 based on information predefined for the robot 100 when the control of the robot 100 is requested. You can create a robot control model for
- the robot control system 120 may estimate the state of the robot 100 based on the generated robot control model.
- the robot control system 120 may generate a control command for controlling the driving unit 108 of the robot 100 based on the state of the robot 100 estimated by the robot control model.
- the generated control command may include the aforementioned low-level control command.
- the robot control model may be configured to estimate the state of the robot 100 and generate a control command for controlling the driving unit of the robot 100 based on the estimated state of the robot 100 .
- the robot controlled by steps 810 to 830 is a robot different from the robot 100 described above with reference to FIGS. 1 to 7 , or in addition to the robot 100 described above with reference to FIGS. 1 to 7 . It may further be a controlled robot.
- the robot control system 120 can not only control the robot 100 in the above-described feedback control method, but also build a robot control model as described above for the robot 100 and/or other robots to create a robot control model. It is also possible to control the robot 100 and / or other robots through.
- the robot control system 120 may receive a request for control of a new robot from (control system or external service interface), and accordingly, obtain information about the corresponding robot from the robot control model information DB to control the robot You can construct (or dynamically create) a robot control model for
- the robot control model information DB may include predefined information about the robot for which control is requested.
- the predefined information about the robot (stored and managed in the robot control model information DB) used to create the robot control model includes specification information of the sensor unit and the driving unit included in the robot, and the physical shape of the robot. information and a dynamics model associated with the robot.
- the robot control system 120 may use predefined information about the robot for which the control is requested as described above, estimate the state of the robot, and generate a robot control model for controlling the robot according to the estimated state. have.
- the robot When the robot is controlled using such a robot control model, it is possible to reduce errors due to latency due to communication between the robot and the robot control system 120 involved in the feedback control described above. That is, the robot may be controlled based on the state estimated by the built robot control model.
- a virtual robot may be instantiated in order to estimate the real-time state of the robot, and the state of the robot to be controlled may be estimated as the instantiated virtual robot is executed. That is, the state of the robot to be controlled may be estimated according to the simulation of the virtual robot.
- the robot control system 120 may further generate a model for an environment in which the robot travels.
- a model for an environment in which the robot travels may be built based on predefined information (eg, data collected in the past, latest environmental information, etc.) about the environment in which the robot runs.
- the robot control system 120 generates and transmits an appropriate control command for controlling the robot in the environment based on the robot control model corresponding to the requested robot and the environment model corresponding to the environment in which the robot travels.
- Control of the robot using such a robot control model may be performed when the task performed by the robot is repetitive or predictable, such as simple.
- the robot control using the robot control model can be utilized to control the robot operating in a stable and deterministic situation.
- FIG. 8 The description of the technical features described above with reference to FIGS. 1 to 7 can be applied to FIG. 8 as it is, and thus a redundant description will be omitted.
- FIG. 9 is a flowchart illustrating a method of controlling a robot by generating a robot brain, according to an example.
- the robot 100 described above with reference to FIGS. 1 to 7 may be controlled by the first robot brain of the robot control system 120 .
- the above-described steps 510 to 530 may be performed by the first robot brain.
- the robot control system 120 (processor 320) generates a robot brain for controlling the robot when the addition of the robot is requested (that is, when the control of the additional robot is requested).
- the robot control system 120 is a first robot brain logically separated from the first robot brain for controlling the other robot (for controlling the robot 100) when the control of the other robot is requested. 2 You can configure (create) a robot brain. In the control of another robot, reception of raw data from another robot, generation of a control command for controlling a driving unit of another robot, and transmission of a control command for controlling a driving unit of another robot may be performed through the second robot brain.
- the robot control system 120 may dynamically generate a robot brain for controlling the robot for which control is requested.
- the robot control system 120 may control each robot individually, using the generated robot brain, and control a plurality of robots (multi-robot control such as coordination control and cooperative control). have.
- the robot brain may be a control unit defined in the robot control system 120 to control an individual robot, for example, the pre-processing unit 410, the robot state and environment recognition processing unit 420 and the robot described above with reference to FIG. 4 .
- the controller 430 may be included.
- FIG. 10 shows a multi-robot control method for controlling a plurality of robots in controlling a robot through a robot brain, according to an example.
- robots 100 - 1 to 100 - 4 controlled by the robot control system 120 are shown.
- the robot control system 120 may generate a robot brain in 1:1 correspondence to each robot, and may individually control the robot through each of the robot brains 1020 .
- Each of the robot brains 1020 may correspond to a layer controlling one robot.
- One robot brain may be logically connected to a corresponding robot brain, and may correspond to a brain of a brainless robot.
- the robot brains 1020 may be managed by the multi-robot management unit 1030 .
- the multi-robot management unit 1030 is a robot for performing a requested service or a control request according to a request (eg, a service provision request or a robot control request) from the control system 1040 (eg, an external service interface). You can create a robot brain to control the robot.
- the multi-robot management unit 1030 may remove a robot brain corresponding to a robot whose control is unnecessary among the robot brains 1020 .
- the robot brains 1020 for controlling the plurality of robots 100-1 to 100-4 may be dynamically created and removed according to the need for control of each robot.
- the multi-robot management unit 1030 may transmit an abstract command (global command) according to a request from the control system 1040 to the robot brain corresponding to the requested robot among the robot brains 1020, and the robot brain Based on the sensing data received from the corresponding robot by analyzing the command, it is possible to generate a (low-order) control command for controlling the corresponding robot.
- an abstract command global command
- One robot brain may be 1:1 connected to a robot corresponding to the gateway 1050 as shown.
- the gateway 1050 may include the above-described communication unit 310 or may be a part of the communication unit 310 .
- each of the robot brains 1020 may have a communication unit 310 or a communication function, and may be directly (or directly) connected to a corresponding robot.
- the gateway 1050 may be involved only in the initial connection between the robot brain and the corresponding robot. That is, the gateway 1050 may manage the initial connection between the robot brain and the corresponding robot.
- the first robot brain (which is one of the robot brains 1020) for controlling the above-described robot 100 is first connected through the gateway 1050 of the robot 100 and the robot control system 120, After the initial connection, it is possible to communicate with the robot 100 through the communication unit (communication function) of the first robot brain.
- the second robot brain (which is one of the robot brains 1020) for controlling the other robot described above is first connected to another robot through the gateway 1050, and after the initial connection, the communication unit of the second robot brain (Communication function) can communicate with other robots.
- the robot control system 120 may be configured to have a communication unit corresponding to each of the robot brains 1020 , and the robot brains 1020 may be configured to share one communication unit.
- the robot control model 1010 described above with reference to FIG. 8 is further illustrated.
- the robot control model 1010 may be built for the robot 100-1, generate a control command for controlling the driving unit of the robot 100-1, and transmit it to the robot 100-1.
- the control command may be transmitted to the robot 100 - 1 through the gateway 1050 .
- the robot control model 1010 may be built by a robot control model information DB (not shown).
- a plurality of robot control models 1010 may also be built, and a plurality of robot control models 1010 may be multiplied (in a similar manner to the robot brains 1020). It may be managed by the robot manager 1030 .
- the robot brains 1020 control the robots 100-1 to 100-4, so that at least two or more of the robots 100-1 to 100-4 may be interlocked with each other (cooperative control).
- two or more robots may be controlled to operate cooperatively with each other, and may be controlled to perform tasks related to each other in providing a service.
- the plurality of brainless robots 100 - 1 to 100 - 4 may be controlled individually or in conjunction with each other by the robot control system 120 .
- FIGS. 9 and 10 The description of the technical features described above with reference to FIGS. 1 to 8 can be applied to FIGS. 9 and 10 as it is, and thus overlapping descriptions will be omitted.
- both the analysis and processing of sensing data for controlling the robot 100 and the generation of control commands may be performed in the robot control system 120 serving as a server.
- the control unit 104 of the robot 100 may not include a complex configuration such as a GPU, and such a configuration as the GPU may be mounted only on the processor 320 of the robot control system 120 .
- the robot control system 120 side so that the optimal speed plan for the robot 100 is established, the robot 100 and the robot control system 120 so that the low-level control according to the plan is performed by the robot ) could be implemented.
- the system or apparatus described above may be implemented as a hardware component, a software component, or a combination of a hardware component and a software component.
- devices and components described in the embodiments may include, for example, a processor, a controller, an arithmetic logic unit (ALU), a digital signal processor, a microcomputer, a field programmable gate array (FPGA). , a programmable logic unit (PLU), microprocessor, or any other device capable of executing and responding to instructions, may be implemented using one or more general purpose or special purpose computers.
- the processing device may execute an operating system (OS) and one or more software applications running on the operating system.
- the processing device may also access, store, manipulate, process, and generate data in response to execution of the software.
- OS operating system
- the processing device may also access, store, manipulate, process, and generate data in response to execution of the software.
- the processing device includes a plurality of processing elements and/or a plurality of types of processing elements. It can be seen that may include For example, the processing device may include a plurality of processors or one processor and one controller. Other processing configurations are also possible, such as parallel processors.
- the software may comprise a computer program, code, instructions, or a combination of one or more thereof, which configures a processing device to operate as desired or is independently or collectively processed You can command the device.
- the software and/or data may be any kind of machine, component, physical device, virtual equipment, computer storage medium or device, to be interpreted by or to provide instructions or data to the processing device. may be permanently or temporarily embody in
- the software may be distributed over networked computer systems and stored or executed in a distributed manner.
- Software and data may be stored in one or more computer-readable recording media.
- the method according to the embodiment may be implemented in the form of program instructions that can be executed through various computer means and recorded in a computer-readable medium.
- the computer-readable medium may include program instructions, data files, data structures, etc. alone or in combination.
- the program instructions recorded on the medium may be specially designed and configured for the embodiment, or may be known and available to those skilled in the art of computer software.
- Examples of the computer-readable recording medium include magnetic media such as hard disks, floppy disks and magnetic tapes, optical media such as CD-ROMs and DVDs, and magnetic media such as floppy disks.
- - includes magneto-optical media, and hardware devices specially configured to store and execute program instructions, such as ROM, RAM, flash memory, and the like.
- Examples of program instructions include not only machine language codes such as those generated by a compiler, but also high-level language codes that can be executed by a computer using an interpreter or the like.
Landscapes
- Engineering & Computer Science (AREA)
- Robotics (AREA)
- Mechanical Engineering (AREA)
- Automation & Control Theory (AREA)
- Aviation & Aerospace Engineering (AREA)
- Radar, Positioning & Navigation (AREA)
- Remote Sensing (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Human Computer Interaction (AREA)
- Manipulator (AREA)
Abstract
Provided is a robot control method in which a robot control system: generates a control command for controlling a driving unit of the robot, on the basis of raw data received from the robot; and transmits the generated control command to the robot to control the driving unit of the robot. The control command generated by the robot control system comprises a low-level control command for controlling the driving unit of the robot.
Description
아래의 설명은 로봇을 제어하는 방법 및 시스템에 관한 것으로, 로봇으로부터 수신된 미가공 데이터에 기반하여 로봇의 구동부를 제어하기 위한 제어 명령을 생성하여 로봇을 제어하는 로봇을 제어하는 방법 및 시스템에 관한 것이다.The following description relates to a method and system for controlling a robot, and to a method and system for controlling a robot by generating a control command for controlling a driving unit of the robot based on raw data received from the robot. .
제조, 물류, 운송, 청소 및 길안내 등과 같은 서비스를 제공하는 로봇에 대한 관심이 높아지고 있다. 이러한 서비스를 제공하기 위해 구현되는 로봇은 예컨대, 자율 주행을 통해 최적의 경로로 목적지까지 이동하여 목적지에서 서비스를 제공할 수 있다. There is growing interest in robots that provide services such as manufacturing, logistics, transportation, cleaning and navigation. A robot implemented to provide such a service may move to a destination on an optimal route through autonomous driving, for example, and provide a service at the destination.
로봇이 이러한 서비스를 제공할 수 있도록 하기 위해서는 로봇의 구동부를 적절하게 제어할 필요가 있다. 로봇의 구동부는 로봇의 상태나 주변 환경에 기반하여 제어될 수 있다. 로봇의 구동부의 제어를 위한 연산이 로봇 측에서 수행되도록 로봇을 구성하는 것은 로봇의 구현을 복잡하게 만들 뿐만아니라, 로봇의 유지 보수 비용을 높이고, 로봇의 확장성을 떨어지게 만든다. In order for the robot to provide these services, it is necessary to properly control the robot's driving unit. The driving unit of the robot may be controlled based on the state of the robot or the surrounding environment. Configuring the robot so that the operation for controlling the robot's driving unit is performed on the robot side not only complicates the implementation of the robot, but also increases the maintenance cost of the robot and reduces the scalability of the robot.
따라서, 로봇의 구현 비용을 낮추고, 로봇의 유지 보수 및 확장을 용이하게 하기 위해, 로봇의 구동부를 제어하기 위해 요구되는 연산과, 구동부의 저수준(low-level)의 제어를 수행하기 위한 명령의 생성을 서버 측에서 수행할 수 있도록 로봇과 로봇 제어 시스템을 구축할 것이 요구된다. Accordingly, in order to lower the implementation cost of the robot and facilitate maintenance and expansion of the robot, calculations required to control the driving unit of the robot and the generation of commands for performing low-level control of the driving unit It is required to build a robot and a robot control system so that it can be performed on the server side.
한국공개특허 제10-2005-0024840호는 자율이동로봇을 위한 경로계획방법에 관한 기술로, 가정이나 사무실에서 자율적으로 이동하는 이동로봇이 장애물을 회피하면서 목표점까지 안전하고 빠르게 이동할 수 있는 최적경로를 계획하는 방법에 대해 개시하고 있다. Korean Patent Laid-Open No. 10-2005-0024840 is a technology related to a path planning method for an autonomous mobile robot, and it is a technology for a mobile robot that moves autonomously at home or in an office to avoid obstacles and to find an optimal path that can move safely and quickly to a target point. How to plan is disclosed.
상기에서 설명된 정보는 단지 이해를 돕기 위한 것이며, 종래 기술의 일부를 형성하지 않는 내용을 포함할 수 있으며, 종래 기술이 통상의 기술자에게 제시할 수 있는 것을 포함하지 않을 수 있다.The information described above is for understanding only, and may include content that does not form a part of the prior art, and may not include what the prior art can present to a person skilled in the art.
로봇 제어 시스템이, 로봇으로부터 수신된 미가공 데이터에 기반하여, 로봇의 구동부를 제어하기 위한 제어 명령을 생성하고, 생성된 제어 명령을 로봇으로 송신하여 로봇의 구동부를 제어하는 로봇 제어 방법을 제공한다. Provided is a robot control method in which a robot control system generates a control command for controlling a driving unit of the robot based on raw data received from the robot, and transmits the generated control command to the robot to control the driving unit of the robot.
로봇 제어 시스템이 로봇과의 무선 통신을 통해 수신한 로우 센싱 데이터에 기반하여 로봇의 구동부를 제어하기 위한 저수준(low-level) 제어 명령을 생성하고, 로봇 측에서의 센싱 데이터에 기반한 인식 및 명령의 해석 등의 작업이 처리될 필요 없이, 상기 저수준 제어 명령을 통해 로봇의 구동부가 포함하는 액추에이터 및 모터를 직접 제어할 수 있는 제어 방법을 제공한다.The robot control system generates a low-level control command to control the driving unit of the robot based on the raw sensing data received through wireless communication with the robot, and recognition and command interpretation based on the sensing data from the robot side. To provide a control method capable of directly controlling an actuator and a motor included in a driving unit of a robot through the low-level control command without having to process the operation of the robot.
일 측면에 있어서, 로봇 제어 시스템에 의해 수행되는, 로봇을 제어하는 방법에 있어서, 상기 로봇으로부터 미가공 데이터를 수신하는 단계, 상기 수신된 미가공 데이터에 기반하여, 상기 로봇의 구동부를 제어하기 위한 제어 명령을 생성하는 단계 및 상기 생성된 제어 명령을 상기 로봇으로 송신하는 단계를 포함하고, 상기 제어 명령은 상기 구동부로 입력되어, 상기 구동부를 제어하기 위한 저수준(low-level) 제어 명령을 포함하는, 로봇을 제어하는 방법이 제공된다. In one aspect, in a method of controlling a robot, performed by a robot control system, receiving raw data from the robot, based on the received raw data, a control command for controlling a driving unit of the robot and transmitting the generated control command to the robot, wherein the control command is input to the driving unit and includes a low-level control command for controlling the driving unit. A method of controlling is provided.
상기 구동부는 액추에이터 및 모터 중 적어도 하나를 포함하고, 상기 제어 명령은 상기 액추에이터의 속도, 위치 및 토크 중 적어도 하나를 제어하기 위한 명령을 포함하거나, 상기 모터의 속도 및 토크 중 적어도 하나를 제어하기 위한 명령을 포함할 수 있다. The driving unit includes at least one of an actuator and a motor, and the control command includes a command for controlling at least one of speed, position, and torque of the actuator, or for controlling at least one of the speed and torque of the motor It can contain commands.
상기 제어 명령은 상기 액추에이터 또는 상기 모터를 피드백 제어하기 위한 명령을 포함할 수 있다. The control command may include a command for feedback control of the actuator or the motor.
상기 미가공 데이터는 상기 로봇의 센서부에 의해 획득된 로우(raw) 센싱 데이터를 포함할 수 있다. The raw data may include raw sensing data obtained by the sensor unit of the robot.
상기 제어 명령을 생성하는 단계는, 상기 로우 센싱 데이터를 전처리하는 단계를 포함하고, 상기 로우 센싱 데이터는 상기 센서부의 카메라에 의해 획득된 이미지 또는 상기 센서부의 복수의 센서들에 의해 획득된 다수의 센싱 데이터를 포함하고, 상기 전처리는, 상기 이미지 내에서 오브젝트의 인식이 가능하도록 리파인(refine) 처리를 수행하는 것을 포함하거나, 상기 로봇의 상태 또는 상기 로봇이 주행하는 환경의 상태를 결정하기 위해 상기 다수의 센싱 데이터를 퓨전(fusion)하는 것을 포함할 수 있다. The generating of the control command includes preprocessing the raw sensing data, wherein the raw sensing data is an image acquired by a camera of the sensor unit or a plurality of sensing units acquired by a plurality of sensors of the sensor unit. data, wherein the pre-processing includes performing refine processing to enable recognition of an object in the image, or the plurality of It may include fusion (fusion) of the sensed data of.
상기 제어 명령을 생성하는 단계는, 상기 로우 센싱 데이터에 기반하여, 상기 로봇의 상태 정보 및 상기 로봇이 주행하는 환경의 환경 정보 중 적어도 하나의 정보를 획득하는 단계 및 상기 획득된 정보에 기반하여 상기 구동부를 제어하기 위한 상기 제어 명령을 생성하는 단계를 포함할 수 있다. The generating of the control command may include, based on the raw sensing data, obtaining at least one information of the state information of the robot and environment information of an environment in which the robot is driven, and based on the obtained information, the It may include generating the control command for controlling the driving unit.
상기 획득하는 단계는, i) 상기 로우 센싱 데이터에 기반하여, 상기 로봇의 주변의 로컬 맵을 생성하는 단계 및 ii) 상기 로우 센싱 데이터에 기반하여, 상기 로봇의 주변의 오브젝트를 인식하는 단계 중 적어도 하나를 포함하고, 상기 로컬 맵 및 상기 오브젝트의 인식 결과 중 적어도 하나에 기반하여, 상기 적어도 하나의 정보를 획득할 수 있다. The acquiring may include at least one of i) generating a local map around the robot based on the raw sensing data, and ii) recognizing an object around the robot based on the raw sensing data. one, and the at least one piece of information may be acquired based on at least one of the local map and the recognition result of the object.
상기 제어 명령은 상기 로봇의 자율 주행을 위해 상기 로봇의 이동을 제어하기 위한 제어 명령이고, 상기 제어 명령을 생성하는 단계는, 상기 로봇과 연관된 이동 계획(motion plan), 상기 상태 정보 및 상기 환경 정보에 기반하여, 상기 로봇이 상기 이동 계획을 따르고 상기 환경에서의 장애물을 회피하도록 하는 상기 구동부를 위한 제어 명령을 생성할 수 있다. The control command is a control command for controlling movement of the robot for autonomous driving of the robot, and generating the control command includes a motion plan associated with the robot, the state information and the environment information. based on , it is possible to generate a control command for the driving unit to cause the robot to follow the movement plan and avoid obstacles in the environment.
상기 이동 계획은 상기 로봇이 주행해야 하는 경로에 관한 정보를 포함하고, 상기 상태 정보는 상기 로봇의 위치를 포함하고, 상기 환경 정보는 상기 로봇의 주변의 오브젝트에 관한 정보를 포함하고, 상기 제어 명령은, 상기 로봇이 상기 경로를 따라 이동하고 상기 장애물을 회피하도록, 상기 구동부가 포함하는 모터 및 액추에이터 중 적어도 하나를 피드백 제어하기 위한 명령을 포함할 수 있다. The movement plan includes information on a path through which the robot should travel, the status information includes a position of the robot, the environment information includes information about objects around the robot, and the control command may include a command for feedback-controlling at least one of a motor and an actuator included in the driving unit so that the robot moves along the path and avoids the obstacle.
상기 로우(raw) 센싱 데이터는 상기 센서부로부터 최초로 수집된 센싱 데이터가 상기 로봇 측에서 일차적으로 전처리된 것이고, 상기 제어 명령은 상기 로봇 측에서의 보정 처리 후 상기 구동부로 입력될 수 있다. The raw sensing data is that the sensing data first collected from the sensor unit is pre-processed by the robot side, and the control command may be input to the driving unit after correction processing at the robot side.
상기 로봇의 무선 통신부와 상기 로봇 제어 시스템의 무선 통신부 간의 통신에 따라, 상기 로봇으로부터 상기 미가공 데이터가 수신되고, 상기 로봇으로 상기 제어 명령이 송신될 수 있다. According to communication between the wireless communication unit of the robot and the wireless communication unit of the robot control system, the raw data may be received from the robot, and the control command may be transmitted to the robot.
상기 로봇은, 수신된 제어 명령을 해석하는 프로세스를 수행하지 않고, 상기 로봇 제어 시스템으로부터의 수신되는 상기 저수준 제어 명령을 실행하여 상기 구동부를 제어하는 브레인리스(brainless) 로봇일 수 있다. The robot may be a brainless robot that controls the driving unit by executing the low-level control command received from the robot control system without performing a process of interpreting the received control command.
상기 로봇을 제어하는 방법은, 다른 로봇의 제어가 요청된 때, 상기 다른 로봇에 대해 기 정의된 정보에 기반하여 상기 다른 로봇을 제어하기 위한 로봇 제어 모델을 생성하는 단계, 상기 로봇 제어 모델에 기반하여 상기 다른 로봇의 상태를 추정하는 단계 및 상기 추정된 다른 로봇의 상태에 기반하여, 상기 다른 로봇의 구동부를 제어하기 위한 제어 명령을 생성하는 단계를 더 포함할 수 있다. The method for controlling the robot includes generating a robot control model for controlling the other robot based on predefined information about the other robot when control of the other robot is requested, based on the robot control model The method may further include estimating the state of the other robot and generating a control command for controlling the driving unit of the other robot based on the estimated state of the other robot.
상기 로봇 제어 모델을 생성하기 위해 사용되는 상기 다른 로봇에 대해 기 정의된 정보는, 상기 다른 로봇이 포함하는 센서부 및 구동부의 사양 정보, 상기 다른 로봇의 물리적인 형태 정보 및 상기 다른 로봇과 연관된 동역학 모델(dynamics model)을 포함할 수 있다. The predefined information about the other robot used to generate the robot control model includes specification information of a sensor unit and a driving unit included in the other robot, physical shape information of the other robot, and dynamics associated with the other robot. It may include a dynamics model.
상기 로봇은 상기 로봇 제어 시스템의 제1 로봇 브레인에 의해 제어되고, 상기 제1 로봇 브레인에 의해, 상기 수신하는 단계, 상기 생성하는 단계, 및 상기 송신하는 단계가 수행되고, 상기 로봇을 제어하는 방법은, 다른 로봇의 제어가 요청된 때, 상기 다른 로봇을 제어하기 위한 상기 제1 로봇 브레인과 논리적으로 구분되는 제2 로봇 브레인을 구성하는 단계를 더 포함하고, 상기 다른 로봇으로부터의 미가공 데이터의 수신, 상기 다른 로봇의 구동부를 제어하기 위한 제어 명령의 생성 및 상기 다른 로봇의 구동부를 제어하기 위한 제어 명령의 송신은 상기 제2 로봇 브레인을 통해 수행될 수 있다. The robot is controlled by a first robot brain of the robot control system, the receiving step, the generating step, and the transmitting step are performed by the first robot brain, the method of controlling the robot Further comprising the step of configuring a second robot brain logically separated from the first robot brain for controlling the other robot when the control of the other robot is requested, and receiving the raw data from the other robot , generation of a control command for controlling the driving unit of the other robot and transmission of a control command for controlling the driving unit of the other robot may be performed through the second robot brain.
상기 제1 로봇 브레인은 상기 로봇과 상기 로봇 제어 시스템의 게이트웨이를 통해 최초로 연결되되, 최초 연결 후에는, 상기 제1 로봇 브레인의 통신부를 통해 상기 로봇과 통신하고, 상기 제2 로봇 브레인은 상기 다른 로봇과 상기 게이트웨이를 통해 최초로 연결되되, 최초 연결 후에는, 상기 제2 로봇 브레인의 통신부를 통해 상기 다른 로봇과 통신할 수 있다. The first robot brain is first connected to the robot through a gateway of the robot control system, and after the initial connection, communicates with the robot through the communication unit of the first robot brain, and the second robot brain is the other robot It is connected to the gateway for the first time, and after the initial connection, it can communicate with the other robot through the communication unit of the second robot brain.
상기 제어 명령이 소정의 제1 시간 내에 상기 로봇에 수신되지 않거나, 상기 제어 명령이 소정의 제2 시간 이상 상기 로봇에 대해 송신되지 않으면, 상기 로봇은 대기 모드로 전환될 수 있다. If the control command is not received by the robot within a first predetermined time period or the control command is not transmitted to the robot for a second predetermined time period or more, the robot may be switched to a standby mode.
상기 로봇으로부터 소정의 거리 이내에서 오브젝트가 검출되면, 상기 제어 명령과 관계 없이, 상기 로봇은 대기 모드로 전환될 수 있다. When an object is detected within a predetermined distance from the robot, the robot may be switched to a standby mode regardless of the control command.
다른 일 측면에 있어서, 로봇을 제어하는 로봇 제어 시스템에 있어서, 무선 통신부 및 컴퓨터에서 판독 가능한 명령을 실행하도록 구현되는 적어도 하나의 프로세서를 포함하고, 상기 적어도 하나의 프로세서는, 상기 무선 통신부와 상기 로봇의 무선 통신부 간의 통신에 따라, 상기 로봇으로부터 미가공 데이터를 수신하고, 상기 수신된 미가공 데이터에 기반하여, 상기 로봇의 구동부를 제어하기 위한 제어 명령을 생성하고, 상기 무선 통신부와 상기 로봇의 무선 통신부 간의 통신에 따라, 상기 생성된 제어 명령을 상기 로봇으로 송신하고, 상기 제어 명령은 상기 구동부로 입력되어, 상기 구동부를 제어하기 위한 저수준(low-level) 제어 명령을 포함하는, 로봇 제어 시스템이 제공된다. In another aspect, in a robot control system for controlling a robot, comprising at least one processor implemented to execute a command readable by a wireless communication unit and a computer, wherein the at least one processor includes the wireless communication unit and the robot According to the communication between the wireless communication unit of the receiving raw data from the robot, based on the received raw data, generates a control command for controlling the driving unit of the robot, between the wireless communication unit and the wireless communication unit of the robot According to communication, the generated control command is transmitted to the robot, and the control command is input to the driving unit, and includes a low-level control command for controlling the driving unit, a robot control system is provided. .
상기 미가공 데이터는 상기 로봇의 센서부에 의해 획득된 로우(raw) 센싱 데이터를 포함하고, 상기 적어도 하나의 프로세서는, 상기 로우 센싱 데이터를 전처리하는 전처리부, 상기 전처리된 로우 센싱 데이터에 기반하여, 상기 로봇의 상태 정보 및 상기 로봇이 주행하는 환경의 환경 정보 중 적어도 하나의 정보를 획득하는 로봇 상태 및 환경 인식 처리부 및 상기 획득된 정보에 기반하여 상기 구동부를 제어하기 위한 상기 제어 명령을 생성하는 로봇 제어부를 포함할 수 있다. The raw data includes raw sensing data obtained by a sensor unit of the robot, and the at least one processor, a preprocessor preprocessing the raw sensing data, based on the preprocessed raw sensing data, A robot generating the control command for controlling the driving unit based on the robot state and environment recognition processing unit obtaining at least one information of the state information of the robot and the environment information of the environment in which the robot is driven, and the obtained information It may include a control unit.
상기 제어 명령은 상기 로봇의 자율 주행을 위해 상기 로봇의 이동을 제어하기 위한 제어 명령이고, 상기 적어도 하나의 프로세서는, 상기 로봇과 연관된 이동 계획을 관리하는 주행 계획부를 포함하고, 상기 로봇 제어부는, 상기 상태 정보 및 상기 환경 정보에 기반하여, 상기 로봇이 상기 이동 계획을 따르고 상기 환경에서의 장애물을 회피하도록 하는 상기 구동부를 위한 제어 명령을 생성할 수 있다. The control command is a control command for controlling the movement of the robot for autonomous driving of the robot, and the at least one processor includes a travel planning unit for managing a movement plan associated with the robot, the robot control unit comprising: Based on the state information and the environment information, it is possible to generate a control command for the driving unit to cause the robot to follow the movement plan and avoid obstacles in the environment.
상기 적어도 하나의 프로세서는, 다른 로봇의 제어가 요청된 때, 상기 다른 로봇에 대해 기 정의된 정보에 기반하여 상기 다른 로봇을 제어하기 위한 로봇 제어 모델을 생성하도록 구성되고, 상기 로봇 제어 모델은 상기 다른 로봇의 상태를 추정하고, 상기 추정된 다른 로봇의 상태에 기반하여, 상기 다른 로봇의 구동부를 제어하기 위한 제어 명령을 생성할 수 있다. The at least one processor is configured to generate a robot control model for controlling the other robot based on predefined information about the other robot when control of the other robot is requested, wherein the robot control model is configured to: It is possible to estimate the state of the other robot, and generate a control command for controlling the driving unit of the other robot based on the estimated state of the other robot.
상기 적어도 하나의 프로세서는, 제1 로봇 브레인을 포함하고, 상기 제1 로봇 브레인이 상기 미가공 데이터를 수신하고, 상기 제어 명령을 생성하고, 상기 제어 명령을 상기 로봇으로 송신하도록 구성되고, 상기 적어도 하나의 프로세서는, 다른 로봇의 제어가 요청된 때, 상기 다른 로봇을 제어하기 위한 상기 제1 로봇 브레인과 논리적으로 구분되는 제2 로봇 브레인을 생성하도록 구성되고, 상기 다른 로봇으로부터의 미가공 데이터의 수신, 상기 다른 로봇의 구동부를 제어하기 위한 제어 명령의 생성 및 상기 다른 로봇의 구동부를 제어하기 위한 제어 명령의 송신은 상기 제2 로봇 브레인을 통해 수행될 수 있다. wherein the at least one processor comprises a first robot brain, wherein the first robot brain is configured to receive the raw data, generate the control command, and send the control command to the robot, wherein the at least one The processor is configured to generate a second robot brain logically separated from the first robot brain for controlling the other robot when the control of the other robot is requested, and receiving raw data from the other robot, The generation of a control command for controlling the driving unit of the other robot and transmission of the control command for controlling the driving unit of the other robot may be performed through the second robot brain.
또 다른 일 측면에 있어서, 로봇 제어 시스템에 의해 제어되는 로봇에 있어서, 무선 통신부, 적어도 하나의 센서를 포함하는 센서부, 모터 및 액추에이터 중 적어도 하나를 포함하는 구동부 및 상기 센서부를 위한 센서 드라이버 및 상기 구동부를 위한 구동부 드라이버를 포함하는 제어부를 포함하고, 상기 제어부는, 상기 무선 통신부를 통해, 상기 센서부에 의해 획득된 로우(raw) 센싱 데이터를 포함하는 미가공 데이터를 상기 로봇 제어 시스템으로 송신하고, 상기 로봇 제어 시스템 측에서 상기 미가공 데이터에 기반하여 생성한 상기 구동부를 제어하기 위한 제어 명령을, 상기 무선 통신부를 통해 수신하고, 상기 수신된 제어 명령을 실행하여 상기 구동부를 제어하고, 상기 수신된 제어 명령은 상기 구동부로 입력되어, 상기 구동부를 제어하기 위한 저수준(low-level) 제어 명령을 포함하는, 로봇이 제공된다.In another aspect, in a robot controlled by a robot control system, a wireless communication unit, a sensor unit including at least one sensor, a driving unit including at least one of a motor and an actuator, and a sensor driver for the sensor unit and the and a control unit including a driving unit driver for the driving unit, wherein the control unit transmits raw data including raw sensing data obtained by the sensor unit to the robot control system through the wireless communication unit, The robot control system receives a control command for controlling the driving unit generated based on the raw data through the wireless communication unit, executes the received control command to control the driving unit, and the received control A command is input to the driving unit, and includes a low-level control command for controlling the driving unit, the robot is provided.
로봇 제어 시스템이 로봇과의 무선 통신을 통해 수신한 로우 센싱 데이터에 기반하여 로봇의 구동부를 제어하기 위한 저수준(low-level) 제어 명령을 생성하고, 저수준 제어 명령을 통해 로봇의 구동부가 포함하는 액추에이터 및 모터를 직접 제어할 수 있음으로써, 로봇은 복잡한 온보드 컴퓨터 시스템을 포함하지 않거나 최소한의 하드웨어를 포함하는 온보드 컴퓨터 시스템을 포함하도록 구성될 수 있다. The robot control system generates a low-level control command to control the driving unit of the robot based on the raw sensing data received through wireless communication with the robot, and the actuator included in the driving unit of the robot through the low-level control command And by being able to directly control the motor, the robot can be configured to include an on-board computer system that does not include a complex on-board computer system or includes minimal hardware.
로봇 제어 시스템 측에서 로봇의 구동부를 제어하기 위한 저수준 제어 명령을 생성하기 위해 요구되는 연산이 수행되는 바, 로봇 측에서 센싱 데이터에 기반한 인식 및 명령의 해석 등의 작업이 처리될 필요 없게 되어, 서비스 로봇의 복잡도를 낮출 수 있고 서비스 로봇의 유지 보수를 효율화할 수 있다.Since the calculation required to generate a low-level control command for controlling the driving unit of the robot is performed on the robot control system side, tasks such as recognition and command interpretation based on the sensing data on the robot side do not need to be processed, so that the service The complexity of the robot can be reduced and the maintenance of the service robot can be streamlined.
로봇 제어 시스템으로부터의 제어 명령에 따라, 단순히 로봇의 구동부가 제어되도록 로봇이 구현될 뿐인 바, 로봇 제어 시스템의 구성에 따라 로봇의 기능 변경 가능성 및 확장성을 높일 수 있다.Since the robot is simply implemented so that the driving unit of the robot is controlled according to a control command from the robot control system, the possibility of changing the function and scalability of the robot can be increased according to the configuration of the robot control system.
도 1은 일 실시예에 따른, 로봇을 제어하는 방법을 나타낸다.1 shows a method of controlling a robot, according to an embodiment.
도 2 는 일 실시예에 따른, 로봇을 나타내는 블록도이다. 2 is a block diagram illustrating a robot, according to an embodiment.
도 3은 일 실시예에 따른, 로봇을 제어하는 로봇 제어 시스템을 나타내는 블록도이다.3 is a block diagram illustrating a robot control system for controlling a robot, according to an embodiment.
도 4는 일 실시예에 따른, 로봇과 로봇 제어 시스템 간의 무선 통신에 기반하여, 로봇 제어 시스템이 저수준(low-level) 제어 명령을 통해 로봇의 구동부를 제어하는 방법을 나타낸다. 4 illustrates a method for the robot control system to control the driving unit of the robot through a low-level control command based on wireless communication between the robot and the robot control system, according to an embodiment.
도 5는 일 실시예에 따른, 로봇을 제어하는 방법을 나타내는 흐름도이다. 5 is a flowchart illustrating a method of controlling a robot, according to an embodiment.
도 6은 일 예에 따른, 로봇 제어 시스템 측에서 로봇의 구동부를 제어하기 위한 제어 명령을 생성하는 방법을 나타내는 흐름도이다.6 is a flowchart illustrating a method of generating a control command for controlling a driving unit of a robot in a robot control system, according to an example.
도 7은 일 예에 따른, 로봇과 로봇 제어 시스템 간의 무선 통신에 기반하여, 로봇 제어 시스템이 저수준 제어 명령을 통해 로봇의 구동부를 제어함으로써, 로봇이 자율 주행하는 방법을 나타낸다.7 illustrates a method in which the robot autonomously travels by controlling the driving unit of the robot through a low-level control command by the robot control system based on wireless communication between the robot and the robot control system, according to an example.
도 8은 일 실시예에 따른, 로봇 제어 모델을 생성하여 로봇을 제어하는 방법을 나타내는 흐름도이다. 8 is a flowchart illustrating a method of controlling a robot by generating a robot control model, according to an embodiment.
도 9는 일 예에 따른, 로봇 브레인을 생성하여 로봇을 제어하는 방법을 나타내는 흐름도이다.9 is a flowchart illustrating a method of controlling a robot by generating a robot brain, according to an example.
도 10은 일 예에 따른, 복수의 로봇들을 제어하는 멀티 로봇 제어 방법을 나타낸다. 10 illustrates a multi-robot control method for controlling a plurality of robots, according to an example.
이하, 실시예를 첨부한 도면을 참조하여 상세히 설명한다.Hereinafter, embodiments will be described in detail with reference to the accompanying drawings.
도 1은 일 실시예에 따른, 로봇을 제어하는 방법을 나타낸다.1 shows a method of controlling a robot, according to an embodiment.
도 1에서 도시된 로봇(100)은 예컨대, 건물이나, 실내, 또는 기타 개방된 영역과 같은 공간 내에서 서비스를 제공하도록 구성되는 서비스 로봇일 수 있다. The robot 100 illustrated in FIG. 1 may be, for example, a service robot configured to provide a service in a space such as a building, indoors, or other open area.
로봇(100)은 로봇 제어 시스템(120)에 의한 제어에 따라, 특정 기능을 수행하거나, 서비스의 제공과 관련된 작업을 수행하도록 구성될 수 있다. The robot 100 may be configured to perform a specific function or perform a task related to provision of a service according to control by the robot control system 120 .
로봇(100)이 주행하는 공간은 로봇(100)이 서비스를 제공하는 장소로서, 예컨대, 건물을 나타낼 수 있다. 이러한 공간은 복수의 인원(이하, 사용자라 함)들이 근무 또는 상주하는 공간으로서, 복수의 구획된 공간들을 포함할 수 있다. 공간은 건물의 일부(특정 층 또는 해당 층 내의 부분 공간)를 나타낼 수 있다. 서비스 로봇인 로봇(100)은 공간의 적어도 하나의 층에서 서비스를 제공하도록 구성될 수 있다. The space in which the robot 100 travels is a place where the robot 100 provides a service, and may represent, for example, a building. Such a space is a space where a plurality of persons (hereinafter, referred to as users) work or reside, and may include a plurality of partitioned spaces. A space may represent a part of a building (a specific floor or subspace within that floor). The robot 100, which is a service robot, may be configured to provide a service on at least one floor of a space.
로봇 제어 시스템(120)은 복수의 로봇들의 각각을 제어하도록 구성될 수도 있다. 이 때, 공간 내에서는 로봇들의 각각이 이동하여 공간 내의 적절한 위치 또는 적절한 사용자에게 서비스를 제공할 수 있다. The robot control system 120 may be configured to control each of a plurality of robots. At this time, each of the robots may move in the space to provide a service to an appropriate location in the space or an appropriate user.
로봇(100)이 제공하는 서비스는 예컨대, 택배 전달 서비스, 주문에 따른 음료(커피 등) 전달 서비스, 청소 서비스, 및 기타 정보/콘텐츠 제공 서비스 중 적어도 하나를 포함할 수 있다.The service provided by the robot 100 may include, for example, at least one of a delivery service delivery service, a beverage (coffee, etc.) delivery service according to an order, a cleaning service, and other information/content providing services.
로봇(100)은 자율 주행을 통해 공간의 소정의 위치에서 또는 소정의 사용자에게 서비스를 제공할 수 있다. 로봇(100)은 로봇 제어 시스템(120)에 의한 제어에 따라 특정한 위치로 이동하거나, 서비스의 제공을 위해 요구되는 기타 작업 또는 기능을 실행할 수 있다. The robot 100 may provide a service to a predetermined user or at a predetermined location in space through autonomous driving. The robot 100 may move to a specific location according to the control by the robot control system 120 or may execute other tasks or functions required to provide services.
실시예에서는, 로봇 제어 시스템(120)은 로봇(100)으로부터 수신된 미가공 데이터에 기반하여, 로봇(100)의 구동부를 제어하기 위한 제어 명령을 생성하고, 생성된 제어 명령을 로봇으로 송신하여 로봇(100)의 구동부를 제어할 수 있다. In the embodiment, the robot control system 120 generates a control command for controlling the driving unit of the robot 100 based on the raw data received from the robot 100, and transmits the generated control command to the robot to It is possible to control the driving unit of (100).
예컨대, 도시된 것처럼, 로봇 제어 시스템(120)은 로봇(100)의 센서부 등에 의해 수집된 로우(raw) 센싱 데이터를 포함하는 미가공 데이터를 로봇(100)으로부터 수신할 수 있다(①). 로봇 제어 시스템(120)은 수신한 미가공 데이터에 기반하여 로봇(100)의 구동부를 저수준(low-level)으로 제어하기 위한 제어 명령을 생성할 수 있다(②). 로봇 제어 시스템(120)은 생성된 제어 명령을 로봇(100)으로 송신할 수 있고(③), 로봇(100)은 수신한 제어 명령을 실행함으로써 구동부를 제어할 수 있다. 말하자면, 로봇 제어 시스템(120)은 로봇(100)의 구동부를 제어하기 위한 제어 명령으로서 추상화된 고수준(high-level)의 명령을 생성하는 것이 아니라, 구동부의 모터 및/또는 액추에이터를 (저수준으로) 직접 제어할 수 있도록 하는 저수준 제어 명령을 생성할 수 있다. 따라서, 로봇(100) 측에서는 수신된 제어 명령을 해석하는 프로세스가 수행될 필요가 없고, 수신된 저수준 제어 명령을 실행(예컨대, 구동부로 입력)시키는 것만으로 해당 제어 명령에 따라 구동부를 동작시킬 수 있다. For example, as shown, the robot control system 120 may receive raw data including raw sensing data collected by the sensor unit of the robot 100 from the robot 100 (①). The robot control system 120 may generate a control command for controlling the driving unit of the robot 100 to a low-level based on the received raw data (②). The robot control system 120 may transmit the generated control command to the robot 100 (③), and the robot 100 may control the driving unit by executing the received control command. In other words, the robot control system 120 does not generate a high-level command abstracted as a control command for controlling the driving unit of the robot 100, but operates the motor and/or actuator of the driving unit (lower level). You can create low-level control commands that give you direct control. Therefore, on the robot 100 side, there is no need to perform a process of interpreting the received control command, and only by executing the received low-level control command (eg, input to the driving unit), the driving unit can be operated according to the corresponding control command. .
이처럼, 로봇(100)은 수신된 제어 명령을 해석하는 프로세스를 수행하지 않고, 로봇 제어 시스템(120)으로부터의 저수준 제어 명령을 실행하여 구동부를 제어하는 브레인리스(brainless) 로봇으로 구현될 수 있다. 즉, 로봇 제어 시스템(120)은 이러한 브레인리스 로봇을 제어하는 로봇 브레인(브레인 시스템)으로 구현될 수 있다. As such, the robot 100 may be implemented as a brainless robot that controls the driving unit by executing a low-level control command from the robot control system 120 without performing a process of interpreting the received control command. That is, the robot control system 120 may be implemented as a robot brain (brain system) that controls such a brainless robot.
로봇(100)은 수집된 로우 센싱 데이터를 로봇 제어 시스템(120)으로 송신하고, 로봇 제어 시스템(120)으로부터의 저수준 제어 명령을 수신하여 구동부를 동작시키기 위한 구성만을 포함할 수 있는 바, 복잡한 온보드 컴퓨터 시스템과 같은 구성을 포함하지 않게 될 수 있다. The robot 100 transmits the collected raw sensing data to the robot control system 120 and receives a low-level control command from the robot control system 120 to operate the driving unit. It may not contain components such as computer systems.
로봇(100) 및 로봇 제어 시스템(120)의 구조와 그 구체적인 동작에 대해서는 후술될 도 2 내지 도 4를 참조하여 더 자세하게 설명된다. The structure and specific operation of the robot 100 and the robot control system 120 will be described in more detail with reference to FIGS. 2 to 4 to be described later.
도 2 는 일 실시예에 따른, 로봇을 나타내는 블록도이다.2 is a block diagram illustrating a robot, according to an embodiment.
전술한 것처럼, 로봇(100)은 공간 내에서 서비스를 제공하기 위해 사용되는 서비스 로봇일 수 있다. 로봇(100)은 자율 주행을 통해 공간의 소정의 위치에서 또는 소정의 사용자에게 서비스를 제공하도록 구성될 수 있다. As described above, the robot 100 may be a service robot used to provide a service in a space. The robot 100 may be configured to provide a service to a predetermined user or at a predetermined location in space through autonomous driving.
로봇(100)은 물리적인 장치일 수 있으며, 도시된 바와 같이, 제어부(104), 구동부(108), 센서부(106) 및 통신부(102)를 포함할 수 있다.The robot 100 may be a physical device, and as shown, may include a control unit 104 , a driving unit 108 , a sensor unit 106 , and a communication unit 102 .
제어부(104)는 로봇(100)에 내장된 물리적인 프로세서 또는 온보드 컴퓨터 시스템일 수 있다. 제어부(104)는 브레인리스 로봇으로서 구현되는 로봇(100)이 로봇 제어 시스템(120)과 통신하여, 로봇 제어 시스템(120)에 대해 데이터를 송신하고, 로봇 제어 시스템(120)으로부터 수신한 명령을 처리(예컨대, 구동부(108) 및/또는 센서부(106)로 전달)하기 위해 필요한 구성만을 포함할 수 있다. The control unit 104 may be a physical processor built into the robot 100 or an onboard computer system. In the control unit 104 , the robot 100 implemented as a brainless robot communicates with the robot control system 120 , transmits data to the robot control system 120 , and receives a command received from the robot control system 120 . It may include only the components necessary for processing (eg, transmission to the drive unit 108 and/or the sensor unit 106 ).
예컨대, 제어부(104)는 센서부(106)를 통해 수집된 로우 센싱 데이터를 로봇 제어 시스템(120)으로 송신하고, 로봇 제어 시스템(120)으로부터의 저수준 제어 명령을 수신하여 구동부(108)를 동작시키기 위한 구성만을 포함할 수 있다. 말하자면, 제어부(104)는 센싱 데이터 및 제어 명령을 해석 및 처리하기 위한 복잡한 구성(예컨대, GPU 등)을 포함하지 않을 수 있다. For example, the control unit 104 transmits the raw sensing data collected through the sensor unit 106 to the robot control system 120 , and receives a low-level control command from the robot control system 120 to operate the driving unit 108 . It may include only a configuration to make it happen. In other words, the control unit 104 may not include a complex configuration (eg, GPU, etc.) for interpreting and processing the sensed data and control commands.
제어부(104)는 센서부(106)를 위한 센서 드라이버와, 구동부(108)를 위한 구동부 드라이버를 포함할 수 있다. The control unit 104 may include a sensor driver for the sensor unit 106 and a driver driver for the driving unit 108 .
통신부(102)는 로봇(100)이 다른 장치(로봇 제어 시스템(120) 등)와 통신하기 위한 구성일 수 있다. 말하자면, 통신부(102)는 로봇 제어 시스템(120)과 같은 다른 장치에 대해 데이터 및/또는 정보를 전송/수신하는, 로봇(100)의 안테나, 데이터 버스, 네트워크 인터페이스 카드, 네트워크 인터페이스 칩 및 네트워킹 인터페이스 포트 등과 같은 하드웨어 모듈 또는 네트워크 디바이스 드라이버(driver) 또는 네트워킹 프로그램과 같은 소프트웨어 모듈일 수 있다.The communication unit 102 may be configured for the robot 100 to communicate with other devices (such as the robot control system 120 ). In other words, the communication unit 102 transmits/receives data and/or information to/from other devices such as the robot control system 120 , an antenna of the robot 100 , a data bus, a network interface card, a network interface chip, and a networking interface. It may be a hardware module, such as a port, or a software module, such as a network device driver or networking program.
일례로, 통신부(102)는 로봇 제어 시스템(120)과 통신하기 위한 무선 통신부로서, 로봇 제어 시스템(120)으로 (로우) 센싱 데이터를 포함하는 미가공 데이터를 송신하고, 로봇 제어 시스템(120)으로부터 구동부(108)를 위한 제어 명령을 수신할 수 있다. For example, the communication unit 102 is a wireless communication unit for communicating with the robot control system 120 , and transmits raw data including (raw) sensing data to the robot control system 120 , and from the robot control system 120 . A control command for the driving unit 108 may be received.
센서부(106)는 로봇(100)의 자율 주행 및 서비스 제공에 있어서 요구되는 데이터를 수집하기 위한 구성일 수 있다. 센서부(106)는 고가의 센싱 장비를 포함하지 않을 수 있고, 단지 저가형 초음파 센서 및/또는 저가형 카메라 등과 같은 센서를 포함할 수 있다. The sensor unit 106 may be configured to collect data required for autonomous driving and service provision of the robot 100 . The sensor unit 106 may not include expensive sensing equipment, and may only include a sensor such as a low-cost ultrasonic sensor and/or a low-cost camera.
센서부(106)는 전방 및/또는 후방의 다른 로봇, 사람, 장애물 등과 같은 오브젝트를 식별하기 위한 센서를 포함할 수 있다. 예컨대, 센서부(106)의 카메라를 통해 다른 로봇, 사람 및 기타 지물들이 식별될 수 있다. 또는, 센서부(106)는 적외선 센서(또는 적외선 카메라)를 포함할 수 있다. 센서부(106)는 카메라 외에 주변의 사용자나, 다른 로봇 또는 지물을 인식/식별하기 위한 센서를 더 포함할 수도 있다. 또한, 센서부(106)는 주변에 존재하는 오브젝트(들)와의 거리를 식별하기 위한 적어도 하나의 거리 센서를 포함할 수 있다. 기타, 센서부는 오도미터(odometer) 등을 비롯하여 로봇(100)의 상태를 파악하고 환경을 인식하기 위한 센서를 포함할 수 있다. The sensor unit 106 may include sensors for identifying objects such as other robots, people, obstacles, etc. in front and/or behind. For example, other robots, people, and other features may be identified through the camera of the sensor unit 106 . Alternatively, the sensor unit 106 may include an infrared sensor (or an infrared camera). In addition to the camera, the sensor unit 106 may further include a sensor for recognizing/identifying a nearby user, another robot, or a feature. In addition, the sensor unit 106 may include at least one distance sensor for identifying a distance to an object(s) existing in the vicinity. In addition, the sensor unit may include a sensor for detecting the state of the robot 100 and recognizing the environment, including an odometer.
센서부(106)의 센서들로부터의 (로우) 센싱 데이터는 통신부(102)를 통해 로봇 제어 시스템(120)으로 전송될 수 있다. 예컨대, 센싱 데이터는 제어부(104)의 센서 드라이버(또는 센서 허브)를 경유하여 통신부(102)를 통해 로봇 제어 시스템(120)으로 전송될 수 있다.The (raw) sensing data from the sensors of the sensor unit 106 may be transmitted to the robot control system 120 through the communication unit 102 . For example, the sensed data may be transmitted to the robot control system 120 through the communication unit 102 via a sensor driver (or sensor hub) of the control unit 104 .
구동부(108)는 로봇(100)의 이동을 제어하며 이동을 가능하게 하는 구성으로서 이를 수행하기 위한 장비(하드웨어)를 포함할 수 있다. 또한, 구동부(108)는 로봇(100)이 요청된 서비스와 관련된 작업을 수행하기 위해 필요한 기능을 수행하기 위한 장비(하드웨어)를 포함할 수 있다.The driving unit 108 controls the movement of the robot 100 and may include equipment (hardware) for performing this as a configuration that enables movement. In addition, the driving unit 108 may include equipment (hardware) for performing a function necessary for the robot 100 to perform a task related to the requested service.
예컨대, 구동부(108)는 로봇(100)의 이동을 위한 바퀴, 캐터필러 바퀴, 다리 등을 작동시키기 위한 적어도 하나의 모터 및/또는 적어도 하나의 액추에이터를 포함할 수 있다. For example, the driving unit 108 may include at least one motor and/or at least one actuator for operating wheels, caterpillar wheels, legs, etc. for movement of the robot 100 .
또한, 구동부(108)는 로봇(100)이 제공하는 서비스와 관련된 장비를 포함할 수 있다. 예컨대, 음식물/택배물 전달 서비스를 수행하기 위해 로봇(100)의 구동부(108)는 음식물/택배물을 적재하기 위한 구성이나 음식물/택배물을 사용자에게 전달하기 위한 구성(일례로, 로봇 암(arm))을 포함할 수 있다. 또한, 로봇(100)은 정보/콘텐츠의 제공을 위한 스피커 및/또는 디스플레이 등을 더 포함할 수도 있다.Also, the driving unit 108 may include equipment related to a service provided by the robot 100 . For example, in order to perform a food/delivery delivery service, the driving unit 108 of the robot 100 is configured to load food/delivery or deliver food/delivery to a user (eg, robot arm). may include In addition, the robot 100 may further include a speaker and/or a display for providing information/content.
구동부(108)는 로봇 제어 시스템(120)으로부터의 제어 명령에 따라 제어될 수 있다. 구동부(108)는 로봇 제어 시스템(120)으로부터 수신된 저수준 제어 명령을 실행하여, 해당 제어 명령에 대응하는 동작을 수행할 수 있다. 예컨대, 구동부(108)에 로봇 제어 시스템(120)으로부터의 저수준 제어 명령이 입력되면 구동부(108)는 해당 제어 명령이 나타내는 동작을 수행할 수 있다. The driving unit 108 may be controlled according to a control command from the robot control system 120 . The driving unit 108 may execute a low-level control command received from the robot control system 120 to perform an operation corresponding to the control command. For example, when a low-level control command from the robot control system 120 is input to the driving unit 108 , the driving unit 108 may perform an operation indicated by the corresponding control command.
로봇 제어 시스템(120)으로부터의 제어 명령은 통신부(102)를 통해 구동부(108)로 전달될 수 있다. 예컨대, 로봇 제어 시스템(120)으로부터의 제어 명령은 통신부(102)를 통해 수신되어 제어부(104)의 구동부 드라이버에 의해 구동부(108)의 각 구성(예컨대, 각각의 모터 및/또는 액추에이터)으로 전달될 수 있다. A control command from the robot control system 120 may be transmitted to the driving unit 108 through the communication unit 102 . For example, a control command from the robot control system 120 is received via the communication unit 102 and transmitted to each component of the driving unit 108 (eg, each motor and/or actuator) by a driving unit driver of the control unit 104 . can be
설명한 것처럼, 로봇(100)은 센서부(106)로부터의 센싱 데이터를 로봇 제어 시스템(120)으로 송신하고, 로봇 제어 시스템(120)으로부터 제어 명령을 수신하여 제어되는 것일 뿐인 바, (브레인에 해당하는 로봇 제어 시스템(120)에 의해 제어되는) 브레인리스 로봇이 될 수 있다.As described, the robot 100 transmits the sensed data from the sensor unit 106 to the robot control system 120 and receives a control command from the robot control system 120 to control the bar, (corresponding to the brain). It can be a brainless robot (controlled by the robot control system 120 ).
한편, 로봇(100)의 각각은 기종이나 제공하는 서비스 등에 따라, 상이한 크기 및 형태(즉, 상이한 종류의 센서부(106) 및/또는 구동부(108)를 가질 수 있다. Meanwhile, each of the robots 100 may have different sizes and shapes (ie, different types of sensor units 106 and/or driving units 108 ) according to models or services provided.
로봇(100)을 제어하는 로봇 제어 시스템(120)의 구성 및 동작에 대해서는 후술될 도 3 및 도 4를 참조하여 각각 더 자세하게 설명된다.The configuration and operation of the robot control system 120 for controlling the robot 100 will be described in more detail with reference to FIGS. 3 and 4 to be described later, respectively.
이상 도 1을 참조하여 전술된 기술적 특징에 대한 설명은, 도 2에 대해서도 그대로 적용될 수 있으므로 중복되는 설명은 생략한다.The description of the technical features described above with reference to FIG. 1 may be applied to FIG. 2 as it is, and thus a redundant description will be omitted.
도 3은 일 실시예에 따른, 복수의 모듈형 로봇들로 구성된 로봇을 제어하는 로봇 제어 시스템을 나타내는 블록도이다.3 is a block diagram illustrating a robot control system for controlling a robot composed of a plurality of modular robots, according to an embodiment.
로봇 제어 시스템(120)은 전술된 로봇(100)의 공간 내에서의 이동(즉, 주행) 및 로봇(100)에 의한 공간 내에서의 서비스의 제공을 제어하는 장치일 수 있다. 로봇 제어 시스템(120)은 로봇(100)이 복수인 경우 복수의 로봇들 각각의 이동 및 로봇(100) 각각의 서비스의 제공을 제어할 수 있다. The robot control system 120 may be a device for controlling the movement (ie, driving) in the space of the robot 100 and the provision of services in the space by the robot 100 . When there are a plurality of robots 100 , the robot control system 120 may control movement of each of the plurality of robots and the provision of services of each of the robots 100 .
로봇 제어 시스템(120)은 로봇(100)과의 통신을 통해, 로봇(100)이 서비스를 제공하기 위해 이동해야 할 경로를 계획 및 설정할 수 있고, 이러한 경로에 따른 이동을 위한 제어 명령을 로봇(100)에게 전달할 수 있다. 로봇(100)은 수신된 제어 명령에 따라 소정의 위치 또는 소정의 사용자에게 이동할 수 있다. 또한, 로봇(100)은 로봇 제어 시스템(120)의 제어에 따라 소정의 위치에서 또는 소정의 사용자에게 서비스를 제공(서비스와 관련된 작업을 수행)할 수 있다.The robot control system 120 can plan and set a path to be moved by the robot 100 in order to provide a service through communication with the robot 100, and transmit a control command for movement according to this path to the robot ( 100) can be forwarded. The robot 100 may move to a predetermined position or to a predetermined user according to the received control command. In addition, the robot 100 may provide a service (perform a service-related task) to a predetermined location or to a predetermined user according to the control of the robot control system 120 .
로봇 제어 시스템(120)은 적어도 하나의 컴퓨팅 장치를 포함할 수 있다.The robot control system 120 may include at least one computing device.
로봇 제어 시스템(120)은 전술한 것처럼 로봇(100)의 주행을 위한 경로를 계획 및 설정하고 로봇(100)의 이동을 제어하는 장치일 수 있다. 로봇 제어 시스템(120)은 적어도 하나의 컴퓨팅 장치를 포함할 수 있고, 로봇(100)이 주행하는 공간 내 또는 공간 외부에 위치하는 적어도 하나의 서버(예컨대, 클라우드 서버)로 구현될 수 있다. The robot control system 120 may be a device for planning and setting a route for the traveling of the robot 100 and controlling the movement of the robot 100 as described above. The robot control system 120 may include at least one computing device, and may be implemented as at least one server (eg, a cloud server) located in or outside the space in which the robot 100 travels.
로봇 제어 시스템(120)은 도시된 것처럼, 메모리(330), 프로세서(320), 통신부(310) 및 입출력 인터페이스(340)를 포함할 수 있다.As shown, the robot control system 120 may include a memory 330 , a processor 320 , a communication unit 310 , and an input/output interface 340 .
메모리(330)는 컴퓨터에서 판독 가능한 기록매체로서, RAM(random access memory), ROM(read only memory) 및 디스크 드라이브와 같은 비소멸성 대용량 기록장치(permanent mass storage device)를 포함할 수 있다. 여기서 ROM과 비소멸성 대용량 기록장치는 메모리(330)와 분리되어 별도의 영구 저장 장치로서 포함될 수도 있다. 또한, 메모리(330)에는 운영체제와 적어도 하나의 프로그램 코드가 저장될 수 있다. 이러한 소프트웨어 구성요소들은 메모리(330)와는 별도의 컴퓨터에서 판독 가능한 기록매체로부터 로딩될 수 있다. 이러한 별도의 컴퓨터에서 판독 가능한 기록매체는 플로피 드라이브, 디스크, 테이프, DVD/CD-ROM 드라이브, 메모리 카드 등의 컴퓨터에서 판독 가능한 기록매체를 포함할 수 있다. 다른 실시예에서 소프트웨어 구성요소들은 컴퓨터에서 판독 가능한 기록매체가 아닌 통신부(310)를 통해 메모리(330)에 로딩될 수도 있다. The memory 330 is a computer-readable recording medium and may include a random access memory (RAM), a read only memory (ROM), and a permanent mass storage device such as a disk drive. Here, the ROM and the non-volatile mass storage device may be separated from the memory 330 and included as separate permanent storage devices. Also, an operating system and at least one program code may be stored in the memory 330 . These software components may be loaded from a computer-readable recording medium separate from the memory 330 . The separate computer-readable recording medium may include a computer-readable recording medium such as a floppy drive, a disk, a tape, a DVD/CD-ROM drive, and a memory card. In another embodiment, the software components may be loaded into the memory 330 through the communication unit 310 rather than a computer-readable recording medium.
프로세서(320)는 기본적인 산술, 로직 및 입출력 연산을 수행함으로써, 컴퓨터 프로그램의 명령을 처리하도록 구성될 수 있다. 명령은 메모리(330) 또는 통신부(310)에 의해 프로세서(320)로 제공될 수 있다. 예를 들어, 프로세서(320)는 메모리(330)에 로딩된 프로그램 코드에 따라 수신되는 명령을 실행하도록 구성될 수 있다. The processor 320 may be configured to process instructions of a computer program by performing basic arithmetic, logic, and input/output operations. The command may be provided to the processor 320 by the memory 330 or the communication unit 310 . For example, the processor 320 may be configured to execute a received instruction according to a program code loaded into the memory 330 .
통신부(310)는 로봇 제어 시스템(120)이 다른 장치(로봇(100) 또는 다른 서버 등)와 통신하기 위한 구성일 수 있다. 말하자면, 통신부(310)는 다른 장치에 대해 데이터 및/또는 정보를 전송/수신하는, 로봇 제어 시스템(120)의 안테나, 데이터 버스, 네트워크 인터페이스 카드, 네트워크 인터페이스 칩 및 네트워킹 인터페이스 포트 등과 같은 하드웨어 모듈 또는 네트워크 디바이스 드라이버(driver) 또는 네트워킹 프로그램과 같은 소프트웨어 모듈일 수 있다.The communication unit 310 may be configured for the robot control system 120 to communicate with other devices (such as the robot 100 or another server). In other words, the communication unit 310 transmits/receives data and/or information to/from other devices, such as an antenna of the robot control system 120, a data bus, a network interface card, a network interface chip, and a hardware module such as a networking interface port or the like. It may be a software module such as a network device driver or a networking program.
일례로, 통신부(310)는 로봇(100)과 통신하기 위한 무선 통신부로서, 로봇(100)으로부터 (로우) 센싱 데이터를 포함하는 미가공 데이터를 수신하고, 로봇(100)으로 구동부(108)를 위한 제어 명령을 송신할 수 있다. 말하자면, 로봇(100)과 로봇 제어 시스템(120)은 각자의 무선 통신부들(102, 310)을 통해 통신함으로써, 데이터 및 명령을 송수신할 수 있다. As an example, the communication unit 310 is a wireless communication unit for communicating with the robot 100 , and receives raw data including (raw) sensing data from the robot 100 , and for the driving unit 108 to the robot 100 . Control commands can be sent. In other words, the robot 100 and the robot control system 120 may transmit and receive data and commands by communicating through the respective wireless communication units 102 and 310 .
입출력 인터페이스(340)는 키보드 또는 마우스 등과 같은 입력 장치 및 디스플레이나 스피커와 같은 출력 장치와의 인터페이스를 위한 수단일 수 있다.The input/output interface 340 may be a means for interfacing with an input device such as a keyboard or mouse and an output device such as a display or speaker.
또한, 다른 실시예들에서 로봇 제어 시스템(120) 및 프로세서(320)는 도시된 구성요소들보다 더 많은 구성요소들을 포함할 수도 있다. 예컨대, 프로세서(320)는 도 4에서 도시된 것과 같은 구성들(예컨대, 410 내지 440)을 포함할 수 있다. Further, in other embodiments, the robot control system 120 and the processor 320 may include more components than the illustrated components. For example, the processor 320 may include components such as those shown in FIG. 4 (eg, 410 to 440 ).
실시예에서는, 통신부(310)를 통해 로봇(100)으로부터 로봇(100)의 센서부(106)에 의해 수집된 로우 센싱 데이터를 포함하는 미가공 데이터가 프로세서(320)로 수신될 수 있고, 프로세서(320)는 로봇(100)으로부터 수신된 센싱 데이터게 기반하여 로봇(100)의 구동부(108)를 위한 제어 명령(저수준 제어 명령)을 생성할 수 있다. 프로세서(320)는 통신부(310)를 통해 제어 명령을 로봇(100)에 송신할 수 있고, 따라서, 송신된 제어 명령에 따라 구동부(108)가 제어되도록 할 수 있다. 통신부(310)는 로봇(100)과의 통신을 위해 소켓 통신, 스트림, 메세지 큐 등을 활용할 수 있다. In the embodiment, raw data including the raw sensing data collected by the sensor unit 106 of the robot 100 from the robot 100 through the communication unit 310 may be received by the processor 320, and the processor ( The 320 may generate a control command (low-level control command) for the driving unit 108 of the robot 100 based on the sensed data received from the robot 100 . The processor 320 may transmit a control command to the robot 100 through the communication unit 310 , and thus the driving unit 108 may be controlled according to the transmitted control command. The communication unit 310 may utilize socket communication, a stream, a message queue, and the like for communication with the robot 100 .
프로세서(320)가 구동부(108)를 위한 제어 명령을 생성하는 동작은 구성들(410 내지 440)에 의해 수행될 수 있다. The operation of the processor 320 generating a control command for the driving unit 108 may be performed by the components 410 to 440 .
프로세서(320)의 구성들(410 내지 440) 각각은 프로세서(320)의 일부로서 소프트웨어 및/또는 하드웨어 모듈일 수 있고, 프로세서에 의해 구현되는 기능(기능 블록)을 나타낼 수 있다. 프로세서(320)의 구성들(410 내지 440)에 대해서는 도 4를 참조하여 후술한다.Each of the components 410 to 440 of the processor 320 may be a software and/or hardware module as a part of the processor 320 , and may represent a function (functional block) implemented by the processor. Configurations 410 to 440 of the processor 320 will be described later with reference to FIG. 4 .
이상 도 1 및 도 2를 참조하여 전술된 기술적 특징에 대한 설명은, 도 3에 대해서도 그대로 적용될 수 있으므로 중복되는 설명은 생략한다.The description of the technical features described above with reference to FIGS. 1 and 2 can be applied to FIG. 3 as it is, and thus a redundant description will be omitted.
도 4는 일 실시예에 따른, 로봇과 로봇 제어 시스템 간의 무선 통신에 기반하여, 로봇 제어 시스템이 저수준(low-level) 제어 명령을 통해 로봇의 구동부를 제어하는 방법을 나타낸다. 4 illustrates a method for the robot control system to control the driving unit of the robot through a low-level control command based on wireless communication between the robot and the robot control system, according to an embodiment.
도시된 것처럼, 로봇 제어 시스템(120)은 전처리부(410), 로봇 상태 및 환경 인식 처리부(420), 로봇 제어부(430) 및 주행 계획부(440)를 포함할 수 있다. 이러한 구성들(410 내지 440)은 전술한 프로세서(320)의 일부이거나 프로세서(320)에 의해 구현되는 기능일 수 있다. 프로세서(320)가 포함하는 구성요소들은, 운영체제의 코드나 적어도 하나의 컴퓨터 프로그램의 코드에 따른 제어 명령(instruction)에 따라 프로세서(320)가 포함하는 적어도 하나의 프로세서가 수행하는 서로 다른 기능들(different functions)의 표현들일 수 있다.As shown, the robot control system 120 may include a preprocessor 410 , a robot state and environment recognition processor 420 , a robot controller 430 , and a travel planner 440 . These components 410 to 440 may be a part of the above-described processor 320 or a function implemented by the processor 320 . Components included in the processor 320 may perform different functions ( different functions).
한편, 로봇(100)의 제어부(104)는 센서 드라이버(450) 및 구동부 드라이버(460)를 포함할 수 있다. 센서부(106)는 복수의 센서들(470-1 내지 4)을 포함하고, 구동부(108)는 액추에이터(482) 및 모터(484)를 포함하는 것으로 도시되었다. Meanwhile, the control unit 104 of the robot 100 may include a sensor driver 450 and a driving unit driver 460 . The sensor unit 106 includes a plurality of sensors 470 - 1 to 4 , and the driving unit 108 is illustrated as including an actuator 482 and a motor 484 .
도 4를 참조하여서는 브레인리스 로봇인 로봇(100)과, 이러한 로봇(100)을 제어하는 브레인 시스템으로서의 로봇 제어 시스템(120)에 대해 더 자세하게 설명한다. With reference to FIG. 4 , the robot 100 as a brainless robot and the robot control system 120 as a brain system for controlling the robot 100 will be described in more detail.
로봇(100)의 제어부(104)는 센서부(106)(즉, 센서들(470-1 내지 4))에 의해 획득(수집)된 로우 센싱 데이터를 포함하는 미가공 데이터를 로봇 제어 시스템(120)으로 송신할 수 있다. 로우 센싱 데이터를 포함하는 미가공 데이터는 센서들(470-1 내지 4)로부터 센서 드라이버(450)(센서 허브)로 전달될 수 있고 무선 통신부(102)를 통해 로봇 제어 시스템(120)으로 송신될 수 있다. The control unit 104 of the robot 100 transmits raw data including the raw sensing data acquired (collected) by the sensor unit 106 (ie, the sensors 470-1 to 4) to the robot control system 120 . can be sent to Raw data including raw sensing data may be transmitted from the sensors 470-1 to 4 to the sensor driver 450 (sensor hub) and may be transmitted to the robot control system 120 through the wireless communication unit 102 . have.
로봇 제어 시스템(120)은 자신의 무선 통신부(320)와 로봇(100)의 무선 통신부(102)와의 통신에 따라, 로봇(100)으로부터 로우 센싱 데이터를 포함하는 미가공 데이터를 수신할 수 있다. The robot control system 120 may receive raw data including raw sensing data from the robot 100 according to communication between its own wireless communication unit 320 and the wireless communication unit 102 of the robot 100 .
로봇 제어 시스템(120)의 프로세서(320)는 수신된 미가공 데이터에 기반하여, 로봇(100)의 구동부(108)를 제어하기 위한 제어 명령을 생성할 수 있다. 로봇 제어 시스템(120)은 자신의 무선 통신부(320)와 로봇(100)의 무선 통신부(102)와의 통신에 따라, 생성된 제어 명령을 로봇(100)으로 송신할 수 있다. 제어 명령은 무선 통신부(102)를 통해 로봇(100)에 수신될 수 있고, 로봇(100)은 이러한 제어 명령을 실행하여 구동부(108)를 제어할 수 있다. The processor 320 of the robot control system 120 may generate a control command for controlling the driving unit 108 of the robot 100 based on the received raw data. The robot control system 120 may transmit the generated control command to the robot 100 according to communication between its own wireless communication unit 320 and the wireless communication unit 102 of the robot 100 . The control command may be received by the robot 100 through the wireless communication unit 102 , and the robot 100 may control the driving unit 108 by executing the control command.
도시된 것처럼, 로봇 제어 시스템(120)으로부터의 제어 명령은 무선 통신부(102)를 통해 구동부 드라이버(104)에 수신되어 구동부(108)의 제어가 필요한 요소(액추에이터(482) 및/또는 모터(484))로 입력될 수 있다. 구동부 드라이버(104)는 액추에이터(482) 및 모터(484) 중 수신된 제어 명령에 의해 제어되어야 할 요소를 결정하여, 결정된 요소의 제어를 위해 해당 결정된 요소로 제어 명령을 전달할 수 있다. As shown, the control command from the robot control system 120 is received by the driving unit driver 104 through the wireless communication unit 102, and the elements that require control of the driving unit 108 (actuator 482 and/or motor 484) )) can be entered. The driving unit driver 104 may determine an element to be controlled by the received control command among the actuator 482 and the motor 484 , and transmit the control command to the determined element for controlling the determined element.
로봇(100)이 로봇 제어 시스템(120)으로부터 수신한 제어 명령은 구동부(108)(액추에이터(482) 및/또는 모터(484))로 입력되어, 구동부(108)(액추에이터(482) 및/또는 모터(484))를 제어하기 위한 저수준 제어 명령을 포함할 수 있다. 말하자면, 로봇 제어 시스템(120)은 구동부(108)를 제어하기 위한 제어 명령으로서 추상화된 고수준(high-level)의 명령을 생성하여 로봇(100)으로 송신하는 것이 아니라, 구동부(108)의 모터(482) 및/또는 액추에이터(484)를 (저수준으로) 직접 제어할 수 있도록 하는 저수준 제어 명령을 생성하여 로봇(100)으로 송신할 수 있다.The control command received by the robot 100 from the robot control system 120 is input to the drive unit 108 (actuator 482 and/or motor 484 ), and the drive unit 108 (actuator 482 and/or motor 484 ). low-level control commands for controlling the motor 484). In other words, the robot control system 120 does not generate and transmit a high-level command abstracted as a control command for controlling the driving unit 108 to the robot 100, but rather the motor ( 482 ) and/or actuators 484 may be generated and sent to the robot 100 to allow direct (low-level) control of the actuators 484 .
따라서, 로봇 제어 시스템(120)의 로봇(100)에 대한 피드백 제어가 수행될 수 있다. Accordingly, feedback control of the robot 100 of the robot control system 120 may be performed.
아래에서, 로봇 제어 시스템(120) 측에서 제어 명령을 생성하는 방법을 더 자세하게 설명한다. Hereinafter, a method of generating a control command on the robot control system 120 side will be described in more detail.
로봇 통신부(310)에 의해 수신된 로우 센싱 데이터(또는 미가공 데이터)는 전처리부(410)에 의해 먼저 전처리될 수 있다. 전처리된 로우 센싱 데이터는 로봇 상태 및 환경 인식 처리부(420)에 의해 처리될 수 있다. 로봇 상태 및 환경 인식 처리부(420)는 전처리부(410)에 의해 전처리된 로우 센싱 데이터에 기반하여, 로봇(100)의 (실시간 또는 거의 실시간의) 상태를 나타내는 상태 정보 및 로봇(100)이 주행하는 환경의 환경 정보 중 적어도 하나의 정보를 획득(생성)할 수 있다.The raw sensing data (or raw data) received by the robot communication unit 310 may be preprocessed first by the preprocessor 410 . The preprocessed raw sensing data may be processed by the robot state and environment recognition processing unit 420 . The robot state and environment recognition processing unit 420 is based on the raw sensing data preprocessed by the preprocessing unit 410, the robot 100 is driven and the state information indicating the (real-time or near real-time) state of the robot 100. It is possible to acquire (generate) at least one piece of environment information of the environment to be used.
로봇 제어부(430)는 이러한 로봇 상태 및 환경 인식 처리부(420)에 의해 획득된 정보에 기반하여 구동부(108)를 제어하기 위한 (저수준) 제어 명령을 생성할 수 있다. 로봇 제어부(430)는 구동부(108)의 액추에이터(482) 및 모터(484)를 구체적으로 제어하기 위한 명령을 계산할 수 있다. 예컨대, 로봇 제어부(430)는 액추에이터(482)의 속도, 위치 및 토크 중 적어도 하나를 제어하기 위한 명령이나, 모터(484)의 속도 및 토크 중 적어도 하나를 제어하기 위한 명령을 생성할 수 있다. 액추에이터(482)는 적어도 하나의 모터, 슬라이더, 또는 실린더로 구성될 수 있다.The robot control unit 430 may generate a (low level) control command for controlling the driving unit 108 based on the information obtained by the robot state and environment recognition processing unit 420 . The robot control unit 430 may calculate a command for specifically controlling the actuator 482 and the motor 484 of the driving unit 108 . For example, the robot controller 430 may generate a command for controlling at least one of the speed, position, and torque of the actuator 482 or a command for controlling at least one of the speed and torque of the motor 484 . Actuator 482 may be comprised of at least one motor, slider, or cylinder.
한편, 로봇 제어부(430)는 구동부(108)를 위한 제어 명령을 생성함에 있어서 레퍼런스 정보를 더 사용할 수 있다. Meanwhile, the robot control unit 430 may further use the reference information in generating a control command for the driving unit 108 .
예컨대, 로봇 제어부(430)가 생성하는 제어 명령이 로봇(100)의 자율 주행을 위해 로봇(100)의 이동을 제어하기 위한 제어 명령인 경우에 있어서, 로봇 제어부(430)는, 로봇(100)과 연관된 이동 계획을 관리하는 주행 계획부(450)로부터의 이동 계획(motion plan)을 참조하여 구동부(108)를 위한 제어 명령을 생성할 수 있다. 이 때, 로봇 제어부(430)는, 로우 센싱 데이터로부터 획득(생성)된 로봇(100)의 상태 정보 및 로봇(100)이 주행하는 환경의 환경 정보에 기반하여, 로봇(100)이 이동 계획을 따르면서 환경에서의 장애물을 회피하도록 하는, 구동부(108)를 위한 제어 명령을 생성할 수 있다. For example, when the control command generated by the robot control unit 430 is a control command for controlling the movement of the robot 100 for autonomous driving of the robot 100 , the robot control unit 430 may A control command for the driving unit 108 may be generated with reference to a motion plan from the driving planner 450 that manages the related movement plan. At this time, the robot control unit 430, based on the state information of the robot 100 obtained (generated) from the raw sensing data, and the environment information of the environment in which the robot 100 travels, the robot 100 determines the movement plan. It can generate control commands for the drive unit 108 to follow and avoid obstacles in the environment.
따라서, 로봇 제어 시스템(120)으로부터의 제어 명령에 따라, 로봇(100)은 이동 계획을 따라 주행하면서, 장애물을 회피할 수 있도록 액추에이터(482) 및 모터(484)가 적절하게 제어될 수 있다. Accordingly, according to a control command from the robot control system 120 , the actuator 482 and the motor 484 can be appropriately controlled so that the robot 100 can avoid obstacles while traveling according to the movement plan.
한편, 로봇 제어부(430)는 제어 명령을 생성함에 있어서 로봇(100)의 역학(dynamics) 정보를 더 고려할 수 있다. 역학 정보는 전술한 레퍼런스 정보의 일 예일 수 있다. Meanwhile, the robot controller 430 may further consider information on dynamics of the robot 100 in generating a control command. The dynamics information may be an example of the aforementioned reference information.
또한, 로봇 제어부(430)는 제어 명령을 생성함에 있어서 로봇(100) 제어의 실시간성을 보장하기 위해, 지연(예컨대, 로봇 제어 시스템(120)과 로봇(100) 간의 무선 통신에 있어서의 지연)을 고려하여 제어 명령을 보정할 수 있다.In addition, the robot control unit 430 is delayed (eg, a delay in wireless communication between the robot control system 120 and the robot 100) in order to ensure real-time control of the robot 100 in generating the control command. It is possible to correct the control command in consideration of
실시예를 통해서는, 서버인 로봇 제어 시스템(120)으로부터의 원격 제어를 통해, 로봇(100) 측에서의 복잡한 연산의 수행 없이, 로봇(100)의 자율 주행이 효과적으로 제어될 수 있다. 한편, 프로세서(320)는 로봇(100)의 자율 주행을 통한 서비스 제공을 위한 도시되지 않은 구성들을 더 포함할 수 있다. In the embodiment, through remote control from the robot control system 120 that is a server, autonomous driving of the robot 100 can be effectively controlled without performing complex calculations on the robot 100 side. Meanwhile, the processor 320 may further include components not shown for providing a service through autonomous driving of the robot 100 .
프로세서(320)는 도시되지는 않았으나, 맵 생성 모듈, 로컬리제이션 처리 모듈, 경로 계획 처리 모듈 및 서비스 운영 모듈을 포함할 수 있다. Although not shown, the processor 320 may include a map generation module, a localization processing module, a route planning processing module, and a service operation module.
맵 생성 모듈은 공간 내부에서 자율 주행하는 (도시되지 않은) 맵핑 로봇이 목표 시설물(예컨대, 공간의 내부)에 대해 생성한 센싱 데이터를 이용하여 목표 시설물의 실내 지도를 생성하기 위한 구성요소일 수 있다. 이 때, 로컬리제이션 처리 모듈은 로봇(100)으로부터의 센싱 데이터와 맵 생성 모듈을 통해 생성된 목표 시설물의 실내 지도를 이용하여 목표 시설물 내부에서의 로봇(100)의 위치를 결정할 수 있다. 로컬리제이션 처리 모듈은 전술한 로봇 상태 및 환경 인식 처리부(420)에 포함될 수 있다. The map generation module may be a component for generating an indoor map of a target facility using sensing data generated by a mapping robot (not shown) autonomously driving inside a space for a target facility (eg, inside a space). . In this case, the localization processing module may determine the position of the robot 100 inside the target facility by using the sensing data from the robot 100 and the indoor map of the target facility generated through the map generation module. The localization processing module may be included in the robot state and environment recognition processing unit 420 described above.
경로 계획 처리 모듈은 상술한 로봇으로부터 수신된 센싱 데이터와 생성된 실내 지도를 이용하여 로봇(100)의 실내 자율 주행을 제어하기 위한 제어 신호를 생성할 수 있다. 경로 계획 처리 모듈은 전술한 로봇 제어부(430) 또는 주행 계획부(440)에 포함될 수 있다. 예컨대, 경로 계획 처리 모듈은 로봇(100)의 경로(즉, 경로 데이터)를 생성할 수 있다. 생성된 경로(경로 데이터)는 해당 경로를 따르는 로봇(100)의 주행을 위해 로봇(100)에 대해 설정될 수 있다. 로봇(100)이 주행하도록 설정되는 경로는 로봇 제어부(430)가 로봇(100)을 위한 명령을 생성하기 위해 사용하는 이동 계획에 포함될 수 있다. The path planning processing module may generate a control signal for controlling the indoor autonomous driving of the robot 100 by using the sensing data received from the above-described robot and the generated indoor map. The path planning processing module may be included in the above-described robot control unit 430 or travel planning unit 440 . For example, the path planning processing module may generate a path (ie, path data) of the robot 100 . The generated path (path data) may be set for the robot 100 for the robot 100 to travel along the corresponding path. The path that the robot 100 is set to travel may be included in a movement plan used by the robot controller 430 to generate a command for the robot 100 .
프로세서(320)의 서비스 운영 모듈은 로봇(100)이 공간 내에서 제공하는 서비스를 제어하기 위한 기능을 포함할 수 있다. 예를 들어, 로봇 제어 시스템(120) 또는 공간을 운영하는 서비스 제공자는 로봇(100)의 이용자나 제작자에게 로봇 제어 시스템(120)이 제공하는 서비스(예컨대, 클라우드 서비스)를 위한 IDE(Integrated Development Environment)를 제공할 수 있다. 이 때, 로봇(100)의 이용자나 제작자는 로봇(100)이 공간 내에서 제공하는 서비스를 제어하기 위한 소프트웨어를 IDE를 통해 제작하여 로봇 제어 시스템(120)에 등록할 수 있다. 이 경우, 서비스 운영 모듈은 해당 로봇(100)과 연관하여 등록된 소프트웨어를 이용하여 로봇(100)이 제공하는 서비스를 제어할 수 있다. 구체적인 예로, 로봇(100)이 사용자가 요청한 물건(예컨대, 음식물 또는 택배물)을 해당 사용자의 위치로 전달하는 서비스를 제공한다고 가정하면, 로봇 제어 시스템(120)은 로봇(100)의 실내 자율 주행을 제어하여 로봇(100)이 해당 사용자의 위치로 이동하도록 제어할 뿐만 아니라, 목적 위치에 도착한 경우 사용자에게 물건을 전달하고, 사용자 응대 음성을 출력하는 일련의 서비스를 로봇(100)이 제공하도록 관련된 명령을 로봇(100)에게 전달할 수 있다. 로봇 제어부(430)는 서비스 운영 모듈을 통해서 구동부(108)를 위한 제어 명령(즉, 서비스와 관련된 작업을 처리하기 위한 제어 명령)을 생성함에 있어서 참조하는 레퍼런스 정보를 획득할 수 있다. The service operation module of the processor 320 may include a function for controlling the service provided by the robot 100 in the space. For example, the robot control system 120 or a service provider operating the space provides an IDE (Integrated Development Environment) for a service (eg, cloud service) provided by the robot control system 120 to a user or a manufacturer of the robot 100 . ) can be provided. At this time, the user or the manufacturer of the robot 100 may create software for controlling the service provided in the space by the robot 100 through the IDE and register it in the robot control system 120 . In this case, the service operation module may control the service provided by the robot 100 using software registered in association with the robot 100 . As a specific example, assuming that the robot 100 provides a service that delivers a user-requested item (eg, food or parcel) to the user's location, the robot control system 120 controls the indoor autonomous driving of the robot 100 . In addition to controlling the robot 100 to move to the user's location by controlling, commands related to the robot 100 to provide a series of services for delivering goods to the user and outputting user response voices when arriving at the target location may be transmitted to the robot 100 . The robot control unit 430 may obtain reference information referenced in generating a control command for the driving unit 108 (ie, a control command for processing a service-related task) through the service operation module.
로봇 제어 시스템(120)의 로봇(100)의 제어를 위한 보다 상세한 동작에 대해서는 후술될 도 5 내지 도 10을 참조하여 더 자세하게 설명된다. A more detailed operation for controlling the robot 100 of the robot control system 120 will be described in more detail with reference to FIGS. 5 to 10 to be described later.
이상 도 1 내지 도 3을 참조하여 전술된 기술적 특징에 대한 설명은, 도 4에 대해서도 그대로 적용될 수 있으므로 중복되는 설명은 생략한다.The description of the technical features described above with reference to FIGS. 1 to 3 can be applied to FIG. 4 as it is, and thus a redundant description will be omitted.
후술될 상세한 설명에서, 로봇 제어 시스템(120) 및 로봇(100)의 구성들에 의해 수행되는 동작은 설명의 편의상 로봇 제어 시스템(120) 및 로봇(100)에 의해 수행되는 것으로 설명될 수도 있다. In the detailed description to be described later, operations performed by the components of the robot control system 120 and the robot 100 may be described as being performed by the robot control system 120 and the robot 100 for convenience of description.
도 5는 일 실시예에 따른, 로봇을 제어하는 방법을 나타내는 흐름도이다. 5 is a flowchart illustrating a method of controlling a robot, according to an embodiment.
단계(510)에서, 로봇 제어 시스템(120)은 로봇(100)으로부터 미가공 데이터를 수신할 수 있다. 미가공 데이터는 로봇(100)의 센서부(106)에 의해 획득된 로우(raw) 센싱 데이터를 포함할 수 있다. 예컨대, 로우 센싱 데이터는 센서부(106)가 포함하는 센서들의 각각 및 카메라로부터 수집 또는 획득된 데이터로서, 전처리 등을 통해 가공되지 않은 데이터일 수 있다.In step 510 , the robot control system 120 may receive raw data from the robot 100 . The raw data may include raw sensing data acquired by the sensor unit 106 of the robot 100 . For example, the raw sensing data is data collected or acquired from each of the sensors and the camera included in the sensor unit 106, and may be data that has not been processed through pre-processing or the like.
또는, 로우 센싱 데이터는 센서부(106)로부터 최초로 수집된 센싱 데이터가 로봇(100) 측에서 최소한의 전처리 또는 보정 처리만이 수행되어 획득된 데이터일 수 있다. 말하자면, 로우 센싱 데이터는 센서부(106)로부터 최초로 수집된 센싱 데이터가 일차적으로 전처리된 것일 수 있다. 일례로, 이러한 일차적인 전처리는 센싱 데이터로부터의 최소한의 노이즈 제거 또는 (센싱 데이터에 해당하는) 이미지의 크롭핑 등이거나, 단지 센싱 데이터의 무선 통신부(102)를 통한 송신을 위한 포맷으로의 가공일 수 있다.Alternatively, the raw sensing data may be data obtained by performing minimal pre-processing or correction processing on the sensing data first collected from the sensor unit 106 on the robot 100 side. In other words, the raw sensing data may be the first preprocessing of the sensing data first collected from the sensor unit 106 . For example, this primary pre-processing is a minimal noise removal from the sensed data or cropping of an image (corresponding to the sensed data), or just processing the sensed data into a format for transmission through the wireless communication unit 102 . can
따라서, 로봇(100) 측에는 로우 센싱 데이터를 가공 또는 전처리하기 위한 구성이 별도로 마련될 필요가 없으며, 또는, 최소한의 전처리를 위한 구성만이 마련될 수 있다. Accordingly, there is no need to separately provide a configuration for processing or pre-processing the raw sensing data on the robot 100 side, or only a configuration for minimal pre-processing may be provided.
단계(520)에서, 로봇 제어 시스템(120)은 로봇(100)으로부터 수신된 미가공 데이터에 기반하여, 로봇(100)의 구동부(108)를 제어하기 위한 제어 명령을 생성할 수 있다. In operation 520 , the robot control system 120 may generate a control command for controlling the driving unit 108 of the robot 100 based on the raw data received from the robot 100 .
단계(530)에서, 로봇 제어 시스템(120)은 생성된 제어 명령을 로봇(100)으로 송신할 수 있다. In step 530 , the robot control system 120 may transmit the generated control command to the robot 100 .
로봇 제어 시스템(120)에 의해 생성되는 로봇(100)으로 송신되는 제어 명령은 로봇(100)의 구동부(108)를 (로봇(100)으로부터의 센싱 데이터를 포함하는 미가공 데이터에 기반하여) 피드백 제어하기 위한 것일 수 있다. 즉, 제어 명령은 구동부(108)가 포함하는 액추에이터 및 모터 중 적어도 하나를 피드백 제어하기 위한 명령을 포함할 수 있다.The control command transmitted to the robot 100 generated by the robot control system 120 controls the driving unit 108 of the robot 100 (based on raw data including the sensed data from the robot 100) feedback control. it may be for That is, the control command may include a command for feedback control of at least one of an actuator and a motor included in the driving unit 108 .
제어 명령은 구동부(108)로 입력되어, 구동부(108)를 제어하기 위한 저수준(low-level) 제어 명령을 포함할 수 있다. 말하자면, 로봇 제어 시스템(120)은 구동부(108)를 제어하기 위한 제어 명령으로서 추상화된 고수준(high-level)의 명령을 생성하는 것이 아니라, 구동부의 모터 및/또는 액추에이터를 (저수준으로) 직접 제어할 수 있도록 하는 저수준 제어 명령을 생성할 수 있다.The control command may be input to the driving unit 108 and include a low-level control command for controlling the driving unit 108 . In other words, the robot control system 120 does not generate a high-level command abstracted as a control command for controlling the drive unit 108, but directly (low-level) the motor and/or actuator of the drive unit. You can create low-level control commands that allow you to do this.
일례로, 제어 명령은 구동부(108)가 포함하는 액추에이터의 속도, 위치 및 토크 중 적어도 하나를 제어하기 위한 명령을 포함할 수 있다. 또는/추가적으로, 제어 명령은 구동부(108)가 포함하는 모터의 속도 및 토크 중 적어도 하나를 제어하기 위한 명령을 포함할 수 있다. For example, the control command may include a command for controlling at least one of a speed, a position, and a torque of an actuator included in the driving unit 108 . Or/additionally, the control command may include a command for controlling at least one of a speed and a torque of a motor included in the driving unit 108 .
전술한 단계(510)에서의 로봇(100)으로부터의 미가공 데이터의 수신과, 단계(530)에서의 로봇(100)으로의 제어 명령의 송신은 로봇(100)의 무선 통신부(102)와 로봇 제어 시스템(120)의 무선 통신부(310) 간의 통신에 따라 수행될 수 있다.The reception of the raw data from the robot 100 in the above-described step 510 and the transmission of the control command to the robot 100 in the step 530 are performed with the wireless communication unit 102 of the robot 100 and the robot control. It may be performed according to communication between the wireless communication units 310 of the system 120 .
따라서, 실시예에서는, 로봇(100)의 제어를 위한 제어 루프를 구현함에 있어서 로봇(100)을 제어하기 위한 저수준의 제어 명령을 생성하는 컨트롤러를 로봇(100)의 원격지인 로봇 제어 시스템(120)에 배치하고 무선 통신을 제어 루프에 추가시킴으로써, 저수준 제어 명령을 생성하기 위한 대부분의 연산이 (로봇(100)이 아니라) 로봇 제어 시스템(120) 측에서 수행될 수 있도록 할 수 있다. 즉, 실시예에서는 센서부(106) - 컨트롤러 - 구동부(108)로 이루어지는 제어 루프가 로봇(100) 외부에서 구현될 수 있다. Accordingly, in the embodiment, in implementing a control loop for controlling the robot 100 , a controller that generates a low-level control command for controlling the robot 100 is used as a remote location of the robot 100 , the robot control system 120 . , and adding wireless communication to the control loop, it is possible to allow most of the operations to generate low-level control commands to be performed on the side of the robot control system 120 (rather than on the robot 100). That is, in the embodiment, a control loop consisting of the sensor unit 106 - the controller - the driving unit 108 may be implemented outside the robot 100 .
실시예에서는, 로봇(100)의 로컬리제이션, 센싱 데이터 퓨전, 이미지 처리 및 (오브젝트) 인식, 기타 센싱 데이터 처리(환경 정보 추출 및 로봇의 상태(위치 포함) 결정을 위한 처리)가 로봇 제어 시스템(120) 측에서 수행될 수 있다. 또한, 계획 프로세스 - 지도, 로봇(100)의 정보, (서비스와 관련된) 작업 정보 등에 기반한 이동 계획 수립 -과, 제어 프로세스 - 처리된 센싱 데이터와 이동 계획에 기반한 제어 명령의 생성 -이 모두 로봇 제어 시스템(120) 측에서 수행될 수 있다. 실시예를 통해서는 저수준의 제어 명령을 통해 구동부(108)의 종류에 따라 속도 제어, 위치 제어, 토크 제어 등이 다양하게 이루어질 수 있다. In the embodiment, localization of the robot 100, sensing data fusion, image processing and (object) recognition, and other sensing data processing (processing for extracting environmental information and determining the state (including position) of the robot) are performed by the robot control system (120) can be performed on the side. In addition, the planning process - establishment of a movement plan based on the map, information of the robot 100, work information (related to the service), etc. - and the control process - generation of a control command based on the processed sensing data and movement plan - are both robot control This may be performed on the system 120 side. In the embodiment, speed control, position control, torque control, etc. may be variously performed according to the type of the driving unit 108 through a low-level control command.
로봇(100)을 제어하기 위한 저수준의 제어 명령을 생성하는 보다 구체적인 방법에 대해서는 후술될 도 6을 참조하여 더 자세하게 설명한다.A more specific method of generating a low-level control command for controlling the robot 100 will be described in more detail with reference to FIG. 6 to be described later.
한편, 로봇(100)의 입장에서는, 제어 명령이 소정의 제1 시간 내에 로봇(100)에 수신되지 않거나, 제어 명령이 소정의 제2 시간 이상 로봇(100)에 대해 송신되지 않는 경우, 로봇(100)은 대기 모드로 전환될 수 있다. 상기 제1 시간과 제2 시간은 동일할 수도 있으며, 서로 상이하게 설정될 수도 있으며, 각각 로봇 제어 시스템(120) 또는 로봇(100)의 관리자에 의해 설정될 수 있다. 또는, 로봇(100)으로부터 소정의 거리 이내에서 오브젝트가 검출되는 경우, 로봇(100)은 대기 모드로 전환될 수 있다. 이 때, 로봇(100)은 로봇 제어 시스템(120)으로부터의 제어 명령을 무시하고(즉, 제어 명령과 관계 없이) 대기 모드로 전환될 수 있다. On the other hand, from the standpoint of the robot 100, when the control command is not received by the robot 100 within the first predetermined time period, or when the control command is not transmitted to the robot 100 for the second predetermined time period or longer, the robot ( 100) can be switched to a standby mode. The first time and the second time may be the same, may be set differently, and may be set by the robot control system 120 or the manager of the robot 100, respectively. Alternatively, when an object is detected within a predetermined distance from the robot 100 , the robot 100 may be switched to a standby mode. At this time, the robot 100 may ignore the control command from the robot control system 120 (ie, regardless of the control command) and switch to the standby mode.
이와 같은 로봇(100)의 동작에 따라, 로봇(100) 및 로봇(100) 주변의 최소한의 안전이 확보될 수 있다. 즉, 로봇(100) 및 로봇(100) 주변의 안전을 도모하기 위해, 로봇(100)은 주기적으로(또는 일정 시간 이상) 제어 명령이 수신되지 않는 경우에는, 작동을 정지(또는 대기 모드로 전환)할 수 있다.According to the operation of the robot 100 as described above, the robot 100 and the minimum safety around the robot 100 may be secured. That is, in order to promote safety around the robot 100 and the robot 100, the robot 100 stops operation (or switches to a standby mode) when a control command is not received periodically (or over a certain period of time). )can do.
예컨대, 로봇(100)에 대해 허용 지연 시간 범위 이상 제어 명령이 수신되지 않으면, 로봇(100)은 작동을 정지할 수 있다. For example, if a control command is not received over the allowable delay time range for the robot 100 , the robot 100 may stop operating.
다른 예로서, 로봇(100)이 포함하고 있는 센서부(106)의 센서(예컨대, 거리 센서)에서, 소정의 거리 내에 오브젝트가 검출되면(오브젝트의 센싱이 검지)될 경우 로봇(100)은 제어 명령과는 관계 없이 선제적으로 작동을 정지할 수 있다. 이 때, 로봇(100)의 제어부(104)는 소정의 거리 내에 존재하는 오브젝트를 검출하기 위한 최소한의 구성(필터 등)을 포함하게 될 수 있다.As another example, when the sensor (eg, distance sensor) of the sensor unit 106 included in the robot 100 detects an object within a predetermined distance (sensing of the object), the robot 100 controls The operation can be stopped preemptively regardless of the command. In this case, the control unit 104 of the robot 100 may include a minimum configuration (filter, etc.) for detecting an object existing within a predetermined distance.
상기와 같이 실시예에서는, 로봇 제어 시스템(120)을 통해 로봇(100)을 제어함에 있어서 로봇(100) 및 로봇(100) 주변의 최소한의 안전이 담보될 수 있다. In the embodiment as described above, in controlling the robot 100 through the robot control system 120 , the robot 100 and the minimum safety around the robot 100 can be guaranteed.
이상 도 1 내지 도 4를 참조하여 전술된 기술적 특징에 대한 설명은, 도 5에 대해서도 그대로 적용될 수 있으므로 중복되는 설명은 생략한다. The description of the technical features described above with reference to FIGS. 1 to 4 can be applied to FIG. 5 as it is, and thus a redundant description will be omitted.
도 6은 일 예에 따른, 로봇 제어 시스템 측에서 로봇의 구동부를 제어하기 위한 제어 명령을 생성하는 방법을 나타내는 흐름도이다.6 is a flowchart illustrating a method of generating a control command for controlling a driving unit of a robot in a robot control system, according to an example.
단계(610)에서, 로봇 제어 시스템(120)은 로봇(100)으로부터 수신된 로우 센싱 데이터를 전처리할 수 있다. 도 4를 참조하여 전술한 전처리부(410)가 이러한 로우 센싱 데이터의 전처리를 수행할 수 있다. In step 610 , the robot control system 120 may pre-process the raw sensing data received from the robot 100 . The preprocessor 410 described above with reference to FIG. 4 may preprocess the raw sensing data.
예컨대, 로우 센싱 데이터는 센서부(106)의 카메라에 의해 획득된 이미지 또는 센서부의 복수의 센서들(일례로, 거리 센서들)에 의해 획득된 다수의 센싱 데이터를 포함할 수 있다. 로우 센싱 데이터를 위한 전처리는, 이미지 내에서 오브젝트의 인식이 가능하도록 리파인(refine) 처리를 수행하는 작업을 포함할 수 있다. 일례로, 이미지의 전처리는 이미지로부터 장애물, 사람, 로봇 등과 같은 오브젝트가 인식 가능하도록 이미지를 개선하는 작업을 포함할 수 있다. 또는, 로우 센싱 데이터를 위한 전처리는 로봇(100)의 상태(예컨대, 위치, 자세, 동작 상태 등) 또는 로봇(100)이 주행하는 환경의 상태(예컨대, 주변 오브젝트의 위치, 주변의 오브젝트 분포 상황 등)를 결정하기 위해 다수의 센싱 데이터를 퓨전(fusion)(즉, 다수의 센싱 데이터를 결합, 가공 및 종합)하는 것을 포함할 수 있다. For example, the raw sensing data may include an image acquired by a camera of the sensor unit 106 or a plurality of sensing data acquired by a plurality of sensors (eg, distance sensors) of the sensor unit. The pre-processing for the raw sensing data may include performing a refine process to enable recognition of an object in an image. For example, the pre-processing of the image may include improving the image so that an object such as an obstacle, a person, a robot, or the like can be recognized from the image. Alternatively, the pre-processing for the raw sensing data is the state of the robot 100 (eg, position, posture, operation state, etc.) or the state of the environment in which the robot 100 travels (eg, the position of the surrounding object, the surrounding object distribution situation). and the like) of fusion (ie, combining, processing, and synthesizing a plurality of sensing data) of a plurality of sensed data to determine.
전처리부(410)는 수신된 로우 센싱 데이터를 필터링하여 노이즈 또는 아웃라이어를 제거하는 작업을 통해 로우 센싱 데이터를 전처리할 수 있다. The preprocessor 410 may preprocess the raw sensed data by filtering the received raw sensed data to remove noise or outliers.
또한, 전처리부(410)는 센싱 데이터가 포함하는 센싱 데이터의 시간 관련 메타데이터(예컨대, 타임스탬프(timestamp), 라운드-트립 시간(round-trip time) 등)에 기반하여, (로봇(100)의 지난 상태 정보 및 센싱 데이터 또는 상태 정보의 히스토리를 사용하여) 시간 기반의 센싱 데이터를 보정할 수 있다. 또한, 전처리부(410)는 센싱 데이터에 대해 무선 통신부(310)와 무선 통신부(102) 간의 무선 통신에 의해 발생하는 지연(latency)을 보상하도록 하는 처리를 수행할 수 있다. In addition, the preprocessor 410 is based on the time-related metadata (eg, timestamp, round-trip time, etc.) of the sensing data included in the sensing data, (robot 100) Time-based sensing data can be corrected (using the past state information and sensed data or the history of state information). In addition, the pre-processing unit 410 may perform a process to compensate for the latency caused by wireless communication between the wireless communication unit 310 and the wireless communication unit 102 for the sensed data.
단계(620)에서, 로봇 제어 시스템(120)은 로우 센싱 데이터에 기반하여 로봇(100)의 상태 정보 및 로봇(100)이 주행하는 환경의 환경 정보 중 적어도 하나의 정보를 획득할 수 있다. 도 4를 참조하여 전술한 로봇 상태 및 환경 인식 처리부(420)가 단계(620)을 수행할 수 있다. 상태 정보 및/또는 환경 정보의 획득을 위해 사용되는 로우 센싱 데이터는 단계(610)에 따라 전처리된 로우 센싱 데이터를 나타낼 수 있다. 로봇 상태 및 환경 인식 처리부(420)는 이러한 로봇(100)으로부터의 센싱 데이터에 기반하여 로봇(100)의 실시간의(또는 거의 실시간의) 상태 정보 및/또는 환경 정보를 획득할 수 있다. In operation 620 , the robot control system 120 may acquire at least one of the state information of the robot 100 and the environment information of the environment in which the robot 100 travels based on the raw sensing data. The robot state and environment recognition processing unit 420 described above with reference to FIG. 4 may perform step 620 . The raw sensed data used to obtain the state information and/or the environment information may represent the raw sensed data preprocessed in step 610 . The robot state and environment recognition processing unit 420 may acquire real-time (or near real-time) state information and/or environment information of the robot 100 based on the sensed data from the robot 100 .
로봇 상태 및 환경 인식 처리부(420)는 센서 퓨전(즉, 다수의 센서들로부터 수집된 센싱 데이터들의 퓨전)을 이용하여 로봇(100)의 주변의 로컬 정보를 작성하는 역할을 담당할 수 있다. The robot state and environment recognition processing unit 420 may play a role of creating local information around the robot 100 using sensor fusion (ie, fusion of sensing data collected from a plurality of sensors).
로봇(100)의 상태 정보는 예컨대, 로봇(100)(또는 구동부(108))의 위치, 자세 및 동작 상태(속도, 토크 등) 중 적어도 하나를 포함할 수 있다. 환경 정보는 로봇(100)이 주행하는 환경과 관련하여, 예컨대, 로봇(100)의 주변 오브젝트의 위치 및 주변의 오브젝트 분포 상황 중 적어도 하나를 포함할 수 있다.The state information of the robot 100 may include, for example, at least one of a position, an attitude, and an operation state (speed, torque, etc.) of the robot 100 (or the driving unit 108 ). The environment information may include, for example, at least one of a location of an object around the robot 100 and a distribution situation of a surrounding object in relation to an environment in which the robot 100 is driven.
단계(622)에서처럼, 로봇 상태 및 환경 인식 처리부(420)는 로봇(100)으로부터의 센싱 데이터에 기반하여, 로봇(100)의 주변의 로컬 맵을 생성하는 것 및/또는 (카메라 또는 거리 센서로부터의) 센싱 데이터에 기반하여, 로봇(100)의 주변의 오브젝트를 인식하는 것을 수행할 수 있다. 로컬 맵의 생성에 있어서, 로봇 상태 및 환경 인식 처리부(420)는 로봇(100)이 주행하는 경로 또는 이동 계획(motion plan)을 레퍼런스 데이터로서 더 사용할 수 있다. As in step 622 , the robot state and environment recognition processing unit 420 generates a local map around the robot 100 based on the sensed data from the robot 100 and/or (from a camera or distance sensor). ) based on the sensing data, it is possible to recognize an object around the robot 100 . In generating the local map, the robot state and environment recognition processing unit 420 may further use a path or a motion plan on which the robot 100 travels as reference data.
로봇 상태 및 환경 인식 처리부(420)는 생성된 로컬 맵 및/또는 오브젝트의 인식 결과 중 적어도 하나에 기반하여, 상태 정보 및/또는 환경 정보를 획득할 수 있다. The robot state and environment recognition processing unit 420 may acquire state information and/or environment information based on at least one of the generated local map and/or the recognition result of the object.
단계(630)에서, 로봇 제어 시스템(120)은 단계(620)에서 획득된 정보에 기반하여 구동부(108)를 위한 제어 명령을 생성할 수 있다. 도 4를 참조하여 전술한 로봇 제어부(430)가 단계(630)을 수행할 수 있다. 로봇 제어부(430)는 로봇(100)의 상태 정보 및 환경 정보에 기반하여, 로봇(100)의 구동부(108)를 적절하게 제어하기 위한 저수준 제어 명령을 생성할 수 있다.In step 630 , the robot control system 120 may generate a control command for the driving unit 108 based on the information obtained in step 620 . The robot controller 430 described above with reference to FIG. 4 may perform step 630 . The robot control unit 430 may generate a low-level control command for appropriately controlling the driving unit 108 of the robot 100 based on the state information and the environment information of the robot 100 .
아래에서, 로봇(100)의 자율 주행을 위해 로봇(100)의 이동을 제어하기 위한 제어 명령을 생성하는 경우에 대해 더 자세하게 설명한다. Hereinafter, a case of generating a control command for controlling the movement of the robot 100 for autonomous driving of the robot 100 will be described in more detail.
로봇 제어부(430)는 로봇(100)과 연관된 이동 계획(motion plan), 로봇(100) 상태 정보 및 환경 정보에 기반하여, 로봇(100)이 이동 계획을 따르면서 환경에서 식별되는 장애물을 회피하도록 하는 구동부(108)를 위한 제어 명령을 생성할 수 있다.The robot control unit 430 is configured to avoid obstacles identified in the environment while the robot 100 follows the movement plan, based on a motion plan associated with the robot 100, state information of the robot 100, and environment information. A control command for the driving unit 108 may be generated.
예컨대, 상기 이동 계획은 로봇(100)이 주행해야 하는 경로에 관한 정보를 포함할 수 있다. 로봇 제어부(430)는 주행 계획부(440)로부터 이러한 이동 계획을 획득할 수 있다. 주행 계획부(440)는 전역 주행 계획부로서, 로봇(100)을 위한 전역 경로 계획을 작성하는 역할을 하며, 공간에 대해 구축된 노드 맵을 활용하여 경로를 작성할 수도 있다. 즉, 로봇 제어부(430)는 제어 명령을 생성함에 있어서, 로봇(100)이 주행할 경로를 포함하는 경로(이동) 계획을 참조할 수 있다. 상기 상태 정보는 로봇(100)의 위치를 포함할 수 있다. 로봇(100)의 위치는 (센싱 데이터가 수집된 시점의) 현재의 위치에 해당할 수 있다. 상기 환경 정보는 로봇(100)의 주변의 오브젝트에 관한 정보를 포함할 수 있다. 오브젝트에 관한 정보는 로봇(100)의 주변의 사람, 로봇 또는 장애물의 위치 정보를 포함할 수 있다. For example, the movement plan may include information on a path through which the robot 100 should travel. The robot control unit 430 may obtain such a movement plan from the travel planning unit 440 . The travel planner 440 is a global travel planner, and serves to create a global route plan for the robot 100 , and may create a route by utilizing the node map constructed for the space. That is, when generating the control command, the robot controller 430 may refer to a path (movement) plan including a path for the robot 100 to travel. The state information may include a position of the robot 100 . The position of the robot 100 may correspond to a current position (at the time the sensing data is collected). The environment information may include information about objects around the robot 100 . The information about the object may include position information of a person, a robot, or an obstacle in the vicinity of the robot 100 .
로봇 제어부(430)는 제어 명령으로서 로봇(100)이 (이동 계획이 나타내는) 경로를 따라 이동하고, (환경 정보 및 상태 정보에 기반하여) 주변의 장애물을 회피하도록, 구동부(108)가 포함하는 모터 및 액추에이터 중 적어도 하나를 피드백 제어하기 위한 명령을 생성할 수 있다. The robot control unit 430 controls the robot 100 as a control command so that the robot 100 moves along the path (represented by the movement plan) and avoids the surrounding obstacles (based on the environment information and status information). A command for feedback control of at least one of the motor and the actuator may be generated.
제어 명령을 통해, 로봇 제어부(430)는 전역 경로 계획으로부터 로봇(100)을 현재의 위치로부터 다음의 경유지(웨이포인트)로 이동시킬 수 있으며, 센싱 데이터로부터 검지된 로봇(100) 주변의 장애물을 회피하도록 로봇을 제어할 수 있다. 또한, 로봇 제어부(430) 로봇(100)이 취해야 할 최적 속도 계획을 수립하고, 로봇(100)의 구동부(108)에 대해 이를 위한 제어 명령을 송신할 수 있다.Through the control command, the robot control unit 430 can move the robot 100 from the current position to the next waypoint (waypoint) from the global route plan, and the obstacles around the robot 100 detected from the sensing data. You can control the robot to avoid it. In addition, the robot control unit 430 may establish an optimal speed plan to be taken by the robot 100 , and transmit a control command for this to the driving unit 108 of the robot 100 .
한편, 생성된 제어 명령은 저수준 제어 명령으로 로봇(100)의 구동부(108)로 바로 입력되어 구동부(108)를 제어할 수 있다. 또는, 로봇(100) 측에서의 (예컨대, 구동부 드라이버에서의 최소한의) 보정 처리 후 구동부(108)입력될 수 있다. 보정 처리는 로봇 제어 시스템(120)으로부터 수신된 제어 명령을 구동부(108)가 인식할 수 있도록 하는 포맷으로의 가공일 수 있다. Meanwhile, the generated control command may be directly input to the driving unit 108 of the robot 100 as a low-level control command to control the driving unit 108 . Alternatively, the driving unit 108 may be input after correction processing (eg, minimal in the driving unit driver) on the robot 100 side. The correction processing may be processing into a format that allows the driving unit 108 to recognize the control command received from the robot control system 120 .
아래에서는, 도 7을 참조하여, 로봇(100)과 로봇 제어 시스템(120) 간의 무선 통신에 기반하여, 로봇 제어 시스템(120)이 저수준 제어 명령을 통해 로봇(100)의 구동부(108)를 제어함으로써, 로봇(100)이 자율 주행하는 방법을 나타낸다.Below, with reference to FIG. 7 , based on wireless communication between the robot 100 and the robot control system 120 , the robot control system 120 controls the driving unit 108 of the robot 100 through a low-level control command. This shows how the robot 100 autonomously travels.
도시된 것처럼, 로봇(100)의 센서부(106)는 로봇(100)의 상태 파악 및 환경 인식을 위한 센싱 데이터를 수집할 수 있고(①), 수집된 로우 센싱 데이터를 무선 통신을 통해 로봇 제어 시스템(120)으로 송신할 수 있다(②). 로봇 제어 시스템(120)은 로우 센싱 데이터에 기반하여(로우 센싱 데이터를 전처리 한 후), 로봇(100)의 상태를 파악하고 로봇(100)이 주행하는 환경을 인식할 수 있다(③). 로봇 제어 시스템(120)은 로봇(100)의 상태와 환경 정보에 기반하여, 로봇(100)의 경로 계획을 참조하여 구동부(108)를 제어하기 위한 제어 명령을 생성할 수 있다(④). 로봇 제어 시스템(120)은 로봇(100)이 계획된 경로를 주행하도록 하며, 주변의 장애물을 회피할 수 있도록 하는 제어 명령을 생성하여 로봇(100)으로 송신할 수 있다(⑤). 로봇(100)은 수신된 제어 명령에 따라 구동부(108)의 모터 및/또는 액추에이터를 적절하게 제어할 수 있다(⑥). 따라서, 로봇(100)은 서비스의 제공을 위해 경로를 따라 장애물을 회피하면서 자율 주행할 수 있다. As shown, the sensor unit 106 of the robot 100 can collect sensing data for understanding the state of the robot 100 and recognizing the environment (①), and control the robot through wireless communication with the collected raw sensing data. It can be transmitted to the system 120 (②). The robot control system 120 may determine the state of the robot 100 based on the raw sensing data (after preprocessing the raw sensing data) and recognize the environment in which the robot 100 runs (③). The robot control system 120 may generate a control command for controlling the driving unit 108 with reference to the path plan of the robot 100 based on the state and environment information of the robot 100 (④). The robot control system 120 may generate a control command to allow the robot 100 to travel on a planned path and to avoid surrounding obstacles and transmit it to the robot 100 (⑤). The robot 100 may appropriately control the motor and/or actuator of the driving unit 108 according to the received control command (⑥). Accordingly, the robot 100 may autonomously travel while avoiding obstacles along a path to provide a service.
이상 도 1 내지 도 5를 참조하여 전술된 기술적 특징에 대한 설명은, 도 6 및 도 7에 대해서도 그대로 적용될 수 있으므로 중복되는 설명은 생략한다.The description of the technical features described above with reference to FIGS. 1 to 5 can be applied to FIGS. 6 and 7 as it is, and thus a redundant description will be omitted.
도 8은 일 실시예에 따른, 로봇 제어 모델을 생성하여 로봇을 제어하는 방법을 나타내는 흐름도이다. 8 is a flowchart illustrating a method of controlling a robot by generating a robot control model, according to an embodiment.
도 8을 참조하여, 로봇(100)에 대해 로봇과 연관된 로봇 제어 모델을 구축하고, 이를 사용하여 로봇(100)을 제어하는 방법에 대해 설명한다. Referring to FIG. 8 , a method of constructing a robot control model associated with the robot for the robot 100 and controlling the robot 100 using the model will be described.
단계(810)에서, 로봇 제어 시스템(120)(프로세서(320))은 로봇(100)의 제어가 요청된 때, 해당 로봇(100)에 대해 기 정의된 정보에 기반하여 로봇(100)을 제어하기 위한 로봇 제어 모델을 생성할 수 있다.In step 810 , the robot control system 120 (processor 320 ) controls the robot 100 based on information predefined for the robot 100 when the control of the robot 100 is requested. You can create a robot control model for
단계(820)에서, 로봇 제어 시스템(120)은 생성된 로봇 제어 모델에 기반하여 로봇(100)의 상태를 추정할 수 있다. In step 820 , the robot control system 120 may estimate the state of the robot 100 based on the generated robot control model.
단계(830)에서, 로봇 제어 시스템(120)은 로봇 제어 모델에 의해 추정된 로봇(100)의 상태에 기반하여, 로봇(100)의 구동부(108)를 제어하기 위한 제어 명령을 생성할 수 있다. 생성되는 제어 명령은 전술한 저수준 제어 명령을 포함할 수 있다. In step 830 , the robot control system 120 may generate a control command for controlling the driving unit 108 of the robot 100 based on the state of the robot 100 estimated by the robot control model. . The generated control command may include the aforementioned low-level control command.
즉, 로봇 제어 모델은 로봇(100)의 상태를 추정하고, 추정된 로봇(100)의 상태에 기반하여, 로봇(100)의 구동부를 제어하기 위한 제어 명령을 생성하도록 구성될 수 있다.That is, the robot control model may be configured to estimate the state of the robot 100 and generate a control command for controlling the driving unit of the robot 100 based on the estimated state of the robot 100 .
여기서, 단계(810 내지 830)에 의해 제어되는 로봇은 도 1 내지 도 7을 참조하여 전술한 로봇(100)과는 상이한 로봇이거나, 도 1 내지 도 7을 참조하여 전술한 로봇(100)에 더하여 추가로 제어되는 로봇일 수 있다. Here, the robot controlled by steps 810 to 830 is a robot different from the robot 100 described above with reference to FIGS. 1 to 7 , or in addition to the robot 100 described above with reference to FIGS. 1 to 7 . It may further be a controlled robot.
말하자면, 로봇 제어 시스템(120)은 전술한 피드백 제어 방식으로 로봇(100)을 제어할 수 있을 뿐만 아니라, 로봇(100) 및/또는 다른 로봇에 대해 상기와 같은 로봇 제어 모델을 구축하여 로봇 제어 모델을 통해 로봇(100) 및/또는 다른 로봇을 제어할 수도 있다. In other words, the robot control system 120 can not only control the robot 100 in the above-described feedback control method, but also build a robot control model as described above for the robot 100 and/or other robots to create a robot control model. It is also possible to control the robot 100 and / or other robots through.
로봇 제어 시스템(120)은 (관제 시스템 또는 외부 서비스 인터페이스) 로부터 새로운 로봇의 제어에 대한 요청을 수신할 수 있고, 이에 따라, 로봇 제어 모델 정보 DB로부터 해당 로봇에 대한 정보를 획득하여 로봇을 제어하기 위한 로봇 제어 모델을 구성(또는 동적으로 생성)할 수 있다. The robot control system 120 may receive a request for control of a new robot from (control system or external service interface), and accordingly, obtain information about the corresponding robot from the robot control model information DB to control the robot You can construct (or dynamically create) a robot control model for
로봇 제어 모델 정보 DB는 제어가 요청된 로봇에 대해 미리 정의된 정보를 포함하고 있을 수 있다. 예컨대, 로봇 제어 모델을 생성하기 위해 사용되는 (로봇 제어 모델 정보 DB에서 저장 및 관리되고 있는) 로봇에 대해 기 정의된 정보는, 로봇이 포함하는 센서부 및 구동부의 사양 정보, 로봇의 물리적인 형태 정보 및 로봇과 연관된 동역학 모델(dynamics model)을 포함할 수 있다. The robot control model information DB may include predefined information about the robot for which control is requested. For example, the predefined information about the robot (stored and managed in the robot control model information DB) used to create the robot control model includes specification information of the sensor unit and the driving unit included in the robot, and the physical shape of the robot. information and a dynamics model associated with the robot.
로봇 제어 시스템(120)은 상기와 같은 제어가 요청된 로봇에 대해 미리 정의된 정보를 사용하여, 해당 로봇의 상태를 추정하고, 추정된 상태에 따라 로봇을 제어하기 위한 로봇 제어 모델을 생성할 수 있다. The robot control system 120 may use predefined information about the robot for which the control is requested as described above, estimate the state of the robot, and generate a robot control model for controlling the robot according to the estimated state. have.
이러한 로봇 제어 모델을 사용하여 로봇을 제어할 경우에는, 전술한 피드백 제어에서 수반되는 로봇과 로봇 제어 시스템(120) 간의 통신에 따른 지연(latency)에 의한 오류를 줄일 수 있다. 즉, 로봇은 구축된 로봇 제어 모델에 의해 추정되는 상태에 기반하여 제어될 수 있다. When the robot is controlled using such a robot control model, it is possible to reduce errors due to latency due to communication between the robot and the robot control system 120 involved in the feedback control described above. That is, the robot may be controlled based on the state estimated by the built robot control model.
한편, 로봇 제어 모델에는 로봇의 실시간의 상태를 추정하기 위해, 가상의 로봇을 인스턴스화 해 둘 수 있고, 이러한 인스턴스화 된 가상 로봇을 실행함에 따라 제어 대상인 로봇의 상태를 추정할 수 있다. 즉, 가상 로봇에 대한 시뮬레이션에 따라 제어 대상인 로봇의 상태가 추정될 수 있다.Meanwhile, in the robot control model, a virtual robot may be instantiated in order to estimate the real-time state of the robot, and the state of the robot to be controlled may be estimated as the instantiated virtual robot is executed. That is, the state of the robot to be controlled may be estimated according to the simulation of the virtual robot.
한편, 로봇 제어 시스템(120)은 로봇이 주행하는 환경에 대한 모델을 더 생성할 수 있다. 로봇이 주행하는 환경에 대해 기 정의된 정보(예컨대, 과거에 수집된 데이터, 최신의 환경 정보 등)에 기반하여 이러한 환경 모델은 구축될 수 있다. Meanwhile, the robot control system 120 may further generate a model for an environment in which the robot travels. Such an environment model may be built based on predefined information (eg, data collected in the past, latest environmental information, etc.) about the environment in which the robot runs.
로봇 제어 시스템(120)은 요청된 로봇에 대응하는 로봇 제어 모델과 해당 로봇이 주행하는 환경에 대응하는 환경 모델에 기반하여, 환경 내에서 로봇을 제어하기 위한 적절한 제어 명령을 생성하여 로봇에게 송신할 수 있다. The robot control system 120 generates and transmits an appropriate control command for controlling the robot in the environment based on the robot control model corresponding to the requested robot and the environment model corresponding to the environment in which the robot travels. can
이와 같은 로봇 제어 모델을 사용한 로봇의 제어는 로봇이 수행하는 작업이 반복적이거나, 단순한 것과 같이 예측 가능한 경우에 수행될 수 있다. 말하자면, 무인화 창고나 공장 등과 같이 높은 수준의 예측 가능성을 가지는 공간에서, 안정적이며 결정론적인 상황에서 동작하는 로봇을 제어함에 있어서 로봇 제어 모델을 사용한 로봇의 제어가 활용될 수 있다. Control of the robot using such a robot control model may be performed when the task performed by the robot is repetitive or predictable, such as simple. In other words, in a space with a high degree of predictability, such as an unmanned warehouse or factory, the robot control using the robot control model can be utilized to control the robot operating in a stable and deterministic situation.
이상 도 1 내지 도 7을 참조하여 전술된 기술적 특징에 대한 설명은, 도 8에 대해서도 그대로 적용될 수 있으므로 중복되는 설명은 생략한다.The description of the technical features described above with reference to FIGS. 1 to 7 can be applied to FIG. 8 as it is, and thus a redundant description will be omitted.
도 9는 일 예에 따른, 로봇 브레인을 생성하여 로봇을 제어하는 방법을 나타내는 흐름도이다.9 is a flowchart illustrating a method of controlling a robot by generating a robot brain, according to an example.
도 1 내지 도 7을 참조하여 전술된 로봇(100)은 로봇 제어 시스템(120)의 제1 로봇 브레인에 의해 제어될 수 있다. 말하자면, 제1 로봇 브레인에 의해 전술한 단계들(510 내지 530)이 수행될 수 있다. The robot 100 described above with reference to FIGS. 1 to 7 may be controlled by the first robot brain of the robot control system 120 . In other words, the above-described steps 510 to 530 may be performed by the first robot brain.
단계(910)에서, 로봇 제어 시스템(120)(프로세서(320))은 로봇의 추가가 요청되는 경우(즉, 추가적인 로봇의 제어가 요청되는 경우), 해당 로봇을 제어하기 위한 로봇 브레인을 생성할 수 있다. 예컨대, 로봇 제어 시스템(120)(프로세서(320))은 다른 로봇의 제어가 요청된 때, 다른 로봇을 제어하기 위한 (로봇(100)을 제어하기 위한) 제1 로봇 브레인과 논리적으로 구분되는 제2 로봇 브레인을 구성(생성)할 수 있다. 다른 로봇의 제어에 있어서, 다른 로봇으로부터의 미가공 데이터의 수신, 다른 로봇의 구동부를 제어하기 위한 제어 명령의 생성 및 다른 로봇의 구동부를 제어하기 위한 제어 명령의 송신은 제2 로봇 브레인을 통해 수행될 수 있다. In step 910, the robot control system 120 (processor 320) generates a robot brain for controlling the robot when the addition of the robot is requested (that is, when the control of the additional robot is requested). can For example, the robot control system 120 (processor 320) is a first robot brain logically separated from the first robot brain for controlling the other robot (for controlling the robot 100) when the control of the other robot is requested. 2 You can configure (create) a robot brain. In the control of another robot, reception of raw data from another robot, generation of a control command for controlling a driving unit of another robot, and transmission of a control command for controlling a driving unit of another robot may be performed through the second robot brain. can
이처럼, 로봇 제어 시스템(120)은 제어가 요청되는 로봇에 대해 해당 로봇을 제어하기 위한 로봇 브레인을 동적으로 생성할 수 있다. As such, the robot control system 120 may dynamically generate a robot brain for controlling the robot for which control is requested.
단계(920)에서, 로봇 제어 시스템(120)은 생성된 로봇 브레인을 사용하여, 각 로봇을 개별적으로 제어할 수 있으며, 복수의 로봇들을 제어(조율 제어, 협력 제어 등의 멀티 로봇 제어)할 수 있다.In step 920, the robot control system 120 may control each robot individually, using the generated robot brain, and control a plurality of robots (multi-robot control such as coordination control and cooperative control). have.
로봇 브레인은 개별적인 로봇을 제어하기 위해 로봇 제어 시스템(120) 내에 정의되는 제어 단위일 수 있고, 예컨대, 도 4를 참조하여 전술된 전처리부(410), 로봇 상태 및 환경 인식 처리부(420) 및 로봇 제어부(430)를 포함하여 구성될 수 있다. The robot brain may be a control unit defined in the robot control system 120 to control an individual robot, for example, the pre-processing unit 410, the robot state and environment recognition processing unit 420 and the robot described above with reference to FIG. 4 . The controller 430 may be included.
관련하여, 도 10은, 도 10은 일 예에 따른, 로봇 브레인을 통해 로봇을 제어함에 있어서, 복수의 로봇들을 제어하는 멀티 로봇 제어 방법을 나타낸다. In relation to FIG. 10, FIG. 10 shows a multi-robot control method for controlling a plurality of robots in controlling a robot through a robot brain, according to an example.
도 10에서는, 로봇 제어 시스템(120)에 의해 제어되는 로봇들(100-1 내지 100-4)이 도시되었다. 로봇 제어 시스템(120)은 각 로봇에 1:1로 대응하여 로봇 브레인을 생성할 수 있고, 로봇 브레인들(1020)의 각각을 통해 로봇을 개별적으로 제어할 수 있다. 로봇 브레인들(1020)의 각각은 하나의 로봇을 제어하는 레이어에 해당할 수 있다. 하나의 로봇 브레인은 대응하는 로봇 브레인과 논리적으로 연결되어 있을 수 있으며, 브레인리스 로봇의 브레인에 해당할 수 있다.In FIG. 10 , robots 100 - 1 to 100 - 4 controlled by the robot control system 120 are shown. The robot control system 120 may generate a robot brain in 1:1 correspondence to each robot, and may individually control the robot through each of the robot brains 1020 . Each of the robot brains 1020 may correspond to a layer controlling one robot. One robot brain may be logically connected to a corresponding robot brain, and may correspond to a brain of a brainless robot.
로봇 브레인들(1020)은 멀티 로봇 관리부(1030)에 의해 관리될 수 있다. 예컨대, 멀티 로봇 관리부(1030)는 관제 시스템(1040)(예컨대, 외부 서비스 인터페이스)으로부터의 요청(예컨대, 서비스 제공 요청 또는 로봇 제어 요청)에 따라, 요청된 서비스를 수행하기 위한 로봇 또는 제어 요청된 로봇을 제어하기 위한 로봇 브레인을 생성할 수 있다. 또는, 멀티 로봇 관리부(1030)는 로봇 브레인들(1020) 중 제어가 불필요하게 되는 로봇에 대응하는 로봇 브레인을 제거할 수 있다. The robot brains 1020 may be managed by the multi-robot management unit 1030 . For example, the multi-robot management unit 1030 is a robot for performing a requested service or a control request according to a request (eg, a service provision request or a robot control request) from the control system 1040 (eg, an external service interface). You can create a robot brain to control the robot. Alternatively, the multi-robot management unit 1030 may remove a robot brain corresponding to a robot whose control is unnecessary among the robot brains 1020 .
이처럼, 실시예에서는 복수의 로봇들(100-1 내지 100-4)을 제어하기 위한 로봇 브레인들(1020)이 각 로봇의 제어의 필요성에 따라 동적으로 생성 및 제거될 수 있다. As such, in the embodiment, the robot brains 1020 for controlling the plurality of robots 100-1 to 100-4 may be dynamically created and removed according to the need for control of each robot.
멀티 로봇 관리부(1030)는 관제 시스템(1040)으로부터의 요청에 따라 추상화된 명령(전역 명령)을 로봇 브레인들(1020) 중 요청된 로봇에 대응하는 로봇 브레인으로 송신할 수 있고, 로봇 브레인은 전역 명령을 분석하여 대응하는 로봇으로부터 수신된 센싱 데이터에 기반하여, 해당 로봇을 제어하기 위한 (저수순) 제어 명령을 생성할 수 있다. The multi-robot management unit 1030 may transmit an abstract command (global command) according to a request from the control system 1040 to the robot brain corresponding to the requested robot among the robot brains 1020, and the robot brain Based on the sensing data received from the corresponding robot by analyzing the command, it is possible to generate a (low-order) control command for controlling the corresponding robot.
하나의 로봇 브레인은 도시된 것처럼 게이트웨이(1050)를 대응하는 로봇과 1:1로 연결될 수 있다. 이 때, 게이트웨이(1050)는 전술한 통신부(310)를 포함하거나 통신부(310)의 일부가 될 수 있다. One robot brain may be 1:1 connected to a robot corresponding to the gateway 1050 as shown. In this case, the gateway 1050 may include the above-described communication unit 310 or may be a part of the communication unit 310 .
또는, 로봇 브레인들(1020) 각각이 통신부(310) 또는 통신 기능을 가질수 있고, 대응하는 로봇과 바로(또는 직접) 연결될 수 있다. 이러한 경우, 게이트웨이(1050)는 로봇 브레인과 대응하는 로봇 간의 초기 연결에만 관여할 수 있다. 즉, 게이트웨이(1050)는 로봇 브레인과 대응하는 로봇 간의 초기 연결을 관리할 수 있다. Alternatively, each of the robot brains 1020 may have a communication unit 310 or a communication function, and may be directly (or directly) connected to a corresponding robot. In this case, the gateway 1050 may be involved only in the initial connection between the robot brain and the corresponding robot. That is, the gateway 1050 may manage the initial connection between the robot brain and the corresponding robot.
예컨대, 전술한 로봇(100)을 제어하기 위한 (로봇 브레인들(1020) 중 하나인) 제1 로봇 브레인은 로봇(100)과 로봇 제어 시스템(120)의 게이트웨이(1050)를 통해 최초로 연결되되, 최초 연결 후에는, 제1 로봇 브레인의 통신부(통신 기능)를 통해 로봇(100)과 통신할 수 있다. 한편, 전술한 다른 로봇을 제어하기 위한 (로봇 브레인들(1020) 중 하나인) 제2 로봇 브레인은 다른 로봇과 게이트웨이(1050)를 통해 최초로 연결되되, 최초 연결 후에는, 제2 로봇 브레인의 통신부(통신 기능)를 통해 다른 로봇과 통신할 수 있다.For example, the first robot brain (which is one of the robot brains 1020) for controlling the above-described robot 100 is first connected through the gateway 1050 of the robot 100 and the robot control system 120, After the initial connection, it is possible to communicate with the robot 100 through the communication unit (communication function) of the first robot brain. On the other hand, the second robot brain (which is one of the robot brains 1020) for controlling the other robot described above is first connected to another robot through the gateway 1050, and after the initial connection, the communication unit of the second robot brain (Communication function) can communicate with other robots.
말하자면, 로봇 제어 시스템(120)은 로봇 브레인들(1020) 각각에 대응하여 통신부를 갖도록 구성될 수 있으며, 로봇 브레인들(1020)이 하나의 통신부를 공유하도록 구성될 수도 있다. In other words, the robot control system 120 may be configured to have a communication unit corresponding to each of the robot brains 1020 , and the robot brains 1020 may be configured to share one communication unit.
한편, 도 10에서는 도 8을 참조하여 전술한 로봇 제어 모델(1010)이 더 도시되었다. 일례로, 로봇 제어 모델(1010)은 로봇(100-1)에 대해 구축될 수 있고, 로봇(100-1)의 구동부를 제어하기 위한 제어 명령을 생성하여, 로봇(100-1)에 송신할 수 있다. 제어 명령은 게이트웨이(1050)를 통해 로봇(100-1)으로 송신될 수 있다. 로봇 제어 모델(1010)은 도시되지 않은 로봇 제어 모델 정보 DB에 의해 구축될 수 있다. 로봇들(100-1 내지 100-4)에 대응하여 로봇 제어 모델(1010) 역시 복수 개가 구축될 수 있고, 복수의 로봇 제어 모델(1010)들은 (로봇 브레인들(1020)과 유사한 방식으로) 멀티 로봇 관리부(1030)에 의해 관리될 수 있다.Meanwhile, in FIG. 10 , the robot control model 1010 described above with reference to FIG. 8 is further illustrated. As an example, the robot control model 1010 may be built for the robot 100-1, generate a control command for controlling the driving unit of the robot 100-1, and transmit it to the robot 100-1. can The control command may be transmitted to the robot 100 - 1 through the gateway 1050 . The robot control model 1010 may be built by a robot control model information DB (not shown). In response to the robots 100-1 to 100-4, a plurality of robot control models 1010 may also be built, and a plurality of robot control models 1010 may be multiplied (in a similar manner to the robot brains 1020). It may be managed by the robot manager 1030 .
멀티 로봇 관리부(1030)에 의한 전역 명령에 따라, 로봇 브레인들(1020)이 로봇들(100-1 내지 100-4)을 제어함으로써, 로봇들(100-1 내지 100-4) 중 적어도 2 이상은 서로 연동 제어(협력 제어)될 수 있다. 예컨대, 2 이상의 로봇들은 서로 협력하여 동작하도록 제어될 수 있고, 서비스를 제공함에 있어 서로 연관된 작업들을 수행하도록 제어될 수 있다. According to a global command by the multi-robot management unit 1030, the robot brains 1020 control the robots 100-1 to 100-4, so that at least two or more of the robots 100-1 to 100-4 may be interlocked with each other (cooperative control). For example, two or more robots may be controlled to operate cooperatively with each other, and may be controlled to perform tasks related to each other in providing a service.
이처럼, 실시예에서는, 복수의 브레인리스 로봇들(100-1 내지 100-4)이 로봇 제어 시스템(120)에 의해 개별적으로 또는 서로 연동하여 제어될 수 있다. As such, in the embodiment, the plurality of brainless robots 100 - 1 to 100 - 4 may be controlled individually or in conjunction with each other by the robot control system 120 .
이상 도 1 내지 도 8을 참조하여 전술된 기술적 특징에 대한 설명은, 도 9 및 도 10에 대해서도 그대로 적용될 수 있으므로 중복되는 설명은 생략한다.The description of the technical features described above with reference to FIGS. 1 to 8 can be applied to FIGS. 9 and 10 as it is, and thus overlapping descriptions will be omitted.
이와 같이, 실시예에서는 로봇(100)을 제어하기 위한 센싱 데이터의 분석 및 처리와, 제어 명령의 생성의 동작이 모두 서버인 로봇 제어 시스템(120)에서 수행될 수 있다. 이에 따라, 로봇(100)의 제어부(104)는 GPU와 같은 복잡한 구성을 포함하지 않게 될 수 있고, 이러한 GPU와 같은 구성은 로봇 제어 시스템(120)의 프로세서(320)에만 탑재될 수 있다. As described above, in the embodiment, both the analysis and processing of sensing data for controlling the robot 100 and the generation of control commands may be performed in the robot control system 120 serving as a server. Accordingly, the control unit 104 of the robot 100 may not include a complex configuration such as a GPU, and such a configuration as the GPU may be mounted only on the processor 320 of the robot control system 120 .
한편, 실시예에 따라서는, 로봇 제어 시스템(120) 측에서는 로봇(100)을위한 최적 속도 계획이 수립되도록 하되, 해당 계획에 따른 저수준 제어는 로봇에서 수행되도록 로봇(100)과 로봇 제어 시스템(120)을 구현할 수도 있을 것이다.On the other hand, according to the embodiment, the robot control system 120 side so that the optimal speed plan for the robot 100 is established, the robot 100 and the robot control system 120 so that the low-level control according to the plan is performed by the robot ) could be implemented.
이상에서 설명된 시스템 또는 장치는 하드웨어 구성요소, 소프트웨어 구성요소 또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치 및 구성요소는, 예를 들어, 프로세서, 콘트롤러, ALU(arithmetic logic unit), 디지털 신호 프로세서(digital signal processor), 마이크로컴퓨터, FPGA(field programmable gate array), PLU(programmable logic unit), 마이크로프로세서, 또는 명령(instruction)을 실행하고 응답할 수 있는 다른 어떠한 장치와 같이, 하나 이상의 범용 컴퓨터 또는 특수 목적 컴퓨터를 이용하여 구현될 수 있다. 처리 장치는 운영 체제(OS) 및 상기 운영 체제 상에서 수행되는 하나 이상의 소프트웨어 어플리케이션을 수행할 수 있다. 또한, 처리 장치는 소프트웨어의 실행에 응답하여, 데이터를 접근, 저장, 조작, 처리 및 생성할 수도 있다. 이해의 편의를 위하여, 처리 장치는 하나가 사용되는 것으로 설명된 경우도 있지만, 해당 기술분야에서 통상의 지식을 가진 자는, 처리 장치가 복수 개의 처리 요소(processing element) 및/또는 복수 유형의 처리 요소를 포함할 수 있음을 알 수 있다. 예를 들어, 처리 장치는 복수 개의 프로세서 또는 하나의 프로세서 및 하나의 콘트롤러를 포함할 수 있다. 또한, 병렬 프로세서(parallel processor)와 같은, 다른 처리 구성(processing configuration)도 가능하다.The system or apparatus described above may be implemented as a hardware component, a software component, or a combination of a hardware component and a software component. For example, devices and components described in the embodiments may include, for example, a processor, a controller, an arithmetic logic unit (ALU), a digital signal processor, a microcomputer, a field programmable gate array (FPGA). , a programmable logic unit (PLU), microprocessor, or any other device capable of executing and responding to instructions, may be implemented using one or more general purpose or special purpose computers. The processing device may execute an operating system (OS) and one or more software applications running on the operating system. The processing device may also access, store, manipulate, process, and generate data in response to execution of the software. For convenience of understanding, although one processing device is sometimes described as being used, one of ordinary skill in the art will recognize that the processing device includes a plurality of processing elements and/or a plurality of types of processing elements. It can be seen that may include For example, the processing device may include a plurality of processors or one processor and one controller. Other processing configurations are also possible, such as parallel processors.
소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장 매체 또는 장치에 영구적으로, 또는 일시적으로 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록매체에 저장될 수 있다.The software may comprise a computer program, code, instructions, or a combination of one or more thereof, which configures a processing device to operate as desired or is independently or collectively processed You can command the device. The software and/or data may be any kind of machine, component, physical device, virtual equipment, computer storage medium or device, to be interpreted by or to provide instructions or data to the processing device. may be permanently or temporarily embody in The software may be distributed over networked computer systems and stored or executed in a distributed manner. Software and data may be stored in one or more computer-readable recording media.
실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다.The method according to the embodiment may be implemented in the form of program instructions that can be executed through various computer means and recorded in a computer-readable medium. The computer-readable medium may include program instructions, data files, data structures, etc. alone or in combination. The program instructions recorded on the medium may be specially designed and configured for the embodiment, or may be known and available to those skilled in the art of computer software. Examples of the computer-readable recording medium include magnetic media such as hard disks, floppy disks and magnetic tapes, optical media such as CD-ROMs and DVDs, and magnetic media such as floppy disks. - includes magneto-optical media, and hardware devices specially configured to store and execute program instructions, such as ROM, RAM, flash memory, and the like. Examples of program instructions include not only machine language codes such as those generated by a compiler, but also high-level language codes that can be executed by a computer using an interpreter or the like.
이상과 같이 실시예들이 비록 한정된 실시예와 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기의 기재로부터 다양한 수정 및 변형이 가능하다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.As described above, although the embodiments have been described with reference to the limited embodiments and drawings, various modifications and variations are possible by those skilled in the art from the above description. For example, the described techniques are performed in a different order than the described method, and/or the described components of the system, structure, apparatus, circuit, etc. are combined or combined in a different form than the described method, or other components Or substituted or substituted by equivalents may achieve an appropriate result.
그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 특허청구범위의 범위에 속한다.Therefore, other implementations, other embodiments, and equivalents to the claims are also within the scope of the following claims.
Claims (26)
- 로봇 제어 시스템에 의해 수행되는, 로봇을 제어하는 방법에 있어서,A method of controlling a robot, performed by a robot control system, comprising:상기 로봇으로부터 미가공 데이터를 수신하는 단계;receiving raw data from the robot;상기 수신된 미가공 데이터에 기반하여, 상기 로봇의 구동부를 제어하기 위한 제어 명령을 생성하는 단계; 및generating a control command for controlling a driving unit of the robot based on the received raw data; and상기 생성된 제어 명령을 상기 로봇으로 송신하는 단계transmitting the generated control command to the robot를 포함하고, including,상기 제어 명령은 상기 구동부로 입력되어, 상기 구동부를 제어하기 위한 저수준(low-level) 제어 명령을 포함하는, 로봇을 제어하는 방법.The control command is input to the driving unit, and includes a low-level control command for controlling the driving unit.
- 제1항에 있어서,According to claim 1,상기 구동부는 액추에이터 및 모터 중 적어도 하나를 포함하고,The driving unit includes at least one of an actuator and a motor,상기 제어 명령은 상기 액추에이터의 속도, 위치 및 토크 중 적어도 하나를 제어하기 위한 명령을 포함하거나,The control command includes a command for controlling at least one of speed, position, and torque of the actuator;상기 모터의 속도 및 토크 중 적어도 하나를 제어하기 위한 명령을 포함하는, 로봇을 제어하는 방법.A method of controlling a robot, comprising instructions for controlling at least one of a speed and a torque of the motor.
- 제2항에 있어서,3. The method of claim 2,상기 제어 명령은 상기 액추에이터 또는 상기 모터를 피드백 제어하기 위한 명령을 포함하는, 로봇을 제어하는 방법.The method of controlling a robot, wherein the control command includes a command for feedback control of the actuator or the motor.
- 제1항에 있어서,According to claim 1,상기 미가공 데이터는 상기 로봇의 센서부에 의해 획득된 로우(raw) 센싱 데이터를 포함하는, 로봇을 제어하는 방법.The raw data includes raw sensing data obtained by a sensor unit of the robot, the method of controlling a robot.
- 제4항에 있어서,5. The method of claim 4,상기 제어 명령을 생성하는 단계는,The step of generating the control command comprises:상기 로우 센싱 데이터를 전처리하는 단계pre-processing the raw sensing data를 포함하고, including,상기 로우 센싱 데이터는 상기 센서부의 카메라에 의해 획득된 이미지 또는 상기 센서부의 복수의 센서들에 의해 획득된 다수의 센싱 데이터를 포함하고, The raw sensing data includes an image obtained by the camera of the sensor unit or a plurality of sensing data obtained by a plurality of sensors of the sensor unit,상기 전처리는, The pretreatment is상기 이미지 내에서 오브젝트의 인식이 가능하도록 리파인(refine) 처리를 수행하는 것을 포함하거나, Including performing refinement processing to enable recognition of an object in the image, or상기 로봇의 상태 또는 상기 로봇이 주행하는 환경의 상태를 결정하기 위해 상기 다수의 센싱 데이터를 퓨전(fusion)하는 것을 포함하는, 로봇을 제어하는 방법.A method of controlling a robot, comprising fusion of the plurality of sensed data to determine the state of the robot or the state of the environment in which the robot travels.
- 제4항에 있어서,5. The method of claim 4,상기 제어 명령을 생성하는 단계는,The step of generating the control command comprises:상기 로우 센싱 데이터에 기반하여, 상기 로봇의 상태 정보 및 상기 로봇이 주행하는 환경의 환경 정보 중 적어도 하나의 정보를 획득하는 단계; 및acquiring at least one information of the state information of the robot and environmental information of an environment in which the robot is driven, based on the raw sensing data; and상기 획득된 정보에 기반하여 상기 구동부를 제어하기 위한 상기 제어 명령을 생성하는 단계generating the control command for controlling the driving unit based on the obtained information를 포함하는, 로봇을 제어하는 방법.A method of controlling a robot, comprising:
- 제6항에 있어서,7. The method of claim 6,상기 획득하는 단계는, The obtaining step isi) 상기 로우 센싱 데이터에 기반하여, 상기 로봇의 주변의 로컬 맵을 생성하는 단계 및 ii) 상기 로우 센싱 데이터에 기반하여, 상기 로봇의 주변의 오브젝트를 인식하는 단계i) generating a local map around the robot based on the raw sensing data; and ii) recognizing an object around the robot based on the raw sensing data.중 적어도 하나를 포함하고,comprising at least one of상기 로컬 맵 및 상기 오브젝트의 인식 결과 중 적어도 하나에 기반하여, 상기 적어도 하나의 정보를 획득하는, 로봇을 제어하는 방법.Based on at least one of the local map and the recognition result of the object, the method of controlling a robot to obtain the at least one piece of information.
- 제6항에 있어서,7. The method of claim 6,상기 제어 명령은 상기 로봇의 자율 주행을 위해 상기 로봇의 이동을 제어하기 위한 제어 명령이고, The control command is a control command for controlling the movement of the robot for autonomous driving of the robot,상기 제어 명령을 생성하는 단계는,The step of generating the control command comprises:상기 로봇과 연관된 이동 계획(motion plan), 상기 상태 정보 및 상기 환경 정보에 기반하여, 상기 로봇이 상기 이동 계획을 따르고 상기 환경에서의 장애물을 회피하도록 하는 상기 구동부를 위한 제어 명령을 생성하는, 로봇을 제어하는 방법.Based on a motion plan associated with the robot, the status information and the environment information, the robot generates a control command for the drive unit to cause the robot to follow the movement plan and avoid obstacles in the environment. how to control it.
- 제8항에 있어서,9. The method of claim 8,상기 이동 계획은 상기 로봇이 주행해야 하는 경로에 관한 정보를 포함하고, The movement plan includes information about the path the robot must travel,상기 상태 정보는 상기 로봇의 위치를 포함하고,The state information includes the position of the robot,상기 환경 정보는 상기 로봇의 주변의 오브젝트에 관한 정보를 포함하고,The environment information includes information about objects around the robot,상기 제어 명령은, 상기 로봇이 상기 경로를 따라 이동하고 상기 장애물을 회피하도록, 상기 구동부가 포함하는 모터 및 액추에이터 중 적어도 하나를 피드백 제어하기 위한 명령을 포함하는, 로봇을 제어하는 방법.The control command includes a command for feedback control of at least one of a motor and an actuator included in the driving unit so that the robot moves along the path and avoids the obstacle.
- 제4항에 있어서, 5. The method of claim 4,상기 로우(raw) 센싱 데이터는 상기 센서부로부터 최초로 수집된 센싱 데이터가 상기 로봇 측에서 일차적으로 전처리된 것이고, The raw sensing data is that the sensing data first collected from the sensor unit is primarily pre-processed on the robot side,상기 제어 명령은 상기 로봇 측에서의 보정 처리 후 상기 구동부로 입력되는, 로봇을 제어하는 방법.The method of controlling the robot, wherein the control command is input to the driving unit after correction processing on the robot side.
- 제1항에 있어서,According to claim 1,상기 로봇의 무선 통신부와 상기 로봇 제어 시스템의 무선 통신부 간의 통신에 따라, According to the communication between the wireless communication unit of the robot and the wireless communication unit of the robot control system,상기 로봇으로부터 상기 미가공 데이터가 수신되고, receiving the raw data from the robot;상기 로봇으로 상기 제어 명령이 송신되는, 로봇을 제어하는 방법.The method for controlling a robot, wherein the control command is transmitted to the robot.
- 제1항에 있어서,According to claim 1,상기 로봇은, 수신된 제어 명령을 해석하는 프로세스를 수행하지 않고, 상기 로봇 제어 시스템으로부터의 수신되는 상기 저수준 제어 명령을 실행하여 상기 구동부를 제어하는 브레인리스(brainless) 로봇인, 로봇을 제어하는 방법. The robot is a brainless robot that controls the driving unit by executing the low-level control command received from the robot control system without performing a process of interpreting the received control command. .
- 제1항에 있어서, According to claim 1,다른 로봇의 제어가 요청된 때, 상기 다른 로봇에 대해 기 정의된 정보에 기반하여 상기 다른 로봇을 제어하기 위한 로봇 제어 모델을 생성하는 단계;generating a robot control model for controlling the other robot when the control of the other robot is requested, based on the information predefined for the other robot;상기 로봇 제어 모델에 기반하여 상기 다른 로봇의 상태를 추정하는 단계; 및estimating the state of the other robot based on the robot control model; and상기 추정된 다른 로봇의 상태에 기반하여, 상기 다른 로봇의 구동부를 제어하기 위한 제어 명령을 생성하는 단계generating a control command for controlling the driving unit of the other robot based on the estimated state of the other robot를 더 포함하는, 로봇을 제어하는 방법.Further comprising, a method of controlling a robot.
- 제13항에 있어서, 14. The method of claim 13,상기 로봇 제어 모델을 생성하기 위해 사용되는 상기 다른 로봇에 대해 기 정의된 정보는, The predefined information about the other robot used to generate the robot control model is,상기 다른 로봇이 포함하는 센서부 및 구동부의 사양 정보, 상기 다른 로봇의 물리적인 형태 정보 및 상기 다른 로봇과 연관된 동역학 모델(dynamics model)을 포함하는, 로봇을 제어하는 방법. A method for controlling a robot, including specification information of a sensor unit and a driving unit included in the other robot, physical shape information of the other robot, and a dynamics model associated with the other robot.
- 제1항에 있어서, According to claim 1,상기 로봇은 상기 로봇 제어 시스템의 제1 로봇 브레인에 의해 제어되고, The robot is controlled by the first robot brain of the robot control system,상기 제1 로봇 브레인에 의해, 상기 수신하는 단계, 상기 생성하는 단계, 및 상기 송신하는 단계가 수행되고, The receiving step, the generating step, and the transmitting step are performed by the first robot brain,다른 로봇의 제어가 요청된 때, 상기 다른 로봇을 제어하기 위한 상기 제1 로봇 브레인과 논리적으로 구분되는 제2 로봇 브레인을 구성하는 단계When control of another robot is requested, configuring a second robot brain logically separated from the first robot brain for controlling the other robot를 더 포함하고, further comprising,상기 다른 로봇으로부터의 미가공 데이터의 수신, 상기 다른 로봇의 구동부를 제어하기 위한 제어 명령의 생성 및 상기 다른 로봇의 구동부를 제어하기 위한 제어 명령의 송신은 상기 제2 로봇 브레인을 통해 수행되는, 로봇을 제어하는 방법.Receiving the raw data from the other robot, generating a control command for controlling the driving unit of the other robot, and transmitting the control command for controlling the driving unit of the other robot are performed through the second robot brain. How to control.
- 제15항에 있어서, 16. The method of claim 15,상기 제1 로봇 브레인은 상기 로봇과 상기 로봇 제어 시스템의 게이트웨이를 통해 최초로 연결되되, 최초 연결 후에는, 상기 제1 로봇 브레인의 통신부를 통해 상기 로봇과 통신하고, The first robot brain is first connected to the robot through the gateway of the robot control system, and after the initial connection, communicates with the robot through the communication unit of the first robot brain,상기 제2 로봇 브레인은 상기 다른 로봇과 상기 게이트웨이를 통해 최초로 연결되되, 최초 연결 후에는, 상기 제2 로봇 브레인의 통신부를 통해 상기 다른 로봇과 통신하는, 로봇을 제어하는 방법.The second robot brain is first connected to the other robot through the gateway, after the initial connection, communicating with the other robot through the communication unit of the second robot brain, a method of controlling a robot.
- 제1항에 있어서, According to claim 1,상기 제어 명령이 소정의 제1 시간 내에 상기 로봇에 수신되지 않거나, 상기 제어 명령이 소정의 제2 시간 이상 상기 로봇에 대해 송신되지 않으면,If the control command is not received by the robot within a first predetermined time period, or if the control command is not transmitted to the robot for a second predetermined time period or longer,상기 로봇은 대기 모드로 전환되는, 로봇을 제어하는 방법. The method of controlling a robot, wherein the robot is switched to a standby mode.
- 제1항에 있어서,According to claim 1,상기 로봇으로부터 소정의 거리 이내에서 오브젝트가 검출되면, 상기 제어 명령과 관계 없이, 상기 로봇은 대기 모드로 전환되는, 로봇을 제어하는 방법. When an object is detected within a predetermined distance from the robot, the robot is switched to a standby mode regardless of the control command.
- 로봇을 제어하는 로봇 제어 시스템에 있어서,In the robot control system for controlling the robot,무선 통신부; 및wireless communication unit; and컴퓨터에서 판독 가능한 명령을 실행하도록 구현되는 적어도 하나의 프로세서at least one processor implemented to execute computer-readable instructions를 포함하고,including,상기 적어도 하나의 프로세서는,the at least one processor,상기 무선 통신부와 상기 로봇의 무선 통신부 간의 통신에 따라, 상기 로봇으로부터 미가공 데이터를 수신하고, In accordance with communication between the wireless communication unit and the wireless communication unit of the robot, receiving raw data from the robot,상기 수신된 미가공 데이터에 기반하여, 상기 로봇의 구동부를 제어하기 위한 제어 명령을 생성하고,Based on the received raw data, generating a control command for controlling the driving unit of the robot,상기 무선 통신부와 상기 로봇의 무선 통신부 간의 통신에 따라, 상기 생성된 제어 명령을 상기 로봇으로 송신하고,Transmitting the generated control command to the robot according to communication between the wireless communication unit and the wireless communication unit of the robot,상기 제어 명령은 상기 구동부로 입력되어, 상기 구동부를 제어하기 위한 저수준(low-level) 제어 명령을 포함하는, 로봇 제어 시스템.The control command is input to the driving unit, and includes a low-level control command for controlling the driving unit.
- 제19항에 있어서, 20. The method of claim 19,상기 미가공 데이터는 상기 로봇의 센서부에 의해 획득된 로우(raw) 센싱 데이터를 포함하고,The raw data includes raw sensing data obtained by the sensor unit of the robot,상기 적어도 하나의 프로세서는,the at least one processor,상기 로우 센싱 데이터를 전처리하는 전처리부;a preprocessor for preprocessing the raw sensing data;상기 전처리된 로우 센싱 데이터에 기반하여, 상기 로봇의 상태 정보 및 상기 로봇이 주행하는 환경의 환경 정보 중 적어도 하나의 정보를 획득하는 로봇 상태 및 환경 인식 처리부; 및a robot state and environment recognition processing unit configured to acquire at least one of state information of the robot and environment information of an environment in which the robot travels based on the pre-processed raw sensing data; and상기 획득된 정보에 기반하여 상기 구동부를 제어하기 위한 상기 제어 명령을 생성하는 로봇 제어부A robot control unit that generates the control command for controlling the driving unit based on the obtained information를 포함하는, 로봇 제어 시스템.Including, robot control system.
- 제20항에 있어서, 21. The method of claim 20,상기 제어 명령은 상기 로봇의 자율 주행을 위해 상기 로봇의 이동을 제어하기 위한 제어 명령이고, The control command is a control command for controlling the movement of the robot for autonomous driving of the robot,상기 적어도 하나의 프로세서는, the at least one processor,상기 로봇과 연관된 이동 계획을 관리하는 주행 계획부A travel planning unit that manages a movement plan associated with the robot를 포함하고,including,상기 로봇 제어부는, 상기 상태 정보 및 상기 환경 정보에 기반하여, 상기 로봇이 상기 이동 계획을 따르고 상기 환경에서의 장애물을 회피하도록 하는 상기 구동부를 위한 제어 명령을 생성하는, 로봇 제어 시스템.The robot control unit, based on the status information and the environment information, generates a control command for the driving unit for the robot to follow the movement plan and avoid obstacles in the environment, the robot control system.
- 제19항에 있어서,20. The method of claim 19,상기 적어도 하나의 프로세서는, the at least one processor,다른 로봇의 제어가 요청된 때, 상기 다른 로봇에 대해 기 정의된 정보에 기반하여 상기 다른 로봇을 제어하기 위한 로봇 제어 모델을 생성하도록 구성되고, and generate a robot control model for controlling the other robot based on information predefined for the other robot when the control of the other robot is requested,상기 로봇 제어 모델은 상기 다른 로봇의 상태를 추정하고, 상기 추정된 다른 로봇의 상태에 기반하여, 상기 다른 로봇의 구동부를 제어하기 위한 제어 명령을 생성하는, 로봇 제어 시스템.The robot control model estimates the state of the other robot, and based on the estimated state of the other robot, generates a control command for controlling the driving unit of the other robot.
- 제19항에 있어서,20. The method of claim 19,상기 적어도 하나의 프로세서는,the at least one processor,제1 로봇 브레인을 포함하고,A first robot brain comprising;상기 제1 로봇 브레인이 상기 미가공 데이터를 수신하고, 상기 제어 명령을 생성하고, 상기 제어 명령을 상기 로봇으로 송신하도록 구성되고,the first robot brain is configured to receive the raw data, generate the control command, and send the control command to the robot;상기 적어도 하나의 프로세서는,the at least one processor,다른 로봇의 제어가 요청된 때, 상기 다른 로봇을 제어하기 위한 상기 제1 로봇 브레인과 논리적으로 구분되는 제2 로봇 브레인을 생성하도록 구성되고,configured to generate a second robot brain logically separated from the first robot brain for controlling the other robot when the control of the other robot is requested,상기 다른 로봇으로부터의 미가공 데이터의 수신, 상기 다른 로봇의 구동부를 제어하기 위한 제어 명령의 생성 및 상기 다른 로봇의 구동부를 제어하기 위한 제어 명령의 송신은 상기 제2 로봇 브레인을 통해 수행되는, 로봇 제어 시스템. Receiving raw data from the other robot, generating a control command for controlling the driving unit of the other robot, and transmitting a control command for controlling the driving unit of the other robot are performed through the second robot brain, robot control system.
- 로봇 제어 시스템에 의해 제어되는 로봇에 있어서,A robot controlled by a robot control system, comprising:무선 통신부;wireless communication unit;적어도 하나의 센서를 포함하는 센서부;a sensor unit including at least one sensor;모터 및 액추에이터 중 적어도 하나를 포함하는 구동부; 및a driving unit including at least one of a motor and an actuator; and상기 센서부를 위한 센서 드라이버 및 상기 구동부를 위한 구동부 드라이버를 포함하는 제어부A control unit including a sensor driver for the sensor unit and a driving unit driver for the driving unit를 포함하고, including,상기 제어부는, The control unit is상기 무선 통신부를 통해, 상기 센서부에 의해 획득된 로우(raw) 센싱 데이터를 포함하는 미가공 데이터를 상기 로봇 제어 시스템으로 송신하고,Transmitting raw data including raw sensing data obtained by the sensor unit to the robot control system through the wireless communication unit,상기 로봇 제어 시스템 측에서 상기 미가공 데이터에 기반하여 생성한 상기 구동부를 제어하기 위한 제어 명령을, 상기 무선 통신부를 통해 수신하고, Receiving a control command for controlling the driving unit generated based on the raw data on the robot control system side through the wireless communication unit,상기 수신된 제어 명령을 실행하여 상기 구동부를 제어하고,Control the driving unit by executing the received control command,상기 수신된 제어 명령은 상기 구동부로 입력되어, 상기 구동부를 제어하기 위한 저수준(low-level) 제어 명령을 포함하는, 로봇.The received control command is input to the driving unit, and includes a low-level control command for controlling the driving unit.
- 건물에 있어서, in the building,상기 건물 내의 공간을 이동하는 적어도 하나의 로봇at least one robot moving through space within the building이 배치되고, is placed,상기 로봇은 로봇 제어 시스템에 의해 제어되고, The robot is controlled by a robot control system,상기 로봇 제어 시스템은, The robot control system,무선 통신부; 및wireless communication unit; and컴퓨터에서 판독 가능한 명령을 실행하도록 구현되는 적어도 하나의 프로세서at least one processor implemented to execute computer-readable instructions를 포함하고,including,상기 적어도 하나의 프로세서는,the at least one processor,상기 무선 통신부와 상기 로봇의 무선 통신부 간의 통신에 따라, 상기 로봇으로부터 미가공 데이터를 수신하고, In accordance with communication between the wireless communication unit and the wireless communication unit of the robot, receiving raw data from the robot,상기 수신된 미가공 데이터에 기반하여, 상기 로봇의 구동부를 제어하기 위한 제어 명령을 생성하고,Based on the received raw data, generating a control command for controlling the driving unit of the robot,상기 무선 통신부와 상기 로봇의 무선 통신부 간의 통신에 따라, 상기 생성된 제어 명령을 상기 로봇으로 송신하고,Transmitting the generated control command to the robot according to communication between the wireless communication unit and the wireless communication unit of the robot,상기 제어 명령은 상기 구동부로 입력되어, 상기 구동부를 제어하기 위한 저수준(low-level) 제어 명령을 포함하는, 건물.The control command is input to the driving unit and includes a low-level control command for controlling the driving unit.
- 건물에 있어서, in the building,상기 건물 내의 공간을 이동하고 로봇 제어 시스템에 의해 제어되는 적어도 하나의 로봇at least one robot moving through space within the building and controlled by a robot control system이 배치되고, is placed,상기 로봇은,The robot is무선 통신부;wireless communication unit;적어도 하나의 센서를 포함하는 센서부;a sensor unit including at least one sensor;모터 및 액추에이터 중 적어도 하나를 포함하는 구동부; 및a driving unit including at least one of a motor and an actuator; and상기 센서부를 위한 센서 드라이버 및 상기 구동부를 위한 구동부 드라이버를 포함하는 제어부A control unit including a sensor driver for the sensor unit and a driving unit driver for the driving unit를 포함하고, including,상기 제어부는, The control unit is상기 무선 통신부를 통해, 상기 센서부에 의해 획득된 로우(raw) 센싱 데이터를 포함하는 미가공 데이터를 상기 로봇 제어 시스템으로 송신하고,Transmitting raw data including raw sensing data obtained by the sensor unit to the robot control system through the wireless communication unit,상기 로봇 제어 시스템 측에서 상기 미가공 데이터에 기반하여 생성한 상기 구동부를 제어하기 위한 제어 명령을, 상기 무선 통신부를 통해 수신하고, Receiving a control command for controlling the driving unit generated based on the raw data on the robot control system side through the wireless communication unit,상기 수신된 제어 명령을 실행하여 상기 구동부를 제어하고,Control the driving unit by executing the received control command,상기 수신된 제어 명령은 상기 구동부로 입력되어, 상기 구동부를 제어하기 위한 저수준(low-level) 제어 명령을 포함하는, 건물.The received control command is input to the driving unit and includes a low-level control command for controlling the driving unit.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR10-2021-0058728 | 2021-05-06 | ||
KR1020210058728A KR102578127B1 (en) | 2021-05-06 | 2021-05-06 | Communication-based robot control system and method thereof |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2022234923A1 true WO2022234923A1 (en) | 2022-11-10 |
Family
ID=83932218
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/KR2022/000145 WO2022234923A1 (en) | 2021-05-06 | 2022-01-05 | Communication-based robot control method and system, and building in which robot is positioned |
Country Status (2)
Country | Link |
---|---|
KR (2) | KR102578127B1 (en) |
WO (1) | WO2022234923A1 (en) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20240073246A (en) * | 2022-11-17 | 2024-05-27 | 네이버랩스 주식회사 | Robot-friendly building, method and system for controling robot divinging in the building |
KR102569181B1 (en) * | 2022-11-21 | 2023-08-22 | 이재형 | ROS-based robot integrated management system |
KR20240076859A (en) * | 2022-11-23 | 2024-05-31 | 주식회사 럭스로보 | System for controlling a remote brain type multi-legged walking AI robot |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100727033B1 (en) * | 2005-12-07 | 2007-06-12 | 한국전자통신연구원 | Apparatus and method for vision processing on network based intelligent service robot system and the system using the same |
JP5684911B2 (en) * | 2010-08-24 | 2015-03-18 | 中国科学院深▲しん▼先進技術研究院 | Cloud robot system and realization method thereof |
KR20150075639A (en) * | 2013-12-26 | 2015-07-06 | 주식회사 라스테크 | Collaborative robotic control system |
KR20180044475A (en) * | 2016-10-21 | 2018-05-03 | 네이버 주식회사 | Method and system for controlling indoor autonomous robot |
KR20200140628A (en) * | 2019-06-07 | 2020-12-16 | 엘지전자 주식회사 | Method for driving robot baesd on external image, robot and server implementing thereof |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10435015B2 (en) * | 2016-09-28 | 2019-10-08 | Baidu Usa Llc | System delay corrected control method for autonomous vehicles |
-
2021
- 2021-05-06 KR KR1020210058728A patent/KR102578127B1/en active IP Right Grant
-
2022
- 2022-01-05 WO PCT/KR2022/000145 patent/WO2022234923A1/en active Application Filing
-
2023
- 2023-09-08 KR KR1020230119591A patent/KR102706709B1/en active IP Right Grant
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100727033B1 (en) * | 2005-12-07 | 2007-06-12 | 한국전자통신연구원 | Apparatus and method for vision processing on network based intelligent service robot system and the system using the same |
JP5684911B2 (en) * | 2010-08-24 | 2015-03-18 | 中国科学院深▲しん▼先進技術研究院 | Cloud robot system and realization method thereof |
KR20150075639A (en) * | 2013-12-26 | 2015-07-06 | 주식회사 라스테크 | Collaborative robotic control system |
KR20180044475A (en) * | 2016-10-21 | 2018-05-03 | 네이버 주식회사 | Method and system for controlling indoor autonomous robot |
KR20200140628A (en) * | 2019-06-07 | 2020-12-16 | 엘지전자 주식회사 | Method for driving robot baesd on external image, robot and server implementing thereof |
Also Published As
Publication number | Publication date |
---|---|
KR20230135548A (en) | 2023-09-25 |
KR20220151460A (en) | 2022-11-15 |
KR102706709B1 (en) | 2024-09-13 |
KR102578127B1 (en) | 2023-09-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2022234923A1 (en) | Communication-based robot control method and system, and building in which robot is positioned | |
WO2020032412A1 (en) | Moving robot and following setting method thereof | |
EP3525992A1 (en) | Mobile robot system and mobile robot | |
WO2020162662A1 (en) | Automated guided cart | |
WO2021010502A1 (en) | Robot and method for managing article by using same | |
WO2014133246A1 (en) | Mini integrated control device | |
WO2018070687A1 (en) | Airport robot and airport robot system comprising same | |
WO2021002499A1 (en) | Method for tracking user location by using swarm robots, tag device, and robot implementing same | |
WO2020256195A1 (en) | Building management robot, and method for providing service using same | |
WO2021091111A1 (en) | Elevator system for transporting robot, elevator system control method, and elevator control system | |
WO2018066836A1 (en) | Airport robot and airport robot system | |
WO2020241934A1 (en) | Method for estimating position by synchronizing multi-sensor, and robot for implementing same | |
WO2020256180A1 (en) | User-recognition-based pram robot and control method therefor | |
WO2020027515A1 (en) | Mobile robot for configuring attribute block | |
WO2019135437A1 (en) | Guide robot and operation method thereof | |
WO2020256163A1 (en) | Artificial intelligence mobile robot and control method therefor | |
WO2021045271A1 (en) | Robot | |
WO2021215547A1 (en) | Smart home device and method | |
WO2020246640A1 (en) | Artificial intelligence device for determining location of user and method therefor | |
WO2020262721A1 (en) | Control system for controlling plurality of robots by using artificial intelligence | |
WO2017052061A1 (en) | Gpos-connected real-time robot control system and real-time device control system using same | |
WO2020241923A1 (en) | Artificial intelligence device for predicting performance of speech recognition model in user environment, and method therefor | |
WO2021040105A1 (en) | Artificial intelligence device generating named entity table and method for same | |
WO2021002493A1 (en) | Intelligent gateway device, and control system comprising same | |
WO2022234924A1 (en) | Method and system for controlling robot comprising plurality of modular robots, and building in which robot is disposed |
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: 22798971 Country of ref document: EP Kind code of ref document: A1 |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 22798971 Country of ref document: EP Kind code of ref document: A1 |