WO2024043497A1 - 로봇 및 그 구동 방법 - Google Patents

로봇 및 그 구동 방법 Download PDF

Info

Publication number
WO2024043497A1
WO2024043497A1 PCT/KR2023/009263 KR2023009263W WO2024043497A1 WO 2024043497 A1 WO2024043497 A1 WO 2024043497A1 KR 2023009263 W KR2023009263 W KR 2023009263W WO 2024043497 A1 WO2024043497 A1 WO 2024043497A1
Authority
WO
WIPO (PCT)
Prior art keywords
motion information
motion
robot
identifying
distance
Prior art date
Application number
PCT/KR2023/009263
Other languages
English (en)
French (fr)
Inventor
고영일
권순범
서장필
장은솔
Original Assignee
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Publication of WO2024043497A1 publication Critical patent/WO2024043497A1/ko

Links

Images

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1656Programme controls characterised by programming, planning systems for manipulators
    • B25J9/1664Programme controls characterised by programming, planning systems for manipulators characterised by motion, path, trajectory planning
    • B25J9/1666Avoiding collision or forbidden zones
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J13/00Controls for manipulators
    • B25J13/08Controls for manipulators by means of sensing devices, e.g. viewing or touching devices
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J13/00Controls for manipulators
    • B25J13/08Controls for manipulators by means of sensing devices, e.g. viewing or touching devices
    • B25J13/088Controls for manipulators by means of sensing devices, e.g. viewing or touching devices with position, velocity or acceleration sensors
    • B25J13/089Determining the position of the robot with reference to its environment
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J5/00Manipulators mounted on wheels or on carriages
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1628Programme controls characterised by the control loop
    • B25J9/163Programme controls characterised by the control loop learning, adaptive, model based, rule based expert control

Definitions

  • the present disclosure relates to a robot and a control method thereof, and more particularly, to a robot that adjusts a lateral safety distance and a control method thereof.
  • the robot includes a sensor, a driving unit, a memory storing at least one instruction, and executing the at least one instruction, thereby performing a plurality of first operations based on the current speed and angular velocity of the robot identified through the sensor.
  • a basic motion candidate group including motion information is identified, and some of the second motion information among the plurality of first motion information is generated based on at least one first driving performance corresponding to each of the plurality of first motion information. Identifying a motion candidate, identifying final motion information based on at least one second driving performance corresponding to each of the second motion information, and controlling the driving unit so that the robot runs according to the identified final motion information.
  • the at least one first driving performance may include a front safety distance and a distance to a target point
  • the at least one second driving performance may include a side safety distance.
  • the one or more processors identify some of the second motion information among the plurality of first motion information as second motion candidates based on the forward safety distance and the distance to the target point corresponding to each of the plurality of first motion information. And, based on the lateral safety distance corresponding to each of the second motion information, final motion information is identified among the second motion information, and the driving unit is controlled so that the robot travels according to the identified final motion information.
  • the plurality of first motion information may be a combination of different velocities and different angular velocities.
  • the one or more processors identify a front safety distance and a distance to a target point corresponding to each of the plurality of first motion information, apply a first weight to the front safety distance, and apply a second weight to the distance to the target point.
  • a motion score corresponding to each of the plurality of first motion information may be obtained by applying a weight, and the second motion information among the plurality of first motion information may be identified based on the motion score.
  • the one or more processors determine the same speed as the motion information with the largest motion score among the plurality of first motion information and a different angular velocity.
  • a plurality of second motion information included may be identified as the second motion candidate.
  • the one or more processors identify a lateral safety distance according to each of the different angular velocities included in the plurality of second motion information, and motion information having an angular velocity corresponding to the maximum distance among the identified lateral safety distances. can be identified as the final motion information.
  • the one or more processors apply the first weight and the second weight so that the motion score value increases as the forward safety distance is longer and the distance to the target point is shorter, and the plurality of first motion information The motion score corresponding to each can be obtained.
  • the one or more processors apply a third weight to the lateral safety distance corresponding to each of the second motion information and to each of the second motion information.
  • the motion score corresponding to each piece of the second motion information can be obtained by applying a fourth weight to the corresponding additional reflection element, and the final motion information among the second motion information can be identified based on the obtained motion score. there is.
  • the one or more processors based on the current speed and angular speed of the robot based on a preset speed range and angular speed range according to at least one of the hardware performance of the robot or the service type of the robot, First motion information can be identified.
  • the one or more processors may identify the plurality of first motion information based on discrete values or continuous values included in the preset speed range and angular speed range.
  • a method of driving a robot includes identifying a basic motion candidate group including a plurality of first motion information based on the current speed and angular velocity of the robot, and at least one corresponding to each of the plurality of first motion information. Identifying some of the second motion information among the plurality of first motion information as second motion candidates based on one first driving performance, and at least one second driving performance corresponding to each of the second motion information It may include identifying final motion information based on the final motion information and controlling the driving unit so that the robot travels according to the identified final motion information.
  • the operation is based on the current speed and angular velocity of the robot. Identifying a basic motion candidate group including a plurality of first motion information, second part of some of the plurality of first motion information based on at least one first driving performance corresponding to each of the plurality of first motion information Identifying motion information as a second motion candidate, identifying final motion information based on at least one second driving performance corresponding to each of the second motion information, and moving the robot according to the identified final motion information. This may include a driving step.
  • 1A to 1D are diagrams to explain various robot driving methods to aid understanding.
  • FIG. 2A is a diagram for explaining the configuration of a robot according to an embodiment.
  • FIG. 2B is a diagram showing a detailed configuration of an implementation example of a robot according to an embodiment of the present disclosure.
  • Figures 3 and 4 are diagrams for explaining a method of driving a robot according to an embodiment.
  • FIGS. 5 and 6 are diagrams for explaining in detail a method of driving a robot according to an embodiment.
  • FIGS. 7, 8A, and 8B are diagrams for explaining a method of obtaining a motion score according to an embodiment.
  • FIG. 9 is a diagram illustrating in detail a method of identifying second motion information and final motion information according to an embodiment.
  • FIGS. 10A and 10B are diagrams to explain in more detail a final motion identification method according to an embodiment.
  • FIGS. 11A and 11B are diagrams for explaining a method of detecting infringement according to an embodiment.
  • expressions such as “have,” “may have,” “includes,” or “may include” refer to the presence of the corresponding feature (e.g., component such as numerical value, function, operation, or part). , and does not rule out the existence of additional features.
  • a or/and B should be understood as referring to either “A” or “B” or “A and B”.
  • expressions such as “first,” “second,” “first,” or “second,” can modify various components regardless of order and/or importance, and can refer to one component. It is only used to distinguish from other components and does not limit the components.
  • a component e.g., a first component
  • another component e.g., a second component
  • connection to it should be understood that a certain component can be connected directly to another component or connected through another component (e.g., a third component).
  • a “module” or “unit” performs at least one function or operation, and may be implemented as hardware or software, or as a combination of hardware and software. Additionally, 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 refer to a person who receives services from a robot, but is not limited thereto.
  • 1A to 1D are diagrams to explain various robot driving methods to aid understanding.
  • the robot 100 can provide services to users while traveling in a specific space.
  • the robot 100 may provide cleaning services, serving services, guidance services, etc., but is not limited thereto.
  • the robot 100 may already store map data corresponding to the space and can drive in the space by performing path planning based on this.
  • the map data may be various types of map data such as Traversability Map, Distance Map, etc.
  • path planning based on a Traversability Map that extends obstacles by a safe margin can create a safe path with a certain distance from the corner.
  • the safe margin is large, there is a problem that it is impossible to break through narrow passages and areas dense with obstacles.
  • route planning based on Distance Map which includes distance information to the nearest obstacle for each cell (or grid) on the map, can create a safe route and even routes through narrow passages. can be created.
  • Distance Map which includes distance information to the nearest obstacle for each cell (or grid) on the map
  • the robot 100 needs to autonomously adjust the lateral safety distance according to the shape of the driving space.
  • a sufficient lateral safety distance can be secured because the degree of freedom of the lateral safety distance is high.
  • applying a fixed side distance may cause unnecessary detours or erroneous stops, so the minimum side distance is applied to break through. Driving can be efficient.
  • a sufficient lateral safety distance can be secured because the degree of freedom of the lateral safety distance is high.
  • breakthrough driving applying the minimum side distance may be efficient.
  • FIG. 2A is a diagram for explaining the configuration of a robot according to an embodiment.
  • the robot 100 may include at least one sensor 110, a driving unit 120, a memory 130, and one or more processors 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 the operating state of the robot 100 and convert the measured or sensed information into an electrical signal.
  • the sensor 110 includes a speed sensor, a gyro sensor, an acceleration sensor, an angular velocity sensor, etc., and can sense the speed and angular velocity of the robot 100.
  • the senor 110 may include a camera, and the camera may include a lens that focuses visible light and other optical signals reflected by an object and received into an image sensor, and an image sensor that can detect 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 one example may be implemented as a depth camera.
  • the sensor 110 may include a range sensor such as a LIDAR (Light Detection And Ranging) sensor and a TOF (Time of Flight) sensor.
  • LIDAR Light Detection And Ranging
  • TOF Time of Flight
  • the senor 110 includes a gesture sensor, barometric pressure sensor, magnetic sensor, grip sensor, proximity sensor, color sensor (e.g., RGB (red, green, blue) sensor), biometric sensor, temperature/humidity sensor, and illuminance sensor. It may include at least one of a sensor or a UV (ultra violet) sensor.
  • the driving unit 120 is a device that can drive the robot 100.
  • the driving unit 120 can adjust the traveling direction and traveling speed according to the control of the processor 140, and the driving unit 120 according to one example is a power generator (e.g., a power generator that generates power for the robot 100 to travel).
  • a power generator e.g., a power generator that generates power for the robot 100 to travel.
  • fuel or energy source
  • steering device to control the driving direction e.g., mechanical steering (manual steering), hydraulic It may include steering (hydraulics steering), electronic control power steering (EPS), etc.
  • EPS electronic control power steering
  • the driving unit 120 may be modified according to the driving type of the robot 100 (e.g., wheel type, walking type, flying type, etc.).
  • the memory 130 can store data needed for various embodiments.
  • the memory 130 may be implemented as a memory embedded in the robot 100 or as a memory detachable from 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 expansion functions of the robot 100 is stored in a memory that is detachable from the robot 100. It can be.
  • volatile memory e.g., dynamic RAM (DRAM), static RAM (SRAM), or synchronous dynamic RAM (SDRAM), etc.
  • non-volatile memory e.g.
  • 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.) , a hard drive, or a solid state drive (SSD).
  • a memory card e.g., compact flash (CF), 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 a USB port (e.g. For example, it may be implemented in a form such as USB memory).
  • the memory 130 may store a distance map including distance information to an object, speed profile information according to the characteristics of the object (or obstacle), etc.
  • the information can also be received in real time from an external device.
  • the Distance Map may be in the form of storing the distance to an object, that is, an obstacle, and the probability value of the obstacle in each cell.
  • One or more processors 140 generally control the operation of the robot 100.
  • the processor 140 is connected to each component of the robot 100 and can generally control the operation of the robot 100.
  • the processor 140 may be electrically connected to the memory 130 and the driving unit 120 to control the overall operation of the robot 100.
  • the processor 140 may be comprised of one or multiple processors. For example, various functions (eg, map generation, route planning) may be performed by one processor, but different functions may be performed by a plurality of processors.
  • One or more processors 140 include a CPU (Central Processing Unit), GPU (Graphics Processing Unit), APU (Accelerated Processing Unit), MIC (Many Integrated Core), DSP (Digital Signal Processor), NPU (Neural Processing Unit), and hardware. It may include one or more of an accelerator or machine learning accelerator. One or more processors 140 may control one or any combination of other components of the robot 100 and may perform operations related to communication or data processing. One or more processors 140 may execute one or more programs or instructions stored in the memory 130. For example, one or more processors 140 may perform a method according to an embodiment of the present disclosure by executing one or more instructions stored in the memory 130.
  • the plurality of operations may be performed by one processor or by a plurality of processors.
  • the first operation, the second operation, and the third operation may all be performed by the first processor.
  • the first operation and the second operation may be performed by a first processor (e.g., a general-purpose processor) and the third operation may be performed by a second processor (e.g., an artificial intelligence-specific processor).
  • the one or more processors 140 may be implemented as a single core processor including one core, or one or more multi-cores including a plurality of cores (e.g., homogeneous multi-core or heterogeneous multi-core). It may also be implemented as a processor (multicore processor). When one or more processors 140 are implemented as multi-core processors, each of the plurality of cores included in the multi-core processor may include processor internal memory such as cache memory and on-chip memory, and may include a plurality of processor internal memories such as cache memory and on-chip memory. A common cache shared by cores may be included in multi-core processors.
  • each of the plurality of cores (or some of the plurality of cores) included in the multi-core processor may independently read and execute program instructions for implementing the method according to an embodiment of the present disclosure, and all of the plurality of cores may (or part of it) may be linked to read and perform program instructions for implementing the method according to an embodiment of the present disclosure.
  • the plurality of operations may be performed by one core among a plurality of cores included in a multi-core processor, or may be performed by a plurality of cores.
  • the first operation, the second operation, and the third operation are all included in the multi-core processor. It may be performed by a core, and the first operation and the second operation may be performed by the first core included in the multi-core processor, and the third operation may be performed by the second core included in the multi-core processor.
  • a processor may mean a system-on-chip (SoC) in which one or more processors and other electronic components are integrated, a single-core processor, a multi-core processor, or a core included in a single-core processor or a multi-core processor.
  • SoC system-on-chip
  • the core may be implemented as a CPU, GPU, APU, MIC, DSP, NPU, hardware accelerator, or machine learning accelerator, but embodiments of the present disclosure are not limited thereto.
  • processor 140 one or more processors 140 will be referred to as processor 140 for convenience of explanation.
  • FIG. 2B is a diagram showing a detailed configuration of an implementation example of a robot according to an embodiment of the present disclosure.
  • the robot 100' includes at least one sensor 110, a driving unit 120, a memory 130, one or more processors 140, a communication interface 150, a user interface 160, and a display 170. ) may include.
  • a driving unit 120 includes at least one driving unit 120, a driving unit 120, a memory 130, one or more processors 140, a communication interface 150, a user interface 160, and a display 170.
  • processors 140 may include.
  • FIG. 2B detailed descriptions of configurations that overlap with those shown in FIG. 2A will be omitted.
  • the communication interface 150 can input and output various types of data.
  • the communication interface 150 includes AP-based Wi-Fi (Wireless LAN network), Bluetooth, 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 devices (e.g., source devices), external storage media (e.g., USB memory), and external servers (e.g., web hard drives) and various types of data through communication methods such as coaxial, etc. Can send and receive.
  • map information when map information is received from an external device (or external server), the map information may be received through the communication interface 150.
  • the user interface 160 is a configuration for the robot 100' to interact 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-emitting device or a display including a non-emitting device and a backlight.
  • a display including a self-emitting device or a display including a non-emitting device and a backlight.
  • LCD Liquid Crystal Display
  • OLED Organic Light Emitting Diodes
  • LED Light Emitting Diodes
  • micro LED micro LED
  • Mini LED Micro LED
  • PDP Plasma Display Panel
  • QD Quantum dot
  • QLED Quantum dot light-emitting diodes
  • the display 110 may also include a driving circuit and a backlight unit that may be implemented in the form of a-si TFT, low temperature poly silicon (LTPS) TFT, or organic TFT (OTFT).
  • LTPS low temperature poly silicon
  • OFT organic TFT
  • 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, etc. It can be. Additionally, the display 170 has a built-in touch screen and can be implemented so that a program can be executed using a finger or a pen (eg, a stylus pen).
  • the processor 140 may obtain a free space map based on Simulaneous Localization And Mapping (SLAM).
  • SLAM means generating a map and estimating the location of the robot 100 at the same time.
  • the processor 140 may obtain a free space map based on data acquired through at least one sensor (not shown).
  • the processor 140 determines the location of the robot 100 using GPS and maps a free space map 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 space into at least one of occupied space, free space, or unknown space.
  • the processor 140 based on information about the free space included in the free-space map and information acquired through at least one sensor (not shown), for example, a lidar sensor, while the robot 100 is traveling. You can obtain a distance map.
  • the Distance Map may be in the form of storing the distance to the obstacle and the probability value of the obstacle.
  • the processor 130 may identify motion information in real time based on a distance map and control the driving of the robot 100 according to various embodiments described later.
  • Figure 3 is a diagram for explaining a method of driving a robot according to an embodiment.
  • the processor 140 identifies a basic motion candidate group including a plurality of first motion information based on the current speed and angular velocity of the robot 100 identified through the sensor 110. Do it (S310).
  • the sensor 110 may include a speed sensor, a gyro sensor, an acceleration sensor, an angular velocity sensor, etc. that can measure the speed and angular velocity of the robot 100.
  • velocity is the displacement of the position vector moved during unit time, and is a time function representing the rate of change in the position of the object during unit time.
  • Angular velocity is the change in angular position of a rotating object per unit time. For example, when rotating by ⁇ during ⁇ t time, the angular velocity ( ⁇ ) is ⁇ / ⁇ t.
  • the unit of angular velocity may be radians per second (rad/s) or revolutions per minute (RPM).
  • the processor 140 may identify a plurality of first motion information based on a preset speed range based on the current speed and an angular speed range preset based on the current angular speed.
  • the preset speed range and the preset angular velocity range may be ranges set based on at least one of the hardware performance of the robot 100 or the service type of the robot 100.
  • the preset speed range is 0.3 m/s to 1.8 m/s in consideration of efficiency, power consumption, etc. can be decided. This may be set by the manufacturer when the robot 100 is shipped, but may be changed by the user. Alternatively, even if the preset speed range is determined to be 0.3 m/s to 2 m/s based on the hardware performance of the robot 100, the service type of the robot 100 (e.g., cleaning service, serving service, guide service, etc. ), the preset speed range may be adjusted to 0.5 m/s to 1.8 m/s.
  • the service type of the robot 100 e.g., cleaning service, serving service, guide service, etc.
  • the plurality of first motion information may be a combination of different velocities and different angular velocities.
  • the speed range v1 to vm is identified based on the speed range preset based on the current speed of the robot 100
  • the angular speed range w1 to wn is identified based on the angular speed range preset based on the current speed and angular velocity. Assume that the range is identified. In this case, (v1, w1), (v1, w2),..(v1, wn), (v2, w1), (v2, w2),..(v2, wn), ...(vm, w1 ).
  • a plurality of velocity and angular velocity pairs such as (vm, w2),..(vm, wn) may be a plurality of first motion information.
  • a basic motion candidate group 410 including a plurality of first motion information differentiated based on y-axis velocity information and x-axis angular velocity information may be identified.
  • it is not necessarily expressed in this form and can be expressed in various forms such as matching speed and angular velocity information.
  • the processor 130 may identify a plurality of first motion information based on discrete values or continuous values included in a preset speed range and angular speed range.
  • the basic motion candidate group 410 may have a plurality of first motion information corresponding to each discrete cell (or grid), and each cell may include a velocity value and an acceleration value, but is not limited to this. no.
  • the speed value and acceleration value may be absolute values, but are not limited thereto and may be in the form of a gain applied to the reference value.
  • the processor 140 identifies some of the second motion information among the plurality of first motion information as second motion candidates based on at least one first driving performance (or driving function) corresponding to each of the plurality of first motion information. You can do it (S320).
  • the at least one first driving performance may include the front safety distance and the distance to the target point, but is not necessarily limited thereto.
  • some motion information that is, second motion information, among the plurality of first motion information included in the basic motion candidate group 410 may be identified as the second motion candidate 420 .
  • the processor 140 may identify final motion information based on at least one second driving performance corresponding to each piece of second motion information (S330).
  • the at least one second driving performance may include, but is not limited to, a lateral safety distance, and other additional factors, such as obstacle type (e.g., dynamic obstacle or static obstacle), etc., may be used to determine the final motion. May also be considered for identifying information.
  • specific motion information 430 among a plurality of second motion information included in the second motion candidate 420 may be identified as final motion information.
  • the processor 140 may control the driving unit 120 so that the robot 100 travels according to the identified final motion information. For example, if the final motion information is determined to be (v2, w1), the robot 100 can be controlled to run at the corresponding speed and angular velocity.
  • Figure 5 is a diagram for explaining in detail a method of driving a robot according to an embodiment.
  • the processor 140 may identify a basic motion candidate group including a plurality of first motion information based on the current speed and angular velocity of the robot 100 (S510).
  • a basic motion candidate group 610 including y-axis velocity information and x-axis angular velocity information may be identified. Since step S510 has the same operation as step S310 of FIG. 3, detailed description will be omitted.
  • the processor 140 may identify some of the second motion information among the plurality of first motion information as second motion candidates based on the forward safety distance and the distance to the target point corresponding to each of the plurality of first motion information. (S520).
  • the processor 140 may obtain a motion score corresponding to each of the plurality of first motion information and identify the second motion candidate 620 based on the obtained motion score.
  • the motion score may be obtained by applying a first weight to the front safety distance and a second weight to the distance to the target point.
  • the specific method of calculating the motion score will be described in detail with reference to FIGS. 7, 8A, and 8B.
  • the processor 140 generates a plurality of first motion information 610 based on the forward safety distance and the distance to the target point corresponding to each of the plurality of first motion information 610 included in the basic motion candidate group.
  • a plurality of second motion information 620 can be identified.
  • the processor 140 may identify final motion information among the second motion information based on the lateral safety distance corresponding to each piece of second motion information.
  • the processor 140 determines the final motion information (final motion information) among the plurality of second motion information 620 based on the side safety distance corresponding to each of the plurality of second motion information 620 as shown in FIG. 6. 630) can be identified. For example, as shown in FIG. 6 , the final motion information 630 among the second motion information 620 may be identified based on the side safety distance.
  • a third weight is applied to the side safety distance corresponding to each of the second motion information, and a third weight is applied to the additional reflection element corresponding to each of the second motion information.
  • a motion score corresponding to each piece of second motion information by applying 4 weights.
  • step S540 has the same operation as step S340 of FIG. 3, detailed description will be omitted.
  • FIGS. 7, 8A, and 8B are diagrams for explaining a method of obtaining a motion score according to an embodiment.
  • the processor 140 may identify the forward safety distance and the distance to the target point corresponding to each of the plurality of first motion information belonging to the basic motion candidate group (S710).
  • the processor 140 can predict the position of the robot 100 corresponding to the first motion information (v1, w2).
  • the processor 140 may calculate the front safety distance d1 and the distance d2 to the target point from the position of the robot 100 corresponding to the first motion information (v1, w2).
  • the processor 140 can predict the position of the robot 100 corresponding to the first motion information (v1, w3).
  • the processor 140 may calculate the front safety distance d3 and the distance d4 to the target point from the position of the robot 100 corresponding to the first motion information (v1, w3).
  • the processor 140 can calculate the front safety distance and the distance to the target point for each of the plurality of first motion information.
  • the processor 140 applies a first weight to the front safety distance corresponding to each of the plurality of first motion information and applies a second weight to the distance to the target point to generate a motion score corresponding to each of the plurality of first motion information. Can be obtained (S720). For example, the processor 140 may determine the first weight and the second weight so that the motion score value increases as the forward safety distance is longer and the distance to the target point is shorter.
  • the processor 140 may apply the same weight or different weights to the forward safety distance and the distance to the target point corresponding to each of the plurality of first motion information.
  • the first and second weights applied here may be independent weights or interrelated weights.
  • the front safety distance and the distance to the target point are different physical values, if the first and second weights are interrelated weights (for example, when the sum of the first weight and the second weight is 1), the front safety distance and Normalizing the distance to the target point may be necessary.
  • the processor 140 may calculate a motion score by adding a value to which a first weight is applied to the front safety distance and a value to which a second weight is applied to the distance to the target point.
  • the processor 140 normalizes the front safety distance and the distance to the target point, and applies a value to which a first weight is applied to the normalized front safety distance, a value to which a first weight is applied to the normalized front safety distance, and a normalized value.
  • the motion score can be calculated by adding the value to which the second weight is applied to the distance to the target point.
  • the processor 140 may identify a plurality of second motion information among the plurality of first motion information based on the motion score obtained in step S720 (S730).
  • the processor 140 identifies first motion information having the largest value among motion scores corresponding to each of a plurality of first motion information, and generates a plurality of second motion information based on the identified first motion score. can be identified.
  • FIG. 9 is a diagram illustrating in detail a method of identifying second motion information and final motion information according to an embodiment.
  • the processor 140 may obtain a motion score corresponding to each of the plurality of first motion information (S910). Since this has been explained in detail in FIGS. 7, 8A, and 8B, detailed description will be omitted.
  • the processor 140 may identify a plurality of second motion information including a different angular velocity and the same speed as the motion information with the highest motion score among the plurality of first motion information as second motion candidates ( S920). For example, in the example shown in FIG. 6, motion information 611 with the highest motion score among the plurality of first motion information 610 is identified, and is the same speed as the identified motion information 611 and includes a different angular speed. A plurality of pieces of second motion information 620 may be identified as second motion candidates.
  • the processor 140 may identify a lateral safety distance according to each different angular velocity included in the plurality of second motion information (S930).
  • the processor 140 may identify motion information having an angular velocity corresponding to the maximum distance among the identified lateral safety distances as final motion information (S940). For example, in the example shown in FIG. 6 , the motion information 621 with the largest lateral safety distance among the plurality of second motion information 620 may be identified as the final motion information 630 .
  • FIGS. 10A and 10B are diagrams to explain in more detail a final motion identification method according to an embodiment.
  • FIG. 10A is an example of a final motion identification method for avoiding a single obstacle with a large free space as shown in FIG. 1A
  • FIG. 10B is an example of a final motion identification method in the case of driving through an obstacle-dense area as shown in FIG. 1B. am.
  • the processor 130 excludes some motion information 1021 based on the location of a single obstacle among the plurality of first motion information 1010 and selects optimal motion information from among the remaining motion information. (1031) can be identified.
  • the processor 130 determines the same speed based on the position of a single obstacle, and selects some of the motion information 1021 based on the position of the single obstacle among the motion information. Except for this, only the remaining motion information can be identified as second motion information 1030.
  • the motion information having the same speed as the optimal motion information 1031 is the motion information of the first line, but among these, the motion located to the left of the optimal motion information 1031 Information is excluded and only the remaining motion information 1030 can be identified as a second motion candidate.
  • final motion information may be identified among the motion information 1030 included in the second motion candidate.
  • motion information 1032 with the maximum lateral distance to a single obstacle may be identified as final motion information.
  • the processor 130 excludes some of the motion information 1022 and 1023 based on the positions of each of the plurality of obstacles among the plurality of first motion information 1010 and excludes the remaining motion information.
  • optimal motion information 1031 can be identified.
  • the excluded motion information 1022, 1023, and 1024 may be motion information excluded based on the positions of different obstacles.
  • the processor 130 uses the same speed as a second motion, excluding some of the motion information based on the positions of each of the plurality of obstacles among the motion information and only the remaining motion information. It can be identified by information 1050.
  • the motion information having the same speed as the optimal motion information 1051 is the motion information of the first line, but among these, the motion located to the left of the optimal motion information 1051 Information is excluded and only the remaining motion information 1050 can be identified as a second motion candidate.
  • final motion information may be identified among the motion information 1050 included in the second motion candidate.
  • motion information 1532 having the maximum lateral distance to each of a plurality of obstacles may be identified as final motion information.
  • FIGS. 11A and 11B are diagrams for explaining a method of detecting infringement according to an embodiment.
  • the obstacle 1120 moves while the robot 100 is running.
  • the amount of lateral distance (or lateral gap) secured (D) can be kept constant. This is because the lateral distance is considered in the last round according to priority.
  • motion information is identified in an integrated manner by simply applying a weighted sum to all driving performance (for example, a weighted sum scoring method), the possibility of unintended motion occurring increases.
  • the amount of lateral distance secured between the robot 100 and the obstacle 1120 is not maintained constant.
  • the distance to the target point 1130 may become shorter, so this is weighted with other driving factors. If reflected as a sum, the amount of lateral distance secured can be shortened.
  • the break through is always driven to the center point between both obstacles.
  • the compromise point between each driving element is determined. Because this is taken into account, it is not possible to always drive through the center point between both obstacles.
  • the methods according to the various embodiments described above may be implemented in the form of applications that can be installed on existing electronic devices.
  • at least some of the methods according to various embodiments of the present disclosure described above may be performed using a deep learning-based artificial intelligence model, that is, a learning network model.
  • the various embodiments described above may be implemented as software including instructions stored in a machine-readable storage media (e.g., a computer).
  • the device is a device capable of calling instructions stored from a storage medium and operating according to the called instructions, and may include an electronic device (eg, electronic device A) according to the disclosed embodiments.
  • the processor may perform the function corresponding to the instruction directly or using other components under the control of the processor.
  • Instructions may contain code generated or executed by a compiler or interpreter.
  • a storage medium that can be read by a device may be provided in the form of a non-transitory storage medium.
  • 'non-transitory' only means that the storage medium does not contain signals and is tangible, and does not distinguish whether the data is stored semi-permanently or temporarily in the storage medium.
  • the method according to the various embodiments described above may be included and provided in a computer program product.
  • Computer program products are commodities and can be traded between sellers and buyers.
  • the computer program product may be distributed on a machine-readable storage medium (e.g. compact disc read only memory (CD-ROM)) or online through an application store (e.g. Play StoreTM).
  • an application store e.g. Play StoreTM
  • at least a portion of the computer program product may be at least temporarily stored or created temporarily in a storage medium such as the memory of a manufacturer's server, an application store's server, or a relay server.
  • each component e.g., module or program
  • each component may be composed of a single or multiple entities, and some of the sub-components described above may be omitted, or other sub-components may be omitted. Additional components may be included in various embodiments. Alternatively or additionally, some components (e.g., modules or programs) may be integrated into a single entity and perform the same or similar functions performed by each corresponding component prior to integration. According to various embodiments, operations performed by a module, program, or other component may be executed sequentially, in parallel, iteratively, or heuristically, or at least some operations may be executed in a different order, omitted, or other operations may be added. You can.

Landscapes

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

Abstract

로봇이 개시된다. 로봇은 센서, 구동부, 적어도 하나의 인스트럭션이 저장된 메모리 및 적어도 하나의 인스트럭션을 실행함으로써, 센서를 통해 식별된 상기 로봇의 현재 속도 및 각속도에 기초하여 복수의 제1 모션 정보를 포함하는 기본 모션 후보군을 식별하고, 복수의 제1 모션 정보 각각에 대응되는 적어도 하나의 제1 주행 성능에 기초하여 복수의 제1 모션 정보 중 일부의 제2 모션 정보를 제2 모션 후보로 식별하고, 제2 모션 정보 각각에 대응되는 적어도 하나의 제2 주행 성능에 기초하여 최종 모션 정보를 식별하며, 식별된 최종 모션 정보에 따라 로봇이 주행하도록 구동부를 제어하는 하나 이상의 프로세서를 포함한다.

Description

로봇 및 그 구동 방법
본 개시는 로봇 및 그 제어 방법에 관한 것으로, 더욱 상세하게는 측면 안전 거리를 조정하는 로봇 및 그 제어 방법에 관한 것이다.
최근 특정 공간에 배치되어 사용자에게 서비스를 제공하는 로봇에 대한 기술 개발이 활발해지고 있다. 특히, 특정 공간을 이동하는 로봇은 주행 경로 상의 장애물을 회피하여 안전하고 신속하게 주행하여야 사용자에게 신속한 서비스를 제공할 수 있게 된다.
이에 따라 장애물을 고려하여 로봇이 최대한 안전하고 신속하게 주행할 수 있는 방안이 요구된다.
일 실시 예에 따르면, 로봇은, 센서, 구동부, 적어도 하나의 인스트럭션이 저장된 메모리 및 상기 적어도 하나의 인스트럭션을 실행함으로써, 상기 센서를 통해 식별된 상기 로봇의 현재 속도 및 각속도에 기초하여 복수의 제1 모션 정보를 포함하는 기본 모션 후보군을 식별하고, 상기 복수의 제1 모션 정보 각각에 대응되는 적어도 하나의 제1 주행 성능에 기초하여 상기 복수의 제1 모션 정보 중 일부의 제2 모션 정보를 제2 모션 후보로 식별하고, 상기 제2 모션 정보 각각에 대응되는 적어도 하나의 제2 주행 성능에 기초하여 최종 모션 정보를 식별하며, 상기 식별된 최종 모션 정보에 따라 상기 로봇이 주행하도록 상기 구동부를 제어하는 하나 이상의 프로세서를 포함한다.
일 예에 따르면, 상기 적어도 하나의 제1 주행 성능은, 전방 안전 거리 및 목표 지점까지의 거리를 포함하고, 상기 적어도 하나의 제2 주행 성능은, 측면 안전 거리를 포함할 수 있다. 상기 하나 이상의 프로세서는, 상기 복수의 제1 모션 정보 각각에 대응되는 전방 안전 거리 및 목표 지점까지의 거리에 기초하여 상기 복수의 제1 모션 정보 중 일부의 제2 모션 정보를 제2 모션 후보로 식별하고, 상기 제2 모션 정보 각각에 대응되는 측면 안전 거리에 기초하여 상기 제2 모션 정보 중 최종 모션 정보를 식별하며, 상기 식별된 최종 모션 정보에 따라 상기 로봇이 주행하도록 상기 구동부를 제어할 수 있다.
일 예에 따르면, 상기 복수의 제1 모션 정보는 상이한 속도 및 상이한 각속도의 조합일 수 있다. 상기 하나 이상의 프로세서는, 상기 복수의 제1 모션 정보 각각에 대응되는 전방 안전 거리 및 목표 지점까지의 거리를 식별하고, 상기 전방 안전 거리에 제1 가중치를 적용하고 상기 목표 지점까지의 거리에 제2 가중치를 적용하여 상기 복수의 제1 모션 정보 각각에 대응되는 모션 스코어를 획득하고, 상기 모션 스코어에 기초하여 상기 복수의 제1 모션 정보 중 상기 제2 모션 정보를 식별할 수 있다.
일 예에 따르면, 상기 하나 이상의 프로세서는, 상기 복수의 제1 모션 정보 각각에 대응되는 모션 스코어가 획득되면, 상기 복수의 제1 모션 정보 중 모션 스코어가 가장 큰 모션 정보와 동일한 속도이고 상이한 각속도를 포함하는 복수의 제2 모션 정보를 상기 제2 모션 후보로 식별할 수 있다.
일 예에 따르면, 상기 하나 이상의 프로세서는, 상기 복수의 제2 모션 정보에 포함된 상이한 각속도 각각에 따른 측면 안전 거리를 식별하고, 상기 식별된 측면 안전 거리 중 최대 거리에 대응되는 각속도를 가지는 모션 정보를 상기 최종 모션 정보로 식별할 수 있다.
일 예에 따르면, 상기 하나 이상의 프로세서는, 상기 전방 안전 거리는 길수록 상기 목표 지점까지의 거리는 짧을수록 상기 모션 스코어 값이 커지도록 상기 제1 가중치 및 상기 제2 가중치를 적용하여 상기 복수의 제1 모션 정보 각각에 대응되는 상기 모션 스코어를 획득할 수 있다.
일 예에 따르면, 상기 하나 이상의 프로세서는, 상기 측면 안전 거리 외에 추가 반영 요소가 존재하는 경우, 상기 제2 모션 정보 각각에 대응되는 측면 안전 거리에 제3 가중치를 적용하고 상기 제2 모션 정보 각각에 대응되는 추가 반영 요소에 제4 가중치를 적용하여 상기 제2 모션 정보 각각에 대응되는 상기 모션 스코어를 획득하고, 상기 획득된 모션 스코어에 기초하여 상기 제2 모션 정보 중 상기 최종 모션 정보를 식별할 수 있다.
일 예에 따르면, 상기 하나 이상의 프로세서는, 상기 로봇의 하드웨어 성능 또는 상기 로봇의 서비스 타입 중 적어도 하나에 따른 기설정된 속도 범위 및 각속도 범위에 기초하여 상기 로봇의 현재 속도 및 각속도를 기준으로 상기 복수의 제1 모션 정보를 식별할 수 있다.
일 예에 따르면, 상기 하나 이상의 프로세서는, 상기 기설정된 속도 범위 및 각속도 범위에 포함된 discrete value 또는 continuous value에 기초하여 상기 복수의 제1 모션 정보를 식별할 수 있다.
일 실시 예에 따른 로봇의 구동 방법은, 상기 로봇의 현재 속도 및 각속도에 기초하여 복수의 제1 모션 정보를 포함하는 기본 모션 후보군을 식별하는 단계, 상기 복수의 제1 모션 정보 각각에 대응되는 적어도 하나의 제1 주행 성능에 기초하여 상기 복수의 제1 모션 정보 중 일부의 제2 모션 정보를 제2 모션 후보로 식별하는 단계, 상기 제2 모션 정보 각각에 대응되는 적어도 하나의 제2 주행 성능에 기초하여 최종 모션 정보를 식별하는 단계 및 상기 식별된 최종 모션 정보에 따라 상기 로봇이 주행하도록 구동부를 제어하는 단계를 포함할 수 있다.
일 실시 예에 따른 로봇의 프로세서에 의해 실행되는 경우 상기 전자 장치가 동작을 수행하도록 하는 컴퓨터 명령을 저장하는 비일시적 컴퓨터 판독 가능 매체에 있어서, 상기 동작은, 상기 로봇의 현재 속도 및 각속도에 기초하여 복수의 제1 모션 정보를 포함하는 기본 모션 후보군을 식별하는 단계, 상기 복수의 제1 모션 정보 각각에 대응되는 적어도 하나의 제1 주행 성능에 기초하여 상기 복수의 제1 모션 정보 중 일부의 제2 모션 정보를 제2 모션 후보로 식별하는 단계, 상기 제2 모션 정보 각각에 대응되는 적어도 하나의 제2 주행 성능에 기초하여 최종 모션 정보를 식별하는 단계 및, 상기 식별된 최종 모션 정보에 따라 상기 로봇이 주행시키는 단계를 포함할 수 있다.
도 1a 내지 도 1d는 이해를 돕기 위한 다양한 로봇의 주행 방법을 설명하기 위한 도면이다.
도 2a는 일 실시 예에 따른 로봇의 구성을 설명하기 위한 도면이다.
도 2b는 본 개시의 일 실시 예에 따른 로봇의 일 구현 예의 세부 구성를 나타내는 도면이다.
도 3 및 도 4는 일 실시 예에 따른 로봇의 주행 방법을 설명하기 위한 도면들이다.
도 5 및 도 6은 일 실시 예에 따른 로봇의 주행 방법을 자세히 설명하기 위한 도면들이다.
도 7, 도 8a 및 도 8b는 일 실시 예에 따른 모션 스코어 획득 방법을 설명하기 위한 도면들이다.
도 9는 일 실시 예에 따른 제2 모션 정보 및 최종 모션 정보를 식별하는 방법을 자세히 설명하기 위한 도면이다.
도 10a 및 도 10b는 일 실시 예에 따른 최종 모션 식별 방법을 좀더 자세히 설명하기 위한 도면들이다.
도 11a 및 도 11b는 일 실시 예에 따른 침해 적발 방법을 설명하기 위한 도면들이다.
이하에서는 첨부 도면을 참조하여 본 개시를 상세히 설명한다.
본 명세서에서 사용되는 용어에 대해 간략히 설명하고, 본 개시에 대해 구체적으로 설명하기로 한다.
본 개시의 실시 예에서 사용되는 용어는 본 개시에서의 기능을 고려하면서 가능한 현재 널리 사용되는 일반적인 용어들을 선택하였으나, 이는 당 분야에 종사하는 기술자의 의도 또는 판례, 새로운 기술의 출현 등에 따라 달라질 수 있다. 또한, 특정한 경우는 출원인이 임의로 선정한 용어도 있으며, 이 경우 해당되는 개시의 설명 부분에서 상세히 그 의미를 기재할 것이다. 따라서 본 개시에서 사용되는 용어는 단순한 용어의 명칭이 아닌, 그 용어가 가지는 의미와 본 개시의 전반에 걸친 내용을 토대로 정의되어야 한다.
본 명세서에서, "가진다," "가질 수 있다," "포함한다," 또는 "포함할 수 있다" 등의 표현은 해당 특징(예: 수치, 기능, 동작, 또는 부품 등의 구성요소)의 존재를 가리키며, 추가적인 특징의 존재를 배제하지 않는다.
A 또는/및 B 중 적어도 하나라는 표현은 "A" 또는 "B" 또는 "A 및 B" 중 어느 하나를 나타내는 것으로 이해되어야 한다.
본 명세서에서 사용된 "제1," "제2," "첫째," 또는 "둘째,"등의 표현들은 다양한 구성요소들을, 순서 및/또는 중요도에 상관없이 수식할 수 있고, 한 구성요소를 다른 구성요소와 구분하기 위해 사용될 뿐 해당 구성요소들을 한정하지 않는다.
어떤 구성요소(예: 제1 구성요소)가 다른 구성요소(예: 제2 구성요소)에 "(기능적으로 또는 통신적으로) 연결되어((operatively or communicatively) coupled with/to)" 있다거나 "접속되어(connected to)" 있다고 언급된 때에는, 어떤 구성요소가 다른 구성요소에 직접적으로 연결되거나, 다른 구성요소(예: 제3 구성요소)를 통하여 연결될 수 있다고 이해되어야 할 것이다.
단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "구성되다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
본 개시에서 "모듈" 혹은 "부"는 적어도 하나의 기능이나 동작을 수행하며, 하드웨어 또는 소프트웨어로 구현되거나 하드웨어와 소프트웨어의 결합으로 구현될 수 있다. 또한, 복수의 "모듈" 혹은 복수의 "부"는 특정한 하드웨어로 구현될 필요가 있는 "모듈" 혹은 "부"를 제외하고는 적어도 하나의 모듈로 일체화되어 적어도 하나의 프로세서(미도시)로 구현될 수 있다.
이하 첨부된 도면들을 참조하여 본 개시의 일 실시 예를 보다 상세하게 설명한다.
본 개시에서 '사용자' 는 로봇에게 서비스를 제공받는 사람을 의미할 수 있으나, 이에 한정되는 것은 아니다.
도 1a 내지 도 1d는 이해를 돕기 위한 다양한 로봇의 주행 방법을 설명하기 위한 도면이다.
로봇(100)은 특정 공간을 주행하며 사용자에게 서비스를 제공할 수 있다. 예를 들어, 로봇(100)은 청소 서비스, 서빙 서비스, 안내 서비스 등을 제공할 수 있으나 이에 한정되는 것은 아니다. 로봇(100)은 공간을 주행하기 위해 공간에 대응되는 맵 데이터를 기 저장하고 있을 수 있으며 이에 기초하여 경로 플래닝을 수행하여 공간을 주행할 수 있다. 일 예에 따라, 맵 데이터는 Traversability Map, Distance Map 등과 같이 다양한 타입의 맵 데이터가 될 수 있다.
일 예에 따라 장애물을 안전 마진(safe margin) 만큼 확장한 Traversability Map 기반의 경로 플래닝은 코너와 일정 거리를 두는 안전한 경로를 생성할 수 있다. 다만, safe margin이 크면 좁은 통로 및 장애물 밀집 지역 돌파가 불가능하다는 문제가 있디.
다른 예에 따라 지도 상 각 셀(cell)(또는 그리드(grid)) 마다 가장 가까운 장애물까지의 거리 정보를 포함하는 Distance Map 기반의 경로 플래닝은 안전한 경로를 생성할 수 있고 좁은 통로를 통과하는 경로도 생성할 수 있다. 다만, 좁은 통로보다 넓은 통로를 통과하는 것을 우선시하기 때문에 좁은 통로를 통과하는 최소 시간 경로를 두고 비효율적인 우회 경로가 생성될 수 있다는 문제가 있다.
한편, 로봇(100)은 주행 공간의 형태에 따라 측면 안전 거리를 자율적으로 조정할 필요할 있다.
일 예에 따라 도 1a에 도시된 바와 같이 로봇(100)이 여유 공간이 넓은 단일 장애물을 회피하여 주행하는 경우 측면 안전 거리의 자유도가 높기 때문에 여유로운 측면 안전 거리 확보를 확보할 수 있다.
일 예에 따라 도 1b에 도시된 바와 같이 로봇(100)이 장애물 밀집 지역을 돌파 주행하는 경우, 고정 측면 거리를 적용하는 경우 불필요한 우회나 오정지 등이 발생할 수 있기 때문에 최소 측면 거리를 적용하는 돌파 주행이 효율적일 수 있다.
일 예에 따라 도 1c에 도시된 바와 같이 로봇(100)이 직각 선회 후 개방형 통로로 진입하는 경우 측면 안전 거리의 자유도가 높기 때문에 여유로운 측면 안전 거리 확보를 확보할 수 있다.
일 예에 따라 도 1d에 도시된 바와 같이 로봇(100)이 직각 선회 후 협소 통로로 진입하는 경우 최소 측면 거리를 적용하는 돌파 주행이 효율적일 수 있다.
이와 같이 주행 공간의 형태에 따라 의도치 않은 주행 경로를 회피하면서 측면 안전 거리를 자율적으로 조정할 필요할 있으며 이하에서는 도면을 참조하여 다양한 실시 예에 대해 설명하도록 한다.
도 2a는 일 실시 예에 따른 로봇의 구성을 설명하기 위한 도면이다.
도 2a에 따르면, 로봇(100)은 적어도 하나의 센서(110), 구동부(120), 메모리(130) 및 하나 이상의 프로세서(140)를 포함할 수 있다.
적어도 하나의 센서(110)는 다양한 타입의 복수의 센서를 포함할 수 있다. 센서(110)는 물리량을 계측하거나 로봇(100)의 작동 상태를 감지하여, 계측 또는 감지된 정보를 전기 신호로 변환할 수 있다. 일 예에 따라 센서(110)는 속도 센서, 자이로 센서, 가속도 센서, 각속도 센서 등을 포함하며, 로봇(100)의 속도 및 각속도를 센싱할 수 있다.
또한, 센서(110)는 카메라를 포함할 수 있으며, 카메라는 오브젝트에 의해 반사되어 수신되는 가시광 기타 광학 신호를 이미지 센서로 포커싱하는 렌즈 및 가시광 기타 광학 신호를 감지할 수 있는 이미지 센서를 포함할 수 있다. 여기서, 이미지 센서는 복수의 픽셀로 구분되는 2D의 픽셀 어레이를 포함할 수 있으며, 일 예에 따른 카메라는 뎁스 카메라로 구현될 수 있다. 또한, 센서(110)는 라이더(LIDAR, Light Detection And Ranging) 센서 및 TOF(Time of flight) 센서와 같은 거리 센를 포함할 수 있다.
그 밖에 센서(110)는 제스처 센서, 기압 센서, 마그네틱 센서, 그립 센서, 근접 센서, 컬러(color) 센서(예: RGB(red, green, blue) 센서), 생체 센서, 온/습도 센서, 조도 센서 또는 UV(ultra violet) 센서 중의 적어도 하나를 포함할 수도 있다.
구동부(120)는 로봇(100)을 주행시킬 수 있는 장치이다. 구동부(120)는 프로세서(140)의 제어에 따라 주행 방향 및 주행 속도를 조절할 수 있으며, 일 예에 따른 구동부(120)는 로봇(100)이 주행하기 위한 동력을 발생시키는 동력발생장치(예: 사용 연료(또는 에너지원)에 따라 가솔린 엔진(engine), 디젤 엔진, LPG(liquefied petroleum gas) 엔진, 전기 모터 등), 주행 방향을 조절하기 위한 조향 장치(예: 기계식 스티어링(manual steering), 유압식 스티어링(hydraulics steering), 전자식 스티어링(electronic control power steering; EPS) 등), 동력에 따라 로봇(100)을 주행시키는 주행 장치(예: 바퀴, 프로펠러 등) 등을 포함할 수 있다. 여기서, 구동부(120)는 로봇(100)의 주행 타입(예: 휠 타입, 보행 타입, 비행 타입 등)에 따라 변형 실시될 수 있다.
메모리(130)는 다양한 실시 예를 위해 필요한 데이터를 저장할 수 있다. 메모리(130)는 데이터 저장 용도에 따라 로봇(100)에 임베디드된 메모리 형태로 구현되거나, 로봇(100)에 탈부착이 가능한 메모리 형태로 구현될 수도 있다. 예를 들어, 로봇(100)의 구동을 위한 데이터의 경우 로봇(100)에 임베디드된 메모리에 저장되고, 로봇(100)의 확장 기능을 위한 데이터의 경우 로봇(100)에 탈부착이 가능한 메모리에 저장될 수 있다. 한편, 로봇(100)에 임베디드된 메모리의 경우 휘발성 메모리(예: DRAM(dynamic RAM), SRAM(static RAM), 또는 SDRAM(synchronous dynamic RAM) 등), 비휘발성 메모리(non-volatile Memory)(예: OTPROM(one time programmable ROM), PROM(programmable ROM), EPROM(erasable and programmable ROM), EEPROM(electrically erasable and programmable ROM), mask ROM, flash ROM, 플래시 메모리(예: NAND flash 또는 NOR flash 등), 하드 드라이브, 또는 솔리드 스테이트 드라이브(solid state drive(SSD)) 중 적어도 하나로 구현될 수 있다. 또한, 로봇(100)에 탈부착이 가능한 메모리의 경우 메모리 카드(예를 들어, CF(compact flash), SD(secure digital), Micro-SD(micro secure digital), Mini-SD(mini secure digital), xD(extreme digital), MMC(multi-media card) 등), USB 포트에 연결가능한 외부 메모리(예를 들어, USB 메모리) 등과 같은 형태로 구현될 수 있다.
일 예에 따라 메모리(130)는 오브젝트까지의 거리 정보를 포함하는 Distance Map, 오브젝트(또는 장애물)의 특성에 따른 속도 프로파일 정보 등을 저장할 수 있다. 다만, 해당 정보들은 외부 장치로부터 실시간으로 수신되는 것도 가능하다. 여기서, Distance Map은 각 셀에 오브젝트, 즉 장애물까지 거리 및 해당 장애물의 확률 값을 저장하는 형태일 수 있다.
하나 이상의 프로세서(140)는 로봇(100)의 동작을 전반적으로 제어한다. 구체적으로, 프로세서(140)는 로봇(100)의 각 구성과 연결되어 로봇(100)의 동작을 전반적으로 제어할 수 있다. 예를 들어, 프로세서(140)는 메모리(130) 및 구동부(120)와 전기적으로 연결되어 로봇(100)의 전반적인 동작을 제어할 수 있다. 프로세서(140)는 하나 또는 복수의 프로세서로 구성될 수 있다. 예를 들어, 다양한 기능(예를 들어, 맵 생성, 경로 플래닝)은 하나의 프로세서에 의해 수행될 수도 있으나, 복수의 프로세서에 의해 각기 다른 기능이 수행될 수도 있다.
하나 이상의 프로세서(140)는 CPU (Central Processing Unit), GPU (Graphics Processing Unit), APU (Accelerated Processing Unit), MIC (Many Integrated Core), DSP (Digital Signal Processor), NPU (Neural Processing Unit), 하드웨어 가속기 또는 머신 러닝 가속기 중 하나 이상을 포함할 수 있다. 하나 이상의 프로세서(140)는 로봇(100)의 다른 구성요소 중 하나 또는 임의의 조합을 제어할 수 있으며, 통신에 관한 동작 또는 데이터 처리를 수행할 수 있다. 하나 이상의 프로세서(140)는 메모리(130)에 저장된 하나 이상의 프로그램 또는 명령어(instruction)을 실행할 수 있다. 예를 들어, 하나 이상의 프로세서(140)는 메모리(130)에 저장된 하나 이상의 명령어를 실행함으로써, 본 개시의 일 실시 예에 따른 방법을 수행할 수 있다.
본 개시의 일 실시 예에 따른 방법이 복수의 동작을 포함하는 경우, 복수의 동작은 하나의 프로세서에 의해 수행될 수도 있고, 복수의 프로세서에 의해 수행될 수도 있다. 예를 들어, 일 실시 예에 따른 방법에 의해 제 1 동작, 제 2 동작, 제 3 동작이 수행될 때, 제 1 동작, 제 2 동작, 및 제 3 동작 모두 제 1 프로세서에 의해 수행될 수도 있고, 제 1 동작 및 제 2 동작은 제 1 프로세서(예를 들어, 범용 프로세서)에 의해 수행되고 제 3 동작은 제 2 프로세서(예를 들어, 인공지능 전용 프로세서)에 의해 수행될 수도 있다.
하나 이상의 프로세서(140)는 하나의 코어를 포함하는 단일 코어 프로세서(single core processor)로 구현될 수도 있고, 복수의 코어(예를 들어, 동종 멀티 코어 또는 이종 멀티 코어)를 포함하는 하나 이상의 멀티 코어 프로세서(multicore processor)로 구현될 수도 있다. 하나 이상의 프로세서(140)가 멀티 코어 프로세서로 구현되는 경우, 멀티 코어 프로세서에 포함된 복수의 코어 각각은 캐시 메모리, 온 칩(On-chip) 메모리와 같은 프로세서 내부 메모리를 포함할 수 있으며, 복수의 코어에 의해 공유되는 공통 캐시가 멀티 코어 프로세서에 포함될 수 있다. 또한, 멀티 코어 프로세서에 포함된 복수의 코어 각각(또는 복수의 코어 중 일부)은 독립적으로 본 개시의 일 실시예에 따른 방법을 구현하기 위한 프로그램 명령을 판독하여 수행할 수도 있고, 복수의 코어 전체(또는 일부)가 연계되어 본 개시의 일 실시예에 따른 방법을 구현하기 위한 프로그램 명령을 판독하여 수행할 수도 있다.
본 개시의 일 실시예에 따른 방법이 복수의 동작을 포함하는 경우, 복수의 동작은 멀티 코어 프로세서에 포함된 복수의 코어 중 하나의 코어에 의해 수행될 수도 있고, 복수의 코어에 의해 수행될 수도 있다. 예를 들어, 일 실시예에 따른 방법에 의해 제 1 동작, 제 2 동작, 및 제 3 동작이 수행될 때, 제 1 동작, 제2 동작, 및 제3 동작 모두 멀티 코어 프로세서에 포함된 제 1 코어에 의해 수행될 수도 있고, 제 1 동작 및 제 2 동작은 멀티 코어 프로세서에 포함된 제 1 코어에 의해 수행되고 제 3 동작은 멀티 코어 프로세서에 포함된 제 2 코어에 의해 수행될 수도 있다.
본 개시의 실시 예들에서, 프로세서는 하나 이상의 프로세서 및 기타 전자 부품들이 집적된 시스템 온 칩(SoC), 단일 코어 프로세서, 멀티 코어 프로세서, 또는 단일 코어 프로세서 또는 멀티 코어 프로세서에 포함된 코어를 의미할 수 있으며, 여기서 코어는 CPU, GPU, APU, MIC, DSP, NPU, 하드웨어 가속기 또는 기계 학습 가속기 등으로 구현될 수 있으나, 본 개시의 실시 예들이 이에 한정되는 것은 아니다. 이하 하나 이상의 프로세서(140)는 설명의 편의를 위하여 프로세서(140)로 명명하도록 한다.
도 2b는 본 개시의 일 실시 예에 따른 로봇의 일 구현 예의 세부 구성를 나타내는 도면이다.
도 2b에 따르면 로봇(100')은 적어도 하나의 센서(110), 구동부(120), 메모리(130), 하나 이상의 프로세서(140), 통신 인터페이스(150), 사용자 인터페이스(160) 및 디스플레이(170)를 포함할 수 있다. 도 2b에 도시된 구성 중 도 2a에 도시된 구성과 중복되는 구성에 대해서는 자세한 설명을 생략하도록 한다.
통신 인터페이스(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 메모리), 외부 서버(예를 들어 웹 하드)와 다양한 타입의 데이터를 송수신할 수 있다.
일 예에 따라 맵 정보를 외부 장치(또는 외부 서버)로부터 수신하는 경우, 통신 인터페이스(150)를 통해 맵 정보를 수신할 수 있다.
사용자 인터페이스(160)는 로봇(100')이 사용자와 인터렉션(Interaction)을 수행하기 위한 구성이다. 예를 들어 사용자 인터페이스(160)는 터치 센서, 모션 센서, 버튼, 조그(Jog) 다이얼, 스위치, 마이크 또는 스피커 중 적어도 하나를 포함할 수 있으나 이에 한정되는 것은 아니다.
디스플레이(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)는 터치 스크린을 내장하고 있어, 손가락 또는 펜(예를 들어, 스타일러스 펜)을 이용하여 프로그램을 실행시킬 수 있도록 구현될 수 있다.
일 예에 따라 프로세서(140)는 SLAM(Simulaneous Localization And Mapping)에 기초하여 free space map을 획득할 수 있다. 여기서, SLAM이란 맵을 생성함과 동시에 로봇(100)의 위치를 추정하는 것을 의미한다. 예를 들어, 프로세서(140)는 적어도 하나의 센서(미도시)를 통해 획득된 데이터에 기초하여 free space map을 획득할 수 있다. 일 예에 따라 프로세서(140)는 GPS를 이용하여 로봇(100)의 위치를 파악하고, 카메라, 라이더 센서, 적외선 센서, 초음파 센서 등과 같이 로봇(100)에 구비된 다양한 센서를 이용하여 free space map을 획득할 수 있다. 여기서, free space map은 공간을 occupied space, free space 또는 unknown space 중 적어도 하나로 구분한 형태일 수 있다.
이어서, 프로세서(140)는 free-space map에 포함된 free space에 대한 정보 및 로봇(100)이 주행하는 동안 적어도 하나의 센서(미도시), 예를 들어 라이더 센서를 통해 획득된 정보에 기초하여 distance map을 획득할 수 있다. 여기서, Distance Map은 장애물까지 거리 및 장애물의 확률 값을 저장하는 형태일 수 있다.
일 예에 따라 프로세서(130)는 Distance Map을 기초로 하되, 후술하는 다양한 실시 예에 따라 실시간으로 모션 정보를 식별하고 이에 따라 로봇(100)의 주행을 제어할 수 있다.
도 3은 일 실시 예에 따른 로봇의 주행 방법을 설명하기 위한 도면이다.
도 3에 도시된 일 실시 예에 따르면, 프로세서(140)는 센서(110)를 통해 식별된 로봇(100)의 현재 속도 및 각속도에 기초하여 복수의 제1 모션 정보를 포함하는 기본 모션 후보군을 식별한다(S310).
센서(110)는 로봇(100)의 속도 및 각속도를 측정할 수 있는 속도 센서, 자이로 센서, 가속도 센서, 각속도 센서 등을 포함할 수 있다. 여기서, 속도(velocity)는 단위 시간 동안에 이동한 위치 벡터의 변위로서, 단위 시간 동안 오브젝트의 위치 변화율을 나타내는 시간 함수이다. 각속도(angular velocity)는 회전하는 오브젝트의 단위 시간당 각 위치 변화이다. 예를 들어, △t시간 동안에 △θ만큼 회전하였을 때 각속도(ω)는 △θ/△t이다. 각속도의 단위는 초당 라디안, 즉 rad/s 또는 분당 회전수, 즉 RPM이 이용될 수 있다.
일 예에 따라 프로세서(140)는 현재 속도를 기준으로 기설정된 속도 범위 및 현재 각속도를 기준으로 기설정된 각속도 범위에 기초하여 복수의 제1 모션 정보를 식별할 수 있다. 여기서, 기설정된 속도 범위 및 기설정된 각속도 범위는 로봇(100)의 하드웨어 성능 또는 로봇(100)의 서비스 타입 중 적어도 하나에 기초하여 설정된 범위일 수 있다.
예를 들어, 로봇(100)의 하드웨어 성능에 기초한 속도 범위가 0 m/s ~ 2 m/s 인 경우 기 설정된 속도 범위는 효율성, 전력 소비량 등을 고려하여 0.3 m/s ~ 1.8 m/s 로 결정될 수 있다. 이는 로봇(100) 출하시 제조사에 의해 설정되어 있을 수 있으나 사용자에 의해 변경 가능할 수 있다. 또는, 로봇(100)의 하드웨어 성능에 기초하여 기 설정된 속도 범위가 0.3 m/s ~ 2 m/s 로 결정되더라도 로봇(100)의 서비스 타입(예를 들어, 청소 서비스, 서빙 서비스, 안내 서비스 등)에 기초하여 기 설정된 속도 범위가 0.5 m/s ~ 1.8 m/s 와 같이 조정될 수도 있다.
복수의 제1 모션 정보는 상이한 속도 및 상이한 각속도의 조합일 수 있다. 예를 들어, 로봇(100)의 현재 속도를 기준으로 기설정된 속도 범위에 기초하여 v1 ~ vm의 속도 범위가 식별되고, 현재 속도 및 각속도를 기준으로 기설정된 각속도 범위에 기초하여 w1 ~ wn의 각속도 범위가 식별된 경우를 가정한다. 이 경우, (v1, w1), (v1, w2),..(v1, wn), (v2, w1), (v2, w2),..(v2, wn), ...(vm, w1). (vm, w2),..(vm, wn)와 같은 복수의 속도 및 각속도 페어가 복수의 제1 모션 정보가 될 수 있다.
일 예에 따라 도 4에 도시된 바와 같이 y축 속도 정보 및 x축 각속도 정보를 기준으로 구별된 복수의 제1 모션 정보를 포함하는 기본 모션 후보군(410)이 식별될 수 있다. 다만 반드시 이와 같은 형태로 나타내어지는 것은 아니며 속도 및 각속도 정보를 매칭하는 형태라는 다양한 형태로 나타내어질 수 있다.
일 예에 따라 프로세서(130)는 기설정된 속도 범위 및 각속도 범위에 포함된 discrete value 또는 continuous value에 기초하여 복수의 제1 모션 정보를 식별할 수 있다. 예를 들어, 기본 모션 후보군(410)은 복수의 제1 모션 정보가 discrete한 각 셀(또는 그리드)에 대응되며, 각 셀이 속도 값 및 가속도 값을 포함하는 형태일 수 있으나, 이에 한정되는 것은 아니다. 여기서, 속도 값 및 가속도 값은 절대 수치일 수 있으나, 이에 한정되는 것은 아니며 기준 수치에 적용되는 게인 형태일 수 있다.
프로세서(140)는 복수의 제1 모션 정보 각각에 대응되는 적어도 하나의 제1 주행 성능(또는 주행 기능)에 기초하여 복수의 제1 모션 정보 중 일부의 제2 모션 정보를 제2 모션 후보로 식별할 수 있다(S320). 여기서, 적어도 하나의 제1 주행 성능은 전방 안전 거리 및 목표 지점까지의 거리를 포함할 수 있으나, 반드시 이에 한정되는 것은 아니다.
일 예에 따라 도 4에 도시된 바와 같이 기본 모션 후보군(410)에 포함된 복수의 제1 모션 정보 중 일부 모션 정보, 즉 제2 모션 정보가 제2 모션 후보(420)로 식별될 수 있다.
프로세서(140)는 제2 모션 정보 각각에 대응되는 적어도 하나의 제2 주행 성능에 기초하여 최종 모션 정보를 식별할 수 있다(S330). 여기서, 적어도 하나의 제2 주행 성능은 측면 안전 거리를 포함할 수 있으나, 이에 한정되는 것은 아니다, 예를 들어, 장애물 타입(예를 들어, 동적 장애물 또는 정적 장애물) 등과 같은 다른 추가 요소가 최종 모션 정보를 식별하는데 고려될 수도 있다.
일 예에 따라 도 4에 도시된 바와 같이 제2 모션 후보(420)에 포함된 복수의 제2 모션 정보 중 특정 모션 정보(430)가 최종 모션 정보로 식별될 수 있다.
이 후, 프로세서(140)는 식별된 최종 모션 정보에 따라 로봇(100)이 주행하도록 구동부(120)를 제어할 수 있다. 예를 들어, 최종 모션 정보가 (v2, w1)으로 결정된 경우 해당 속도 및 각속도로 로봇(100)이 주행하도록 제어할 수 있다.
도 5는 일 실시 예에 따른 로봇의 주행 방법을 자세히 설명하기 위한 도면이다.
도 5에 도시된 일 실시 예에 따르면, 프로세서(140)는 로봇(100)의 현재 속도 및 각속도에 기초하여 복수의 제1 모션 정보를 포함하는 기본 모션 후보군을 식별할 수 있다(S510). 일 예에 따라 도 6에 도시된 바와 같이 y축 속도 정보 및 x축 각속도 정보를 포함하는 기본 모션 후보군(610)이 식별될 수 있다. S510 단계는 도 3의 S310 단계과 동작이 동일하므로 자세한 설명을 생략하도록 한다.
프로세서(140)는 복수의 제1 모션 정보 각각에 대응되는 전방 안전 거리 및 목표 지점까지의 거리에 기초하여 복수의 제1 모션 정보 중 일부의 제2 모션 정보를 제2 모션 후보로 식별할 수 있다(S520).
일 예에 따라 프로세서(140)는 복수의 제1 모션 정보 각각에 대응되는 모션 스코어를 획득하고, 획득된 모션 스코어에 기초하여 제2 모션 후보(620)를 식별할 수 있다. 여기서, 모션 스코어는 전방 안전 거리에 제1 가중치를 적용하고 목표 지점까지의 거리에 제2 가중치를 적용하여 획득될 수 있다. 모션 스코어를 산출하는 구체적 방법에 대해서는 도 7, 도 8a 및 도 8b를 참조하여 자세히 설명하도록 한다. 예를 들어, 프로세서(140)는 도 6에 도시된 바와 같이 기본 모션 후보군에 포함된 복수의 제1 모션 정보(610) 각각에 대응되는 전방 안전 거리 및 목표 지점까지 거리에 기초하여, 복수의 제1 모션 정보(610) 중 복수의 제2 모션 정보(620)를 식별할 수 있다.
프로세서(140)는 제2 모션 정보 각각에 대응되는 측면 안전 거리에 기초하여 제2 모션 정보 중 최종 모션 정보를 식별할 수 있다.
일 예에 따라 프로세서(140)는 도 6에 도시된 바와 같이 복수의 제2 모션 정보(620) 각각에 대응되는 측면 안전 거리에 기초하여, 복수의 제2 모션 정보(620) 중 최종 모션 정보(630)를 식별할 수 있다. 예를 들어, 도 6에 도시된 바와 같이 측면 안전 거리에 기초하여 제2 모션 정보(620) 중 최종 모션 정보(630)가 식별될 수 있다.
다만 이에 한정되는 것은 아니며, 측면 안전 거리 외에 추가 반영 요소가 존재하는 경우, 제2 모션 정보 각각에 대응되는 측면 안전 거리에 제3 가중치를 적용하고 제2 모션 정보 각각에 대응되는 추가 반영 요소에 제4 가중치를 적용하여 제2 모션 정보 각각에 대응되는 모션 스코어를 획득할 수 있음은 물론이다.
이후, 프로세서(140)는 식별된 최종 모션 정보에 따라 로봇(100)이 주행하도록 구동부(120)를 제어할 수 있다. S540 단계는 도 3의 S340 단계과 동작이 동일하므로 자세한 설명을 생략하도록 한다.
도 7, 도 8a 및 도 8b는 일 실시 예에 따른 모션 스코어 획득 방법을 설명하기 위한 도면들이다.
도 7에 도시된 일시 예에 따르면, 프로세서(140)는 기본 모션 후보군에 속하는 복수의 제1 모션 정보 각각에 대응되는 전방 안전 거리 및 목표 지점까지의 거리를 식별할 수 있다(S710).
일 예에 따라 도 8a에 따르면, 로봇(100)의 현재 속도 및 각속도가 (v1, w1)이고 제1 모션 정보가 (v1, w2)인 경우, 즉, 로봇(100)의 속도는 유지되고 각속도가 w1에서 w2로 변경되는 경우 프로세서(140)는 제1 모션 정보 (v1, w2)에 대응되는 로봇(100)의 위치를 예측할 수 있다.
프로세서(140)는 제1 모션 정보 (v1, w2)에 대응되는 로봇(100)의 위치에서 전방 안전 거리 d1 및 목표 지점까지의 거리 d2를 산출할 수 있다.
일 예에 따라 도 8b에 따르면, 로봇(100)의 현재 속도 및 각속도가 (v1, w1)이고 제1 모션 정보가 (v1, w3)인 경우, 즉, 로봇(100)의 속도는 유지되고 각속도가 w1에서 w3로 변경되는 경우 프로세서(140)는 제1 모션 정보 (v1, w3)에 대응되는 로봇(100)의 위치를 예측할 수 있다.
프로세서(140)는 제1 모션 정보 (v1, w3)에 대응되는 로봇(100)의 위치에서 전방 안전 거리 d3 및 목표 지점까지의 거리 d4를 산출할 수 있다.
이와 같이 프로세서(140)는 복수의 제1 모션 정보 각각에 대해 전방 안전 거리 및 목표 지점까지의 거리를 산출할 수 있다.
프로세서(140)는 복수의 제1 모션 정보 각각에 대응되는 전방 안전 거리에 제1 가중치를 적용하고 목표 지점까지의 거리에 제2 가중치를 적용하여 복수의 제1 모션 정보 각각에 대응되는 모션 스코어를 획득할 수 있다(S720). 예를 들어, 프로세서(140)는 전방 안전 거리는 길수록 목표 지점까지의 거리는 짧을수록 모션 스코어 값이 커지도록 제1 가중치 및 제2 가중치를 결정할 수 있다.
일 예에 따라 프로세서(140)는 복수의 제1 모션 정보 각각에 대응되는 전방 안전 거리 및 목표 지점까지의 거리에 대해 동일한 가중치를 적용하거나, 상이한 가중치를 적용할 수 있다. 여기서 적용되는 제1 및 제2 가중치는 독립적인 가중치이거나, 상호 연관된 가중치일 수 있다. 다만, 전방 안전 거리 및 목표 지점까지의 거리는 상이한 물리 값이므로 제1 및 제2 가중치가 상호 연관된 가중치(예를 들어, 제1 가중치 및 제2 가중치의 합이 1인 경우)인 경우 전방 안전 거리 및 목표 지점까지의 거리에 대한 노멀라이징이 필요할 수 있다.
일 예에 따라 프로세서(140)는 전방 안전 거리에 제1 가중치가 적용된 값 및 목표 지점까지의 거리에 제2 가중치가 적용된 값을 합산하여 모션 스코어를 산출할 수 있다. 일 예에 따라 프로세서(140)는 전방 안전 거리 및 목표 지점까지의 거리를 노멀라이징하고, 노멀라이징된 전방 안전 거리에 제1 가중치가 적용된 값 및 노멀라이징된 전방 안전 거리에 제1 가중치가 적용된 값 및 노멀라이징된 목표 지점까지의 거리에 제2 가중치가 적용된 값을 합산하여 모션 스코어를 산출할 수 있다. 다만, 이는 일 예일 뿐이며 모션 스코어는 전방 안전 거리, 목표 지점까지의 거리 및 가중치에 기초하여 다양한 방식으로 산출될 수 있음은 물론이다.
프로세서(140)는 S720 단계에서 획득된 모션 스코어에 기초하여 복수의 제1 모션 정보 중 복수의 제2 모션 정보를 식별할 수 있다(S730).
일 예에 따라 프로세서(140)는 복수의 제1 모션 정보 각각에 대응되는 모션 스코어 중 가장 큰 값을 가지는 제1 모션 정보를 식별하고, 식별된 제1 모션 스코어에 기초하여 복수의 제2 모션 정보를 식별할 수 있다.
도 9는 일 실시 예에 따른 제2 모션 정보 및 최종 모션 정보를 식별하는 방법을 자세히 설명하기 위한 도면이다.
도 9에 도시된 일 실시 예에 따르면, 프로세서(140)는 복수의 제1 모션 정보 각각에 대응되는 모션 스코어를 획득할 수 있다(S910). 이에 대해서는 도 7, 도 8a 및 도 8b에서 자세히 설명하였으므로 구체적인 설명은 생략하도록 한다.
일 예에 따르면, 프로세서(140)는 복수의 제1 모션 정보 중 모션 스코어가 가장 큰 모션 정보와 동일한 속도이고 상이한 각속도를 포함하는 복수의 제2 모션 정보를 제2 모션 후보로 식별할 수 있다(S920). 예를 들어, 도 6에 도시된 예시에서 복수의 제1 모션 정보(610) 중 모션 스코어가 가장 큰 모션 정보(611)를 식별하고, 식별된 모션 정보(611)와 동일한 속도이고 상이한 각속도를 포함하는 복수의 제2 모션 정보(620)를 제2 모션 후보로 식별할 수 있다.
프로세서(140)는 복수의 제2 모션 정보에 포함된 상이한 각속도 각각에 따른 측면 안전 거리를 식별할 수 있다(S930).
이후, 프로세서(140)는 식별된 측면 안전 거리 중 최대 거리에 대응되는 각속도를 가지는 모션 정보를 최종 모션 정보로 식별할 수 있다(S940). 예를 들어, 도 6에 도시된 예시에서 복수의 제2 모션 정보(620) 중 측면 안전 거리가 가장 큰 모션 정보(621)를 최종 모션 정보(630)로 식별할 수 있다.
도 10a 및 도 10b는 일 실시 예에 따른 최종 모션 식별 방법을 좀더 자세히 설명하기 위한 도면들이다.
도 10a는 도 1a에 도시된 바와 같은 여유 공간이 넓은 단일 장애물 회피를 위한 최종 모션 식별 방법의 예시이고, 도 10b는 도 1b에 도시된 바와 같은 장애물 밀집 지역 돌파 주행의 경우 최종 모션 식별 방법의 예시이다.
도 10a에 도시된 일 예에 따르면, 프로세서(130)는 복수의 제1 모션 정보(1010) 중 단일 장애물의 위치에 기초하여 일부 모션 정보들(1021)은 제외되고 나머지 모션 정보들 중 최적 모션 정보(1031)가 식별될 수 있다.
프로세서(130)는 최적 모션 정보(1031)에 기초하여 속도가 결정되면 단일 장애물의 위치에 기초하여 동일한 속도를 모션 정보 중 일부 모션 정보 중 단일 장애물의 위치에 기초하여 일부 모션 정보들(1021)은 제외하고 나머지 모션 정보 만을 제2 모션 정보(1030)로 식별할 수 있다. 예를 들어, 도 10a에 도시된 v축 및 w 축 그래프에서 최적 모션 정보(1031)와 동일한 속도를 가지는 모션 정보는 첫번째 라인의 모션 정보들이지만 이들 중 최적 모션 정보(1031)의 좌측에 위치한 모션 정보들은 제외되고 나머지 모션 정보들(1030)만이 제2 모션 후보로 식별될 수 있다.
이어서 제2 모션 후보에 포함된 모션 정보들(1030) 중 최종 모션 정보가 식별될 수 있다. 예를 들어, 단일 장애물에 대해 최대 측면 거리를 가지는 모션 정보(1032)가 최종 모션 정보로 식별될 수 있다.
도 10b에 도시된 일 예에 따르면, 프로세서(130)는 복수의 제1 모션 정보(1010) 중 복수의 장애물 각각의 위치에 기초하여 일부 모션 정보 들(1022, 1023)은 제외되고 나머지 모션 정보들 중 최적 모션 정보(1031)가 식별될 수 있다. 일 예에 따라 제외되는 모션 정보(1022, 1023, 1024)는 각각 다른 장애물의 위치에 기초하여 제외되는 모션 정보일 수 있다.
프로세서(130)는 최적 모션 정보(1051)에 기초하여 속도가 결정되면 동일한 속도를 모션 정보 중 일부 모션 정보 중 복수의 장애물 각각의 위치에 기초하여 일부 모션 정보들은 제외하고 나머지 모션 정보 만을 제2 모션 정보(1050)로 식별할 수 있다. 예를 들어, 도 10b에 도시된 v축 및 w축 그래프에서 최적 모션 정보(1051)와 동일한 속도를 가지는 모션 정보는 첫번째 라인의 모션 정보들이지만 이들 중 최적 모션 정보(1051)의 좌측에 위치한 모션 정보들은 제외되고 나머지 모션 정보들(1050)만이 제2 모션 후보로 식별될 수 있다.
이어서 제2 모션 후보에 포함된 모션 정보들(1050) 중 최종 모션 정보가 식별될 수 있다. 예를 들어, 복수의 장애물 각각에 대해 최대 측면 거리를 가지는 모션 정보(1532)가 최종 모션 정보로 식별될 수 있다.
도 11a 및 도 11b는 일 실시 예에 따른 침해 적발 방법을 설명하기 위한 도면들이다.
도 11a 및 도 11b에 도시된 바와 같이 장애물(1120)의 위치가 이동되는 경우(예를 들어 동적 장애물의 경우) 도 11a의 위치에서 도 11b의 위치로 이동되는 경우 로봇(100) 주행시 장애물(1120)과의 측면 거리(또는 측면 간격) 확보량(D)이 일정하게 유지될 수 있다. 이는 우선 순위에 따라 측면 거리가 마지막 라운드에서 고려되기 때문이다. 하지만, 단순히 모든 주행 성능에 가중합을 적용하여 통합적으로 모션 정보를 식별(예를 들어, 가중합 스코어링 방식)하게 되면 의도치 않은 모션이 발생할 가능성이 높아지게 된다.
예를 들어, 로봇(100) 및 장애물(1120) 간의 측면 거리 확보량이 일정하게 유지되지 않게 된다. 예를 들어, 도 11b를 참고하면, 장애물의 이동에 따라 로봇(100) 장애물에 좀더 가까운 측면 거리로 주행하는 경우 목표 지점(1130)까지의 거리가 짧아질 수 있기 때문에 이를 다른 주행 요소들과 가중합으로 반영하게 되면 측면 거리 확보량이 짧아질 수 있게 된다.
또한, 본 개시에 따르면 최대 측면 안정 거리를 항상 확보하므로 양쪽 장애물 사이를 돌파 주행하는 경우 항상 양쪽 장애물 사이의 중앙 지점으로 돌파 주행하게 되지만, 가중합 스코어링 방식에 따르면, 각 주행 요소 들 간의 절충 지점을 고려하게 되므로 항상 양쪽 장애물 사이의 중앙 지점을 돌파 주행할 수 없게 된다.
상술한 바와 같이 로봇(100)이 이동하는 경우 장애물에 대한 측면 거리 확보량이 유지되는지 여부에 따라 본 개시의 다양한 실시 예에 따른 침해 적발이 가능할 수 있다.
한편, 상술한 실시 예에서는 제1 모션 정보에서 제2 모션 정보를 식별하는 제1 라운드, 제2 모션 정보에서 최종 모션 정보를 식별하는 제2 라운드의 예시를 설명하였으나, 이에 한정되는 것은 아니며 다양한 상황에 따라 추가 라운드가 반영될 수 있음은 물론이다.
상술한 다양한 실시 예에 따르면, 주행 기능의 우선 순위에 따라 최적의 모션 정보를 단계적으로 선택하여 가중합 스코어링 방식에 따라 의도치 않은 모션이 선택되는 문제를 해결할 수 있게 된다. 또한, 측면 안전 거리를 자율적으로 조정하여 주행 성능을 향상 시킬 수 있게 된다.
한편, 상술한 다양한 실시 예들에 따른 방법들은, 기존 전자 장치에 설치 가능한 어플리케이션 형태로 구현될 수 있다. 또는 상술한 본 개시의 다양한 실시 예들에 따른 방법들 중 적어도 일부는 딥 러닝 기반의 인공 지능 모델 즉, 학습 네트워크 모델을 이용하여 수행될 수도 있다.
또한, 상술한 본 개시의 다양한 실시 예들에 따른 방법들은, 기존 전자 장치에 대한 소프트웨어 업그레이드, 또는 하드웨어 업그레이드 만으로도 구현될 수 있다.
또한, 상술한 본 개시의 다양한 실시 예들은 전자 장치에 구비된 임베디드 서버, 또는 전자 장치의 외부 서버를 통해 수행되는 것도 가능하다.
한편, 본 개시의 일시 예에 따르면, 이상에서 설명된 다양한 실시 예들은 기기(machine)(예: 컴퓨터)로 읽을 수 있는 저장 매체(machine-readable storage media)에 저장된 명령어를 포함하는 소프트웨어로 구현될 수 있다. 기기는, 저장 매체로부터 저장된 명령어를 호출하고, 호출된 명령어에 따라 동작이 가능한 장치로서, 개시된 실시 예들에 따른 전자 장치(예: 전자 장치(A))를 포함할 수 있다. 명령이 프로세서에 의해 실행될 경우, 프로세서가 직접, 또는 프로세서의 제어 하에 다른 구성요소들을 이용하여 명령에 해당하는 기능을 수행할 수 있다. 명령은 컴파일러 또는 인터프리터에 의해 생성 또는 실행되는 코드를 포함할 수 있다. 기기로 읽을 수 있는 저장 매체는, 비일시적(non-transitory) 저장매체의 형태로 제공될 수 있다. 여기서, '비일시적'은 저장매체가 신호(signal)를 포함하지 않으며 실재(tangible)한다는 것을 의미할 뿐 데이터가 저장매체에 반영구적 또는 임시적으로 저장됨을 구분하지 않는다.
또한, 본 개시의 일 실시 예에 따르면, 이상에서 설명된 다양한 실시 예들에 따른 방법은 컴퓨터 프로그램 제품(computer program product)에 포함되어 제공될 수 있다. 컴퓨터 프로그램 제품은 상품으로서 판매자 및 구매자 간에 거래될 수 있다. 컴퓨터 프로그램 제품은 기기로 읽을 수 있는 저장 매체(예: compact disc read only memory (CD-ROM))의 형태로, 또는 어플리케이션 스토어(예: 플레이 스토어TM)를 통해 온라인으로 배포될 수 있다. 온라인 배포의 경우에, 컴퓨터 프로그램 제품의 적어도 일부는 제조사의 서버, 어플리케이션 스토어의 서버, 또는 중계 서버의 메모리와 같은 저장 매체에 적어도 일시 저장되거나, 임시적으로 생성될 수 있다.
또한, 상술한 다양한 실시 예들에 따른 구성 요소(예: 모듈 또는 프로그램) 각각은 단수 또는 복수의 개체로 구성될 수 있으며, 전술한 해당 서브 구성 요소들 중 일부 서브 구성 요소가 생략되거나, 또는 다른 서브 구성 요소가 다양한 실시 예에 더 포함될 수 있다. 대체적으로 또는 추가적으로, 일부 구성 요소들(예: 모듈 또는 프로그램)은 하나의 개체로 통합되어, 통합되기 이전의 각각의 해당 구성 요소에 의해 수행되는 기능을 동일 또는 유사하게 수행할 수 있다. 다양한 실시 예들에 따른, 모듈, 프로그램 또는 다른 구성 요소에 의해 수행되는 동작들은 순차적, 병렬적, 반복적 또는 휴리스틱하게 실행되거나, 적어도 일부 동작이 다른 순서로 실행되거나, 생략되거나, 또는 다른 동작이 추가될 수 있다.
이상에서는 본 개시의 바람직한 실시 예에 대하여 도시하고 설명하였지만, 본 개시는 상술한 특정의 실시 예에 한정되지 아니하며, 청구범위에서 청구하는 본 개시의 요지를 벗어남이 없이 당해 개시에 속하는 기술분야에서 통상의 지식을 가진 자에 의해 다양한 변형실시가 가능한 것은 물론이고, 이러한 변형실시들은 본 개시의 기술적 사상이나 전망으로부터 개별적으로 이해되어서는 안될 것이다.

Claims (15)

  1. 로봇(100)에 있어서,
    센서(110);
    구동부(120);
    적어도 하나의 인스트럭션이 저장된 메모리(130); 및
    상기 적어도 하나의 인스트럭션을 실행함으로써,
    상기 센서를 통해 식별된 상기 로봇의 현재 속도 및 각속도에 기초하여 복수의 제1 모션 정보를 포함하는 기본 모션 후보군을 식별하고,
    상기 복수의 제1 모션 정보 각각에 대응되는 적어도 하나의 제1 주행 성능에 기초하여 상기 복수의 제1 모션 정보 중 일부의 제2 모션 정보를 제2 모션 후보로 식별하고,
    상기 제2 모션 정보 각각에 대응되는 적어도 하나의 제2 주행 성능에 기초하여 최종 모션 정보를 식별하며,
    상기 식별된 최종 모션 정보에 따라 상기 로봇이 주행하도록 상기 구동부를 제어하는 하나 이상의 프로세서(140);를 포함하는 로봇.
  2. 제1항에 있어서,
    상기 적어도 하나의 제1 주행 성능은, 전방 안전 거리 및 목표 지점까지의 거리를 포함하고,
    상기 적어도 하나의 제2 주행 성능은, 측면 안전 거리를 포함하며,
    상기 하나 이상의 프로세서는,
    상기 복수의 제1 모션 정보 각각에 대응되는 전방 안전 거리 및 목표 지점까지의 거리에 기초하여 상기 복수의 제1 모션 정보 중 일부의 제2 모션 정보를 제2 모션 후보로 식별하고,
    상기 제2 모션 정보 각각에 대응되는 측면 안전 거리에 기초하여 상기 제2 모션 정보 중 최종 모션 정보를 식별하며,
    상기 식별된 최종 모션 정보에 따라 상기 로봇이 주행하도록 상기 구동부를 제어하는, 로봇.
  3. 제2항에 있어서,
    상기 복수의 제1 모션 정보는 상이한 속도 및 상이한 각속도의 조합이며,
    상기 하나 이상의 프로세서는,
    상기 복수의 제1 모션 정보 각각에 대응되는 전방 안전 거리 및 목표 지점까지의 거리를 식별하고,
    상기 전방 안전 거리에 제1 가중치를 적용하고 상기 목표 지점까지의 거리에 제2 가중치를 적용하여 상기 복수의 제1 모션 정보 각각에 대응되는 모션 스코어를 획득하고,
    상기 모션 스코어에 기초하여 상기 복수의 제1 모션 정보 중 상기 제2 모션 정보를 식별하는, 로봇.
  4. 제3항에 있어서,
    상기 하나 이상의 프로세서는,
    상기 복수의 제1 모션 정보 각각에 대응되는 모션 스코어가 획득되면, 상기 복수의 제1 모션 정보 중 모션 스코어가 가장 큰 모션 정보와 동일한 속도이고 상이한 각속도를 포함하는 복수의 제2 모션 정보를 상기 제2 모션 후보로 식별하는, 로봇.
  5. 제4항에 있어서,
    상기 하나 이상의 프로세서는,
    상기 복수의 제2 모션 정보에 포함된 상이한 각속도 각각에 따른 측면 안전 거리를 식별하고, 상기 식별된 측면 안전 거리 중 최대 거리에 대응되는 각속도를 가지는 모션 정보를 상기 최종 모션 정보로 식별하는, 로봇.
  6. 제3항에 있어서,
    상기 하나 이상의 프로세서는,
    상기 전방 안전 거리는 길수록 상기 목표 지점까지의 거리는 짧을수록 상기 모션 스코어 값이 커지도록 상기 제1 가중치 및 상기 제2 가중치를 적용하여 상기 복수의 제1 모션 정보 각각에 대응되는 상기 모션 스코어를 획득하는, 로봇.
  7. 제2항에 있어서,
    상기 하나 이상의 프로세서는,
    상기 측면 안전 거리 외에 추가 반영 요소가 존재하는 경우, 상기 제2 모션 정보 각각에 대응되는 측면 안전 거리에 제3 가중치를 적용하고 상기 제2 모션 정보 각각에 대응되는 추가 반영 요소에 제4 가중치를 적용하여 상기 제2 모션 정보 각각에 대응되는 상기 모션 스코어를 획득하고,
    상기 획득된 모션 스코어에 기초하여 상기 제2 모션 정보 중 상기 최종 모션 정보를 식별하는, 로봇.
  8. 제2항에 있어서,
    상기 하나 이상의 프로세서는,
    상기 로봇의 하드웨어 성능 또는 상기 로봇의 서비스 타입 중 적어도 하나에 따른 기설정된 속도 범위 및 각속도 범위에 기초하여 상기 로봇의 현재 속도 및 각속도를 기준으로 상기 복수의 제1 모션 정보를 식별하는, 로봇.
  9. 제8항에 있어서,
    상기 하나 이상의 프로세서는,
    상기 기설정된 속도 범위 및 각속도 범위에 포함된 discrete value 또는 continuous value에 기초하여 상기 복수의 제1 모션 정보를 식별하는, 로봇.
  10. 로봇의 구동 방법에 있어서,
    센서를 통해 식별된 상기 로봇의 현재 속도 및 각속도에 기초하여 복수의 제1 모션 정보를 포함하는 기본 모션 후보군을 식별하는 단계;
    상기 복수의 제1 모션 정보 각각에 대응되는 적어도 하나의 제1 주행 성능에 기초하여 상기 복수의 제1 모션 정보 중 일부의 제2 모션 정보를 제2 모션 후보로 식별하는 단계;
    상기 제2 모션 정보 각각에 대응되는 적어도 하나의 제2 주행 성능에 기초하여 최종 모션 정보를 식별하는 단계; 및
    상기 식별된 최종 모션 정보에 따라 상기 로봇이 주행하도록 구동부를 제어하는 단계;를 포함하는 구동 방법.
  11. 제10항에 있어서,
    상기 적어도 하나의 제1 주행 성능은, 전방 안전 거리 및 목표 지점까지의 거리를 포함하고,
    상기 적어도 하나의 제2 주행 성능은, 측면 안전 거리를 포함하며,
    상기 제2 모션 후보로 식별하는 단계는,
    상기 복수의 제1 모션 정보 각각에 대응되는 전방 안전 거리 및 목표 지점까지의 거리에 기초하여 상기 복수의 제1 모션 정보 중 일부의 제2 모션 정보를 제2 모션 후보로 식별하고,
    상기 최종 모션 정보를 식별하는 단계는,
    상기 제2 모션 정보 각각에 대응되는 측면 안전 거리에 기초하여 상기 제2 모션 정보 중 최종 모션 정보를 식별하는, 구동 방법.
  12. 제11항에 있어서,
    상기 복수의 제1 모션 정보는 상이한 속도 및 상이한 각속도의 조합이며,
    상기 제2 모션 후보로 식별하는 단계는,
    상기 복수의 제1 모션 정보 각각에 대응되는 전방 안전 거리 및 목표 지점까지의 거리를 식별하는 단계;
    상기 전방 안전 거리에 제1 가중치를 적용하고 상기 목표 지점까지의 거리에 제2 가중치를 적용하여 상기 복수의 제1 모션 정보 각각에 대응되는 모션 스코어를 획득하는 단계; 및
    상기 모션 스코어에 기초하여 상기 복수의 제1 모션 정보 중 상기 제2 모션 정보를 식별하는 단계;를 포함하는, 구동 방법.
  13. 제12항에 있어서,
    상기 제2 모션 후보로 식별하는 단계는,
    상기 복수의 제1 모션 정보 각각에 대응되는 모션 스코어가 획득되면, 상기 복수의 제1 모션 정보 중 모션 스코어가 가장 큰 모션 정보와 동일한 속도이고 상이한 각속도를 포함하는 복수의 제2 모션 정보를 상기 제2 모션 후보로 식별하는, 구동 방법.
  14. 제13항에 있어서,
    상기 최종 모션 정보를 식별하는 단계는,
    상기 복수의 제2 모션 정보에 포함된 상이한 각속도 각각에 따른 측면 안전 거리를 식별하고, 상기 식별된 측면 안전 거리 중 최대 거리에 대응되는 각속도를 가지는 모션 정보를 상기 최종 모션 정보로 식별하는, 구동 방법.
  15. 로봇의 프로세서에 의해 실행되는 경우 상기 전자 장치가 동작을 수행하도록 하는 컴퓨터 명령을 저장하는 비일시적 컴퓨터 판독 가능 매체에 있어서,
    상기 동작은,
    상기 로봇의 현재 속도 및 각속도에 기초하여 복수의 제1 모션 정보를 포함하는 기본 모션 후보군을 식별하는 단계;
    상기 복수의 제1 모션 정보 각각에 대응되는 적어도 하나의 제1 주행 성능에 기초하여 상기 복수의 제1 모션 정보 중 일부의 제2 모션 정보를 제2 모션 후보로 식별하는 단계;
    상기 제2 모션 정보 각각에 대응되는 적어도 하나의 제2 주행 성능에 기초하여 최종 모션 정보를 식별하는 단계; 및
    상기 식별된 최종 모션 정보에 따라 상기 로봇이 주행시키는 단계;를 포함하는, 비일시적 컴퓨터 판독 가능 매체.
PCT/KR2023/009263 2022-08-26 2023-06-30 로봇 및 그 구동 방법 WO2024043497A1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR10-2022-0107794 2022-08-26
KR1020220107794A KR20240029402A (ko) 2022-08-26 2022-08-26 로봇 및 그 구동 방법

Publications (1)

Publication Number Publication Date
WO2024043497A1 true WO2024043497A1 (ko) 2024-02-29

Family

ID=90013611

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2023/009263 WO2024043497A1 (ko) 2022-08-26 2023-06-30 로봇 및 그 구동 방법

Country Status (2)

Country Link
KR (1) KR20240029402A (ko)
WO (1) WO2024043497A1 (ko)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20080057928A (ko) * 2006-12-21 2008-06-25 삼성전자주식회사 이동 로봇의 주행 상태 판별 장치 및 방법
KR20190123673A (ko) * 2018-04-06 2019-11-01 엘지전자 주식회사 이동 로봇 및 그 제어방법
KR102049962B1 (ko) * 2019-04-17 2019-11-28 주식회사 트위니 샘플링기반의 최적 트리를 이용한 경로 계획 방법, 이를 구현하기 위한 프로그램이 저장된 기록매체 및 이를 구현하기 위해 매체에 저장된 컴퓨터프로그램
KR20220023280A (ko) * 2020-08-20 2022-03-02 베어 로보틱스, 인크. 로봇의 이동을 제어하기 위한 방법, 시스템 및 비일시성의 컴퓨터 판독 가능 기록 매체
KR20220055167A (ko) * 2020-10-26 2022-05-03 주식회사 케이티 자율주행 로봇, 자율주행 로봇의 충돌 회피 방법 및 월드 맵 관리 방법

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20080057928A (ko) * 2006-12-21 2008-06-25 삼성전자주식회사 이동 로봇의 주행 상태 판별 장치 및 방법
KR20190123673A (ko) * 2018-04-06 2019-11-01 엘지전자 주식회사 이동 로봇 및 그 제어방법
KR102049962B1 (ko) * 2019-04-17 2019-11-28 주식회사 트위니 샘플링기반의 최적 트리를 이용한 경로 계획 방법, 이를 구현하기 위한 프로그램이 저장된 기록매체 및 이를 구현하기 위해 매체에 저장된 컴퓨터프로그램
KR20220023280A (ko) * 2020-08-20 2022-03-02 베어 로보틱스, 인크. 로봇의 이동을 제어하기 위한 방법, 시스템 및 비일시성의 컴퓨터 판독 가능 기록 매체
KR20220055167A (ko) * 2020-10-26 2022-05-03 주식회사 케이티 자율주행 로봇, 자율주행 로봇의 충돌 회피 방법 및 월드 맵 관리 방법

Also Published As

Publication number Publication date
KR20240029402A (ko) 2024-03-05

Similar Documents

Publication Publication Date Title
WO2020060308A1 (ko) 전자 장치 및 전자 장치의 차량 제어 방법, 서버 및 서버의 정밀 지도 데이터 제공 방법
US11127203B2 (en) Leveraging crowdsourced data for localization and mapping within an environment
EP3668768A1 (en) Device and method for assisting with driving of vehicle
CN110095752A (zh) 定位方法、装置、设备和介质
WO2018230845A1 (ko) 비전 정보에 기반한 위치 설정 방법 및 이를 구현하는 로봇
WO2019117459A1 (ko) 컨텐츠를 표시하기 위한 장치 및 방법
WO2020042968A1 (zh) 一种对象信息的获取方法、装置以及存储介质
WO2020017890A1 (en) System and method for 3d association of detected objects
WO2018043821A1 (ko) 기상 정보를 이용한 무인 비행체의 경로 안내 시스템, 그 방법 및 컴퓨터 프로그램이 기록된 기록매체
WO2020138760A1 (ko) 전자 장치 및 그의 제어 방법
WO2024043497A1 (ko) 로봇 및 그 구동 방법
WO2019245320A1 (ko) 이미지 센서와 복수의 지자기 센서를 융합하여 위치 보정하는 이동 로봇 장치 및 제어 방법
CN110489182A (zh) 一种带有自主导航模块的机器人云平台设计方法
WO2013089480A1 (ko) 내비게이션에서의 안내 상황에 따른 지도 표현 장치 및 방법
WO2023038284A1 (ko) 로봇 및 그 제어 방법
WO2023003158A1 (ko) 로봇 및 그 제어 방법
WO2022154242A1 (ko) 로봇 및 그 제어 방법
WO2024048964A1 (ko) 전자 장치 및 그의 제어 방법
WO2020171547A1 (en) Method of managing multi tasks and electronic device therefor
WO2022085844A1 (ko) 로봇 관리 서버, 시스템 및 그 제어 방법
WO2024010217A1 (ko) 특정 서비스를 수행하는 로봇 및 그 제어 방법
WO2023008720A1 (ko) 로봇 및 그 제어 방법
WO2023038218A1 (ko) 로봇 및 그 제어 방법
WO2024085544A1 (ko) 로봇 및 이의 제어 방법
WO2018199445A1 (ko) 전파 맵 생성 장치 및 방법

Legal Events

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

Ref document number: 23857535

Country of ref document: EP

Kind code of ref document: A1