WO2023003158A1 - Robot and control method thereof - Google Patents

Robot and control method thereof Download PDF

Info

Publication number
WO2023003158A1
WO2023003158A1 PCT/KR2022/007503 KR2022007503W WO2023003158A1 WO 2023003158 A1 WO2023003158 A1 WO 2023003158A1 KR 2022007503 W KR2022007503 W KR 2022007503W WO 2023003158 A1 WO2023003158 A1 WO 2023003158A1
Authority
WO
WIPO (PCT)
Prior art keywords
velocity
information
speed
obtaining
profile information
Prior art date
Application number
PCT/KR2022/007503
Other languages
French (fr)
Korean (ko)
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
Priority claimed from KR1020210120014A external-priority patent/KR20230014031A/en
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Publication of WO2023003158A1 publication Critical patent/WO2023003158A1/en

Links

Images

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course or altitude of land, water, air, or space vehicles, e.g. automatic pilot
    • G05D1/02Control of position or course in two dimensions

Definitions

  • the present disclosure relates to a robot and a control method thereof, and more particularly to a robot and a control method thereof.
  • the present disclosure is in accordance with the above-described needs, and is to provide a robot and a control method for planning a shortest time path in consideration of various types of obstacles identified while the robot is traveling.
  • 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 controlling the electronic device, wherein the processor obtains characteristic information of an object based on sensing data acquired by the at least one sensor while the robot is driving by executing the at least one command. and obtaining velocity profile information according to a distance to the object based on the acquired object characteristic information, obtaining a velocity map including velocity information for each area based on the obtained velocity profile information, and obtaining the
  • the driving unit may be controlled based on a movement path identified based on the determined speed map.
  • the processor obtains the velocity map based on first velocity profile information when the object is a static object, and obtains the velocity map based on second velocity profile information when the object is a dynamic object.
  • the first velocity profile information is information in which the velocity decreases with a first gradient as it approaches the static object within a first threshold distance from the static object
  • the second velocity profile information is information related to It may be information in which a speed decreases with a second slope smaller than the first slope as it approaches the dynamic object within a 2-threshold distance.
  • the processor obtains the velocity map based on the second velocity profile information when the object is a first-type dynamic object, and obtains a third velocity profile when the object is a second-type dynamic object.
  • the speed map is obtained based on information, and the third speed profile information includes a second gradient smaller than the second gradient as it approaches the second type of dynamic object within a third threshold distance from the second type of dynamic object. 3 It may be information that the speed decreases with a slope.
  • the processor may obtain the velocity map by obtaining velocity information of the dynamic object and applying different velocity profile information according to the velocity information of the dynamic object.
  • the processor obtains fourth velocity profile information corresponding to the predetermined space based on characteristic information of a first object located in the predetermined space, and based on characteristic information of a second object located in the predetermined space, Fifth velocity profile information corresponding to the predetermined space may be obtained, and velocity profile information corresponding to the predetermined space may be obtained based on the fourth velocity profile information and the fifth velocity profile information.
  • the processor obtains a first velocity value corresponding to each cell included in the constant space based on the fourth velocity profile information, and obtains a first velocity value corresponding to each cell included in the constant space based on the fifth velocity profile information.
  • a second velocity value corresponding to each of the included cells is obtained, and the velocity corresponding to each cell is based on a smaller value of the first velocity value and the second velocity value corresponding to each cell included in the predetermined space.
  • value, and a speed map corresponding to the predetermined space may be obtained based on the obtained speed value corresponding to each cell.
  • the memory further stores a distance map including distance information to an object
  • the processor generates the stored distance map based on object information acquired by the at least one sensor while the robot is traveling. and a speed map including speed information for each area may be obtained based on the updated distance map and the obtained profile information.
  • the speed map includes speed values corresponding to each of a plurality of cells
  • the processor obtains a required time between cells by dividing a distance between cells included in the speed map by a speed value corresponding to a cell, Based on the required time between cells, the shortest time path may be identified as the moving path of the robot.
  • the processor obtains distance information corresponding to each cell in a distance map including distance information to an object, and obtains velocity information corresponding to each cell based on the obtained distance information and the velocity profile information. and obtain the speed map including speed information corresponding to each cell.
  • a method for controlling a robot includes obtaining property information of an object based on sensing data acquired by at least one sensor while the robot is traveling, and the acquired property information of the object. Obtaining speed profile information according to the distance to the object based on, obtaining a speed map including speed information for each area based on the obtained speed profile information, and identifying based on the obtained speed map It may include driving the robot based on the moved path.
  • the obtaining of the speed map may include obtaining the speed map based on first velocity profile information when the object is a static object and based on second velocity profile information when the object is a dynamic object. and obtaining the speed map, wherein the first speed profile information is information in which a speed decreases with a first gradient as it approaches the static object within a first threshold distance from the static object, and the second The velocity profile information may be information indicating that the velocity decreases with a second slope smaller than the first slope as it approaches the dynamic object within a second threshold distance from the dynamic object.
  • the obtaining of the velocity map may include obtaining the velocity map based on the second velocity profile information when the object is a first-type dynamic object, and the object is a second-type dynamic object. , obtaining the speed map based on third velocity profile information, wherein the third velocity profile information is within a third threshold distance from the second type of dynamic object. It may be information in which the speed decreases with a third slope smaller than the second slope as it approaches the object.
  • the speed map is obtained by applying different speed profile information according to the speed information of the dynamic object.
  • the obtaining of the velocity profile information may include obtaining fourth velocity profile information corresponding to the specific space based on characteristic information of a first object located in the specific space, and obtaining the second velocity profile information corresponding to the specific space. Obtaining fifth velocity profile information corresponding to the predetermined space based on object characteristic information, and obtaining velocity profile information corresponding to the predetermined space based on the fourth velocity profile information and the fifth velocity profile information. Acquisition steps may be included.
  • the obtaining of the velocity map may include obtaining a first velocity value corresponding to each cell included in the predetermined space based on the fourth velocity profile information; obtaining a second velocity value corresponding to each cell included in the predetermined space based on a smaller value of the first velocity value and the second velocity value corresponding to each cell included in the predetermined space
  • the method may include obtaining a velocity value corresponding to each cell, and acquiring a velocity map corresponding to the predetermined space based on the obtained velocity value corresponding to each cell.
  • the acquiring of the speed map may include updating a distance map including distance information to an object based on object information acquired by the at least one sensor while the robot is traveling, and updating the updated distance map. and acquiring a speed map including speed information for each region based on the distance map and the obtained profile information.
  • the speed map includes speed values corresponding to each of a plurality of cells
  • the step of driving the robot comprises dividing the distance between cells included in the speed map by the speed value corresponding to the cell, and the required time between cells. and identifying a shortest time path as a moving path of the robot based on the required time between cells.
  • the obtaining of the speed map may include obtaining distance information corresponding to each cell from a distance map including distance information to an object, and determining each cell based on the obtained distance information and the velocity profile information.
  • the method may include acquiring corresponding speed information and acquiring the speed map including speed information corresponding to each cell.
  • the shortest time path can be planned in consideration of various types of obstacles identified while the robot is driving.
  • 1 is a diagram for explaining a path planning method of a robot for better 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 identifying a movement path of a robot according to an embodiment.
  • 4A to 4C are diagrams for describing a velocity profile according to an object type according to an exemplary embodiment.
  • 5A and 5B are diagrams for describing a velocity profile according to an object type according to an exemplary embodiment.
  • 6A to 6C are diagrams for explaining a velocity profile according to the velocity of an object according to an exemplary embodiment.
  • FIGS. 7A to 7C are diagrams for describing velocity profiles according to a plurality of objects according to an exemplary embodiment.
  • 8A to 8C are diagrams for explaining a speed map according to a plurality of objects according to an exemplary embodiment.
  • FIG. 9 is a diagram for explaining a method for calculating a required time between cells according to an exemplary embodiment.
  • FIGS. 10A to 10C are diagrams for explaining a movement path identification method according to an embodiment.
  • FIG. 11 is a block diagram showing a detailed configuration of a robot according to an embodiment.
  • FIG. 12 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 path planning method of a robot for better understanding.
  • the robot 100 may provide services to users while traveling in a specific space.
  • the robot 100 may provide a service of cleaning a space, but is not limited thereto.
  • the robot 100 may pre-store map data corresponding to the space in order to travel in the space, and may travel in the space by performing route planning based on this.
  • the map data may be various types of map data such as a traversability map and a distance map.
  • path planning based on a traversability map in which an obstacle is extended by a safe margin may create a safe path with a predetermined distance from a corner.
  • the safe margin is large, there is a problem that a path cannot be created in a narrow path (for example, path 1).
  • distance map-based route planning which includes distance information to the nearest obstacle for each cell (or grid) on the map, can create a safe route and a route that passes through a narrow passage.
  • a wide passage e.g. route 3
  • a narrow passage e.g. routes 1 and 2
  • an inefficient detour route may be created with a minimum time path passing through a narrow passage.
  • 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 memory 120, a driving unit 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
  • the senor 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), a bio sensor, It may include at least one of 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), a bio sensor, It may include at least one of a temperature/humidity sensor, an illuminance sensor, or an ultra violet (UV) sensor.
  • the memory 120 may store data necessary for various embodiments.
  • the memory 120 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 120 may store a distance map including distance information to an object, velocity profile information according to characteristics of the object, and the like.
  • the corresponding information may be received in real time from an external device.
  • the distance map may be in the form of storing a distance to an object, that is, an obstacle, and a probability value of the corresponding obstacle in each cell.
  • the driving unit 130 is a device capable of driving the robot 100.
  • the driving unit 130 may adjust the traveling direction and driving speed under the control of the processor 140, and the driving unit 130 according to an example may be a power generating device that generates power for the robot 100 to travel (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 130 may be modified according to the driving type (eg, wheel type, walking type, flight type, etc.) of the robot 100 .
  • At least one 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 memory 120 and the driving unit 130 to control the overall operation of the robot 100 .
  • Processor 140 may be composed of one or a plurality of processors. For example, various functions (eg, map creation and route planning) described below may be performed by one processor, but different functions may be performed by a plurality of processors.
  • 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 120 .
  • 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 obtain velocity profile information according to a distance to the object based on object characteristic information.
  • the object may be an obstacle obstructing the driving of the robot 100 .
  • the object property information may include at least one of an object type, an object speed, and an object size.
  • the type of object may be divided into a static object without motion and a dynamic object with motion, but is not limited thereto.
  • dynamic objects may be classified into types such as people and animals, and static objects may be classified into types such as furniture and home appliances.
  • Velocity profile information represents velocity information according to a distance from an obstacle, and may be different according to characteristics of the obstacle.
  • the processor 140 may obtain a speed map including speed information for each area based on the speed profile information obtained based on object property information.
  • the speed map may include speed information corresponding to each cell (or grid).
  • the speed map may further store probability values of obstacles in each cell.
  • a cell (or grid) may be a minimum unit area included in the map.
  • the speed information may be an absolute value corresponding to the speed or a weighted value applied to a reference value.
  • the speed map may include speed values mapped to each of a plurality of cells.
  • the processor 140 may obtain a speed map by replacing each distance information of a distance map including distance information to an obstacle corresponding to each cell with speed information.
  • the processor 140 may identify a movement path of the robot 100 based on the obtained speed map, and control the driving unit 130 based on the identified movement path.
  • the processor 140 obtains a velocity map based on first velocity profile information when the object is a static object, and obtains a velocity map based on second velocity profile information when the object is a dynamic object.
  • the first velocity profile information may be information in which the velocity decreases with a first gradient as the object approaches the static object within a first threshold distance from the static object.
  • the second velocity profile information may be information in which the velocity decreases with a second gradient as the object approaches the dynamic object within a second threshold distance from the dynamic object.
  • the second threshold distance may be greater than the first threshold distance.
  • the second slope may be smaller than the first slope. That is, the velocity profile corresponding to the dynamic object may decrease with a relatively gentle slope from a relatively long distance compared to the velocity profile corresponding to the static object.
  • the processor 140 obtains a velocity map based on second velocity profile information when the object is a first-type dynamic object, and third velocity profile information when the object is a second-type dynamic object.
  • a speed map can be obtained based on
  • the third velocity profile information may be information in which the velocity decreases with a third gradient as the dynamic object of the second type approaches the dynamic object of the second type within a third threshold distance.
  • the third threshold distance may be greater than the second threshold distance.
  • the third slope may be smaller than the second slope.
  • the dynamic object of the second type may be a type that relatively requires attention to the driving of the robot 100 compared to the dynamic object of the first type.
  • the first type dynamic object may be an adult
  • the second type dynamic object may be a child or pet, but is not limited thereto.
  • the processor 140 may acquire velocity information of the dynamic object and obtain a velocity map by applying different velocity profile information according to the velocity information of the dynamic object.
  • the processor 140 obtains a velocity map based on the first velocity profile information, and if the object is a static object of the fourth type, the processor 140 obtains the fourth velocity profile information.
  • a speed map can be obtained based on
  • the fourth velocity profile information may be information in which the velocity decreases with a fourth slope smaller than the first slope as the static object of the fourth type is approached within a fourth threshold distance from the static object of the fourth type.
  • the fourth threshold distance may be greater than the first threshold distance.
  • the fourth slope may be smaller than the first slope.
  • the velocity profile corresponding to the static object of the fourth type may have a shape in which the object decreases with a relatively gentle gradient from a relatively long distance compared to a velocity profile corresponding to the static object of the third type.
  • the static object of the third type may be an object that is not dangerous at all, such as a wall
  • the static object of the fourth type may be an object that is relatively dangerous compared to a wall, such as a table on which a vase is placed, but is not limited thereto. not.
  • the processor 140 acquires fourth velocity profile information corresponding to a certain space based on the property information of a first object located in a certain space, and based on the property information of a second object located in the corresponding space.
  • fifth velocity profile information corresponding to the corresponding space can be obtained.
  • the processor 140 may obtain velocity profile information corresponding to a certain space based on the fourth velocity profile information and the fifth velocity profile information.
  • the processor 140 obtains a first velocity value corresponding to each cell included in the corresponding space based on the fourth velocity profile information, and obtains a first velocity value corresponding to each cell included in the corresponding space based on the fifth velocity profile information.
  • a second velocity value corresponding to each cell included in the corresponding space is acquired, and a velocity value corresponding to each cell based on a smaller value of the first velocity value and the second velocity value corresponding to each cell included in the corresponding space. can be obtained.
  • the processor 140 may obtain a velocity map corresponding to a certain space based on the obtained velocity value corresponding to each cell.
  • the processor 140 may update the distance map stored in the memory 120 based on object information acquired by at least one sensor (not shown) while the robot is driving. Subsequently, the processor 140 may obtain a speed map based on profile information obtained based on the updated distance map and object characteristic information.
  • an event for the processor 140 to perform route planning (or re-planning) may be an event in which a speed map is updated.
  • the event is not limited thereto and may be an event in which another map related to the speed map is updated.
  • it may be an event in which a free space map or/and a distance map described later is updated.
  • path planning may be performed when an event signal of the corresponding processor (or module) is received.
  • FIG. 3 is a diagram for explaining a method for identifying a movement path of a robot according to an embodiment.
  • the processor 140 may obtain 320 a free space map based on Simulaneous Localization And Mapping (SLAM) 310 .
  • SLAM means generating a map and estimating the position of the robot 100 at the same time.
  • the processor 140 may obtain a free space map based on data obtained through at least one sensor (not shown).
  • the processor 140 determines the location of the robot 100 using GPS, and maps the free space using various sensors provided in the robot 100, such as a camera, lidar sensor, infrared sensor, and ultrasonic sensor. can be obtained.
  • the free space map may be in the form of dividing the space into at least one of an occupied space, a free space, and an unknown space.
  • the processor 140 based on the information about the free space included in the free-space map and the information obtained through at least one sensor (not shown), for example, a lidar sensor while the robot 100 is driving A distance map may be obtained (330).
  • the Distance Map may be in the form of storing a distance to an obstacle and a probability value of the obstacle.
  • the processor 140 may acquire object information, particularly dynamic object information while driving (340), and identify the type, speed, and the like of the dynamic object.
  • the processor 140 may obtain a speed map based on distance information, object information, and speed profile information 360 included in the distance map (350).
  • the processor 140 may perform path planning 370 based on the speed information for each cell included in the speed map. For example, the processor 140 may identify a minimum time path from the current location of the robot 100 to a destination based on speed information for each cell included in the speed map.
  • 4A to 4C are diagrams for describing a velocity profile according to an object type according to an exemplary embodiment.
  • Figure 4a is a velocity profile for a static object that provides space on only one side, such as a wall
  • Figure 4b is a velocity profile for a static object that provides space on at least both sides, such as furniture
  • Figure 4c is a relative approach risk Velocity profiles for highly static objects can be represented.
  • the velocity may gradually decrease within a critical distance from the wall and decrease to zero when the velocity reaches a specific distance from the wall.
  • the velocity may gradually decrease within a threshold distance from the furniture in a plurality of directions, and may decrease to zero when reaching a specific distance from the furniture.
  • a threshold relatively farther than FIG. 4B.
  • the speed decreases relatively gently based on the distance, and when a certain distance from the furniture is reached, the speed may decrease to zero.
  • the specific distance may be determined as the same distance based on the size of the robot 100 .
  • a specific distance may be determined as n times the size of the robot 100 (n is an integer greater than or equal to 1) regardless of the characteristics of the object.
  • n is an integer greater than or equal to 1
  • the specific distance may be different according to the characteristics of each object.
  • 5A and 5B are diagrams for describing a velocity profile according to an object type according to an exemplary embodiment.
  • FIG. 5A may show a velocity profile for a dynamic object with a low approach risk, such as an adult
  • FIG. 5B may show a velocity profile for a dynamic object with a high approach risk, such as a child.
  • the velocity may gradually decrease within a threshold distance in a plurality of directions from the adult, and may decrease to zero when the velocity reaches a specific distance from the adult.
  • the velocity may gradually decrease within a threshold distance from the child in a plurality of directions, and may decrease to zero when the velocity reaches a specific distance from the furniture.
  • the velocity decreases with a relatively gentle gradient at a critical distance greater than that of FIG. 5A, thereby reducing the risk of approaching a dynamic object with a high risk of approach.
  • the specific distance at which the speed converges to 0 may be determined as the same distance based on the size of the robot 100 .
  • a specific distance may be determined as n times the size of the robot 100 (n is an integer greater than or equal to 1) regardless of the characteristics of the object.
  • the specific distance may be different according to the characteristics of each object. For example, a relatively large specific distance can be set for a dynamic object with a high approach risk.
  • 6A to 6C are diagrams for explaining a velocity profile according to the velocity of an object according to an exemplary embodiment.
  • FIGS. 6A and 6C may show velocity profiles when the pet does not move.
  • FIG. 6A when the puppy is lying down, a speed profile different from that when the puppy is moving may be applied as shown in FIGS. 6B and 6C.
  • the speed may decrease to 0 when the speed relatively gently decreases based on a critical distance relatively farther than that of FIG. 6A and reaches a specific distance from the furniture.
  • the specific distance at which the speed converges to 0 may be the same as that of FIG. 6A.
  • the speed may decrease to zero at a relatively long distance while the speed relatively gently decreases based on a relatively far critical distance from FIG. 6A . That is, the specific distance at which the speed converges to 0 may be different from that of FIG. 6A.
  • the slope of the velocity profile and the specific distance at which the velocity converges to 0 may be different according to the dog's velocity.
  • FIGS. 7A to 7C are diagrams for describing velocity profiles according to a plurality of objects according to an exemplary embodiment.
  • the processor 140 when a plurality of objects exist in a certain space, the velocity profile information obtained based on the characteristic information of the first object and the velocity profile information obtained based on the characteristic information of the second object Velocity profile information corresponding to the corresponding space can be obtained based on .
  • the processor 140 may perform a velocity profile as shown in FIG. 7A obtained based on the characteristic information of the first object and a velocity profile as shown in FIG. 7B obtained based on the characteristic information of the second object. Based on, it is possible to obtain the final velocity profile as shown in FIG. 7c. That is, the processor 140 identifies the smaller value of the velocity value obtained in FIG. 7A and the velocity value obtained in FIG. 7B for the same cell belonging to the corresponding space, acquires it as the final velocity value for the corresponding cell, and applies it to all cells.
  • a final velocity profile may be obtained by obtaining a final velocity value for .
  • 8A to 8C are diagrams for explaining a speed map according to a plurality of objects according to an exemplary embodiment.
  • FIG. 8A shows an example of a speed map obtained based on velocity profile information corresponding to a static object (eg, a wall) located in a specific space
  • FIG. 8B corresponds to a dynamic object (eg, an adult).
  • An example of a speed map obtained based on the speed profile information to be obtained is shown.
  • the speed map may include speed information corresponding to each cell.
  • the speed map may include object probability information corresponding to each cell. In this case, the object probability value may be mapped to each cell as it is, but the probability value may be mapped only to cells having an object probability value equal to or greater than this threshold value.
  • a velocity map as shown in FIG. 8C may be obtained based on the velocity profile according to FIG. 8A and the velocity profile according to FIG. 8B. That is, the processor 140 identifies the smaller value of the velocity value obtained in FIG. 8A and the velocity value obtained in FIG. 8B for the same cell belonging to the corresponding space, acquires it as the final velocity value for the corresponding cell, and applies it to all cells.
  • a final velocity profile may be obtained by obtaining a final velocity value for , and a velocity map may be obtained based on the final velocity profile.
  • FIG. 9 is a diagram for explaining a method for calculating a required time between cells according to an exemplary embodiment.
  • the processor 140 may obtain a required time between cells based on the speed map, and may identify the moving path of the robot 100 based on the obtained required time between cells.
  • a required time between cells may be obtained based on a speed mapped to each cell and a distance between centers of each cell in a speed map to which a speed corresponding to each cell is mapped.
  • the velocity mapped to the first cell 911 is v11 (eg, a velocity unit such as mm/s or cm/s)
  • the velocity mapped to the second cell 912 is v21
  • the distance between 1 cell 911 and 2 cell 912 is xmm (or a distance unit such as cm, etc.) (actual distance) (actual distance) (actual distance) (actual distance) (actual distance)
  • x/v11 is defined as It can be calculated from the time required.
  • the processor 140 may identify the shortest time path as the moving path of the robot 100 based on the required time between each cell. According to an example, the processor 140 may identify a path having the smallest cumulative cost by using the time required between cells as a cost, for example, an edge cost.
  • FIGS. 10A to 10C are diagrams for explaining a movement path identification method according to an embodiment.
  • the movement path 1 when a static obstacle and a dynamic obstacle appear on an already identified movement path 1 and the movement path is maintained, the movement path 1 may be updated in the form of 2.
  • the moving path 2 may not be the minimum path.
  • the processor 140 may identify the shortest time path 3 based on the speed map according to various embodiments described above, and may drive the robot based on the moving path 3.
  • the processor 140 may identify the shortest time path 3 based on the speed map according to various embodiments described above, and may drive the robot based on the moving path 3.
  • the processor 140 may identify the shortest time path 3 based on the speed map according to various embodiments described above, and may drive the robot based on the moving path 3.
  • FIG. 11 is a block diagram showing a detailed configuration of a robot according to an embodiment.
  • a robot 100' includes at least one sensor 110, a memory 120, a driving unit 130, a processor 140, a communication interface 150, a user interface 160, and a display 170.
  • a sensor 110 includes at least one sensor 110, a memory 120, a driving unit 130, a processor 140, a communication interface 150, a user interface 160, and a display 170.
  • a communication interface 150 includes at least one sensor 110, a communication interface 150, a user interface 160, and a display 170.
  • a display 170 can include Among the components shown in FIG. 11 , detailed descriptions of components overlapping with those shown in FIG. 2 will be omitted.
  • the communication interface 150 may input and output various types of data.
  • the communication interface 150 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 150 .
  • the user interface 160 is a component for the robot 100' to perform an interaction with a user.
  • the user interface 160 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.
  • the display 170 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).
  • FIG. 12 is a flowchart illustrating a method of controlling a robot according to an exemplary embodiment.
  • property information of an object is acquired based on sensing data obtained by at least one sensor while the robot is traveling, and based on the obtained property information of the object, the robot is traveling to the object.
  • Velocity profile information according to distance is acquired (S1210).
  • the robot is driven based on the identified movement path (S1240).
  • step S1220 of obtaining a speed map if the object is a static object, a speed map is obtained based on the first speed profile information, and if the object is a dynamic object, a speed map is obtained based on the second speed profile information.
  • the first velocity profile information is information in which the velocity decreases with a first gradient as it approaches the static object within a first threshold distance from the static object
  • the second velocity profile information is information within a second threshold distance from the dynamic object. It may be information that the speed decreases with a second slope smaller than the first slope as it approaches the dynamic object.
  • step S1220 of obtaining a speed map if the object is a dynamic object of the first type, a speed map is obtained based on the second speed profile information, and if the object is a dynamic object of the second type, a third speed is obtained.
  • the speed map is obtained based on the profile information.
  • the third velocity profile information may be information in which the velocity decreases with a third slope smaller than the second slope as it approaches the second type dynamic object within a third threshold distance from the second type dynamic object.
  • step S1220 of acquiring the speed map if the object is a dynamic object, the speed map may be obtained by obtaining speed information of the dynamic object and applying different speed profile information according to the speed information of the dynamic object.
  • step S1220 of obtaining a speed map fourth velocity profile information corresponding to a certain space is obtained based on the property information of a first object located in a certain space, and the property information of a second object located in the certain space is obtained. Based on this, fifth velocity profile information corresponding to a certain space may be obtained, and velocity profile information corresponding to a certain space may be obtained based on the fourth and fifth velocity profile information.
  • step S1220 of obtaining a velocity map a first velocity value corresponding to each cell included in a certain space is obtained based on the fourth velocity profile information, and the first velocity value is obtained based on the fifth velocity profile information.
  • a second velocity value corresponding to each cell included in the certain space is obtained, and the velocity corresponding to each cell is based on a smaller value of the first velocity value and the second velocity value corresponding to each cell included in the certain space.
  • value, and a speed map corresponding to a certain space may be obtained based on the speed value corresponding to each cell.
  • step S1220 of acquiring the speed map the distance map including distance information to the object is updated based on the object information obtained by the sensor while the robot is traveling, and the updated distance map and the obtained profile information are updated. Based on this, it is possible to obtain a speed map including speed information for each area.
  • the speed map may include speed values corresponding to each of a plurality of cells.
  • the distance between cells included in the speed map is divided by the speed value corresponding to the cell to obtain the required time between cells, and based on the required time between cells, the shortest time path is the moving path of the robot.
  • step S1220 of obtaining a speed map distance information corresponding to each cell is obtained from the distance map including distance information to the object, and the speed corresponding to each cell is based on the obtained distance information and speed profile information. information can be obtained.
  • the shortest time path can be planned in consideration of various types of obstacles identified while the robot is driving.
  • 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.
  • 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

Abstract

A robot is disclosed. The robot comprises at least one sensor, a drive unit, and a processor, wherein the processor executes at least one instruction to: acquire characteristic information of an object on the basis of sensing data acquired by the at least one sensor during travel of the robot; acquire speed profile information according to distances to the object on the basis of the acquired characteristic information of the object; acquire a speed map including speed information for each area on the basis of the acquired speed profile information; and control the drive unit on the basis of a moving path identified on the basis of the acquired speed map.

Description

로봇 및 그 제어 방법 Robot and its control method
본 개시는 로봇 및 그 제어 방법에 관한 것으로, 더욱 상세하게는 로봇 및 그 제어 방법에 관한 것이다.The present disclosure relates to a robot and a control method thereof, and more particularly to a robot and a control method thereof.
최근 특정 공간에 배치되어 사용자에게 서비스를 제공하는 로봇에 대한 기술 개발이 활발해지고 있다. 특히, 특정 공간을 이동하는 로봇은 주행 경로 상의 장애물을 회피하여 신속하게 주행하여야 사용자에게 신속한 서비스를 제공할 수 있게 된다. BACKGROUND OF THE INVENTION [0002] Recently, technology development for a robot that is placed in a specific space and provides services to users has been actively developed. In particular, a robot moving in a specific space must travel quickly while avoiding obstacles on a travel path in order to provide a prompt service to a user.
이에 따라 장애물을 고려하여 로봇이 최대한 신속하게 주행할 수 있는 경로를 플래닝하는 방안이 요구된다. Accordingly, there is a need for a method of planning a path in which the robot can travel as quickly as possible in consideration of obstacles.
본 개시는 상술한 필요성에 따른 것으로, 로봇이 주행하는 동안 식별되는 다양한 타입의 장애물을 고려하여 최단 시간 경로를 플래닝하는 로봇 및 그 제어 방법을 제공함에 있다.SUMMARY OF THE INVENTION The present disclosure is in accordance with the above-described needs, and is to provide a robot and a control method for planning a shortest time path in consideration of various types of obstacles identified while the robot is traveling.
이상과 같은 목적을 달성하기 위한 본 발명의 일 실시 예에 따른 로봇은, 적어도 하나의 센서, 구동부, 적어도 하나의 명령을 저장하는 메모리 및, 상기 적어도 하나의 센서, 상기 구동부 및 상기 메모리와 연결되어 상기 전자 장치를 제어하는 프로세서를 포함하며, 상기 프로세서는, 상기 적어도 하나의 명령어를 실행함으로써, 상기 로봇이 주행하는 동안 상기 적어도 하나의 센서에 의해 획득된 센싱 데이터에 기초하여 오브젝트의 특성 정보를 획득하고, 상기 획득된 오브젝트의 특성 정보에 기초하여 상기 오브젝트까지의 거리에 따른 속도 프로파일 정보를 획득하고, 상기 획득된 속도 프로파일 정보에 기초하여 영역 별 속도 정보를 포함하는 속도 맵을 획득하고, 상기 획득된 속도 맵에 기초하여 식별된 이동 경로에 기초하여 상기 구동부를 제어할 수 있다. A robot according to an embodiment of the present invention 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 controlling the electronic device, wherein the processor obtains characteristic information of an object based on sensing data acquired by the at least one sensor while the robot is driving by executing the at least one command. and obtaining velocity profile information according to a distance to the object based on the acquired object characteristic information, obtaining a velocity map including velocity information for each area based on the obtained velocity profile information, and obtaining the The driving unit may be controlled based on a movement path identified based on the determined speed map.
또한, 상기 프로세서는, 상기 오브젝트가 정적 오브젝트인 경우, 제1 속도 프로파일 정보에 기초하여 상기 속도 맵을 획득하고, 상기 오브젝트가 동적 오브젝트인 경우, 제2 속도 프로파일 정보에 기초하여 상기 속도 맵을 획득하며, 상기 제1 속도 프로파일 정보는, 상기 정적 오브젝트로부터 제1 임계 거리 내에서 상기 정적 오브젝트에 근접할수록 제1 기울기로 속도가 감소하는 정보이고, 상기 제2 속도 프로파일 정보는, 상기 동적 오브젝트로부터 제2 임계 거리 내에서 상기 동적 오브젝트에 근접할수록 상기 제1 기울기보다 작은 제2 기울기로 속도가 감소하는 정보일 수 있다. In addition, the processor obtains the velocity map based on first velocity profile information when the object is a static object, and obtains the velocity map based on second velocity profile information when the object is a dynamic object. The first velocity profile information is information in which the velocity decreases with a first gradient as it approaches the static object within a first threshold distance from the static object, and the second velocity profile information is information related to It may be information in which a speed decreases with a second slope smaller than the first slope as it approaches the dynamic object within a 2-threshold distance.
또한, 상기 프로세서는, 상기 오브젝트가 제1 타입의 동적 오브젝트인 경우, 상기 제2 속도 프로파일 정보에 기초하여 상기 속도 맵을 획득하고, 상기 오브젝트가 제2 타입의 동적 오브젝트인 경우, 제3 속도 프로파일 정보에 기초하여 상기 속도 맵을 획득하며, 상기 제3 속도 프로파일 정보는, 상기 제2 타입의 동적 오브젝트로부터 제3 임계 거리 내에서 상기 제2 타입의 동적 오브젝트에 근접할수록 상기 제2 기울기보다 작은 제3 기울기로 속도가 감소하는 정보일 수 있다. In addition, the processor obtains the velocity map based on the second velocity profile information when the object is a first-type dynamic object, and obtains a third velocity profile when the object is a second-type dynamic object. The speed map is obtained based on information, and the third speed profile information includes a second gradient smaller than the second gradient as it approaches the second type of dynamic object within a third threshold distance from the second type of dynamic object. 3 It may be information that the speed decreases with a slope.
또한, 상기 프로세서는, 상기 오브젝트가 동적 오브젝트인 경우, 상기 동적 오브젝트의 속도 정보를 획득하고, 상기 동적 오브젝트의 속도 정보에 따라 상이한 속도 프로파일 정보를 적용하여 상기 속도 맵을 획득할 수 있다. In addition, when the object is a dynamic object, the processor may obtain the velocity map by obtaining velocity information of the dynamic object and applying different velocity profile information according to the velocity information of the dynamic object.
또한, 상기 프로세서는, 일정 공간에 위치하는 제1 오브젝트의 특성 정보에 기초하여 상기 일정 공간에 대응되는 제4 속도 프로파일 정보를 획득하고, 상기 일정 공간 내에 위치하는 제2 오브젝트의 특성 정보에 기초하여 상기 일정 공간에 대응되는 제5 속도 프로파일 정보를 획득하고, 상기 제4 속도 프로파일 정보 및 상기 제5 속도 프로파일 정보에 기초하여 상기 일정 공간에 대응되는 속도 프로파일 정보를 획득할 수 있다. In addition, the processor obtains fourth velocity profile information corresponding to the predetermined space based on characteristic information of a first object located in the predetermined space, and based on characteristic information of a second object located in the predetermined space, Fifth velocity profile information corresponding to the predetermined space may be obtained, and velocity profile information corresponding to the predetermined space may be obtained based on the fourth velocity profile information and the fifth velocity profile information.
또한, 상기 프로세서는, 상기 제4 속도 프로파일 정보에 기초하여 상기 일정 공간에 포함된 각 셀(cell)에 대응되는 제1 속도 값을 획득하고, 상기 제5 속도 프로파일 정보에 기초하여 상기 일정 공간에 포함된 상기 각 셀에 대응되는 제2 속도 값을 획득하고, 상기 일정 공간에 포함된 상기 각 셀에 대응되는 제1 속도 값 및 제2 속도 값 중 작은 값에 기초하여 상기 각 셀에 대응되는 속도 값을 획득하고, 상기 획득된 상기 각 셀에 대응되는 속도 값에 기초하여 상기 일정 공간에 대응되는 속도 맵을 획득할 수 있다. In addition, the processor obtains a first velocity value corresponding to each cell included in the constant space based on the fourth velocity profile information, and obtains a first velocity value corresponding to each cell included in the constant space based on the fifth velocity profile information. A second velocity value corresponding to each of the included cells is obtained, and the velocity corresponding to each cell is based on a smaller value of the first velocity value and the second velocity value corresponding to each cell included in the predetermined space. value, and a speed map corresponding to the predetermined space may be obtained based on the obtained speed value corresponding to each cell.
또한, 상기 메모리는, 오브젝트까지의 거리 정보를 포함하는 Distance Map 을 더 저장하며, 상기 프로세서는, 상기 로봇이 주행하는 동안 상기 적어도 하나의 센서에 의해 획득된 오브젝트 정보에 기초하여 상기 저장된 Distance Map을 업데이트하고, 상기 업데이트된 Distance Map 및 상기 획득된 프로파일 정보에 기초하여 상기 영역 별 속도 정보를 포함하는 속도 맵을 획득할 수 있다. In addition, the memory further stores a distance map including distance information to an object, and the processor generates the stored distance map based on object information acquired by the at least one sensor while the robot is traveling. and a speed map including speed information for each area may be obtained based on the updated distance map and the obtained profile information.
또한, 상기 속도 맵은, 복수의 셀 각각에 대응되는 속도 값을 포함하고, 상기 프로세서는, 상기 속도 맵에 포함된 셀 간 거리를 셀에 대응되는 속도 값으로 나누어 셀 간 소요 시간을 획득하고, 상기 셀 간 소요 시간에 기초하여 최단 시간 경로를 상기 로봇의 이동 경로로 식별할 수 있다. In addition, the speed map includes speed values corresponding to each of a plurality of cells, and the processor obtains a required time between cells by dividing a distance between cells included in the speed map by a speed value corresponding to a cell, Based on the required time between cells, the shortest time path may be identified as the moving path of the robot.
또한, 상기 프로세서는, 오브젝트까지의 거리 정보를 포함하는 Distance Map 에서 각 셀에 대응되는 거리 정보를 획득하고, 상기 획득된 거리 정보 및 상기 속도 프로파일 정보에 기초하여 각 셀에 대응되는 속도 정보를 획득하고, 각 셀에 대응되는 속도 정보를 포함하는 상기 속도 맵을 획득할 수 있다. In addition, the processor obtains distance information corresponding to each cell in a distance map including distance information to an object, and obtains velocity information corresponding to each cell based on the obtained distance information and the velocity profile information. and obtain the speed map including speed information corresponding to each cell.
한편, 본 개시의 일 실시 예에 따른 로봇의 제어 방법은 상기 로봇이 주행하는 동안 적어도 하나의 센서에 의해 획득된 센싱 데이터에 기초하여 오브젝트의 특성 정보를 획득하는 단계, 상기 획득된 오브젝트의 특성 정보에 기초하여 상기 오브젝트까지의 거리에 따른 속도 프로파일 정보를 획득하는 단계, 상기 획득된 속도 프로파일 정보에 기초하여 영역 별 속도 정보를 포함하는 속도 맵을 획득하는 단계 및 상기 획득된 속도 맵에 기초하여 식별된 이동 경로에 기초하여 상기 로봇을 구동하는 단계를 포함할 수 있다. Meanwhile, a method for controlling a robot according to an embodiment of the present disclosure includes obtaining property information of an object based on sensing data acquired by at least one sensor while the robot is traveling, and the acquired property information of the object. Obtaining speed profile information according to the distance to the object based on, obtaining a speed map including speed information for each area based on the obtained speed profile information, and identifying based on the obtained speed map It may include driving the robot based on the moved path.
또한, 상기 속도 맵을 획득하는 단계는, 상기 오브젝트가 정적 오브젝트인 경우, 제1 속도 프로파일 정보에 기초하여 상기 속도 맵을 획득하는 단계 및 상기 오브젝트가 동적 오브젝트인 경우, 제2 속도 프로파일 정보에 기초하여 상기 속도 맵을 획득하는 단계를 포함하며, 상기 제1 속도 프로파일 정보는, 상기 정적 오브젝트로부터 제1 임계 거리 내에서 상기 정적 오브젝트에 근접할수록 제1 기울기로 속도가 감소하는 정보이고, 상기 제2 속도 프로파일 정보는, 상기 동적 오브젝트로부터 제2 임계 거리 내에서 상기 동적 오브젝트에 근접할수록 상기 제1 기울기보다 작은 제2 기울기로 속도가 감소하는 정보일 수 있다. The obtaining of the speed map may include obtaining the speed map based on first velocity profile information when the object is a static object and based on second velocity profile information when the object is a dynamic object. and obtaining the speed map, wherein the first speed profile information is information in which a speed decreases with a first gradient as it approaches the static object within a first threshold distance from the static object, and the second The velocity profile information may be information indicating that the velocity decreases with a second slope smaller than the first slope as it approaches the dynamic object within a second threshold distance from the dynamic object.
또한, 상기 속도 맵을 획득하는 단계는, 상기 오브젝트가 제1 타입의 동적 오브젝트인 경우, 상기 제2 속도 프로파일 정보에 기초하여 상기 속도 맵을 획득하는 단계 및, 상기 오브젝트가 제2 타입의 동적 오브젝트인 경우, 제3 속도 프로파일 정보에 기초하여 상기 속도 맵을 획득하는 단계를 포함하며, 상기 제3 속도 프로파일 정보는, 상기 제2 타입의 동적 오브젝트로부터 제3 임계 거리 내에서 상기 제2 타입의 동적 오브젝트에 근접할수록 상기 제2 기울기보다 작은 제3 기울기로 속도가 감소하는 정보일 수 있다. The obtaining of the velocity map may include obtaining the velocity map based on the second velocity profile information when the object is a first-type dynamic object, and the object is a second-type dynamic object. , obtaining the speed map based on third velocity profile information, wherein the third velocity profile information is within a third threshold distance from the second type of dynamic object. It may be information in which the speed decreases with a third slope smaller than the second slope as it approaches the object.
또한, 상기 속도 맵을 획득하는 단계는, 상기 오브젝트가 동적 오브젝트인 경우, 상기 동적 오브젝트의 속도 정보를 획득하고, 상기 동적 오브젝트의 속도 정보에 따라 상이한 속도 프로파일 정보를 적용하여 상기 속도 맵을 획득할 수 있다. In the obtaining of the speed map, if the object is a dynamic object, speed information of the dynamic object is obtained, and the speed map is obtained by applying different speed profile information according to the speed information of the dynamic object. can
또한, 상기 속도 프로파일 정보를 획득하는 단계는, 일정 공간에 위치하는 제1 오브젝트의 특성 정보에 기초하여 상기 일정 공간에 대응되는 제4 속도 프로파일 정보를 획득하는 단계, 상기 일정 공간 내에 위치하는 제2 오브젝트의 특성 정보에 기초하여 상기 일정 공간에 대응되는 제5 속도 프로파일 정보를 획득하는 단계 및, 상기 제4 속도 프로파일 정보 및 상기 제5 속도 프로파일 정보에 기초하여 상기 일정 공간에 대응되는 속도 프로파일 정보를 획득하는 단계를 포함할 수 있다. The obtaining of the velocity profile information may include obtaining fourth velocity profile information corresponding to the specific space based on characteristic information of a first object located in the specific space, and obtaining the second velocity profile information corresponding to the specific space. Obtaining fifth velocity profile information corresponding to the predetermined space based on object characteristic information, and obtaining velocity profile information corresponding to the predetermined space based on the fourth velocity profile information and the fifth velocity profile information. Acquisition steps may be included.
또한, 상기 속도 맵을 획득하는 단계는, 상기 제4 속도 프로파일 정보에 기초하여 상기 일정 공간에 포함된 각 셀(cell)에 대응되는 제1 속도 값을 획득하는 단계, 상기 제5 속도 프로파일 정보에 기초하여 상기 일정 공간에 포함된 상기 각 셀에 대응되는 제2 속도 값을 획득하는 단계, 상기 일정 공간에 포함된 상기 각 셀에 대응되는 제1 속도 값 및 제2 속도 값 중 작은 값에 기초하여 상기 각 셀에 대응되는 속도 값을 획득하는 단계 및, 상기 획득된 상기 각 셀에 대응되는 속도 값에 기초하여 상기 일정 공간에 대응되는 속도 맵을 획득하는 단계를 포함할 수 있다. The obtaining of the velocity map may include obtaining a first velocity value corresponding to each cell included in the predetermined space based on the fourth velocity profile information; obtaining a second velocity value corresponding to each cell included in the predetermined space based on a smaller value of the first velocity value and the second velocity value corresponding to each cell included in the predetermined space The method may include obtaining a velocity value corresponding to each cell, and acquiring a velocity map corresponding to the predetermined space based on the obtained velocity value corresponding to each cell.
또한, 상기 속도 맵을 획득하는 단계는, 상기 로봇이 주행하는 동안 상기 적어도 하나의 센서에 의해 획득된 오브젝트 정보에 기초하여 오브젝트까지의 거리 정보를 포함하는 Distance Map을 업데이트하는 단계 및, 상기 업데이트된 Distance Map 및 상기 획득된 프로파일 정보에 기초하여 상기 영역 별 속도 정보를 포함하는 속도 맵을 획득하는 단계를 포함할 수 있다. In addition, the acquiring of the speed map may include updating a distance map including distance information to an object based on object information acquired by the at least one sensor while the robot is traveling, and updating the updated distance map. and acquiring a speed map including speed information for each region based on the distance map and the obtained profile information.
또한, 상기 속도 맵은, 복수의 셀 각각에 대응되는 속도 값을 포함하고, 상기 로봇을 구동하는 단계는, 상기 속도 맵에 포함된 셀 간 거리를 셀에 대응되는 속도 값으로 나누어 셀 간 소요 시간을 획득하는 단계 및, 상기 셀 간 소요 시간에 기초하여 최단 시간 경로를 상기 로봇의 이동 경로로 식별하는 단계를 포함할 수 있다. In addition, the speed map includes speed values corresponding to each of a plurality of cells, and the step of driving the robot comprises dividing the distance between cells included in the speed map by the speed value corresponding to the cell, and the required time between cells. and identifying a shortest time path as a moving path of the robot based on the required time between cells.
또한, 상기 속도 맵을 획득하는 단계는, 오브젝트까지의 거리 정보를 포함하는 Distance Map에서 각 셀에 대응되는 거리 정보를 획득하는 단계, 상기 획득된 거리 정보 및 상기 속도 프로파일 정보에 기초하여 각 셀에 대응되는 속도 정보를 획득하는 단계 및, 각 셀에 대응되는 속도 정보를 포함하는 상기 속도 맵을 획득하는 단계를 포함할 수 있다.In addition, the obtaining of the speed map may include obtaining distance information corresponding to each cell from a distance map including distance information to an object, and determining each cell based on the obtained distance information and the velocity profile information. The method may include acquiring corresponding speed information and acquiring the speed map including speed information corresponding to each cell.
상술한 다양한 실시 예에 따르면, 로봇이 주행하는 동안 식별되는 다양한 타입의 장애물을 고려하여 최단 시간 경로를 플래닝할 수 있게 된다. According to various embodiments described above, the shortest time path can be planned in consideration of various types of obstacles identified while the robot is driving.
도 1은 이해를 돕기 위한 로봇의 경로 플래닝 방법을 설명하기 위한 도면이다.1 is a diagram for explaining a path planning method of a robot for better understanding.
도 2는 일 실시 예에 따른 로봇의 구성을 설명하기 위한 도면이다.2 is a diagram for explaining the configuration of a robot according to an embodiment.
도 3은 일 실시 예에 따른 로봇의 이동 경로 식별 방법을 설명하기 위한 도면이다. 3 is a diagram for explaining a method for identifying a movement path of a robot according to an embodiment.
도 4a 내지 도 4c는 일 실시 예에 따른 오브젝트의 타입에 따른 속도 프로파일을 설명하기 위한 도면들이다. 4A to 4C are diagrams for describing a velocity profile according to an object type according to an exemplary embodiment.
도 5a 및 도 5b는 일 실시 예에 따른 오브젝트의 타입에 따른 속도 프로파일을 설명하기 위한 도면들이다. 5A and 5B are diagrams for describing a velocity profile according to an object type according to an exemplary embodiment.
도 6a 내지 도 6c는 일 실시 예에 따른 오브젝트의 속도에 따른 속도 프로파일을 설명하기 위한 도면들이다. 6A to 6C are diagrams for explaining a velocity profile according to the velocity of an object according to an exemplary embodiment.
도 7a 내지 도 7c는 일 실시 예에 따른 복수의 오브젝트에 따른 속도 프로파일을 설명하기 위한 도면들이다. 7A to 7C are diagrams for describing velocity profiles according to a plurality of objects according to an exemplary embodiment.
도 8a 내지 도 8c는 일 실시 예에 따른 복수의 오브젝트에 따른 속도 맵을 설명하기 위한 도면들이다. 8A to 8C are diagrams for explaining a speed map according to a plurality of objects according to an exemplary embodiment.
도 9는 일 실시 예에 따른 셀 간 소요 시간 산출 방법을 설명하기 위한 도면이다. 9 is a diagram for explaining a method for calculating a required time between cells according to an exemplary embodiment.
도 10a 내지 도 10c는 일 실시 예에 따른 이동 경로 식별 방법을 설명하기 위한 도면들이다. 10A to 10C are diagrams for explaining a movement path identification method according to an embodiment.
도 11은 일 실시 예에 따른 로봇의 세부 구성을 나타내는 블럭도이다. 11 is a block diagram showing a detailed configuration of a robot according to an embodiment.
도 12는 일 실시 예에 따른 로봇의 제어 방법을 설명하기 위한 흐름도이다.12 is a flowchart illustrating a method of controlling a robot according to an exemplary embodiment.
이하에서는 첨부 도면을 참조하여 본 개시를 상세히 설명한다. Hereinafter, the present disclosure will be described in detail with reference to the accompanying drawings.
본 명세서에서 사용되는 용어에 대해 간략히 설명하고, 본 개시에 대해 구체적으로 설명하기로 한다.Terms used in this specification will be briefly described, and the present disclosure will be described in detail.
본 개시의 실시 예에서 사용되는 용어는 본 개시에서의 기능을 고려하면서 가능한 현재 널리 사용되는 일반적인 용어들을 선택하였으나, 이는 당 분야에 종사하는 기술자의 의도 또는 판례, 새로운 기술의 출현 등에 따라 달라질 수 있다. 또한, 특정한 경우는 출원인이 임의로 선정한 용어도 있으며, 이 경우 해당되는 개시의 설명 부분에서 상세히 그 의미를 기재할 것이다. 따라서 본 개시에서 사용되는 용어는 단순한 용어의 명칭이 아닌, 그 용어가 가지는 의미와 본 개시의 전반에 걸친 내용을 토대로 정의되어야 한다. The terms used in the embodiments of the present disclosure have been selected from general terms that are currently widely used as much as possible while considering the functions in the present disclosure, but they may vary depending on the intention or precedent of a person skilled in the art, the emergence of new technologies, and the like. . In addition, in a specific case, there is also a term arbitrarily selected by the applicant, and in this case, the meaning will be described in detail in the description of the disclosure. Therefore, terms used in the present disclosure should be defined based on the meaning of the term and the general content of the present disclosure, not simply the name of the term.
본 명세서에서, "가진다," "가질 수 있다," "포함한다," 또는 "포함할 수 있다" 등의 표현은 해당 특징(예: 수치, 기능, 동작, 또는 부품 등의 구성요소)의 존재를 가리키며, 추가적인 특징의 존재를 배제하지 않는다.In this specification, 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 또는/및 B 중 적어도 하나라는 표현은 "A" 또는 "B" 또는 "A 및 B" 중 어느 하나를 나타내는 것으로 이해되어야 한다. The expression at least one of A and/or B should be understood to denote either "A" or "B" or "A and B".
본 명세서에서 사용된 "제1," "제2," "첫째," 또는 "둘째,"등의 표현들은 다양한 구성요소들을, 순서 및/또는 중요도에 상관없이 수식할 수 있고, 한 구성요소를 다른 구성요소와 구분하기 위해 사용될 뿐 해당 구성요소들을 한정하지 않는다. Expressions such as "first," "second," "first," or "second," as used herein, may modify various components regardless of order and/or importance, and may refer to one component It is used only to distinguish it from other components and does not limit the corresponding components.
어떤 구성요소(예: 제1 구성요소)가 다른 구성요소(예: 제2 구성요소)에 "(기능적으로 또는 통신적으로) 연결되어((operatively or communicatively) coupled with/to)" 있다거나 "접속되어(connected to)" 있다고 언급된 때에는, 어떤 구성요소가 다른 구성요소에 직접적으로 연결되거나, 다른 구성요소(예: 제3 구성요소)를 통하여 연결될 수 있다고 이해되어야 할 것이다. A component (e.g., a first component) is "(operatively or communicatively) coupled with/to" another component (e.g., a second component); When referred to as "connected 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).
단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "구성되다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다. Singular expressions include plural expressions unless the context clearly dictates otherwise. In this application, the terms "comprise" or "consist of" are intended to designate that there is a feature, number, step, operation, component, part, or combination thereof described in the specification, but one or more other It should be understood that the presence or addition of features, numbers, steps, operations, components, parts, or combinations thereof is not precluded.
본 개시에서 "모듈" 혹은 "부"는 적어도 하나의 기능이나 동작을 수행하며, 하드웨어 또는 소프트웨어로 구현되거나 하드웨어와 소프트웨어의 결합으로 구현될 수 있다. 또한, 복수의 "모듈" 혹은 복수의 "부"는 특정한 하드웨어로 구현될 필요가 있는 "모듈" 혹은 "부"를 제외하고는 적어도 하나의 모듈로 일체화되어 적어도 하나의 프로세서(미도시)로 구현될 수 있다.In the present disclosure, 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. In addition, 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.
이하 첨부된 도면들을 참조하여 본 개시의 일 실시 예를 보다 상세하게 설명한다.Hereinafter, an embodiment of the present disclosure will be described in more detail with reference to the accompanying drawings.
본 개시에서 '사용자' 는 로봇에게 서비스를 제공받는 사람을 의미할 수 있으나, 이에 한정되는 것은 아니다.In the present disclosure, 'user' may mean a person who is provided with a service by a robot, but is not limited thereto.
도 1은 이해를 돕기 위한 로봇의 경로 플래닝 방법을 설명하기 위한 도면이다.1 is a diagram for explaining a path planning method of a robot for better understanding.
도 1에 따르면 로봇(100)은 특정 공간을 주행하며 사용자에게 서비스를 제공할 수 있다. 예를 들어, 로봇(100)은 공간을 청소하는 서비스를 제공할 수 있으나 이에 한정되는 것은 아니다. 로봇(100)은 공간을 주행하기 위해 공간에 대응되는 맵 데이터를 기 저장하고 있을 수 있으며 이에 기초하여 경로 플래닝을 수행하여 공간을 주행할 수 있다. 일 예에 따라, 맵 데이터는 Traversability Map, Distance Map 등과 같이 다양한 타입의 맵 데이터가 될 수 있다. According to FIG. 1 , the robot 100 may provide services to users while traveling in a specific space. For example, the robot 100 may provide a service of cleaning a space, but is not limited thereto. The robot 100 may pre-store map data corresponding to the space in order to travel in the space, and may travel in the space by performing route planning based on this. According to an example, the map data may be various types of map data such as a traversability map and a distance map.
일 예에 따라 장애물을 safe margin 만큼 확장한 Traversability Map 기반의 경로 플래닝은 코너와 일정 거리를 두는 안전한 경로를 생성할 수 있다. 다만, safe margin이 크면 좁은 통로(예를 들어 경로 ①)에서는 경로를 생성할 수 없다는 문제가 있다. According to an example, path planning based on a traversability map in which an obstacle is extended by a safe margin may create a safe path with a predetermined distance from a corner. However, if the safe margin is large, there is a problem that a path cannot be created in a narrow path (for example, path ①).
다른 예에 따라 지도 상 각 셀(cell)(또는 그리드(grid)) 마다 가장 가까운 장애물까지의 거리 정보를 포함하는 Distance Map 기반의 경로 플래닝은 안전한 경로를 생성할 수 있고 좁은 통로를 통과하는 경로도 생성할 수 있다. 다만, 좁은 통로(예를 들어 경로 ①, ②)보다 넓은 통로(예를 들어, 경로 ③)를 통과하는 것을 우선시하기 때문에 좁은 통로를 통과하는 최소 시간 경로를 두고 비효율적인 우회 경로가 생성될 수 있다는 문제가 있다. According to another example, distance map-based route planning, which includes distance information to the nearest obstacle for each cell (or grid) on the map, can create a safe route and a route that passes through a narrow passage. can create However, since passing through a wide passage (eg, route ③) is prioritized over a narrow passage (eg, routes ① and ②), an inefficient detour route may be created with a minimum time path passing through a narrow passage. there is a problem.
이에 따라 이하에서는 실시간 장애물 정보를 반영하여 최소 시간의 경로 플래닝을 수행하는 다양한 실시 예에 대해 설명하도록 한다. Accordingly, various embodiments of performing minimum-time path planning by reflecting real-time obstacle information will be described below.
도 2는 일 실시 예에 따른 로봇의 구성을 설명하기 위한 도면이다.2 is a diagram for explaining the configuration of a robot according to an embodiment.
도 2에 따르면, 로봇(100)은 적어도 하나의 센서(110), 메모리(120), 구동부(130) 및 프로세서(140)를 포함할 수 있다.According to FIG. 2 , the robot 100 may include at least one sensor 110, a memory 120, a driving unit 130, and a processor 140.
적어도 하나의 센서(110)는 다양한 타입의 복수의 센서를 포함할 수 있다. 센서(110)는 물리량을 계측하거나 로봇(100)의 작동 상태를 감지하여, 계측 또는 감지된 정보를 전기 신호로 변환할 수 있다. 센서(110)는 카메라를 포함할 수 있으며, 카메라는 오브젝트에 의해 반사되어 수신되는 가시광 기타 광학 신호를 이미지 센서로 포커싱하는 렌즈 및 가시광 기타 광학 신호를 감지할 수 있는 이미지 센서를 포함할 수 있다. 여기서, 이미지 센서는 복수의 픽셀로 구분되는 2D의 픽셀 어레이를 포함할 수 있으며, 일 예에 따른 카메라는 뎁스 카메라로 구현될 수 있다. 또한, 센서(140)는 라이더(LIDAR, Light Detection And Ranging) 센서 및 TOF(Time of flight) 센서와 같은 거리 센를 포함할 수 있다.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. Here, 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. In addition, the sensor 140 may include a distance sensor such as a light detection and ranging (LIDAR) sensor and a time of flight (TOF) sensor.
그 밖에 센서(110)는 제스처 센서, 자이로 센서, 기압 센서, 마그네틱 센서, 가속도 센서, 그립 센서, 근접 센서, 컬러(color) 센서(예: RGB(red, green, blue) 센서), 생체 센서, 온/습도 센서, 조도 센서 또는 UV(ultra violet) 센서 중의 적어도 하나를 포함할 수도 있다.In addition, the 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), a bio sensor, It may include at least one of a temperature/humidity sensor, an illuminance sensor, or an ultra violet (UV) sensor.
메모리(120)는 다양한 실시 예를 위해 필요한 데이터를 저장할 수 있다. 메모리(120)는 데이터 저장 용도에 따라 로봇(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 메모리) 등과 같은 형태로 구현될 수 있다.The memory 120 may store data necessary for various embodiments. The memory 120 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. For example, data for driving the robot 100 is stored in a memory embedded in the robot 100, and data for extended functions of the robot 100 is stored in a memory attachable to and detachable from the robot 100. It can be. On the other hand, in the case of memory embedded in the robot 100, volatile memory (eg, DRAM (dynamic RAM), SRAM (static RAM), SDRAM (synchronous dynamic RAM), etc.), non-volatile memory (non-volatile memory) (eg : 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). In addition, in the case of a memory attachable to and detachable from the robot 100, 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. For example, a USB memory) may be implemented in the form of the like.
일 예에 따라 메모리(120)는 오브젝트까지의 거리 정보를 포함하는 Distance Map, 오브젝트의 특성에 따른 속도 프로파일 정보 등을 저장할 수 있다. 다만, 해당 정보들은 외부 장치로부터 실시간으로 수신되는 것도 가능하다. 여기서, Distance Map은 각 셀에 오브젝트, 즉 장애물까지 거리 및 해당 장애물의 확률 값을 저장하는 형태일 수 있다. According to an example, the memory 120 may store a distance map including distance information to an object, velocity profile information according to characteristics of the object, and the like. However, the corresponding information may be received in real time from an external device. Here, the distance map may be in the form of storing a distance to an object, that is, an obstacle, and a probability value of the corresponding obstacle in each cell.
구동부(130)는 로봇(100)을 주행시킬 수 있는 장치이다. 구동부(130)는 프로세서(140)의 제어에 따라 주행 방향 및 주행 속도를 조절할 수 있으며, 일 예에 따른 구동부(130)는 로봇(100)이 주행하기 위한 동력을 발생시키는 동력발생장치(예: 사용 연료(또는 에너지원)에 따라 가솔린 엔진(engine), 디젤 엔진, LPG(liquefied petroleum gas) 엔진, 전기 모터 등), 주행 방향을 조절하기 위한 조향 장치(예: 기계식 스티어링(manual steering), 유압식 스티어링(hydraulics steering), 전자식 스티어링(electronic control power steering; EPS) 등), 동력에 따라 로봇(100)을 주행시키는 주행 장치(예: 바퀴, 프로펠러 등) 등을 포함할 수 있다. 여기서, 구동부(130)는 로봇(100)의 주행 타입(예: 휠 타입, 보행 타입, 비행 타입 등)에 따라 변형 실시될 수 있다.The driving unit 130 is a device capable of driving the robot 100. The driving unit 130 may adjust the traveling direction and driving speed under the control of the processor 140, and the driving unit 130 according to an example may be a power generating device that generates power for the robot 100 to travel (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. Here, the drive unit 130 may be modified according to the driving type (eg, wheel type, walking type, flight type, etc.) of the robot 100 .
적어도 하나의 프로세서(140)는 로봇(100)의 동작을 전반적으로 제어한다. 구체적으로, 프로세서(140)는 로봇(100)의 각 구성과 연결되어 로봇(100)의 동작을 전반적으로 제어할 수 있다. 예를 들어, 프로세서(140)는 메모리(120) 및 구동부(130)와 전기적으로 연결되어 로봇(100)의 전반적인 동작을 제어할 수 있다. 프로세서(140)는 하나 또는 복수의 프로세서로 구성될 수 있다. 예를 들어, 후술하는 다양한 기능(예를 들어, 맵 생성, 경로 플래닝)은 하나의 프로세서에 의해 수행될 수도 있으나, 복수의 프로세서에 의해 각기 다른 기능이 수행될 수도 있다. At least one processor 140 controls the overall operation of the robot 100. Specifically, the processor 140 may be connected to each component of the robot 100 to control the overall operation of the robot 100. For example, the processor 140 may be electrically connected to the memory 120 and the driving unit 130 to control the overall operation of the robot 100 . Processor 140 may be composed of one or a plurality of processors. For example, various functions (eg, map creation and route planning) described below may be performed by one processor, but different functions may be performed by a plurality of processors.
프로세서(140)는 메모리(120)에 저장된 적어도 하나의 인스트럭션(instruction)을 실행함으로써, 다양한 실시 예에 따른 로봇(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 120 .
일 실시 예에 따라 프로세서(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)로 기재한다.According to an embodiment, 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.
프로세서(140)는 SoC(System on Chip), LSI(large scale integration)로 구현될 수도 있고, FPGA(Field Programmable gate array) 형태로 구현될 수도 있다. 또한, 프로세서(140)는 SRAM 등의 휘발성 메모리를 포함할 수 있다.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.
일 실시 예에 따르면, 프로세서(140)는 오브젝트의 특성 정보에 기초하여 오브젝트까지의 거리에 따른 속도 프로파일 정보를 획득할 수 있다. 여기서, 오브젝트는 로봇(100)의 주행에 방해가 되는 장애물이 될 수 있다. 오브젝트의 특성 정보는, 오브젝트의 타입, 오브젝트의 속도 또는 오브젝트의 크기 중 적어도 하나를 포함할 수 있다. 여기서, 오브젝트의 타입은 움직임이 없는 정적 오브젝트, 움직임이 있는 동적 오브젝트로 구분될 수 있으나, 이에 한정되는 것은 아니다. 예를 들어, 동적 오브젝트의 경우 사람, 동물 등의 타입으로도 구분되고, 정적 오브젝트의 경우 가구, 가전 등의 타입으로 구분되는 것도 가능하다. 속도 프로파일 정보란 장애물과의 거리에 따른 속도 정보를 나타내는 것으로, 장애물의 특성에 따라 상이할 수 있다. According to an embodiment, the processor 140 may obtain velocity profile information according to a distance to the object based on object characteristic information. Here, the object may be an obstacle obstructing the driving of the robot 100 . The object property information may include at least one of an object type, an object speed, and an object size. Here, the type of object may be divided into a static object without motion and a dynamic object with motion, but is not limited thereto. For example, dynamic objects may be classified into types such as people and animals, and static objects may be classified into types such as furniture and home appliances. Velocity profile information represents velocity information according to a distance from an obstacle, and may be different according to characteristics of the obstacle.
프로세서(140)는 오브젝트의 특성 정보에 기초하여 획득된 속도 프로파일 정보에 기초하여 영역 별 속도 정보를 포함하는 속도 맵(speed map)을 획득할 수 있다. 예를 들어, 속도 맵은 각 셀(또는 그리드)에 대응되는 속도 정보를 포함하는 형태일 수 있다. 또한, 속도 맵은 각 셀에 장애물의 확률 값을 더 저장할 수 있다. 여기서 셀(또는 그리드)이란 맵에 포함된 최소 단위의 영역일 수 있다. 또한, 속도 정보는 속도에 대응되는 절대 수치이거나, 기준 수치에 적용되는 가중치 형태일 수 있다. 예를 들어, 속도 맵은 복수의 셀 각각에 맵핑된 속도 값을 포함할 수 있다. The processor 140 may obtain a speed map including speed information for each area based on the speed profile information obtained based on object property information. For example, the speed map may include speed information corresponding to each cell (or grid). In addition, the speed map may further store probability values of obstacles in each cell. Here, a cell (or grid) may be a minimum unit area included in the map. Also, the speed information may be an absolute value corresponding to the speed or a weighted value applied to a reference value. For example, the speed map may include speed values mapped to each of a plurality of cells.
일 예에 따라 프로세서(140)는 각 셀에 대응되는 장애물과의 거리 정보를 포함하는 Distance Map의 각 거리 정보를 속도 정보로 대체하여 속도 맵을 획득할 수 있다. According to an example, the processor 140 may obtain a speed map by replacing each distance information of a distance map including distance information to an obstacle corresponding to each cell with speed information.
이어서, 프로세서(140)는 획득된 속도 맵에 기초하여 로봇(100)의 이동 경로를 식별하고, 식별된 이동 경로에 기초하여 구동부(130)를 제어할 수 있다. Subsequently, the processor 140 may identify a movement path of the robot 100 based on the obtained speed map, and control the driving unit 130 based on the identified movement path.
일 예에 따라 프로세서(140)는 오브젝트가 정적 오브젝트인 경우, 제1 속도 프로파일 정보에 기초하여 속도 맵을 획득하고, 오브젝트가 동적 오브젝트인 경우, 제2 속도 프로파일 정보에 기초하여 속도 맵을 획득할 수 있다. 여기서, 제1 속도 프로파일 정보는, 정적 오브젝트로부터 제1 임계 거리 내에서 정적 오브젝트에 근접할수록 제1 기울기로 속도가 감소하는 정보일 수 있다. 또한, 제2 속도 프로파일 정보는, 동적 오브젝트로부터 제2 임계 거리 내에서 동적 오브젝트에 근접할수록 제2 기울기로 속도가 감소하는 정보일 수 있다. 여기서, 제2 임계 거리는 제1 임계 거리보다 클 수 있다. 또한, 제2 기울기는 제1 기울기보다 작을 수 있다. 즉, 동적 오브젝트에 대응되는 속도 프로파일은 정적 오브젝트에 대응되는 속도 프로파일과 비교하여 상대적으로 먼 거리에서부터 상대적으로 완만한 기울기로 감소하는 형태일 수 있다. According to an example, the processor 140 obtains a velocity map based on first velocity profile information when the object is a static object, and obtains a velocity map based on second velocity profile information when the object is a dynamic object. can Here, the first velocity profile information may be information in which the velocity decreases with a first gradient as the object approaches the static object within a first threshold distance from the static object. Also, the second velocity profile information may be information in which the velocity decreases with a second gradient as the object approaches the dynamic object within a second threshold distance from the dynamic object. Here, the second threshold distance may be greater than the first threshold distance. Also, the second slope may be smaller than the first slope. That is, the velocity profile corresponding to the dynamic object may decrease with a relatively gentle slope from a relatively long distance compared to the velocity profile corresponding to the static object.
일 예에 따라 프로세서(140)는 오브젝트가 제1 타입의 동적 오브젝트인 경우, 제2 속도 프로파일 정보에 기초하여 속도 맵을 획득하고, 오브젝트가 제2 타입의 동적 오브젝트인 경우, 제3 속도 프로파일 정보에 기초하여 속도 맵을 획득할 수 있다. 여기서, 제3 속도 프로파일 정보는, 제2 타입의 동적 오브젝트로부터 제3 임계 거리 내에서 제2 타입의 동적 오브젝트에 근접할수록 제3 기울기로 속도가 감소하는 정보일 수 있다. 여기서, 제3 임계 거리는 제2 임계 거리보다 클 수 있다. 또한, 제3 기울기는 제2 기울기보다 작을 수 있다. 여기서, 제2 타입의 동적 오브젝트는 제1 타입의 동적 오브젝트에 비해 상대적으로 로봇(100)의 주행에 주의가 요구되는 타입을 수 있다. 예를 들어, 제1 타입의 동적 오브젝트는 성인, 제2 타입의 동적 오브젝트는 아이, 애완 동물 등이 될 수 있으나, 이에 한정되는 것은 아니다.According to an example, the processor 140 obtains a velocity map based on second velocity profile information when the object is a first-type dynamic object, and third velocity profile information when the object is a second-type dynamic object. A speed map can be obtained based on Here, the third velocity profile information may be information in which the velocity decreases with a third gradient as the dynamic object of the second type approaches the dynamic object of the second type within a third threshold distance. Here, the third threshold distance may be greater than the second threshold distance. Also, the third slope may be smaller than the second slope. Here, the dynamic object of the second type may be a type that relatively requires attention to the driving of the robot 100 compared to the dynamic object of the first type. For example, the first type dynamic object may be an adult, and the second type dynamic object may be a child or pet, but is not limited thereto.
일 예에 따라 프로세서(140)는 오브젝트가 동적 오브젝트인 경우, 동적 오브젝트의 속도 정보를 획득하고, 동적 오브젝트의 속도 정보에 따라 상이한 속도 프로파일 정보를 적용하여 속도 맵을 획득할 수 있다. According to an example, if the object is a dynamic object, the processor 140 may acquire velocity information of the dynamic object and obtain a velocity map by applying different velocity profile information according to the velocity information of the dynamic object.
일 예에 따라 프로세서(140)는 오브젝트가 제3 타입의 정적 오브젝트인 경우, 제1 속도 프로파일 정보에 기초하여 속도 맵을 획득하고, 오브젝트가 제4 타입의 정적 오브젝트인 경우, 제4 속도 프로파일 정보에 기초하여 속도 맵을 획득할 수 있다. 여기서, 제4 속도 프로파일 정보는, 제4 타입의 정적 오브젝트로부터 제4 임계 거리 내에서 제4 타입의 정적 오브젝트에 근접할수록 제1 기울기보다 작은 제4 기울기로 속도가 감소하는 정보일 수 있다. 여기서, 제4 임계 거리는 제1 임계 거리보다 클 수 있다. 또한, 제4 기울기는 제1 기울기보다 작을 수 있다. 즉, 제4 타입의 정적 오브젝트에 대응되는 속도 프로파일은 오브젝트가 제3 타입의 정적 오브젝트에 대응되는 속도 프로파일과 비교하여 상대적으로 먼 거리에서부터 상대적으로 완만한 기울기로 감소하는 형태일 수 있다. 여기서, 제3 타입의 정적 오브젝트는 벽 등과 같이 위험성이 전혀 없는 오브젝트이고, 제4 타입의 정적 오브젝트는 화병이 놓인 탁자와 같이 벽과 비교하여 상대적으로 위험성이 있는 오브젝트일 수 있으나, 이에 한정되는 것은 아니다.According to an example, if the object is a static object of the third type, the processor 140 obtains a velocity map based on the first velocity profile information, and if the object is a static object of the fourth type, the processor 140 obtains the fourth velocity profile information. A speed map can be obtained based on Here, the fourth velocity profile information may be information in which the velocity decreases with a fourth slope smaller than the first slope as the static object of the fourth type is approached within a fourth threshold distance from the static object of the fourth type. Here, the fourth threshold distance may be greater than the first threshold distance. Also, the fourth slope may be smaller than the first slope. That is, the velocity profile corresponding to the static object of the fourth type may have a shape in which the object decreases with a relatively gentle gradient from a relatively long distance compared to a velocity profile corresponding to the static object of the third type. Here, the static object of the third type may be an object that is not dangerous at all, such as a wall, and the static object of the fourth type may be an object that is relatively dangerous compared to a wall, such as a table on which a vase is placed, but is not limited thereto. not.
일 예에 따르면 프로세서(140)는 일정 공간에 위치하는 제1 오브젝트의 특성 정보에 기초하여 일정 공간에 대응되는 제4 속도 프로파일 정보를 획득하고, 해당 공간 내에 위치하는 제2 오브젝트의 특성 정보에 기초하여 해당 공간에 대응되는 제5 속도 프로파일 정보를 획득할 수 있다. 이어서, 프로세서(140)는 제4 속도 프로파일 정보 및 제5 속도 프로파일 정보에 기초하여 일정 공간에 대응되는 속도 프로파일 정보를 획득할 수 있다. According to an example, the processor 140 acquires fourth velocity profile information corresponding to a certain space based on the property information of a first object located in a certain space, and based on the property information of a second object located in the corresponding space. Thus, fifth velocity profile information corresponding to the corresponding space can be obtained. Subsequently, the processor 140 may obtain velocity profile information corresponding to a certain space based on the fourth velocity profile information and the fifth velocity profile information.
이 경우, 프로세서(140)는 제4 속도 프로파일 정보에 기초하여 해당 공간에 포함된 각 셀(cell)에 대응되는 제1 속도 값을 획득하고, 제5 속도 프로파일 정보에 기초하여 일정 공간에 포함된 해당 공간에 포함된 각 셀에 대응되는 제2 속도 값을 획득하고, 해당 공간에 포함된 각 셀에 대응되는 제1 속도 값 및 제2 속도 값 중 작은 값에 기초하여 각 셀에 대응되는 속도 값을 획득할 수 있다. 이어서 프로세서(140)는 획득된 각 셀에 대응되는 속도 값에 기초하여 일정 공간에 대응되는 속도 맵을 획득할 수 있다. In this case, the processor 140 obtains a first velocity value corresponding to each cell included in the corresponding space based on the fourth velocity profile information, and obtains a first velocity value corresponding to each cell included in the corresponding space based on the fifth velocity profile information. A second velocity value corresponding to each cell included in the corresponding space is acquired, and a velocity value corresponding to each cell based on a smaller value of the first velocity value and the second velocity value corresponding to each cell included in the corresponding space. can be obtained. Subsequently, the processor 140 may obtain a velocity map corresponding to a certain space based on the obtained velocity value corresponding to each cell.
일 실시 예에 따르면, 프로세서(140)는 로봇이 주행하는 동안 적어도 하나의 센서(미도시)에 의해 획득된 오브젝트 정보에 기초하여 메모리(120)에 저장된 Distance Map을 업데이트할 수 있다. 이어서, 프로세서(140)는 업데이트된 Distance Map 및 오브젝트의 특성 정보에 기초하여 획득된 프로파일 정보에 기초하여 속도 맵을 획득할 수 있다. According to an embodiment, the processor 140 may update the distance map stored in the memory 120 based on object information acquired by at least one sensor (not shown) while the robot is driving. Subsequently, the processor 140 may obtain a speed map based on profile information obtained based on the updated distance map and object characteristic information.
이어서, 프로세서(140)는 기 설정된 이벤트에 따라 속도 맵에 포함된 셀 간 거리를 셀에 대응되는 속도 값으로 나누어 셀 간 소요 시간을 획득하고, 셀 간 소요 시간에 기초하여 최단 시간 경로를 로봇(100)의 이동 경로로 식별할 수 있다. 여기서, 프로세서(140)가 경로 플래닝(또는 리플래닝)을 수행하기 위한 이벤트는 속도 맵이 업데이트되는 이벤트일 수 있다. 다만, 이에 한정되는 것은 아니며 속도 맵과 관련된 다른 맵이 업데이트되는 이벤트일 수도 있다. 예를 들어, 후술하는 free space map 또는/및 distance map이 업데이트되는 이벤트일 수 있다. 일 예에 따라 상술한 다양한 맵의 획득이 경로 플래닝을 수행하는 프로세서와 상이한(또는 다른 모듈)에 의해 수행되는 경우 해당 프로세서(또는 모듈)의 이벤트 신호가 수신되는 경우 경로 플래닝이 수행될 수도 있다. Subsequently, the processor 140 obtains the time required between cells by dividing the distance between cells included in the speed map by the speed value corresponding to the cell according to the preset event, and determines the shortest time path based on the time required between cells for the robot ( 100). Here, an event for the processor 140 to perform route planning (or re-planning) may be an event in which a speed map is updated. However, the event is not limited thereto and may be an event in which another map related to the speed map is updated. For example, it may be an event in which a free space map or/and a distance map described later is updated. According to an example, if the acquisition of the above-described various maps is performed by a different (or other module) than a processor that performs path planning, path planning may be performed when an event signal of the corresponding processor (or module) is received.
도 3은 일 실시 예에 따른 로봇의 이동 경로 식별 방법을 설명하기 위한 도면이다. 3 is a diagram for explaining a method for identifying a movement path of a robot according to an embodiment.
도 3에 따르면, 프로세서(140)는 SLAM(Simulaneous Localization And Mapping)(310)에 기초하여 free space map을 획득(320)할 수 있다. 여기서, SLAM이란 맵을 생성함과 동시에 로봇(100)의 위치를 추정하는 것을 의미한다. 예를 들어, 프로세서(140)는 적어도 하나의 센서(미도시)를 통해 획득된 데이터에 기초하여 free space map을 획득할 수 있다. 일 예에 따라 프로세서(140)는 GPS를 이용하여 로봇(100)의 위치를 파악하고, 카메라, 라이더 센서, 적외선 센서, 초음파 센서 등과 같이 로봇(100)에 구비된 다양한 센서를 이용하여 free space map을 획득할 수 있다. 여기서, free space map은 공간을 occupied space, free space 또는 unknown space 중 적어도 하나로 구분한 형태일 수 있다. According to FIG. 3 , the processor 140 may obtain 320 a free space map based on Simulaneous Localization And Mapping (SLAM) 310 . Here, SLAM means generating a map and estimating the position of the robot 100 at the same time. For example, the processor 140 may obtain a free space map based on data obtained through at least one sensor (not shown). According to an example, the processor 140 determines the location of the robot 100 using GPS, and maps the free space using various sensors provided in the robot 100, such as a camera, lidar sensor, infrared sensor, and ultrasonic sensor. can be obtained. Here, the free space map may be in the form of dividing the space into at least one of an occupied space, a free space, and an unknown space.
이어서, 프로세서(140)는 free-space map에 포함된 free space에 대한 정보 및 로봇(100)이 주행하는 동안 적어도 하나의 센서(미도시), 예를 들어 라이더 센서를 통해 획득된 정보에 기초하여 distance map을 획득(330)할 수 있다. 여기서, Distance Map은 장애물까지 거리 및 장애물의 확률 값을 저장하는 형태일 수 있다. Then, the processor 140 based on the information about the free space included in the free-space map and the information obtained through at least one sensor (not shown), for example, a lidar sensor while the robot 100 is driving A distance map may be obtained (330). Here, the Distance Map may be in the form of storing a distance to an obstacle and a probability value of the obstacle.
또한, 프로세서(140)는 주행하는 동안 오브젝트 정보, 특히 동적 오브젝트 정보를 획득(340)하여, 동적 오브젝트의 타입, 속도 등을 식별할 수 있다. In addition, the processor 140 may acquire object information, particularly dynamic object information while driving (340), and identify the type, speed, and the like of the dynamic object.
이어서, 프로세서(140)는 distance map에 포함된 거리 정보, 오브젝트 정보 및 속도 프로파일 정보(360)에 기초하여 speed map을 획득할 수 있다(350). Subsequently, the processor 140 may obtain a speed map based on distance information, object information, and speed profile information 360 included in the distance map (350).
이 후, 프로세서(140)는 speed map에 포함된 셀 별 속도 정보에 기초하여 경로 플래닝(370)을 수행할 수 있다. 예를 들어, 프로세서(140)는 speed map에 포함된 셀 별 속도 정보에 기초하여 로봇(100)의 현재 위치에서 목적지까지의 최소 시간 경로를 식별할 수 있다. Thereafter, the processor 140 may perform path planning 370 based on the speed information for each cell included in the speed map. For example, the processor 140 may identify a minimum time path from the current location of the robot 100 to a destination based on speed information for each cell included in the speed map.
도 4a 내지 도 4c는 일 실시 예에 따른 오브젝트의 타입에 따른 속도 프로파일을 설명하기 위한 도면들이다. 4A to 4C are diagrams for describing a velocity profile according to an object type according to an exemplary embodiment.
도 4a는 벽과 같이 일 측으로만 공간을 제공하는 정적 오브젝트에 대한 속도 프로파일을, 도 4b는 가구와 같이 적어도 양 측으로 공간을 제공하는 정적 오브젝트에 대한 속도 프로파일을, 도 4c는 상대적으로 접근 위험도가 높은 정적 오브젝트에 대한 속도 프로파일을 나타낼 수 있다. Figure 4a is a velocity profile for a static object that provides space on only one side, such as a wall, Figure 4b is a velocity profile for a static object that provides space on at least both sides, such as furniture, Figure 4c is a relative approach risk Velocity profiles for highly static objects can be represented.
도 4a에 도시된 바와 같은 속도 프로파일에 따르면, 벽으로부터 임계 거리 내에서 속도가 점차 감소하여 벽으로부터 특정 거리가 되면 속도는 0으로 감소할 수 있다. According to the velocity profile shown in FIG. 4A , the velocity may gradually decrease within a critical distance from the wall and decrease to zero when the velocity reaches a specific distance from the wall.
도 4b에 도시된 바와 같은 속도 프로파일에 따르면, 가구로부터 복수의 방향으로 임계 거리 내에서 속도가 점차 감소하여 가구로부터 특정 거리가 되면 속도는 0으로 감소할 수 있다.According to the velocity profile shown in FIG. 4B , the velocity may gradually decrease within a threshold distance from the furniture in a plurality of directions, and may decrease to zero when reaching a specific distance from the furniture.
도 4c에 도시된 바와 같은 속도 프로파일에 따르면, 도 4b에 도시된 가구에 비해 상대적으로 접근 위험도(예를 들어, 충돌시 화병이 떨어질 위험 존재)가 높은 가구의 경우, 도 4b 보다 상대적으로 먼 임계 거리를 기준으로 속도가 상대적으로 완만하게 감소하여 가구로부터 특정 거리가 되면 속도는 0으로 감소할 수 있다.According to the velocity profile shown in FIG. 4C, in the case of a furniture with a relatively high approach risk (eg, risk of a vase falling in case of collision) compared to the furniture shown in FIG. 4B, a threshold relatively farther than FIG. 4B. The speed decreases relatively gently based on the distance, and when a certain distance from the furniture is reached, the speed may decrease to zero.
여기서, 특정 거리는 로봇(100)의 크기에 기초하여 동일한 거리로 결정될 수 있다. 예를 들어, 특정 거리는 오브젝트의 특성과 관계없이 로봇(100)의 크기의 n배(n은 1 이상의 정수)로 결정될 수 있다. 다만, 이에 한정되는 것은 아니며 각 오브젝트의 특성에 따라 특정 거리가 상이할 수도 있다. Here, the specific distance may be determined as the same distance based on the size of the robot 100 . For example, a specific distance may be determined as n times the size of the robot 100 (n is an integer greater than or equal to 1) regardless of the characteristics of the object. However, it is not limited thereto and the specific distance may be different according to the characteristics of each object.
도 5a 및 도 5b는 일 실시 예에 따른 오브젝트의 타입에 따른 속도 프로파일을 설명하기 위한 도면들이다. 5A and 5B are diagrams for describing a velocity profile according to an object type according to an exemplary embodiment.
도 5a는 성인과 같은 접근 위험도가 낮은 동적 오브젝트에 대한 속도 프로파일을, 도 5b는 아이과 같은 접근 위험도가 높은 동적 오브젝트에 대한 속도 프로파일을 나타낼 수 있다. 5A may show a velocity profile for a dynamic object with a low approach risk, such as an adult, and FIG. 5B may show a velocity profile for a dynamic object with a high approach risk, such as a child.
도 5a에 도시된 바와 같은 속도 프로파일에 따르면, 성인으로부터 복수의 방향으로 임계 거리 내에서 속도가 점차 감소하여 성인으로부터 특정 거리가 되면 속도는 0으로 감소할 수 있다. According to the velocity profile shown in FIG. 5A , the velocity may gradually decrease within a threshold distance in a plurality of directions from the adult, and may decrease to zero when the velocity reaches a specific distance from the adult.
도 5b에 도시된 바와 같은 속도 프로파일에 따르면, 아이로부터 복수의 방향으로 임계 거리 내에서 속도가 점차 감소하여 가구로부터 특정 거리가 되면 속도는 0으로 감소할 수 있다.According to the velocity profile shown in FIG. 5B , the velocity may gradually decrease within a threshold distance from the child in a plurality of directions, and may decrease to zero when the velocity reaches a specific distance from the furniture.
이 경우, 도 5b에 도시된 속도 프로파일에 따르면, 도 5a 보다 더 먼 임계 거리에서 상대적으로 완만한 기울기로 속도가 감소하여 접근 위험도가 높은 동적 오브젝트에 대한 접근 위험을 감소시킬 수 있게 된다. 여기서, 속도가 0으로 수렴하는 특정 거리는 로봇(100)의 크기에 기초하여 동일한 거리로 결정될 수 있다. 예를 들어, 특정 거리는 오브젝트의 특성과 관계없이 로봇(100)의 크기의 n배(n은 1 이상의 정수)로 결정될 수 있다. 다만, 이에 한정되는 것은 아니며 각 오브젝트의 특성에 따라 특정 거리가 상이할 수도 있다. 예를 들어 접근 위험도가 높은 동적 오브젝트에 대해 특정 거리를 상대적으로 크게 설정할 수 있다. In this case, according to the velocity profile shown in FIG. 5B, the velocity decreases with a relatively gentle gradient at a critical distance greater than that of FIG. 5A, thereby reducing the risk of approaching a dynamic object with a high risk of approach. Here, the specific distance at which the speed converges to 0 may be determined as the same distance based on the size of the robot 100 . For example, a specific distance may be determined as n times the size of the robot 100 (n is an integer greater than or equal to 1) regardless of the characteristics of the object. However, it is not limited thereto and the specific distance may be different according to the characteristics of each object. For example, a relatively large specific distance can be set for a dynamic object with a high approach risk.
도 6a 내지 도 6c는 일 실시 예에 따른 오브젝트의 속도에 따른 속도 프로파일을 설명하기 위한 도면들이다. 6A to 6C are diagrams for explaining a velocity profile according to the velocity of an object according to an exemplary embodiment.
도 6a는 동적 오브젝트, 예를 들어, 강아지와 같은 애완 동물이 움직임이 없을 경우에 대한 속도 프로파일을, 도 6b 및 도 6c는 애완 동물이 움직임이 없을 경우에 대한 속도 프로파일을 나타낼 수 있다. 6A may show a velocity profile when a dynamic object, for example, a pet, such as a puppy, does not move, and FIGS. 6B and 6C may show velocity profiles when the pet does not move.
도 6a에 도시된 바와 같이 강아지가 누워 있는 경우에는, 도 6b 및 도 6c에 도시된 바와 같이 강아지가 움직이는 경우와 상이한 속도 프로파일이 적용될 수 있다. As shown in FIG. 6A, when the puppy is lying down, a speed profile different from that when the puppy is moving may be applied as shown in FIGS. 6B and 6C.
일 예로, 도 6b에 따르면, 도 6a 보다 상대적으로 먼 임계 거리를 기준으로 속도가 상대적으로 완만하게 감소하여 가구로부터 특정 거리가 되면 속도는 0으로 감소할 수 있다. 이 경우 속도가 0으로 수렴되는 특정 거리는 도 6a와 동일할 수 있다. For example, according to FIG. 6B , the speed may decrease to 0 when the speed relatively gently decreases based on a critical distance relatively farther than that of FIG. 6A and reaches a specific distance from the furniture. In this case, the specific distance at which the speed converges to 0 may be the same as that of FIG. 6A.
다른 예로, 도 6c에 따르면, 도 6a 보다 상대적으로 먼 임계 거리를 기준으로 속도가 상대적으로 완만하게 감소하면서 상대적으로 먼 거리에서 속도가 0으로 감소할 수도 있다. 즉, 속도가 0으로 수렴되는 특정 거리는 도 6a와 상이할 수 있다. As another example, according to FIG. 6C , the speed may decrease to zero at a relatively long distance while the speed relatively gently decreases based on a relatively far critical distance from FIG. 6A . That is, the specific distance at which the speed converges to 0 may be different from that of FIG. 6A.
한편, 도면에는 명확히 도시되지 않았지만, 강아지의 속도에 따라 속도 프로파일의 기울기 및 속도가 0으로 수렴되는 특정 거리가 상이할 수 있음은 물론이다. Meanwhile, although not clearly shown in the drawings, it is needless to say that the slope of the velocity profile and the specific distance at which the velocity converges to 0 may be different according to the dog's velocity.
도 7a 내지 도 7c는 일 실시 예에 따른 복수의 오브젝트에 따른 속도 프로파일을 설명하기 위한 도면들이다. 7A to 7C are diagrams for describing velocity profiles according to a plurality of objects according to an exemplary embodiment.
일 실시 예에 따르면 프로세서(140)는 일정 공간에 복수의 오브젝트가 존재하는 경우, 제1 오브젝트의 특성 정보에 기초하여 획득된 속도 프로파일 정보 및 제2 오브젝트의 특성 정보에 기초하여 획득된 속도 프로파일 정보에 기초하여 해당 공간에 대응되는 속도 프로파일 정보를 획득할 수 있다. According to an embodiment, the processor 140, when a plurality of objects exist in a certain space, the velocity profile information obtained based on the characteristic information of the first object and the velocity profile information obtained based on the characteristic information of the second object Velocity profile information corresponding to the corresponding space can be obtained based on .
예를 들어, 프로세서(140)는 제1 오브젝트의 특성 정보에 기초하여 획득된 도 7a에 도시된 바와 같은 속도 프로파일 및 제2 오브젝트의 특성 정보에 기초하여 획득된 도 7b에 도시된 바와 같은 속도 프로파일에 기초하여 도 7c와 같은 최종 속도 프로파일을 획득할 수 있다. 즉, 프로세서(140)는 해당 공간에 속하는 동일한 셀에 대해 도 7a에서 획득된 속도 값 및 도 7b에서 획득된 속도 값 중 작은 값을 식별하여 해당 셀에 대한 최종 속도 값으로 획득하고, 모든 셀에 대한 최종 속도 값을 획득하여 최종 속도 프로파일을 획득할 수 있다. For example, the processor 140 may perform a velocity profile as shown in FIG. 7A obtained based on the characteristic information of the first object and a velocity profile as shown in FIG. 7B obtained based on the characteristic information of the second object. Based on, it is possible to obtain the final velocity profile as shown in FIG. 7c. That is, the processor 140 identifies the smaller value of the velocity value obtained in FIG. 7A and the velocity value obtained in FIG. 7B for the same cell belonging to the corresponding space, acquires it as the final velocity value for the corresponding cell, and applies it to all cells. A final velocity profile may be obtained by obtaining a final velocity value for .
도 8a 내지 도 8c는 일 실시 예에 따른 복수의 오브젝트에 따른 속도 맵을 설명하기 위한 도면들이다. 8A to 8C are diagrams for explaining a speed map according to a plurality of objects according to an exemplary embodiment.
도 8a는 특정 공간 상에 위치하는 정적 오브젝트(예를 들어, 벽)에 대응되는 속도 프로파일 정보에 기초하여 획득된 속도 맵의 예시를 나타내며, 도 8b는 동적 오브젝트(예를 들어, 성인)에 대응되는 속도 프로파일 정보에 기초하여 획득된 속도 맵의 예시를 나타낸다. 속도 맵은 각 셀에 대응되는 속도 정보를 포함하는 형태일 수 있다. 또한, 속도 맵은 각 셀에 대응되는 오브젝트 확률 정보를 포함할 수 있다. 이 경우, 각 셀에 오브젝트 확률 값이 그대로 맵핑될 수도 있으나, 오브젝트확률 값이이 임계 값 이상인 셀에만 확률 값이 맵핑되는 것도 가능하다. 8A shows an example of a speed map obtained based on velocity profile information corresponding to a static object (eg, a wall) located in a specific space, and FIG. 8B corresponds to a dynamic object (eg, an adult). An example of a speed map obtained based on the speed profile information to be obtained is shown. The speed map may include speed information corresponding to each cell. Also, the speed map may include object probability information corresponding to each cell. In this case, the object probability value may be mapped to each cell as it is, but the probability value may be mapped only to cells having an object probability value equal to or greater than this threshold value.
이 경우, 특정 공간 상에 동적 오브젝트가 출현하는 경우 도 8a에 따른 속도 프로파일 및 도 8b에 따른 속도 프로파일에 기초하여 도 8c와 같은 속도 맵이 획득될 수 있다. 즉, 프로세서(140)는 해당 공간에 속하는 동일한 셀에 대해 도 8a에서 획득된 속도 값 및 도 8b에서 획득된 속도 값 중 작은 값을 식별하여 해당 셀에 대한 최종 속도 값으로 획득하고, 모든 셀에 대한 최종 속도 값을 획득하여 최종 속도 프로파일을 획득하고, 최종 속도 프로파일에 기초하여 속도 맵을 획득할 수 있다. In this case, when a dynamic object appears in a specific space, a velocity map as shown in FIG. 8C may be obtained based on the velocity profile according to FIG. 8A and the velocity profile according to FIG. 8B. That is, the processor 140 identifies the smaller value of the velocity value obtained in FIG. 8A and the velocity value obtained in FIG. 8B for the same cell belonging to the corresponding space, acquires it as the final velocity value for the corresponding cell, and applies it to all cells. A final velocity profile may be obtained by obtaining a final velocity value for , and a velocity map may be obtained based on the final velocity profile.
도 9는 일 실시 예에 따른 셀 간 소요 시간 산출 방법을 설명하기 위한 도면이다. 9 is a diagram for explaining a method for calculating a required time between cells according to an exemplary embodiment.
일 실시 예에 따르면, 프로세서(140)는 속도 맵에 기초하여 셀 간 소요 시간을 획득하고, 획득된 셀 간 소요 시간에 기초하여 로봇(100)의 이동 경로로 식별할 수 있다. According to an embodiment, the processor 140 may obtain a required time between cells based on the speed map, and may identify the moving path of the robot 100 based on the obtained required time between cells.
일 예에 따라 도 9에 도시된 바와 같이 각 셀에 대응되는 속도가 맵핑된 속도 맵에서 각 셀에 맵핑된 속도 및 각 셀의 중심 간 거리에 기초하여 셀 간 소요 시간을 획득할 수 있다. 예를 들어, 제1 셀(911)에 맵핑된 속도가 v11(예를 들어, mm/s, cm/s 와 같은 속도 단위)이고, 제2 셀(912)에 맵핑된 속도가 v21이며, 제1 셀(911) 및 제2 셀(912) 간 거리가 xmm(또는 cm 등 속도와 같은 거리 단위)(실제 거리)인 경우 x/v11을 제1 셀(911) 및 제2 셀(912) 간 소요 시간으로 산출할 수 있다. 다만, 제1 셀(911)에 맵핑된 속도 v11이 아닌, v11 및 v21의 평균 값, v21 등에 기초하여 제1 셀(911) 및 제2 셀(912) 간 소요 시간을 산출하는 것도 가능하다.According to an example, as shown in FIG. 9 , a required time between cells may be obtained based on a speed mapped to each cell and a distance between centers of each cell in a speed map to which a speed corresponding to each cell is mapped. For example, the velocity mapped to the first cell 911 is v11 (eg, a velocity unit such as mm/s or cm/s), the velocity mapped to the second cell 912 is v21, If the distance between 1 cell 911 and 2 cell 912 is xmm (or a distance unit such as cm, etc.) (actual distance), x/v11 is defined as It can be calculated from the time required. However, it is also possible to calculate the required time between the first cell 911 and the second cell 912 based on the average value of v11 and v21, v21, and the like, rather than the speed v11 mapped to the first cell 911.
이어서, 프로세서(140)는 각 셀 간 소요 시간에 기초하여 최단 시간 경로를 로봇(100)의 이동 경로로 식별할 수 있다. 일 예에 따라 프로세서(140)는 셀 간 소요 시간을 코스트(cost), 예를 들어 edge cost로 이용하여 누적 cost가 가장 작은 경로를 식별할 수 있다. Subsequently, the processor 140 may identify the shortest time path as the moving path of the robot 100 based on the required time between each cell. According to an example, the processor 140 may identify a path having the smallest cumulative cost by using the time required between cells as a cost, for example, an edge cost.
도 10a 내지 도 10c는 일 실시 예에 따른 이동 경로 식별 방법을 설명하기 위한 도면들이다. 10A to 10C are diagrams for explaining a movement path identification method according to an embodiment.
도 10a에 따르면, 이미 식별된 이동 경로 ① 상에 정적 장애물 및 동적 장애물이 출현하는 경우, 해당 이동 경로를 유지하게 되는 경우 이동 경로 ①은 ②와 같은 형태로 업데이트될 수 있다. 이 경우, 이동 경로 ②는 최소 경로가 아닐 수 있게 된다. 이에 따라 프로세서(140)는 상술한 다양한 실시 예에 따른 속도 맵에 기초하여 최단 시간 경로인 ③을 식별하고, 이동 경로 ③에 기초하여 로봇을 주행시킬 수 있다. According to FIG. 10A , when a static obstacle and a dynamic obstacle appear on an already identified movement path ① and the movement path is maintained, the movement path ① may be updated in the form of ②. In this case, the moving path ② may not be the minimum path. Accordingly, the processor 140 may identify the shortest time path ③ based on the speed map according to various embodiments described above, and may drive the robot based on the moving path ③.
도 10b에 따르면, 이미 식별된 이동 경로 ①이 아닌 다른 경로 상에 존재하던 장애물 예를 들어, 정적 장애물이 사라지고 이동 경로 ① 상에 동적 장애물이 출현하는 경우 이동 경로 ①은 ②와 같은 형태로 업데이트될 수 있다. 이동 경로 ②는 최소 경로가 아닐 수 있게 된다. 이에 따라 프로세서(140)는 상술한 다양한 실시 예에 따른 속도 맵에 기초하여 최단 시간 경로인 ③을 식별하고, 이동 경로 ③에 기초하여 로봇을 주행시킬 수 있다. According to FIG. 10B, when an obstacle existing on a path other than the previously identified movement path ①, for example, a static obstacle disappears and a dynamic obstacle appears on the movement path ①, the movement path ① will be updated in the form of ②. can The movement path ② may not be the minimum path. Accordingly, the processor 140 may identify the shortest time path ③ based on the speed map according to various embodiments described above, and may drive the robot based on the moving path ③.
도 10c에 따르면, 이미 식별된 이동 경로 ①이 아닌 다른 경로 상에 존재하던 장애물 예를 들어, 정적 장애물이 사라지고 이동 경로 ① 상에 동적 장애물이 출현하는 경우 이동 경로 ①은 ②와 같은 형태로 업데이트될 수 있다. 이동 경로 ②는 최소 경로가 아닐 수 있게 된다. 이에 따라 프로세서(140)는 상술한 다양한 실시 예에 따른 속도 맵에 기초하여 최단 시간 경로인 ③을 식별하고, 이동 경로 ③에 기초하여 로봇을 주행시킬 수 있다. According to FIG. 10C, when an obstacle existing on a path other than the previously identified movement path ①, for example, a static obstacle disappears and a dynamic obstacle appears on the movement path ①, the movement path ① is updated in the form of ②. can The moving path ② may not be the minimum path. Accordingly, the processor 140 may identify the shortest time path ③ based on the speed map according to various embodiments described above, and may drive the robot based on the moving path ③.
도 11은 일 실시 예에 따른 로봇의 세부 구성을 나타내는 블럭도이다. 11 is a block diagram showing a detailed configuration of a robot according to an embodiment.
도 11에 따르면 로봇(100')은 적어도 하나의 센서(110), 메모리(120), 구동부(130), 프로세서(140), 통신 인터페이스(150), 사용자 인터페이스(160) 및 디스플레이(170)를 포함할 수 있다. 도 11에 도시된 구성 중 도 2에 도시된 구성과 중복되는 구성에 대해서는 자세한 설명을 생략하도록 한다. According to FIG. 11, a robot 100' includes at least one sensor 110, a memory 120, a driving unit 130, a processor 140, a communication interface 150, a user interface 160, and a display 170. can include Among the components shown in FIG. 11 , detailed descriptions of components overlapping with those shown in FIG. 2 will be omitted.
통신 인터페이스(150)는 다양한 타입의 데이터를 입력 및 출력할 수 있다. 예를 들어 통신 인터페이스(150)는 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 메모리), 외부 서버(예를 들어 웹 하드)와 다양한 타입의 데이터를 송수신할 수 있다.The communication interface 150 may input and output various types of data. For example, the communication interface 150 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.
일 예에 따라 맵 정보를 외부 장치(또는 외부 서버)로부터 수신하는 경우, 통신 인터페이스(150)를 통해 맵 정보를 수신할 수 있다. According to an example, when map information is received from an external device (or external server), map information may be received through the communication interface 150 .
사용자 인터페이스(160)는 로봇(100')이 사용자와 인터렉션(Interaction)을 수행하기 위한 구성이다. 예를 들어 사용자 인터페이스(160)는 터치 센서, 모션 센서, 버튼, 조그(Jog) 다이얼, 스위치, 마이크 또는 스피커 중 적어도 하나를 포함할 수 있으나 이에 한정되는 것은 아니다.The user interface 160 is a component for the robot 100' to perform an interaction with a user. For example, the user interface 160 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.
디스플레이(170)는 자발광 소자를 포함하는 디스플레이 또는, 비자발광 소자 및 백라이트를 포함하는 디스플레이로 구현될 수 있다. 예를 들어, 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)는 터치 스크린을 내장하고 있어, 손가락 또는 펜(예를 들어, 스타일러스 펜)을 이용하여 프로그램을 실행시킬 수 있도록 구현될 수 있다.The display 170 may be implemented as a display including a self-light emitting element or a display including a non-light emitting element and a backlight. For example, LCD (Liquid Crystal Display), OLED (Organic Light Emitting Diodes) display, LED (Light Emitting Diodes), micro LED (micro LED), Mini LED, PDP (Plasma Display Panel), QD (Quantum dot) display , QLED (Quantum dot light-emitting diodes), etc. can be implemented in various types of displays. 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). Meanwhile, 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).
도 12는 일 실시 예에 따른 로봇의 제어 방법을 설명하기 위한 흐름도이다.12 is a flowchart illustrating a method of controlling a robot according to an exemplary embodiment.
도 12에 도시된 로봇의 제어 방법에 따르면, 로봇이 주행하는 동안 적어도 하나의 센서에 의해 획득된 센싱 데이터에 기초하여 오브젝트의 특성 정보를 획득하고, 획득된 오브젝트의 특성 정보에 기초하여 오브젝트까지의 거리에 따른 속도 프로파일 정보를 획득한다(S1210).According to the method for controlling a robot shown in FIG. 12 , property information of an object is acquired based on sensing data obtained by at least one sensor while the robot is traveling, and based on the obtained property information of the object, the robot is traveling to the object. Velocity profile information according to distance is acquired (S1210).
이어서, 획득된 속도 프로파일 정보에 기초하여 영역 별 속도 정보를 포함하는 속도 맵을 획득한다(S1220).Subsequently, a speed map including speed information for each area is obtained based on the obtained speed profile information (S1220).
이어서, 획득된 속도 맵에 기초하여 이동 경로를 식별한다(S1230).Subsequently, a movement path is identified based on the obtained speed map (S1230).
이 후, 식별된 이동 경로에 기초하여 로봇을 구동한다(S1240).Then, the robot is driven based on the identified movement path (S1240).
또한, 속도 맵을 획득하는 S1220 단계에서는, 오브젝트가 정적 오브젝트인 경우, 제1 속도 프로파일 정보에 기초하여 속도 맵을 획득하고, 오브젝트가 동적 오브젝트인 경우, 제2 속도 프로파일 정보에 기초하여 속도 맵을 획득할 수 있다. 이 경우, 제1 속도 프로파일 정보는, 정적 오브젝트로부터 제1 임계 거리 내에서 정적 오브젝트에 근접할수록 제1 기울기로 속도가 감소하는 정보이고, 제2 속도 프로파일 정보는, 동적 오브젝트로부터 제2 임계 거리 내에서 동적 오브젝트에 근접할수록 제1 기울기보다 작은 제2 기울기로 속도가 감소하는 정보일 수 있다. In addition, in step S1220 of obtaining a speed map, if the object is a static object, a speed map is obtained based on the first speed profile information, and if the object is a dynamic object, a speed map is obtained based on the second speed profile information. can be obtained In this case, the first velocity profile information is information in which the velocity decreases with a first gradient as it approaches the static object within a first threshold distance from the static object, and the second velocity profile information is information within a second threshold distance from the dynamic object. It may be information that the speed decreases with a second slope smaller than the first slope as it approaches the dynamic object.
또한, 속도 맵을 획득하는 S1220 단계에서는, 오브젝트가 제1 타입의 동적 오브젝트인 경우, 제2 속도 프로파일 정보에 기초하여 속도 맵을 획득하고, 오브젝트가 제2 타입의 동적 오브젝트인 경우, 제3 속도 프로파일 정보에 기초하여 상기 속도 맵을 획득한다. 이 경우, 제3 속도 프로파일 정보는, 제2 타입의 동적 오브젝트로부터 제3 임계 거리 내에서 제2 타입의 동적 오브젝트에 근접할수록 제2 기울기보다 작은 제3 기울기로 속도가 감소하는 정보일 수 있다. In addition, in step S1220 of obtaining a speed map, if the object is a dynamic object of the first type, a speed map is obtained based on the second speed profile information, and if the object is a dynamic object of the second type, a third speed is obtained. The speed map is obtained based on the profile information. In this case, the third velocity profile information may be information in which the velocity decreases with a third slope smaller than the second slope as it approaches the second type dynamic object within a third threshold distance from the second type dynamic object.
또한, 속도 맵을 획득하는 S1220 단계에서는, 오브젝트가 동적 오브젝트인 경우, 동적 오브젝트의 속도 정보를 획득하고, 동적 오브젝트의 속도 정보에 따라 상이한 속도 프로파일 정보를 적용하여 속도 맵을 획득할 수 있다. Further, in step S1220 of acquiring the speed map, if the object is a dynamic object, the speed map may be obtained by obtaining speed information of the dynamic object and applying different speed profile information according to the speed information of the dynamic object.
또한, 속도 맵을 획득하는 S1220 단계에서는, 일정 공간에 위치하는 제1 오브젝트의 특성 정보에 기초하여 일정 공간에 대응되는 제4 속도 프로파일 정보를 획득하고 일정 공간 내에 위치하는 제2 오브젝트의 특성 정보에 기초하여 일정 공간에 대응되는 제5 속도 프로파일 정보를 획득하고, 제4 속도 프로파일 정보 및 제5 속도 프로파일 정보에 기초하여 일정 공간에 대응되는 속도 프로파일 정보를 획득할 수 있다. In addition, in step S1220 of obtaining a speed map, fourth velocity profile information corresponding to a certain space is obtained based on the property information of a first object located in a certain space, and the property information of a second object located in the certain space is obtained. Based on this, fifth velocity profile information corresponding to a certain space may be obtained, and velocity profile information corresponding to a certain space may be obtained based on the fourth and fifth velocity profile information.
이 경우, 속도 맵을 획득하는 S1220 단계에서는, 제4 속도 프로파일 정보에 기초하여 일정 공간에 포함된 각 셀(cell)에 대응되는 제1 속도 값을 획득하고, 제5 속도 프로파일 정보에 기초하여 상기 일정 공간에 포함된 각 셀에 대응되는 제2 속도 값을 획득하고, 일정 공간에 포함된 상기 각 셀에 대응되는 제1 속도 값 및 제2 속도 값 중 작은 값에 기초하여 각 셀에 대응되는 속도 값을 획득하고, 각 셀에 대응되는 속도 값에 기초하여 일정 공간에 대응되는 속도 맵을 획득할 수 있다. In this case, in step S1220 of obtaining a velocity map, a first velocity value corresponding to each cell included in a certain space is obtained based on the fourth velocity profile information, and the first velocity value is obtained based on the fifth velocity profile information. A second velocity value corresponding to each cell included in the certain space is obtained, and the velocity corresponding to each cell is based on a smaller value of the first velocity value and the second velocity value corresponding to each cell included in the certain space. value, and a speed map corresponding to a certain space may be obtained based on the speed value corresponding to each cell.
또한, 속도 맵을 획득하는 S1220 단계에서는, 로봇이 주행하는 동안 센서에 의해 획득된 오브젝트 정보에 기초하여 오브젝트까지의 거리 정보를 포함하는 Distance Map 을 업데이트하고, 업데이트된 Distance Map 및 획득된 프로파일 정보에 기초하여 영역 별 속도 정보를 포함하는 속도 맵을 획득할 수 있다. In addition, in step S1220 of acquiring the speed map, the distance map including distance information to the object is updated based on the object information obtained by the sensor while the robot is traveling, and the updated distance map and the obtained profile information are updated. Based on this, it is possible to obtain a speed map including speed information for each area.
속도 맵은, 복수의 셀 각각에 대응되는 속도 값을 포함할 수 있다. 이 경우, 로봇을 구동하는 S1240 단계에서는, 속도 맵에 포함된 셀 간 거리를 셀에 대응되는 속도 값으로 나누어 셀 간 소요 시간을 획득하고 셀 간 소요 시간에 기초하여 최단 시간 경로를 로봇의 이동 경로로 식별할 수 있다. The speed map may include speed values corresponding to each of a plurality of cells. In this case, in step S1240 of driving the robot, the distance between cells included in the speed map is divided by the speed value corresponding to the cell to obtain the required time between cells, and based on the required time between cells, the shortest time path is the moving path of the robot. can be identified by
또한, 속도 맵을 획득하는 S1220 단계에서는, 오브젝트까지의 거리 정보를 포함하는 Distance Map 에서 각 셀에 대응되는 거리 정보를 획득고, 획득된 거리 정보 및 속도 프로파일 정보에 기초하여 각 셀에 대응되는 속도 정보를 획득할 수 있다. In addition, in step S1220 of obtaining a speed map, distance information corresponding to each cell is obtained from the distance map including distance information to the object, and the speed corresponding to each cell is based on the obtained distance information and speed profile information. information can be obtained.
상술한 다양한 실시 예에 따르면, 로봇이 주행하는 동안 식별되는 다양한 타입의 장애물을 고려하여 최단 시간 경로를 플래닝할 수 있게 된다. According to various embodiments described above, the shortest time path can be planned in consideration of various types of obstacles identified while the robot is driving.
한편, 상술한 다양한 실시 예들에 따른 방법들은, 기존 전자 장치에 설치 가능한 어플리케이션 형태로 구현될 수 있다. 또는 상술한 본 개시의 다양한 실시 예들에 따른 방법들은 딥 러닝 기반의 인공 신경망(또는 심층 인공 신경망) 즉, 학습 네트워크 모델을 이용하여 수행될 수 있다. Meanwhile, 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. Alternatively, 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.
또한, 상술한 다양한 실시 예들에 따른 방법들은, 기존 전자 장치에 대한 소프트웨어 업그레이드, 또는 하드웨어 업그레이드 만으로도 구현될 수 있다. In addition, the methods according to various embodiments described above may be implemented only by upgrading software or hardware of an existing electronic device.
또한, 상술한 본다양한 실시 예들은 전자 장치에 구비된 임베디드 서버, 또는 전자 장치의 외부 서버를 통해 수행되는 것도 가능하다. In addition, various embodiments described above may be performed through an embedded server included in the electronic device or an external server of the electronic device.
한편, 일시 예에 따르면, 이상에서 설명된 다양한 실시 예들은 기기(machine)(예: 컴퓨터)로 읽을 수 있는 저장 매체(machine-readable storage media)에 저장된 명령어를 포함하는 소프트웨어로 구현될 수 있다. 기기는, 저장 매체로부터 저장된 명령어를 호출하고, 호출된 명령어에 따라 동작이 가능한 장치로서, 개시된 실시 예들에 따른 전자 장치(예: 전자 장치(A))를 포함할 수 있다. 명령이 프로세서에 의해 실행될 경우, 프로세서가 직접, 또는 프로세서의 제어 하에 다른 구성요소들을 이용하여 명령에 해당하는 기능을 수행할 수 있다. 명령은 컴파일러 또는 인터프리터에 의해 생성 또는 실행되는 코드를 포함할 수 있다. 기기로 읽을 수 있는 저장 매체는, 비일시적(non-transitory) 저장매체의 형태로 제공될 수 있다. 여기서, '비일시적'은 저장매체가 신호(signal)를 포함하지 않으며 실재(tangible)한다는 것을 의미할 뿐 데이터가 저장매체에 반영구적 또는 임시적으로 저장됨을 구분하지 않는다.Meanwhile, according to an exemplary embodiment, 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. When a command is executed by a processor, 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. Here, '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.
또한, 일 실시 예에 따르면, 이상에서 설명된 다양한 실시 예들에 따른 방법은 컴퓨터 프로그램 제품(computer program product)에 포함되어 제공될 수 있다. 컴퓨터 프로그램 제품은 상품으로서 판매자 및 구매자 간에 거래될 수 있다. 컴퓨터 프로그램 제품은 기기로 읽을 수 있는 저장 매체(예: compact disc read only memory (CD-ROM))의 형태로, 또는 어플리케이션 스토어(예: 플레이 스토어TM)를 통해 온라인으로 배포될 수 있다. 온라인 배포의 경우에, 컴퓨터 프로그램 제품의 적어도 일부는 제조사의 서버, 어플리케이션 스토어의 서버, 또는 중계 서버의 메모리와 같은 저장 매체에 적어도 일시 저장되거나, 임시적으로 생성될 수 있다.Also, according to one embodiment, 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 Store™). In the case of online distribution, 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.
또한, 상술한 다양한 실시 예들에 따른 구성 요소(예: 모듈 또는 프로그램) 각각은 단수 또는 복수의 개체로 구성될 수 있으며, 전술한 해당 서브 구성 요소들 중 일부 서브 구성 요소가 생략되거나, 또는 다른 서브 구성 요소가 다양한 실시 예에 더 포함될 수 있다. 대체적으로 또는 추가적으로, 일부 구성 요소들(예: 모듈 또는 프로그램)은 하나의 개체로 통합되어, 통합되기 이전의 각각의 해당 구성 요소에 의해 수행되는 기능을 동일 또는 유사하게 수행할 수 있다. 다양한 실시 예들에 따른, 모듈, 프로그램 또는 다른 구성 요소에 의해 수행되는 동작들은 순차적, 병렬적, 반복적 또는 휴리스틱하게 실행되거나, 적어도 일부 동작이 다른 순서로 실행되거나, 생략되거나, 또는 다른 동작이 추가될 수 있다.In addition, each of the components (eg, modules or programs) according to various embodiments described above 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
이상에서는 바람직한 실시 예에 대하여 도시하고 설명하였지만, 본 개시는 상술한 특정의 실시 예에 한정되지 아니하며, 청구범위에서 청구하는 요지를 벗어남이 없이 당해 개시에 속하는 기술분야에서 통상의 지식을 가진 자에 의해 다양한 변형실시가 가능한 것은 물론이고, 이러한 변형실시들은 본 개시의 기술적 사상이나 전망으로부터 개별적으로 이해되어서는 안될 것이다.Although preferred embodiments have been shown and described above, the present disclosure is not limited to the specific embodiments described above, and is available to those skilled in the art without departing from the subject matter claimed in the claims. Of course, various modifications are possible, and these modifications should not be individually understood from the technical spirit or perspective of the present disclosure.

Claims (15)

  1. 로봇에 있어서,in robots,
    적어도 하나의 센서; at least one sensor;
    구동부; driving unit;
    적어도 하나의 명령을 저장하는 메모리; 및a memory storing at least one instruction; and
    상기 적어도 하나의 센서, 상기 구동부 및 상기 메모리와 연결되어 상기 전자 장치를 제어하는 프로세서;를 포함하며,A processor connected to the at least one sensor, the driving unit, and the memory to control the electronic device;
    상기 프로세서는,the processor,
    상기 적어도 하나의 명령어를 실행함으로써, By executing the at least one command,
    상기 로봇이 주행하는 동안 상기 적어도 하나의 센서에 의해 획득된 센싱 데이터에 기초하여 오브젝트의 특성 정보를 획득하고, Obtaining property information of an object based on sensing data acquired by the at least one sensor while the robot is traveling;
    상기 획득된 오브젝트의 특성 정보에 기초하여 상기 오브젝트까지의 거리에 따른 속도 프로파일 정보를 획득하고, Obtaining velocity profile information according to a distance to the object based on the acquired characteristic information of the object;
    상기 획득된 속도 프로파일 정보에 기초하여 영역 별 속도 정보를 포함하는 속도 맵을 획득하고, Obtaining a speed map including speed information for each area based on the obtained speed profile information;
    상기 획득된 속도 맵에 기초하여 식별된 이동 경로에 기초하여 상기 구동부를 제어하는, 로봇. Controlling the driving unit based on the movement path identified based on the obtained speed map, the robot.
  2. 제1항에 있어서, According to claim 1,
    상기 프로세서는, the processor,
    상기 오브젝트가 정적 오브젝트인 경우, 제1 속도 프로파일 정보에 기초하여 상기 속도 맵을 획득하고, If the object is a static object, obtaining the velocity map based on first velocity profile information;
    상기 오브젝트가 동적 오브젝트인 경우, 제2 속도 프로파일 정보에 기초하여 상기 속도 맵을 획득하며, When the object is a dynamic object, obtaining the velocity map based on second velocity profile information;
    상기 제1 속도 프로파일 정보는, 상기 정적 오브젝트로부터 제1 임계 거리 내에서 상기 정적 오브젝트에 근접할수록 제1 기울기로 속도가 감소하는 정보이고, The first velocity profile information is information in which the velocity decreases with a first gradient as it approaches the static object within a first threshold distance from the static object;
    상기 제2 속도 프로파일 정보는, 상기 동적 오브젝트로부터 제2 임계 거리 내에서 상기 동적 오브젝트에 근접할수록 상기 제1 기울기보다 작은 제2 기울기로 속도가 감소하는 정보인, 로봇.The second velocity profile information is information in which a velocity decreases with a second slope smaller than the first slope as it approaches the dynamic object within a second threshold distance from the dynamic object.
  3. 제2항에 있어서, According to claim 2,
    상기 프로세서는, the processor,
    상기 오브젝트가 제1 타입의 동적 오브젝트인 경우, 상기 제2 속도 프로파일 정보에 기초하여 상기 속도 맵을 획득하고, If the object is a dynamic object of a first type, obtain the velocity map based on the second velocity profile information;
    상기 오브젝트가 제2 타입의 동적 오브젝트인 경우, 제3 속도 프로파일 정보에 기초하여 상기 속도 맵을 획득하며, When the object is a dynamic object of a second type, obtaining the velocity map based on third velocity profile information;
    상기 제3 속도 프로파일 정보는, 상기 제2 타입의 동적 오브젝트로부터 제3 임계 거리 내에서 상기 제2 타입의 동적 오브젝트에 근접할수록 상기 제2 기울기보다 작은 제3 기울기로 속도가 감소하는 정보인, 로봇.The third velocity profile information is information in which the speed decreases with a third slope smaller than the second slope as the robot approaches the second type of dynamic object within a third threshold distance from the second type of dynamic object. .
  4. 제2항에 있어서, According to claim 2,
    상기 프로세서는, the processor,
    상기 오브젝트가 동적 오브젝트인 경우, 상기 동적 오브젝트의 속도 정보를 획득하고, If the object is a dynamic object, obtaining speed information of the dynamic object;
    상기 동적 오브젝트의 속도 정보에 따라 상이한 속도 프로파일 정보를 적용하여 상기 속도 맵을 획득하는, 로봇.Acquiring the speed map by applying different speed profile information according to the speed information of the dynamic object.
  5. 제1항에 있어서, According to claim 1,
    상기 프로세서는,the processor,
    일정 공간에 위치하는 제1 오브젝트의 특성 정보에 기초하여 상기 일정 공간에 대응되는 제4 속도 프로파일 정보를 획득하고, Obtaining fourth velocity profile information corresponding to the predetermined space based on characteristic information of a first object located in the predetermined space;
    상기 일정 공간 내에 위치하는 제2 오브젝트의 특성 정보에 기초하여 상기 일정 공간에 대응되는 제5 속도 프로파일 정보를 획득하고, Obtaining fifth velocity profile information corresponding to the predetermined space based on property information of a second object located within the predetermined space;
    상기 제4 속도 프로파일 정보 및 상기 제5 속도 프로파일 정보에 기초하여 상기 일정 공간에 대응되는 속도 프로파일 정보를 획득하는, 로봇.The robot, which obtains velocity profile information corresponding to the predetermined space based on the fourth velocity profile information and the fifth velocity profile information.
  6. 제5항에 있어서, According to claim 5,
    상기 프로세서는,the processor,
    상기 제4 속도 프로파일 정보에 기초하여 상기 일정 공간에 포함된 각 셀(cell)에 대응되는 제1 속도 값을 획득하고,Obtaining a first velocity value corresponding to each cell included in the predetermined space based on the fourth velocity profile information;
    상기 제5 속도 프로파일 정보에 기초하여 상기 일정 공간에 포함된 상기 각 셀에 대응되는 제2 속도 값을 획득하고,Obtaining a second velocity value corresponding to each cell included in the predetermined space based on the fifth velocity profile information;
    상기 일정 공간에 포함된 상기 각 셀에 대응되는 제1 속도 값 및 제2 속도 값 중 작은 값에 기초하여 상기 각 셀에 대응되는 속도 값을 획득하고, Obtaining a velocity value corresponding to each cell based on a smaller value of a first velocity value and a second velocity value corresponding to each cell included in the predetermined space;
    상기 획득된 상기 각 셀에 대응되는 속도 값에 기초하여 상기 일정 공간에 대응되는 속도 맵을 획득하는, 로봇. Acquiring a speed map corresponding to the predetermined space based on the obtained speed value corresponding to each cell.
  7. 제1항에 있어서, According to claim 1,
    상기 메모리는, the memory,
    오브젝트까지의 거리 정보를 포함하는 Distance Map을 더 저장하며, Further stores a distance map containing distance information to the object,
    상기 프로세서는,the processor,
    상기 로봇이 주행하는 동안 상기 적어도 하나의 센서에 의해 획득된 오브젝트 정보에 기초하여 상기 저장된 Distance Map을 업데이트하고, Updating the stored Distance Map based on object information obtained by the at least one sensor while the robot is traveling;
    상기 업데이트된 Distance Map 및 상기 획득된 프로파일 정보에 기초하여 상기 영역 별 속도 정보를 포함하는 속도 맵을 획득하는, 로봇.A robot that obtains a speed map including speed information for each area based on the updated Distance Map and the obtained profile information.
  8. 제1항에 있어서, According to claim 1,
    상기 속도 맵은, 복수의 셀 각각에 대응되는 속도 값을 포함하고, The speed map includes speed values corresponding to each of a plurality of cells,
    상기 프로세서는, the processor,
    상기 속도 맵에 포함된 셀 간 거리를 셀에 대응되는 속도 값으로 나누어 셀 간 소요 시간을 획득하고, Divide the distance between cells included in the speed map by a speed value corresponding to the cell to obtain a required time between cells;
    상기 셀 간 소요 시간에 기초하여 최단 시간 경로를 상기 로봇의 이동 경로로 식별하는, 로봇. Based on the time required between the cells, the robot identifies the shortest time path as the moving path of the robot.
  9. 제1항에 있어서, According to claim 1,
    상기 프로세서는, the processor,
    오브젝트까지의 거리 정보를 포함하는 Distance Map에서 각 셀에 대응되는 거리 정보를 획득하고, Acquiring distance information corresponding to each cell from a distance map including distance information to an object,
    상기 획득된 거리 정보 및 상기 속도 프로파일 정보에 기초하여 각 셀에 대응되는 속도 정보를 획득하고, obtaining speed information corresponding to each cell based on the obtained distance information and the speed profile information;
    각 셀에 대응되는 속도 정보를 포함하는 상기 속도 맵을 획득하는, 로봇. A robot that obtains the speed map including speed information corresponding to each cell.
  10. 로봇의 제어 방법에 있어서,In the robot control method,
    상기 로봇이 주행하는 동안 적어도 하나의 센서에 의해 획득된 센싱 데이터에 기초하여 오브젝트의 특성 정보를 획득하는 단계;obtaining characteristic information of an object based on sensing data obtained by at least one sensor while the robot is driving;
    상기 획득된 오브젝트의 특성 정보에 기초하여 상기 오브젝트까지의 거리에 따른 속도 프로파일 정보를 획득하는 단계;obtaining velocity profile information according to a distance to the object based on the acquired characteristic information of the object;
    상기 획득된 속도 프로파일 정보에 기초하여 영역 별 속도 정보를 포함하는 속도 맵을 획득하는 단계; 및 obtaining a speed map including speed information for each area based on the obtained speed profile information; and
    상기 획득된 속도 맵에 기초하여 식별된 이동 경로에 기초하여 상기 로봇을 구동하는 단계;를 포함하는 제어 방법. and driving the robot based on a movement path identified based on the obtained speed map.
  11. 제10항에 있어서, According to claim 10,
    상기 속도 맵을 획득하는 단계는, Obtaining the speed map,
    상기 오브젝트가 정적 오브젝트인 경우, 제1 속도 프로파일 정보에 기초하여 상기 속도 맵을 획득하는 단계; 및obtaining the velocity map based on first velocity profile information when the object is a static object; and
    상기 오브젝트가 동적 오브젝트인 경우, 제2 속도 프로파일 정보에 기초하여 상기 속도 맵을 획득하는 단계;를 포함하며, When the object is a dynamic object, obtaining the velocity map based on second velocity profile information;
    상기 제1 속도 프로파일 정보는, 상기 정적 오브젝트로부터 제1 임계 거리 내에서 상기 정적 오브젝트에 근접할수록 제1 기울기로 속도가 감소하는 정보이고, The first velocity profile information is information in which the velocity decreases with a first gradient as it approaches the static object within a first threshold distance from the static object;
    상기 제2 속도 프로파일 정보는, 상기 동적 오브젝트로부터 제2 임계 거리 내에서 상기 동적 오브젝트에 근접할수록 상기 제1 기울기보다 작은 제2 기울기로 속도가 감소하는 정보인, 제어 방법. The second velocity profile information is information in which a velocity decreases with a second slope smaller than the first slope as it approaches the dynamic object within a second threshold distance from the dynamic object.
  12. 제11항에 있어서, According to claim 11,
    상기 속도 맵을 획득하는 단계는, Obtaining the speed map,
    상기 오브젝트가 제1 타입의 동적 오브젝트인 경우, 상기 제2 속도 프로파일 정보에 기초하여 상기 속도 맵을 획득하는 단계; 및obtaining the velocity map based on the second velocity profile information when the object is a dynamic object of a first type; and
    상기 오브젝트가 제2 타입의 동적 오브젝트인 경우, 제3 속도 프로파일 정보에 기초하여 상기 속도 맵을 획득하는 단계;를 포함하며, When the object is a dynamic object of a second type, obtaining the velocity map based on third velocity profile information;
    상기 제3 속도 프로파일 정보는, 상기 제2 타입의 동적 오브젝트로부터 제3 임계 거리 내에서 상기 제2 타입의 동적 오브젝트에 근접할수록 상기 제2 기울기보다 작은 제3 기울기로 속도가 감소하는 정보인, 제어 방법. The third velocity profile information is information indicating that the velocity decreases with a third slope smaller than the second slope as it approaches the second type dynamic object within a third threshold distance from the second type dynamic object. Way.
  13. 제11항에 있어서, According to claim 11,
    상기 속도 맵을 획득하는 단계는, Obtaining the speed map,
    상기 오브젝트가 동적 오브젝트인 경우, 상기 동적 오브젝트의 속도 정보를 획득하고, If the object is a dynamic object, obtaining speed information of the dynamic object;
    상기 동적 오브젝트의 속도 정보에 따라 상이한 속도 프로파일 정보를 적용하여 상기 속도 맵을 획득하는, 제어 방법. The control method of obtaining the speed map by applying different speed profile information according to the speed information of the dynamic object.
  14. 제10항에 있어서, According to claim 10,
    상기 속도 프로파일 정보를 획득하는 단계는, Obtaining the speed profile information,
    일정 공간에 위치하는 제1 오브젝트의 특성 정보에 기초하여 상기 일정 공간에 대응되는 제4 속도 프로파일 정보를 획득하는 단계;obtaining fourth velocity profile information corresponding to a predetermined space based on characteristic information of a first object located in the predetermined space;
    상기 일정 공간 내에 위치하는 제2 오브젝트의 특성 정보에 기초하여 상기 일정 공간에 대응되는 제5 속도 프로파일 정보를 획득하는 단계; 및 obtaining fifth velocity profile information corresponding to the predetermined space based on characteristic information of a second object located within the predetermined space; and
    상기 제4 속도 프로파일 정보 및 상기 제5 속도 프로파일 정보에 기초하여 상기 일정 공간에 대응되는 속도 프로파일 정보를 획득하는 단계;를 포함하는, 제어 방법. and obtaining velocity profile information corresponding to the predetermined space based on the fourth velocity profile information and the fifth velocity profile information.
  15. 제14항에 있어서, According to claim 14,
    상기 속도 맵을 획득하는 단계는, Obtaining the speed map,
    상기 제4 속도 프로파일 정보에 기초하여 상기 일정 공간에 포함된 각 셀(cell)에 대응되는 제1 속도 값을 획득하는 단계; obtaining a first velocity value corresponding to each cell included in the predetermined space based on the fourth velocity profile information;
    상기 제5 속도 프로파일 정보에 기초하여 상기 일정 공간에 포함된 상기 각 셀에 대응되는 제2 속도 값을 획득하는 단계; obtaining a second velocity value corresponding to each cell included in the predetermined space based on the fifth velocity profile information;
    상기 일정 공간에 포함된 상기 각 셀에 대응되는 제1 속도 값 및 제2 속도 값 중 작은 값에 기초하여 상기 각 셀에 대응되는 속도 값을 획득하는 단계; 및obtaining a velocity value corresponding to each cell based on a smaller value of a first velocity value and a second velocity value corresponding to each cell included in the predetermined space; and
    상기 획득된 상기 각 셀에 대응되는 속도 값에 기초하여 상기 일정 공간에 대응되는 속도 맵을 획득하는 단계;를 포함하는, 제어 방법.and obtaining a speed map corresponding to the predetermined space based on the obtained speed value corresponding to each cell.
PCT/KR2022/007503 2021-07-20 2022-05-26 Robot and control method thereof WO2023003158A1 (en)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
KR10-2021-0095141 2021-07-20
KR20210095141 2021-07-20
KR1020210120014A KR20230014031A (en) 2021-07-20 2021-09-08 robot and control method
KR10-2021-0120014 2021-09-08

Publications (1)

Publication Number Publication Date
WO2023003158A1 true WO2023003158A1 (en) 2023-01-26

Family

ID=84980419

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2022/007503 WO2023003158A1 (en) 2021-07-20 2022-05-26 Robot and control method thereof

Country Status (1)

Country Link
WO (1) WO2023003158A1 (en)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20130002218A (en) * 2011-06-28 2013-01-07 삼성전자주식회사 Robot cleaner and control method thereof
JP2019528535A (en) * 2016-08-25 2019-10-10 エルジー エレクトロニクス インコーポレイティド Mobile robot and control method thereof
US20200064857A1 (en) * 2016-12-09 2020-02-27 Diversey, Inc. Robotic Cleaning Device with Operating Speed Variation Based on Environment
KR20200094831A (en) * 2019-01-22 2020-08-10 삼성전자주식회사 Robot and method for controlling thereof
KR20210063791A (en) * 2019-11-25 2021-06-02 한국기술교육대학교 산학협력단 System for mapless navigation based on dqn and slam considering characteristic of obstacle and processing method thereof

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20130002218A (en) * 2011-06-28 2013-01-07 삼성전자주식회사 Robot cleaner and control method thereof
JP2019528535A (en) * 2016-08-25 2019-10-10 エルジー エレクトロニクス インコーポレイティド Mobile robot and control method thereof
US20200064857A1 (en) * 2016-12-09 2020-02-27 Diversey, Inc. Robotic Cleaning Device with Operating Speed Variation Based on Environment
KR20200094831A (en) * 2019-01-22 2020-08-10 삼성전자주식회사 Robot and method for controlling thereof
KR20210063791A (en) * 2019-11-25 2021-06-02 한국기술교육대학교 산학협력단 System for mapless navigation based on dqn and slam considering characteristic of obstacle and processing method thereof

Similar Documents

Publication Publication Date Title
WO2020060308A1 (en) Electronic device and vehicle control method of electronic device, server and method for providing precise map data of server
WO2019168336A1 (en) Autonomous driving apparatus and method thereof
WO2018164377A1 (en) Electronic device for generating map data and operating method therefor
EP3414594A1 (en) Distance sensor, and calibration method performed by device and system including the distance sensor
WO2018230845A1 (en) Method for positioning on basis of vision information and robot implementing same
WO2019117459A1 (en) Device and method for displaying content
WO2020046038A1 (en) Robot and control method therefor
WO2020075954A1 (en) Positioning system and method using combination of results of multimodal sensor-based location recognition
WO2023140476A1 (en) Method and system for evaluating performance of autonomous driving algorithm
WO2020159076A1 (en) Landmark location estimation apparatus and method, and computer-readable recording medium storing computer program programmed to perform method
WO2020138760A1 (en) Electronic device and control method thereof
WO2019245320A1 (en) Mobile robot device for correcting position by fusing image sensor and plurality of geomagnetic sensors, and control method
WO2023003158A1 (en) Robot and control method thereof
WO2023038284A1 (en) Robot and control method therefor
WO2021215668A1 (en) Robot device and control method therefor
WO2021201425A1 (en) Vehicular driving guidance method and electronic device
WO2024043497A1 (en) Robot and operation method thereof
WO2023008720A1 (en) Robot and control method therefor
WO2020071853A1 (en) Driving assistance apparatus and image processing method
KR20230014031A (en) robot and control method
WO2022085844A1 (en) Robot management server and system, and control method thereof
WO2022102967A1 (en) Electronic apparatus and controlling method thereof
WO2023038445A1 (en) Device and method for generating lane polyline using neural network model
WO2022250480A1 (en) Method and device for determining location of object in lane map
US20240094732A1 (en) Robot traveling in specific space and method of controlling the same

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: 22846030

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE