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

로봇 및 그 제어 방법 Download PDF

Info

Publication number
WO2023038284A1
WO2023038284A1 PCT/KR2022/010870 KR2022010870W WO2023038284A1 WO 2023038284 A1 WO2023038284 A1 WO 2023038284A1 KR 2022010870 W KR2022010870 W KR 2022010870W WO 2023038284 A1 WO2023038284 A1 WO 2023038284A1
Authority
WO
WIPO (PCT)
Prior art keywords
information
robot
sub
space
driving
Prior art date
Application number
PCT/KR2022/010870
Other languages
English (en)
French (fr)
Inventor
김도훈
홍현기
Original Assignee
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to EP22867553.4A priority Critical patent/EP4371714A1/en
Publication of WO2023038284A1 publication Critical patent/WO2023038284A1/ko
Priority to US18/410,563 priority patent/US20240139947A1/en

Links

Images

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1656Programme controls characterised by programming, planning systems for manipulators
    • B25J9/1664Programme controls characterised by programming, planning systems for manipulators characterised by motion, path, trajectory planning
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • G05D1/60Intended control result
    • G05D1/644Optimisation of travel parameters, e.g. of energy consumption, journey time or distance
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J13/00Controls for manipulators
    • B25J13/08Controls for manipulators by means of sensing devices, e.g. viewing or touching devices
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J5/00Manipulators mounted on wheels or on carriages
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/0084Programme-controlled manipulators comprising a plurality of manipulators
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • G05D1/20Control system inputs
    • G05D1/24Arrangements for determining position or orientation
    • G05D1/246Arrangements for determining position or orientation using environment maps, e.g. simultaneous localisation and mapping [SLAM]
    • G05D1/2469Arrangements for determining position or orientation using environment maps, e.g. simultaneous localisation and mapping [SLAM] using a topologic or simplified map
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • G05D1/60Intended control result
    • G05D1/69Coordinated control of the position or course of two or more vehicles
    • G05D1/693Coordinated control of the position or course of two or more vehicles for avoiding collisions between vehicles
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D2107/00Specific environments of the controlled vehicles
    • G05D2107/60Open buildings, e.g. offices, hospitals, shopping areas or universities
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D2109/00Types of controlled vehicles
    • G05D2109/10Land vehicles

Definitions

  • the present disclosure relates to a robot and a control method thereof, and more particularly, to a robot moving in a specific space and a control method thereof.
  • the present disclosure is in accordance with the above-mentioned need, and is to provide a robot and a control method for generating the shortest time path by dividing a driving space into a plurality of sub-spaces and considering various types of information for each sub-space.
  • a robot for achieving the above object is at least one sensor, a drive unit, a memory for storing at least one command, and connected to the at least one sensor, the drive unit, and the memory. and a processor for controlling the electronic device, by executing the at least one instruction, the processor identifies a driving space of the robot as a plurality of sub spaces, and the at least one sensor detects the robot while the robot is driving.
  • Time required to obtain drivability information corresponding to each of the plurality of subspaces based on sensing data obtained by and pass through each of the plurality of subspaces based on the drivability map obtained based on the obtained drivability information Obtains information about, identifies a movement path of the robot based on the obtained required time information, controls the driving unit based on the identified movement path, and the drivability information is an area related to the subspace. It may include at least one of information, other robot-related information, or dynamic object-related information.
  • the area information related to the sub-space includes at least one of a width corresponding to the sub-space, a required passage time of the sub-space, or free space information of the sub-space
  • the dynamic object-related information includes: It may include information on the number of objects.
  • the other robot-related information related to the sub-space is at least one of information on the number of robots located in the sub-space, information on the size of each robot, information on the number of other robots waiting for the sub-space, or information on the location of other robots.
  • the other robot-related information related to the sub-space is at least one of information on the number of robots located in the sub-space, information on the size of each robot, information on the number of other robots waiting for the sub-space, or information on the location of other robots.
  • the processor moves the second other robot scheduled to pass through the sub-space to the sub-space. It can be identified as a waiting robot.
  • the processor identifies information on the number of passable robots corresponding to each of the plurality of subspaces based on the width information of each of the plurality of subspaces and the width information of the robot, and determines the information on the number of passable robots.
  • the driving map including the driving map may be obtained.
  • the processor identifies a peak line obtained based on a set of cells in which distance information to an obstacle in each of the plurality of subspaces is a peak, and includes information corresponding to the peak line.
  • a driving map can be obtained.
  • the processor may obtain width information of each of the plurality of subspaces based on the number of cells perpendicular to the cells included in the peak line.
  • the processor may obtain the driving map based on at least one of a traversability map extending an obstacle by a safe margin and a distance map including distance information to an obstacle.
  • a method for controlling a robot includes identifying a traveling space of the robot as a plurality of subspaces, based on sensing data obtained by the at least one sensor while the robot is traveling Acquiring drivability information corresponding to each of the plurality of subspaces; acquiring information on a required time to pass through each of the plurality of subspaces based on a driving map obtained based on the obtained drivability information; , identifying a movement path of the robot based on the obtained required time information and controlling driving of the robot based on the identified movement path, wherein the drivability information includes the subspace It may further include at least one of area information related to, other robot related information, or dynamic object related information.
  • the area information related to the sub-space includes at least one of a width corresponding to the sub-space, a required passage time of the sub-space, or free space information of the sub-space
  • the dynamic object-related information includes: Information on the number of objects may be further included.
  • the other robot-related information related to the sub-space is at least one of information on the number of robots located in the sub-space, information on the size of each robot, information on the number of other robots waiting for the sub-space, or information on the location of other robots. may further include.
  • the obtaining of the drivability information may include a second robot scheduled to pass through the sub-space when the sum of the widths of the first other robots located in the sub-space falls within a threshold range based on the width of the sub-space. can be identified as a robot waiting for the subspace.
  • information on the number of passable robots corresponding to each of the plurality of sub-spaces may be identified based on the width information of each of the plurality of sub-spaces and the width information of the robot.
  • the obtaining of the drivability information may include identifying a peak line obtained based on a set of cells in which distance information to an obstacle in each of the plurality of subspaces has a peak,
  • the driving map may further include information corresponding to the peak line.
  • width information of each of the plurality of subspaces may be obtained based on the number of cells perpendicular to the cells included in the peak line.
  • the driving map may be obtained based on at least one of a traversability map extending an obstacle by a safe margin and a distance map including distance information to an obstacle.
  • the operation includes: identifying a driving space of the robot as a plurality of subspaces; Acquiring drivability information corresponding to each of the plurality of subspaces based on sensing data obtained by the at least one sensor while the robot is traveling, based on a driving map obtained based on the obtained drivability information obtaining required time information for passing through each of a plurality of subspaces, identifying a moving path of the robot based on the obtained required time information, and driving the robot based on the identified moving path
  • the drivability information may include at least one of area information related to the subspace, other robot related information, or dynamic object related information.
  • the traveling space in consideration of various pieces of information included in the traveling space, and obtain a path through which the robot can move based on the characteristics of each divided space. Accordingly, the robot can move in the shortest time.
  • 1 is a diagram for explaining a method of generating a path of a robot to aid understanding.
  • FIG. 2 is a diagram for explaining the configuration of a robot according to an embodiment.
  • FIG. 3 is a diagram for explaining a method for generating a movement path and motion of a robot according to an exemplary embodiment.
  • FIG. 4 is a diagram for explaining a driving map management module according to an exemplary embodiment.
  • FIG. 5 is a diagram for explaining a base map according to an exemplary embodiment.
  • FIG. 6 is a diagram for describing a driving map according to an exemplary embodiment.
  • FIG. 7 is a diagram for explaining drivability information and a storage method according to an exemplary embodiment.
  • FIG. 8 is a diagram for explaining a method of identifying another robot by a robot according to an embodiment.
  • FIG. 9 is a diagram for explaining a method of identifying information on the number of passable robots corresponding to each of a plurality of subspaces according to an embodiment.
  • FIG. 10 is a block diagram showing a detailed configuration of a robot according to an embodiment.
  • FIG. 11 is a flowchart illustrating a method of controlling a robot according to an exemplary embodiment.
  • expressions such as “has,” “can have,” “includes,” or “can include” indicate the existence of a corresponding feature (eg, numerical value, function, operation, or component such as a part). , which does not preclude the existence of additional features.
  • a component e.g., a first component
  • another component e.g., a second component
  • connection to it should be understood that an element may be directly connected to another element, or may be connected through another element (eg, a third element).
  • a “module” or “unit” performs at least one function or operation, and may be implemented in hardware or software or a combination of hardware and software.
  • a plurality of “modules” or a plurality of “units” are integrated into at least one module and implemented by at least one processor (not shown), except for “modules” or “units” that need to be implemented with specific hardware. It can be.
  • 'user' may mean a person who is provided with a service by a robot, but is not limited thereto.
  • 1 is a diagram for explaining a method of generating a path of a robot to aid understanding.
  • the robot 100 may provide services to users while traveling in a specific space.
  • the robot 100 may provide a service of serving food, etc., but is not limited thereto.
  • the robot 100 may pre-store map information corresponding to the space in order to travel in the space, and may travel in the space by generating a path based on this.
  • the robot 100 may generate a shortest time path to reach a destination based on pre-stored map information.
  • a plurality of robots are driving and each robot's travel path overlaps (for example, G1 to G3), a situation where robots collide may occur, and in this case, there is a problem that they can not avoid and become stuck. there is.
  • the robot when there are a plurality of robots (eg, G1 and G2) traveling in a narrow passage, if the width is not enough for different robots (eg, G3) to pass through the narrow passage, the robot has a problem in that it has to deviate from the preset route and take a detour to another route.
  • FIG. 2 is a diagram for explaining the configuration of a robot according to an embodiment.
  • the robot 100 may include at least one sensor 110, a driving unit 120, a memory 130, and a processor 140.
  • At least one sensor 110 may include a plurality of sensors of various types.
  • the sensor 110 may measure a physical quantity or detect an operating state of the robot 100 and convert the measured or sensed information into an electrical signal.
  • the sensor 110 may include a camera, and the camera may include a lens for focusing visible light and other optical signals received after being reflected by an object into an image sensor, and an image sensor capable of detecting visible light and other optical signals.
  • the image sensor may include a 2D pixel array divided into a plurality of pixels, and the camera according to an example may be implemented as a depth camera.
  • the sensor 140 may include a distance sensor such as a light detection and ranging (LIDAR) sensor and a time of flight (TOF) sensor.
  • LIDAR light detection and ranging
  • TOF time of flight
  • At least one sensor 110 may include a gesture sensor, a gyro sensor, an air pressure sensor, a magnetic sensor, an acceleration sensor, a grip sensor, a proximity sensor, a color sensor (eg, a red, green, blue (RGB) sensor), It may include at least one of a bio sensor, a temperature/humidity sensor, an illuminance sensor, or an ultra violet (UV) sensor.
  • a gesture sensor e.g, a gyro sensor, an air pressure sensor, a magnetic sensor, an acceleration sensor, a grip sensor, a proximity sensor, a color sensor (eg, a red, green, blue (RGB) sensor), It may include at least one of a bio sensor, a temperature/humidity sensor, an illuminance sensor, or an ultra violet (UV) sensor.
  • the driving unit 120 is a device capable of driving the robot 100.
  • the driving unit 120 can adjust the driving direction and driving speed under the control of the processor 140, and the driving unit 120 according to an example is a power generating device (eg: Gasoline engine, diesel engine, LPG (liquefied gas petroleum) engine, electric motor, etc., depending on fuel (or energy source) used steering (hydraulics steering, electronic control power steering (EPS), etc.), driving devices (eg, wheels, propellers, etc.) for driving the robot 100 according to power may be included.
  • the drive unit 120 may be modified according to the driving type (eg, wheel type, walking type, flying type, etc.) of the robot 100 .
  • the memory 130 may store data necessary for various embodiments.
  • the memory 130 may be implemented in the form of a memory embedded in the robot 100 or in the form of a removable memory in the robot 100 depending on the data storage purpose.
  • data for driving the robot 100 is stored in a memory embedded in the robot 100
  • data for extended functions of the robot 100 is stored in a memory attachable to and detachable from the robot 100. It can be.
  • volatile memory eg, DRAM (dynamic RAM), SRAM (static RAM), SDRAM (synchronous dynamic RAM), etc.
  • non-volatile memory non-volatile memory
  • OTPROM one time programmable ROM
  • PROM programmable ROM
  • EPROM erasable and programmable ROM
  • EEPROM electrically erasable and programmable ROM
  • mask ROM flash ROM, flash memory (e.g. NAND flash or NOR flash, etc.) , hard drive, or solid state drive (SSD).
  • a memory card eg, CF (compact flash), SD (secure digital), Micro-SD (micro secure digital), Mini-SD (mini secure digital), xD (extreme digital), MMC (multi-media card), etc.
  • external memory that can be connected to the USB port (e.g., a USB memory) may be implemented in the form of the like.
  • the memory 130 may store information related to a driving space, distance map information, and the like. However, the corresponding information may be received in real time from an external device.
  • the information related to the driving space may be information about the position of an object, that is, an obstacle, on the driving space, the position of another robot, and the user's position.
  • the distance map may be in the form of storing the size of the linear distance to the nearest obstacle for each cell.
  • a cell (or grid) may be a minimum unit area included in the map.
  • the processor 140 controls the overall operation of the robot 100.
  • the processor 140 may be connected to each component of the robot 100 to control the overall operation of the robot 100.
  • the processor 140 may be electrically connected to the driving unit 120 and the memory 130 to control the overall operation of the robot 100.
  • the processor 140 may perform the operation of the robot 100 according to various embodiments by executing at least one instruction stored in the memory 130 .
  • the processor 140 includes a digital signal processor (DSP), a microprocessor, a central processing unit (CPU), a micro controller unit (MCU), and a micro processing unit (MPU). unit), Neural Processing Unit (NPU), controller, application processor (AP), etc., but is described as processor 140 in this specification.
  • DSP digital signal processor
  • CPU central processing unit
  • MCU micro controller unit
  • MPU micro processing unit
  • NPU Neural Processing Unit
  • controller controller
  • AP application processor
  • the processor 140 may be implemented as a system on chip (SoC), large scale integration (LSI), or may be implemented as a field programmable gate array (FPGA). Also, the processor 140 may include volatile memory such as SRAM.
  • SoC system on chip
  • LSI large scale integration
  • FPGA field programmable gate array
  • SRAM static random access memory
  • the processor 140 may identify a driving space of the robot 100 as a plurality of sub-spaces.
  • the subspaces may be classified according to a predetermined criterion.
  • the space may be classified according to the physical structure of the driving space, but is not limited thereto and may be classified according to various criteria.
  • the processor 140 may identify a plurality of subspaces based on at least one of a traversability map extending an obstacle by a safe margin and a distance map including distance information to the obstacle.
  • the processor 140 may obtain drivability information corresponding to each of a plurality of subspaces based on sensing data obtained by at least one sensor 110 while the robot 100 is driving.
  • the drivability information may include at least one of area information related to a subspace, other robot related information, or dynamic object related information, but is not limited thereto.
  • the area information related to the sub-space may include at least one of a width corresponding to the sub-space, a required passage time of the sub-space, and free space information of the sub-space.
  • the other robot-related information may include at least one of information on the number of robots located in the sub-space, information on the size of each robot, information on the number of other robots waiting in the sub-space, or information on the location of other robots.
  • the processor 140 may store, in the memory 130, a lookup table in which robot identification information including robot size information is mapped.
  • the processor 140 may determine the location of the robot 100 using GPS, or may acquire data about the location of the robot in the driving space from the outside through a communication interface (not shown), and the location of the robot. Location information of the robot in the driving space may be managed through a management module (not shown).
  • the processor 140 may manage information on the number of robots or information on the number of other robots waiting in the subspace through GPS, a communication interface (not shown), or a robot location management module (not shown).
  • the dynamic object related information may include information on the number of dynamic objects.
  • the object may be an obstacle obstructing the driving of the robot 100, and the dynamic object may include, for example, a person or an animal, but is not limited thereto.
  • the processor 140 identifies information on the number of passable robots corresponding to each of the plurality of sub-spaces based on the width information of each of the plurality of sub-spaces and the width information of the robot, and each of the plurality of sub-spaces.
  • a driving map including information on the number of robots capable of passing may be obtained.
  • the processor 140 may identify a peak line in each of a plurality of subspaces and obtain width information of each of a plurality of subspaces based on the peak line. For example, the processor 140 may identify a peak line based on a set of cells in which a distance value to an obstacle in each of a plurality of subspaces is a peak. In this case, the processor 140 may obtain width information of each of a plurality of subspaces based on the number of cells included in the peak line and perpendicular to the cells.
  • the obstacle may be a static object, but is not limited thereto. Static objects may include, for example, walls, desks, and fixed decorations, but are not limited thereto.
  • the processor 140 may obtain a driving map based on at least one of a traversability map extending an obstacle by a safe margin and a distance map including distance information to an obstacle.
  • a driving map including information on the number of robots capable of passing through each of a plurality of subspaces may be obtained by calculating a passable width in a state in which the obstacle is expanded by a safe margin according to the traversability map.
  • the processor 140 compares the sum of the widths of the passages corresponding to the plurality of sub-spaces and the size of the safe margin with the width of the robot 100, so that the robot 100 can travel simultaneously in the driving space. The number of robots 100 can be calculated.
  • the processor 140 determines, when the sum of the widths of first other robots located in the specific sub-space falls within a threshold range based on the width of the specific sub-space A second robot scheduled to pass through the subspace may be identified as a robot waiting for the corresponding subspace. For example, the processor 140 calculates the sum of the widths of first other robots located in a specific subspace, and the sum of the widths of the first other robots falls within a threshold range based on the calculated width of the specific subspace. In this case, a specific sub-space can be identified as not allowing other robots to travel for a critical period of time.
  • the processor 140 may identify the second robot scheduled to pass through the corresponding sub-space as a robot waiting for the sub-space. For example, if the processor 140 determines that the second robot is scheduled to pass through the corresponding subspace based on at least one of path information and location information of the second robot, the processor 140 waits for the second robot to wait for the subspace. It can be identified as a robot that does. According to an example, the processor 140 may receive at least one of route information or location information of the second other robot from one of the second other robot or the management server in real time.
  • the processor 140 may obtain information about a required time to pass through each of a plurality of subspaces based on the driving map obtained according to the above-described embodiment.
  • the processor 140 may identify a movement path of the robot based on the acquired required time information, and may control the driving unit 120 based on the identified movement path.
  • the processor 140 may identify a path that takes the shortest time among a plurality of paths to reach a destination by comparing the time required to pass through each of a plurality of subspaces, but may identify a minimum distance path. may be, but is not limited thereto.
  • the plurality of subspaces initially identified and the plurality of subspaces included in the driving map are the same, but this is for convenience of explanation, and the plurality of subspaces identified initially and the driving map are identical.
  • a plurality of subspaces included in may be partially different. For example, at least some spaces among a plurality of initially identified subspaces may be combined to form one subspace included in the driving map. Alternatively, one subspace among a plurality of initially identified subspaces may be divided into a plurality of subspaces in the driving map. That is, each subspace classified in the driving map may be determined in various ways based on the driving property information.
  • the processor 140 may transmit information on the number of robots that can pass through the identification to a server or another robot through a communication interface (not shown).
  • the other robot may create a movement path using the information on the number of robots received.
  • FIG. 3 is a diagram for explaining a method for generating a movement path and motion of a robot according to an exemplary embodiment.
  • the processor 140 may manage a basic map (hereinafter referred to as a basic map) for a driving space through a basic map management module 310 .
  • the processor 140 may obtain a basic map based on data obtained through at least one sensor 110 or a communication interface (not shown).
  • the processor 140 may obtain a basic map using various sensors provided in the robot 100, such as a camera, lidar sensor, infrared sensor, and ultrasonic sensor.
  • the basic map may be in the form of dividing the space into at least one of occupied cells, free cells, and unknown cells.
  • the processor 140 manages position information of the robot in the driving space through the robot position management module 320 .
  • the processor 140 may determine the location of the robot 100 using GPS, or may acquire data about the location of the robot in the driving space from the outside through a communication interface (not shown).
  • the processor 140 may obtain a driving map through the driving map management module 330 based on the acquired basic map and location information of the robot.
  • the driving map may have a form as shown in FIG. 6, but is not limited thereto.
  • the processor 140 may manage the acquired information on the moving path of the robot through the path creation module 340 based on the driving map acquired through the driving map management module 330 .
  • the processor 140 may generate a standby motion through the standby motion generating module 350 or a moving motion through the moving motion generating module 360 based on the acquired information about the moving path of the robot.
  • the standby motion may be a control signal for stopping the movement of the robot 100 so that the robot 100 waits at the current position.
  • the movement motion may be a control signal for maintaining the movement of the robot 100 according to a movement path.
  • the processor 140 may generate a motion generated by the driving control module 370, that is, a driving signal corresponding to the control signal, and transmit the generated driving signal to the driving unit 120.
  • FIG. 4 is a diagram for explaining a driving map management module according to an exemplary embodiment.
  • the processor 140 may acquire a distance map based on the acquired basic map (331).
  • the distance map may be in the form of storing the distance to the obstacle and the probability value of the obstacle, or may be in the form of storing the magnitude of the linear distance to the nearest occupied cell for each cell, but is not limited thereto.
  • the processor 140 may extract a peak distance line (or a peak line) based on distance information included in the distance map (332).
  • the peak distance line is a line formed by a set of cells in which the magnitude of the linear distance from the distance map to the occupied cell stored for each free cell becomes a peak.
  • the processor 140 may calculate the passage width of the driving space based on the distance information included in the distance map and the acquired peak distance line (333). At this time, the passage width can be calculated using the straight-line distance between each cell located on the Peak distance line and the Occupied cell, but is not limited thereto.
  • the processor 140 may generate a driving map based on the distance map, the peak distance line, and the passage width of the driving space (334). Thereafter, the processor 140 may generate a movement path of the robot through the path generation module 340 based on the driving map and the distance map.
  • FIG. 5 is a diagram for explaining a base map according to an exemplary embodiment.
  • the basic map 510 may be in the form of dividing the driving space into at least one of an occupied cell, a free cell, and an unknown cell.
  • an occupied cell may be a static object in the driving space
  • a free cell may be a space in the driving space in which no static object is located.
  • the static object may be a pillar, table, chair, wall, etc. in a driving space, but is not limited thereto.
  • FIG. 6 is a diagram for explaining a shape of a driving map according to an exemplary embodiment.
  • the driving map 600 may include peak distance line 650 information and sub-space information divided by the number of passable robots.
  • the subspatial information is
  • FIG. 7 is a diagram for explaining drivability information and a storage method according to an exemplary embodiment.
  • the processor 140 may store drivability information in the memory 130 as a graph model.
  • a graph model means a data structure in which nodes and edges connecting the nodes are gathered together, and is generally used to express relationships between connected objects.
  • drivability information corresponding to each of a plurality of subspaces may be schematized as a graph model, and drivability information corresponding to each subspace may be stored in each node.
  • an edge may indicate connectivity between nodes.
  • an edge may be intended to indicate adjacency when two arbitrary subspaces are adjacent.
  • the time required between each subspace may be calculated based on Equation 1 below.
  • ⁇ and ⁇ are parameters for the complexity of the subspace.
  • ⁇ and ⁇ may have values between 0 and 1.
  • the value of ⁇ may be greater than the value of ⁇ in the case of a restaurant with many users, and the value of ⁇ may be greater than the value of ⁇ in the case of a restaurant with few users, but is not limited thereto.
  • is the width of the corresponding subspace means the number of dynamic objects in the corresponding subspace. denotes the time required to pass through the corresponding subspace when drivability information is not considered.
  • Equation 1 the time required to pass through each of the plurality of subspaces By reflecting drivability information to the value of can be calculated.
  • the width corresponding to a specific subspace information on the number of other robots waiting for the subspace, and information on the number of dynamic objects can be calculated.
  • Equation 1 in proportion to the number of robots waiting in the subspace and the number of dynamic objects in the subspace increases, and is inversely proportional to the size of the width of the subspace can increase.
  • FIG. 8 is a diagram for explaining a method of identifying another robot by a robot according to an embodiment.
  • the processor 140 selects the second other robot scheduled to pass through the sub-space in the sub-space.
  • the second robot 820 scheduled to pass through the first sub-space is a robot waiting for the first sub-space.
  • FIG. 9 is a diagram for explaining a method of identifying information on the number of passable robots corresponding to each of a plurality of subspaces according to an embodiment.
  • the processor 140 identifies information on the number of passable robots corresponding to each of a plurality of subspaces based on the width information of each of a plurality of subspaces and the width information of the robot 100, and the passable robots.
  • a driving map including information on the number of may be obtained.
  • the processor 140 identifies the maximum value of the number of passable robots corresponding to the sub-space as 3 based on the width information 940 of the sub-space and the width information of the robots 910 to 930. and based on this, a driving map including information on the number of passable robots may be obtained.
  • the processor 140 may obtain width information of robots of various sizes based on previously obtained information related to other robots, and accordingly, the maximum value of the number of passable robots corresponding to the subspace is updated even while driving.
  • 10 is a block diagram illustrating detailed configurations of a robot according to an exemplary embodiment.
  • the robot 100' includes at least one sensor 110, a driving unit 120, a memory 130, a processor 140, a display 150, a communication interface 160, and a user interface 170.
  • a driving unit 120 includes at least one sensor 110, a driving unit 120, a memory 130, a processor 140, a display 150, a communication interface 160, and a user interface 170.
  • a display 150 includes at least one sensor 110, a driving unit 120, a memory 130, a processor 140, a display 150, a communication interface 160, and a user interface 170.
  • the display 150 may be implemented as a display including a self-light emitting element or a display including a non-light emitting element and a backlight.
  • LCD Liquid Crystal Display
  • OLED Organic Light Emitting Diodes
  • LED Light Emitting Diodes
  • micro LED micro LED
  • Mini LED PDP (Plasma Display Panel)
  • QD Quantantum dot
  • QLED Quadantum dot light-emitting diodes
  • the display 110 may also include a driving circuit, a backlight unit, and the like that may be implemented in the form of an a-si TFT, a low temperature poly silicon (LTPS) TFT, or an organic TFT (OTFT).
  • the display 170 is implemented as a touch screen combined with a touch sensor, a flexible display, a rollable display, a 3D display, a display in which a plurality of display modules are physically connected, and the like. It can be. Also, since the display 170 has a built-in touch screen, a program may be executed using a finger or a pen (eg, a stylus pen).
  • the communication interface 160 may input and output various types of data.
  • the communication interface 160 is AP-based Wi-Fi (Wi-Fi, Wireless LAN network), Bluetooth (Bluetooth), Zigbee (Zigbee), wired / wireless LAN (Local Area Network), WAN (Wide Area Network), Ethernet, IEEE 1394, HDMI (High-Definition Multimedia Interface), USB (Universal Serial Bus), MHL (Mobile High-Definition Link), AES/EBU (Audio Engineering Society/ European Broadcasting Union), Optical External device (eg, source device), external storage medium (eg, USB memory), external server (eg, web hard) and various types of data through communication methods such as , Coaxial, etc. can transmit and receive.
  • Wi-Fi Wi-Fi, Wireless LAN network
  • Bluetooth Bluetooth
  • Zigbee Zigbee
  • wired / wireless LAN Local Area Network
  • WAN Wide Area Network
  • Ethernet IEEE 1394
  • HDMI High-Definition Multimedia Interface
  • USB Universal Serial Bus
  • map information when map information is received from an external device (or external server), map information may be received through the communication interface 160 .
  • the user interface 170 is a component for the robot 100' to perform an interaction with a user.
  • the user interface 170 may include at least one of a touch sensor, a motion sensor, a button, a jog dial, a switch, a microphone, or a speaker, but is not limited thereto.
  • FIG. 11 is a flowchart illustrating a method of controlling a robot according to an exemplary embodiment.
  • the traveling space of the robot is identified as a plurality of sub-spaces (S1110).
  • drivability information corresponding to each of a plurality of subspaces is acquired based on sensing data acquired by a sensor while the robot is traveling (S1120).
  • the drivability information may include at least one of area information related to a subspace, information related to another robot, or information related to a dynamic object.
  • the area information related to the sub-space may include at least one of a width corresponding to the sub-space, a required passage time of the sub-space, or free space information of the sub-space.
  • the object related information may include information on the number of dynamic objects.
  • step S1120 of obtaining drivability information other robot-related information related to the sub-space includes information on the number of robots located in the sub-space, information on the size of each robot, information on the number of other robots waiting for the sub-space, or other robots. It may include at least one of location information of.
  • step S1120 of obtaining drivability information if the sum of the widths of the first other robots located in the sub-space falls within a threshold range based on the width of the sub-space, the second other robot scheduled to pass through the sub-space is selected. can be identified as a robot waiting for
  • step S1120 of obtaining drivability information information on the number of robots that can pass through each of a plurality of subspaces may be identified based on the width information of each of a plurality of subspaces and the robot width information.
  • step S1120 of acquiring drivability information a step of identifying a peak line obtained based on a set of cells having a peak in distance information to an obstacle in each of a plurality of subspaces may be included.
  • the driving map may include information corresponding to the peak line.
  • width information of each of a plurality of subspaces may be obtained based on the number of cells included in the peak line and perpendicular to the cells.
  • a driving map may be obtained based on at least one of a traversability map extending an obstacle by a safe margin and a distance map including distance information to an obstacle.
  • the methods according to various embodiments described above may be implemented in the form of an application that can be installed in an existing electronic device.
  • the above-described methods according to various embodiments of the present disclosure may be performed using a deep learning-based artificial neural network (or deep artificial neural network), that is, a learning network model.
  • the various embodiments described above may be performed through an embedded server included in the electronic device or an external server of the electronic device.
  • various embodiments described above may be implemented as software including instructions stored in a machine-readable storage medium (eg, a computer).
  • a device is a device capable of calling a stored command from a storage medium and operating according to the called command, and may include an electronic device (eg, the electronic device A) according to the disclosed embodiments.
  • the processor may perform a function corresponding to the command directly or by using other components under the control of the processor.
  • An instruction may include code generated or executed by a compiler or interpreter.
  • the device-readable storage medium may be provided in the form of a non-transitory storage medium.
  • 'non-temporary' only means that the storage medium does not contain a signal and is tangible, but does not distinguish whether data is stored semi-permanently or temporarily in the storage medium.
  • the method according to various embodiments described above may be included and provided in a computer program product.
  • Computer program products may be traded between sellers and buyers as commodities.
  • the computer program product may be distributed in the form of a device-readable storage medium (eg compact disc read only memory (CD-ROM)) or online through an application store (eg Play StoreTM).
  • an application store eg Play StoreTM
  • at least part of the computer program product may be temporarily stored or temporarily created in a storage medium such as a manufacturer's server, an application store server, or a relay server's memory.
  • each of the components may be composed of a single object or a plurality of entities, and some sub-components among the aforementioned sub-components may be omitted, or other sub-components may be used. Components may be further included in various embodiments. Alternatively or additionally, some components (eg, modules or programs) may be integrated into one entity and perform the same or similar functions performed by each corresponding component prior to integration. According to various embodiments, operations performed by modules, programs, or other components may be executed sequentially, in parallel, repetitively, or heuristically, or at least some operations may be executed in a different order, may be omitted, or other operations may be added. can

Landscapes

  • Engineering & Computer Science (AREA)
  • Robotics (AREA)
  • Mechanical Engineering (AREA)
  • Aviation & Aerospace Engineering (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Remote Sensing (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Automation & Control Theory (AREA)
  • Human Computer Interaction (AREA)
  • Control Of Position, Course, Altitude, Or Attitude Of Moving Bodies (AREA)

Abstract

로봇이 개시된다. 로봇은, 적어도 하나의 센서, 구동부, 적어도 하나의 명령을 저장하는 메모리 및 프로세서를 포함하며, 프로세서는, 적어도 하나의 명령어를 실행함으로써, 로봇의 주행 공간을 복수의 서브 공간으로 식별하고, 로봇이 주행하는 동안 적어도 하나의 센서에 의해 획득된 센싱 데이터에 기초하여 복수의 서브 공간 각각에 대응되는 주행성 정보를 획득하고, 획득된 주행성 정보에 기초하여 획득된 주행 맵에 기초하여 복수의 서브 공간을 각각을 통과하기 위한 소요 시간에 대한 정보를 획득하고, 획득된 소요 시간 정보에 기초하여 로봇의 이동 경로를 식별하고, 식별된 이동 경로에 기초하여 구동부를 제어하며, 주행성 정보는, 서브 공간과 관련된 영역 정보, 타 로봇 관련 정보 또는 동적 오브젝트 관련 정보 중 적어도 하나를 포함한다.

Description

로봇 및 그 제어 방법
본 개시는 로봇 및 그 제어 방법에 관한 것으로, 더욱 상세하게는 특정 공간을 이동하는 로봇 및 그 제어 방법에 관한 것이다.
최근 특정 공간에 배치되어 사용자에게 서비스를 제공하는 로봇에 대한 기술 개발이 활발해지고 있다. 특히, 좁은 경로를 주행하는 로봇은 주행 경로 상의 다양한 타입의 정보들을 고려하여 신속하게 주행하여야 사용자에게 신속한 서비스를 제공할 수 있게 된다.
이에 따라 다양한 타입의 정보들을 고려하여 로봇이 최대한 신속하게 주행할 수 있는 경로를 생성하는 방안이 요구된다.
본 개시는 상술한 필요성에 따른 것으로, 주행 공간을 복수 개의 서브 공간으로 구분하고, 각 서브 공간 별 다양한 타입의 정보들을 고려하여 최단 시간 경로를 생성하는 로봇 및 그 제어 방법을 제공함에 있다.
이상과 같은 목적을 달성하기 위한 본 개시의 일 실시 예에 따른 로봇은, 적어도 하나의 센서, 구동부, 적어도 하나의 명령을 저장하는 메모리 및, 상기 적어도 하나의 센서, 상기 구동부 및 상기 메모리와 연결되어 상기 전자 장치를 제어하는 프로세서를 포함하며, 상기 프로세서는, 상기 적어도 하나의 명령어를 실행함으로써, 상기 로봇의 주행 공간을 복수의 서브 공간으로 식별하고, 상기 로봇이 주행하는 동안 상기 적어도 하나의 센서에 의해 획득된 센싱 데이터에 기초하여 상기 복수의 서브 공간 각각에 대응되는 주행성 정보를 획득하고, 상기 획득된 주행성 정보에 기초하여 획득된 주행 맵에 기초하여 복수의 서브 공간을 각각을 통과하기 위한 소요 시간에 대한 정보를 획득하고, 상기 획득된 소요 시간 정보에 기초하여 상기 로봇의 이동 경로를 식별하고, 상기 식별된 이동 경로에 기초하여 상기 구동부를 제어하며, 상기 주행성 정보는, 상기 서브 공간과 관련된 영역 정보, 타 로봇 관련 정보 또는 동적 오브젝트 관련 정보 중 적어도 하나를 포함할 수 있다.
또한, 상기 서브 공간과 관련된 영역 정보는, 상기 서브 공간에 대응되는 폭, 상기 서브 공간의 통과 소요 시간, 또는 상기 서브 공간의 여유 공간 정보 중 적어도 하나를 포함하고, 상기 동적 오브젝트 관련 정보는, 동적 오브젝트의 수 정보를 포함할 수 있다.
여기서, 상기 서브 공간과 관련된 타 로봇 관련 정보는, 상기 서브 공간에 위치하는 로봇의 개수 정보, 각 로봇의 크기 정보, 상기 서브 공간을 대기하는 타 로봇의 개수 정보 또는 타 로봇의 위치 정보 중 적어도 하나를 포함할 수 있다.
또한, 상기 프로세서는, 상기 서브 공간에 위치하는 제1 타 로봇들의 폭의 합이 상기 서브 공간의 폭을 기준으로 임계 범위 내에 속하는 경우 상기 서브 공간을 통과할 예정인 제2 타 로봇을 상기 서브 공간을 대기하는 로봇으로 식별할 수 있다.
또한, 상기 프로세서는, 상기 복수의 서브 공간 각각의 폭 정보 및 로봇의 폭 정보에 기초하여 상기 복수의 서브 공간 각각에 대응되는 통과 가능한 로봇의 개수 정보를 식별하고, 상기 통과 가능한 로봇의 개수 정보를 포함하는 상기 주행 맵을 획득할 수 있다.
또한, 상기 프로세서는, 상기 복수의 서브 공간 각각에서 장애물까지의 거리 정보가 피크(peak)가 되는 셀들의 집합에 기초하여 획득된 피크 라인을 식별하고, 상기 피크 라인에 대응되는 정보를 포함하는 상기 주행 맵을 획득할 수 있다.
또한, 상기 프로세서는, 상기 피크 라인에 포함된 셀들과 수직인 셀들의 개수에 기초하여 상기 복수의 서브 공간 각각의 폭 정보를 획득할 수 있다.
또한, 상기 프로세서는, 장애물을 safe margin 만큼 확장한 Traversability Map 및 장애물까지의 거리 정보를 포함하는 Distance Map 중 적어도 하나에 기초하여 상기 주행 맵을 획득할 수 있다.
한편, 본 개시의 일 실시 예에 따른 로봇의 제어 방법은, 로봇의 주행 공간을 복수의 서브 공간으로 식별하는 단계, 상기 로봇이 주행하는 동안 상기 적어도 하나의 센서에 의해 획득된 센싱 데이터에 기초하여 상기 복수의 서브 공간 각각에 대응되는 주행성 정보를 획득하는 단계, 상기 획득된 주행성 정보에 기초하여 획득된 주행 맵에 기초하여 복수의 서브 공간을 각각을 통과하기 위한 소요 시간에 대한 정보를 획득하는 단계, 상기 획득된 소요 시간 정보에 기초하여 상기 로봇의 이동 경로를 식별하는 단계 및 상기 식별된 이동 경로에 기초하여 상기 로봇의 주행을 제어하는 단계를 포함할 수 있으며, 상기 주행성 정보는, 상기 서브 공간과 관련된 영역 정보, 타 로봇 관련 정보 또는 동적 오브젝트 관련 정보 중 적어도 하나를 더 포함할 수 있다.
또한, 상기 서브 공간과 관련된 영역 정보는, 상기 서브 공간에 대응되는 폭, 상기 서브 공간의 통과 소요 시간, 또는 상기 서브 공간의 여유 공간 정보 중 적어도 하나를 포함하고, 상기 동적 오브젝트 관련 정보는, 동적 오브젝트의 수 정보를 더 포함할 수 있다.
또한, 상기 서브 공간과 관련된 타 로봇 관련 정보는, 상기 서브 공간에 위치하는 로봇의 개수 정보, 각 로봇의 크기 정보, 상기 서브 공간을 대기하는 타 로봇의 개수 정보 또는 타 로봇의 위치 정보 중 적어도 하나를 더 포함할 수 있다.
또한, 상기 주행성 정보를 획득하는 단계는, 상기 서브 공간에 위치하는 제1 타 로봇들의 폭의 합이 상기 서브 공간의 폭을 기준으로 임계 범위 내에 속하는 경우 상기 서브 공간을 통과할 예정인 제2 타 로봇을 상기 서브 공간을 대기하는 로봇으로 식별할 수 있다.
또한, 상기 주행성 정보를 획득하는 단계는, 상기 복수의 서브 공간 각각의 폭 정보 및 로봇의 폭 정보에 기초하여 상기 복수의 서브 공간 각각에 대응되는 통과 가능한 로봇의 개수 정보를 식별할 수 있다.
또한, 상기 주행성 정보를 획득하는 단계는, 상기 복수의 서브 공간 각각에서 장애물까지의 거리 정보가 피크(peak)가 되는 셀들의 집합에 기초하여 획득된 피크 라인을 식별하는 단계를 포함할 수 있고, 상기 주행 맵은, 상기 피크 라인에 대응되는 정보를 더 포함할 수 있다.
또한, 상기 주행성 정보를 획득하는 단계는, 상기 피크 라인에 포함된 셀들과 수직인 셀들의 개수에 기초하여 상기 복수의 서브 공간 각각의 폭 정보를 획득할 수 있다.
또한, 상기 소요 시간에 대한 정보를 획득하는 단계는, 장애물을 safe margin 만큼 확장한 Traversability Map 및 장애물까지의 거리 정보를 포함하는 Distance Map 중 적어도 하나에 기초하여 상기 주행 맵을 획득할 수 있다.
한편, 로봇의 프로세서에 의해 실행되는 경우 상기 로봇이 동작을 수행하도록 하는 컴퓨터 명령을 저장하는 비일시적 컴퓨터 판독 가능 매체에 있어서, 상기 동작은, 로봇의 주행 공간을 복수의 서브 공간으로 식별하는 단계, 상기 로봇이 주행하는 동안 상기 적어도 하나의 센서에 의해 획득된 센싱 데이터에 기초하여 상기 복수의 서브 공간 각각에 대응되는 주행성 정보를 획득하는 단계, 상기 획득된 주행성 정보에 기초하여 획득된 주행 맵에 기초하여 복수의 서브 공간을 각각을 통과하기 위한 소요 시간 정보를 획득하는 단계, 상기 획득된 소요 시간 정보에 기초하여 상기 로봇의 이동 경로를 식별하는 단계 및 상기 식별된 이동 경로에 기초하여 상기 로봇의 주행을 제어하는 단계를 포함할 수 있으며, 상기 주행성 정보는, 상기 서브 공간과 관련된 영역 정보, 타 로봇 관련 정보 또는 동적 오브젝트 관련 정보 중 적어도 하나를 포함할 수 있다.
상술한 다양한 실시 예에 따르면, 주행 공간에 포함된 다양한 정보들을 고려하여 주행 공간을 구분하고, 구분된 각 공간의 특성에 기초하여 로봇이 이동 가능한 경로를 획득할 수 있게 된다. 이에 따라 로봇이 최단 시간으로 이동할 수 있게 된다.
도 1은 이해를 돕기 위한 로봇의 경로 생성 방법을 설명하기 위한 도면이다.
도 2는 일 실시 예에 따른 로봇의 구성을 설명하기 위한 도면이다.
도 3은 일 실시 예에 따른 로봇의 이동 경로 및 모션 생성 방법을 설명하기 위한 도면이다.
도 4는 일 실시 예에 따른 주행 맵 관리 모듈을 설명하기 위한 도면이다.
도 5는 일 실시 예에 따른 기본 맵을 설명하기 위한 도면이다.
도 6은 일 실시 예에 따른 주행 맵을 설명하기 위한 도면이다.
도 7은 일 실시 예에 따른 주행성 정보 및 그 저장 방법을 설명하기 위한 도면이다.
도 8은 일 실시 예에 따른 로봇의 타 로봇 식별 방법을 설명하기 위한 도면이다.
도 9는 일 실시 예에 따른 복수의 서브 공간 각각에 대응되는 통과 가능한 로봇의 개수 정보를 식별하는 방법을 설명하기 위한 도면이다.
도 10은 일 실시 예에 따른 로봇의 세부 구성을 나타내는 블록도이다.
도 11은 일 실시 예에 따른 로봇의 제어 방법을 설명하기 위한 흐름도이다.
이하에서는 첨부 도면을 참조하여 본 개시를 상세히 설명한다.
본 명세서에서 사용되는 용어에 대해 간략히 설명하고, 본 개시에 대해 구체적으로 설명하기로 한다.
본 개시의 실시 예에서 사용되는 용어는 본 개시에서의 기능을 고려하면서 가능한 현재 널리 사용되는 일반적인 용어들을 선택하였으나, 이는 당 분야에 종사하는 기술자의 의도 또는 판례, 새로운 기술의 출현 등에 따라 달라질 수 있다. 또한, 특정한 경우는 출원인이 임의로 선정한 용어도 있으며, 이 경우 해당되는 개시의 설명 부분에서 상세히 그 의미를 기재할 것이다. 따라서 본 개시에서 사용되는 용어는 단순한 용어의 명칭이 아닌, 그 용어가 가지는 의미와 본 개시의 전반에 걸친 내용을 토대로 정의되어야 한다.
본 명세서에서, "가진다," "가질 수 있다," "포함한다," 또는 "포함할 수 있다" 등의 표현은 해당 특징(예: 수치, 기능, 동작, 또는 부품 등의 구성요소)의 존재를 가리키며, 추가적인 특징의 존재를 배제하지 않는다.
A 또는/및 B 중 적어도 하나라는 표현은 "A" 또는 "B" 또는 "A 및 B" 중 어느 하나를 나타내는 것으로 이해되어야 한다.
본 명세서에서 사용된 "제1," "제2," "첫째," 또는 "둘째,"등의 표현들은 다양한 구성요소들을, 순서 및/또는 중요도에 상관없이 수식할 수 있고, 한 구성요소를 다른 구성요소와 구분하기 위해 사용될 뿐 해당 구성요소들을 한정하지 않는다.
어떤 구성요소(예: 제1 구성요소)가 다른 구성요소(예: 제2 구성요소)에 "(기능적으로 또는 통신적으로) 연결되어((operatively or communicatively) coupled with/to)" 있다거나 "접속되어(connected to)" 있다고 언급된 때에는, 어떤 구성요소가 다른 구성요소에 직접적으로 연결되거나, 다른 구성요소(예: 제3 구성요소)를 통하여 연결될 수 있다고 이해되어야 할 것이다.
단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "구성되다" 등의 용어는 명세서 상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
본 개시에서 "모듈" 혹은 "부"는 적어도 하나의 기능이나 동작을 수행하며, 하드웨어 또는 소프트웨어로 구현되거나 하드웨어와 소프트웨어의 결합으로 구현될 수 있다. 또한, 복수의 "모듈" 혹은 복수의 "부"는 특정한 하드웨어로 구현될 필요가 있는 "모듈" 혹은 "부"를 제외하고는 적어도 하나의 모듈로 일체화되어 적어도 하나의 프로세서(미도시)로 구현될 수 있다.
본 개시에서 '사용자' 는 로봇에게 서비스를 제공받는 사람을 의미할 수 있으나, 이에 한정되는 것은 아니다.
이하 첨부된 도면들을 참조하여 본 개시의 일 실시 예를 보다 상세하게 설명한다.
도 1은 이해를 돕기 위한 로봇의 경로 생성 방법을 설명하기 위한 도면이다.
도 1에 따르면 로봇(100)은 특정 공간을 주행하며 사용자에게 서비스를 제공할 수 있다. 예를 들어, 로봇(100)은 음식 등을 서빙(serving)하는 서비스를 제공할 수 있으나, 이에 한정되는 것은 아니다. 로봇(100)은 공간을 주행하기 위해 공간에 대응되는 맵 정보를 기 저장하고 있을 수 있으며, 이에 기초하여 경로 생성을 수행하여 공간을 주행할 수 있다.
일 예에 따라 로봇(100)은 기 저장된 맵 정보에 기초하여 목적지까지 도달하기 위한 최단 시간 경로를 생성할 수 있다. 다만, 복수 개의 로봇이 주행 중인 경우에 로봇 각각의 주행 경로가 겹친다면(예를 들어, G1 내지 G3), 로봇끼리 마주치는 상황이 발생할 수 있으며, 이 경우 회피를 못하고 stuck이 될 수 있다는 문제가 있다.
다른 예에 따라 좁은 통로를 주행하는 복수 개의 로봇(예를 들어, G1 및 G2)이 있는 경우, 좁은 통로를 주행하는 상이한 로봇(예를 들어, G3)이 통로를 지나갈 수 있는 폭이 되지 않는다면 로봇은 기 설정된 경로에서 벗어나 다른 경로로 우회해야 하는 문제가 있다.
이에 따라 이하에서는 주행 공간을 복수 개의 서브 공간으로 구분하고, 각 서브 공간 별 다양한 타입의 정보들을 반영하여 최소 시간의 경로 생성을 수행하는 다양한 실시 예에 대해 설명하도록 한다.
도 2는 일 실시 예에 따른 로봇의 구성을 설명하기 위한 도면이다.
도 2에 따르면, 로봇(100)은 적어도 하나의 센서(110), 구동부(120), 메모리(130) 및 프로세서(140)를 포함할 수 있다.
적어도 하나의 센서(110)는 다양한 타입의 복수의 센서를 포함할 수 있다. 센서(110)는 물리량을 계측하거나 로봇(100)의 작동 상태를 감지하여, 계측 또는 감지된 정보를 전기 신호로 변환할 수 있다. 센서(110)는 카메라를 포함할 수 있으며, 카메라는 오브젝트에 의해 반사되어 수신되는 가시광 기타 광학 신호를 이미지 센서로 포커싱하는 렌즈 및 가시광 기타 광학 신호를 감지할 수 있는 이미지 센서를 포함할 수 있다. 여기서, 이미지 센서는 복수의 픽셀로 구분되는 2D의 픽셀 어레이를 포함할 수 있으며, 일 예에 따른 카메라는 뎁스 카메라로 구현될 수 있다. 또한, 센서(140)는 라이더(LIDAR, Light Detection And Ranging) 센서 및 TOF(Time of flight) 센서와 같은 거리 센서를 포함할 수 있다.
그 밖에 적어도 하나의 센서(110)는 제스처 센서, 자이로 센서, 기압 센서, 마그네틱 센서, 가속도 센서, 그립 센서, 근접 센서, 컬러(color) 센서(예: RGB(red, green, blue) 센서), 생체 센서, 온/습도 센서, 조도 센서 또는 UV(ultra violet) 센서 중의 적어도 하나를 포함할 수도 있다.
구동부(120)는 로봇(100)을 주행시킬 수 있는 장치이다. 구동부(120)는 프로세서(140)의 제어에 따라 주행 방향 및 주행 속도를 조절할 수 있으며, 일 예에 따른 구동부(120)는 로봇(100)이 주행하기 위한 동력을 발생시키는 동력발생장치(예: 사용 연료(또는 에너지원)에 따라 가솔린 엔진(engine), 디젤 엔진, LPG(liquefied petroleum gas) 엔진, 전기 모터 등), 주행 방향을 조절하기 위한 조향 장치(예: 기계식 스티어링(manual steering), 유압식 스티어링(hydraulics steering), 전자식 스티어링(electronic control power steering; EPS) 등), 동력에 따라 로봇(100)을 주행시키는 주행 장치(예: 바퀴, 프로펠러 등) 등을 포함할 수 있다. 여기서, 구동부(120)는 로봇(100)의 주행 타입(예: 휠 타입, 보행 타입, 비행 타입 등)에 따라 변형 실시될 수 있다.
메모리(130)는 다양한 실시 예를 위해 필요한 데이터를 저장할 수 있다. 메모리(130)는 데이터 저장 용도에 따라 로봇(100)에 임베디드된 메모리 형태로 구현되거나, 로봇(100)에 탈부착이 가능한 메모리 형태로 구현될 수도 있다. 예를 들어, 로봇(100)의 구동을 위한 데이터의 경우 로봇(100)에 임베디드된 메모리에 저장되고, 로봇(100)의 확장 기능을 위한 데이터의 경우 로봇(100)에 탈부착이 가능한 메모리에 저장될 수 있다. 한편, 로봇(100)에 임베디드된 메모리의 경우 휘발성 메모리(예: DRAM(dynamic RAM), SRAM(static RAM), 또는 SDRAM(synchronous dynamic RAM) 등), 비휘발성 메모리(non-volatile Memory)(예: OTPROM(one time programmable ROM), PROM(programmable ROM), EPROM(erasable and programmable ROM), EEPROM(electrically erasable and programmable ROM), mask ROM, flash ROM, 플래시 메모리(예: NAND flash 또는 NOR flash 등), 하드 드라이브, 또는 솔리드 스테이트 드라이브(solid state drive(SSD)) 중 적어도 하나로 구현될 수 있다. 또한, 로봇(100)에 탈부착이 가능한 메모리의 경우 메모리 카드(예를 들어, CF(compact flash), SD(secure digital), Micro-SD(micro secure digital), Mini-SD(mini secure digital), xD(extreme digital), MMC(multi-media card) 등), USB 포트에 연결가능한 외부 메모리(예를 들어, USB 메모리) 등과 같은 형태로 구현될 수 있다.
일 예에 따라 메모리(130)는 주행 공간과 관련된 정보, Distance Map 정보 등을 저장할 수 있다. 다만, 해당 정보들은 외부 장치로부터 실시간으로 수신되는 것도 가능하다. 여기서, 주행 공간과 관련된 정보는 오브젝트, 즉 장애물의 주행 공간 상의 위치, 타 로봇의 위치 및 사용자의 위치에 관한 정보일 수 있다. Distance Map은 각 cell 별로 가장 가까운 장애물까지의 직선 거리의 크기를 저장하는 형태일 수 있다. 여기서, cell(또는 grid)이란 맵에 포함된 최소 단위의 영역일 수 있다.
프로세서(140)는 로봇(100)의 동작을 전반적으로 제어한다. 구체적으로, 프로세서(140)는 로봇(100)의 각 구성과 연결되어 로봇(100)의 동작을 전반적으로 제어할 수 있다. 예를 들어, 프로세서(140)는 구동부(120) 및 메모리(130)와 전기적으로 연결되어 로봇(100)의 전반적인 동작을 제어할 수 있다.
프로세서(140)는 메모리(130)에 저장된 적어도 하나의 인스트럭션(instruction)을 실행함으로써, 다양한 실시 예에 따른 로봇(100)의 동작을 수행할 수 있다.
일 실시 예에 따라 프로세서(140)는 디지털 시그널 프로세서(digital signal processor(DSP), 마이크로 프로세서(microprocessor), 중앙처리장치(central processing unit(CPU)), MCU(Micro Controller Unit), MPU(micro processing unit), NPU(Neural Processing Unit), 컨트롤러(controller), 어플리케이션 프로세서(application processor(AP)) 등 다양한 이름으로 명명될 수 있으나, 본 명세서에서는 프로세서(140)로 기재한다.
프로세서(140)는 SoC(System on Chip), LSI(large scale integration)로 구현될 수도 있고, FPGA(Field Programmable gate array) 형태로 구현될 수도 있다. 또한, 프로세서(140)는 SRAM 등의 휘발성 메모리를 포함할 수 있다.
일 실시 예에 따르면, 프로세서(140)는 로봇(100)의 주행 공간을 복수의 서브 공간으로 식별할 수 있다. 여기서, 서브 공간은 기 설정된 기준에 따라 구분될 수 있다. 예를 들어, 주행 공간의 물리적 구조에 따라 구분되는 공간일 수 있으나, 이에 한정되는 것은 아니며 다양한 기준에 따라 구분 가능하다. 일 실시 예에 따라, 프로세서(140)는 장애물을 safe margin 만큼 확장한 Traversability Map 및 장애물까지의 거리 정보를 포함하는 Distance Map 중 적어도 하나에 기초하여 복수의 서브 공간을 식별할 수 있다.
일 실시 예에 따르면, 프로세서(140)는 로봇(100)이 주행하는 동안 적어도 하나의 센서(110)에 의해 획득된 센싱 데이터에 기초하여 복수의 서브 공간 각각에 대응되는 주행성 정보를 획득할 수 있다. 일 예에 따라 주행성 정보는 서브 공간과 관련된 영역 정보, 타 로봇 관련 정보 또는 동적 오브젝트 관련 정보 중 적어도 하나를 포함할 수 있으나, 이에 한정되는 것은 아니다.
여기서, 서브 공간과 관련된 영역 정보는 서브 공간에 대응되는 폭, 서브 공간의 통과 소요 시간, 또는 서브 공간의 여유 공간 정보 중 적어도 하나를 포함할 수 있다.
또한, 타 로봇 관련 정보는 서브 공간에 위치하는 로봇의 개수 정보, 각 로봇의 크기 정보, 서브 공간을 대기하는 타 로봇의 개수 정보 또는 타 로봇의 위치 정보 중 적어도 하나를 포함할 수 있다. 일 예에 따라 프로세서(140)는 로봇의 크기 정보를 포함하는 로봇의 식별 정보가 맵핑된 룩업 테이블을 메모리(130)에 저장할 수 있다. 일 예에 따라 프로세서(140)는 GPS를 이용하여 로봇(100)의 위치를 파악하거나, 통신 인터페이스(미도시)를 통해 외부로부터 주행 공간 내 로봇의 위치에 관한 데이터를 획득할 수 있으며, 로봇 위치 관리 모듈(미도시)을 통해 주행 공간 내의 로봇의 위치 정보를 관리할 수도 있다. 또한, 프로세서(140)는 GPS, 통신 인터페이스(미도시) 또는 로봇 위치 관리 모듈(미도시)을 통해 로봇의 개수 정보 또는 서브 공간에 대기하는 타 로봇의 개수 정보를 관리할 수 있다.
또한, 동적 오브젝트 관련 정보는 동적 오브젝트의 수 정보를 포함할 수 있다. 여기서, 오브젝트는 로봇(100)의 주행에 방해가 되는 장애물이 될 수 있으며, 동적 오브젝트는 예를 들어 사람, 동물 등을 포함할 수 있으나, 이에 한정되는 것은 아니다.
일 실시 예에 따라, 프로세서(140)는 복수의 서브 공간 각각의 폭 정보 및 로봇의 폭 정보에 기초하여 복수의 서브 공간 각각에 대응되는 통과 가능한 로봇의 개수 정보를 식별하고, 복수의 서브 공간 각각을 통과 가능한 로봇의 개수 정보를 포함하는 주행 맵을 획득할 수 있다.
일 예에 따라 프로세서(140)는 복수의 서브 공간 각각에서 피크 라인을 식별하고, 피크 라인에 기초하여 복수의 서브 공간 각각의 폭 정보를 획득할 수 있다. 예를 들어, 프로세서(140)는 복수의 서브 공간 각각에서 장애물까지의 거리 값이 피크(peak)가 되는 셀(cell)들의 집합에 기초하여 피크 라인을 식별할 수 있다. 이 경우, 프로세서(140)는 피크 라인에 포함된 셀들과 수직인 셀들의 개수에 기초하여 복수의 서브 공간 각각의 폭 정보를 획득할 수 있다. 여기서, 장애물은 정적 오브젝트일 수 있으나, 이에 한정되는 것은 아니다. 정적 오브젝트는 예를 들어 벽, 책상 및 고정 장식물 등을 포함할 수 있으나, 이에 한정되는 것은 아니다.
일 실시 예에 따라, 프로세서(140)는 장애물을 safe margin 만큼 확장한 Traversability Map 및 장애물까지의 거리 정보를 포함하는 Distance Map 중 적어도 하나에 기초하여 주행 맵을 획득할 수 있다. 일 예에 따라 Traversability Map에 따라 장애물을 safe margin 만큼 확장한 상태에서 통과 가능한 폭을 산출하여 복수의 서브 공간 각각을 통과 가능한 로봇의 개수 정보를 포함하는 주행 맵을 획득할 수 있다. 예를 들어, 프로세서(140)는 복수의 서브 공간에 대응되는 통로의 폭의 크기와 Safe margin의 크기를 더한 값을 로봇(100)의 폭의 크기와 비교하여, 주행 공간을 동시에 주행할 수 있는 로봇(100)의 개수를 계산할 수 있다.
일 실시 예에 따라, 프로세서(140)는 특정 서브 공간의 폭 정보가 획득되면, 특정 서브 공간에 위치하는 제1 타 로봇들의 폭의 합이 특정 서브 공간의 폭을 기준으로 임계 범위 내에 속하는 경우 해당 서브 공간을 통과할 예정인 제2 타 로봇을 해당 서브 공간을 대기하는 로봇으로 식별할 수 있다. 예를 들어, 프로세서(140)는 특정 서브 공간에 위치하는 제1 타 로봇들의 폭의 합을 산출하고, 제1 타 로봇들의 폭의 합이 산출된 특정 서브 공간의 폭을 기준으로 임계 범위 내에 속하는 경우 특정 서브 공간을 임계 시간 동안 다른 로봇들이 주행하지 못하는 것으로 식별할 수 있다. 이에 따라 프로세서(140)는 해당 서브 공간을 통과할 예정인 제2 타 로봇을 서브 공간을 대기하는 로봇으로 식별할 수 있다. 예를 들어, 프로세서(140)는 제2 타 로봇의 경로 정보 또는 위치 정보 중 적어도 하나에 기초하여 제2 타 로봇이 해당 서브 공간을 통과할 예정인 것으로 판단되면, 제2 타 로봇을 서브 공간을 대기하는 로봇으로 식별할 수 있다. 일 예에 따라 프로세서(140)는 제2 타 로봇의 경로 정보 또는 위치 정보 중 적어도 하나를 제2 타 로봇 또는 관리 서버 중 하나로부터 실시간으로 수신할 수 있다.
일 실시 예에 따라, 프로세서(140)는 상술한 실시 예에 따라 획득된 주행 맵에 기초하여 복수의 서브 공간 각각을 통과하기 위한 소요시간에 대한 정보를 획득할 수 있다. 이 경우, 프로세서(140)는 획득된 소요 시간 정보에 기초하여 로봇의 이동 경로를 식별할 수 있고, 식별된 이동 경로에 기초하여 구동부(120)를 제어할 수 있다. 예를 들어, 프로세서(140)는 복수의 서브 공간 각각을 통과하기 위한 소요시간을 비교하여, 목적지까지 도달하는 복수 개의 경로 중 최단 시간이 소요되는 경로를 식별할 수 있으나, 최소 거리 경로를 식별할 수도 있으며, 이에 한정되는 것은 아니다.
한편, 상술한 실시 예에서는 처음에 식별된 복수의 서브 공간 및 주행 맵에 포함된 복수의 서브 공간이 동일한 것으로 설명하였지만, 이는 설명의 편의를 위한 것이며, 처음에 식별된 복수의 서브 공간 및 주행 맵에 포함된 복수의 서브 공간은 일부 상이할 수 있다. 예를 들어 처음에 식별된 복수의 서브 공간 중 적어도 일부의 공간들이 결합되어 주행 맵에 포함된 하나의 서브 공간이 될 수 있다. 또는 처음에 식별된 복수의 서브 공간 중 하나의 서브 공간이 주행 맵에서는 복수의 서브 공간으로 구분될 수도 있다. 즉, 주행 맵에서 구분되는 각 서브 공간은 주행성 정보에 기초하여 다양한 방식으로 결정될 수 있다.
한편, 프로세서(140)는 식별된 통과 가능한 로봇 개수 정보를 통신 인터페이스(미도시)를 통해 서버 또는 타 로봇으로 송신할 수 있다. 이 경우, 타 로봇은 수신한 로봇 개수 정보를 이용하여 이동 경로를 생성할 수 있다.
도 3은 일 실시 예에 따른 로봇의 이동 경로 및 모션 생성 방법을 설명하기 위한 도면이다.
도 3에 따르면, 프로세서(140)는 기본 맵 관리 모듈(310)을 통해 주행 공간에 대한 기본 맵(이하, 기본 맵)을 관리할 수 있다. 프로세서(140)는 적어도 하나의 센서(110) 또는 통신 인터페이스(미도시)를 통해 획득된 데이터에 기초하여 기본 맵을 획득할 수 있다. 일 예에 따라 프로세서(140)는 카메라, 라이더 센서, 적외선 센서, 초음파 센서 등과 같이 로봇(100)에 구비된 다양한 센서를 이용하여 기본 맵을 획득할 수 있다. 여기서, 기본 맵은 공간을 Occupied cell, Free cell 또는 Unknown cell 중 적어도 하나로 구분한 형태일 수 있다.
또한, 프로세서(140)는 로봇 위치 관리 모듈(320)을 통해 주행 공간 내의 로봇의 위치 정보를 관리한다. 일 예에 따라 프로세서(140)는 GPS를 이용하여 로봇(100)의 위치를 파악하거나, 통신 인터페이스(미도시)를 통해 외부로부터 주행 공간 내 로봇의 위치에 관한 데이터를 획득할 수 있다.
이어서, 프로세서(140)는 획득한 기본 맵과 로봇의 위치 정보에 기초하여, 주행 맵 관리 모듈(330)을 통해 주행 맵을 획득할 수 있다. 여기서, 주행 맵은 도 6에 도시된 바와 같은 형태일 수 있으나, 이에 한정되는 것은 아니다.
이 후, 프로세서(140)는 주행 맵 관리 모듈(330)을 통해 획득한 주행 맵에 기초하여, 획득한 로봇의 이동 경로에 관한 정보를 경로 생성 모듈(340)을 통해 관리할 수 있다.
이 후, 프로세서(140)는 획득한 로봇의 이동 경로에 관한 정보에 기초하여, 대기 모션 생성 모듈(350)을 통해 대기 모션을 생성하거나 이동 모션 생성 모듈(360)을 통해 이동 모션을 생성할 수 있다. 여기서, 대기 모션이란 로봇(100)의 이동을 중지시켜 로봇(100)이 현재 위치에서 대기하도록 하는 제어 신호일 수 있다. 또한, 이동 모션이란 이동 경로에 따라 로봇(100)이 이동을 유지하도록 하는 제어 신호일 수 있다. 이어서, 프로세서(140)는 구동 제어 모듈(370)을 통해 생성된 모션, 즉 제어 신호에 대응되는 구동 신호를 생성하여 구동부(120)로 전송할 수 있다.
도 4는 일 실시 예에 따른 주행 맵 관리 모듈을 설명하기 위한 도면이다.
도 4에 따르면, 프로세서(140)는 획득한 기본 맵에 기초하여 Distance Map을 획득(331)할 수 있다. 여기서, Distance Map은 장애물까지의 거리 및 장애물의 확률 값을 저장하는 형태이거나, 각 cell별로 가장 가까운 Occupied Cell까지의 직선 거리의 크기를 저장하는 형태일 수 있으나, 이에 한정되지 않는다.
이어서, 프로세서(140)는 Distance map에 포함된 거리 정보 등에 기초하여 Peak distance line(또는, 피크 라인(Peak line))을 추출(332)할 수 있다. 여기서, Peak distance line은 Distance map에서 각 Free cell 별로 저장된 Occupied cell까지의 직선 거리의 크기가 peak가 되는 cell들의 집합으로 형성된 line이다.
이 후, 프로세서(140)는 Distance Map에 포함된 거리 정보 및 획득한 Peak distance line에 기초하여 주행 공간의 통로 폭을 계산할 수 있다(333). 이 때, 통로 폭은 Peak distance line 상에 위치한 각 cell 과 Occupied cell까지의 직선거리를 이용하여 계산할 수 있으나, 이에 한정되지 않는다.
이 후, 프로세서(140)는 Distance map과 Peak distance line 및 주행 공간의 통로 폭에 기초하여 주행 맵을 생성할 수 있다(334). 이 후, 프로세서(140)는 주행 맵과 Distance Map에 기초하여 경로 생성 모듈(340)을 통해 로봇의 이동 경로를 생성할 수 있다.
도 5는 일 실시 예에 따른 기본 맵을 설명하기 위한 도면이다.
도 5에 따르면, 기본 맵(510)은 주행 공간을 Occupied cell, Free cell 또는 Unknown cell 중 적어도 하나로 구분한 형태일 수 있다. 일 예에 따르면, Occupied cell은 주행 공간 내의 정적 오브젝트일 수 있고, Free cell은 주행 공간 내에서 정적 오브젝트가 위치하지 않는 공간일 수 있다. 일 예에 따라 정적 오브젝트는 주행 공간 내의 기둥, 테이블, 의자, 벽 등이 될 수 있으나, 이에 한정되는 것은 아니다.
도 6은 일 실시 예에 따른 주행 맵의 형태를 설명하기 위한 도면이다.
도 6에 따르면, 주행 맵(600)은 Peak distance line(650) 정보, 통과 가능한 로봇의 개수로 구분된 서브 공간 정보를 포함할 수 있다. 예를 들어, 서브 공간 정보는,
한 대의 로봇만이 지나갈 수 있는 one-way region(610), 두 대의 로봇이 지나갈 수 있는 two-way region(620), Occupied cell에 해당되는 공간을 obstacles(630), 세 대 이상의 로봇이 지나갈 수 있는 open region(640)으로 구분될 수 있다.
도 7은 일 실시 예에 따른 주행성 정보 및 그 저장 방법을 설명하기 위한 도면이다.
도 7에 따르면, 프로세서(140)는 주행성 정보를 그래프(graph) 모델로 메모리(130)에 저장할 수 있다. 여기서, 그래프 모델이란 노드(node)와 그 노드를 연결하는 에지(edge)를 하나로 모아 놓은 자료 구조를 의미하며, 연결되어 있는 객체 간의 관계를 표현하는 경우에 일반적으로 사용한다. 일 예에 따라, 획득된 주행 맵에 기초하여 복수의 서브 공간 각각에 대응되는 주행성 정보를 그래프 모델로 도식화할 수 있으며, 각 노드에는 각 서브 공간에 대응되는 주행성 정보가 저장될 수 있다. 이 경우, 에지는 각 노드 간의 연결성을 나타낼 수 있다. 예를 들어, 에지는 임의의 두 서브 공간이 인접한 경우에 그 인접성을 나타내기 위한 것일 수 있다.
일 예에 따라 각 서브 공간 간 소요 시간 즉, 노드 간 소요 시간은 하기와 같은 수학식 1에 기초하여 산출될 수 있다.
Figure PCTKR2022010870-appb-img-000001
Figure PCTKR2022010870-appb-img-000002
는 서브 공간을 통과하는데 걸리는 시간을 의미하며,
Figure PCTKR2022010870-appb-img-000003
는 공간 내에 대기하는 로봇의 수를 의미한다. α와 β는 서브 공간의 복잡도에 대한 파라미터이다. 여기서, α와 β는 0과 1 사이의 값을 가질 수 있다.
일 예에 따라, 사용자가 많은 음식점 등의 경우 β의 값이 α의 값보다 클 수 있으며, 사용자가 적은 음식점 등의 경우 α의 값이 β 의 값보다 클 수 있으나, 이에 한정되는 것은 아니다.
Figure PCTKR2022010870-appb-img-000004
은 해당 서브 공간의 폭을 의미하며,
Figure PCTKR2022010870-appb-img-000005
는 해당 서브 공간의 동적 오브젝트의 수를 의미한다.
Figure PCTKR2022010870-appb-img-000006
은 주행성 정보를 고려하지 않은 경우 해당 서브 공간을 통과하는데 걸리는 시간을 의미한다.
수학식 1에 따라, 복수의 서브 공간 각각을 통과하기 위한 소요시간
Figure PCTKR2022010870-appb-img-000007
의 값에 주행성 정보를 반영하여
Figure PCTKR2022010870-appb-img-000008
를 계산할 수 있다. 이 경우, 특정 서브 공간에 대응되는 폭, 서브 공간을 대기하는 타 로봇의 개수 정보, 동적 오브젝트의 수 정보에 기초하여
Figure PCTKR2022010870-appb-img-000009
를 계산할 수 있다.
수학식 1에 따르면, 서브 공간 내에 대기하는 로봇의 수 및 해당 서브 공간의 동적 오브젝트의 수에 비례하여
Figure PCTKR2022010870-appb-img-000010
는 증가하며, 서브 공간의 폭의 크기에 반비례하여
Figure PCTKR2022010870-appb-img-000011
는 증가할 수 있다.
도 8은 일 실시 예에 따른 로봇의 타 로봇 식별 방법을 설명하기 위한 도면이다.
도 8에 따르면, 프로세서(140)는 서브 공간에 위치하는 제1 타 로봇들의 폭의 합이 서브 공간의 폭을 기준으로 임계 범위 내에 속하는 경우, 서브 공간을 통과할 예정인 제2 타 로봇을 서브 공간을 대기하는 로봇으로 식별할 수 있다. 예를 들어, 로봇의 주행 경로 상에 타 로봇이 존재하는 경우, 도 1의 로봇(100)에 대응되는 로봇(810)의 프로세서(140)는 제1 서브 공간에 위치하는 제1 타 로봇들(830 및 840)들의 폭의 합이 제1 서브 공간의 폭(850)을 기준으로 임계 범위 내에 속하는 경우 제1 서브 공간을 통과할 예정인 제2 타 로봇(820)을 제1 서브 공간을 대기하는 로봇으로 식별할 수 있다.
도 9는 일 실시 예에 따른 복수의 서브 공간 각각에 대응되는 통과 가능한 로봇의 개수 정보를 식별하는 방법을 설명하기 위한 도면이다.
도 9에 따르면, 프로세서(140)는 복수의 서브 공간 각각의 폭 정보 및 로봇(100)의 폭 정보에 기초하여 복수의 서브 공간 각각에 대응되는 통과 가능한 로봇의 개수 정보를 식별하고, 통과 가능한 로봇의 개수 정보를 포함하는 주행 맵을 획득할 수 있다.
일 실시 예에 따르면, 프로세서(140)는 서브 공간의 폭 정보(940) 및 로봇(910 내지 930)의 폭 정보에 기초하여 서브 공간에 대응되는 통과 가능한 로봇의 개수의 최대값을 3으로 식별할 수 있고, 이에 기초하여 통과 가능한 로봇의 개수 정보를 포함하는 주행 맵을 획득할 수 있다. 이 경우, 프로세서(140)는 기 획득한 타 로봇 관련 정보에 기초하여 다양한 크기의 로봇의 폭 정보를 획득할 수 있으며, 이에 따라 서브 공간에 대응되는 통과 가능한 로봇의 개수의 최대값은 주행 중에도 업데이트될 수 있으나, 이에 한정되는 것은 아니다.도 10은 일 실시 예에 따른 로봇의 세부 구성을 나타내는 블록도이다.
도 10에 따르면 로봇(100')은 적어도 하나의 센서(110), 구동부(120), 메모리(130), 프로세서(140), 디스플레이(150), 통신 인터페이스(160), 사용자 인터페이스(170)를 포함할 수 있다. 도 10에 도시된 구성 중 도 2에 도시된 구성과 중복되는 구성에 대해서는 자세한 설명을 생략하도록 한다.
디스플레이(150)는 자발광 소자를 포함하는 디스플레이 또는, 비자발광 소자 및 백라이트를 포함하는 디스플레이로 구현될 수 있다. 예를 들어, LCD(Liquid Crystal Display), OLED(Organic Light Emitting Diodes) 디스플레이, LED(Light Emitting Diodes), 마이크로 LED(micro LED), Mini LED, PDP(Plasma Display Panel), QD(Quantum dot) 디스플레이, QLED(Quantum dot light-emitting diodes) 등과 같은 다양한 형태의 디스플레이로 구현될 수 있다. 디스플레이(110) 내에는 a-si TFT, LTPS(low temperature poly silicon) TFT, OTFT(organic TFT) 등과 같은 형태로 구현될 수 있는 구동 회로, 백라이트 유닛 등도 함께 포함될 수 있다. 한편, 디스플레이(170)는 터치 센서와 결합된 터치 스크린, 플렉시블 디스플레이(flexible display), 롤러블 디스플레이(rollable display), 3차원 디스플레이(3D display), 복수의 디스플레이 모듈이 물리적으로 연결된 디스플레이 등으로 구현될 수 있다. 또한, 디스플레이(170)는 터치 스크린을 내장하고 있어, 손가락 또는 펜(예를 들어, 스타일러스 펜)을 이용하여 프로그램을 실행시킬 수 있도록 구현될 수 있다.
통신 인터페이스(160)는 다양한 타입의 데이터를 입력 및 출력할 수 있다. 예를 들어 통신 인터페이스(160)는 AP 기반의 Wi-Fi(와이파이, Wireless LAN 네트워크), 블루투스(Bluetooth), 지그비(Zigbee), 유/무선 LAN(Local Area Network), WAN(Wide Area Network), 이더넷(Ethernet), IEEE 1394, HDMI(High-Definition Multimedia Interface), USB(Universal Serial Bus), MHL(Mobile High-Definition Link), AES/EBU(Audio Engineering Society/ European Broadcasting Union), 옵티컬(Optical), 코액셜(Coaxial) 등과 같은 통신 방식을 통해 외부 장치(예를 들어, 소스 장치), 외부 저장 매체(예를 들어, USB 메모리), 외부 서버(예를 들어 웹 하드)와 다양한 타입의 데이터를 송수신할 수 있다.
일 예에 따라 맵 정보를 외부 장치(또는 외부 서버)로부터 수신하는 경우, 통신 인터페이스(160)를 통해 맵 정보를 수신할 수 있다.
사용자 인터페이스(170)는 로봇(100')이 사용자와 인터렉션(Interaction)을 수행하기 위한 구성이다. 예를 들어 사용자 인터페이스(170)는 터치 센서, 모션 센서, 버튼, 조그(Jog) 다이얼, 스위치, 마이크 또는 스피커 중 적어도 하나를 포함할 수 있으나 이에 한정되는 것은 아니다.
도 11은 일 실시 예에 따른 로봇의 제어 방법을 설명하기 위한 흐름도이다.
도 11에 도시된 로봇의 제어 방법에 따르면, 로봇의 주행 공간을 복수의 서브 공간으로 식별한다(S1110).
이어서, 로봇이 주행하는 동안 센서에 의해 획득된 센싱 데이터에 기초하여 복수의 서브 공간 각각에 대응되는 주행성 정보를 획득한다(S1120).
이어서, 주행성 정보에 기초하여 획득된 주행 맵에 기초하여 복수의 서브 공간 각각을 통과하기 위한 소요 시간에 대한 정보를 획득한다(S1130).
이어서, 획득된 소요 시간 정보에 기초하여 로봇의 이동 경로를 식별한다(S1140).
이어서, 식별된 이동 경로에 기초하여 로봇의 주행을 제어한다(S1150).
또한, 주행성 정보를 획득하는 S1120 단계에서는, 주행성 정보는 서브 공간과 관련된 영역 정보, 타 로봇 관련 정보 또는 동적 오브젝트 관련 정보 중 적어도 하나를 포함할 수 있다.
또한, 주행성 정보를 획득하는 S1120 단계에서는, 서브 공간과 관련된 영역 정보는, 서브 공간에 대응되는 폭, 서브 공간의 통과 소요시간, 또는 서브 공간의 여유 공간 정보 중 적어도 하나를 포함할 수 있고, 동적 오브젝트 관련 정보는 동적 오브젝트의 수 정보를 포함할 수 있다.
또한, 주행성 정보를 획득하는 S1120 단계에서는, 서브 공간과 관련된 타 로봇 관련 정보는, 서브 공간에 위치하는 로봇의 개수 정보, 각 로봇의 크기 정보, 서브 공간을 대기하는 타 로봇의 개수 정보 또는 타 로봇의 위치 정보 중 적어도 하나를 포함할 수 있다.
또한, 주행성 정보를 획득하는 S1120 단계에서는, 서브 공간에 위치하는 제1 타 로봇들의 폭의 합이 서브 공간의 폭을 기준으로 임계 범위 내에 속하는 경우 서브 공간을 통과할 예정인 제2 타 로봇을 서브 공간을 대기하는 로봇으로 식별할 수 있다.
또한, 주행성 정보를 획득하는 S1120 단계에서는, 복수의 서브 공간 각각의 폭 정보 및 로봇의 폭 정보에 기초하여 복수의 서브 공간 각각에 대응되는 통과 가능한 로봇의 개수 정보를 식별할 수 있다.
또한, 주행성 정보를 획득하는 S1120 단계에서는, 복수의 서브 공간 각각에서 장애물까지의 거리 정보가 피크(peak)가 되는 셀들의 집합에 기초하여 획득된 피크 라인을 식별하는 단계를 포함할 수 있고, 이 때, 주행 맵은 피크 라인에 대응되는 정보를 포함할 수 있다.
또한, 주행성 정보를 획득하는 S1120 단계에서는, 피크 라인에 포함된 셀들과 수직인 셀들의 개수에 기초하여 복수의 서브 공간 각각의 폭 정보를 획득할 수 있다.
또한, 소요 시간에 대한 정보를 획득하는 S1130 단계에서는, 장애물을 safe margin 만큼 확장한 Traversability Map 및 장애물까지의 거리 정보를 포함하는 Distance Map 중 적어도 하나에 기초하여 주행 맵을 획득할 수 있다.
상술한 다양한 실시 예에 따르면, 주행 공간을 복수 개의 서브 공간으로 구분하고, 각 서브 공간 별 다양한 타입의 정보들을 고려하여 최단 시간 경로를 생성할 수 있게 된다.
한편, 상술한 다양한 실시 예들에 따른 방법들은, 기존 전자 장치에 설치 가능한 어플리케이션 형태로 구현될 수 있다. 또는 상술한 본 개시의 다양한 실시 예들에 따른 방법들은 딥 러닝 기반의 인공 신경망(또는 심층 인공 신경망) 즉, 학습 네트워크 모델을 이용하여 수행될 수 있다.
또한, 상술한 다양한 실시 예들에 따른 방법들은, 기존 전자 장치에 대한 소프트웨어 업그레이드, 또는 하드웨어 업그레이드 만으로도 구현될 수 있다.
또한, 상술한 본 다양한 실시 예들은 전자 장치에 구비된 임베디드 서버, 또는 전자 장치의 외부 서버를 통해 수행되는 것도 가능하다.
한편, 일시 예에 따르면, 이상에서 설명된 다양한 실시 예들은 기기(machine)(예: 컴퓨터)로 읽을 수 있는 저장 매체(machine-readable storage media)에 저장된 명령어를 포함하는 소프트웨어로 구현될 수 있다. 기기는, 저장 매체로부터 저장된 명령어를 호출하고, 호출된 명령어에 따라 동작이 가능한 장치로서, 개시된 실시 예들에 따른 전자 장치(예: 전자 장치(A))를 포함할 수 있다. 명령이 프로세서에 의해 실행될 경우, 프로세서가 직접, 또는 프로세서의 제어 하에 다른 구성요소들을 이용하여 명령에 해당하는 기능을 수행할 수 있다. 명령은 컴파일러 또는 인터프리터에 의해 생성 또는 실행되는 코드를 포함할 수 있다. 기기로 읽을 수 있는 저장 매체는, 비일시적(non-transitory) 저장매체의 형태로 제공될 수 있다. 여기서, '비일시적'은 저장매체가 신호(signal)를 포함하지 않으며 실재(tangible)한다는 것을 의미할 뿐 데이터가 저장매체에 반영구적 또는 임시적으로 저장됨을 구분하지 않는다.
또한, 일 실시 예에 따르면, 이상에서 설명된 다양한 실시 예들에 따른 방법은 컴퓨터 프로그램 제품(computer program product)에 포함되어 제공될 수 있다. 컴퓨터 프로그램 제품은 상품으로서 판매자 및 구매자 간에 거래될 수 있다. 컴퓨터 프로그램 제품은 기기로 읽을 수 있는 저장 매체(예: compact disc read only memory (CD-ROM))의 형태로, 또는 어플리케이션 스토어(예: 플레이 스토어TM)를 통해 온라인으로 배포될 수 있다. 온라인 배포의 경우에, 컴퓨터 프로그램 제품의 적어도 일부는 제조사의 서버, 어플리케이션 스토어의 서버, 또는 중계 서버의 메모리와 같은 저장 매체에 적어도 일시 저장되거나, 임시적으로 생성될 수 있다.
또한, 상술한 다양한 실시 예들에 따른 구성 요소(예: 모듈 또는 프로그램) 각각은 단수 또는 복수의 개체로 구성될 수 있으며, 전술한 해당 서브 구성 요소들 중 일부 서브 구성 요소가 생략되거나, 또는 다른 서브 구성 요소가 다양한 실시 예에 더 포함될 수 있다. 대체적으로 또는 추가적으로, 일부 구성 요소들(예: 모듈 또는 프로그램)은 하나의 개체로 통합되어, 통합되기 이전의 각각의 해당 구성 요소에 의해 수행되는 기능을 동일 또는 유사하게 수행할 수 있다. 다양한 실시 예들에 따른, 모듈, 프로그램 또는 다른 구성 요소에 의해 수행되는 동작들은 순차적, 병렬적, 반복적 또는 휴리스틱하게 실행되거나, 적어도 일부 동작이 다른 순서로 실행되거나, 생략되거나, 또는 다른 동작이 추가될 수 있다.
이상에서는 바람직한 실시 예에 대하여 도시하고 설명하였지만, 본 개시는 상술한 특정의 실시 예에 한정되지 아니하며, 청구범위에서 청구하는 요지를 벗어남이 없이 당해 개시에 속하는 기술분야에서 통상의 지식을 가진 자에 의해 다양한 변형 실시가 가능한 것은 물론이고, 이러한 변형실시들은 본 개시의 기술적 사상이나 전망으로부터 개별적으로 이해되어서는 안될 것이다.

Claims (15)

  1. 로봇에 있어서,
    적어도 하나의 센서;
    구동부;
    적어도 하나의 명령을 저장하는 메모리; 및
    상기 적어도 하나의 센서, 상기 구동부 및 상기 메모리와 연결되어 상기 전자 장치를 제어하는 프로세서;를 포함하며,
    상기 프로세서는,
    상기 적어도 하나의 명령어를 실행함으로써,
    상기 로봇의 주행 공간을 복수의 서브 공간으로 식별하고,
    상기 로봇이 주행하는 동안 상기 적어도 하나의 센서에 의해 획득된 센싱 데이터에 기초하여 상기 복수의 서브 공간 각각에 대응되는 주행성 정보를 획득하고,
    상기 획득된 주행성 정보에 기초하여 획득된 주행 맵에 기초하여 복수의 서브 공간을 각각을 통과하기 위한 소요 시간에 대한 정보를 획득하고,
    상기 획득된 소요 시간 정보에 기초하여 상기 로봇의 이동 경로를 식별하고,
    상기 식별된 이동 경로에 기초하여 상기 구동부를 제어하며,
    상기 주행성 정보는,
    상기 서브 공간과 관련된 영역 정보, 타 로봇 관련 정보 또는 동적 오브젝트 관련 정보 중 적어도 하나를 포함하는, 로봇.
  2. 제1항에 있어서,
    상기 서브 공간과 관련된 영역 정보는,
    상기 서브 공간에 대응되는 폭, 상기 서브 공간의 통과 소요 시간, 또는 상기 서브 공간의 여유 공간 정보 중 적어도 하나를 포함하고,
    상기 동적 오브젝트 관련 정보는,
    동적 오브젝트의 수 정보를 포함하는, 로봇.
  3. 제1항에 있어서,
    상기 서브 공간과 관련된 타 로봇 관련 정보는,
    상기 서브 공간에 위치하는 로봇의 개수 정보, 각 로봇의 크기 정보, 상기 서브 공간을 대기하는 타 로봇의 개수 정보 또는 타 로봇의 위치 정보 중 적어도 하나를 포함하는, 로봇.
  4. 제1항에 있어서,
    상기 프로세서는,
    상기 서브 공간에 위치하는 제1 타 로봇들의 폭의 합이 상기 서브 공간의 폭을 기준으로 임계 범위 내에 속하는 경우 상기 서브 공간을 통과할 예정인 제2 타 로봇을 상기 서브 공간을 대기하는 로봇으로 식별하는, 로봇.
  5. 제1항에 있어서,
    상기 프로세서는,
    상기 복수의 서브 공간 각각의 폭 정보 및 로봇의 폭 정보에 기초하여 상기 복수의 서브 공간 각각에 대응되는 통과 가능한 로봇의 개수 정보를 식별하고,
    상기 통과 가능한 로봇의 개수 정보를 포함하는 상기 주행 맵을 획득하는, 로봇.
  6. 제1항에 있어서,
    상기 프로세서는,
    상기 복수의 서브 공간 각각에서 장애물까지의 거리 정보가 피크(peak)가 되는 셀들의 집합에 기초하여 획득된 피크 라인을 식별하고,
    상기 피크 라인에 대응되는 정보를 포함하는 상기 주행 맵을 획득하는, 로봇.
  7. 제6항에 있어서,
    상기 프로세서는,
    상기 피크 라인에 포함된 셀들과 수직인 셀들의 개수에 기초하여 상기 복수의 서브 공간 각각의 폭 정보를 획득하는, 로봇.
  8. 제1항에 있어서,
    상기 프로세서는,
    장애물을 safe margin 만큼 확장한 Traversability Map 및 장애물까지의 거리 정보를 포함하는 Distance Map 중 적어도 하나에 기초하여 상기 주행 맵을 획득하는, 로봇.
  9. 로봇의 제어 방법에 있어서,
    로봇의 주행 공간을 복수의 서브 공간으로 식별하는 단계;
    상기 로봇이 주행하는 동안 상기 적어도 하나의 센서에 의해 획득된 센싱 데이터에 기초하여 상기 복수의 서브 공간 각각에 대응되는 주행성 정보를 획득하는 단계;
    상기 획득된 주행성 정보에 기초하여 획득된 주행 맵에 기초하여 복수의 서브 공간을 각각을 통과하기 위한 소요 시간에 대한 정보를 획득하는 단계;
    상기 획득된 소요 시간 정보에 기초하여 상기 로봇의 이동 경로를 식별하는 단계; 및
    상기 식별된 이동 경로에 기초하여 상기 로봇의 주행을 제어하는 단계;를 포함하며,
    상기 주행성 정보는,
    상기 서브 공간과 관련된 영역 정보, 타 로봇 관련 정보 또는 동적 오브젝트 관련 정보 중 적어도 하나를 포함하는, 제어 방법.
  10. 제9항에 있어서,
    상기 서브 공간과 관련된 영역 정보는,
    상기 서브 공간에 대응되는 폭, 상기 서브 공간의 통과 소요 시간, 또는 상기 서브 공간의 여유 공간 정보 중 적어도 하나를 포함하고,
    상기 동적 오브젝트 관련 정보는,
    동적 오브젝트의 수 정보를 포함하는, 제어 방법.
  11. 제9항에 있어서,
    상기 서브 공간과 관련된 타 로봇 관련 정보는,
    상기 서브 공간에 위치하는 로봇의 개수 정보, 각 로봇의 크기 정보, 상기 서브 공간을 대기하는 타 로봇의 개수 정보 또는 타 로봇의 위치 정보 중 적어도 하나를 포함하는, 제어 방법.
  12. 제9항에 있어서,
    상기 주행성 정보를 획득하는 단계는,
    상기 서브 공간에 위치하는 제1 타 로봇들의 폭의 합이 상기 서브 공간의 폭을 기준으로 임계 범위 내에 속하는 경우 상기 서브 공간을 통과할 예정인 제2 타 로봇을 상기 서브 공간을 대기하는 로봇으로 식별하는, 제어 방법.
  13. 제9항에 있어서,
    상기 주행성 정보를 획득하는 단계는,
    상기 복수의 서브 공간 각각의 폭 정보 및 로봇의 폭 정보에 기초하여 상기 복수의 서브 공간 각각에 대응되는 통과 가능한 로봇의 개수 정보를 식별하는, 제어 방법.
  14. 제9항에 있어서,
    상기 주행성 정보를 획득하는 단계는,
    상기 복수의 서브 공간 각각에서 장애물까지의 거리 정보가 피크(peak)가 되는 셀들의 집합에 기초하여 획득된 피크 라인을 식별하는 단계;를 포함하고,
    상기 주행 맵은,
    상기 피크 라인에 대응되는 정보를 포함하는, 제어 방법.
  15. 로봇의 프로세서에 의해 실행되는 경우 상기 로봇이 동작을 수행하도록 하는 컴퓨터 명령을 저장하는 비일시적 컴퓨터 판독 가능 매체에 있어서, 상기 동작은,
    로봇의 주행 공간을 복수의 서브 공간으로 식별하는 단계;
    상기 로봇이 주행하는 동안 상기 적어도 하나의 센서에 의해 획득된 센싱 데이터에 기초하여 상기 복수의 서브 공간 각각에 대응되는 주행성 정보를 획득하는 단계;
    상기 획득된 주행성 정보에 기초하여 획득된 주행 맵에 기초하여 복수의 서브 공간을 각각을 통과하기 위한 소요 시간에 대한 정보를 획득하는 단계;
    상기 획득된 소요 시간 정보에 기초하여 상기 로봇의 이동 경로를 식별하는 단계; 및
    상기 식별된 이동 경로에 기초하여 상기 로봇의 주행을 제어하는 단계;를 포함하며,
    상기 주행성 정보는,
    상기 서브 공간과 관련된 영역 정보, 타 로봇 관련 정보 또는 동적 오브젝트 관련 정보 중 적어도 하나를 포함하는, 비일시적 컴퓨터 판독 가능 매체.
PCT/KR2022/010870 2021-09-09 2022-07-25 로봇 및 그 제어 방법 WO2023038284A1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
EP22867553.4A EP4371714A1 (en) 2021-09-09 2022-07-25 Robot and control method therefor
US18/410,563 US20240139947A1 (en) 2021-09-09 2024-01-11 Robot and control method therefor

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020210120397A KR20230037266A (ko) 2021-09-09 2021-09-09 로봇 및 그 제어 방법
KR10-2021-0120397 2021-09-09

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US18/410,563 Continuation US20240139947A1 (en) 2021-09-09 2024-01-11 Robot and control method therefor

Publications (1)

Publication Number Publication Date
WO2023038284A1 true WO2023038284A1 (ko) 2023-03-16

Family

ID=85506562

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2022/010870 WO2023038284A1 (ko) 2021-09-09 2022-07-25 로봇 및 그 제어 방법

Country Status (4)

Country Link
US (1) US20240139947A1 (ko)
EP (1) EP4371714A1 (ko)
KR (1) KR20230037266A (ko)
WO (1) WO2023038284A1 (ko)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20130018921A (ko) * 2010-07-13 2013-02-25 무라다기카이가부시끼가이샤 자율 이동체
KR20170140561A (ko) * 2016-06-13 2017-12-21 한국전자통신연구원 다중 로봇의 주행 제어 장치 및 방법
JP2019084641A (ja) * 2017-11-08 2019-06-06 学校法人早稲田大学 自律移動ロボット、並びに、その制御装置及び動作制御プログラム
KR20190109332A (ko) * 2019-09-05 2019-09-25 엘지전자 주식회사 로봇의 경로 계획 장치 및 방법과, 이에 기반하여 동작하는 로봇
KR20210045022A (ko) * 2019-10-16 2021-04-26 네이버 주식회사 인식된 사람과 연관된 개인 영역에 기반하여 로봇을 제어하는 방법 및 시스템

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20130018921A (ko) * 2010-07-13 2013-02-25 무라다기카이가부시끼가이샤 자율 이동체
KR20170140561A (ko) * 2016-06-13 2017-12-21 한국전자통신연구원 다중 로봇의 주행 제어 장치 및 방법
JP2019084641A (ja) * 2017-11-08 2019-06-06 学校法人早稲田大学 自律移動ロボット、並びに、その制御装置及び動作制御プログラム
KR20190109332A (ko) * 2019-09-05 2019-09-25 엘지전자 주식회사 로봇의 경로 계획 장치 및 방법과, 이에 기반하여 동작하는 로봇
KR20210045022A (ko) * 2019-10-16 2021-04-26 네이버 주식회사 인식된 사람과 연관된 개인 영역에 기반하여 로봇을 제어하는 방법 및 시스템

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
ETHERNET, IEEE, pages 1394

Also Published As

Publication number Publication date
US20240139947A1 (en) 2024-05-02
EP4371714A1 (en) 2024-05-22
KR20230037266A (ko) 2023-03-16

Similar Documents

Publication Publication Date Title
WO2020060308A1 (ko) 전자 장치 및 전자 장치의 차량 제어 방법, 서버 및 서버의 정밀 지도 데이터 제공 방법
WO2018230845A1 (ko) 비전 정보에 기반한 위치 설정 방법 및 이를 구현하는 로봇
WO2020017875A1 (en) Electronic apparatus, method for processing image and computer-readable recording medium
WO2015156623A1 (en) Electronic device and method for providing environment information
WO2023038284A1 (ko) 로봇 및 그 제어 방법
WO2019245320A1 (ko) 이미지 센서와 복수의 지자기 센서를 융합하여 위치 보정하는 이동 로봇 장치 및 제어 방법
WO2022039476A1 (ko) 이미지를 이용한 위치 정보 획득 방법 및 이를 지원하는 전자 장치
WO2013022159A1 (en) Traffic lane recognizing apparatus and method thereof
EP3753237A1 (en) Electronic device and control method thereof
WO2023003158A1 (ko) 로봇 및 그 제어 방법
WO2020235740A1 (ko) 이미지 기반 실내 측위 서비스 시스템 및 방법
WO2021201425A1 (ko) 차량의 주행 안내 방법 및 전자 장치
WO2024043497A1 (ko) 로봇 및 그 구동 방법
WO2023038218A1 (ko) 로봇 및 그 제어 방법
WO2023027310A1 (ko) 로봇 및 그 제어 방법
WO2020071853A1 (ko) 주행 보조 장치 및 이미지 처리 방법
WO2024071659A1 (ko) 엘리베이터를 이용하는 로봇 및 그 제어 방법
WO2019231119A1 (ko) 혼잡도 시각화 장치 및 방법
WO2022240256A1 (ko) 자율 주행 로봇을 위한 거리 변환 지도 기반의 반응형 네비게이션
WO2023008720A1 (ko) 로봇 및 그 제어 방법
KR20230057062A (ko) 로봇 및 그 제어 방법
WO2022102967A1 (ko) 전자 장치 및 그 제어 방법
WO2024101589A1 (ko) 라이다 센서를 이용하여 이동 로봇의 주행을 제어하기 위한 방법 및 시스템
WO2021118089A1 (ko) 로봇 및 그 제어 방법
WO2022085844A1 (ko) 로봇 관리 서버, 시스템 및 그 제어 방법

Legal Events

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

Ref document number: 22867553

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 2022867553

Country of ref document: EP

ENP Entry into the national phase

Ref document number: 2022867553

Country of ref document: EP

Effective date: 20240215

NENP Non-entry into the national phase

Ref country code: DE