WO2022240256A1 - 자율 주행 로봇을 위한 거리 변환 지도 기반의 반응형 네비게이션 - Google Patents

자율 주행 로봇을 위한 거리 변환 지도 기반의 반응형 네비게이션 Download PDF

Info

Publication number
WO2022240256A1
WO2022240256A1 PCT/KR2022/006930 KR2022006930W WO2022240256A1 WO 2022240256 A1 WO2022240256 A1 WO 2022240256A1 KR 2022006930 W KR2022006930 W KR 2022006930W WO 2022240256 A1 WO2022240256 A1 WO 2022240256A1
Authority
WO
WIPO (PCT)
Prior art keywords
destination
sub
distance
robot
autonomous robot
Prior art date
Application number
PCT/KR2022/006930
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 WO2022240256A1 publication Critical patent/WO2022240256A1/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
    • B25J19/00Accessories fitted to manipulators, e.g. for monitoring, for viewing; Safety devices combined with or specially adapted for use in connection with manipulators
    • B25J19/02Sensing devices
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J19/00Accessories fitted to manipulators, e.g. for monitoring, for viewing; Safety devices combined with or specially adapted for use in connection with manipulators
    • B25J19/02Sensing devices
    • B25J19/021Optical sensing devices
    • B25J19/023Optical sensing devices including video camera means
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J19/00Accessories fitted to manipulators, e.g. for monitoring, for viewing; Safety devices combined with or specially adapted for use in connection with manipulators
    • B25J19/02Sensing devices
    • B25J19/027Electromagnetic sensing devices
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J5/00Manipulators mounted on wheels or on carriages
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J5/00Manipulators mounted on wheels or on carriages
    • B25J5/007Manipulators mounted on wheels or on carriages mounted on wheels
    • 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/1679Programme controls characterised by the tasks executed
    • B25J9/1684Tracking a line or surface by means of sensors
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01CMEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
    • G01C21/00Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
    • G01C21/26Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 specially adapted for navigation in a road network
    • G01C21/34Route searching; Route guidance
    • G01C21/36Input/output arrangements for on-board computers
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01CMEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
    • G01C21/00Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
    • G01C21/26Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 specially adapted for navigation in a road network
    • G01C21/34Route searching; Route guidance
    • G01C21/36Input/output arrangements for on-board computers
    • G01C21/3626Details of the output of route guidance instructions
    • G01C21/3635Guidance using 3D or perspective road maps

Definitions

  • the present disclosure relates to responsive navigation based on a distance conversion map for an autonomous robot and an autonomous robot using the same, and specifically, a response that moves in consideration of dynamic obstacles around in an outdoor/indoor environment by using a depth camera. It is about responsive navigation based on distance conversion map based on the technical principle of type driving.
  • An autonomous robot is a robot device capable of autonomously driving and performing preset tasks, and is mainly used in the loading and transporting process of goods in logistics centers and factories.
  • An algorithm is applied to a conventional sensor-based self-driving robot by generating a fixed path and then following the path. At this time, it is assumed that the surrounding obstacles are fixed. However, in an outdoor environment where a large number of dynamic objects exist, a problem may occur in which the robot collides with a dynamic object while following a fixed path to a target point.
  • an autonomous robot and autonomous driving based on the technical principle of responsive driving that moves in consideration of surrounding dynamic obstacles in an outdoor environment by using a depth camera It provides a way for the robot to drive to its destination.
  • a method for an autonomous robot to drive to a destination includes receiving at least one depth image from a depth camera, including the at least one depth image. Generating a distance transform map based on -The distance transform map indicates the distance to the nearest collision point for each point in the surrounding area of the autonomous robot - Sub destination based on the distance transform map determining, and moving the autonomous robot to a sub-destination.
  • the generating of the distance conversion map may include generating a collision point map indicating a position of an obstacle in an area around the self-driving robot as a collision point based on at least one depth image; and calculating the distance to the nearest collision point for each point in the surrounding area of the autonomous robot based on the collision point map.
  • the determining of the sub-destination based on the distance conversion map may include inputting the current location of the autonomous robot to the distance conversion map and determining the shortest distance to the closest collision point with the autonomous robot. , setting a searching circle centered on the current location of the self-driving robot and having the shortest distance as a radius, and determining one of the points on the edge of the searching circle as a sub-destination.
  • the step of determining the sub-destination based on the distance conversion map may include an open space where the self-driving robot can move between points on the edge of the searching circle and a collision point where the self-driving robot passes.
  • a step of classifying the space into one of a gap space in which space can be moved and a closed space in which autonomous robots cannot move is further included.
  • the determining of the sub-destination based on the distance transformation map may include registering a plurality of sub-destination candidates based on an open space and an interval space, and selecting one of the plurality of sub-destination candidates as a sub-destination. It further includes the step of determining.
  • registering a plurality of sub-destination candidates based on an open space and an interval space includes dividing the open space into a plurality of arcs at a predetermined angle, and one sub-destination from each of the plurality of arcs. It includes the step of extracting candidates.
  • the step of registering a plurality of sub-destination candidates based on the open space and the gap space may include a distance value to the nearest collision point calculated by a distance conversion map among a plurality of points in the gap space having the greatest value.
  • a step of extracting the point as a sub-destination candidate is further included.
  • the sub-destination may have the shortest distance from the destination among a plurality of sub-destination candidates.
  • the distance to the nearest collision point for each point calculated by the distance transformation map may be a Euclidean distance.
  • the self-driving robot may be moved to the destination by repeating the steps of determining the sub-destination and moving the autonomous robot to the sub-destination.
  • a computer program stored in a computer readable recording medium may be provided to execute a driving method of an autonomous robot on a computer.
  • an autonomous driving robot includes a power supply unit, a memory, a driving unit, a communication module, a depth camera, and at least one connected to the memory and configured to execute at least one computer-readable program included in the memory.
  • a processor wherein the at least one program receives at least one depth image from a depth camera and generates a distance conversion map based on the at least one depth image, wherein the distance conversion map is configured to each of an area around the autonomous robot; Indicates the distance to the closest collision point to a point - includes instructions for determining a sub-destination based on a distance conversion map and moving the autonomous robot to the sub-destination.
  • generating a distance conversion map includes generating a collision point map indicating a position of an obstacle in an area around the self-driving robot as a collision point based on at least one depth image, and generating a collision point map based on the at least one depth image. and calculating the distance to the nearest collision point for each point in the surrounding area of the autonomous robot based on the map.
  • determining the sub-destination based on the distance conversion map includes inputting the current location of the autonomous robot to the distance conversion map and determining the shortest distance to the closest collision point with the autonomous robot; This includes setting a searching circle with the current location of the self-driving robot as a center and having the shortest distance as a radius and determining one of points on the edge of the searching circle as a sub-destination.
  • determining the sub-destination based on the distance conversion map is an open space where the self-driving robot can move between points on the edge of the searching circle and a collision point where the self-driving robot can pass. It further includes classifying into one of a gap space and a closed space in which an autonomous robot cannot move.
  • determining the sub-destination based on the distance conversion map includes registering a plurality of sub-destination candidates based on open space and interval space and determining one of the plurality of sub-destination candidates as the sub-destination. contains more
  • registering a plurality of sub-destination candidates based on an open space and an interval space includes dividing the open space into a plurality of arcs at a predetermined angle and extracting one sub-destination candidate from each of the plurality of arcs. includes doing
  • registering a plurality of sub-destination candidates based on an open space and an interval space includes a point having the largest distance value to the nearest collision point calculated by a distance transformation map among a plurality of points in the interval space. It further includes extracting as a sub-destination candidate.
  • the sub-destination may have the shortest distance from the destination among a plurality of sub-destination candidates.
  • the self-driving robot can determine the distance to surrounding obstacles, the possibility of collision at the current location of the self-driving robot can be considered.
  • the autonomous robot since the autonomous robot uses a minimum number of sensors, an economic effect of lowering the manufacturing cost of the autonomous robot can be obtained.
  • economic effects may lead to an effect of lowering robot rental costs, operating costs, and customer payment costs in performing outdoor delivery services using autonomous robots.
  • a closed space in which an autonomous robot cannot move can be primarily removed, thereby reducing an amount of calculation for determining a sub-destination described later.
  • space classification and space candidate registration are performed only for points (coordinates) on a searching circle instead of space classification and space candidate registration for all spaces in a map, thereby significantly reducing the amount of computation.
  • an autonomous robot may recognize information about a space to be moved in the surrounding environment and safely reach a destination without colliding with an obstacle.
  • FIG 1 illustrates an example in which an autonomous robot moves in an outdoor space according to an embodiment of the present disclosure.
  • FIG. 2 is a schematic diagram showing a configuration in which an autonomous robot according to an embodiment of the present disclosure is communicatively connected to an information processing system.
  • FIG 3 shows an example of a method of designing a cost map according to an embodiment of the present disclosure.
  • FIG. 4 shows an example of a method for classifying a space according to an embodiment of the present disclosure.
  • FIG. 5 shows an example of a method for determining a sub-destination according to an embodiment of the present disclosure.
  • FIG. 6 shows an example of a collision point map according to an embodiment of the present disclosure.
  • FIG. 7 illustrates an example of performing spatial classification on a distance transformation map according to an embodiment of the present disclosure.
  • FIG. 8 illustrates an example of determining a sub-destination based on a distance transformation map.
  • FIG. 10 shows an example of a driving method of an autonomous robot according to an embodiment of the present disclosure.
  • a modulee' or 'unit' used in the specification means a software or hardware component, and the 'module' or 'unit' performs certain roles.
  • 'module' or 'unit' is not meant to be limited to software or hardware.
  • a 'module' or 'unit' may be configured to reside in an addressable storage medium and may be configured to reproduce one or more processors.
  • a 'module' or 'unit' includes components such as software components, object-oriented software components, class components, and task components, processes, functions, and attributes. , procedures, subroutines, segments of program code, drivers, firmware, microcode, circuitry, data, databases, data structures, tables, arrays, or variables.
  • a 'module' or 'unit' may be implemented with a processor and a memory.
  • 'Processor' should be interpreted broadly to include general-purpose processors, central processing units (CPUs), microprocessors, digital signal processors (DSPs), controllers, microcontrollers, state machines, and the like.
  • 'processor' may refer to an application specific integrated circuit (ASIC), programmable logic device (PLD), field programmable gate array (FPGA), or the like.
  • ASIC application specific integrated circuit
  • PLD programmable logic device
  • FPGA field programmable gate array
  • 'Processor' refers to a combination of processing devices, such as, for example, a combination of a DSP and a microprocessor, a combination of a plurality of microprocessors, a combination of one or more microprocessors in conjunction with a DSP core, or a combination of any other such configurations. You may. Also, 'memory' should be interpreted broadly to include any electronic component capable of storing electronic information.
  • 'Memory' includes random access memory (RAM), read-only memory (ROM), non-volatile random access memory (NVRAM), programmable read-only memory (PROM), erasable-programmable read-only memory (EPROM), It may also refer to various types of processor-readable media, such as electrically erasable PROM (EEPROM), flash memory, magnetic or optical data storage, registers, and the like.
  • RAM random access memory
  • ROM read-only memory
  • NVRAM non-volatile random access memory
  • PROM programmable read-only memory
  • EPROM erasable-programmable read-only memory
  • a memory is said to be in electronic communication with the processor if the processor can read information from and/or write information to the memory.
  • Memory integrated with the processor is in electronic communication with the processor.
  • FIG. 1 shows an example in which an autonomous robot 110 moves in an outdoor space according to an embodiment of the present disclosure.
  • the self-driving robot 110 can travel on its own in an outdoor space.
  • the outdoor space may include a plurality of obstacles 120 to 140 .
  • the plurality of obstacles 120 to 140 may include moving obstacles such as the person 140 .
  • the autonomous robot 110 may move to a destination without colliding with a plurality of obstacles 120 to 140 in an outdoor space.
  • the autonomous robot 110 may receive location information of a destination from a user, manager, central control system, or the like.
  • the autonomous robot 110 may receive location information of a destination from an information processing system (eg, a central control system) through a communication module.
  • the autonomous robot 110 may receive location information of a destination through an input/output interface.
  • the destination may mean a delivery destination of courier service, mail, food, and the like.
  • the autonomous robot 110 may create and update a collision point map using a depth image of an outdoor space. Specifically, a collision point map for moving to a destination may be generated using a depth image of a space where the autonomous robot 110 is located at 360 degrees (or an arbitrary angle). Thereafter, the autonomous robot 110 may process the collision point map into a 2D distance conversion map indicating the distance to the nearest collision point on the map. For example, a value of 0 may be obtained by substituting the coordinates of a point where a collision point exists in a collision point map into a distance transformation map. With this configuration, since the autonomous robot 110 can determine the distance to the surrounding obstacles 120 to 140, the possibility of collision at the current location of the autonomous robot 110 can be considered.
  • the autonomous driving robot 110 may determine an autonomous driving path with a low possibility of collision with a collision point based on the generated map. Specifically, the process of determining a sub-destination between the current location and the destination and the process of moving to the determined sub-destination may be repeated to move to the destination.
  • the self-driving robot 110 can move to its destination according to an optimal path in consideration of the possibility of collision with the surrounding obstacles 120 to 140 in a dynamic outdoor environment.
  • the autonomous robot 110 is illustrated as moving on a flat surface in an outdoor environment, but is not limited thereto.
  • the self-driving robot 110 may equally operate even in a static indoor environment.
  • this configuration can be extended to the flight of a high degree of freedom object such as a drone if a 3D map is given.
  • FIG. 2 is a schematic diagram illustrating a configuration in which an autonomous robot 110 according to an embodiment of the present disclosure is communicatively connected to an information processing system 290 .
  • the self-driving robot 110 includes a power supply unit 210, a memory 220, a drive unit 230, a processor 240, an input/output interface 250, a communication module 260, and an image sensor 270.
  • a power supply unit 210 can include a power supply unit 210, a memory 220, a drive unit 230, a processor 240, an input/output interface 250, a communication module 260, and an image sensor 270.
  • FIG. 2 one autonomous robot 110 is shown as being connected to the information processing system 290, but is not limited thereto.
  • a plurality of autonomous robots may be connected to the information processing system 290 .
  • the power supply unit 210 may supply power required for operation and control of the autonomous robot 110 .
  • the power supply unit 210 may include a rechargeable secondary battery so that the autonomous robot 110 can be operated wirelessly.
  • the power supply unit 210 may include a lithium ion battery.
  • the memory 220 may store data related to the autonomous robot 110 .
  • the memory 220 may store data associated with unique identification information of the autonomous robot 110 .
  • the memory 220 stores data generated by the processor (eg, collision point map, distance conversion map, etc.), data received through the communication module 260 (eg, destination information), and the like. can be saved
  • the driving unit 230 may drive the autonomous robot 110 by using power supplied from the power supply unit 210 as power.
  • the driving unit 230 may include a motor control unit and a driving motor.
  • the motor control unit of the autonomous robot 110 may receive an operation and control command signal from the processor 240 and control the driving motor according to the corresponding command.
  • the processor 240 may control overall operations of the autonomous robot 110 .
  • the processor 240 may be connected to the power supply unit 210, the memory 220, the driving unit 230, the input/output interface 250, the communication module 260, and the image sensor 270.
  • the processor 240 detects the current location of the self-driving robot 200, driving path information, surrounding condition information, obstacle information, etc. of the self-driving robot 200 based on the data received from the image sensor 270, and the self-driving robot 110 travels. /action can be controlled.
  • a command signal for driving/moving the autonomous robot 110 generated by the processor 240 may be transmitted to the driving unit 230 .
  • the input/output interface 250 may be configured to receive information and/or data from a user or to output information and/or data.
  • the input/output interface 250 may include at least one display for inputting/outputting information and/or data.
  • the input/output interface 250 may be configured as a touch screen to receive a user input from a user.
  • the communication module 260 enables the autonomous robot 110 to be connected to the information processing system 290 through the network 280 .
  • the communication module 260 may be configured such that the autonomous robot 110 is connected to the information processing system 290 through the network 280 and transmits/receives information and/or data.
  • it may be configured to receive data about a destination of autonomous driving from the information processing system 290 .
  • it may be specifically configured to transmit information about the current location of the autonomous robot 110 and/or information for identifying the autonomous robot 110 to the information processing system 290 .
  • the image sensor 270 may include at least one depth camera.
  • at least one depth camera may be disposed to capture depth images of the front, rear, and side surfaces of the autonomous robot 110 .
  • image sensor 270 may be configured as a stereo camera for generating depth images.
  • the depth image captured by the image sensor 270 is transmitted to the processor 240 and used as information for the processor 240 to detect an obstacle or to plan a driving path of the autonomous robot 110.
  • such an economic effect may lead to an effect of lowering robot rental costs, operating costs, and customer payment costs in performing an outdoor delivery service using the self-driving robot 110 .
  • the autonomous robot 110 may communicate with the information processing system 290 through the network 280 .
  • the network 280 may be configured to enable communication between the autonomous robot 110 and the information processing system 290 .
  • the network 280 may be configured as, for example, a mobile communication network, a wireless network such as a wireless LAN (WLAN), Wi-Fi, Bluetooth, and ZigBee, or a combination thereof, depending on the installation environment.
  • the communication method is not limited, and the communication method utilizing a communication network that the network 280 may include (eg, a mobile communication network, wireless Internet, broadcasting network, satellite network, etc.) as well as short-range wireless communication between the autonomous robots 110 may also be included.
  • Method 300 may be performed by at least one processor (eg, 240 of FIG. 2 ) of an autonomous robot (eg, 110 of FIG. 2 ). As shown, the method 300 may begin with receiving at least one depth image (S310).
  • processor eg, 240 of FIG. 2
  • autonomous robot eg, 110 of FIG. 2
  • the method 300 may begin with receiving at least one depth image (S310).
  • the processor may generate a collision point map based on the received at least one depth image (S320).
  • the collision point map may indicate locations of obstacles in an area around the autonomous robot as collision points.
  • the processor may generate a distance conversion map (2D distance conversion map) using the collision point map (S330). For example, the processor may generate a distance conversion map by calculating a distance (or a distance conversion value) to the nearest collision point for each point in the surrounding area of the autonomous robot based on the collision point map. In this case, the distance to the nearest collision point for each point (coordinates) on the distance conversion map can be indicated. Therefore, if a specific coordinate value is substituted on the distance conversion map, the distance (eg, Euclidean distance) to the nearest collision point can be known. For example, if the coordinates of the point where the collision point exists in the collision point map are substituted into the distance conversion map, a value of 0 can be obtained. Since the distance to the nearest obstacle can be known using such a distance conversion map, the possibility of collision at the current location of the autonomous robot can be considered.
  • a distance conversion map 2D distance conversion map
  • 'space' may include, but is not limited to, an outdoor space in which the self-driving robot described above in FIG. 1 (eg, 110 in FIG. 1 ) moves.
  • 'space' may also include an indoor space where an autonomous robot is located.
  • Method 400 may be performed by at least one processor (eg, 240 of FIG. 2 ) of an autonomous robot (eg, 110 of FIG. 2 ). As shown, the method 400 may begin with setting a searching circle (S410).
  • the searching circle is set to perform round searching for a path that can move to a destination without colliding with an obstacle.
  • a searching circle may refer to a circle having the current location of the autonomous robot as a center and having the shortest distance from the current location of the autonomous robot to the nearest collision point as a radius.
  • the processor may perform spatial classification on all coordinates (or points) on the edge of the searching circle (S420). For example, an open space where an autonomous robot can move, a gap space where an autonomous robot can pass between obstacles (or collision points), and a closed space where an autonomous robot cannot move. (closed space). After classifying the spaces, the processor may register coordinates classified as open spaces and gap spaces among coordinates (or points) on the edge of the searching circle as space candidates (S430).
  • the closed space in which the autonomous robot cannot move is primarily removed, and the amount of calculation for determining the sub-destination described later can be reduced.
  • the amount of computation can be greatly reduced by proceeding with spatial classification and spatial candidate registration only for points (coordinates) on the searching circle instead of performing spatial classification and spatial candidate registration for all spaces in the map.
  • Method 500 shows an example of a method 500 for determining sub-destinations according to an embodiment of the present disclosure.
  • the 'sub-destination' may refer to a point through which an autonomous robot passes to reach a destination without colliding with an obstacle. While the autonomous robot reaches the destination, it may pass through a plurality of sub-destinations to avoid static/dynamic obstacles.
  • Method 500 may be performed by at least one processor (eg, 240 of FIG. 2 ) of the autonomous robot. As shown, the method 500 may begin with receiving a spatial candidate (S510).
  • space candidates may include an open space and/or an interval space on the searching circle described above with reference to FIG. 4 .
  • the processor may determine whether the corresponding spatial candidate is an interval space (S520). When it is determined that the space candidate is an interval space, the processor may extract a point having the largest distance transform value from the interval space (S530) and register the corresponding point as a sub-destination candidate (S550). That is, the processor may extract a point having a locally highest distance conversion value (local maxima) (a point having the furthest distance from the collision point) in the interval space and register it as a sub-destination candidate.
  • local maxima a point having the furthest distance from the collision point
  • the processor may perform angle-based slicing (S540) and register the extracted points as sub-destination candidates (S550).
  • the open space is sliced into a plurality of spaces according to a predetermined angle (eg, 10 degrees, 15 degrees, 30 degrees, etc.) around the current position of the autonomous robot, and one for each of the plurality of spaces.
  • a predetermined angle eg, 10 degrees, 15 degrees, 30 degrees, etc.
  • a point of can be extracted and registered as a sub-destination candidate.
  • the processor may determine a sub-destination from one of the extracted destination candidates (S560). According to an embodiment, the processor may calculate a distance between each registered sub-destination candidate and the destination. Then, a sub-destination candidate closest to the destination may be determined as a sub-destination. The processor may control the self-driving robot to follow the determined sub-destination.
  • FIG. 6 shows an example of an impact point map 600 according to an embodiment of the present disclosure.
  • the processor eg, 240 of FIG. 2
  • the processor may receive at least one depth image from a depth camera.
  • an impact point map 600 may be generated based on the received depth image.
  • the collision point map 600 the collision point 630 may be displayed in black, and points other than the collision point 630 may be displayed in white.
  • the collision point 630 may represent an obstacle.
  • the current location 610 and destination 620 of the autonomous robot eg, 110 in FIG. 1
  • the processor (eg, 240 in FIG. 2 ) converts each point (coordinate) of the distance conversion map into an open space where the autonomous robot can move and an interval where the autonomous robot can pass between collision points. It can be classified as one of spaces and closed spaces where autonomous robots cannot move.
  • the space around the autonomous robot 710 may include a closed space 730, an interval space 740, and an open space 750, and the autonomous robot 710 based on this information
  • a sub-destination 760 may be determined as a waypoint for moving to the destination 720 .
  • the robot is in the form of a circle (or sphere) having a size (configuration) of a certain radius (eg, 50 cm, 100 cm, 150 cm, etc.), and an object of that size can move freely
  • the space may be classified as an open space 730 .
  • a space in which an object of a corresponding size can pass between obstacles may be classified as an interval space 740, and a space in which an object of a corresponding size cannot move may be classified as a closed space.
  • an area within a certain radius from the collision point may be classified as a closed space.
  • the self-driving robot 710 can recognize information about a space to be moved in the surrounding environment, and can reach a destination safely without colliding with static or dynamic obstacles.
  • the processor eg, 240 in FIG. 2
  • the processor inputs the current location (eg, coordinate values) of the autonomous driving robot 810 to the distance conversion map, and the autonomous driving robot 810 and The shortest distance (d) to the nearest collision point (c) can be determined.
  • the processor may set a searching circle 830 having the current location of the autonomous robot 810 as a center and having the shortest distance d as a radius.
  • one of the points on the searching circle 830 may be determined as a sub-goal (SG).
  • SG sub-goal
  • a plurality of sub-destination candidates may be extracted from among the points of the searching circle 830, and one point having the closest distance to the destination 820 may be determined as the sub-destination SG.
  • the self-driving robot 810 may set the sub-destination SG as a waypoint and move to the corresponding location.
  • the processor may perform spatial classification on all points (coordinates) on the edge 920 of the searching circle.
  • the edge 920 of the searching circle may include an arc 930 classified as an open space, arcs 940 and 960 classified as a closed space, and an arc 950 classified as an interval space.
  • the processor may register points on an arc 930 classified as an open space and an arc 950 classified as an interval space as spatial candidates. That is, points on the arcs 940 and 960 classified as closed spaces may be excluded from the space candidates.
  • the processor may extract a point p9 having the largest distance conversion value from the interval space and register it as a sub-destination candidate. . That is, the processor may extract a point having the highest distance conversion value (local maxima) (a point having the furthest distance from the nearest collision point) in the interval space and register it as a sub-destination candidate.
  • the processor converts the arc 930 to a predetermined angle ⁇ ; 30 degrees, etc.) can be divided into a plurality of arcs. Then, the processor may extract one sub-destination candidate p1 to p8 from each of the plurality of divided circular arcs.
  • the sub-destination candidate may be a point in the middle among points on each divided circular arc, a point closest to the destination 970, and the like.
  • the processor may determine a point p7 having the closest distance to the destination 970 among the extracted sub-destination candidates p1 to p9 as the sub-destination.
  • Method 1000 shows an example of a driving method 1000 of an autonomous robot according to an embodiment of the present disclosure.
  • Method 1000 may be performed by at least one processor (eg, 240 of FIG. 2 ). As shown, the method 1000 may begin with receiving at least one depth image from at least a depth camera (S1010).
  • S1010 depth camera
  • the processor may generate a distance transform map based on at least one depth image (S1020).
  • the distance conversion map may indicate the distance to the nearest collision point for each point in the area around the autonomous robot.
  • the processor generates a collision map representing the position of an obstacle in an area around the self-driving robot as a collision point based on the at least one depth image, and based on the collision point map, the surrounding area of the autonomous robot
  • a distance conversion map can be created.
  • the distance to the nearest collision point for each point calculated by the distance transformation map may be a Euclidean distance.
  • the processor may determine a sub-destination based on the distance conversion map (S1030). Specifically, the processor may determine the shortest distance to the nearest collision point with the autonomous robot by inputting the current location of the autonomous robot in the distance conversion map. Then, the processor may set a searching circle with the current location of the self-driving robot as the center and the shortest distance as the radius. After that, the processor may determine one of the points on the edge of the searching circle as a sub-destination. For example, the processor sets points on the edge of the searching circle as an open space where the autonomous robot can move, a gap space where the autonomous robot can pass between collision points, and a space where the autonomous robot can move. It can be classified as one of the impossible closed spaces.
  • the processor may divide the open space into a plurality of arcs at a predetermined angle, and extract one sub-destination candidate from each of the plurality of arcs. If the classified space is an interval space, the processor may extract, as a sub-destination candidate, a point having the largest distance value to the closest collision point calculated by the distance transformation map among a plurality of points in the interval space. In this way, the processor may register a plurality of sub-destination candidates based on the open space and the interval space. Then, the processor may determine one of a plurality of sub-destination candidates as a sub-destination. In this case, the sub-destination may be a point having the shortest distance from the destination among a plurality of sub-destination candidates. Then, the processor may move the robot to the sub-destination (S1040).
  • the self-driving robot repeats steps of generating a distance conversion map (S1020), determining a sub-destination based on the distance conversion map (S1030), and moving the autonomous robot to the sub-destination (S1040). can be moved to the destination.
  • the autonomous robot may perform S1010 to S1040 at predetermined time intervals.
  • the autonomous robot may perform S1010 to S1040 when reaching the sub-destination.
  • the autonomous robot may periodically perform steps S1010 to S1020 and, when a new obstacle is detected, perform steps S1030 to S1040.
  • the processing units used to perform the techniques may include one or more ASICs, DSPs, digital signal processing devices (DSPDs), programmable logic devices (PLDs) ), field programmable gate arrays (FPGAs), processors, controllers, microcontrollers, microprocessors, electronic devices, and other electronic units designed to perform the functions described in this disclosure. , a computer, or a combination thereof.
  • a general purpose processor may be a microprocessor, but in the alternative, the processor may be any conventional processor, controller, microcontroller, or state machine.
  • a processor may also be implemented as a combination of computing devices, eg, a combination of a DSP and a microprocessor, a plurality of microprocessors, one or more microprocessors in conjunction with a DSP core, or any other configuration.
  • the techniques include random access memory (RAM), read-only memory (ROM), non-volatile random access memory (NVRAM), PROM (on a computer readable medium, such as programmable read-only memory (EPROM), erasable programmable read-only memory (EPROM), electrically erasable PROM (EEPROM), flash memory, compact disc (CD), magnetic or optical data storage device, or the like. It can also be implemented with stored instructions. Instructions may be executable by one or more processors and may cause the processor(s) to perform certain aspects of the functionality described in this disclosure.

Abstract

본 개시의 일 실시예에 따르면, 적어도 하나의 프로세서에 의해 수행되는 자율 주행 로봇이 목적지까지 주행하는 방법은, 깊이 카메라(depth camera)로부터 적어도 하나의 깊이 이미지를 수신하는 단계, 적어도 하나의 깊이 이미지에 기초하여 거리 변환 지도(distance transform map)를 생성하는 단계, 거리 변환 지도에 기초하여 서브 목적지를 결정하는 단계, 및 자율 주행 로봇을 서브 목적지로 이동시키는 단계를 포함한다.

Description

자율 주행 로봇을 위한 거리 변환 지도 기반의 반응형 네비게이션
본 개시는 자율 주행 로봇을 위한 거리 변환 지도 기반의 반응형 네비게이션 및 이를 사용하는 자율 주행 로봇에 관한 것으로, 구체적으로 깊이 카메라를 이용함으로써 실외/실내 환경에서 주변의 동적인 장애물을 고려하여 이동하는 반응형 주행의 기술적 원리를 기반으로 하는 거리 변환 지도 기반의 반응형 네비게이션에 관한 것이다.
최근 물류 관리, 배송 분야에서 이익을 극대화하고 효율성을 증가시키기 위해 다양한 물류 시스템을 도입하고 있다. 자율 주행 로봇은 자율 주행하며 미리 설정된 작업을 수행할 수 있는 로봇 장치로, 물류 센터, 공장 등에서 물품의 적재 및 이송과정에 주로 활용되고 있다.
종래의 센서 기반의 자율 주행 로봇에는 고정된 경로를 생성한 후, 해당 경로를 추종하는 방식으로 알고리즘이 적용되었다. 이 때, 주변의 장애물은 고정되어 있다는 가정이 전제되어 있다. 그러나 동적인 물체가 다수 존재하는 실외 환경에서는 목표 지점까지 고정된 경로를 추종하는 도중에 로봇이 동적 물체에 충돌하는 문제가 발생할 수 있다.
이는 실외 환경에서의 로봇의 주행 신뢰성과 안전성에 직결되는 문제로 대두되고 있다. 이러한 문제를 해결하기 위해 라이다(LiDAR)와 같은 고가의 센서류가 이용되고 있으나, 이는 단순히 로봇의 하드웨어적 비용을 높일 뿐만 아니라 많은 연산을 필요로 한다는 점에서 소프트웨어적 비용도 상당히 높다.
상기와 같은 문제를 해결하기 위해, 본 개시에서는 깊이 카메라(depth camera)를 이용함으로써 실외 환경에서 주변의 동적인 장애물을 고려하여 이동하는 반응형 주행의 기술적 원리를 기반으로 하는 자율 주행 로봇 및 자율 주행 로봇이 목적지까지 주행하는 방법을 제공한다.
본 개시의 일 실시예에 따르면, 적어도 하나의 프로세서에 의해 수행되는 자율 주행 로봇이 목적지까지 주행하는 방법은, 깊이 카메라(depth camera)로부터 적어도 하나의 깊이 이미지를 수신하는 단계, 적어도 하나의 깊이 이미지에 기초하여 거리 변환 지도(distance transform map)를 생성하는 단계 - 거리 변환 지도는 자율 주행 로봇의 주위 영역의 각 지점에 대해 가장 가까운 충돌점까지의 거리를 나타냄 -, 거리 변환 지도에 기초하여 서브 목적지를 결정하는 단계, 및 자율 주행 로봇을 서브 목적지로 이동시키는 단계를 포함한다.
일 실시예에 따르면, 거리 변환 지도를 생성하는 단계는, 적어도 하나의 깊이 이미지에 기초하여 자율 주행 로봇의 주위 영역 내의 장애물의 위치를 충돌점으로 나타내는 충돌점 지도(collision map)를 생성하는 단계, 및 충돌점 지도에 기초하여 자율 주행 로봇의 주위 영역 내의 각 지점에 대해 가장 가까운 충돌점까지의 거리를 산출하는 단계를 포함한다.
일 실시예에 따르면, 거리 변환 지도에 기초하여 서브 목적지를 결정하는 단계는, 거리 변환 지도에 자율 주행 로봇의 현재 위치를 입력하여, 자율 주행 로봇과 가장 가까운 충돌점까지의 최단 거리를 결정하는 단계, 자율 주행 로봇의 현재 위치를 중심으로 하고, 최단 거리를 반지름으로 하는 써칭 서클(searching circle)을 설정하는 단계, 및 써칭 서클의 테두리 상의 지점들 중 하나를 서브 목적지로 결정하는 단계를 포함한다.
일 실시예에 따르면, 거리 변환 지도에 기초하여 서브 목적지를 결정하는 단계는, 써칭 서클의 테두리 상의 지점들을 자율 주행 로봇이 이동 가능한 열린 공간(open space), 자율 주행 로봇이 충돌점 사이를 통과할 수 있는 간격 공간(gap space) 및 자율 주행 로봇이 이동할 수 없는 닫힌 공간(closed space) 중 하나로 분류하는 단계를 더 포함한다.
일 실시예에 따르면, 거리 변환 지도에 기초하여 서브 목적지를 결정하는 단계는, 열린 공간 및 간격 공간에 기초하여 복수의 서브 목적지 후보를 등록하는 단계, 및 복수의 서브 목적지 후보 중 하나를 서브 목적지로 결정하는 단계를 더 포함한다.
일 실시예에 따르면, 열린 공간 및 간격 공간에 기초하여 복수의 서브 목적지 후보를 등록하는 단계는, 열린 공간을 미리 정해진 각도로 복수의 원호로 분할하는 단계, 및 복수의 원호 각각으로부터 하나의 서브 목적지 후보를 추출하는 단계를 포함한다.
일 실시예에 따르면, 열린 공간 및 간격 공간에 기초하여 복수의 서브 목적지 후보를 등록하는 단계는, 간격 공간 내의 복수의 지점 중 거리 변환 지도에 의해 산출되는 가장 가까운 충돌점까지의 거리 값이 가장 큰 지점을 서브 목적지 후보로 추출하는 단계를 더 포함한다.
일 실시예에 따르면, 서브 목적지는 복수의 서브 목적지 후보 중 목적지와의 거리가 가장 짧을 수 있다.
일 실시예에 따르면, 거리 변환 지도에 의해 산출되는 각 지점에 대한 가장 가까운 충돌점까지의 거리는 유클리디안(Euclidean) 거리일 수 있다.
일 실시예에 따르면, 서브 목적지를 결정하는 단계와 자율 주행 로봇을 서브 목적지로 이동시키는 단계를 반복함으로써 자율 주행 로봇을 목적지까지 이동시킬 수 있다.
본 개시의 일 실시예에 따르면, 자율 주행 로봇의 주행 방법을 컴퓨터에서 실행하기 위해 컴퓨터 판독 가능한 기록 매체에 저장된 컴퓨터 프로그램이 제공될 수 있다.
본 개시의 일 실시예에 따르면, 자율 주행 로봇으로서, 전원부, 메모리, 구동부, 통신 모듈, 깊이 카메라, 및 메모리와 연결되고, 메모리에 포함된 컴퓨터 판독 가능한 적어도 하나의 프로그램을 실행하도록 구성된 적어도 하나의 프로세서를 포함하고, 적어도 하나의 프로그램은, 깊이 카메라로부터 적어도 하나의 깊이 이미지를 수신하고, 적어도 하나의 깊이 이미지에 기초하여 거리 변환 지도를 생성하고 - 거리 변환 지도는 자율 주행 로봇의 주위 영역의 각 지점에 대해 가장 가까운 충돌점까지의 거리를 나타냄 -, 거리 변환 지도에 기초하여 서브 목적지를 결정하고, 자율 주행 로봇을 서브 목적지로 이동시키기 위한 명령어들을 포함한다.
일 실시예에 따르면, 거리 변환 지도를 생성하는 것은, 적어도 하나의 깊이 이미지에 기초하여 자율 주행 로봇의 주위 영역 내의 장애물의 위치를 충돌점으로 나타내는 충돌점 지도(collision map)를 생성하는 것과 충돌점 지도에 기초하여 자율 주행 로봇의 주위 영역 내의 각 지점에 대해 가장 가까운 충돌점까지의 거리를 산출하는 것을 포함한다.
일 실시예에 따르면, 거리 변환 지도에 기초하여 서브 목적지를 결정하는 것은, 거리 변환 지도에 자율 주행 로봇의 현재 위치를 입력하여, 자율 주행 로봇과 가장 가까운 충돌점까지의 최단 거리를 결정하는 것, 자율 주행 로봇의 현재 위치를 중심으로 하고, 최단 거리를 반지름으로 하는 써칭 서클(searching circle)을 설정하는 것과 써칭 서클의 테두리 상의 지점들 중 하나를 서브 목적지로 결정하는 것을 포함한다.
일 실시예에 따르면, 거리 변환 지도에 기초하여 서브 목적지를 결정하는 것은, 써칭 서클의 테두리 상의 지점들을 자율 주행 로봇이 이동 가능한 열린 공간(open space), 자율 주행 로봇이 충돌점 사이를 통과할 수 있는 간격 공간(gap space) 및 자율 주행 로봇이 이동할 수 없는 닫힌 공간(closed space) 중 하나로 분류하는 것을 더 포함한다.
일 실시예에 따르면, 거리 변환 지도에 기초하여 서브 목적지를 결정하는 것은, 열린 공간 및 간격 공간에 기초하여 복수의 서브 목적지 후보를 등록하는 것과 복수의 서브 목적지 후보 중 하나를 서브 목적지로 결정하는 것을 더 포함한다.
일 실시예에 따르면, 열린 공간 및 간격 공간에 기초하여 복수의 서브 목적지 후보를 등록하는 것은, 열린 공간을 미리 정해진 각도로 복수의 원호로 분할하는 것과 복수의 원호 각각으로부터 하나의 서브 목적지 후보를 추출하는 것을 포함한다.
일 실시예에 따르면, 열린 공간 및 간격 공간에 기초하여 복수의 서브 목적지 후보를 등록하는 것은, 간격 공간 내의 복수의 지점 중 거리 변환 지도에 의해 산출되는 가장 가까운 충돌점까지의 거리 값이 가장 큰 지점을 서브 목적지 후보로 추출하는 것을 더 포함한다.
일 실시예에 따르면, 서브 목적지는 복수의 서브 목적지 후보 중 목적지와의 거리가 가장 짧을 수 있다.
일 실시예에 따르면, 서브 목적지를 결정하는 것과 자율 주행 로봇을 서브 목적지로 이동시키는 것을 반복함으로써 목적지까지 이동할 수 있다.
본 개시의 일 실시예에 따르면, 자율 주행 로봇은 주변 장애물까지의 거리를 파악할 수 있으므로, 자율 주행 로봇의 현재 위치에서의 충돌 가능성을 고려할 수 있다.
본 개시의 일 실시예에 따르면, 자율 주행 로봇은 최소한의 센서를 이용하므로, 자율 주행 로봇의 제작 비용이 낮아지는 경제적 효과를 얻을 수 있다. 또한, 이러한 경제적 효과는 자율 주행 로봇을 이용한 실외 배송 서비스를 진행함에 있어서, 로봇의 대여 비용, 운용 비용 및 고객의 지불 비용 등이 낮아지는 효과로 이어질 수 있다.
본 개시의 일 실시예에 따르면, 자율 주행 로봇이 이동할 수 없는 닫힌 공간은 일차적으로 제거되어, 후술되는 서브 목적지를 결정하기 위한 연산량을 감소시킬 수 있다.
본 개시의 일 실시예에 따르면, 지도 내의 모든 공간에 대해 공간 분류 및 공간 후보 등록을 진행하는 것이 아닌, 써칭 서클 상의 지점(좌표)에 대해서만 공간 분류 및 공간 후보 등록을 진행함으로써 연산량을 대폭 감소시킬 수 있다.
본 개시의 일 실시예에 따르면, 자율 주행 로봇은 주변 환경에서 이동해야 하는 공간에 대한 정보를 인식할 수 있고, 장애물에 충돌하지 않으면서 안전하게 목적지까지 도달할 수 있다.
도 1은 본 개시의 일 실시예에 따라 실외 공간에서 자율 주행 로봇이 이동하는 예시를 나타낸다.
도 2는 본 개시의 일 실시예에 따른 자율 주행 로봇이 정보 처리 시스템과 통신 가능하도록 연결된 구성을 나타내는 개요도이다.
도 3은 본 개시의 일 실시예에 따라 코스트 맵(cost map)을 설계하는 방법의 예시를 나타낸다.
도 4는 본 개시의 일 실시예에 따라 공간을 분류하는 방법의 예시를 나타낸다.
도 5는 본 개시의 일 실시예에 따라 서브 목적지를 결정하는 방법의 예시를 나타낸다.
도 6은 본 개시의 일 실시예에 따른 충돌점 지도의 예시를 나타낸다.
도 7은 본 개시의 일 실시예에 따라 거리 변환 지도에 대해 공간 분류를 수행한 예시를 나타낸다.
도 8은 거리 변환 지도에 기초하여 서브 목적지를 결정하는 예시를 나타낸다.
도 9는 서브 목적지 후보 중 하나를 서브 목적지로 결정하는 예시를 나타낸다.
도 10은 본 개시의 일 실시예에 따른 자율 주행 로봇의 주행 방법의 예시를 나타낸다.
이하, 본 개시의 실시를 위한 구체적인 내용을 첨부된 도면을 참조하여 상세히 설명한다. 다만, 이하의 설명에서는 본 개시의 요지를 불필요하게 흐릴 우려가 있는 경우, 널리 알려진 기능이나 구성에 관한 구체적 설명은 생략하기로 한다.
첨부된 도면에서, 동일하거나 대응하는 구성요소에는 동일한 참조부호가 부여되어 있다. 또한, 이하의 실시예들의 설명에 있어서, 동일하거나 대응되는 구성요소를 중복하여 기술하는 것이 생략될 수 있다. 그러나, 구성요소에 관한 기술이 생략되어도, 그러한 구성요소가 어떤 실시예에 포함되지 않는 것으로 의도되지는 않는다.
개시된 실시예의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나, 본 개시는 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시예들은 본 개시가 완전하도록 하고, 본 개시가 통상의 기술자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것일 뿐이다.
본 명세서에서 사용되는 용어에 대해 간략히 설명하고, 개시된 실시예에 대해 구체적으로 설명하기로 한다. 본 명세서에서 사용되는 용어는 본 개시에서의 기능을 고려하면서 가능한 현재 널리 사용되는 일반적인 용어들을 선택하였으나, 이는 관련 분야에 종사하는 기술자의 의도 또는 판례, 새로운 기술의 출현 등에 따라 달라질 수 있다. 또한, 특정한 경우는 출원인이 임의로 선정한 용어도 있으며, 이 경우 해당되는 발명의 설명 부분에서 상세히 그 의미를 기재할 것이다. 따라서, 본 개시에서 사용되는 용어는 단순한 용어의 명칭이 아닌, 그 용어가 가지는 의미와 본 개시의 전반에 걸친 내용을 토대로 정의되어야 한다.
본 명세서에서의 단수의 표현은 문맥상 명백하게 단수인 것으로 특정하지 않는 한, 복수의 표현을 포함한다. 또한, 복수의 표현은 문맥상 명백하게 복수인 것으로 특정하지 않는 한, 단수의 표현을 포함한다. 명세서 전체에서 어떤 부분이 어떤 구성요소를 포함한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있음을 의미한다.
또한, 명세서에서 사용되는 '모듈' 또는 '부'라는 용어는 소프트웨어 또는 하드웨어 구성요소를 의미하며, '모듈' 또는 '부'는 어떤 역할들을 수행한다. 그렇지만, '모듈' 또는 '부'는 소프트웨어 또는 하드웨어에 한정되는 의미는 아니다. '모듈' 또는 '부'는 어드레싱할 수 있는 저장 매체에 있도록 구성될 수도 있고 하나 또는 그 이상의 프로세서들을 재생시키도록 구성될 수도 있다. 따라서, 일 예로서, '모듈' 또는 '부'는 소프트웨어 구성요소들, 객체지향 소프트웨어 구성요소들, 클래스 구성요소들 및 태스크 구성요소들과 같은 구성요소들과, 프로세스들, 함수들, 속성들, 프로시저들, 서브루틴들, 프로그램 코드의 세그먼트들, 드라이버들, 펌웨어, 마이크로 코드, 회로, 데이터, 데이터베이스, 데이터 구조들, 테이블들, 어레이들 또는 변수들 중 적어도 하나를 포함할 수 있다. 구성요소들과 '모듈' 또는 '부'들은 안에서 제공되는 기능은 더 작은 수의 구성요소들 및 '모듈' 또는 '부'들로 결합되거나 추가적인 구성요소들과 '모듈' 또는 '부'들로 더 분리될 수 있다.
본 개시의 일 실시예에 따르면, '모듈' 또는 '부'는 프로세서 및 메모리로 구현될 수 있다. '프로세서'는 범용 프로세서, 중앙 처리 장치(CPU), 마이크로프로세서, 디지털 신호 프로세서(DSP), 제어기, 마이크로제어기, 상태 머신 등을 포함하도록 넓게 해석되어야 한다. 몇몇 환경에서, '프로세서'는 주문형 반도체(ASIC), 프로그램가능 로직 디바이스(PLD), 필드 프로그램가능 게이트 어레이(FPGA) 등을 지칭할 수도 있다. '프로세서'는, 예를 들어, DSP와 마이크로프로세서의 조합, 복수의 마이크로프로세서들의 조합, DSP 코어와 결합한 하나 이상의 마이크로프로세서들의 조합, 또는 임의의 다른 그러한 구성들의 조합과 같은 처리 디바이스들의 조합을 지칭할 수도 있다. 또한, '메모리'는 전자 정보를 저장 가능한 임의의 전자 컴포넌트를 포함하도록 넓게 해석되어야 한다. '메모리'는 임의 액세스 메모리(RAM), 판독-전용 메모리(ROM), 비-휘발성 임의 액세스 메모리(NVRAM), 프로그램가능 판독-전용 메모리(PROM), 소거-프로그램가능 판독 전용 메모리(EPROM), 전기적으로 소거가능 PROM(EEPROM), 플래쉬 메모리, 자기 또는 광학 데이터 저장장치, 레지스터들 등과 같은 프로세서-판독가능 매체의 다양한 유형들을 지칭할 수도 있다. 프로세서가 메모리로부터 정보를 판독하고/하거나 메모리에 정보를 기록할 수 있다면 메모리는 프로세서와 전자 통신 상태에 있다고 불린다. 프로세서에 집적된 메모리는 프로세서와 전자 통신 상태에 있다.
도 1은 본 개시의 일 실시예에 따라 실외 공간에서 자율 주행 로봇(110)이 이동하는 예시를 나타낸다. 도시된 바와 같이, 자율 주행 로봇(110)은 실외 공간에서 스스로 주행할 수 있다. 이 경우, 실외 공간은 복수의 장애물(120 내지 140)을 포함할 수 있다. 복수의 장애물(120 내지 140)은 사람(140)과 같이 움직이는 장애물을 포함할 수 있다. 일 실시예에 따르면, 자율 주행 로봇(110)은 실외 공간에서 복수의 장애물(120 내지 140)과 충돌하지 않고 목적지까지 이동할 수 있다.
일 실시예에 따르면, 자율 주행 로봇(110)은 사용자, 관리자, 중앙 관제 시스템 등으로부터 목적지의 위치 정보를 수신할 수 있다. 예를 들어, 자율 주행 로봇(110)은 통신 모듈을 통해 정보 처리 시스템(예를 들어, 중앙 관제 시스템)으로부터 목적지의 위치 정보를 수신할 수 있다. 다른 예시로, 자율 주행 로봇(110)은 입출력 인터페이스를 통해 목적지의 위치 정보를 수신할 수 있다. 여기서, 목적지는 택배, 우편, 음식물 등의 배달 도착지를 의미할 수 있다.
일 실시예에 따르면, 자율 주행 로봇(110)은 실외 공간을 촬영한 깊이 이미지를 이용하여, 충돌점 지도를 생성 및 업데이트할 수 있다. 구체적으로, 자율 주행 로봇(110)이 위치하는 공간을 360도(또는 임의의 각도)로 촬영한 깊이 이미지를 이용하여, 목적지까지 이동하기 위한 충돌점 지도를 생성할 수 있다. 그 후, 자율 주행 로봇(110)은 충돌점 지도를 지도 상에서 가장 가까움 충돌점과의 거리를 나타내는 2차원 거리 변환 지도로 가공할 수 있다. 예를 들어, 충돌점 지도에서 충돌점이 존재하는 지점의 좌표를 거리 변환 지도에 대입하여 0의 값을 얻을 수 있다. 이러한 구성에 의해, 자율 주행 로봇(110)은 주변 장애물(120 내지 140)까지의 거리를 파악할 수 있으므로, 자율 주행 로봇(110)의 현재 위치에서의 충돌 가능성을 고려할 수 있다.
일 실시예에 따르면, 자율 주행 로봇(110)은 생성된 지도를 기초로 충돌점과의 충돌 가능성이 낮은 자율 주행 경로를 결정할 수 있다. 구체적으로, 현재 위치와 목적지 사이에 서브 목적지를 결정하는 과정 및 결정된 서브 목적지로 이동하는 과정을 반복하여 목적지로 이동할 수 있다. 이러한 구성에 의해, 자율 주행 로봇(110)이 동적인 실외 환경에서 주변 장애물(120 내지 140)과의 충돌 가능성을 고려하여 최적의 경로에 따라 목적지까지 이동할 수 있다. 또한, 이와 같은 구성에 따르면 라이다(LiDAR)와 같은 고가의 센서가 아닌 비교적 저가의 센서에 속하는 깊이 카메라(depth camera)를 이용한 실외 자율 주행 알고리즘을 구현할 수 있으며, 이에 따라 소프트웨어적 연산 비용, 연산량 및 알고리즘적 복잡도를 낮출 수 있다.
도 1에서는 자율 주행 로봇(110)이 실외 환경에서 평면에서 이동하는 것으로 도시되었으나, 이에 한정되지 않는다. 예를 들어, 자율 주행 로봇(110)은 정적인 실내 환경에서도 동일하게 동작할 수 있다. 또한, 이러한 구성은 3차원 지도가 주어진다면 드론과 같은 고자유도 물체의 비행에도 확장이 가능하다.
도 2는 본 개시의 일 실시예에 따른 자율 주행 로봇(110)이 정보 처리 시스템(290)과 통신 가능하도록 연결된 구성을 나타내는 개요도이다. 도시된 바와 같이, 자율 주행 로봇(110)은 전원부(210), 메모리(220), 구동부(230), 프로세서(240), 입출력 인터페이스(250), 통신 모듈(260) 및 이미지 센서(270)를 포함할 수 있다. 도 2에서는 하나의 자율 주행 로봇(110)이 정보 처리 시스템(290)과 연결된 것으로 도시되었으나, 이에 한정되지 않는다. 예를 들어, 복수의 자율 주행 로봇이 정보 처리 시스템(290)과 연결될 수 있다.
전원부(210)는 자율 주행 로봇(110)의 동작 및 제어에 필요한 전원을 공급할 수 있다. 일 실시예에서, 전원부(210)는 자율 주행 로봇(110)의 무선 운영이 가능하도록 충전 가능한 2차 전지를 포함할 수 있다. 예를 들어, 전원부(210)는 리튬 이온 배터리를 포함할 수 있다.
메모리(220)는 자율 주행 로봇(110)과 연관된 데이터를 저장할 수 있다. 예를 들어, 메모리(220)는 자율 주행 로봇(110)의 고유의 식별 정보와 연관된 데이터를 저장할 수 있다. 또한, 메모리(220)는 프로세서에 의하여 생성된 데이터(예를 들어, 충돌점 지도, 거리 변환 지도 등), 통신 모듈(260)을 통해 수신된 데이터(예를 들어, 목적지에 관한 정보) 등을 저장할 수 있다.
구동부(230)는 전원부(210)로부터 공급받는 전원을 동력으로 하여 자율 주행 로봇(110)을 구동시킬 수 있다. 구동부(230)는 모터 제어 수단 및 구동 모터를 포함할 수 있다. 일 실시예에서, 자율 주행 로봇(110)의 모터 제어 수단은 프로세서(240)의 동작 및 제어 명령 신호를 수신하고, 대응되는 명령에 따라 구동 모터를 제어할 수 있다.
프로세서(240)는 자율 주행 로봇(110)의 전반적인 동작을 제어할 수 있다. 일 실시예에서, 프로세서(240)는 전원부(210), 메모리(220), 구동부(230), 입출력 인터페이스(250), 통신 모듈(260) 및 이미지 센서(270)와 연결될 수 있다. 프로세서(240)는 이미지 센서(270)로부터 수신되는 데이터에 기초하여 자율 주행 로봇(200)의 현재 위치, 주행 경로 정보, 주변 상태 정보, 장애물 정보 등을 감지하고, 자율 주행 로봇(110)의 주행/동작을 제어할 수 있다. 또한, 프로세서(240)가 생성한 자율 주행 로봇(110)의 주행/동작을 위한 명령 신호는 구동부(230)로 전송될 수 있다.
입출력 인터페이스(250)는 사용자로부터 정보 및/또는 데이터를 입력받거나 정보 및/또는 데이터를 출력하도록 구성될 수 있다. 입출력 인터페이스(250)는 정보 및/또는 데이터의 입력/출력을 위하여, 적어도 하나의 디스플레이를 포함할 수 있다. 이 경우, 입출력 인터페이스(250) 사용자로부터 사용자 입력을 수신할 수 있도록, 터치 스크린(touch screen)으로 구성될 수 있다.
통신 모듈(260)은 자율 주행 로봇(110)이 네트워크(280)를 통하여 정보 처리 시스템(290)과 연결되는 것을 가능하게 한다. 구체적으로, 통신 모듈(260)은 자율 주행 로봇(110)이 네트워크(280)를 통하여 정보 처리 시스템(290)과 연결되어, 정보 및/또는 데이터를 송신/수신하도록 구성될 수 있다. 예를 들어, 정보 처리 시스템(290)으로부터 자율 주행의 목적지에 관한 데이터를 수신하도록 구성될 수 있다. 다른 예시로, 구체적으로 정보 처리 시스템(290)으로 자율 주행 로봇(110)의 현재 위치에 관한 정보 및/또는 자율 주행 로봇(110)을 식별하기 위한 정보를 송신하도록 구성될 수 있다.
이미지 센서(270)는 적어도 하나의 깊이 카메라(depth camera)를 포함할 수 있다. 예를 들어, 적어도 하나의 깊이 카메라는 자율 주행 로봇(110)의 전면, 후면, 측면 등의 깊이 이미지를 촬상하도록 배치될 수 있다. 대안적으로, 이미지 센서(270)는 깊이 이미지를 생성하기 위한 스테레오 카메라로 구성될 수 있다. 이미지 센서(270)에 의해 촬상된 깊이 이미지(depth image)는 프로세서(240)로 전달되어, 프로세서(240)가 장애물을 감지하거나, 자율 주행 로봇(110)의 주행 경로를 계획하기 위한 정보로 사용될 수 있다. 이러한 구성에 의해, 자율 주행 로봇(110)에 최소한의 센서를 이용하여, 자율 주행 로봇(110)의 제작 비용이 낮아지는 경제적 효과를 얻을 수 있다. 또한, 이러한 경제적 효과는 자율 주행 로봇(110)을 이용한 실외 배송 서비스를 진행함에 있어서, 로봇의 대여 비용, 운용 비용 및 고객의 지불 비용 등이 낮아지는 효과로 이어질 수 있다.
자율 주행 로봇(110)은 네트워크(280)를 통해 정보 처리 시스템(290)과 통신할 수 있다. 네트워크(280)는 자율 주행 로봇(110)과 정보 처리 시스템(290) 사이의 통신이 가능하도록 구성될 수 있다. 네트워크(280)는 설치 환경에 따라, 예를 들어, 이동통신망, WLAN(Wireless LAN), Wi-Fi, Bluetooth 및 ZigBee 등과 같은 무선 네트워크 또는 그 조합으로 구성될 수 있다. 통신 방식은 제한되지 않으며, 네트워크(280)가 포함할 수 있는 통신망(일례로, 이동통신망, 무선 인터넷, 방송망, 위성망 등)을 활용하는 통신 방식뿐 아니라 자율 주행 로봇(110) 사이의 근거리 무선 통신 역시 포함될 수 있다.
도 3은 본 개시의 일 실시예에 따라 코스트 맵(cost map)을 설계하는 방법(300)의 예시를 나타낸다. 여기서, '코스트 맵'은 후술되는 거리 변환 지도(distance transform map)를 포함할 수 있다. 방법(300)은 자율 주행 로봇(예를 들어, 도 2의 110)의 적어도 하나의 프로세서(예를 들어, 도 2의 240)에 의하여 수행될 수 있다. 도시된 바와 같이, 방법(300)은 적어도 하나의 깊이 이미지(depth image)를 수신하는 단계(S310)로 개시될 수 있다.
프로세서는 수신된 적어도 하나의 깊이 이미지에 기초하여 충돌점 지도를 생성할 수 있다(S320). 충돌점 지도는 자율 주행 로봇 주위 영역 내의 장애물들의 위치를 충돌점으로 나타낼 수 있다.
그 후, 프로세서는 충돌점 지도를 이용하여 거리 변환 지도(2차원 거리 변환 지도)를 생성할 수 있다(S330). 예를 들어, 프로세서는 충돌점 지도에 기초하여 자율 주행 로봇의 주위 영역 내의 각 지점에 대해 가장 가까운 충돌점까지의 거리(또는, 거리 변환 값)를 산출함으로써 거리 변환 지도를 생성할 수 있다. 이 경우, 거리 변환 지도 상의 각 지점(좌표)에 대해 가장 가까운 충돌점까지의 거리를 나타낼 수 있다. 따라서, 거리 변환 지도 상에서 특정 좌표값을 대입하면 그 위치에서 가장 가까운 충돌점과의 거리(예를 들어, 유클리디안 거리)를 알 수 있다. 예를 들어, 충돌점 지도에서 충돌점이 존재하는 지점의 좌표를 거리 변환 지도에 대입하면 0의 값을 얻을 수 있다. 이러한 거리 변환 지도를 이용하면 주변의 가장 가까운 장애물까지의 거리를 알 수 있으므로, 자율 주행 로봇의 현재 위치에서의 충돌 가능성을 고려할 수 있다.
도 4는 본 개시의 일 실시예에 따라 공간을 분류하는 방법(400)의 예시를 나타낸다. 본 개시에서, '공간'은 도 1에서 상술한 자율 주행 로봇(예를 들어, 도 1의 110)이 이동하는 실외 공간을 포함할 수 있으나, 이에 한정되지 않는다. 예를 들어, '공간'은 자율 주행 로봇이 위치하는 실내 공간도 포함할 수 있다.
방법(400)은 자율 주행 로봇(예를 들어, 도 2의 110)의 적어도 하나의 프로세서(예를 들어, 도 2의 240)에 의하여 수행될 수 있다. 도시된 바와 같이, 방법(400)은 써칭 서클(searching circle)을 설정하는 단계(S410)로 개시될 수 있다. 써칭 서클은 장애물과의 충돌 없이 목적지로 이동 가능한 경로를 원 탐색(round searching)하기 위하여 설정된다. 써칭 서클(searching)은 자율 주행 로봇의 현재 위치를 중심으로 하고, 자율 주행 로봇의 현재 위치에서 가장 가까운 충돌점 까지의 최단 거리를 반지름으로 하는 서클을 지칭할 수 있다.
그 후, 프로세서는 써칭 서클의 테두리 상의 모든 좌표(또는 지점)에 대해 공간 분류를 수행할 수 있다(S420). 예를 들어, 자율 주행 로봇이 이동할 수 있는 열린 공간(open space), 자율 주행 로봇이 장애물(또는 충돌점) 사이를 통과할 수 있는 간격 공간(gap space) 및 자율 주행 로봇이 이동할 수 없는 닫힌 공간(closed space) 중 하나로 분류할 수 있다. 공간을 분류한 후, 프로세서는 써칭 서클의 테두리 상의 좌표(또는 지점) 중 열린 공간 및 간격 공간으로 분류된 좌표를 공간 후보로 등록할 수 있다(S430).
이러한 구성에 의해, 자율 주행 로봇이 이동할 수 없는 닫힌 공간은 일차적으로 제거되어, 후술되는 서브 목적지를 결정하기 위한 연산량을 감소시킬 수 있다. 또한, 지도 내의 모든 공간에 대해 공간 분류 및 공간 후보 등록을 진행하는 것이 아닌, 써칭 서클 상의 지점(좌표)에 대해서만 공간 분류 및 공간 후보 등록을 진행함으로써 연산량을 대폭 감소시킬 수 있다.
도 5는 본 개시의 일 실시예에 따라 서브 목적지를 결정하는 방법(500)의 예시를 나타낸다. 여기서, '서브 목적지'란 자율 주행 로봇이 장애물과 충돌하지 않고 목적지에 도달하기 위하여 경유하는 지점을 의미할 수 있다. 자율 주행 로봇이 목적지까지 도달하는 동안 정적/동적 장애물을 회피하기 위해 복수의 서브 목적지를 경유할 수 있다. 방법(500)은 자율 주행 로봇의 적어도 하나의 프로세서(예를 들어, 도 2의 240)에 의하여 수행될 수 있다. 도시된 바와 같이, 방법(500)은 공간 후보를 수신하는 단계(S510)로 개시될 수 있다. 일 실시예에 따르면, 공간 후보에는 도 4에서 상술한 써칭 서클 상의 열린 공간 및/또는 간격 공간이 포함될 수 있다.
공간 후보를 수신한 후, 프로세서는 해당 공간 후보가 간격 공간인지 여부를 판정할 수 있다(S520). 공간 후보가 간격 공간인 것으로 판정된 경우, 프로세서는 간격 공간 중 거리 변환 값이 가장 큰 지점을 추출하고(S530), 해당 지점을 서브 목적지 후보로 등록할 수 있다(S550). 즉, 프로세서는 간격 공간 중 거리 변환 값이 국소적으로 가장 높은(local maxima) 지점(충돌점과의 거리가 가장 먼 지점)을 추출하여 서브 목적지 후보로 등록할 수 있다.
반면, 공간 후보가 간격 공간이 아닌 열린 공간으로 판정된 경우, 프로세서는 각도 기반 슬라이싱을 수행하고(S540), 추출된 지점들을 서브 목적지 후보로 등록할 수 있다(S550). 예를 들어, 열린 공간을 자율 주행 로봇의 현재 위치를 중심으로 미리 결정된 각도(예를 들어, 10도, 15도, 30도 등)에 따라 복수의 공간으로 슬라이싱하고, 복수의 공간 각각에 대하여 하나의 지점을 추출하여 서브 목적지 후보로 등록할 수 있다.
프로세서는 추출된 목적지 후보 중 하나를 서브 목적지를 결정할 수 있다(S560). 일 실시예에 따르면, 프로세서는 등록된 서브 목적지 후보 각각과 목적지 사이의 거리를 산출할 수 있다. 그리고 나서, 목적지와 가장 가까운 서브 목적지 후보를 서브 목적지로 결정할 수 있다. 프로세서는 자율 주행 로봇이 결정된 서브 목적지를 추종하도록 제어할 수 있다.
도 6은 본 개시의 일 실시예에 따른 충돌점 지도(600)의 예시를 나타낸다. 일 실시예에 따르면, 프로세서(예를 들어, 도 2의 240)는 깊이 카메라(depth camera)로부터 적어도 하나의 깊이 이미지를 수신할 수 있다. 그리고 나서, 수신된 깊이 이미지에 기초하여 충돌점 지도(600)를 생성할 수 있다. 도시된 바와 같이, 충돌점 지도(600)에서 충돌점(630)은 검은색으로 표시되고, 충돌점(630)이 아닌 지점은 흰색으로 표시될 수 있다. 충돌점(630)은 장애물을 나타낼 수 있다. 또한, 충돌점 지도(600)에 자율 주행 로봇(예를 들어, 도 1의 110)의 현재 위치(610) 및 목적지(620)가 맵핑될 수 있다.
도 7은 본 개시의 일 실시예에 따라 거리 변환 지도에 대해 공간 분류를 수행한 예시(700)를 나타낸다. 일 실시예에 따르면, 프로세서(예를 들어, 도 2의 240)는 거리 변환 지도의 각 지점(좌표)을 자율 주행 로봇이 이동 가능한 열린 공간, 자율 주행 로봇이 충돌점 사이를 통과할 수 있는 간격 공간 및 자율 주행 로봇이 이동할 수 없는 닫힌 공간 중 하나로 분류할 수 있다. 도시된 바와 같이, 자율 주행 로봇(710)의 주위 공간은 닫힌 공간(730), 간격 공간(740) 및 열린 공간(750)을 포함할 수 있고, 자율 주행 로봇(710)은 이 정보에 기초하여 목적지(720)까지 이동하기 위한 경유지로서 서브 목적지(760)를 결정할 수 있다.
일 실시예에 따르면, 로봇이 일정 반경(예컨대, 50 cm, 100 cm, 150 cm 등)의 크기(configuration)를 갖는 원(또는 구)의 형태라고 가정하고, 해당 크기의 물체가 자유롭게 이동할 수 있는 공간을 열린 공간(730)으로 분류할 수 있다. 또한, 해당 크기의 물체가 장애물 사이를 지나 통과할 수 있는 공간을 간격 공간(740)으로 분류하고, 해당 크기의 물체가 이동할 수 없는 공간을 닫힌 공간으로 분류할 수 있다. 예를 들어, 충돌점(예를 들어, 도 6의 630)의 위치를 고려하여, 도시된 바와 같이, 충돌점으로부터 일정한 반경 내에 영역은 닫힌 공간으로 분류될 수 있다. 이러한 구성에 의해, 자율 주행 로봇(710)은 주변 환경에서 이동해야 하는 공간에 대한 정보를 인식할 수 있고, 정적, 그리고 동적 장애물에 충돌하지 않으면서 안전하게 목적지까지 도달할 수 있다.
도 8은 거리 변환 지도에 기초하여 서브 목적지(SG; Sub-Goal)를 결정하는 예시를 나타낸다. 일 실시예에 따르면, 프로세서(예를 들어, 도 2의 240)는 거리 변환 지도에 자율 주행 로봇(810)의 현재 위치(예를 들어, 좌표값)를 입력하여, 자율 주행 로봇(810)과 가장 가까운 충돌점(c)까지의 최단 거리(d)를 결정할 수 있다.
일 실시예에 따르면, 프로세서는 자율 주행 로봇(810)의 현재 위치를 중심으로 하고, 최단 거리(d)를 반지름으로 하는 써칭 서클(searching circle)(830)을 설정할 수 있다. 이 경우, 써칭 서클(830) 상의 지점들 중 하나를 서브 목적지(SG; Sub-Goal)로 결정할 수 있다. 예를 들어, 써칭 서클(830)의 지점들 중 복수의 서브 목적지 후보를 추출하고, 복수의 서브 목적지 후보 중 목적지(820)와의 거리가 가장 가까운 하나의 지점을 서브 목적지(SG)로 결정할 수 있다. 그 후, 자율 주행 로봇(810)은 서브 목적지(SG)를 경유지로 설정하여 해당 위치로 이동할 수 있다.
도 9는 서브 목적지 후보(p1 내지 p9) 중 하나(p7)를 서브 목적지로 결정하는 예시를 나타낸다. 일 실시예에 따르면, 프로세서(예를 들어, 도 2의 240)는 써칭 서클의 테두리(920) 상의 모든 지점들(좌표들)에 대하여 공간 분류를 수행할 수 있다. 예를 들어, 써칭 서클의 테두리(920)는 열린 공간으로 분류된 원호(930), 닫힌 공간으로 분류된 원호(940, 960) 및 간격 공간으로 분류된 원호(950)를 포함할 수 있다.
일 실시예에서, 프로세서는 열린 공간으로 분류된 원호(930) 및 간격 공간으로 분류된 원호(950) 상의 지점들을 공간 후보로 등록할 수 있다. 즉, 닫힌 공간으로 분류된 원호(940, 960) 상의 지점들은 공간 후보에서 제외될 수 있다. 그 후, 공간 후보가 간격 공간인 경우(예를 들어, 원호(950) 상의 지점들), 프로세서는 간격 공간 중 거리 변환 값이 가장 큰 지점(p9)을 추출하여 서브 목적지 후보로 등록할 수 있다. 즉, 프로세서는 간격 공간 중 거리 변환 값이 국소적으로 가장 높은(local maxima) 지점(가장 가까운 충돌점과의 거리가 가장 먼 지점)을 추출하여 서브 목적지 후보로 등록할 수 있다.
일 실시예에 따르면, 공간 후보가 열린 공간인 경우(예를 들어, 원호(930) 상의 지점들), 프로세서는 원호(930)를 미리 정해진 각도(θ; 예를 들어, 10도, 15도, 30도 등)로 복수의 원호로 분할할 수 있다. 그리고 나서, 프로세서는 복수의 분할된 원호 각각으로부터 하나의 서브 목적지 후보(p1 내지 p8)를 추출할 수 있다. 여기서, 서브 목적지 후보는 각 분할된 원호 상의 지점들 중 가운데 위치의 지점, 목적지(970)와 가장 가까운 지점 등일 수 있다. 최종적으로, 프로세서는 추출된 서브 목적지 후보(p1 내지 p9) 중 목적지(970)와의 거리가 가장 가까운 지점(p7)을 서브 목적지로 결정될 수 있다.
도 10은 본 개시의 일 실시예에 따른 자율 주행 로봇의 주행 방법(1000)의 예시를 나타낸다. 방법(1000)은 적어도 하나의 프로세서(예를 들어, 도 2의 240)에 의하여 수행될 수 있다. 도시된 바와 같이, 방법(1000)은 적어도 깊이 카메라(depth camera)로부터 적어도 하나의 깊이 이미지를 수신하는 단계(S1010)로 개시될 수 있다.
일 실시예에 따르면, 프로세서는 적어도 하나의 깊이 이미지에 기초하여 거리 변환 지도(distance transform map)를 생성할 수 있다(S1020). 거리 변환 지도는 자율 주행 로봇의 주위 영역의 각 지점에 대해 가장 가까운 충돌점까지의 거리를 나타낼 수 있다. 구체적으로, 프로세서는 적어도 하나의 깊이 이미지에 기초하여 자율 주행 로봇의 주위 영역 내의 장애물의 위치를 충돌점으로 나타내는 충돌점 지도(collision map)를 생성하고, 충돌점 지도에 기초하여 자율 주행 로봇의 주위 영역 내의 각 지점에 대해 가장 가까운 충돌점까지의 거리를 산출함으로써, 거리 변환 지도를 생성할 수 있다. 예를 들어, 거리 변환 지도에 의해 산출되는 각 지점에 대한 가장 가까운 충돌점까지의 거리는 유클리디안(Euclidean) 거리일 수 있다.
그 후, 프로세서는 거리 변환 지도에 기초하여 서브 목적지를 결정할 수 있다(S1030). 구체적으로, 프로세서는 거리 변환 지도에 자율 주행 로봇의 현재 위치를 입력하여, 자율 주행 로봇과 가장 가까운 충돌점까지의 최단 거리를 결정할 수 있다. 그리고 나서, 프로세서는 자율 주행 로봇의 현재 위치를 중심으로 하고, 최단 거리를 반지름으로 하는 써칭 서클(searching circle)을 설정할 수 있다. 그 후, 프로세서는 써칭 서클의 테두리 상의 지점들 중 하나를 서브 목적지로 결정할 수 있다. 예를 들어, 프로세서는 써칭 서클의 테두리 상의 지점들을 자율 주행 로봇이 이동 가능한 열린 공간(open space), 자율 주행 로봇이 충돌점 사이를 통과할 수 있는 간격 공간(gap space) 및 자율 주행 로봇이 이동할 수 없는 닫힌 공간(closed space) 중 하나로 분류할 수 있다. 분류된 공간이 열린 공간인 경우, 프로세서는 열린 공간을 미리 정해진 각도로 복수의 원호로 분할하고, 복수의 원호 각각으로부터 하나의 서브 목적지 후보를 추출할 수 있다. 분류된 공간이 간격 공간인 경우, 프로세서는 간격 공간 내의 복수의 지점 중 거리 변환 지도에 의해 산출되는 가장 가까운 충돌점까지의 거리 값이 가장 큰 지점을 서브 목적지 후보로 추출할 수 있다. 이와 같이, 프로세서는 열린 공간 및 간격 공간에 기초하여 복수의 서브 목적지 후보를 등록할 수 있다. 그 후, 프로세서는 복수의 서브 목적지 후보 중 하나를 서브 목적지로 결정할 수 있다. 이 경우, 서브 목적지는 복수의 서브 목적지 후보 중 목적지와의 거리가 가장 짧은 지점일 수 있다. 그리고 나서, 프로세서는 로봇을 서브 목적지로 이동시킬 수 있다(S1040).
자율 주행 로봇은 거리 변환 지도를 생성하는 단계(S1020), 거리 변환 지도에 기초하여 서브 목적지를 결정하는 단계(S1030) 및 자율 주행 로봇을 서브 목적지로 이동시키는 단계(S1040)를 반복함으로써 자율 주행 로봇을 목적지까지 이동시킬 수 있다. 예를 들어, 자율 주행 로봇은 미리 정해진 시간 간격마다 S1010 내지 S1040을 수행할 수 있다. 대안적으로, 자율 주행 로봇은 서브 목적지에 도달하면 S1010 내지 S1040을 수행할 수 있다. 대안적으로, 자율 주행 로봇은 S1010 내지 S1020을 주기적으로 수행하고, 새로운 장애물이 검출되는 경우, S1030 내지 S1040을 수행할 수 있다.
본 개시의 방법, 동작 또는 기법들은 다양한 수단에 의해 구현될 수도 있다. 예를 들어, 이러한 기법들은 하드웨어, 펌웨어, 소프트웨어, 또는 이들의 조합으로 구현될 수도 있다. 본원의 개시와 연계하여 설명된 다양한 예시적인 논리적 블록들, 모듈들, 회로들, 및 알고리즘 단계들은 전자 하드웨어, 컴퓨터 소프트웨어, 또는 양자의 조합들로 구현될 수도 있음을 통상의 기술자들은 이해할 것이다. 하드웨어 및 소프트웨어의 이러한 상호 대체를 명확하게 설명하기 위해, 다양한 예시적인 구성요소들, 블록들, 모듈들, 회로들, 및 단계들이 그들의 기능적 관점에서 일반적으로 위에서 설명되었다. 그러한 기능이 하드웨어로서 구현되는지 또는 소프트웨어로서 구현되는지의 여부는, 특정 애플리케이션 및 전체 시스템에 부과되는 설계 요구사항들에 따라 달라진다. 통상의 기술자들은 각각의 특정 애플리케이션을 위해 다양한 방식들로 설명된 기능을 구현할 수도 있으나, 그러한 구현들은 본 개시의 범위로부터 벗어나게 하는 것으로 해석되어서는 안된다.
하드웨어 구현에서, 기법들을 수행하는 데 이용되는 프로세싱 유닛들은, 하나 이상의 ASIC들, DSP들, 디지털 신호 프로세싱 디바이스들(digital signal processing devices; DSPD들), 프로그램가능 논리 디바이스들(programmable logic devices; PLD들), 필드 프로그램가능 게이트 어레이들(field programmable gate arrays; FPGA들), 프로세서들, 제어기들, 마이크로제어기들, 마이크로프로세서들, 전자 디바이스들, 본 개시에 설명된 기능들을 수행하도록 설계된 다른 전자 유닛들, 컴퓨터, 또는 이들의 조합 내에서 구현될 수도 있다.
따라서, 본 개시와 연계하여 설명된 다양한 예시적인 논리 블록들, 모듈들, 및 회로들은 범용 프로세서, DSP, ASIC, FPGA나 다른 프로그램 가능 논리 디바이스, 이산 게이트나 트랜지스터 로직, 이산 하드웨어 컴포넌트들, 또는 본원에 설명된 기능들을 수행하도록 설계된 것들의 임의의 조합으로 구현되거나 수행될 수도 있다. 범용 프로세서는 마이크로프로세서일 수도 있지만, 대안으로, 프로세서는 임의의 종래의 프로세서, 제어기, 마이크로제어기, 또는 상태 머신일 수도 있다. 프로세서는 또한, 컴퓨팅 디바이스들의 조합, 예를 들면, DSP와 마이크로프로세서, 복수의 마이크로프로세서들, DSP 코어와 연계한 하나 이상의 마이크로프로세서들, 또는 임의의 다른 구성의 조합으로 구현될 수도 있다.
펌웨어 및/또는 소프트웨어 구현에 있어서, 기법들은 랜덤 액세스 메모리(random access memory; RAM), 판독 전용 메모리(read-only memory; ROM), 비휘발성 RAM(non-volatile random access memory; NVRAM), PROM(programmable read-only memory), EPROM(erasable programmable read-only memory), EEPROM(electrically erasable PROM), 플래시 메모리, 컴팩트 디스크(compact disc; CD), 자기 또는 광학 데이터 스토리지 디바이스 등과 같은 컴퓨터 판독가능 매체 상에 저장된 명령어들로 구현될 수도 있다. 명령들은 하나 이상의 프로세서들에 의해 실행 가능할 수도 있고, 프로세서(들)로 하여금 본 개시에 설명된 기능의 특정 양태들을 수행하게 할 수도 있다.
이상 설명된 실시예들이 하나 이상의 독립형 컴퓨터 시스템에서 현재 개시된 주제의 양태들을 활용하는 것으로 기술되었으나, 본 개시는 이에 한정되지 않고, 네트워크나 분산 컴퓨팅 환경과 같은 임의의 컴퓨팅 환경과 연계하여 구현될 수도 있다. 또 나아가, 본 개시에서 주제의 양상들은 복수의 프로세싱 칩들이나 장치들에서 구현될 수도 있고, 스토리지는 복수의 장치들에 걸쳐 유사하게 영향을 받게 될 수도 있다. 이러한 장치들은 PC들, 네트워크 서버들, 및 휴대용 장치들을 포함할 수도 있다.
본 명세서에서는 본 개시가 일부 실시예들과 관련하여 설명되었지만, 본 개시의 발명이 속하는 기술분야의 통상의 기술자가 이해할 수 있는 본 개시의 범위를 벗어나지 않는 범위에서 다양한 변형 및 변경이 이루어질 수 있다. 또한, 그러한 변형 및 변경은 본 명세서에 첨부된 특허청구의 범위 내에 속하는 것으로 생각되어야 한다.

Claims (20)

  1. 적어도 하나의 프로세서에 의해 수행되는 자율 주행 로봇이 목적지까지 주행하는 방법에 있어서,
    깊이 카메라(depth camera)로부터 적어도 하나의 깊이 이미지를 수신하는 단계;
    상기 적어도 하나의 깊이 이미지에 기초하여 거리 변환 지도(distance transform map)를 생성하는 단계 - 상기 거리 변환 지도는 상기 자율 주행 로봇의 주위 영역의 각 지점에 대해 가장 가까운 충돌점까지의 거리를 나타냄 -;
    상기 거리 변환 지도에 기초하여 서브 목적지를 결정하는 단계; 및
    상기 자율 주행 로봇을 상기 서브 목적지로 이동시키는 단계
    를 포함하는, 자율 주행 로봇의 주행 방법.
  2. 제1항에 있어서,
    상기 거리 변환 지도를 생성하는 단계는,
    상기 적어도 하나의 깊이 이미지에 기초하여 상기 자율 주행 로봇의 주위 영역 내의 장애물의 위치를 충돌점으로 나타내는 충돌점 지도(collision map)를 생성하는 단계; 및
    상기 충돌점 지도에 기초하여 상기 자율 주행 로봇의 주위 영역 내의 각 지점에 대해 가장 가까운 충돌점까지의 거리를 산출하는 단계
    를 포함하는, 자율 주행 로봇의 주행 방법.
  3. 제1항에 있어서,
    상기 거리 변환 지도에 기초하여 서브 목적지를 결정하는 단계는,
    상기 거리 변환 지도에 상기 자율 주행 로봇의 현재 위치를 입력하여, 상기 자율 주행 로봇과 가장 가까운 충돌점까지의 최단 거리를 결정하는 단계;
    상기 자율 주행 로봇의 현재 위치를 중심으로 하고, 상기 최단 거리를 반지름으로 하는 써칭 서클(searching circle)을 설정하는 단계; 및
    상기 써칭 서클의 테두리 상의 지점들 중 하나를 상기 서브 목적지로 결정하는 단계
    를 포함하는, 자율 주행 로봇의 주행 방법.
  4. 제3항에 있어서,
    상기 거리 변환 지도에 기초하여 서브 목적지를 결정하는 단계는,
    상기 써칭 서클의 테두리 상의 지점들을 상기 자율 주행 로봇이 이동 가능한 열린 공간(open space), 상기 자율 주행 로봇이 충돌점 사이를 통과할 수 있는 간격 공간(gap space) 및 상기 자율 주행 로봇이 이동할 수 없는 닫힌 공간(closed space) 중 하나로 분류하는 단계
    를 더 포함하는, 자율 주행 로봇의 주행 방법.
  5. 제4항에 있어서,
    상기 거리 변환 지도에 기초하여 서브 목적지를 결정하는 단계는,
    상기 열린 공간 및 상기 간격 공간에 기초하여 복수의 서브 목적지 후보를 등록하는 단계; 및
    상기 복수의 서브 목적지 후보 중 하나를 상기 서브 목적지로 결정하는 단계
    를 더 포함하는, 자율 주행 로봇의 주행 방법.
  6. 제5항에 있어서,
    상기 열린 공간 및 상기 간격 공간에 기초하여 복수의 서브 목적지 후보를 등록하는 단계는,
    상기 열린 공간을 미리 정해진 각도로 복수의 원호로 분할하는 단계; 및
    상기 복수의 원호 각각으로부터 하나의 서브 목적지 후보를 추출하는 단계
    를 포함하는, 자율 주행 로봇의 주행 방법.
  7. 제6항에 있어서,
    상기 열린 공간 및 상기 간격 공간에 기초하여 복수의 서브 목적지 후보를 등록하는 단계는,
    상기 간격 공간 내의 복수의 지점 중 상기 거리 변환 지도에 의해 산출되는 가장 가까운 충돌점까지의 거리 값이 가장 큰 지점을 서브 목적지 후보로 추출하는 단계
    를 더 포함하는, 자율 주행 로봇의 주행 방법.
  8. 제5항에 있어서,
    상기 서브 목적지는 상기 복수의 서브 목적지 후보 중 상기 목적지와의 거리가 가장 짧은, 자율 주행 로봇의 주행 방법.
  9. 제1항에 있어서,
    상기 거리 변환 지도에 의해 산출되는 각 지점에 대한 가장 가까운 충돌점까지의 거리는 유클리디안(Euclidean) 거리인, 자율 주행 로봇의 주행 방법.
  10. 제1항에 있어서,
    서브 목적지를 결정하는 단계와 상기 자율 주행 로봇을 서브 목적지로 이동시키는 단계를 반복함으로써 상기 자율 주행 로봇을 상기 목적지까지 이동시키는, 자율 주행 로봇의 주행 방법.
  11. 제1항에 따른 방법을 컴퓨터에서 실행하기 위한 명령어들을 기록한 컴퓨터 판독 가능한 비일시적 기록 매체.
  12. 자율 주행 로봇으로서,
    전원부;
    메모리;
    구동부;
    통신 모듈;
    깊이 카메라; 및
    상기 메모리와 연결되고, 상기 메모리에 포함된 컴퓨터 판독 가능한 적어도 하나의 프로그램을 실행하도록 구성된 적어도 하나의 프로세서
    를 포함하고,
    상기 적어도 하나의 프로그램은,
    깊이 카메라로부터 적어도 하나의 깊이 이미지를 수신하고,
    상기 적어도 하나의 깊이 이미지에 기초하여 거리 변환 지도를 생성하고 - 상기 거리 변환 지도는 상기 자율 주행 로봇의 주위 영역의 각 지점에 대해 가장 가까운 충돌점까지의 거리를 나타냄 -,
    상기 거리 변환 지도에 기초하여 서브 목적지를 결정하고,
    상기 자율 주행 로봇을 상기 서브 목적지로 이동시키기 위한 명령어들을 포함하는, 자율 주행 로봇.
  13. 제12항에 있어서,
    상기 거리 변환 지도를 생성하는 것은,
    상기 적어도 하나의 깊이 이미지에 기초하여 상기 자율 주행 로봇의 주위 영역 내의 장애물의 위치를 충돌점으로 나타내는 충돌점 지도(collision map)를 생성하는 것과
    상기 충돌점 지도에 기초하여 상기 자율 주행 로봇의 주위 영역 내의 각 지점에 대해 가장 가까운 충돌점까지의 거리를 산출하는 것
    을 포함하는, 자율 주행 로봇.
  14. 제12항에 있어서,
    상기 거리 변환 지도에 기초하여 서브 목적지를 결정하는 것은,
    상기 거리 변환 지도에 상기 자율 주행 로봇의 현재 위치를 입력하여, 상기 자율 주행 로봇과 가장 가까운 충돌점까지의 최단 거리를 결정하는 것,
    상기 자율 주행 로봇의 현재 위치를 중심으로 하고, 상기 최단 거리를 반지름으로 하는 써칭 서클(searching circle)을 설정하는 것과
    상기 써칭 서클의 테두리 상의 지점들 중 하나를 상기 서브 목적지로 결정하는 것
    을 포함하는, 자율 주행 로봇.
  15. 제14항에 있어서,
    상기 거리 변환 지도에 기초하여 서브 목적지를 결정하는 것은,
    상기 써칭 서클의 테두리 상의 지점들을 상기 자율 주행 로봇이 이동 가능한 열린 공간(open space), 상기 자율 주행 로봇이 충돌점 사이를 통과할 수 있는 간격 공간(gap space) 및 상기 자율 주행 로봇이 이동할 수 없는 닫힌 공간(closed space) 중 하나로 분류하는 것
    을 더 포함하는, 자율 주행 로봇.
  16. 제15항에 있어서,
    상기 거리 변환 지도에 기초하여 서브 목적지를 결정하는 것은,
    상기 열린 공간 및 상기 간격 공간에 기초하여 복수의 서브 목적지 후보를 등록하는 것과
    상기 복수의 서브 목적지 후보 중 하나를 상기 서브 목적지로 결정하는 것
    을 더 포함하는, 자율 주행 로봇.
  17. 제16항에 있어서,
    상기 열린 공간 및 상기 간격 공간에 기초하여 복수의 서브 목적지 후보를 등록하는 것은,
    상기 열린 공간을 미리 정해진 각도로 복수의 원호로 분할하는 것과
    상기 복수의 원호 각각으로부터 하나의 서브 목적지 후보를 추출하는 것
    을 포함하는, 자율 주행 로봇.
  18. 제17항에 있어서,
    상기 열린 공간 및 상기 간격 공간에 기초하여 복수의 서브 목적지 후보를 등록하는 것은,
    상기 간격 공간 내의 복수의 지점 중 상기 거리 변환 지도에 의해 산출되는 가장 가까운 충돌점까지의 거리 값이 가장 큰 지점을 서브 목적지 후보로 추출하는 것
    을 더 포함하는, 자율 주행 로봇.
  19. 제16항에 있어서,
    상기 서브 목적지는 상기 복수의 서브 목적지 후보 중 목적지와의 거리가 가장 짧은, 자율 주행 로봇.
  20. 제12항에 있어서,
    서브 목적지를 결정하는 것과 상기 자율 주행 로봇을 서브 목적지로 이동시키는 것을 반복함으로써 목적지까지 이동하는, 자율 주행 로봇.
PCT/KR2022/006930 2021-05-14 2022-05-13 자율 주행 로봇을 위한 거리 변환 지도 기반의 반응형 네비게이션 WO2022240256A1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020210062671A KR102551275B1 (ko) 2021-05-14 2021-05-14 자율 주행 로봇을 위한 거리 변환 지도 기반의 반응형 네비게이션
KR10-2021-0062671 2021-05-14

Publications (1)

Publication Number Publication Date
WO2022240256A1 true WO2022240256A1 (ko) 2022-11-17

Family

ID=84028757

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2022/006930 WO2022240256A1 (ko) 2021-05-14 2022-05-13 자율 주행 로봇을 위한 거리 변환 지도 기반의 반응형 네비게이션

Country Status (2)

Country Link
KR (1) KR102551275B1 (ko)
WO (1) WO2022240256A1 (ko)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003266345A (ja) * 2002-03-18 2003-09-24 Sony Corp 経路計画装置、経路計画方法及び経路計画プログラム並びに移動型ロボット装置
KR100994075B1 (ko) * 2008-07-08 2010-11-12 한국과학기술연구원 보행로봇의 최적경로 계획방법
KR20170043946A (ko) * 2015-10-14 2017-04-24 국방과학연구소 이동체의 경로계획 장치 및 그 계획 방법
WO2018129648A1 (zh) * 2017-01-10 2018-07-19 深圳市极思维智能科技有限公司 一种机器人及其以深度摄像头和避障系统构建地图的方法
KR102226350B1 (ko) * 2015-12-15 2021-03-12 퀄컴 인코포레이티드 자율 시각 내비게이션

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003266345A (ja) * 2002-03-18 2003-09-24 Sony Corp 経路計画装置、経路計画方法及び経路計画プログラム並びに移動型ロボット装置
KR100994075B1 (ko) * 2008-07-08 2010-11-12 한국과학기술연구원 보행로봇의 최적경로 계획방법
KR20170043946A (ko) * 2015-10-14 2017-04-24 국방과학연구소 이동체의 경로계획 장치 및 그 계획 방법
KR102226350B1 (ko) * 2015-12-15 2021-03-12 퀄컴 인코포레이티드 자율 시각 내비게이션
WO2018129648A1 (zh) * 2017-01-10 2018-07-19 深圳市极思维智能科技有限公司 一种机器人及其以深度摄像头和避障系统构建地图的方法

Also Published As

Publication number Publication date
KR20220154996A (ko) 2022-11-22
KR102551275B1 (ko) 2023-07-04

Similar Documents

Publication Publication Date Title
WO2018128292A1 (ko) 공항용 로봇 및 그의 동작 방법
WO2018052204A1 (ko) 공항 로봇 및 그를 포함하는 공항 로봇 시스템
WO2018070686A1 (ko) 공항용 안내 로봇 및 그의 동작 방법
KR102512969B1 (ko) 무인 반송차의 제어 방법, 제어 장치 및 기억 매체
WO2022055099A1 (ko) 이상 탐지 방법 및 이를 위한 장치
WO2019240452A1 (ko) 실 공간에서 관심지점 관련 정보를 자동으로 수집 및 업데이트하는 방법 및 시스템
WO2021075772A1 (ko) 복수 영역 검출을 이용한 객체 탐지 방법 및 그 장치
WO2020046038A1 (ko) 로봇 및 그의 제어 방법
WO2021066416A1 (en) Unmanned aerial vehicle for inventory management and method of operating the same
WO2020231080A1 (ko) 이동로봇의 센서 데이터를 활용한 교차점 패턴 인식모델 생성 방법 및 교차점 패턴 인식 시스템
WO2018117514A1 (ko) 공항용 로봇 및 그의 동작 방법
CN111630346B (zh) 基于图像和无线电词语的移动设备的改进定位
WO2023113058A1 (ko) 정밀 착륙을 위한 드론 제어 방법
WO2022240256A1 (ko) 자율 주행 로봇을 위한 거리 변환 지도 기반의 반응형 네비게이션
WO2020184776A1 (ko) 코드 인식을 통한 위치 인식 및 이동경로 설정 방법과 무인 모빌리티와 운영시스템
WO2015108401A1 (ko) 복수개의 카메라를 이용한 휴대 장치 및 제어방법
WO2021172673A1 (ko) Lstm 기반 미래 위협 요소 예측 방법 및 장치
WO2021133105A1 (ko) 이동 로봇 장치 및 이의 제어 방법
WO2021158066A1 (en) Electronic apparatus and control method thereof
US20220413512A1 (en) Information processing device, information processing method, and information processing program
WO2023106612A1 (ko) 로봇을 제어하는 방법 및 시스템
WO2023136495A1 (ko) 시각적 측위방법, 이를 이용하는 제어서버 및 건물
WO2023038284A1 (ko) 로봇 및 그 제어 방법
WO2023068562A1 (ko) 3차원 공간 상의 오브젝트를 맵핑하기 위한 평면을 결정하는 방법 및 장치
WO2024058402A1 (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: 22807903

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE