WO2017188708A2 - 이동 로봇, 복수의 이동 로봇 시스템 및 이동 로봇의 맵 학습방법 - Google Patents

이동 로봇, 복수의 이동 로봇 시스템 및 이동 로봇의 맵 학습방법 Download PDF

Info

Publication number
WO2017188708A2
WO2017188708A2 PCT/KR2017/004390 KR2017004390W WO2017188708A2 WO 2017188708 A2 WO2017188708 A2 WO 2017188708A2 KR 2017004390 W KR2017004390 W KR 2017004390W WO 2017188708 A2 WO2017188708 A2 WO 2017188708A2
Authority
WO
WIPO (PCT)
Prior art keywords
mobile robot
node
information
map
displacement
Prior art date
Application number
PCT/KR2017/004390
Other languages
English (en)
French (fr)
Other versions
WO2017188708A3 (ko
Inventor
임승욱
이태경
노동기
Original Assignee
엘지전자 주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 엘지전자 주식회사 filed Critical 엘지전자 주식회사
Priority to DE112017002156.1T priority Critical patent/DE112017002156B4/de
Priority to AU2017256477A priority patent/AU2017256477A1/en
Priority to US16/096,650 priority patent/US20200326722A1/en
Priority to KR1020187031610A priority patent/KR102159971B1/ko
Publication of WO2017188708A2 publication Critical patent/WO2017188708A2/ko
Publication of WO2017188708A3 publication Critical patent/WO2017188708A3/ko
Priority to AU2020233700A priority patent/AU2020233700A1/en

Links

Images

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • G05D1/02Control of position or course in two dimensions
    • G05D1/021Control of position or course in two dimensions specially adapted to land vehicles
    • G05D1/0268Control of position or course in two dimensions specially adapted to land vehicles using internal positioning means
    • G05D1/0274Control of position or course in two dimensions specially adapted to land vehicles using internal positioning means using mapping information stored in a memory device
    • 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
    • AHUMAN NECESSITIES
    • A47FURNITURE; DOMESTIC ARTICLES OR APPLIANCES; COFFEE MILLS; SPICE MILLS; SUCTION CLEANERS IN GENERAL
    • A47LDOMESTIC WASHING OR CLEANING; SUCTION CLEANERS IN GENERAL
    • A47L9/00Details or accessories of suction cleaners, e.g. mechanical means for controlling the suction or for effecting pulsating action; Storing devices specially adapted to suction cleaners or parts thereof; Carrying-vehicles specially adapted for suction cleaners
    • A47L9/28Installation of the electric equipment, e.g. adaptation or attachment to the suction cleaner; Controlling suction cleaners by electric means
    • A47L9/2836Installation of the electric equipment, e.g. adaptation or attachment to the suction cleaner; Controlling suction cleaners by electric means characterised by the parts which are controlled
    • A47L9/2852Elements for displacement of the vacuum cleaner or the accessories therefor, e.g. wheels, casters or nozzles
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J11/00Manipulators not otherwise provided for
    • B25J11/008Manipulators for service tasks
    • B25J11/0085Cleaning
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/0003Home robots, i.e. small robots for domestic use
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1615Programme controls characterised by special kind of manipulator, e.g. planar, scara, gantry, cantilever, space, closed chain, passive/active joints and tendon driven manipulators
    • B25J9/162Mobile manipulator, movable base with manipulator arm mounted on it
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • G05D1/02Control of position or course in two dimensions
    • G05D1/021Control of position or course in two dimensions specially adapted to land vehicles
    • G05D1/0212Control of position or course in two dimensions specially adapted to land vehicles with means for defining a desired trajectory
    • G05D1/0219Control of position or course in two dimensions specially adapted to land vehicles with means for defining a desired trajectory ensuring the processing of the whole working surface
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • G05D1/02Control of position or course in two dimensions
    • G05D1/021Control of position or course in two dimensions specially adapted to land vehicles
    • G05D1/0212Control of position or course in two dimensions specially adapted to land vehicles with means for defining a desired trajectory
    • G05D1/0221Control of position or course in two dimensions specially adapted to land vehicles with means for defining a desired trajectory involving a learning process
    • AHUMAN NECESSITIES
    • A47FURNITURE; DOMESTIC ARTICLES OR APPLIANCES; COFFEE MILLS; SPICE MILLS; SUCTION CLEANERS IN GENERAL
    • A47LDOMESTIC WASHING OR CLEANING; SUCTION CLEANERS IN GENERAL
    • A47L2201/00Robotic cleaning machines, i.e. with automatic control of the travelling movement or the cleaning operation
    • A47L2201/04Automatic control of the travelling movement; Automatic obstacle detection

Definitions

  • the present invention relates to a mobile robot, a plurality of mobile robot systems, and a map learning method of a mobile robot, and more particularly, a map is learned using information generated by the mobile robot and information received from another mobile robot. It is about technology to do.
  • Robots have been developed for industrial use and have been a part of factory automation. Recently, the application of robots has been further expanded, medical robots, aerospace robots, and the like have been developed, and home robots that can be used in general homes have also been made. Among these robots, a moving robot capable of traveling by magnetic force is called a mobile robot.
  • a representative example of a mobile robot used at home is a robot cleaner, which is a home appliance that sucks and cleans dust or foreign matter while moving a driving area to be cleaned.
  • the robot cleaner may be driven by itself with a rechargeable battery, and when the remaining battery is insufficient or after cleaning is completed, the robot cleaner may find a charging station and move itself to charge the battery.
  • Two or more mobile robots can travel in the same indoor space, for example, because the running area is large.
  • the first problem is to propose a technique in which map learning is efficiently performed by combining information of each other when a plurality of mobile robots are traveling in the same travel space.
  • the mobile robots have a problem in that it is difficult to measure the relative distances for measuring relative distances to each other, for reasons such as distances or obstacles.
  • the second task is to solve this problem and propose a technique for efficiently partitioning the search zone without measuring the relative distance between the mobile robots.
  • the mobile robot divides the zone based on the measured relative distances to each other.
  • the shape of the driving zone is complicated or when the position of one of the mobile robots is concentrated in the corner of the driving zone, There is a problem that efficient zoning is not possible.
  • the third task is to solve this problem, rather than to first distribute and search zones, but to present a technique for automatically and efficiently distributing search zones while learning the driving zone first.
  • the fourth task is to propose a technique for continuously correcting map learning information generated by a mobile robot with high accuracy.
  • the fifth task is to propose a technique in which a plurality of robots learns maps and shares them with each other, while the plurality of robots accurately modify map learning information of themselves and each other.
  • the map learning method of the mobile robot generating the node information based on the displacement measured while the mobile robot is running, and receives the node group information of the other mobile robot Steps.
  • the node information on the map of one mobile robot is composed of node information directly generated by the present mobile robot and node group information of another mobile robot.
  • the node information may include a node unique index, corresponding acquired image information, distance information with a surrounding environment, node coordinate information, and node update time information.
  • the node group information of the other mobile robot may be a set of node information excluding all node information generated by the other mobile robot from all node information stored by the other mobile robot.
  • the learning method may include transmitting node group information of the mobile robot to the other mobile robots.
  • the learning method includes the steps of measuring a loop displacement between two nodes generated by the mobile robot, and a node generated by the mobile robot on a map based on the measured loop displacement. It may include modifying the coordinates of.
  • the learning method may include measuring a boundary displacement between a node generated by the mobile robot and a node generated by another mobile robot.
  • the learning method may include adjusting coordinates of a node group received from another mobile robot on a map based on the measured boundary displacement, or based on the measured boundary displacement, the mobile robot viewed on a map. And modifying the coordinates of the generated node.
  • an algorithm for selecting either alignment or modification may be implemented.
  • the learning method the coordinates of the node group received from the other mobile robot on the map based on the measured boundary displacement, and the coordinates of the node group received from the other mobile robot on the map in advance And modifying coordinates of the node generated by the mobile robot on the map based on the measured boundary displacement.
  • the present invention can be embodied based on a mutual process between a plurality of robots for achieving the first to fifth tasks.
  • a plurality of mobile robots generate node information of each mobile robot based on displacements measured while driving, and transmit and receive respective node group information to each other. Steps.
  • a boundary displacement is measured between two nodes each generated by the plurality of mobile robots, and based on the measured boundary displacement, any one mobile robot And adjusting the coordinates of the node group received from the other mobile robot on the map of and adjusting the coordinates of the node group received from the one mobile robot on the map of the other mobile robot.
  • the learning method modifies the coordinates of the node generated by the one mobile robot on the map of one mobile robot based on the measured boundary displacement, and the other one. And modifying the coordinates of the node generated by the other mobile robot on the map of the mobile robot.
  • an algorithm for selecting either alignment or modification may be implemented.
  • the learning method when the coordinates of the node group received from the other mobile robot on the map are not pre-adjusted, based on the measured boundary displacement, the learning method is received from the other mobile robot on the map of one mobile robot. Adjusting the coordinates of the node group and adjusting the coordinates of the node group received from the one mobile robot on the map of the other mobile robot.
  • the learning method when the coordinates of the node group received from the other mobile robot on the map in advance, based on the measured boundary displacement, any one of the mobile robot on the map of any one mobile robot Modifying the coordinates of the generated node, and modifying the coordinates of the node generated by the other mobile robot on the map of the other mobile robot.
  • the node information includes node update time information, and if the received node information and the stored node information for the same node are different, the latest node is based on the node update time information. You can select the information.
  • the node group information received by the first mobile robot from the second mobile robot is determined by the second mobile robot.
  • the node group information received from the third mobile robot may be included.
  • the latest node information may be selected based on the node update time information.
  • a program for executing the learning method may be implemented, and a computer-readable recording medium recording the program may be implemented.
  • the mobile robot according to the present invention includes a traveling unit for moving the main body, a traveling displacement measuring unit for measuring the traveling displacement, a receiving unit for receiving node group information of the other mobile robot, and the And a controller configured to generate node information on the map based on the driving displacement and add node group information of the other mobile robot to the map.
  • the mobile robot may include a transmitter that transmits node group information of the mobile robot to another mobile robot.
  • the controller may include a node information generation module, a node information modification module, and a node group coordinate adjustment module.
  • the present invention can be embodied centering on a system between a plurality of robots for achieving the first to fifth tasks.
  • the plurality of mobile robot systems including a first mobile robot and a second mobile robot according to the present invention
  • the first mobile robot the first running portion for moving the first mobile robot, the driving of the first mobile robot
  • a first traveling displacement measuring unit measuring a displacement
  • a first receiving unit receiving node group information of the second mobile robot
  • a first transmitting unit transmitting node group information of the first mobile robot to the second mobile robot
  • a first controller configured to generate node information on the first map based on the displacement of the first mobile robot and add node group information of the second mobile robot to the first map.
  • the second mobile robot may further include a second travel unit for moving the second mobile robot, a second travel displacement measurement unit for measuring travel displacement of the second mobile robot, and node group information of the first mobile robot. Generates node information on the second map based on the second receiver receiving the second node, the second transmitter transmitting the node group information of the second mobile robot to the second mobile robot, and the traveling displacement of the second mobile robot. And a second controller configured to add node group information of the first mobile robot to the second map.
  • each component of the first mobile robot and the second mobile robot may be distinguished and marked with 'first' and 'second', respectively, in front of each component described above.
  • the first controller may include a first node information generation module, a first node information modification module, and a first node group coordinate adjustment module.
  • the second controller may include a second node information generation module, a second node information modification module, and a second node group coordinate adjustment module.
  • the plurality of mobile robots go through the process of reducing the error while sharing the map information with each other, it is possible to greatly improve the accuracy of the learned map.
  • FIG. 1 is a perspective view showing a mobile robot and a charging table for charging the mobile robot according to an embodiment of the present invention.
  • FIG. 2 illustrates an upper surface of the mobile robot shown in FIG. 1.
  • FIG. 3 illustrates a front portion of the mobile robot shown in FIG. 1.
  • FIG. 4 illustrates a bottom portion of the mobile robot illustrated in FIG. 1.
  • FIG. 5 is a block diagram showing a control relationship between the main components of the mobile robot according to an embodiment of the present invention.
  • FIG. 6 is a flowchart illustrating a map learning process and a location recognition process on a map of a mobile robot according to an embodiment of the present invention.
  • FIG. 7 shows one driving zone X consisting of a plurality of zones A1, A2, A3, A4, A5 and a plurality of zones A1, A2, A3, A4, A5, according to an embodiment.
  • FIG. 8 exemplarily shows a plurality of zones A1 and A2 in the driving zone X according to an embodiment, and shows a plurality of positions (nodes) A1p1 and A1p2 in each of the zones A1 and A2 shown. , A1p3, A1p4, A2p1, A2p1, A2p1, A2p1).
  • FIG. 9 is a diagram illustrating feature points f1, f2, f3, f4, f5, f6, and f7 of an image acquired at any one position A1p1 of FIG. 8.
  • 10 is a descriptor that is an n-dimensional vector respectively corresponding to all feature points f1, f2, f3, .., fm in one zone A1 according to one embodiment. It is a conceptual diagram which shows the schematic which calculates.
  • FIG. 11 illustrates a plurality of descriptors calculated through the process of FIG. 10 in one zone A1.
  • I a schematic diagram of classifying a group into a plurality of groups (A1G1, A1G2, A1G3, .., A1Gl) according to a predetermined classification rule, and a plurality of descriptors included in the same group are respectively represented according to a predetermined representative rule.
  • This is a conceptual diagram showing the conversion diagram to.
  • FIG. 12 is a representative descriptor of each of FIG. It is a figure which shows the histogram of any one area
  • FIG. 13 is a diagram illustrating recognition feature points h1, h2, h3, h4, h5, h6, and h7 in an acquired image at an unknown current position.
  • FIG. 14 is an identification descriptor that is an n-dimensional vector corresponding to all recognition feature points h1, h2, h3, h4, h5, h6, and h7 in the image obtained in FIG. It is a conceptual diagram which shows the schematic which calculates.
  • FIG. 15 is a representative descriptor of the area A1 to which the recognition descriptor of FIG. 14 is compared according to a predetermined conversion rule.
  • a histogram having a frequency of the recognition score Sh which becomes larger as the number wh of each representative descriptor is shown.
  • FIG. 16 compares each recognition feature distribution calculated through the process of FIG. 15 with respect to each zone and each zone feature distribution according to a predetermined comparison rule to calculate each probability, and calculates any one zone.
  • FIG. 17 is a flowchart illustrating a process S100 according to a first embodiment in which only one mobile robot learns a map while driving a driving zone.
  • FIG. 18 is a block diagram illustrating configuration information constituting node N information and information affecting node N information according to the first embodiment of FIG. 17.
  • FIG. 19 is a schematic diagram showing a node N and a displacement C between nodes generated while one mobile robot moves according to the first embodiment of FIG. 17.
  • FIG. 20 is a flowchart illustrating a process S200 according to a second embodiment in which a plurality of mobile robots learn a map while driving a travel zone.
  • FIG. 21 is a block diagram illustrating configuration information constituting node N information, information affecting node N information, and information affecting node information of another robot according to the second embodiment of FIG. 20. to be.
  • FIG. 22 to 24 are diagrams illustrating a node N and a displacement C between nodes generated while the plurality of mobile robots move in accordance with the second embodiment of FIG. 20, and illustrating a map learned by the A mobile robot. It is also.
  • FIG. 22 is a diagram of a state in which the B mobile robot node group (GB) coordinates are not yet adjusted in the map learned by the mobile A robot
  • FIG. 23 is a mobile A robot as boundary displacement EC1 between nodes is measured.
  • the coordinates of the node group (GB) of the mobile B mobile robot are adjusted
  • FIG. 24 is a map of the mobile A mobile robot learning as additional boundary displacements EC2 and EC3 are measured between nodes.
  • Figure shows the state in which node (N) information is modified.
  • FIG. 25 shows nodes N and displacements C generated by moving three mobile robots, loop displacements A-LC1, B-LC1 and C-LC1 between nodes, and boundary displacement AB between nodes.
  • Fig. 1 is a schematic diagram showing the maps that A mobile robot learns, and shows -EC1, BC-EC1, BC-EC2, CA-EC1, and CA-EC2.
  • 26A to 26F are diagrams illustrating a scenario in which the present mobile robot 100a and another mobile robot 100b cooperate to generate a map and use the same, and the actual position of the mobile robot 100a and 100b is illustrated. The map which this mobile robot 100a learns is shown.
  • the mobile robot 100 of the present invention means a robot that can move itself by using a wheel or the like, and may be a home helper robot or a robot cleaner.
  • the robot cleaner 100 of the mobile robot will be described as an example with reference to FIGS. 1 to 4, but it is not necessarily limited thereto.
  • FIG. 1 is a perspective view illustrating a charging stand 200 for charging a robot cleaner 100 and a mobile robot.
  • FIG. 2 illustrates an upper surface of the robot cleaner 100 shown in FIG. 1.
  • 3 is a front view of the robot cleaner 100 shown in FIG. 1.
  • 4 illustrates a bottom portion of the robot cleaner 100 shown in FIG. 1.
  • the robot cleaner 100 includes a main body 110 and an image acquisition unit 120 for acquiring an image around the main body 110.
  • the portion facing the ceiling in the cleaning zone is defined as the upper surface portion (see FIG. 2)
  • the portion facing the bottom in the cleaning zone is the bottom portion (see FIG. 4).
  • the portion of the portion forming the circumference of the main body 110 between the upper surface portion and the lower surface portion in the direction of travel is defined as the front portion (see Fig. 3).
  • the robot cleaner 100 includes a driving unit 160 to move the main body 110.
  • the driving unit 160 includes at least one driving wheel 136 for moving the main body 110.
  • the driving unit 160 may include a driving motor.
  • the driving wheels 136 may be provided at the left and right sides of the main body 110, respectively, hereinafter referred to as left wheels 136 (L) and right wheels 136 (R).
  • the left wheel 136 (L) and the right wheel 136 (R) may be driven by one drive motor, but the left wheel drive motor and the right wheel 136 (R) which drive the left wheel 136 (L) as necessary.
  • Each right wheel drive motor for driving may be provided.
  • the driving direction of the main body 110 can be switched to the left or the right, with a difference in the rotational speed of the left wheel 136 (L) and the right wheel 136 (R).
  • An inlet 110h through which air is sucked may be formed in a bottom portion of the main body 110, and an inhalation device (not shown) that provides suction power so that air may be sucked through the inlet 110h in the main body 110. And a dust container (not shown) for collecting dust sucked with air through the suction port 110h.
  • the main body 110 may include a case 111 forming a space in which various components of the robot cleaner 100 are accommodated.
  • An opening for inserting and removing the dust container may be formed in the case 111, and a dust container cover 112 that opens and closes the opening may be rotatably provided with respect to the case 111.
  • the battery 138 supplies not only the driving motor but also power required for the overall operation of the robot cleaner 100.
  • the robot cleaner 100 may travel to return to the charging station 200 for charging, and during such a return driving, the robot cleaner 100 may automatically position the charging station 200. Can be detected.
  • Charging station 200 may include a signal transmitter (not shown) for transmitting a predetermined return signal.
  • the return signal may be an ultrasonic signal or an infrared signal, but is not necessarily limited thereto.
  • the robot cleaner 100 may include a signal detector (not shown) that receives the return signal.
  • the charging unit 200 may transmit an infrared signal through a signal transmitter, and the signal detector may include an infrared sensor that detects the infrared signal.
  • the robot cleaner 100 moves to the position of the charging stand 200 according to the infrared signal transmitted from the charging stand 200 and docks with the charging stand 200. The docking is performed between the charging terminal 133 of the robot cleaner 100 and the charging terminal 210 of the charging table 200.
  • the image acquisition unit 120 photographs a cleaning area, and may include a digital camera.
  • the digital camera includes at least one optical lens and a plurality of photodiodes (eg, pixels) formed by the light passing through the optical lens, for example, a CMOS image sensor.
  • a digital signal processor DSP for constructing an image based on the signals output from the photodiodes.
  • the digital signal processor may generate not only a still image but also a moving image including frames composed of still images.
  • the image acquisition unit 120 is provided on the upper surface of the main body 110, to obtain an image of the ceiling in the cleaning area, but the position and the shooting range of the image acquisition unit 120 should be limited thereto. no.
  • the image acquisition unit 120 may be provided to acquire an image in front of the main body 110.
  • the present invention can be implemented with only the image of the ceiling.
  • the robot cleaner 100 may further include an obstacle detecting sensor 131 for detecting an obstacle in front of the robot cleaner 100.
  • the robot cleaner 100 may further include a cliff detection sensor 132 for detecting the presence of a cliff on the floor in the cleaning area, and a lower camera sensor 139 for acquiring an image of the floor.
  • the robot cleaner 100 includes an operation unit 137 that can input On / Off or various commands.
  • the mobile robot 100 includes a controller 140 for processing and determining various information such as recognizing a current position, and a storage 150 for storing various data.
  • the control unit 140 includes various components constituting the mobile robot 100 (for example, the driving displacement measuring unit 121, the obstacle detecting sensor 131, the image acquisition unit 120, the operation unit 137, and the driving unit). (160, the transmitter 170, the receiver 190, etc.) to control the overall operation of the mobile robot 100, the driving control module 141, zone classification module 142, learning module 143 And a recognition module 144.
  • the storage unit 150 records various types of information necessary for the control of the mobile robot 100 and may include a volatile or nonvolatile recording medium.
  • the recording medium stores data that can be read by a microprocessor, and includes a hard disk drive (HDD), a solid state disk (SSD), a silicon disk drive (ROM), a ROM, a RAM, a CD-ROM, Magnetic tapes, floppy disks, optical data storage devices, and the like.
  • the storage unit 150 may store a map for the cleaning area.
  • the map may be input by an external terminal capable of exchanging information with the mobile robot 100 through wired or wireless communication, or may be generated by the mobile robot 100 by learning itself.
  • examples of the external terminal may include a remote controller, a PDA, a laptop, a smartphone, a tablet, and the like equipped with an application for setting a map.
  • the map may indicate the location of rooms in the travel zone.
  • the current position of the mobile robot 100 may be displayed on the map, and the current position of the mobile robot 100 on the map may be updated during the driving process.
  • the controller 140 may include a zone classification module 142 that divides the driving zone X into a plurality of zones according to a predetermined criterion.
  • the driving zone X may be defined as the sum of all the plane zones on which the mobile robot 100 has traveled and the zones on the plane that are currently traveling.
  • the zone may be divided based on the respective rooms (rooms) in the travel zone (X).
  • the zone classification module 142 may divide the driving zone X into a plurality of zones separated from each other in driving ability. For example, two indoor spaces completely separated from each other on the same line may be divided into two zones. As another example, even in the same indoor space, the zone may be divided based on each floor in the driving zone (X).
  • the controller 140 may include a learning module 143 that generates a map of the driving zone X. In order to recognize the global location, the learning module 143 may process an image acquired at each location and associate it with the map.
  • the driving displacement measuring unit 121 may be, for example, the lower camera sensor 139.
  • the driving displacement measuring unit 121 may measure the displacement according to the driving, for example, by continuously comparing the changed floor images using pixels.
  • the displacement according to the running is a concept including a moving direction and a moving distance. Assuming that the bottom surface of the travel zone is on a plane where the X and Y axes are orthogonal, the travel displacement can be expressed as ( ⁇ x, ⁇ y, ⁇ ), and ⁇ x, ⁇ y are respectively in the X and Y axis directions. Means displacement, and ⁇ means rotation angle.
  • the driving control module 141 controls the driving of the mobile robot 100 and controls the driving of the driving unit 160 according to the driving setting.
  • the driving control module 141 may determine the movement path of the mobile robot 100 based on the operation of the driving unit 160. For example, the driving control module 141 may determine the current or past moving speed of the mobile robot 100, the distance traveled, and the like based on the rotational speed of the driving wheel 136, and each driving wheel 136 ( L) and 136 (R) may also determine the current or past direction change process. Based on the driving information of the mobile robot 100 thus identified, the position of the mobile robot 100 on the map may be updated.
  • the mobile robot 100 measures the driving displacement using at least one of the driving displacement measuring unit 121, the driving control module 141, the obstacle detecting sensor 131, and the image obtaining unit 125.
  • the control unit 140 includes a node information generation module 143a for generating each node (N) information to be described later on a map based on the driving displacement information.
  • N node
  • the coordinates of the generated node N may be generated using the driving displacement measured based on the origin node O to be described later.
  • the coordinate of the generated node N is a relative coordinate value with respect to the origin node O.
  • the generated node N information may include corresponding acquired image information.
  • 'corresponding' means that a pair of objects (eg, a pair of data) are matched with each other, so that if one of the two is inputted, a relationship can be formed. it means. For example, when one of the positions is input, an acquired image acquired at one of the positions may be output, or when one of the acquired images is input, any one position at which one of the acquired images is obtained. When one is outputted, the acquired image and any one position may be expressed as 'corresponding'.
  • the mobile robot 100 may generate a driving zone of a real map based on the displacement between the node N and the node.
  • the node N means data of a point of reality and represented as a point on the map. That is, each position of the reality corresponds to each node on the learned map, and the position of the reality and the nodes on the map may not necessarily coincide with each other, and there may be an error. It is a challenge. Regarding the process of reducing this error, the description of the loop displacement LC and the boundary displacement EC will be described later.
  • the mobile robot 100 uses at least one of the obstacle detecting sensor 131 and the image acquisition unit 125 to correct an error of the node coordinate information D186 among the previously generated node N information D180.
  • the controller 140 includes a node information correction module 143b for correcting the information of each node N generated on the map based on the error of the measured node coordinate information. do.
  • any one node N1 information D180 generated based on the driving displacement includes node coordinate information D186 and acquired image information D183 corresponding to the node N1.
  • the acquired image information D183 corresponding to the node N2 is compared with the acquired image information D183 corresponding to the node N1 among the information of the other node N2 generated near the node N1, the two nodes N1.
  • the displacement between N2) (loop displacement LC or boundary displacement EC to be described later) is measured.
  • the coordinate information of the coordinate information D186 of the two nodes N1 and N2 may be corrected.
  • coordinate information D186 of other nodes connected to the two nodes N1 and N2 may also be modified.
  • the node coordinate information D186, which has been once modified may also be repeatedly modified through the above process. Details thereof will be described later.
  • the recognition module 144 may recognize the unknown current position on the map using at least one of the obstacle sensor 131 and the image acquisition unit 125.
  • a process of recognizing an unknown current position using the image acquisition unit will be described as an example, but is not necessarily limited thereto.
  • the transmitter 170 may transmit the information of the mobile robot to another mobile robot or a central server.
  • the information transmitted by the transmitter 170 may be node N information or node group M information of the present mobile robot, which will be described later.
  • the receiver 190 may receive information of another mobile robot from another mobile robot or a central servo.
  • the information received by the receiver 190 may be node N information or node group M information of another mobile robot, which will be described later.
  • a mobile robot learning a driving zone using the acquired image and storing it as a map, and estimating a current position using an image of an unknown current position in a situation such as a position leap, and a control method thereof Referring to one embodiment of the following.
  • a control method includes: a zone classification step (S10) of dividing a driving zone (X) into a plurality of zones according to a predetermined criterion, a learning step of learning a driving zone to generate a map, and a current on the map
  • a recognition step is to determine the area to which the location belongs.
  • the recognition step may include determining a current position.
  • the subregion may be expressed as 'determining'.
  • determining means not only selecting one of a plurality of objects, but also a case of selecting one because there is only one object.
  • Zone division step (S10) is carried out in the zone classification module 142, the learning step is carried out in the learning module 143, the recognition step may be carried out in the recognition module 144.
  • the driving zone X may be divided into a plurality of zones according to a predetermined criterion. Referring to FIG. 7, the zone may be classified based on the rooms A1, A2, A3, A4, and A5 in the driving zone X. In FIG. 8, each chamber A1, A2, A3, A4, A5 is distinguished by a wall 20 and an openable door 21. As described above, the plurality of zones may be divided on the basis of layers or separated on the basis of space separated in a line. As another example, the driving zone may be divided into a plurality of large zones, and each large zone may be divided into a plurality of sub-zones.
  • each of the zones A1 and A2 includes a plurality of positions forming the corresponding zone.
  • a location having corresponding acquired image information and coordinate information may be defined as a node N on the map.
  • Either zone A1 includes a plurality of positions (nodes) A1p1, A1p2, A1p3,... , A1pn (n is a natural number).
  • a description of a process of learning a map and associating it with data (feature point data) obtained from an acquired image (obtained image corresponding to each node N) acquired in each node N is as follows.
  • the learning step includes: a descriptor calculation step of acquiring images at a plurality of locations (nodes on a map) in each of the regions, extracting feature points from each of the images, and calculating descriptors corresponding to each of the feature points ( S15).
  • Descriptor calculation step (S15) may proceed simultaneously with the zone division step (S10).
  • the term 'calculation' means outputting other data using input data, and includes 'calculating the input numerical data to obtain other data as a result value'.
  • the input data and / or the calculated data may be plural.
  • the image acquisition unit 120 acquires images around the mobile robot 100.
  • An image acquired by the image acquisition unit 120 is defined as an 'acquisition image'.
  • the image acquisition unit 120 acquires an acquired image at each position on the map.
  • each node eg, A1p1, A1p2, A1p3,..., A1pn
  • Each node information D180 including corresponding acquired image information D183 is stored in the storage 150.
  • FIG. 9 is a view showing an acquired image photographed at a certain position in a driving zone, and lights, edges, corners, blobs, ridges, etc., which are positioned on the ceiling through the image. Various features of are identified.
  • the learning module 143 detects and extracts a feature point (eg, f1, f2, f3, f4, f5, f6, f7 of FIG. 12) from each of the acquired images.
  • a feature point eg, f1, f2, f3, f4, f5, f6, f7 of FIG. 12
  • various methods of detecting feature points from an image are well known.
  • Several feature detectors are known that are suitable for the detection of these features. Examples include Canny, Sobel, Harris & Stephens / Plessey, SUSAN, Shi & Tomasi, Level curve curvature, FAST, Laplacian of Gaussian, Difference of Gaussians, Determinant of Hessian, MSER, PCBR, and Gray-level blobs detectors.
  • FIG. 10 is a schematic diagram illustrating a calculation of a descriptor through a descriptor calculation step S15 based on each feature point f1, f2, f3, ..., fm.
  • M is a natural number
  • SIFT Scale
  • Feature points f1, f2, f3, .., fm
  • Convert means to replace one data with another.
  • the descriptor may be represented as an n-dimensional vector (n is a natural number). Means n-dimensional vector. In braces ⁇ , f1 (1), f1 (2), f1 (3), .., f1 (n) It means the value of each dimension to form. Remainder Since the notation for is the same way, the description is omitted.
  • the SIFT selects feature points f1, f2, f3, f4, f5, f6, and f7 that are easily identified, such as corner points, in the acquired image of FIG. 9, and then selects each feature point f1, f2, f3, f4, f5, f6, f7)
  • the amount of change in each direction is measured for each dimension. This is an image recognition technique for obtaining an n-dimensional vector.
  • SIFT can detect invariant features of scale, rotation, and brightness change of a photographing target, and thus the same area is unchanged even when the robot cleaner 100 is photographed with different postures (ie, rotation invariant (Rotation) -invariant)) feature can be detected.
  • rotation invariant (Rotation) -invariant) feature can be detected.
  • HOG Histogram of Oriented Gradient
  • Haar feature Haar feature
  • Fems Fems
  • LBP Local Binary Pattern
  • MCT Modified Census Transform
  • the learning module 143 classifies at least one descriptor into a plurality of groups according to a predetermined sub-classification rule for each acquired image based on descriptor information obtained through the acquired image of each position, and assigns the same group to the same group according to the predetermined sub-representation rule.
  • Each contained descriptor can be converted into a lower representative descriptor (in this case, if there is only one descriptor in the same group, the descriptor and the lower representative descriptor may be the same as the result).
  • all descriptors gathered from the acquired images in a predetermined zone are classified into a plurality of groups according to a predetermined sub-classification rule, and the descriptors included in the same group according to the predetermined sub-representation rule are each lower representative descriptors. You can also convert to.
  • the contents of the predetermined sub classification rule and the predetermined sub representative rule may be understood through the description of the predetermined classification rule and the predetermined representative rule to be described later.
  • the feature distribution of each position can be obtained.
  • Each positional feature distribution can be represented by a histogram or an n-dimensional vector.
  • a method of estimating an unknown current position based on a descriptor calculated from each feature point without passing through the predetermined sub classification rule and the predetermined sub representative rule is known.
  • the learning step includes a zone feature distribution that stores the zone feature distribution calculated for each of the zones according to the predetermined learning rule based on a plurality of the descriptors.
  • a calculation step S20 is included.
  • the predetermined learning rule includes a predetermined classification rule for classifying a plurality of the descriptors into a plurality of groups, and a predetermined representative rule for converting the descriptors included in the same group into representative descriptors, respectively. And certain subordinate representative rules, may be understood through this description.
  • the learning module 143 may classify a plurality of descriptors obtained from all acquired images in each zone into a plurality of groups according to a predetermined classification rule (first case), and the plurality of subordinates calculated by the lower representative rule.
  • the representative descriptor may be classified into a plurality of groups according to a predetermined classification rule (second case).
  • second case a descriptor that is a classification target of the predetermined classification rule is considered to refer to the lower representative descriptor.
  • A1G1, A1G2, A1G3,... , A1Gl shows each group that will divide all descriptors in zone A1 according to a given classification rule.
  • the brackets [] show at least one descriptor classified in the same group. For example, descriptors classified in any one group A1G1 to be. Remaining A1G2, A1G3,... , A1Gl notation is the same way, so description is omitted.
  • the learning module 143 converts descriptors included in the same group into representative descriptors according to the predetermined representative rule.
  • Figure 14 Shows a representative descriptor converted according to a predetermined representative rule. Multiple descriptors belonging to the same group are all converted to the same representative descriptor. For example, a descriptor belonging to one group A1G1 Shall be Is converted to. That is, three different descriptors belonging to A1G1 Three representative descriptors Is converted to. Remaining A1G2, A1G3,... Since the conversion of descriptors belonging to the A1Gl group is the same, the description thereof is omitted.
  • the predetermined classification rule may be based on the distance between two n-dimensional vectors. For example, descriptors (n-dimensional vectors) whose distance of the n-dimensional vector is less than or equal to the predetermined value ST1 can be classified into the same group, and two n-dimensional vectors are provided. Equation 1 to be classified into the same group may be defined as follows.
  • d is the distance between two n-dimensional vectors
  • ST1 is a predetermined value.
  • the predetermined representative rule may be based on an average value of at least one descriptor (n-dimensional vector) classified into the same group. For example, a descriptor (n-dimensional vector) classified into any one group Assuming that x is the number of descriptors classified into any one group, a representative descriptor (n-dimensional vector) May be defined as in Equation 2 below.
  • the type of the representative descriptor converted according to the predetermined classification rule and the predetermined representative rule and the number (weight, w) of each representative descriptor are data in units of each zone.
  • the zone feature distribution may be calculated based on the type of the representative descriptor and the number w for each type for each of the zones (eg, A1). Based on all acquired images acquired in one zone, the types of all representative descriptors in the one zone and the number w of each type may be calculated.
  • One zone feature distribution can be expressed as a histogram, where each type of representative descriptor is regarded as a representative value (horizontal axis value), and the smaller the number (weight, w) for each type, the greater the score (s) (vertical) (Refer to FIG. 12).
  • the score s1 of one representative descriptor indicates a corresponding region (feature distribution) of the weight (w1) of the one representative descriptor. It can be defined as the number of all representative descriptors (total weight (w) of the corresponding area) calculated from the area to be obtained, which can be expressed by Equation 3 below.
  • w1 is the weight of any one of the above representative descriptors
  • Equation (3) gives a larger score (s) to the representative descriptor calculated by the sparse feature point, and more precisely when the acquired image of the unknown current position to be described later has the feature point with the sparse characteristic It is to be able to estimate the area to which it belongs.
  • One zone feature distribution histogram may be expressed as a zone feature distribution vector that looks at each representative value (representative descriptor) in each dimension and views the frequency (score, s) of each representative value in the numerical value of each dimension.
  • Zone feature distribution vectors respectively corresponding to the plurality of zones A1, A2, ..., Ak on the map may be calculated (k is a natural number).
  • the region to which the current position belongs is estimated based on data of each previously stored region feature distribution vector and the like.
  • a process of estimating the current position based on data such as a descriptor or a lower representative descriptor will be described below.
  • the recognition step may include a recognition descriptor calculation step (S31) of obtaining an image of the current location, extracting at least one recognition feature point from the obtained image, and calculating the recognition descriptors corresponding to the recognition feature points, respectively. do.
  • S31 recognition descriptor calculation step
  • the mobile robot 100 acquires an acquired image through the image acquisition unit 120 at an unknown current position.
  • the recognition module 144 extracts at least one recognition feature point from an image acquired at an unknown current position.
  • FIG. 13 illustrates an image photographed at an unknown current location. Various images such as lightings, edges, corners, blobs, and ridges located on the ceiling through the image are illustrated. Features are identified. A plurality of recognition feature points h1, h2, h3, h4, h5, h6, and h7 located on the ceiling are identified through the image.
  • the 'recognition feature point' is a term describing a process performed by the recognition module 144 and is defined differently from a 'feature point' which is a term describing the process performed by the learning module 143.
  • the characteristics of the outside world are just defined in different terms.
  • the recognition module 144 detects features from the acquired image. Description of the various methods of detecting features from an image in the field of computer vision technology and the various feature detectors suitable for the detection of these features are described above.
  • the recognition module 144 is applied to the recognition feature points h1, h2, h3, h4, h5, h6, and h7, respectively. Calculate the corresponding recognition descriptor.
  • the recognition descriptor may be expressed as an n-dimensional vector.
  • the recognition step determines an area to which the current location belongs by calculating each of the zone feature distribution and the recognition descriptor according to the predetermined estimation rule (S33). ).
  • "computation" means that input values (one or more input values) are calculated according to certain rules. For example, when the small region feature distribution and / or the recognition descriptor are calculated according to the predetermined estimation rule based on two input values, the small region feature distribution and / or the recognition descriptor may be expressed as 'operation'.
  • the predetermined estimation rule includes a predetermined conversion rule that calculates a recognition feature distribution that is comparable to the zone feature distribution based on the at least one recognition descriptor.
  • "comparable" means that a certain rule for comparison with any one object can be applied. For example, in order to compare the number of two sets of objects of various colors by color, the colors of each object forming one set according to the color classification criteria of one of the two sets are classified. A set can be expressed as 'comparable'. In another example, in order to compare the number of one set and another set of n-dimensional vectors having different numbers for each kind, by the n-dimensional vectors, the n-dimensional vectors of either one of the two sets are compared. In case of transforming n-dimensional vectors, the two sets can be expressed as 'comparable'.
  • the recognition module 144 is based on at least one recognition descriptor information obtained through an acquired image of an unknown current position, and the zone information to be compared according to a predetermined conversion rule (eg, each zone). Feature information) and comparable information (recognition feature distribution). For example, a recognition feature distribution vector comparable to each of the region feature distribution vectors may be calculated based on the at least one recognition descriptor according to a predetermined conversion rule. The recognition descriptors are converted into adjacent representative descriptors through the predetermined conversion rule for each comparison target area.
  • the representative descriptors of which at least one recognition descriptor is closest to each other according to a predetermined conversion rule may be closest to each other.
  • the conversion may be performed with only the information on the remaining recognition descriptors without the corresponding recognition descriptor.
  • the recognition feature distribution of the comparison target area may be defined based on the type of the converted representative descriptor and the number of each type (recognition weight, wh).
  • the recognition feature distribution for the comparison target area may be represented by a recognition histogram.
  • the type of each representative descriptor is converted as a representative value (a horizontal axis value), and the recognition score increases as the number of each type (a recognition weight, wh) increases.
  • (sh) can be expressed as a recognition histogram that sees the frequency (the value on the vertical axis) (see FIG. 15).
  • the score sh1 of one transformed representative descriptor is the representative descriptor of all transformed recognition descriptors. It can be defined as the weight (wh1) of any one of the transformed representative descriptor for the number of (total recognition weight (wh)), which can be represented by the following equation (4).
  • Equation 4 gives a larger recognition score (sh) as the number of transformed representative descriptors calculated by the recognition feature of the unknown current position increases, so that there are many similar recognition features in the acquired image of the unknown current position. If so, this is a key clue in estimating the current position, so that the actual position can be estimated more accurately.
  • Recognition histogram of the comparison target position of the unknown current position shows each representative value (converted representative descriptor) in each dimension, and recognition feature distribution in which the frequency of each representative value (recognition score, sh) is numerically in each dimension. It can be represented as a vector. Through this, the recognition feature distribution vector which can be compared with each comparison target region can be calculated.
  • the predetermined estimation rule includes a predetermined comparison rule that compares each of the region feature distributions with the recognition feature distribution to calculate respective similarities.
  • each similarity distribution may be calculated by comparing each zone feature distribution with each recognition feature distribution according to a predetermined comparison rule.
  • the similarity between any one of the region feature distribution vectors and their respective recognition feature distribution vectors is as follows. It may be defined by Equation 5. (cosine similarity)
  • Similarity can be calculated for each comparison target area, and the zone where the greatest probability is calculated can be determined as the zone to which the current location belongs.
  • the recognition step includes a position determination step S35 for determining the current position among a plurality of positions in the determined zone.
  • Recognition module 144 is based on the at least one recognition descriptor information obtained through the acquired image of the unknown current position, and the position information (for example, feature distribution of each position) to be compared according to a predetermined lower conversion rule; Convert to comparable information (sub-recognition feature distribution).
  • each position feature distribution may be compared with each recognition feature distribution to calculate each similarity. Similarity (probability) may be calculated for each location corresponding to each location, and a location where the greatest probability is calculated may be determined as the current location.
  • predetermined lower conversion rule and the predetermined lower comparison rule may be understood through the description of the predetermined conversion rule and the predetermined comparison rule.
  • the map learning step of the mobile robot according to the present invention is based on the node N information D180.
  • the learning step S100 includes setting up an origin node O (S110).
  • the origin node O is a reference point on the map, and the node N coordinate information D186 is generated by measuring a relative displacement with the origin node O. Even when the node N coordinate information D186 is modified, the origin node O does not change.
  • the learning step S100 may include generating node N information D180 while the mobile robot 100 is traveling (S120) after setting the origin node O (S110).
  • the node N information D180 may identify a node among the plurality of node N information D180, which node N information D180 may identify. It includes. As described later, when a plurality of mobile robots transmit and receive the node N information D180 to each other or to and from a central server, duplication among the plurality of node N information D180 based on the node unique index D181. The node N information D180 may be identified.
  • the node N information D180 may include acquired image information D183 corresponding to the corresponding node N.
  • the corresponding acquired image information D183 may be an image acquired by the image acquisition unit 125 at a position of reality corresponding to the corresponding node N.
  • the node N information D180 may include distance information D184 of the node N from the surrounding environment.
  • the distance information D184 with respect to the surrounding environment may be distance information measured by the obstacle detecting sensor 131 at a real position corresponding to the corresponding node N.
  • the node N information D180 includes the node N coordinate information D186.
  • the node N coordinate information D186 may be obtained based on the origin node O. FIG.
  • the node N information D180 may include node update time information D188.
  • the node update time information D188 is information about a time point at which the node N information D180 is generated or modified.
  • the node (based on the node update time information D188) may be selected. N) It may be determined whether the information D180 is updated.
  • the node update time information D188 makes it possible to determine whether to update to the latest node N information D180.
  • the measurement displacement information D165 with the adjacent node means the driving displacement information and the loop displacement LC information to be described later.
  • the node N information D180 is generated or modified.
  • the modification of the node N information D180 may be a modification of the node N coordinate information and the node update time information D188. That is, once the node unique index (D181), the corresponding acquired image information (D183), and the distance information (D184) with the surrounding environment are generated, even if the measurement displacement information (D165) with adjacent nodes is input, the node is not modified. (N) The coordinate information D186 and the node update time information D188 may be corrected when the measurement displacement information D165 with the adjacent node is input.
  • the node N information D180 is based on the measured driving displacement. Is generated.
  • the running displacement is added to the coordinates (node coordinate information D186) of the node N1 serving as the starting point of the traveling displacement, and the coordinates (node coordinate information D186) of the generated node N2 serving as an end point of the traveling displacement. ) Can be created.
  • the node update time information D188 is generated based on the time point at which the node N information D180 is generated. At this time, a node unique index D181 of the generated node N2 is generated.
  • the information D183 of the acquired image corresponding to the generated node N2 may match the corresponding node N2.
  • distance information D184 of the generated node N2 with the surrounding environment may be matched with the corresponding node N2.
  • the driving displacement C1 measured while the origin node O is set is input to the node N1 information ( D180 is generated, the driving displacement C2 is input while the node N1 information D180 is generated, and the node N2 information D180 is generated, and the node N2 information D180 is generated.
  • the driving displacement C3 is input to generate the node N3 information D180.
  • the node information D180 of the nodes N1, N2, N3, ..., N16 is sequentially generated based on the traveling displacements C1, C2, C3, ..., C16 that are sequentially input.
  • the learning step S100 may include determining whether the loop displacement LC is measured between the nodes N after generating the node N information D180 while driving (S120). In the determination of whether the loop displacement LC between the nodes N is measured (S130), when the loop displacement LC is measured, the process of correcting the node N coordinate information (S135) is performed, and the loop displacement LC is determined. If not measured, the process of determining whether the map learning is terminated by the mobile robot 100 is performed (S150). In the map learning end determination step (S150), if the map learning is not finished, the node N information generation step (S120) during driving may be performed again.
  • FIG. 17 illustrates an embodiment, and the relationship between the node N information generation step S120 and the loop displacement LC measurement between the node determination step S130 may be interchanged and may be performed simultaneously. It may be.
  • the loop displacement Loop Constraint (LC) means a value at which the displacement between one node N15 and another adjacent node N5 'not the base node N14' of any one node N15 is measured.
  • the acquired image information D183 corresponding to one node N15 and the acquired image information D183 corresponding to the other adjacent node N5 are compared with each other so that the loop displacement between the two nodes N15 and N5 may be reduced.
  • LC can be measured.
  • the distance information D184 of one node N15 and the distance information D184 of another adjacent node N5 may be compared with each other to measure the loop displacement LC between the two nodes N15 and N5. have.
  • the two nodes N for which the loop displacement LC is measured are defined as first loop nodes and second loop nodes, respectively.
  • 'Calculation displacement ⁇ x1, ⁇ y1, ⁇ 1' calculated by the node coordinate information D186 of the first loop node and the node coordinate information D186 of the second loop node (calculated by the difference of coordinate values)
  • the loop displacement LC ( ⁇ x2, ⁇ y2, ⁇ 2) and the difference ( ⁇ x1- ⁇ x2, ⁇ y1- ⁇ y2, ⁇ 1- ⁇ 2) may occur.
  • the node coordinate information D186 may be corrected by viewing the difference as an error, and the node coordinate information D186 is corrected on the assumption that the loop displacement LC is a more accurate value than the calculated displacement.
  • the node coordinate information D186 In the case of modifying the node coordinate information D186, only the node coordinate information D186 of the first loop node and the second loop node may be modified, but the error is generated because the errors of the driving displacements are accumulated. It can be set to also modify the node coordinate information (D186) of other nodes by distributing.
  • the node coordinate information D186 may be modified by dispersing the error value among all nodes generated by the traveling displacement between the first loop node and the second loop node. Referring to FIG. 19, when the loop displacement LC1 is measured and the error is calculated, the error is distributed to nodes N6 to N14 including the first loop node N15 and the second loop node N5, and node coordinates of the nodes N5 to N15. All of the information D186 may be modified little by little.
  • the error variance can be expanded to modify the node coordinate information D186 of the nodes N1 to N4 together.
  • a learning step (S200) of learning a map by cooperating with each other while driving a plurality of mobile robots driving the driving zone X according to the second embodiment will be described.
  • the description overlapping with the first embodiment in the second embodiment is omitted.
  • a mobile robot 100 refers to the present mobile robot 100.
  • the learning step S200 includes setting up an origin node AO of the mobile robot 100 (S210).
  • the origin node AO is a reference point on the map, and the node AN coordinate information D186 of the mobile robot 100 is generated by measuring a relative displacement with the origin node AO of the mobile robot 100. Even when the node AN coordinate information D186 is modified, the origin node AO is not changed.
  • the origin node BO of the other mobile robot 100 is information received by the receiver 190 of the mobile robot 100 and is not a reference point on the map that the mobile robot 100 learns. Can be viewed as one node (N) information that can be adjusted.
  • the node group information of a mobile robot is a set of node information (D180) excluding all node information (D180) generated by the mobile robot from all node information (D180) stored by the mobile robot.
  • D180 can be defined as a set.
  • the node group information of the B mobile robot in the position of the mobile A robot refers to the node information D180 in the area shown in GB, and the node group information of the A mobile robot in the position of the B mobile robot is shown in the GA.
  • the node information D180 in the region is indicated.
  • the node group information of the B mobile robot from the A mobile robot's point of view is the node in the area shown by GB and GC (when the B mobile robot has already received the node information in the GC area from the A or C mobile robot).
  • node group information of a mobile robot may be defined as a set of node information generated by the mobile robot.
  • the node group information of the C mobile robot in the A mobile robot position may be node information in the GC region, and may be preset to be received only from the C mobile robot.
  • the node N information D180 may include the node unique index D181, the acquired image information D183 corresponding to the node N, and the distance from the node N to the surrounding environment.
  • Information D184, node N coordinate information D186, and node update time information D188 Description of this is as described above.
  • the transmitter transmission information D190 means information for transmitting the node N information generated or modified by the mobile robot to another mobile robot.
  • the transmitter transmitting information D190 of the mobile robot may be node group information of the mobile robot.
  • Receiving unit receiving information means information for receiving node N information generated or modified by another mobile robot from another mobile robot.
  • the receiver receiving information D170 of the mobile robot may be node group information of another mobile robot.
  • the receiver reception information D170 is added to the previously stored node information D180 or updates the existing node information D180.
  • measurement displacement information D165 with an adjacent node refers to the driving displacement information, the loop displacement LC information, and the boundary displacement EC information to be described later.
  • the measurement displacement information D165 with the adjacent node is input to the controller 140, the node N information D180 is generated or modified.
  • the modification of the node N information D180 may be a modification of the node N coordinate information and the node update time information D188. That is, once the node unique index (D181), the corresponding acquired image information (D183), and the distance information (D184) with the surrounding environment are generated, even if the measurement displacement information (D165) with adjacent nodes is input, the node is not modified. (N) The coordinate information D186 and the node update time information D188 may be corrected when the measurement displacement information D165 with the adjacent node is input.
  • node N information on a map of the mobile robot 100 includes node information D180 generated directly by the mobile robot 100 and other mobile robots 100.
  • Node group information (GB) is included in node information D180 generated directly by the mobile robot 100 and other mobile robots 100.
  • step S220 the plurality of mobile robots respectively generate node information of the mobile robots based on the displacements measured while driving.
  • the traveling displacement AC1 measured when the origin node AO is set. Is input to generate the node AN1 information D180, and in the state where the node AN1 information D180 is generated, the driving displacement AC2 is input to generate the node AN2 information D180.
  • the driving displacement AC3 is input while the AN2) information D180 is generated to generate the node AN3 information D180.
  • the node information D180 of the nodes AN1, AN2, AN3, ..., AN12 is sequentially generated based on the driving displacements AC1, AC2, AC3, ..., AC12 that are sequentially input.
  • step S220 in which the other mobile robot 100 generates the node BN information D180, the traveling displacement BC1 measured while the origin node BO is set is input to the node BN1 information.
  • the node information D180 of the nodes BN1, BN2, BN3,..., BN12 is sequentially based on the sequentially input traveling displacements BC1, BC2, BC3,..., BC12. Is generated.
  • step S220 the plurality of mobile robots transmit and receive respective node group information.
  • the mobile robot 100 receives node group information BN of another mobile robot and adds node group information GB of another mobile robot to a map of the mobile robot 100. do.
  • the origin node of the other mobile robot 100 on the map of the mobile robot 100 is shown.
  • the position of (BO) may be arranged arbitrarily.
  • the origin node BO of the other mobile robot 100 on the map of the present mobile robot 100 is set to be the same as the position of the origin node AO of the present mobile robot 100.
  • the node information GA generated by the mobile robot and the node group information GB of the other mobile robot are combined. This makes it difficult to generate a map consistent with the actual situation.
  • the mobile robot 100 transmits node group information GA of the mobile robot 100 to other mobile robots.
  • the node group information GA of the mobile robot 100 is added on the map of the other mobile robot 100.
  • the learning step (S200) includes a step (S230) of determining whether to measure a loop displacement (LC) between two nodes generated by the mobile robot.
  • the learning step S200 may include a step of measuring a loop displacement LC between two nodes generated by the mobile robot.
  • loop displacement LC The description of the loop displacement LC is the same as that described in the first embodiment.
  • the learning step S200 may include modifying the coordinates of the node generated by the mobile robot on the map of the mobile robot based on the measured loop displacement LC (S245).
  • the step S230 of determining whether the loop displacement LC is measured between the nodes AN when the loop displacement LC is measured, the step S235 of modifying node (AN) coordinate information generated by the plurality of mobile robots is performed. If the loop displacement LC is not measured, the method may include determining whether the boundary displacement EC is measured between the node generated by the present mobile robot and the node generated by the other mobile robot (240).
  • the learning step S200 may include a step in which a boundary displacement EC is measured between a node generated by the mobile robot and a node generated by another mobile robot.
  • the learning step S200 may include a step in which a boundary displacement EC is measured between two nodes generated by the plurality of mobile robots, respectively.
  • the edge displacement (EC) means a value at which the displacement between the node AN11 generated by one mobile robot and the node BN11 generated by the other mobile robot is measured. .
  • the acquired image information D183 corresponding to the node AN11 generated by the mobile robot and the acquired image information D183 corresponding to the node BN11 generated by the other mobile robot are compared with each other to compare the two nodes AN11.
  • the boundary displacement EC1 between BN11 can be measured.
  • the distance information D184 of the node AN11 generated by the mobile robot and the distance information D184 of the node BN11 generated by another mobile robot are compared with each other, and the boundary between the two nodes AN11 and BN11 is compared.
  • Displacement EC1 can be measured.
  • the measurement of the boundary displacement (EC) as described above is made in each mobile robot, through the receiving unit 190 can receive the node group information generated by the other mobile robot from the other mobile robot, based on this This is because it can be compared with one node information.
  • the boundary displacement EC1 measured between node AN11 and node BN11, the boundary displacement EC2 measured between node AN12 and node BN4, and the boundary displacement EC3 measured between node AN10 and node BN12. ) Is shown by way of example.
  • step 240 of determining whether the boundary displacement EC is measured if the boundary displacement EC is not measured, the step S250 of determining whether the map learning of the mobile robot 100 is finished is performed.
  • the node (N) information may be generated again while driving and the plurality of mobile robots may transmit and receive node group information with each other (S220).
  • 20 illustrates an embodiment, generating node N information while driving and transmitting / receiving node group information (S120), determining whether loop displacement (LC) is measured between nodes (S130), and boundary between nodes.
  • the posterior relationship of the displacement (EC) measurement determination step (S240) may be changed with each other, or may proceed simultaneously.
  • step S240 of determining whether the boundary displacement EC is measured the coordinates of the node group GB received from the other mobile robot on the map of the mobile robot 100 are pre-adjusted ( In step S242, it is determined whether or not alignment is performed.
  • the alignment means that the node group information GA of the mobile robot and the node group information GB of the other mobile robot are aligned similarly to reality based on the boundary displacement EC on the map of the mobile robot. do. That is, the boundary displacement EC provides a clue that the node group information GA of the present mobile robot such as the puzzle piece and the node group information GB of the other mobile robot are interwoven with each other.
  • the coordinates of the origin node BO of the other mobile robot are modified among the node group information GB of the other mobile robot, and the coordinates of the node BN of the other mobile robot are the origin of the other mobile robot. Alignment is made by modifying based on the modified coordinates of the node BO.
  • Step S244 of adjusting the coordinates of the node group GB received from another mobile robot (the other mobile robot) on the map of the mobile robot (this mobile robot) is performed.
  • step S244 of adjusting the coordinates of the node group GA received from any one mobile robot (the present mobile robot) on the map of the other mobile robot (the other mobile robot) is performed.
  • the node group information GB of the other mobile robot is moved and aligned as a whole.
  • the boundary displacement (EC1) information measured between the nodes generated by the two mobile robots is transmitted to the two mobile robots, so that the node group information of the opponent robot can be adjusted based on itself on the map of each mobile robot.
  • step S245 when the coordinates of the node group GB received from other mobile robots are previously adjusted on the map of the mobile robot viewed in step S242, the measured boundary displacements EC2 and EC3 are further measured.
  • step (S245) of modifying the coordinates of the node generated by the any one mobile robot (the present mobile robot) on the map of any one mobile robot (the present mobile robot) is performed.
  • step S245 of modifying the coordinates of the node generated by the other mobile robot (the other mobile robot) on the map of the other mobile robot (the other mobile robot) is performed.
  • the boundary displacements EC2 and EC3 information measured between the nodes generated by the two mobile robots are transmitted to the two mobile robots, so that the node information generated by the mobile node can be modified on the map of each mobile robot.
  • the node created by the present mobile robot among the two nodes in which the boundary displacement EC is measured is defined as the present boundary node
  • the node created by the other mobile robot is defined as another boundary node.
  • the 'computation displacement' (calculated by the difference in coordinate values) calculated by the stored node coordinate information D186 of the main boundary node and the node coordinate information D186 of the other boundary node is different from the boundary displacement EC. May occur.
  • the node coordinate information D186 is assumed under the assumption that the boundary displacement EC is more accurate than the calculated displacement. ).
  • the node coordinate information D186 In the case of modifying the node coordinate information D186, only the node coordinate information D186 of the main boundary node may be modified. However, since the error is generated by accumulating errors of the driving displacements, the mobile robot is distributed by dispersing the error.
  • the node coordinate information D186 of the other nodes generated may also be modified. For example, the node coordinate information D186 may be modified by dispersing the error value among all nodes generated by the traveling displacement between two bone boundary nodes (which are generated when the boundary displacement is measured two or more times). have. Referring to FIG.
  • the error when the boundary displacement EC3 is measured and the error is calculated, the error is distributed to the node AC11 including the main boundary node AN10 which is different from the main boundary node AN12, so that the node coordinate information (D186) of the nodes AN10 to AN12 is distributed. ) Can all be modified little by little.
  • the error variance may be expanded to modify the node coordinate information D186 of the nodes AN1 to AN12 together.
  • step (S250) of determining whether the map learning of the mobile robot 100 is finished it may proceed to the step (S250) of determining whether the map learning of the mobile robot 100 is finished.
  • the node (N) information may be generated again while driving and the plurality of mobile robots may transmit and receive node group information with each other (S220).
  • the description of the second embodiment may be extended to three or more mobile robots.
  • the node group information received by the first mobile robot from the second mobile robot may include node group information received by the second mobile robot from the third mobile robot. have.
  • the node information (for example, node information generated by the third mobile robot received from the second mobile robot) received for the same node and the stored node information (for example, previously from the third mobile robot)
  • the received node information generated by the third mobile robot is different from each other, it is possible to determine whether to update the node information by selecting the latest node information based on the node update time information.
  • BC-EC1, BC-EC2 the boundary displacements measured between the node created by C mobile robot and the node created by A mobile robot Illustrated illustratively.
  • the node information generated by the A robot is shown on the map of the A mobile robot, and the node group information of the other mobile robot is adjusted through the boundary displacement.
  • FIGS. 26A to 26F a scenario in which the mobile robot 100a and the other mobile robot 100b cooperate to generate a map and utilize the same will be described below.
  • Conditions of one scenario of FIGS. 26A to 26F are as follows.
  • the mobile robot 100a is disposed in the room Room3, and the other mobile robot 100b is disposed in the room Room1.
  • the current state is that the door between Room1 and Room4 is closed and the door between Room1 and Room5 is closed, so Room1 or Room5 is in Room1.
  • the robots 100a and 100b cannot move by themselves.
  • the current state the door between the room (Room1) and the room (Room3) is open, the mobile robot (100a, 100b) can move from one of the room (Room1) and room (3) to the other by itself to be.
  • the mobile robots 100a and 100b have not yet learned the real plane, and it is assumed that the driving shown in Figs. 26A to 26F is the first driving in the shape of the present reality.
  • node N information on the map of the mobile robot 100a includes the node information D180 generated by the mobile robot 100a and the other mobile robot 100b.
  • Node group information (GB) GB
  • the node ANp indicated by a black dot means a node corresponding to the current position of the mobile robot 100a.
  • the node BNp indicated by a black dot means a node corresponding to the current position of the other mobile robot 100b.
  • the mobile robot 100a sequentially generates a plurality of pieces of node information based on the traveling displacement measured while driving in the state where the origin node AO corresponding to the initial position of reality is set.
  • the other mobile robot 100b sequentially generates a plurality of node information based on the traveling displacement measured while traveling while the origin node BO corresponding to the first actual position is set.
  • the bone mobile robot generates node group information GA by itself on a map of the bone mobile robot.
  • the other mobile robot generates itself on the map of the other mobile robot (GB).
  • the present mobile robot and the other mobile robot transmit and receive node group information with each other, so that the node group information GB is added on the map of the present mobile robot.
  • the node displacement information EC and the node on the basis of the coincidence of the origin node AO and the origin node BO on the map of the present mobile robot as the boundary displacement EC has not been measured yet.
  • Group information GB is merged.
  • the relative positional relationship (which can be seen through node coordinate information) of the node in the node group information GA and the node in the node group information GB on the map of the present mobile robot of FIG. 26A is the actual position. It does not reflect the relationship.
  • the mobile robot () and the other mobile robot () continue to travel and learn.
  • the boundary displacement EC between any node AN18 in the node group information GA and any node BN7 in the node group information GB is measured.
  • the coordinates of the nodes in the node group information GB are modified on the map of the mobile robot based on the boundary displacement EC, thereby adjusting the node group information GA and the node group information GB. .
  • the relative positional relationship between the node in the node group information GA and the node in the node group information GB on the map of the present mobile robot of FIG. 26B reflects the actual positional relationship.
  • even if the mobile robot () is not directly traveling the area traveled by the other mobile robot (), it is possible to map the area traveled by the other mobile robot ().
  • the mobile robot after adjusting the coordinates of the node group information GB on the map of the mobile robot Pre, the mobile robot continuously drives the room Room3 and learns the node. Node information is added to the group information GA. Further, the other mobile robot continually travels the room Room1 and proceeds with learning, and the node information is added to the node group information GB, and the updated node group information GB is viewed on the mobile robot (). Send. Accordingly, node information is continuously added to the node group information GA and the node group information GB on the map of the present mobile robot. In addition, further boundary displacements and loop displacements are measured so that node information of node group information GA and node group information GB is constantly modified.
  • a situation occurs in which the mobile robot A is moved from the room Room3 to the room Room1 by the user or the like while driving. (See arrow J)
  • the position on the map corresponding to the point where this mobile robot is moved is any node in the node group information GB.
  • This mobile robot () recognizes the current position (ANp) on the map of the mobile robot ().
  • the bone mobile robot moves to the target position using the map of the bone mobile robot.
  • Arrow Mr In this scenario, the mobile robot () moves to the room (Room3) that was originally traveling.
  • the mobile robot () is moved to another area of the room (Room1) where the other mobile robot () has not traveled yet in order to clean the other mobile robot () and the room (Room1) together. After moving, the cleaning run can be performed.
  • the other mobile robot (1) While the mobile robot () is moving to the target position, the other mobile robot (1) continues to travel in the room (Room1) and proceeds with learning.
  • the node information is added to the node group information (GB), and the updated node group is updated.
  • the information GB is transmitted to this mobile robot. Accordingly, node information is continuously added to the node group information GB on the map of the present mobile robot.
  • the moving robot () restarts the cleaning run to the area in which the cleaning has not yet proceeded in the room (Room3) and proceeds with the learning. Further, the other mobile robot continually travels the room Room1 and proceeds with learning, and the node information is added to the node group information GB, and the updated node group information GB is viewed on the mobile robot (). Send. Accordingly, node information is continuously added to the node group information GA and the node group information GB on the map of the present mobile robot. In addition, the additional loop displacement is measured so that the node information of the node group information GA and the node group information GB is constantly modified.
  • the mobile robot 100 includes a travel unit 160 for moving the main body 110, a travel displacement measurement unit 121 for measuring travel displacement, and node group information of another mobile robot.
  • Receiving unit 190 for receiving the, and generating a node information on the map based on the driving displacement, and a controller 140 for adding the node group information of the other mobile robot to the map. Duplicate descriptions will be omitted.
  • the mobile robot 100 may include a transmitter 170 for transmitting the node group information of the mobile robot to another mobile robot.
  • the controller 140 may further include a node information correction module that corrects coordinates of nodes generated by the mobile robot on the map based on the loop displacement LC or the boundary displacement EC measured between two nodes. 143b).
  • the controller 140 adjusts the coordinates of the node group received from the other mobile robot on the map based on the boundary displacement EC measured between the node generated by the mobile robot and the node generated by the other mobile robot.
  • Node group coordinate adjustment module 143c to adjust may be included.
  • the node information modification module 143b When the node information correction module 143b has previously adjusted the coordinates of the node group received from the other mobile robot on the map, the node information modification module 143b generates the mobile robot generated on the map based on the measured boundary displacement EC. You can modify the coordinates of the node.
  • the plurality of mobile robots 100 system according to the second embodiment of the present invention includes a first moving robot and a second moving robot.
  • the first moving robot 100 includes a first traveling part 160 for moving the first moving robot, a first traveling displacement measuring part 121 for measuring a traveling displacement of the first moving robot, and the second And a first receiver 190 for receiving node group information of the mobile robot, a first transmitter 170 for transmitting node group information of the first mobile robot to the second mobile robot, and a first controller 140. do.
  • the first controller 140 generates node information on a first map generated by the first mobile robot based on the traveling displacement of the first mobile robot, and generates node group information of the second mobile robot. 1 Add to the map.
  • the second mobile robot 100 may include a second travel unit 160 for moving the second mobile robot, a second travel displacement measurement unit 121 for measuring travel displacement of the second mobile robot, and the first movement robot. And a second receiver 190 for receiving node group information of the mobile robot, a second transmitter 170 for transmitting the node group information of the second mobile robot to the second mobile robot, and a second controller 140. do.
  • the second controller 140 generates node information on a second map generated by the second mobile robot based on the traveling displacement of the second mobile robot, and generates node group information of the first mobile robot. Add to the second map.
  • the first controller is a first to modify the coordinates of the node generated by the first mobile robot on the first map based on the loop displacement (LC) or boundary displacement (EC) measured between the two nodes.
  • the node information modification module 143b may be included.
  • the second control unit based on the loop displacement (LC) or boundary displacement (EC), the second node information modification module 143b for modifying the coordinates of the node generated by the second mobile robot on the second map. ) May be included.
  • LC loop displacement
  • EC boundary displacement
  • the first control unit is configured to move from the second mobile robot on the first map based on a boundary displacement LC measured between the node generated by the first mobile robot and the node generated by the second mobile robot. It may include a first node group coordinate adjustment module 143c for adjusting the coordinates of the received node group.
  • the second controller may include a second node group coordinate adjustment module 143c that adjusts coordinates of a node group received from the first mobile robot on the second map based on the boundary displacement LC. Can be.

Landscapes

  • Engineering & Computer Science (AREA)
  • Mechanical Engineering (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Robotics (AREA)
  • Physics & Mathematics (AREA)
  • Aviation & Aerospace Engineering (AREA)
  • Remote Sensing (AREA)
  • General Physics & Mathematics (AREA)
  • Automation & Control Theory (AREA)
  • Orthopedic Medicine & Surgery (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Control Of Position, Course, Altitude, Or Attitude Of Moving Bodies (AREA)
  • Manipulator (AREA)

Abstract

본 발명은 이동 로봇이 스스로 생성한 정보 및 타 이동 로봇으로부터 수신한 정보를 이용하여 맵(map)을 학습하는 기술에 관한 것으로서, 본 발명에 따른 이동 로봇의 맵 학습방법은, 본 이동 로봇이 주행중 측정된 변위를 근거로 노드 정보를 생성하고, 타 이동 로봇의 노드 그룹 정보를 수신하는 단계를 포함한다. 본 발명에 따른 이동 로봇은, 본체를 이동시키는 주행부, 주행 변위를 측정하는 주행 변위 측정부, 타 이동 로봇의 노드 그룹 정보를 수신하는 수신부, 및 상기 주행 변위를 근거로 맵 상에 노드 정보를 생성하고 상기 타 이동 로봇의 노드 그룹 정보를 상기 맵에 추가하는 제어부를 포함한다.

Description

이동 로봇, 복수의 이동 로봇 시스템 및 이동 로봇의 맵 학습방법
본 발명은, 이동 로봇, 복수의 이동 로봇 시스템 및 이동 로봇의 맵 학습방법에 관한 것으로, 보다 자세하게는 이동 로봇이 스스로 생성한 정보 및 타 이동 로봇으로부터 수신한 정보를 이용하여 맵(map)을 학습하는 기술에 관한 것이다.
로봇은 산업용으로 개발되어 공장 자동화의 일 부분을 담당하여 왔다. 최근에는 로봇을 응용한 분야가 더욱 확대되어, 의료용 로봇, 우주 항공 로봇 등이 개발되고, 일반 가정에서 사용할 수 있는 가정용 로봇도 만들어지고 있다. 이러한 로봇 중에서 자력으로 주행이 가능한 것을 이동 로봇이라고 한다.
가정에서 사용되는 이동 로봇의 대표적인 예는 로봇 청소기로서, 청소하고자 하는 주행구역을 이동하면서 먼지 또는 이물질을 흡입하여 청소하는 가전기기이다. 로봇 청소기는 충전 가능한 배터리를 구비하여 스스로 주행이 가능하며, 배터리의 잔량이 부족한 경우나 청소가 완료된 이후에는, 충전대를 찾아 스스로 이동하여 배터리를 충전한다.
종래기술에서, 이동 로봇의 연속적인 이동 중에 자신의 직전 위치 정보를 바탕으로 현재 위치를 지속적으로 파악하고, 스스로 청소구역의 맵(map)을 생성하는 다양한 방법이 이미 알려져 있다.
주행구역이 넓은 등의 이유로, 같은 실내 공간에 2대 이상의 이동 로봇이 주행을 할 수 있다.
종래기술(공개번호 10-2013-0056586)에서는, 복수의 이동 로봇간의 상대 거리를 측정하고, 상기 측정된 상대 거리를 기반으로 복수의 이동 로봇 별로 구역을 분할하여 구역 정보를 탐색한 뒤, 탐색한 구역 정보를 상대에게 전송하는 기술을 개시한다.
[선행기술문헌]
[특허문헌]
공개특허공보 공개번호 10-2013-0056586 (공개일자 2013. 5. 30.)
제 1과제는 복수개의 이동 로봇이 같은 주행 공간을 주행하고 있는 경우에 서로의 정보를 종합하여 효율적으로 맵 학습이 이루어지는 기술을 제시하는 것이다.
상기 종래 기술에서, 이동 로봇은 서로의 상대 거리를 측정하는데 거리상의 이유 또는 장애물 등의 이유로, 상대 거리의 측정이 곤란할 수 있다는 문제가 있다.
제 2과제는 이러한 문제를 해결하여 이동 로봇들간의 상대 거리 측정 없이도 효율적으로 탐색구역을 분할하는 기술을 제시하는 것이다.
상기 종래 기술에서, 이동 로봇은 측정된 서로간의 상대 거리를 기반으로 구역을 분할하는데, 이 경우 해당 주행구역의 형태가 복잡하다거나 어느 하나의 이동로봇의 위치가 주행구역의 구석으로 몰려있는 경우, 효율적인 구역분배가 불가하다는 문제가 있다. 제 3과제는 이러한 문제를 해결하여, 먼저 구역을 분배하고 탐색하는 것이 아니라, 먼저 주행구역을 학습하면서 자동적이고 효율적으로 탐색 구역이 분배되는 기술을 제시하는 것이다.
제 4과제는 이동 로봇이 생성한 맵 학습 정보를 계속적으로 정확도 높게 수정하는 기술을 제시하는 것이다.
상기 종래 기술에서는, 각 이동 로봇이 자신이 탐색한 정보를 공유하는 것일 뿐, 서로의 정보를 서로 보다 정확하게 하는 기술의 개시가 없다. 제 5과제는 복수의 로봇이 맵을 학습하고 서로 공유하면서도 복수의 로봇이 자신은 물론 서로의 맵 학습 정보를 정확도 높게 수정하는 기술을 제시하는 것이다.
본 발명의 과제는 이상에서 언급한 과제로 제한되지 않으며, 언급되지 않은 또 다른 과제들은 아래의 기재로부터 당업자에게 명확하게 이해될 수 있을 것이다.
상기 제 1 내지 3과제를 달성하기 위하여, 본 발명에 따른 이동 로봇의 맵 학습방법은, 본 이동 로봇이 주행중 측정된 변위를 근거로 노드 정보를 생성하고, 타 이동 로봇의 노드 그룹 정보를 수신하는 단계를 포함한다.
어느 한 이동 로봇의 맵 상의 노드 정보 들은, 본 이동 로봇이 직접 생성한 노드 정보들 및 타 이동 로봇의 노드 그룹 정보로 이루어진다.
상기 노드 정보는, 노드 고유 인덱스, 대응하는 획득영상 정보, 주변 환경과의 거리 정보, 노드 좌표 정보, 및 노드 갱신 시각정보를 포함할 수 있다.
상기 타 이동 로봇의 노드 그룹 정보는, 상기 타 이동 로봇이 저장하고 있는 모든 노드 정보에서 상기 타 이동 로봇이 생성한 모든 노드 정보를 제외한 노드 정보들의 집합일 수 있다.
타 이동 로봇에서도 같은 과제를 달성시키고 결과적으로 본 이동 로봇의 맵 학습의 효율성도 보다 상승시키기 위하여, 상기 학습방법은, 본 이동 로봇의 노드 그룹 정보를 타 이동 로봇에게 송신하는 단계를 포함할 수 있다.
상기 제 4과제를 달성하기 위하여, 상기 학습방법은, 본 이동 로봇이 생성한 두 노드 사이에 루프 변위가 측정되는 단계, 및 상기 측정된 루프 변위를 근거로 하여 맵 상에서 본 이동 로봇이 생성한 노드의 좌표를 수정하는 단계를 포함할 수 있다.
상기 제 5과제를 달성하기 위하여, 상기 학습방법은, 본 이동 로봇이 생성한 노드와 타 이동 로봇이 생성한 노드 사이에 경계 변위가 측정되는 단계를 포함할 수 있다. 상기 학습방법은, 상기 측정된 경계 변위를 근거로 하여 맵 상에서 타 이동 로봇으로부터 수신한 노드 그룹의 좌표를 조정하는 단계를 포함하거나, 상기 측정된 경계 변위를 근거로 하여, 맵 상에서 본 이동 로봇이 생성한 노드의 좌표를 수정하는 단계를 포함할 수 있다.
상기 제 5과제를 보다 효율적으로 달성하기 위하여 조정(Align) 또는 수정 중 어느 하나를 선택하는 알고리즘을 구현할 수 있다. 이를 위하여, 상기 학습방법은, 상기 측정된 경계 변위를 근거로 하여 맵 상에서 타 이동 로봇으로부터 수신한 노드 그룹의 좌표를 조정하고, 맵 상에서 타 이동 로봇으로부터 수신한 노드 그룹의 좌표를 기 조정한 경우, 상기 측정된 경계 변위를 근거로 하여 맵 상에서 본 이동 로봇이 생성한 노드의 좌표를 수정하는 단계를 포함할 수 있다.
상기 제 1 내지 5과제를 달성하기 위한 복수의 로봇 들 간의 상호 과정을 중심으로 본 발명을 구체화 할 수 있다. 본 발명의 다른 실시예에 따른 이동 로봇의 맵 학습방법은, 복수의 이동 로봇이 각각 주행중 측정된 변위를 근거로 각각 이동 로봇의 노드 정보를 생성하고, 각각의 노드 그룹 정보를 서로 송신 및 수신하는 단계를 포함한다.
상기 제 5과제를 달성하기 위하여, 상기 학습방법은, 상기 복수의 이동 로봇이 각각 생성한 두 노드 사이에 경계 변위가 측정되는 단계, 및 상기 측정된 경계 변위를 근거로 하여, 어느 하나의 이동 로봇의 맵 상에서 다른 하나의 이동 로봇으로부터 수신한 노드 그룹의 좌표를 조정하고, 상기 다른 하나의 이동 로봇의 맵 상에서 상기 어느 하나의 이동 로봇으로부터 수신한 노드 그룹의 좌표를 조정하는 단계를 포함할 수 있다.
상기 제 5과제를 달성하기 위하여, 상기 학습방법은, 상기 측정된 경계 변위를 근거로 하여, 어느 하나의 이동 로봇의 맵 상에서 상기 어느 하나의 이동 로봇이 생성한 노드의 좌표를 수정하고, 다른 하나의 이동 로봇의 맵 상에서 상기 다른 하나의 이동 로봇이 생성한 노드의 좌표를 수정하는 단계를 포함할 수 있다.
상기 제 5과제를 보다 효율적으로 달성하기 위하여 조정(Align) 또는 수정 중 어느 하나를 선택하는 알고리즘을 구현할 수 있다. 상기 학습방법은, 맵 상에서 타 이동 로봇으로부터 수신한 노드 그룹의 좌표를 기 조정하지 않은 경우, 상기 측정된 경계 변위를 근거로 하여, 어느 하나의 이동 로봇의 맵 상에서 다른 하나의 이동 로봇으로부터 수신한 노드 그룹의 좌표를 조정하고, 상기 다른 하나의 이동 로봇의 맵 상에서 상기 어느 하나의 이동 로봇으로부터 수신한 노드 그룹의 좌표를 조정하는 단계를 포함한다. 또한, 상기 학습방법은, 맵 상에서 타 이동 로봇으로부터 수신한 노드 그룹의 좌표를 기 조정한 경우, 상기 측정된 경계 변위를 근거로 하여, 어느 하나의 이동 로봇의 맵 상에서 상기 어느 하나의 이동 로봇이 생성한 노드의 좌표를 수정하고, 다른 하나의 이동 로봇의 맵 상에서 상기 다른 하나의 이동 로봇이 생성한 노드의 좌표를 수정하는 단계를 포함할 수 있다.
상기 제 4 및 5과제를 달성하기 위하여, 노드 정보는 노드 갱신 시각 정보를 포함하고, 동일한 노드에 대해서 수신한 노드 정보와 저장된 노드 정보가 서로 다른 경우 상기 노드 갱신 시각 정보를 근거로 하여 최신의 노드 정보를 선택할 수 있다.
상기 복수의 이동 로봇은 3개 이상의 이동 로봇인 경우의 실시예에 있어서 제 4 및 5과제를 해결하기 위하여, 제 1이동 로봇이 제 2이동 로봇으로부터 수신한 노드 그룹 정보는, 제 2이동 로봇이 제 3이동 로봇으로부터 수신한 노드 그룹 정보를 포함할 수 있고, 이 경우에도 상기 노드 갱신 시각 정보를 근거로 최신의 노드 정보를 선택할 수 있다.
상기 학습방법을 실행시키기 위한 프로그램이 구현될 수 있고, 상기 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록 매체가 구현될 수 있다.
본 발명은 각 처리단계가 서로 다른 이동로봇이나 중앙서버나 컴퓨터상에서 이루어질 수 도 있으나, 하나의 이동 로봇 내에 구성된 각 구성요소에 의해 실시될 수 있다. 상기 제 1 내지 5과제를 해결하기 위하여, 본 발명에 따른 이동 로봇은, 본체를 이동시키는 주행부, 주행 변위를 측정하는 주행 변위 측정부, 타 이동 로봇의 노드 그룹 정보를 수신하는 수신부, 및 상기 주행 변위를 근거로 맵 상에 노드 정보를 생성하고 상기 타 이동 로봇의 노드 그룹 정보를 상기 맵에 추가하는 제어부를 포함한다. 상기 이동 로봇은, 본 이동 로봇의 노드 그룹 정보를 타 이동 로봇에게 송신하는 송신부를 포함할 수 있다. 상기 제어부는, 노드 정보 생성 모듈, 노드 정보 수정 모듈, 및 노드 그룹 좌표 조정 모듈을 포함할 수 있다.
상기 제 1 내지 5과제를 달성하기 위한 복수의 로봇 들 간의 시스템을 중심으로 본 발명을 구체화 할 수 있다. 본 발명에 따른 제 1이동 로봇 및 제 2이동 로봇을 포함하는 복수의 이동 로봇 시스템에서, 상기 제 1이동 로봇은, 상기 제 1이동 로봇을 이동시키는 제 1주행부, 상기 제 1이동 로봇의 주행 변위를 측정하는 제 1주행 변위 측정부, 상기 제 2이동 로봇의 노드 그룹 정보를 수신하는 제 1수신부, 상기 제 1이동 로봇의 노드 그룹 정보를 상기 제 2이동 로봇에게 송신하는 제 1송신부, 및 상기 제 1이동 로봇의 주행 변위를 근거로 제 1맵 상에 노드 정보를 생성하고 상기 제 2이동 로봇의 노드 그룹 정보를 상기 제 1맵에 추가하는 제 1제어부를 포함한다. 또한, 상기 제 2이동 로봇은, 상기 제 2이동 로봇을 이동시키는 제 2주행부, 상기 제 2이동 로봇의 주행 변위를 측정하는 제 2주행 변위 측정부, 상기 제 1이동 로봇의 노드 그룹 정보를 수신하는 제 2수신부, 상기 제 2이동 로봇의 노드 그룹 정보를 상기 제 2이동 로봇에게 송신하는 제 2송신부, 및 상기 제 2이동 로봇의 주행 변위를 근거로 제 2맵 상에 노드 정보를 생성하고, 상기 제 1이동 로봇의 노드 그룹 정보를 상기 제 2맵에 추가하는 제 2제어부를 포함한다.
이와 같이, 상기 제 1이동 로봇 및 상기 제 2이동 로봇의 각 구성요소에는 앞서 기술한 각 구성요소의 앞에 각각 ‘제 1’ 및 ‘제 2’를 붙여 구분 표기할 수 있다. 상기 제 1제어부는, 제 1노드 정보 생성 모듈, 제 1노드 정보 수정 모듈, 및 제 1노드 그룹 좌표 조정 모듈을 포함할 수 있다. 상기 제 2제어부는, 제 2노드 정보 생성 모듈, 제 2노드 정보 수정 모듈, 및 제 2노드 그룹 좌표 조정 모듈을 포함할 수 있다.
기타 실시예들의 구체적인 사항들은 상세한 설명 및 도면들에 포함되어 있다.
이와 같은 과제해결수단을 통해서, 복수개의 이동 로봇이 같은 주행 공간을 주행하고 있는 경우에 효율적이고 정확하게 맵을 학습할 수 있는 효과가 있다.
또한, 종래 기술과 달리 이동 로봇들간의 상대 거리 측정 없이도, 서로 탐색구역이 분할되는 효과가 있다.
또한, 초기에 탐색 구역을 분할함으로써 발생할 수 있는 탐색 구역의 비효율적인 배분 가능성을 없애고, 구역 분배없이 맵을 학습하는 과정에서 결론적으로 탐색구역이 분할되게 함으로써 탐색구역 분할의 효율성을 현저하게 상승시키는 효과가 있다.
또한, 이동 로봇이 많으면 많을수록 맵 학습과정의 효율성이 크게 상승되도록 유도할 수 있는 효과가 있다.
또한, 복수의 이동 로봇이 서로 맵 정보를 공유하면서 오차를 줄이는 과정을 거치게 됨으로써, 학습된 맵의 정확도를 크게 향상시킬 수 있는 효과가 있다.
본 발명의 효과들은 이상에서 언급한 효과들로 제한되지 않으며, 언급되지 않은 또 다른 효과들은 청구범위의 기재로부터 당업자에게 명확하게 이해될 수 있을 것이다.
도 1은 본 발명의 일 실시예에 따른 이동 로봇 및 이동 로봇을 충전시키는 충전대를 도시한 사시도이다.
도 2는 도 1에 도시된 이동 로봇의 상면부를 도시한 것이다.
도 3은 도 1에 도시된 이동 로봇의 정면부를 도시한 것이다.
도 4는 도 1에 도시된 이동 로봇의 저면부를 도시한 것이다.
도 5는 본 발명의 일 실시예에 따른 이동 로봇의 주요 구성들 간의 제어관계를 도시한 블록도이다.
도 6은 본 발명의 일 실시예에 따른 이동 로봇의 맵 학습과정 및 맵상에서 위치 인식과정을 전체적으로 나타낸 순서도이다.
도 7은 일 실시예에 따른 복수의 구역(A1,A2,A3,A4,A5) 및 복수의 구역(A1,A2,A3,A4,A5)으로 이루어진 어느 하나의 주행구역(X)을 도시한 평면 개념도이다.
도 8은 일 실시예에 따른 주행구역(X) 내의 복수의 구역(A1,A2)을 예시적으로 도시하고, 도시한 각각의 구역(A1,A2) 내의 복수의 위치(노드)(A1p1, A1p2, A1p3, A1p4, A2p1, A2p1, A2p1, A2p1)에서 각각 획득한 영상을 보여주는 그림이다.
도 9는 도 8의 어느 하나의 위치(A1p1)에서 획득한 영상에서 특징점(f1,f2,f3,f4,f5,f6,f7)을 도시한 그림이다.
도 10은 일 실시예에 따라 어느 하나의 구역(A1) 내의 모든 특징점(f1,f2,f3,..,fm)에 각각 대응하는 n차원 벡터인 디스크립터
Figure PCTKR2017004390-appb-I000001
를 산출하는 도식을 나타낸 개념도이다.
도 11은 어느 하나의 구역(A1) 내에서 도 10의 과정을 거쳐 산출된 복수의 디스크립터
Figure PCTKR2017004390-appb-I000002
를 소정 분류규칙에 따라 복수의 군(A1G1, A1G2, A1G3,..,A1Gl)으로 분류하는 도식을 나타내고, 같은 군에 포함된 복수의 디스크립터를 소정 대표규칙에 따라 각각 대표 디스크립터
Figure PCTKR2017004390-appb-I000003
로 변환하는 도식을 나타낸 개념도이다.
도 12는 도 11의 각각의 대표 디스크립터
Figure PCTKR2017004390-appb-I000004
의 개수(w)가 많을수록 작아지는 스코어(s)를 도수로 하는 어느 하나의 구역(A1) 히스토그램을 나타내고, 어느 하나의 구역(A1) 특징분포를 시각적으로 나타내기 위한 그림이다.
도 13은 미지의 현재 위치에서 획득환 영상에서 인식 특징점(h1,h2,h3,h4,h5,h6,h7)을 도시한 그림이다.
도 14는 도 13에서 획득한 영상 내의 모든 인식 특징점(h1,h2,h3,h4,h5,h6,h7)에 각각 대응하는 n차원 벡터인 인식 디스크립터
Figure PCTKR2017004390-appb-I000005
를 산출하는 도식을 나타낸 개념도이다.
도 15는, 도 14의 인식 디스크립터를 소정 변환규칙에 따라 비교대상인 구역(A1)의 대표 디스크립터
Figure PCTKR2017004390-appb-I000006
로 변환하여, 비교대상 구역(A1)에 대한 인식 특징분포를 산출하는 도식을 나타낸 개념도이다. 인식 특징분포를 시각적으로 나타내기 위해, 각각의 대표 디스크립터의 개수(wh)가 많을수록 커지는 인식 스코아(Sh)를 도수로 하는 히스토그램이 도시된다.
도 16은, 각각의 구역에 대해 도 15의 과정을 거쳐 산출된 각각의 인식 특징분포와, 각각의 구역 특징분포를 소정 비교규칙에 따라 각각 비교하여, 각각의 확률을 산출하고, 어느 하나의 구역을 결정하는 도식을 나타낸 개념도이다.
도 17은, 하나의 이동 로봇만이 주행구역을 주행하면서 맵을 학습하는 제 1실시예에 따른 과정(S100)을 나타낸 순서도이다.
도 18은, 도 17의 제 1실시예에 따른 노드(N) 정보를 이루는 구성 정보들 및 노드(N) 정보에 영향을 주는 정보를 나타낸 블록도이다.
도 19는, 도 17의 제 1실시예에 따라 하나의 이동 로봇이 이동하면서 생성하는 노드(N) 및 노드 간의 변위(C)를 도시한 도식도이다.
도 20은, 복수의 이동 로봇이 주행구역을 주행하면서 맵을 학습하는 제 2실시예에 따른 과정(S200)을 나타낸 순서도이다.
도 21은, 도 20의 제 2실시예에 따른 노드(N) 정보를 이루는 구성 정보들 및 노드(N) 정보에 영향을 주는 정보, 그리고 다른 로봇의 노드 정보에 영향을 주는 정보를 나타낸 블록도이다.
도 22 내지 24는, 도 20의 제 2실시예에 따라 복수의 이동 로봇이 이동하면서 생성하는 노드(N) 및 노드 간의 변위(C)를 도시하고, A 이동 로봇이 학습하는 맵 을 도시한 도식도이다. 도 22는 A 이동 로봇이 학습하는 맵에서 아직 B 이동 로봇 노드 그룹(GB) 좌표가 조정(Align)되지 않은 상태의 그림이고, 도 23은 노드 간의 경계 변위(EC1)가 측정됨에 따라 A 이동 로봇이 학습하는 맵에서 B 이동 로봇의 노드 그룹(GB) 좌표가 조정(Align)된 상태의 그림이고, 도 24는 노드 간의 추가적인 경계 변위(EC2, EC3)가 측정됨에 따라 A 이동 로봇이 학습하는 맵에서 노드(N) 정보가 수정되는 상태의 그림이다.
도 25는, 3대의 이동 로봇이 이동하면서 생성하는 노드(N)와 노드간의 변위(C), 노드 간의 루프 변위(A-LC1, B-LC1, C-LC1), 및 노드 간의 경계 변위(AB-EC1, BC-EC1, BC-EC2, CA-EC1, CA-EC2)를 도시하고, A 이동 로봇이 학습하는 맵 을 도시한 도식도이다.
도 26a 내지 도 26f는, 본 이동 로봇(100a)과 타 이동 로봇(100b)이 협업하여 맵을 생성하고 이를 활용하는 일 시나리오를 도시한 그림으로서, 이동 로봇(100a, 100b)의 현실의 위치와 본 이동 로봇(100a)이 학습하는 맵을 도시한다.
본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하고, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다. 명세서 전체에 걸쳐 동일 참조 부호는 동일 구성 요소를 지칭한다.
본 발명인 이동 로봇(100)은 바퀴 등을 이용하여 스스로 이동이 가능한 로봇을 의미하고, 가정 도우미 로봇 및 로봇 청소기 등이 될 수 있다. 이하 도 1 내지 도 4를 참조하여, 이동 로봇 중 로봇 청소기(100)를 예로들어 설명하나, 반드시 이에 한정될 필요는 없다.
도 1은 로봇 청소기(100) 및 이동 로봇을 충전시키는 충전대(200)를 도시한 사시도이다. 도 2는 도 1에 도시된 로봇 청소기(100)의 상면부를 도시한 것이다. 도 3은 도 1에 도시된 로봇 청소기(100)의 정면부를 도시한 것이다. 도 4는 도 1에 도시된 로봇 청소기(100)의 저면부를 도시한 것이다.
로봇 청소기(100)는 본체(110)와, 본체(110) 주변의 영상을 획득하는 영상획득부(120)를 포함한다. 이하, 본체(110)의 각부분을 정의함에 있어서, 청소구역 내의 천장을 향하는 부분을 상면부(도 2 참조.)로 정의하고, 청소구역 내의 바닥을 향하는 부분을 저면부(도 4 참조.)로 정의하고, 상기 상면부와 저면부 사이에서 본체(110)의 둘레를 이루는 부분 중 주행방향을 향하는 부분을 정면부(도 3 참조.)라고 정의한다.
로봇 청소기(100)는 본체(110)를 이동시키는 주행부(160)를 포함한다. 주행부(160)는 본체(110)를 이동시키는 적어도 하나의 구동 바퀴(136)를 포함한다. 주행부(160)는 구동 모터를 포함할 수 있다. 구동 바퀴(136)는 본체(110)의 좌, 우 측에 각각 구비될 수 있으며, 이하, 각각 좌륜(136(L))과 우륜(136(R))이라고 한다.
좌륜(136(L))과 우륜(136(R))은 하나의 구동 모터에 의해 구동될 수도 있으나, 필요에 따라 좌륜(136(L))을 구동시키는 좌륜 구동 모터와 우륜(136(R))을 구동시키는 우륜 구동 모터가 각각 구비될 수도 있다. 좌륜(136(L))과 우륜(136(R))의 회전 속도에 차이를 두어 좌측 또는 우측으로 본체(110)의 주행방향을 전환할 수 있다.
본체(110)의 저면부에는 공기의 흡입이 이루어지는 흡입구(110h)가 형성될 수 있으며, 본체(110) 내에는 흡입구(110h)를 통해 공기가 흡입될 수 있도록 흡입력을 제공하는 흡입장치(미도시)와, 흡입구(110h)를 통해 공기와 함께 흡입된 먼지를 집진하는 먼지통(미도시)이 구비될 수 있다.
본체(110)는 로봇 청소기(100)를 구성하는 각종 부품들이 수용되는 공간을 형성하는 케이스(111)를 포함할 수 있다. 케이스(111)에는 상기 먼지통의 삽입과 탈거를 위한 개구부가 형성될 수 있고, 상기 개구부를 여닫는 먼지통 커버(112)가 케이스(111)에 대해 회전 가능하게 구비될 수 있다.
흡입구(110h)를 통해 노출되는 솔들을 갖는 롤형의 메인 브러시(134)와, 본체(110)의 저면부 전방측에 위치하며, 방사상으로 연장된 다수개의 날개로 이루어진 솔을 갖는 보조 브러시(135)가 구비될 수 있다. 이들 브러시(134, 135)들의 회전에 의해 청소구역내 바닥으로부터 먼지들이 제거되며, 이렇게 바닥으로부터 분리된 먼지들은 흡입구(110h)를 통해 흡입되어 먼지통에 모인다.
배터리(138)는 상기 구동 모터뿐만 아니라, 로봇 청소기(100)의 작동 전반에 필요한 전원을 공급하는 것이다. 배터리(138)가 방전될 시, 로봇 청소기(100)는 충전을 위해 충전대(200)로 복귀하는 주행을 실시할 수 있으며, 이러한 복귀 주행 중, 로봇 청소기(100)는 스스로 충전대(200)의 위치를 탐지할 수 있다.
충전대(200)는 소정의 복귀 신호를 송출하는 신호 송출부(미도시)를 포함할 수 있다. 상기 복귀 신호는 초음파 신호 또는 적외선 신호일 수 있으나, 반드시 이에 한정되어야하는 것은 아니다.
로봇 청소기(100)는 상기 복귀 신호를 수신하는 신호 감지부(미도시)를 포함할 수 있다. 충전대(200)는 신호 송출부를 통해 적외선 신호를 송출하고, 상기 신호 감지부는 상기 적외선 신호를 감지하는 적외선 센서를 포함할 수 있다. 로봇 청소기(100)는 충전대(200)로부터 송출된 적외선 신호에 따라 충전대(200)의 위치로 이동하여 충전대(200)와 도킹(docking)한다. 이러한 도킹에 의해 로봇 청소기(100)의 충전 단자(133)와 충전대(200)의 충전 단자(210) 간에 충전에 이루어진다.
영상획득부(120)는 청소구역을 촬영하는 것으로, 디지털 카메라를 포함할 수 있다. 상기 디지털 카메라는 적어도 하나의 광학렌즈와, 상기 광학렌즈를 통과한 광에 의해 상이 맺히는 다수개의 광다이오드(photodiode, 예를들어, pixel)를 포함하여 구성된 이미지센서(예를들어, CMOS image sensor)와, 상기 광다이오드들로부터 출력된 신호를 바탕으로 영상을 구성하는 디지털 신호 처리기(DSP: Digital Signal Processor)를 포함할 수 있다. 상기 디지털 신호 처리기는 정지영상은 물론이고, 정지영상으로 구성된 프레임들로 이루어진 동영상을 생성하는 것도 가능하다.
바람직하게, 영상획득부(120)는 본체(110)의 상면부에 구비되어, 청소구역 내의 천장에 대한 영상을 획득하나, 영상획득부(120)의 위치와 촬영범위가 반드시 이에 한정되어야 하는 것은 아니다. 예를들어, 영상획득부(120)는 본체(110) 전방의 영상을 획득하도록 구비될 수도 있다. 본 발명은 천정의 영상만으로도 구현될 수 있다.
또한, 로봇 청소기(100)는 전방의 장애물을 감지하는 장애물 감지센서(131)를 더 포함할 수 있다. 로봇 청소기(100)는 청소구역 내 바닥에 낭떠러지의 존재 여부를 감지하는 낭떠러지 감지센서(132)와, 바닥의 영상을 획득하는 하부 카메라 센서(139)를 더 포함할 수 있다.
또한, 로봇 청소기(100)는 On/Off 또는 각종 명령을 입력할 수 있는 조작부(137)를 포함한다.
도 5를 참조하면, 이동 로봇(100)은 현재 위치를 인식하는 등 각종 정보를 처리하고 판단하는 제어부(140), 및 각종 데이터를 저장하는 저장부(150)를 포함한다. 제어부(140)는 이동 로봇(100)을 구성하는 각종 구성들(예를들어, 주행 변위 측정부(121), 장애물 감지 센서(131), 영상획득부(120), 조작부(137), 주행부(160), 송신부(170), 수신부(190) 등)의 제어를 통해, 이동 로봇(100)의 동작 전반을 제어하며, 주행제어모듈(141), 구역구분모듈(142), 학습모듈(143) 및 인식모듈(144)을 포함할 수 있다.
저장부(150)는 이동 로봇(100)의 제어에 필요한 각종 정보들을 기록하는 것으로, 휘발성 또는 비휘발성 기록 매체를 포함할 수 있다. 상기 기록 매체는 마이크로 프로세서(micro processor)에 의해 읽힐 수 있는 데이터를 저장한 것으로, HDD(Hard Disk Drive), SSD(Solid State Disk), SDD(Silicon Disk Drive), ROM, RAM, CD-ROM, 자기 테이프, 플로피 디스크, 광 데이터 저장 장치 등을 포함할 수 있다.
한편, 저장부(150)에는 청소구역에 대한 맵이 저장될 수 있다. 상기 맵은 이동 로봇(100)과 유선 또는 무선 통신을 통해 정보를 교환할 수 있는 외부 단말기에 의해 입력된 것일 수도 있고, 이동 로봇(100)이 스스로 학습을 하여 생성한 것일 수도 있다. 전자의 경우, 외부 단말기로는 맵 설정을 위한 어플리케이션(application)이 탑재된 리모콘, PDA, 랩탑(laptop), 스마트 폰, 태블렛 등을 예로 들 수 있다.
상기 맵에는 주행구역 내의 실(room)들의 위치가 표시될 수 있다. 또한, 이동 로봇(100)의 현재 위치가 상기 맵 상에 표시될 수 있으며, 상기 맵 상에서의 이동 로봇(100)의 현재의 위치는 주행 과정에서 갱신될 수 있다.
제어부(140)는 소정 기준에 따라 주행구역(X)을 복수의 구역으로 구분하는 구역구분모듈(142)을 포함할 수 있다. 주행구역(X)은 이동 로봇(100)이 주행 경험이 있는 모든 평면상의 구역 및 현재 주행하고 있는 평면상의 구역을 모두 합한 범위로 정의될 수 있다.
상기 구역은 주행구역(X) 내의 각 실(방)을 근거로 구분될 수 있다. 구역구분모듈(142)은 주행구역(X)을 주행능력상 서로 분리된 복수의 구역으로 구분할 수 있다. 예를 들면, 서로 동선상 완전히 분리된 두개의 실내공간은 각각 두개의 구역으로 구분될 수 있다. 다른 예로, 같은 실내 공간이라 하더라도, 상기 구역은 주행구역(X) 내의 각 층을 근거로 구분될 수 있다.
제어부(140)는 주행구역(X)의 맵을 생성하는 학습모듈(143)을 포함할 수 있다. 전역위치 인식을 위해서, 학습모듈(143)은 각 위치에서 획득한 영상을 처리하여 상기 맵과 연계시킬 수 있다.
주행 변위 측정부(121)는 예를 들어 상기 하부 카메라 센서(139)일 수 있다. 주행 변위 측정부(121)는 이동 로봇(100)이 연속적으로 이동하는 경우, 예를들면 픽셀(pixel)을 이용하여 달라진 바닥 영상의 연속적인 비교를 통해서 주행에 따른 변위를 측정할 수 있다. 주행에 따른 변위는, 이동 방향과 이동 거리를 포함하는 개념이다. 주행구역의 바닥면을 X축 및 Y축이 직교하는 평면 상에 있다고 가정할 때, 주행 변위는 (Δx,Δy,θ)로 표현할 수 있고, Δx,Δy는 각각 X축 및 Y축 방향으로의 변위를 의미하고, θ 는 회전 각도를 의미한다.
주행제어모듈(141)은 이동 로봇(100)의 주행을 제어하는 것으로, 주행 설정에 따라 주행부(160)의 구동을 제어한다. 또한, 주행제어모듈(141)은 주행부(160)의 동작을 바탕으로 이동 로봇(100)의 이동 경로를 파악할 수 있다. 예를들어, 주행제어모듈(141)은 구동 바퀴(136)의 회전속도를 바탕으로 이동 로봇(100)의 현재 또는 과거의 이동속도, 주행한 거리 등을 파악할 수 있으며, 각 구동 바퀴(136(L), 136(R))의 회전 방향에 따라 현재 또는 과거의 방향 전환 과정 또한 파악할 수 있다. 이렇게 파악된 이동 로봇(100)의 주행 정보를 바탕으로, 맵 상에서 이동 로봇(100)의 위치가 갱신될 수 있다.
이동 로봇(100)은, 상기 주행 변위 측정부(121), 주행제어모듈(141), 장애물 감지센서(131) 및 영상획득부(125) 중 적어도 어느 하나를 이용하여 상기 주행 변위를 측정한다. 제어부(140)는, 상기 주행 변위 정보를 바탕으로 맵 상에 후술할 각 노드(node, N) 정보를 생성하는 노드 정보 생성 모듈(143a)을 포함한다. 예를 들어, 후술할 원점 노드(O)를 기준으로 측정한 상기 주행 변위를 이용하여, 생성되는 노드(N)의 좌표를 생성할 수 있다. 생성된 노드(N)의 좌표는 원점 노드(O)에 대한 상대적 좌표값이다. 생성된 노드(N) 정보는 대응하는 획득영상 정보를 포함할 수 있다. 본 설명 전체에 걸쳐 ‘대응’한다는 것은 1 쌍의 대상(예를들면, 1 쌍의 데이터)이 서로 매칭(mathing)되어, 둘 중 어느 하나를 입력하면 다른 하나가 출력될 수 있는 관계가 형성됨을 의미한다. 예를 들면, 상기 어느 하나의 위치를 입력하면 상기 어느 하나의 위치에서 획득된 획득영상이 출력될 수 있거나, 상기 어느 하나의 획득영상을 입력하면 상기 어느 하나의 획득영상이 획득된 어느 하나의 위치가 출력된다고 할 때, 상기 어느 하나의 획득영상과 상기 어느 하나의 위치는 ‘대응’한다고 표현될 수 있다.
이동 로봇(100)은 노드(N)와 노드간의 변위를 근거로 현실의 주행구역을 맵으로 생성할 수 있다. 노드(N)는 현실의 한 지점의 정보를 데이터화 하여 맵 상의 한 지점으로 나타낸 것을 의미한다. 즉, 현실의 각 위치는 학습된 맵상에서 각 노드와 대응되고, 현실의 위치와 맵상의 노드는 서로 반드시 일치하지 않고 오차가 있을 수 있으며, 이러한 오차를 줄여 정확도 높은 맵을 생성하는 것은 본 발명의 하나의 과제이다. 이러한 오차를 줄이는 과정과 관련하여, 루프 변위(LC) 및 경계 변위(EC)에 대한 설명은 후술한다.
이동 로봇(100)은, 상기 장애물 감지센서(131) 및 영상획득부(125) 중 적어도 어느 하나를 이용하여, 기 생성한 노드(N) 정보(D180) 중 노드 좌표 정보(D186)의 오차를 측정할 수 있다.(도 18 및 21 참고) 제어부(140)는 측정한 노드 좌표 정보의 오차를 바탕으로 맵 상에 생성된 각 노드(N) 정보를 수정하는 노드 정보 수정 모듈(143b)을 포함한다.
예를 들어, 상기 주행 변위를 근거로 생성된 어느 하나의 노드(N1) 정보(D180)는 노드 좌표 정보(D186) 및 해당 노드(N1)에 대응하는 획득영상 정보(D183)를 포함하는데, 해당 노드(N1) 근처에서 생성된 다른 노드(N2)의 정보 중 노드(N2)에 대응하는 획득영상 정보(D183)를 노드(N1)에 대응하는 획득영상 정보(D183)와 비교하면 두 노드(N1,N2) 사이의 변위(후술할 루프 변위(LC) 또는 경계 변위(EC))가 측정된다. 이 경우, 획득영상 정보 비교를 통해 측정된 변위(루프 변위(LC) 또는 경계 변위(EC))와 기 저장된 두 노드(N1,N2)의 좌표 정보(D186)를 통한 변위에 차이가 발생할 경우 이를 오차로 보고, 두 노드(N1,N2)의 좌표 정보(D186)의 좌표 정보를 수정할 수 있다. 이 경우, 두 노드(N1,N2)와 연결된 다른 노드 들의 좌표 정보(D186)도 수정될 수 있다. 또한, 한번 수정된 노드 좌표 정보(D186)도 계속해서 상기 과정을 거쳐 거듭 수정될 수 있다. 이에 대한 자세한 내용은 후술한다.
이동 로봇(100)의 위치가 인위적으로 도약(jumping)된 경우에는 상기 주행 정보를 바탕으로 현재 위치를 파악할 수 없다. 인식모듈(144)은 장애물 감지센서(131) 및 영상획득부(125) 중 적어도 어느 하나를 이용하여, 미지의 현재위치를 맵상에서 인식할 수 있다. 이하에서는 영상획득부를 이용하여 미지의 현재위치를 인식하는 과정을 예로들어 설명하나, 반드시 이에 한정될 필요는 없다.
송신부(170)는 본 이동 로봇의 정보를 타 이동 로봇이나 중앙 서버에 송신해줄 수 있다. 송신부(170)가 송신하는 정보는 후술할 본 이동 로봇의 노드(N) 정보 또는 노드 그룹(M) 정보가 될 수 있다.
수신부(190)는 타 이동 로봇의 정보를 타 이동 로봇이나 중앙 서보로부터 수신할 수 있다. 수신부(190)가 수신하는 정보는 후술할 타 이동 로봇의 노드(N) 정보 또는 노드 그룹(M) 정보가 될 수 있다.
도 6 내지 15를 참고하여, 획득된 영상을 이용하여 주행구역을 학습하여 맵으로 저장하고, 위치 도약등의 상황에서 미지의 현재위치의 영상을 이용하여 현재위치를 추정하는 이동 로봇 및 그 제어방법의 일 실시예를 설명하면 다음과 같다.
상기 일 실시예에 따른 제어방법은, 소정 기준에 따라 주행구역(X)을 복수의 구역으로 구분하는 구역 구분단계(S10), 주행구역을 학습하여 맵을 생성하는 학습단계, 및 상기 맵 상에서 현재 위치가 속한 구역을 결정하는 인식단계를 포함한다. 상기 인식단계는 현재 위치를 결정하는 단계를 포함할 수 있다. 상기 구역 구분단계(S10)와 상기 학습단계는 일부가 동시에 진행될 수 있다. 본 설명 전체에 걸쳐 ‘결정’한다는 것은, 사람이 판단한다는 것이 아니라, 본 발명의 제어부 또는 본 발명의 제어방법이 구현되는 프로그램 등이 일정한 규칙을 이용하여 어느 하나를 선택한다는 의미이다. 예를들어, 제어부가 소정 추정규칙을 이용하여 복수의 소구역 중 어느 하나를 선택하는 경우, 소구역을 ‘결정’한다고 표현할 수 있다. ‘결정’한다는 의미는, 복수의 대상 중 어느 하나를 선택하는 경우 뿐만아니라, 대상이 하나밖에 없어 그 하나를 선택하는 경우까지 포함하는 개념이다.
구역 구분단계(S10)는 구역구분모듈(142)에서 진행되고, 상기 학습단계는 학습모듈(143)에서 진행되고, 상기 인식단계는 인식모듈(144)에서 진행될 수 있다.
구역 구분단계(S10)에서, 소정 기준에 따라 주행구역(X)을 복수의 구역으로 구분할 수 있다. 도 7을 참고하여, 상기 구역은 주행구역(X) 내의 각 실(A1,A2,A3,A4,A5)을 근거로 구분할 수 있다. 도 8에서, 각 실(A1,A2,A3,A4,A5) 들이 벽(20)과 개폐가능한 문(21) 들에 의해서 구분된다. 상술한 바, 복수의 구역은 층을 기준으로 구분되거나 동선상 분리된 공간을 기준으로 분리될 수도 있다. 또 다른 예로, 주행구역이 복수의 대구역으로 구분되고 각 대구역은 복수의 소구역으로 구분될 수도 있다.
도 11을 참고하여, 각 구역(A1,A2)은 해당 구역을 이루는 복수의 위치로 이루어진다. 이중 대응하는 획득영상 정보 및 좌표 정보를 가진 위치를 맵상에서 노드(N)로 정의할 수 있다. 어느 하나의 구역 A1은 복수의 위치(노드) A1p1, A1p2, A1p3, …, A1pn (n은 자연수)를 포함할 수 있다.
맵을 학습하고 각 노드(N)에서 획득한 획득영상(각 노드(N)에 대응하는 획득영상)으로부터 얻은 데이터(특징점 데이터)와 연계시키는 과정에 대한 설명은 다음과 같다.
상기 학습단계는, 각각의 상기 구역 내의 복수의 위치(맵상에서는 노드)에서 각각 영상을 획득하고, 각각의 상기 영상에서 특징점을 추출하고, 각각의 상기 특징점에 대응하는 디스크립터를 산출하는 디스크립터 산출단계(S15)를 포함한다. 디스크립터 산출단계(S15)는 구역 구분단계(S10)와 동시에 진행될 수 있다. 본 설명 전체에 걸쳐 ‘산출’한다는 것은 입력되는 데이터를 이용하여 다른 데이터를 출력한다는 의미이고, ‘입력되는 수치 데이터를 계산하여 결과값인 다른 데이터를 구하는 것’을 포함하는 의미이다. 물론, 입력되는 데이터 및/또는 산출되는 데이터는 복수개일 수 있다.
이동 로봇(100)이 주행하는 중에, 영상획득부(120)는 이동 로봇(100) 주변의 영상들을 획득한다. 영상획득부(120)에 의해 획득된 영상을 '획득영상'이라고 정의한다. 영상획득부(120)는 맵 상의 각 위치들에서 획득영상을 획득한다.
도 8을 참고하여, 각각의 노드(예를 들어, A1p1, A1p2, A1p3, …, A1pn)에는 각각의 노드에 대응하는 획득영상이 있다. 대응하는 획득영상 정보(D183)를 포함하는 각 노드 정보(D180)가 저장부(150)에 저장된다.
도 9의 그림은 주행구역 내의 어떤 위치에서 촬영된 획득영상을 도시한 것으로, 영상을 통해 천장에 위치하는 조명들, 경계(edge), 코너(corner), 얼룩(blob), 굴곡(ridge) 등의 여러가지 특징(feature)들이 확인된다.
학습모듈(143)은 획득영상들 각각으로부터 특징점((예를들어, 도12의 f1,f2,f3,f4,f5,f6,f7))을 검출 및 추출한다. 컴퓨터 비전(Computer Vision) 기술 분야에서 영상으로부터 특징점을 검출하는 다양한 방법(Feature Detection)이 잘 알려져 있다. 이들 특징의 검출에 적합한 여러 특징검출기(feature detector)들이 알려져 있다. 예를들어, Canny, Sobel, Harris&Stephens/Plessey, SUSAN, Shi&Tomasi, Level curve curvature, FAST, Laplacian of Gaussian, Difference of Gaussians, Determinant of Hessian, MSER, PCBR, Grey-level blobs 검출기 등이 있다.
도 10은 각 특징점(f1,f2,f3,..,fm)을 근거로 디스크립터 산출단계(S15)를 거쳐 디스크립터를 산출하는 것을 보여주는 도식도이다.(m은 자연수) 특징 검출을 위해 SIFT(Scale Invariant Feature Transform) 기법을 이용하여 특징점(f1,f2,f3,..,fm)을 디스크립터(descriptor)로 변환할 수 있다. 본 설명 전체에 걸쳐 ‘변환’한다는 것은, 어느 하나의 데이터를 다른 데이터로 바꾸는 것을 의미한다.
상기 디스크립터는 n차원 벡터(vector)로 표기될 수 있다.(n은 자연수) 도 10에서,
Figure PCTKR2017004390-appb-I000007
은 n차원 벡터를 의미한다.
Figure PCTKR2017004390-appb-I000008
의 중괄호 { } 안의 f1(1), f1(2), f1(3),..,f1(n)은
Figure PCTKR2017004390-appb-I000009
을 이루는 각 차원의 수치를 의미한다. 나머지
Figure PCTKR2017004390-appb-I000010
에 대한 표기도 이와 같은 방식이므로 설명을 생략한다.
예를들면, SIFT는 도 9의 획득영상에서 코너점 등 식별이 용이한 특징점(f1,f2,f3,f4,f5,f6,f7)을 선택한 후, 각 특징점(f1,f2,f3,f4,f5,f6,f7) 주변의 일정한 구역에 속한 픽셀들의 밝기 구배(gradient)의 분포 특성(밝기 변화의 방향 및 변화의 급격한 정도)에 대해, 각 방향에 대한 변화의 급격한 정도를 각 차원에 대한 수치로 하는 n차원 벡터(vector)를 구하는 영상인식기법이다.
SIFT는 촬영 대상의 스케일(scale), 회전, 밝기변화에 대해서 불변하는 특징을 검출할 수 있어, 같은 영역을 로봇 청소기(100)의 자세를 달리하며 촬영하더라도 불변하는(즉, 회전 불변한(Rotation-invariant)) 특징을 검출할 수 있다. 물론, 이에 한정되지 않고 다른 다양한 기법(예를들어, HOG: Histogram of Oriented Gradient, Haar feature, Fems, LBP:Local Binary Pattern, MCT:Modified Census Transform)들이 적용될 수도 있다.
학습모듈(143)은 각 위치의 획득영상을 통해 얻은 디스크립터 정보를 바탕으로, 획득영상마다 적어도 하나의 디스크립터를 소정 하위 분류규칙에 따라 복수의 군으로 분류하고, 소정 하위 대표규칙에 따라 같은 군에 포함된 디스크립터들을 각각 하위 대표 디스크립터로 변환할 수 있다.(이 경우, 같은 군에 포함된 디스크립터가 오직 하나인 경우에는 디스크립터와 하위 대표 디스크립터가 결과적으로 같을 수 있다.)
다른 예로, 실(room)과 같이 소정 구역내의 획득영상 들로부터 모인 모든 디스크립터를 소정 하위 분류규칙에 따라 복수의 군으로 분류하여 상기 소정 하위 대표규칙에 따라 같은 군에 포함된 디스크립터들을 각각 하위 대표 디스크립터로 변환할 수도 있다.
상기 소정 하위 분류규칙 및 상기 소정 하위 대표규칙에 대한 내용은, 후술할 소정 분류규칙 및 소정 대표규칙에 대한 설명을 통해 이해할 수 있다. 이 같은 과정을 거쳐, 각 위치의 특징분포를 구할 수 있다. 각 위치 특징분포는 히스토그램 또는 n차원 벡터로 표현될 수 있다.
또 다른 예로, 상기 소정 하위 분류규칙 및 소정 하위 대표규칙을 거치지 않고, 각 특징점으로부터 산출된 디스크립터를 바탕으로 미지의 현재위치를 추정하는 방법은 이미 알려져 있다.
구역 구분단계(S10) 및 디스크립터 산출단계(S15) 이후, 상기 학습단계는, 복수의 상기 디스크립터를 근거로 하여 상기 소정 학습규칙에 따라 각각의 상기 구역 별로 산출된 구역 특징분포를 저장하는 구역 특징분포 산출단계(S20)를 포함한다.
상기 소정 학습규칙은, 복수의 상기 디스크립터를 복수의 군으로 분류하는 소정 분류규칙, 및 같은 군에 포함된 상기 디스크립터를 각각 대표 디스크립터로 변환하는 소정 대표규칙을 포함한다.(상술한 소정 하위 분류규칙 및 소정 하위 대표규칙은, 본 설명을 통해 이해될 수 있다.)
학습모듈(143)은, 각 구역내의 모든 획득영상들로부터 얻은 복수의 디스크립터를 소정 분류규칙에 따라 복수의 군으로 분류할 수도 있고(제 1경우), 상기 하위 대표규칙에 의해 산출된 복수의 하위 대표 디스크립터를 소정 분류규칙에 따라 복수의 군으로 분류할 수도 있다(제 2경우). 상기 제 2경우에 있어서, 상기 소정 분류규칙의 분류 대상인 디스크립터는 상기 하위 대표 디스크립터를 지칭하는 것으로 본다.
도 11에서, A1G1, A1G2, A1G3, …, A1Gl은 구역 A1 내의 모든 디스크립터를 소정 분류규칙에 따라 나눌 각 군을 도시한 것이다. 대괄호 [ ] 안에는 같은 군으로 분류된 적어도 하나의 디스크립터를 도시한 것이다. 예를 들어, 어떤 하나의 군 A1G1으로 분류된 디스크립터들은
Figure PCTKR2017004390-appb-I000011
이다. 나머지 A1G2, A1G3, …, A1Gl에 대한 표기도 이와 같은 방식이므로 설명을 생략한다.
도 11를 참고하여, 학습모듈(143)은 상기 소정 대표규칙에 따라 같은 군에 포함된 디스크립터들을 각각 대표 디스크립터로 변환한다. 도 14에서,
Figure PCTKR2017004390-appb-I000012
은 소정 대표규칙에 따라 변환된 대표 디스크립터를 도시한 것이다. 같은 군에 속해 있는 복수의 디스크립터는 모두 같은 대표 디스크립터로 변환된다. 예를 들어, 어떤 하나의 군 A1G1에 속해 있는 디스크립터인
Figure PCTKR2017004390-appb-I000013
은 소정 대표규칙에 따라 모두
Figure PCTKR2017004390-appb-I000014
으로 변환된다. 즉, A1G1에 속해 있는 서로 다른 디스크립터 3개
Figure PCTKR2017004390-appb-I000015
가 같은 대표 디스크립터 3개
Figure PCTKR2017004390-appb-I000016
로 변환된다. 나머지 A1G2, A1G3, …, A1Gl군에 속해있는 디스크립터들의 변환도 이와 같은 방식이므로 설명을 생략한다.
상기 소정 분류규칙은 두 n차원 벡터 사이의 거리(distance)를 근거로 할 수 있다. 예를 들면, n차원 벡터의 거리가 소정 값(ST1) 이하인 디스크립터(n차원 벡터)끼리 같은 군으로 분류할 수 있고, 두 n차원 벡터
Figure PCTKR2017004390-appb-I000017
가 같은 군으로 분류되기 위한 수학식 1은 다음과 같이 정의될 수 있다.
수학식 1
Figure PCTKR2017004390-appb-M000001
여기서,
Figure PCTKR2017004390-appb-I000018
는 두 n차원 벡터,
d는 두 n차원 벡터간의 거리,
ST1는 소정 값 임.
상기 소정 대표규칙은 같은 군으로 분류된 적어도 하나의 디스크립터(n차원 벡터)의 평균값을 근거로 할 수 있다. 예를 들어, 어느 하나의 군으로 분류된 디스크립터(n차원 벡터)가
Figure PCTKR2017004390-appb-I000019
라고 가정하고, x는 어느 하나의 군으로 분류된 디스크립터의 개수라고 가정할 때, 대표 디스크립터(n차원 벡터)
Figure PCTKR2017004390-appb-I000020
는 다음의 수학식 2와 같이 정의 될 수 있다.
수학식 2
Figure PCTKR2017004390-appb-M000002
상기 소정 분류규칙 및 소정 대표규칙에 따라 변환된 대표 디스크립터의 종류 및 각 대표 디스크립터의 개수(웨이트, w)는 각 구역 단위로 데이터화 된다. 예를들어, 각각의 상기 구역(예를들어, A1) 별로 상기 대표 디스크립터의 종류 및 각 종류당 개수(w)를 근거로 상기 구역 특징분포가 산출될 수 있다. 어느 하나의 구역 내에서 획득한 모든 획득영상을 통해 상기 어느 하나의 구역 내의 모든 대표 디스크립터의 종류 및 각 종류별 개수(w)를 산출할 수 있다. 어느 하나의 구역 특징분포는 히스토그램으로 표현될 수 있는데, 각 대표 디스크립터의 종류를 대표값(가로 축의 값)으로 보고, 각 종류별 개수(웨이트,w)가 적을수록 커지는 스코어(s)를 도수(세로 축의 값)로 보는 히스토그램으로 표현될 수 있다.(도 12 참조) 예를들면, 어느 한 대표 디스크립터의 스코어(s1)는, 상기 어느 한 대표 디스크립터의 웨이트(w1) 분의 해당 구역(특징분포를 구하고자 하는 구역을 의미함)으로부터 산출된 모든 대표 디스크립터의 개수(해당 구역의 총 웨이트(w))로 정의될 수 있고, 이는 아래의 수학식 3으로 표현될 수 있다.
수학식 3
Figure PCTKR2017004390-appb-M000003
여기서, s1은 어느 한 대표 디스크립터의 스코어,
w1은 상기 어느 한 대표 디스크립터의 웨이트,
Figure PCTKR2017004390-appb-I000021
은 해당 구역에서 산출된 모든 대표 디스크립터의 웨이트 들의 총합임.
상기 수학식 3은, 희소성이 있는 특징점에 의해 산출된 대표 디스크립터에 더 큰 스코어(s)를 부여하여, 후술할 미지의 현재 위치의 획득영상에 상기 희소성이 있는 특징점이 있는 경우, 더 정확하게 실제 위치가 속한 구역을 추정할 수 있도록 한 것이다.
어느 하나의 구역 특징분포 히스토그램은, 각 대표값(대표 디스크립터)를 각 차원으로 보고, 각 대표값의 도수(스코어,s)를 각 차원의 수치로 보는 구역 특징분포 벡터로 표현될 수 있다. 맵 상의 복수의 구역(A1,A2,…,Ak)과 각각 대응되는 구역 특징분포 벡터가 산출될 수 있다.(k는 자연수)
다음으로, 위치 도약 등의 이유로 이동 로봇(100)의 현재 위치가 미지의 상태가 된 경우에, 기 저장된 각 구역 특징분포 벡터 등의 데이터를 근거로 현재 위치가 속한 구역을 추정하고, 기 저장된 상기 디스크립터 또는 하위 대표 디스크립터 등의 데이터를 근거로 현재 위치를 추정하는 과정을 설명하면, 아래와 같다.
상기 인식단계는, 상기 현재 위치의 영상을 획득하고, 획득된 영상에서 적어도 하나의 상기 인식 특징점을 추출하고, 상기 인식 특징점에 각각 대응하는 상기 인식 디스크립터를 산출하는 인식 디스크립터 산출단계(S31)를 포함한다.
이동 로봇(100)이 미지의 현재 위치에서 영상획득부(120)를 통해 획득영상을 획득한다. 인식모듈(144)은 미지의 현재 위치에서 획득된 영상으로부터 적어도 하나의 상기 인식 특징점을 추출한다. 도 13의 그림은 미지의 현재 위치에서 촬영된 영상을 도시한 것으로, 영상을 통해 천장에 위치하는 조명들, 경계(edge), 코너(corner), 얼룩(blob), 굴곡(ridge) 등의 여러가지 특징(feature)들이 확인된다. 영상을 통해 천장에 위치하는 복수의 인식 특징점(h1,h2,h3,h4,h5,h6,h7)이 확인된다.
상기 ‘인식 특징점’은 인식모듈(144)에서 수행하는 과정을 설명하는 용어로서, 학습모듈(143)에서 수행하는 과정을 설명하는 용어인 ‘특징점’과 구별하여 정의하나, 이동 로봇(100)의 외부 세계의 특징이 각각 다른 용어로 정의되는 것에 불과하다.
인식모듈(144)은 획득영상으로부터 특징들을 검출한다. 컴퓨터 비전 기술 분야에서 영상으로부터 특징을 검출하는 다양한 방법 및 이들 특징의 검출에 적합한 여러 특징검출기들에 대한 설명은 상기한 바와 같다.
도 21을 참고하여, 본 특징 검출을 위해 상기 SIFT(Scale Invariant Feature Transform) 기법을 이용하여, 인식모듈(144)은 상기 인식 특징점(h1,h2,h3,h4,h5,h6,h7)에 각각 대응하는 인식 디스크립터를 산출한다. 상기 인식 디스크립터는 n차원 벡터(vector)로 표기될 수 있다. 도 21에서,
Figure PCTKR2017004390-appb-I000022
은 n차원 벡터를 의미한다.
Figure PCTKR2017004390-appb-I000023
의 중괄호 { } 안의 h1(1), h1(2), h1(3),..,h1(n)은
Figure PCTKR2017004390-appb-I000024
을 이루는 각 차원의 수치를 의미한다. 나머지
Figure PCTKR2017004390-appb-I000025
에 대한 표기도 이와 같은 방식이므로 설명을 생략한다.
인식 디스크립터 산출단계(S31) 이후, 상기 인식단계는, 상기 소정 추정규칙에 따라 각각의 상기 구역 특징분포와 상기 인식 디스크립터를 연산하여, 상기 현재 위치가 속한 어느 한 구역을 결정하는 구역 결정단계(S33)를 포함한다. 본 설명 전체에 걸쳐 ‘연산’한다는 것는 입력값(하나 또는 복수개의 입력값)을 일정한 규칙에 따라 계산한다는 의미이다. 예를 들어, 상기 소구역 특징분포 및/또는 상기 인식 디스크립터를 2개의 입력값으로 보아 상기 소정 츄정규칙에 따라 계산하는 경우, 소구역 특징분포 및/또는 인식 디스크립터를 ‘연산’한다고 표현할 수 있다.
상기 소정 추정규칙은, 상기 적어도 하나의 인식 디스크립터를 근거로 하여 상기 구역 특징분포와 비교 가능한 인식 특징분포를 산출하는 소정 변환규칙을 포함한다. 본 설명 전체에 걸쳐 ‘비교 가능’하다는 것은, 어느 하나의 대상과 비교를 위한 소정 규칙을 적용할 수 있는 상태인 것을 의미한다. 예를 들면, 다양한 색채의 물건으로 구성된 두 집합을 서로 색깔별로 그 개수를 비교하기 위하여, 두 집합 중 어느 하나의 색채 분류기준에 따라 다른 하나의 집합을 이루는 각 대상들의 색채를 분류해준 경우, 두 집합은 ‘비교 가능’하다고 표현될 수 있다. 다른 예를 들면, 각 종류당 개수를 달리하는 n차원 벡터들로 구성된 어느 한 집합과 다른 집합을 상기 n차원 벡터별로 그 개수를 비교하기 위하여, 두 집합 중 어느 하나의 n차원 벡터들로 다른 집합의 n차원 벡터들을 변환해준 경우, 두 집합은 ‘비교 가능’하다고 표현될 수 있다.
도 15를 참고하여, 인식모듈(144)은 미지의 현재 위치의 획득영상을 통해 얻은 적어도 하나의 인식 디스크립터 정보를 근거로, 소정 변환규칙에 따라 비교대상이 되는 구역 정보(예를 들면, 각 구역 특징분포)와 비교 가능한 정보(인식 특징분포)로 변환한다. 예를 들면, 소정 변환규칙에 따라 상기 적어도 하나의 인식 디스크립터를 근거로, 상기 각 구역 특징분포 벡터와 비교 가능한 인식 특징분포 벡터를 산출할 수 있다. 인식 디스크립터 들은 비교대상 구역 별로 상기 소정 변환규칙을 거쳐 근접한 대표 디스크립터로 각각 변환된다.
일 실시예로, 비교대상이 되는 어느 한 구역의 상기 구역 특징분포 벡터의 각 차원(각 대표 디스크립터)을 기준으로, 소정 변환규칙에 따라 적어도 하나의 인식 디스크립터를 각각 벡터간 거리가 가장 가까운 대표 디스크립터로 변환시킬 수 있다. 예를 들어, 인식 디스크립터
Figure PCTKR2017004390-appb-I000026
Figure PCTKR2017004390-appb-I000027
Figure PCTKR2017004390-appb-I000028
는 어느 한 구역 특징분포를 이루는 대표 디스크립터들 중 가장 거리가 가까운 어느 하나로 각각 변환될 수 있다.
나아가, 상기 소정 변환규칙에서 인식 디스크립터 및 인식 디스크립터에 가장 가까운 대표 디스크립터 사이의 거리가 소정 값을 초과하는 경우에는, 해당 인식 디스크립터는 제외시키고 나머지 인식 디스크립터 들에 대한 정보만을 가지고 변환을 진행할 수도 있다.
어느 하나의 비교대상 구역과 비교하는 경우에 있어서, 상기 변환된 대표 디스크립터의 종류 및 각 종류별 개수(인식웨이트, wh)를 근거로, 상기 비교대상 구역에 대한 인식 특징분포를 정의할 수 있다. 상기 비교대상 구역에 대한 인식 특징분포는 인식 히스토그램으로 표현될 수 있는데, 각 변환된 대표 디스크립터의 종류를 대표값(가로 축의 값)으로 보고, 각 종류별 개수(인식웨이트,wh)가 클수록 커지는 인식스코어(sh)를 도수(세로 축의 값)로 보는 인식 히스토그램으로 표현될 수 있다.(도 15 참조) 예를들면, 어느 한 변환된 대표 디스크립터의 스코어(sh1)는, 인식 디스크립터 들이 변환된 모든 대표 디스크립터의 개수(총 인식웨이트(wh)) 분의 상기 어느 한 변환된 대표 디스크립터의 웨이트(wh1)로 정의될 수 있고, 이는 아래의 수학식 4로 표현될 수 있다.
수학식 4
Figure PCTKR2017004390-appb-M000004
여기서, sh1은 어느 한 변환된 대표 디스크립터의 인식스코어,
wh1은 상기 어느 한 변환된 대표 디스크립터의 인식웨이트,
Figure PCTKR2017004390-appb-I000029
은 미지의 현재위치의 획득영상에서 산출된 모든 변환된 대표 디스크립터의 인식웨이트 들의 총합임.
상기 수학식 4는, 미지의 현재 위치의 인식특징점에 의해 산출된 변환된 대표 디스크립터의 개수가 많을수록 더 큰 인식스코어(sh)를 부여하여, 미지의 현재 위치의 획득영상에 유사한 인식특징점들이 많이 존재한다면 이를 현재 위치의 추정에 있어서 주요 단서로 보아, 더 정확하게 실제 위치를 추정할 수 있도록 한 것이다.
미지의 현재위치의 비교대상 위치에 대한 인식 히스토그램은, 각 대표값(변환된 대표 디스크립터)을 각 차원으로 보고, 각 대표값의 도수(인식스코어,sh)를 각 차원의 수치로 보는 인식 특징분포 벡터로 표현될 수 있다. 이를 통해, 각 비교대상 구역 별로 각각 비교 가능한 인식 특징분포 벡터를 산출할 수 있다.
상기 소정 추정규칙은, 각각의 상기 구역 특징분포를 상기 인식 특징분포와 비교하여 각각의 유사도를 산출하는 소정 비교규칙을 포함한다. 도 16을 참고하여, 소정 비교규칙에 따라 각각의 구역 특징분포를 각각의 인식 특징분포와 비교하여 각각의 유사도를 산출할 수 있다. 예를 들어, 어느 하나의 상기 구역 특징분포 벡터와 이에 대한 각각의 인식 특징분포 벡터(비교대상 구역에 따라 소정 변환규칙에 따라 비교가능하게 변환된 인식 특징분포 벡터를 의미함)의 유사도는 아래의 수학식 5로 정의될 수 있다. (cosine similarity)
수학식 5
Figure PCTKR2017004390-appb-M000005
여기서, cosθ는 유사도인 확률이고,
Figure PCTKR2017004390-appb-I000030
는 어느 하나의 상기 구역 특징분포 벡터이고,
Figure PCTKR2017004390-appb-I000031
Figure PCTKR2017004390-appb-I000032
에 비교가능한 인식 특징분포 벡터이고,
Figure PCTKR2017004390-appb-I000033
는 두 벡터의 절대값의 곱을 의미하고,
Figure PCTKR2017004390-appb-I000034
는 두 벡터의 내적을 의미함.
각각의 비교대상 구역 별로 유사도(확률)를 산출하고, 그 중 가장 큰 확률이 산출되는 구역을 현재위치가 속한 구역으로 결정할 수 있다.
구역 결정단계(S33) 이후, 상기 인식단계는, 상기 결정된 어느 한 구역 내의 복수의 위치 중 상기 현재위치를 결정하는 위치 결정단계(S35)를 포함한다.
인식모듈(144)은 미지의 현재 위치의 획득영상을 통해 얻은 적어도 하나의 인식 디스크립터 정보를 근거로, 소정 하위 변환규칙에 따라 비교대상이 되는 위치 정보(예를 들면, 각 위치의 특징분포)와 비교 가능한 정보(하위 인식 특징분포)로 변환한다.
소정 하위 비교규칙에 따라, 각각의 위치 특징분포를 각각의 인식 특징분포와 비교하여 각각의 유사도를 산출할 수 있다. 각각의 위치에 해당하는 상기 위치 별로 유사도(확률)를 산출하고, 그 중 가장 큰 확률이 산출되는 위치를 현재위치로 결정할 수 있다.
상기 소정 하위 변환규칙 및 상기 소정 하위 비교규칙에 대한 내용은, 상술한 소정 변환규칙 및 소정 비교규칙에 대한 설명을 통해 이해할 수 있다.
이하 도 17 내지 19를 참고하여, 제 1실시예에 따라 하나의 이동 로봇만이 주행구역(X)을 주행하면서 맵을 학습하는 학습단계(S100)를 설명한다.
본 발명에 따른 이동 로봇의 맵 학습단계는 상기 노드(N) 정보(D180)를 바탕으로 한다.
학습단계(S100)는, 원점 노드(O)를 설정하는 단계(S110)를 포함한다. 원점 노드(O)는 맵 상의 기준 점으로서, 노드(N) 좌표 정보(D186)는 원점 노드(O)와의 상대적 변위를 측정하여 생성된다. 노드(N) 좌표 정보(D186)가 수정되는 경우에도 원점 노드(O)는 변경되지 않는다.
학습단계(S100)는, 원점 노드(O)를 설정하는 단계(S110) 이후, 이동 로봇(100)의 주행 중 노드(N) 정보(D180)를 생성하는 단계(S120)를 포함한다.
도 18을 참고하여, 노드(N) 정보(D180)는, 복수의 노드(N) 정보(D180)들 중에 어느 노드에 노드(N) 정보(D180)인지 식별이 가능케 해주는 노드 고유 인덱스(D181)를 포함한다. 후술하는 바 노드(N) 정보(D180)를 복수의 이동 로봇이 서로 송수신하거나 중앙 서버와 서로 송수신하는 경우, 노드 고유 인덱스(D181)를 근거로 복수의 노드(N) 정보(D180)들 중 중복되는 노드(N) 정보(D180)를 식별할 수 있다.
또한, 노드(N) 정보(D180)는 해당 노드(N)에 대응하는 획득영상 정보(D183)를 포함할 수 있다. 대응하는 획득영상 정보(D183)는, 해당 노드(N)와 대응하는 현실의 위치에서 영상획득부(125)가 획득한 영상일 수 있다.
또한, 노드(N) 정보(D180)는 해당 노드(N)에서 주변 환경과의 거리 정보(D184)를 포함할 수 있다. 주변 환경과의 거리 정보(D184)는, 해당 노드(N)와 대응하는 현실의 위치에서 장애물 감지센서(131) 등이 측정한 거리 정보일 수 있다.
또한, 노드(N) 정보(D180)는 노드(N) 좌표 정보(D186)를 포함한다. 노드(N) 좌표 정보(D186)는 원점 노드(O)를 기준으로 얻어질 수 있다.
또한, 노드(N) 정보(D180)는 노드 갱신 시각 정보(D188)를 포함할 수 있다. 노드 갱신 시각 정보(D188)는 노드(N) 정보(D180)가 생성 또는 수정되는 시점에 대한 정보이다. 이동 로봇(100)이 기존의 노드(N) 정보(D180)와 노드 고유 인덱스(D181)가 같은 노드(N) 정보(D180)를 수신받은 경우, 노드 갱신 시각 정보(D188)를 근거로 노드(N) 정보(D180)의 갱신여부를 결정할 수도 있다. 노드 갱신 시각 정보(D188)는 최신의 노드(N) 정보(D180)로의 갱신 여부를 판단할 수 있게 해준다.
인접 노드와의 측정 변위 정보(D165)는 상기 주행 변위 정보 및 후술할 루프 변위(LC) 정보를 의미한다. 인접 노드와의 측정 변위 정보(D165)가 제어부(140)에 입력되면, 노드(N) 정보(D180)가 생성되거나 수정된다.
노드(N) 정보(D180)의 수정은 노드(N) 좌표 정보 및 노드 갱신 시각 정보(D188)의 수정일 수 있다. 즉, 노드 고유 인덱스(D181), 대응하는 획득영상 정보(D183) 및 주변 환경과의 거리 정보(D184)는 한번 생성되면 인접 노드와의 측정 변위 정보(D165)가 입력되어도 수정되지 않는 반면, 노드(N) 좌표 정보(D186) 및 노드 갱신 시각 정보(D188)는 인접 노드와의 측정 변위 정보(D165)가 입력되면 수정될 수 있다.
노드(N) 정보(D180)를 생성하는 단계(S120)에서, 측정된 상기 주행 변위(인접 노드와의 측정 변위 정보(D165))가 입력되면, 이를 근거로 노드(N) 정보(D180)가 생성된다. 상기 주행 변위의 시점이 되는 노드(N1)의 좌표(노드 좌표 정보(D186))에 상기 주행 변위를 더하여, 상기 주행 변위의 종점이 되는 생성되는 노드(N2)의 좌표(노드 좌표 정보(D186))를 생성할 수 있다. 노드(N) 정보(D180)가 생성되는 시점을 기준으로 노드 갱신 시각 정보(D188)가 생성된다. 이때, 생성되는 노드(N2)의 노드 고유 인덱스(D181)가 생성된다. 또한, 생성되는 노드(N2)에 대응하는 획득영상의 정보(D183)가 해당 노드(N2)에 매칭될 수 있다. 또한, 생성되는 노드(N2)의 주변 환경과의 거리 정보(D184)가 해당 노드(N2)에 매칭될 수 있다.
도 19를 참고하여, 노드(N) 정보(D180)를 생성하는 단계(S120)를 설명하면, 원점 노드(O)가 설정된 상태에서 측정된 주행 변위(C1)가 입력되어 노드(N1) 정보(D180)가 생성되고, 노드(N1) 정보(D180)가 생성된 상태에서 주행 변위(C2)가 입력되어 노드(N2) 정보(D180)가 생성되고, 노드(N2) 정보(D180)가 생성된 상태에서 주행 변위(C3)가 입력되어 노드(N3) 정보(D180)가 생성된다. 이와 같이 순차적으로 입력되는 주행 변위(C1,C2,C3,…,C16)를 근거로 순차적으로 노드(N1,N2,N3,…,N16)의 노드 정보(D180)가 생성된다.
학습단계(S100)는, 주행 중 노드(N) 정보(D180)를 생성하는 단계(S120) 이후, 노드(N) 사이의 루프 변위(LC) 측정여부를 판단하는 단계(S130)를 포함한다. 노드(N) 간 루프 변위(LC) 측정여부 판단단계(S130)에서, 루프 변위(LC)가 측정되면 노드(N) 좌표 정보를 수정하는 단계(S135)를 진행하고, 루프 변위(LC)가 측정되지 않으면 이동 로봇(100)의 맵 학습 종료여부를 판단하는 단계(S150)를 진행한다. 맵 학습 종료여부 판단단계(S150)에서, 맵 학습이 종료되지 않으면 다시 주행 중 노드(N) 정보 생성단계(S120)를 진행할 수 있다. 도 17은 하나의 실시예를 제시한 것이고, 주행 중 노드(N) 정보 생성 단계(S120) 및 노드 간 루프 변위(LC) 측정여부 판단단계(S130)의 선후 관계는 서로 바뀔 수 있고, 동시에 진행될 수도 있다.
도 19를 참고하여, 어느 하나의 주행 변위(C15)의 시점이 되는 노드(C15)를 해당 주행 변위(C15)의 종점이 되는 노드(16)의 ‘기초 노드’라고 정의할 때, 루프 변위(Loop Constraint, LC)는 어느 한 노드(N15) 및 상기 어느 한 노드(N15)의 상기 ‘기초 노드(N14)가 아닌’ 다른 인접한 노드(N5) 사이의 변위가 측정된 값을 의미한다.
일 예로, 어느 한 노드(N15)에 대응하는 획득영상 정보(D183)와 다른 인접한 노드(N5)에 대응하는 획득영상 정보(D183)가 서로 비교되어 두 노드(N15,N5) 사이의 루프 변위(LC)가 측정될 수 있다. 다른 예로, 어느 한 노드(N15)의 거리 정보(D184)와 다른 인접한 노드(N5)의 거리 정보(D184)가 서로 비교되어 두 노드(N15,N5) 사이의 루프 변위(LC)가 측정될 수 있다.
도 19에는, 노드 N5와 노드 N15 사이에서 측정된 루프 변위(LC1), 및 노드 N4와 노드 N16 사이에서 측정된 루프 변위(LC2)가 예시적으로 도시되어 있다.
설명의 편의를 위해, 루프 변위(LC)가 측정된 두 노드(N)를 각각 제 1루프 노드 및 제 2루프 노드라고 정의한다. 기 저장된 제 1루프 노드의 노드 좌표 정보(D186) 및 제 2루프 노드의 노드 좌표 정보(D186)에 의해 산출되는 ‘산출 변위(Δx1,Δy1,θ1)’(좌표값의 차에 의해 산출됨)가 루프 변위(LC)(Δx2,Δy2,θ2)와 차이(Δx1-Δx2,Δy1-Δy2,θ1- θ2)가 발생할 수 있다. 상기 차이가 발생하면, 상기 차이를 오차로 보고 노드 좌표 정보(D186)를 수정할 수 있는데, 루프 변위(LC)가 상기 산출 변위보다 더 정확한 값이라는 가정하에 노드 좌표 정보(D186)를 수정한다.
노드 좌표 정보(D186)를 수정하는 경우, 상기 제 1루프 노드 및 제 2루프 노드의 노드 좌표 정보(D186)만 수정할 수도 있으나, 상기 오차의 발생은 주행 변위들의 오차가 누적되어 발생된 것이므로 상기 오차를 분산시켜 다른 노드들의 노드 좌표 정보(D186)도 수정하도록 설정할 수 있다. 예를 들어, 상기 제 1루프 노드와 제 2루프 노드 사이에 상기 주행 변위에 의해 생성된 모든 노드들에, 상기 오차 값을 분산시켜 노드 좌표 정보(D186)를 수정할 수 있다. 도 19를 참고하여, 루프 변위 LC1이 측정되고 상기 오차가 산출된 경우, 제 1루프 노드 N15와 제 2루프 노드 N5를 포함한 노드 N6 내지 N14에 상기 오차를 분산시켜, 노드 N5 내지 N15의 노드 좌표 정보(D186)가 모두 조금씩 수정될 수 있다. 물론, 이러한 오차 분산을 확대시켜, 노드 N1 내지 N4의 노드 좌표 정보(D186)를 같이 수정할 수도 있음은 물론이다.
이하 도 20 내지 24를 참고하여, 제 2실시예에 따라 복수의 이동 로봇이 주행구역(X)을 주행하면서 서로 협업하여 맵을 학습하는 학습단계(S200)를 설명한다. 이하, 제 2실시예에서 상기 제 1실시예와 중복되는 설명은 생략한다.
학습단계(S200)는 복수의 이동 로봇 중 어느 한 이동 로봇 A를 기준으로 설명한다. 즉, 이하의 설명에서 A 이동 로봇(100)은 본 이동 로봇(100)을 의미한다. 타 이동 로봇(100)은 여러 대일 수 있으나, 도 20 내지 24에서는 설명의 편의를 위해, 타 이동 로봇은 B 이동 로봇(100) 1대인 것을 기준으로 설명하나, 반드시 이에 한정될 필요는 없다.
학습단계(S200)는, 본 이동 로봇(100)의 원점 노드(AO)를 설정하는 단계(S210)를 포함한다. 원점 노드(AO)는 맵 상의 기준 점으로서, 본 이동 로봇(100)의 노드(AN) 좌표 정보(D186)는 본 이동 로봇(100)의 원점 노드(AO)와의 상대적 변위를 측정하여 생성된다. 노드(AN) 좌표 정보(D186)가 수정되는 경우에도 원점 노드(AO)는 변경되지 않는다. 그러나, 타 이동 로봇(100)의 원점 노드(BO)는 본 이동 로봇(100)의 수신부(190)에 의해 수신받는 정보로서 본 이동 로봇(100)이 학습하는 맵상에서 기준점이 아니며, 생성 및 수정/조정될 수 있는 하나의 노드(N) 정보로 볼 수 있다.
학습단계(S100)는, 원점 노드(AO)를 설정하는 단계(S110) 이후, 본 이동 로봇(100)의 주행 중 노드(N) 정보(D180)를 생성하고, 수신부(190)를 통해 타 이동 로봇(100)의 노드 그룹 정보를 수신하고, 송신부(170)를 통해 본 이동 로봇(100)의 노드 그룹정보를 타 이동 로봇에게 송신하는 단계(S220)를 포함한다.
어느 한 이동 로봇의 노드 그룹 정보는, 상기 어느 한 이동 로봇이 저장하고 있는 모든 노드 정보(D180)에서 상기 어느 한 이동 로봇이 생성한 모든 노드 정보(D180)를 제외한 노드 정보(D180)들의 집합으로 정의할 수 있다. 또한, 어느 한 타 이동 로봇의 노드 그룹 정보는, 상기 어느 한 타 이동 로봇이 저장하고 있는 모든 노드 정보(D180)에서 상기 어느 한 타 이동 로봇이 생성한 모든 노드 정보(D180)를 제외한 노드 정보(D180)들의 집합으로 정의할 수 있다.
도 22 내지 24에서, A 이동 로봇 입장에서 B 이동 로봇의 노드 그룹 정보는 GB로 도시된 영역 내의 노드 정보(D180)들을 의미하고, B 이동 로봇 입장에서 A 이동 로봇의 노드 그룹 정보는 GA로 도시된 영역 내의 노드 정보(D180)들을 의미한다. 또한, 도 25에서, A 이동 로봇 입장에서 B 이동 로봇의 노드 그룹 정보는 GB 및 GC (B 이동 로봇이 A 또는 C 이동 로봇으로부터 이미 GC 영역 내의 노드 정보들을 수신 받은 경우)로 도시된 영역 내의 노드 정보(D180)들을 의미하고, A 이동 로봇 입장에서 C 이동 로봇의 노드 그룹 정보는 GB 및 GC (C 이동 로봇이 A 또는 B 이동 로봇으로부터 이미 GB 영역 내의 노드 정보들을 수신 받은 경우)로 도시된 영역 내의 노드 정보(D180)들을 의미한다.
이와 달리, 어느 한 이동 로봇의 노드 그룹 정보를 상기 어느 한 이동 로봇이 ‘생성한’ 노드 정보 들의 집합으로 정의할 수도 있다. 예를 들어, 도 25를 참고하면, A 이동 로봇입장에서 C 이동 로봇의 노드 그룹 정보는 GC영역 내의 노드 정보들일 수 있고, C 이동 로봇으로 부터만 수신 받을 수 있도록 기설정 될 수 있다.
도 21을 참고하여, 노드(N) 정보(D180)는, 상기 노드 고유 인덱스(D181), 해당 노드(N)에 대응하는 획득영상 정보(D183), 해당 노드(N)에서 주변 환경과의 거리 정보(D184), 노드(N) 좌표 정보(D186) 및 노드 갱신 시각 정보(D188)를 포함할 수 있다. 이에 대한 설명은 상기한 바와 같다.
송신부 송신 정보(D190)는, 본 이동 로봇이 생성하거나 수정한 노드(N) 정보를 타 이동 로봇에게 송신해주는 정보를 의미한다. 본 이동 로봇의 송신부 송신 정보(D190)는 본 이동 로봇의 노드 그룹 정보일 수 있다.
수신부 수신 정보(D170)는, 타 이동 로봇이 생성하거나 수정한 노드(N) 정보를 타 이동 로봇으로부터 수신받는 정보를 의미한다. 본 이동 로봇의 수신부 수신 정보(D170)는 타 이동 로봇의 노드 그룹 정보일 수 있다. 수신부 수신 정보(D170)는 기존에 저장된 노드 정보(D180)들에 추가되거나 기존 노드 정보(D180)를 갱신시킨다.
본 이동 로봇(100)의 주행 중 노드(N) 정보(D180)를 생성하는 과정에 대한 설명은 상기 제 1실시예의 내용과 같다.
도 21을 참고하여, 인접 노드와의 측정 변위 정보(D165)는 상기 주행 변위 정보, 상기 루프 변위(LC) 정보 및 후술할 경계 변위(EC) 정보를 의미한다. 인접 노드와의 측정 변위 정보(D165)가 제어부(140)에 입력되면, 노드(N) 정보(D180)가 생성되거나 수정된다.
노드(N) 정보(D180)의 수정은 노드(N) 좌표 정보 및 노드 갱신 시각 정보(D188)의 수정일 수 있다. 즉, 노드 고유 인덱스(D181), 대응하는 획득영상 정보(D183) 및 주변 환경과의 거리 정보(D184)는 한번 생성되면 인접 노드와의 측정 변위 정보(D165)가 입력되어도 수정되지 않는 반면, 노드(N) 좌표 정보(D186) 및 노드 갱신 시각 정보(D188)는 인접 노드와의 측정 변위 정보(D165)가 입력되면 수정될 수 있다.
도 22 내지 24을 참고하여, 본 이동 로봇(100)의 맵 상의 노드(N) 정보 들은, 본 이동 로봇(100)이 직접 생성한 노드 정보(D180)들(GA) 및 타 이동 로봇(100)의 노드 그룹 정보(GB)로 이루어진다.
상기 단계(S220)에서, 복수의 이동 로봇이 각각 주행중 측정된 변위를 근거로 각각 이동 로봇의 노드 정보를 생성한다.
도 22 내지 24를 참고하여, 본 이동 로봇(100)이 노드(AN) 정보(D180)를 생성하는 단계(S220)를 설명하면, 원점 노드(AO)가 설정된 상태에서 측정된 주행 변위(AC1)가 입력되어 노드(AN1) 정보(D180)가 생성되고, 노드(AN1) 정보(D180)가 생성된 상태에서 주행 변위(AC2)가 입력되어 노드(AN2) 정보(D180)가 생성되고, 노드(AN2) 정보(D180)가 생성된 상태에서 주행 변위(AC3)가 입력되어 노드(AN3) 정보(D180)가 생성된다. 이와 같이 순차적으로 입력되는 주행 변위(AC1,AC2,AC3,…,AC12)를 근거로 순차적으로 노드(AN1,AN2,AN3,…,AN12)의 노드 정보(D180)가 생성된다.
타 이동 로봇(100)이 노드(BN) 정보(D180)를 생성하는 단계(S220)를 설명하면, 원점 노드(BO)가 설정된 상태에서 측정된 주행 변위(BC1)가 입력되어 노드(BN1) 정보(D180)가 생성되는 것을 시작으로, 순차적으로 입력되는 주행 변위(BC1,BC2,BC3,…,BC12)를 근거로 순차적으로 노드(BN1,BN2,BN3,…,BN12)의 노드 정보(D180)가 생성된다.
상기 단계(S220)에서, 복수의 이동 로봇이 각각의 노드 그룹 정보를 서로 송신 및 수신한다.
도 22 내지 24를 참고하여, 본 이동 로봇(100)은 타 이동 로봇의 노드 그룹정보(BN)를 수신하여, 본 이동 로봇(100)의 맵상에 타 이동 로봇의 노드 그룹 정보(GB)를 추가한다. 도 22에서, 아직 본 이동 로봇(100)과 타 이동 로봇(100) 사이에 경계 변위(EC)가 측정되지 않은 경우, 본 이동 로봇(100)의 맵 상에 타 이동 로봇(100)의 원점 노드(BO)의 위치는 임의로 배치될 수 있다. 본 실시예에서, 본 이동 로봇(100)의 맵 상에 타 이동 로봇(100)의 원점 노드(BO)는 본 이동 로봇(100)의 원점 노드(AO)의 위치와 같도록 설정된다. 경계 변위(EC)가 측정되어 맵상에 타 이동 로봇(100)의 노드 그풉 정보가 조정되기 전에는, 본 이동 로봇이 생성한 노드 정보들(GA)과 타 이동 로봇의 노드 그룹 정보(GB)가 조합되어 현실의 상황과 일치하는 맵을 생성하기 곤란해진다.
본 이동 로봇(100)은 본 이동 로봇(100)의 노드 그룹 정보(GA)를 타 이동 로봇에게 송신한다. 타 이동 로봇(100)의 맵상에 본 이동 로봇의 노드 그룹 정보(GA)가 추가된다.
학습단계(S200)는, 본 이동 로봇이 생성한 두 노드 사이의 루프 변위(LC) 측정여부를 판단하는 단계(S230)를 포함한다. 학습단계(S200)은, 본 이동 로봇이 생성한 두 노드 사이의 루프 변위(LC) 측정되는 단계를 포함할 수 있다.
루프 변위(LC)에 대한 설명은 상기 제 1실시예에서의 설명과 같다.
상기 학습단계(S200)는, 상기 측정된 루프 변위(LC)를 근거로 하여, 본 이동 로봇의 맵 상에서 본 이동 로봇이 생성한 노드의 좌표를 수정하는 단계(S245)를 포함할 수 있다.
노드(AN) 간 루프 변위(LC) 측정여부 판단단계(S230)에서, 루프 변위(LC)가 측정되면 복수의 이동 로봇이 생성한 노드(AN) 좌표 정보를 수정하는 단계(S235)를 진행하고, 루프 변위(LC)가 측정되지 않으면 본 이동 로봇이 생성한 노드와 타 이동 로봇이 생성한 노드 사이에 경계 변위(EC) 측정여부를 판단하는 단계(240)를 포함한다. 학습단계(S200)는, 본 이동 로봇이 생성한 노드와 타 이동 로봇이 생성한 노드 사이에 경계 변위(EC)가 측정되는 단계를 포함할 수 있다. 학습단계(S200)는, 복수의 이동 로봇이 각각 생성한 두 노드 사이에 경계 변위(EC)가 측정되는 단계를 포함할 수 있다.
도 23 및 24를 참고하여, 경계 변위(Edge Constraint, EC)는 어느 한 이동 로봇이 생성한 노드(AN11) 및 다른 한 이동 로봇이 생성한 노드(BN11) 사이의 변위가 측정된 값을 의미한다.
일 예로, 본 이동 로봇이 생성한 노드(AN11)에 대응하는 획득영상 정보(D183)와 타 이동 로봇이 생성한 노드(BN11)에 대응하는 획득영상 정보(D183)가 서로 비교되어 두 노드(AN11,BN11) 사이의 경계 변위(EC1)가 측정될 수 있다. 다른 예로, 본 이동 로봇이 생성한 노드(AN11)의 거리 정보(D184)와 타 이동 로봇이 생성한 노드(BN11)의 거리 정보(D184)가 서로 비교되어 두 노드(AN11,BN11) 사이의 경계 변위(EC1)가 측정될 수 있다.
위와 같은 경계 변위(EC)의 측정은 각각의 이동 로봇 내에서 이루어지는데, 수신부(190)를 통해 타 이동 로봇으로부터 타 이동 로봇이 생성한 노드 그룹 정보를 수신받을 수 있고, 이를 바탕으로 자신이 생성한 노드 정보 들과 비교할 수 있기 때문이다.
도 23 및 24에는, 노드 AN11과 노드 BN11 사이에서 측정된 경계 변위(EC1), 노드 AN12와 노드 BN4 사이에서 측정된 경계 변위(EC2), 및 노드 AN10과 노드 BN12 사이에서 측정된 경계 변위(EC3)가 예시적으로 도시되어 있다.
경계 변위(EC) 측정여부를 판단하는 단계(240)에서, 경계 변위(EC)가 측정되지 않으면 이동 로봇(100)의 맵 학습 종료여부를 판단하는 단계(S250)를 진행한다. 맵 학습 종료여부 판단단계(S250)에서, 맵 학습이 종료되지 않으면 다시 주행 중 노드(N) 정보 생성하고 복수의 이동 로봇이 서로 노드 그룹 정보를 송수신하는 단계(S220)를 진행할 수 있다. 도 20은 하나의 실시예를 제시한 것이고, 주행 중 노드(N) 정보 생성하고 노드 그룹 정보를 송수신하는 단계(S120), 노드 간 루프 변위(LC) 측정여부 판단단계(S130) 및 노드 간 경계 변위(EC) 측정여부 판단단계(S240)의 선후 관계는 서로 바뀔 수 있고, 동시에 진행될 수도 있다.
경계 변위(EC) 측정여부를 판단하는 단계(S240)에서 경계 변위(EC)가 측정되면, 본 이동 로봇(100)의 맵 상에서 타 이동 로봇으로부터 수신한 노드 그룹(GB)의 좌표를 기 조정(Align)하였는지 여부를 판단하는 단계(S242)가 진행된다.
상기 조정(Align)은 본 이동 로봇의 노드 그룹 정보(GA)와 타 이동 로봇의 노드 그룹 정보(GB)가 본 이동 로봇의 맵상에서 경계 변위(EC)를 근거로 현실과 유사하게 정렬되는 것을 의미한다. 즉, 경계 변위(EC)는 퍼즐 조각과 같은 본 이동 로봇의 노드 그룹 정보(GA)와 타 이동 로봇의 노드 그룹 정보(GB)가 서로 짜 맞춰지도록 하는 단서를 제공한다. 본 이동 로봇의 맵상에서, 타 이동 로봇의 노드 그룹 정보(GB) 중 타 이동 로봇의 원점 노드(BO)의 좌표가 수정되고, 나머지 타 이동 로봇의 노드(BN)의 좌표는 타 이동 로봇의 원점 노드(BO)의 수정된 좌표를 기준으로 수정됨으로써, 조정(Align)이 이루어진다.
도 23을 참고하여, 상기 단계(S242)에서 본 이동 로봇의 맵상에 타 이동 로봇의 노드 그룹(GB)이 기 조정되지 않은 경우, 상기 측정된 경계 변위(EC1)를 근거로 하여, 어느 하나의 이동 로봇(본 이동 로봇)의 맵 상에서 다른 하나의 이동 로봇(타 이동 로봇)으로부터 수신한 노드 그룹(GB)의 좌표를 조정하는 단계(S244)가 진행된다. 동시에, 상기 다른 하나의 이동 로봇(타 이동 로봇)의 맵 상에서 상기 어느 하나의 이동 로봇(본 이동 로봇)으로부터 수신한 노드 그룹(GA)의 좌표를 조정하는 단계(S244)가 진행된다. 도 23에서, 본 이동 로봇의 맵상에 상기 도 22의 그림과 달리 타 이동 로봇의 노드 그룹 정보(GB)가 전체적으로 이동하며 조정(Align)된 것을 볼 수 있다.
두 이동 로봇이 생성한 노드 간에 측정된 경계 변위(EC1) 정보는 상기 두 이동 로봇에게 모두 송신되어, 각 이동 로봇의 맵상에서 자신을 기준으로 상대 로봇의 노드 그룹 정보를 조정할 수 있다.
도 24를 참고하여, 상기 단계(S242)에서 본 이동 로봇의 맵 상에 타 이동 로봇으로부터 수신한 노드 그룹(GB)의 좌표를 기 조정한 경우, 추가로 측정된 경계 변위(EC2, EC3)를 근거로 하여, 어느 하나의 이동 로봇(본 이동 로봇)의 맵 상에서 상기 어느 하나의 이동 로봇(본 이동 로봇)이 생성한 노드의 좌표를 수정하는 단계(S245)가 진행된다. 동시에, 다른 하나의 이동 로봇(타 이동 로봇)의 맵 상에서 상기 다른 하나의 이동 로봇(타 이동 로봇)이 생성한 노드의 좌표를 수정하는 단계(S245)가 진행된다.
두 이동 로봇이 생성한 노드 간에 측정된 경계 변위(EC2, EC3) 정보는 상기 두 이동 로봇에게 모두 송신되어, 각 이동 로봇의 맵상에서 자신을 기준으로 자신이 생성한 노드 정보를 수정할 수 있다.
설명의 편의를 위해, 경계 변위(EC)가 측정된 두 노드 중 본 이동 로봇이 생성한 노드를 본 경계 노드라고 정의하고, 타 이동 로봇이 생성한 노드를 타 경계 노드라고 정의한다. 기 저장된 본 경계 노드의 노드 좌표 정보(D186) 및 타 경계 노드의 노드 좌표 정보(D186)에 의해 산출되는 ‘산출 변위’(좌표값의 차에 의해 산출됨)가 경계 변위(EC)와 차이가 발생할 수 있다. 상기 차이가 발생하면, 상기 차이를 오차로 보고 본 이동 로봇이 생성한 노드 좌표 정보(D186)를 수정할 수 있는데, 경계 변위(EC)가 상기 산출 변위보다 더 정확한 값이라는 가정하에 노드 좌표 정보(D186)를 수정한다.
노드 좌표 정보(D186)를 수정하는 경우, 상기 본 경계 노드의 노드 좌표 정보(D186)만 수정할 수도 있으나, 상기 오차의 발생은 주행 변위들의 오차가 누적되어 발생된 것이므로 상기 오차를 분산시켜 본 이동 로봇이 생성한 다른 노드들의 노드 좌표 정보(D186)도 수정하도록 설정할 수 있다. 예를 들어, 2개의 본 경계 노드(경계 변위가 2번 이상 측정된 경우 발생됨) 사이에 상기 주행 변위에 의해 생성된 모든 노드들에, 상기 오차 값을 분산시켜 노드 좌표 정보(D186)를 수정할 수 있다. 도 24를 참고하여, 경계 변위 EC3이 측정되고 상기 오차가 산출된 경우, 본 경계 노드 AN12와 다른 본 경계 노드 AN10을 포함한 노드 AC11에 상기 오차를 분산시켜, 노드 AN10 내지 AN12의 노드 좌표 정보(D186)가 모두 조금씩 수정될 수 있다. 물론, 이러한 오차 분산을 확대시켜, 노드 AN1 내지 AN12의 노드 좌표 정보(D186)를 같이 수정할 수도 있음은 물론이다.
상기 학습단계(S200)는, 상기 측정된 경계 변위(EC)를 근거로 하여, 어느 하나의 이동 로봇(본 이동 로봇)의 맵 상에서 다른 하나의 이동 로봇(타 이동 로봇)으로부터 수신한 노드 그룹의 좌표를 조정하는 단계를 포함할 수 있고, 상기 다른 하나의 이동 로봇(타 이동 로봇)의 맵 상에서 상기 어느 하나의 이동 로봇(본 이동 로봇)으로부터 수신한 노드 그룹의 좌표를 조정하는 단계를 포함할 수 있다.
상기 학습단계(S200)는, 상기 측정된 경계 변위(EC)를 근거로 하여, 어느 하나의 이동 로봇(본 이동 로봇)의 맵 상에서 상기 어느 하나의 이동 로봇(본 이동 로봇)이 생성한 노드의 좌표를 수정하는 단계를 포함할 수 있고, 다른 하나의 이동 로봇(타 이동 로봇)의 맵 상에서 상기 다른 하나의 이동 로봇(타 이동 로봇)이 생성한 노드의 좌표를 수정하는 단계를 포함할 수 있다.
상기 단계(S244,S245) 이후, 이동 로봇(100)의 맵 학습 종료여부를 판단하는 단계(S250)를 진행할 수 있다. 맵 학습 종료여부 판단단계(S250)에서, 맵 학습이 종료되지 않으면 다시 주행 중 노드(N) 정보 생성하고 복수의 이동 로봇이 서로 노드 그룹 정보를 송수신하는 단계(S220)를 진행할 수 있다.
도 25를 참고하여, 상기 제 2실시예의 설명은, 이동 로봇이 3개 이상인 경우까지 확장하여 적용될 수 있다.
상기 복수의 이동 로봇이 3개 이상의 이동 로봇인 경우, 제 1이동 로봇이 제 2이동 로봇으로부터 수신한 노드 그룹 정보는, 제 2이동 로봇이 제 3이동 로봇으로부터 수신한 노드 그룹 정보를 포함할 수 있다. 이 경우, 동일한 노드에 대해서 수신한 노드 정보(예를 들어, 제 2이동 로봇으로부터 수신받은 제 3이동 로봇이 생성한 노드 정보)와 저장된 노드 정보(예를 들어, 이전에 이미 제 3이동 로봇으로부터 수신받은 제 3 이동 로봇이 생성한 노드 정보)가 서로 다른 경우, 상기 노드 갱신 시각 정보를 근거로 하여 최신의 노드 정보를 선택하여, 노드 정보의 갱신여부를 결정할 수 있다.
도 25에서, A 이동 로봇이 생성한 두 노드 사이에서 측정된 루프 변위(A-LC1), B 이동 로봇이 생성한 두 노드 사이에서 측정된 루프 변위(B-LC1), 및 C 이동 로봇이 생성한 두 노드 사이에서 측정된 루프 변위(C-LC1)가 예시적으로 도시되어 있다. 또한, 도 25에서, A 이동 로봇이 생성한 노드와 B 이동 로봇이 생성한 노드 사이에서 측정된 경계 변위(AB-EC1), B 이동 로봇이 생성한 노드와 C 이동 로봇이 생성한 노드 사이에서 측정된 2개의 경계 변위(BC-EC1, BC-EC2), 및 C 이동 로봇이 생성한 노드와 A 이동 로봇이 생성한 노드 사이에서 측정된 2개의 경계 변위(CA-EC1, CA-EC2)가 예시적으로 도시되어 있다.
도 25에서, A 이동 로봇의 맵 상에는, A 로봇이 생성한 노드 정보들이 도시되고, 타 이동 로봇의 노드 그룹 정보가 상기 경계 변위를 통해 조정(Align)된 것이 도시된다.
도 26a 내지 도 26f를 참고하여, 이하 본 이동 로봇(100a)과 타 이동 로봇(100b)이 협업하여 맵을 생성하고 이를 활용하는 일 시나리오를 설명한다.
도 26a 내지 도 26f의 일 시나리오의 조건은 다음과 같다. 현실의 평면에는 모두 5개의 방(Room1, Room2, Room3, Room4, Room5)이 있다. 현실의 평면에서, 본 이동 로봇(100a)은 방(Room3)에 배치되고, 타 이동 로봇(100b)은 방(Room1)에 배치된다. 현재 상태는, 방(Room1)과 방(Room4) 사이의 도어가 닫혀있고, 방(Room1)과 방(Room5) 사이의 도어가 닫혀있어, 방(Room1)에서 방(Room4) 또는 방(Room5)로 이동 로봇(100a, 100b)이 스스로 이동할 수 없는 상태이다. 또한, 현재 상태는, 방(Room1)과 방(Room3) 사이의 도어가 열려 있어, 방(Room1)과 방(Room3) 중 어느 하나에서 다른 하나로 이동 로봇(100a, 100b)이 스스로 이동할 수 있는 상태이다. 이동 로봇(100a, 100b)은 아직 현실의 평면을 학습하지 못한 상태로서, 도 26a 내지 도 26f에 도시된 주행은 본 현실의 형면에서의 최초의 주행이라고 가정한다.
도 26a 내지 도 26f에서, 본 이동 로봇(100a)의 맵 상의 노드(N) 정보 들은, 본 이동 로봇(100a)이 직접 생성한 노드 정보(D180)들(GA) 및 타 이동 로봇(100b)의 노드 그룹 정보(GB)로 이루어진다. 본 이동 로봇(100a)의 맵 상의 노드 들중 까만 점으로 표시된 노드(ANp)는, 본 이동 로봇(100a)의 현실의 현재 위치와 대응되는 노드를 의미한다. 또한, 본 이동 로봇(100a)의 맵 상의 노드 들중 까만 점으로 표시된 노드(BNp)는, 타 이동 로봇(100b)의 현실의 현재 위치와 대응되는 노드를 의미한다.
도 26a를 참고하여, 본 이동 로봇(100a)은 최초의 현실의 위치와 대응되는 원점 노드(AO)가 설정된 상태에서, 주행하면서 측정된 주행 변위를 근거로 순차적으로 복수의 노드 정보를 생성한다. 이와 동시에, 타 이동 로봇(100b)은 최초의 현실의 위치와 대응되는 원점 노드(BO)가 설정된 상태에서, 주행하면서 측정된 주행 변위를 근거로 순차적으로 복수의 노드 정보를 생성한다. 본 이동 로봇()은 본 이동 로봇()의 맵 상에 노드 그룹 정보(GA)를 스스로 생성시킨다. 이와 동시에, 도시되지는 않았으나, 타 이동 로봇()은 타 이동 로봇()의 맵 상에는 노드 그룹 정보(GB)를 스스로 생성시킨다. 또한, 본 이동 로봇()과 타 이동 로봇()이 서로 노드 그룹 정보를 송수신하고, 이에 따라 본 이동 로봇()의 맵 상에 노드 그룹 정보(GB)가 추가된다. 도 26a에서, 경계 변위(EC)가 아직 측정되지 않은 상태로서, 본 이동 로봇()의 맵상에서 원점 노드(AO)와 원점 노드(BO)가 일치되는 것을 기준으로 노드 그룹 정보(GA) 및 노드 그룹 정보(GB)가 병합된다. 이 때, 도 26a의 본 이동 로봇()의 맵 상의 노드 그룹 정보(GA) 내의 노드와 노드 그룹 정보(GB) 내의 노드의 상대적 위치 관계(노드 좌표 정보를 통해 알 수 있음)는, 현실의 위치 관계를 반영하지 못하고 있다.
도 26b를 참고하여, 그 후, 본 이동 로봇()과 타 이동 로봇()이 지속적으로 주행 및 학습을 수행한다. 노드 그룹 정보(GA) 내의 어느 한 노드(AN18) 및 노드 그룹 정보(GB) 내의 어느 한 노드(BN7) 사이의 경계 변위(EC)가 측정된다. 본 이동 로봇()의 맵 상에서 경계 변위(EC)를 근거로 노드 그룹 정보(GB) 내의 노드 들의 좌표가 수정됨으로써, 노드 그룹 정보(GA)와 노드 그룹 정보(GB)의 조정(Align)이 이루어진다. 이 때, 도 26b의 본 이동 로봇()의 맵 상의 노드 그룹 정보(GA) 내의 노드와 노드 그룹 정보(GB) 내의 노드의 상대적 위치 관계는, 현실의 위치 관계를 반영하게 된다. 또한, 본 이동 로봇()은 타 이동 로봇()이 주행한 영역을 직접 주행하지 않더라도, 타 이동 로봇()이 주행한 영역을 맵핑할 수 있게 된다.
도 26c를 참고하여, 본 이동 로봇()의 맵 상에 노드 그룹 정보(GB)의 좌표를 기 조정한 후, 본 이동 로봇()은 계속해서 방(Room3)을 주행하며 학습을 진행하여, 노드 그룹 정보(GA)에 노드 정보가 추가된다. 또한, 타 이동 로봇()은 계속해서 방(Room1)을 주행하며 학습을 진행하여, 노드 그룹 정보(GB)에 노드 정보가 추가하고, 갱신된 노드 그룹 정보(GB)를 본 이동 로봇()에 송신한다. 이에 따라, 본 이동 로봇()의 맵 상에서 지속적으로 노드 그룹 정보(GA) 및 노드 그룹 정보(GB)에 노드 정보가 추가된다. 또한, 추가의 경계 변위 및 루프 변위가 측정되어, 노드 그룹 정보(GA) 및 노드 그룹 정보(GB)의 노드 정보는 지속적으로 수정된다.
도 26d를 참고하여, 그 후, 본 이동 로봇()은 주행 중 사용자 등에 의해 방(Room3)에서 방(Room1)로 들려서 옮겨지는 상황이 발생한다. (화살표 J 참고) 본 이동 로봇()이 옮겨진 지점에 대응하는 맵 상의 위치는 노드 그룹 정보(GB) 내의 어느 한 노드이다. 본 이동 로봇()은 본 이동 로봇()의 맵 상에서 현재 위치(ANp)를 인식한다.
도 26f를 참고하여, 그 후, 본 이동 로봇()은 본 이동 로봇()의 맵을 이용하여 목표 위치로 이동한다. (화살표 Mr) 본 시나리오에서는, 본 이동 로봇()이 원래 주행을 하고 있었던 방(Room3)으로 이동한다. 도시되지는 않았으나 다른 시나리오에서, 본 이동 로봇()은 타 이동 로봇()과 방(Room1)을 함께 청소하기 위하여, 방(Room1)의 영역 중 아직 타 이동 로봇()이 주행을 하지 않은 영역으로 이동한 후, 청소 주행을 수행할 수 있다. 본 이동 로봇()이 목표 위치로 이동하는 중에도, 타 이동 로봇()은 계속해서 방(Room1)을 주행하며 학습을 진행하여, 노드 그룹 정보(GB)에 노드 정보가 추가하고, 갱신된 노드 그룹 정보(GB)를 본 이동 로봇()에 송신한다. 이에 따라, 본 이동 로봇()의 맵 상에서 지속적으로 노드 그룹 정보(GB)에 노드 정보가 추가된다.
도 26f를 참고하여, 본 이동 로봇()이 목표 위치로 이동을 마친 후, 이동 로봇()은 방(Room3)에서 아직 청소가 진행되지 않은 영역으로 청소 주행을 재시작하고, 학습을 진행한다. 또한, 타 이동 로봇()은 계속해서 방(Room1)을 주행하며 학습을 진행하여, 노드 그룹 정보(GB)에 노드 정보가 추가하고, 갱신된 노드 그룹 정보(GB)를 본 이동 로봇()에 송신한다. 이에 따라, 본 이동 로봇()의 맵 상에서 지속적으로 노드 그룹 정보(GA) 및 노드 그룹 정보(GB)에 노드 정보가 추가된다. 또한, 추가의 루프 변위가 측정되어, 노드 그룹 정보(GA) 및 노드 그룹 정보(GB)의 노드 정보는 지속적으로 수정된다.
본 발명의 상기 제 2실시예에 따른 이동 로봇(100)은, 본체(110)를 이동시키는 주행부(160), 주행 변위를 측정하는 주행 변위 측정부(121), 타 이동 로봇의 노드 그룹 정보를 수신하는 수신부(190), 및 상기 주행 변위를 근거로 맵 상에 노드 정보를 생성하고, 상기 타 이동 로봇의 노드 그룹 정보를 상기 맵에 추가하는 제어부(140)를 포함한다. 상기 설명한 내용과 중복되는 설명은 생략한다.
이동 로봇(100)은, 본 이동 로봇의 노드 그룹 정보를 타 이동 로봇에게 송신하는 송신부(170)를 포함할 수 있다.
제어부(140)는, 두 노드 사이에 측정되는 상기 루프 변위(LC) 또는 상기 경계 변위(EC)를 근거로 하여, 상기 맵 상에서 본 이동 로봇이 생성한 노드의 좌표를 수정하는 노드 정보 수정 모듈(143b)을 포함할 수 있다.
제어부(140)는, 본 이동 로봇이 생성한 노드와 타 이동 로봇이 생성한 노드 사이에 측정되는 상기 경계 변위(EC)를 근거로 하여, 상기 맵 상에서 타 이동 로봇으로부터 수신한 노드 그룹의 좌표를 조정하는 노드 그룹 좌표 조정 모듈(143c)을 포함할 수 있다.
노드 정보 수정 모듈(143b)은, 맵 상에서 타 이동 로봇으로부터 수신한 노드 그룹의 좌표를 기 조정(Align)한 경우, 상기 측정된 경계 변위(EC)를 근거로 하여 맵 상에서 본 이동 로봇이 생성한 노드의 좌표를 수정할 수 있다.
본 발명의 상기 제 2실시예에 따른 복수의 이동 로봇(100) 시스템은, 제 1이동 로봇 및 제 2이동 로봇을 포함한다.
상기 제 1이동 로봇(100)은, 상기 제 1이동 로봇을 이동시키는 제 1주행부(160), 상기 제 1이동 로봇의 주행 변위를 측정하는 제 1주행 변위 측정부(121), 상기 제 2이동 로봇의 노드 그룹 정보를 수신하는 제 1수신부(190), 상기 제 1이동 로봇의 노드 그룹 정보를 상기 제 2이동 로봇에게 송신하는 제 1송신부(170), 및 제 1제어부(140)를 포함한다. 상기 제 1제어부(140)는, 상기 제 1이동 로봇의 주행 변위를 근거로 제 1이동 로봇이 생성하는 제 1맵 상에 노드 정보를 생성하고, 상기 제 2이동 로봇의 노드 그룹 정보를 상기 제 1맵에 추가한다.
상기 제 2이동 로봇(100)은, 상기 제 2이동 로봇을 이동시키는 제 2주행부(160), 상기 제 2이동 로봇의 주행 변위를 측정하는 제 2주행 변위 측정부(121), 상기 제 1이동 로봇의 노드 그룹 정보를 수신하는 제 2수신부(190), 상기 제 2이동 로봇의 노드 그룹 정보를 상기 제 2이동 로봇에게 송신하는 제 2송신부(170), 및 제 2제어부(140)를 포함한다. 상기 제 2제어부(140)는, 상기 제 2이동 로봇의 주행 변위를 근거로 상기 제 2이동 로봇이 생성하는 제 2맵 상에 노드 정보를 생성하고, 상기 제 1이동 로봇의 노드 그룹 정보를 상기 제 2맵에 추가한다.
상기 제 1제어부는, 두 노드 사이에 측정되는 상기 루프 변위(LC) 또는 경계 변위(EC)를 근거로 하여, 상기 제 1맵 상에서 상기 제 1이동 로봇이 생성한 노드의 좌표를 수정하는 제 1노드 정보 수정 모듈(143b)을 포함할 수 있다.
상기 제 2제어부는, 상기 루프 변위(LC) 또는 경계 변위(EC)를 근거로 하여, 상기 제 2맵 상에서 상기 제 2이동 로봇이 생성한 노드의 좌표를 수정하는 제 2노드 정보 수정 모듈(143b)을 포함할 수 있다.
상기 제 1제어부는, 상기 제 1이동 로봇이 생성한 노드와 상기 제 2이동 로봇이 생성한 노드 사이에 측정되는 경계 변위(LC)를 근거로 하여, 상기 제 1맵 상에서 상기 제 2이동 로봇으로부터 수신한 노드 그룹의 좌표를 조정하는 제 1노드 그룹 좌표 조정 모듈(143c)을 포함할 수 있다.
상기 제 2제어부는, 상기 경계 변위(LC)를 근거로 하여, 상기 제 2맵 상에서 상기 제 1이동 로봇으로부터 수신한 노드 그룹의 좌표를 조정하는 제 2노드 그룹 좌표 조정 모듈(143c)을 포함할 수 있다.

Claims (20)

  1. 본 이동 로봇이 주행중 측정된 변위를 근거로 노드 정보를 생성하고, 타 이동 로봇의 노드 그룹 정보를 수신하는 단계를 포함하는 이동 로봇의 맵 학습방법.
  2. 제 1항에 있어서,
    본 이동 로봇의 노드 그룹 정보를 타 이동 로봇에게 송신하는 단계를 포함하는 이동 로봇의 맵 학습방법.
  3. 제 1항에 있어서,
    본 이동 로봇이 생성한 두 노드 사이에 루프 변위가 측정되는 단계; 및
    상기 측정된 루프 변위를 근거로 하여, 맵 상에서 본 이동 로봇이 생성한 노드의 좌표를 수정하는 단계를 포함하는 이동 로봇의 맵 학습방법.
  4. 제 1항에 있어서,
    본 이동 로봇이 생성한 노드와 타 이동 로봇이 생성한 노드 사이에 경계 변위가 측정되는 단계; 및
    상기 측정된 경계 변위를 근거로 하여, 맵 상에서 타 이동 로봇으로부터 수신한 노드 그룹의 좌표를 조정하는 단계를 포함하는 이동 로봇의 맵 학습방법.
  5. 제 1항에 있어서,
    본 이동 로봇이 생성한 노드와 타 이동 로봇이 생성한 노드 사이에 경계 변위가 측정되는 단계; 및
    상기 측정된 경계 변위를 근거로 하여, 맵 상에서 본 이동 로봇이 생성한 노드의 좌표를 수정하는 단계를 포함하는 이동 로봇의 맵 학습방법.
  6. 제 1항에 있어서,
    본 이동 로봇이 생성한 노드와 타 이동 로봇이 생성한 노드 사이에 경계 변위가 측정되는 단계; 및
    맵 상에서 타 이동 로봇으로부터 수신한 노드 그룹의 좌표를 기 조정하지 않은 경우, 상기 측정된 경계 변위를 근거로 하여 맵 상에서 타 이동 로봇으로부터 수신한 노드 그룹의 좌표를 조정하고, 맵 상에서 타 이동 로봇으로부터 수신한 노드 그룹의 좌표를 기 조정한 경우, 상기 측정된 경계 변위를 근거로 하여 맵 상에서 본 이동 로봇이 생성한 노드의 좌표를 수정하는 단계를 포함하는 이동 로봇의 맵 학습방법.
  7. 복수의 이동 로봇이 각각 주행중 측정된 변위를 근거로 각각 이동 로봇의 노드 정보를 생성하고, 각각의 노드 그룹 정보를 서로 송신 및 수신하는 단계를 포함하는 이동 로봇의 맵 학습방법.
  8. 제 7항에 있어서,
    상기 복수의 이동 로봇이 각각 생성한 두 노드 사이에 경계 변위가 측정되는 단계; 및
    상기 측정된 경계 변위를 근거로 하여, 어느 하나의 이동 로봇의 맵 상에서 다른 하나의 이동 로봇으로부터 수신한 노드 그룹의 좌표를 조정하고, 상기 다른 하나의 이동 로봇의 맵 상에서 상기 어느 하나의 이동 로봇으로부터 수신한 노드 그룹의 좌표를 조정하는 단계를 포함하는 이동 로봇의 맵 학습방법.
  9. 제 7항에 있어서,
    상기 복수의 이동 로봇이 각각 생성한 두 노드 사이에 경계 변위가 측정되는 단계; 및
    상기 측정된 경계 변위를 근거로 하여, 어느 하나의 이동 로봇의 맵 상에서 상기 어느 하나의 이동 로봇이 생성한 노드의 좌표를 수정하고, 다른 하나의 이동 로봇의 맵 상에서 상기 다른 하나의 이동 로봇이 생성한 노드의 좌표를 수정하는 단계를 포함하는 이동 로봇의 맵 학습방법.
  10. 제 7항에 있어서,
    상기 복수의 이동 로봇이 각각 생성한 두 노드 사이에 경계 변위가 측정되는 단계; 및
    맵 상에서 타 이동 로봇으로부터 수신한 노드 그룹의 좌표를 기 조정하지 않은 경우, 상기 측정된 경계 변위를 근거로 하여, 어느 하나의 이동 로봇의 맵 상에서 다른 하나의 이동 로봇으로부터 수신한 노드 그룹의 좌표를 조정하고, 상기 다른 하나의 이동 로봇의 맵 상에서 상기 어느 하나의 이동 로봇으로부터 수신한 노드 그룹의 좌표를 조정하고,
    맵 상에서 타 이동 로봇으로부터 수신한 노드 그룹의 좌표를 기 조정한 경우, 상기 측정된 경계 변위를 근거로 하여, 어느 하나의 이동 로봇의 맵 상에서 상기 어느 하나의 이동 로봇이 생성한 노드의 좌표를 수정하고, 다른 하나의 이동 로봇의 맵 상에서 상기 다른 하나의 이동 로봇이 생성한 노드의 좌표를 수정하는 단계를 포함하는 이동 로봇의 맵 학습방법.
  11. 제 7항에 있어서,
    노드 그룹 정보는 각각의 노드 정보를 포함하고,
    노드 정보는 노드 갱신 시각 정보를 포함하고,
    동일한 노드에 대해서 수신한 노드 정보와 저장된 노드 정보가 서로 다른 경우, 상기 노드 갱신 시각 정보를 근거로 하여 최신의 노드 정보를 선택하는 이동 로봇의 맵 학습방법.
  12. 제 11항에 있어서,
    상기 복수의 이동 로봇은 3개 이상의 이동 로봇이고,
    제 1이동 로봇이 제 2이동 로봇으로부터 수신한 노드 그룹 정보는, 제 2이동 로봇이 제 3이동 로봇으로부터 수신한 노드 그룹 정보를 포함하는 맵 학습방법.
  13. 본체를 이동시키는 주행부;
    주행 변위를 측정하는 주행 변위 측정부;
    타 이동 로봇의 노드 그룹 정보를 수신하는 수신부; 및
    상기 주행 변위를 근거로 맵 상에 노드 정보를 생성하고, 상기 타 이동 로봇의 노드 그룹 정보를 상기 맵에 추가하는 제어부를 포함하는 이동 로봇.
  14. 제 13항에 있어서,
    본 이동 로봇의 노드 그룹 정보를 타 이동 로봇에게 송신하는 송신부를 포함하는 이동 로봇.
  15. 제 13항에 있어서,
    상기 제어부는,
    두 노드 사이에 측정되는 루프 변위 또는 경계 변위를 근거로 하여, 상기 맵 상에서 본 이동 로봇이 생성한 노드의 좌표를 수정하는 노드 정보 수정 모듈을 포함하는 이동 로봇.
  16. 제 13항에 있어서,
    상기 제어부는,
    본 이동 로봇이 생성한 노드와 타 이동 로봇이 생성한 노드 사이에 측정되는 경계 변위를 근거로 하여, 상기 맵 상에서 타 이동 로봇으로부터 수신한 노드 그룹의 좌표를 조정하는 노드 그룹 좌표 조정 모듈을 포함하는 이동 로봇.
  17. 제 16항에 있어서,
    상기 제어부는,
    맵 상에서 타 이동 로봇으로부터 수신한 노드 그룹의 좌표를 기 조정한 경우, 상기 측정된 경계 변위를 근거로 하여 맵 상에서 본 이동 로봇이 생성한 노드의 좌표를 수정하는 노드 정보 수정 모듈을 포함하는 이동 로봇.
  18. 제 1이동 로봇 및 제 2이동 로봇을 포함하는 복수의 이동 로봇 시스템에서,
    상기 제 1이동 로봇은,
    상기 제 1이동 로봇을 이동시키는 제 1주행부;
    상기 제 1이동 로봇의 주행 변위를 측정하는 제 1주행 변위 측정부;
    상기 제 2이동 로봇의 노드 그룹 정보를 수신하는 제 1수신부;
    상기 제 1이동 로봇의 노드 그룹 정보를 상기 제 2이동 로봇에게 송신하는 제 1송신부; 및
    상기 제 1이동 로봇의 주행 변위를 근거로 제 1맵 상에 노드 정보를 생성하고, 상기 제 2이동 로봇의 노드 그룹 정보를 상기 제 1맵에 추가하는 제 1제어부를 포함하고,
    상기 제 2이동 로봇은,
    상기 제 2이동 로봇을 이동시키는 제 2주행부;
    상기 제 2이동 로봇의 주행 변위를 측정하는 제 2주행 변위 측정부;
    상기 제 1이동 로봇의 노드 그룹 정보를 수신하는 제 2수신부;
    상기 제 2이동 로봇의 노드 그룹 정보를 상기 제 2이동 로봇에게 송신하는 제 2송신부; 및
    상기 제 2이동 로봇의 주행 변위를 근거로 제 2맵 상에 노드 정보를 생성하고, 상기 제 1이동 로봇의 노드 그룹 정보를 상기 제 2맵에 추가하는 제 2제어부를 포함하는 복수의 이동 로봇 시스템.
  19. 제 18항에 있어서,
    상기 제 1제어부는,
    두 노드 사이에 측정되는 루프 변위 또는 경계 변위를 근거로 하여, 상기 제 1맵 상에서 상기 제 1이동 로봇이 생성한 노드의 좌표를 수정하는 제 1노드 정보 수정 모듈을 포함하고,
    상기 제 2제어부는,
    상기 루프 변위 또는 경계 변위를 근거로 하여, 상기 제 2맵 상에서 상기 제 2이동 로봇이 생성한 노드의 좌표를 수정하는 제 2노드 정보 수정 모듈을 포함하는 복수의 이동 로봇 시스템.
  20. 제 18항에 있어서,
    상기 제 1제어부는,
    상기 제 1이동 로봇이 생성한 노드와 상기 제 2이동 로봇이 생성한 노드 사이에 측정되는 경계 변위를 근거로 하여, 상기 제 1맵 상에서 상기 제 2이동 로봇으로부터 수신한 노드 그룹의 좌표를 조정하는 제 1노드 그룹 좌표 조정 모듈을 포함하고,
    상기 제 2제어부는,
    상기 경계 변위를 근거로 하여, 상기 제 2맵 상에서 상기 제 1이동 로봇으로부터 수신한 노드 그룹의 좌표를 조정하는 제 2노드 그룹 좌표 조정 모듈을 포함하는 복수의 이동 로봇 시스템.
PCT/KR2017/004390 2016-04-25 2017-04-25 이동 로봇, 복수의 이동 로봇 시스템 및 이동 로봇의 맵 학습방법 WO2017188708A2 (ko)

Priority Applications (5)

Application Number Priority Date Filing Date Title
DE112017002156.1T DE112017002156B4 (de) 2016-04-25 2017-04-25 Beweglicher roboter, system für mehrere bewegliche roboter, und kartenlernverfahren für bewegliche roboter
AU2017256477A AU2017256477A1 (en) 2016-04-25 2017-04-25 Mobile robot, system for multiple mobile robots, and map learning method of mobile robot
US16/096,650 US20200326722A1 (en) 2016-04-25 2017-04-25 Mobile robot, system for multiple mobile robot, and map learning method of mobile robot using artificial intelligence
KR1020187031610A KR102159971B1 (ko) 2016-04-25 2017-04-25 이동 로봇, 복수의 이동 로봇 시스템 및 이동 로봇의 맵 학습방법
AU2020233700A AU2020233700A1 (en) 2016-04-25 2020-09-16 Mobile robot, system for multiple mobile robots, and map learning method of mobile robot

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR20160050212 2016-04-25
KR10-2016-0050212 2016-04-25

Publications (2)

Publication Number Publication Date
WO2017188708A2 true WO2017188708A2 (ko) 2017-11-02
WO2017188708A3 WO2017188708A3 (ko) 2018-08-02

Family

ID=60161027

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2017/004390 WO2017188708A2 (ko) 2016-04-25 2017-04-25 이동 로봇, 복수의 이동 로봇 시스템 및 이동 로봇의 맵 학습방법

Country Status (5)

Country Link
US (1) US20200326722A1 (ko)
KR (1) KR102159971B1 (ko)
AU (2) AU2017256477A1 (ko)
DE (1) DE112017002156B4 (ko)
WO (1) WO2017188708A2 (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020004834A1 (en) 2018-06-27 2020-01-02 Lg Electronics Inc. A plurality of autonomous cleaners and a controlling method for the same
CN111369640A (zh) * 2020-02-28 2020-07-03 广州高新兴机器人有限公司 多机器人建图方法、系统、计算机存储介质及电子设备
CN111515965A (zh) * 2020-04-16 2020-08-11 广东博智林机器人有限公司 一种装饰面材的铺贴方法、装置、机器人及存储介质

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE112021002948B4 (de) 2020-05-27 2024-05-02 Omron Corporation Unabhängiges robotersicherheitssystem mit einer sicherheitsbewerteten sps
DE102020214301A1 (de) 2020-11-13 2022-05-19 Robert Bosch Gesellschaft mit beschränkter Haftung Vorrichtung und verfahren zum steuern eines roboters zum aufnehmen eines objekts in verschiedenen lagen

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100748245B1 (ko) * 2005-12-09 2007-08-10 한국전자통신연구원 인공표식과 지역좌표계를 이용한 이동로봇의 환경지도 작성방법 및 이동 방법
KR20090077547A (ko) * 2008-01-11 2009-07-15 삼성전자주식회사 이동 로봇의 경로 계획 방법 및 장치
KR100977514B1 (ko) * 2008-04-02 2010-08-23 연세대학교 산학협력단 복수 개의 모바일 로봇들로 이루어지는 경로 탐색 시스템및 경로 탐색 방법
KR101081495B1 (ko) * 2009-11-09 2011-11-09 한국과학기술연구원 이동로봇의 혼합환경지도 작성방법
KR20120058945A (ko) * 2010-11-30 2012-06-08 이커스텍(주) 무선 네트워크기반 로봇 청소기 제어 장치 및 방법
EP3435189B1 (en) * 2011-04-11 2022-02-09 Crown Equipment Corporation Apparatus for efficient scheduling for multiple automated non-holonomic vehicles using a coordinated path planner
KR20130056586A (ko) 2011-11-22 2013-05-30 한국전자통신연구원 군집 지능 로봇을 이용한 지도 구축 방법 및 그 장치
JP5296934B1 (ja) * 2013-02-20 2013-09-25 要 瀬戸 経路マップ生成方法、経路マップ一部情報抽出方法、システム、及びコンピュータ・プログラム
KR102117984B1 (ko) * 2013-11-27 2020-06-02 한국전자통신연구원 군집 로봇의 협력 청소 방법 및 제어 장치
EP3199083B1 (en) * 2014-09-24 2021-09-08 Samsung Electronics Co., Ltd. Cleaning robot and method for controlling cleaning robot
DE102015006014A1 (de) * 2015-05-13 2016-11-17 Universität Bielefeld Bodenbearbeitungsgerät und Verfahren zu dessen Navigation sowie Schwarm von Bodenbearbeitungsgeräten und Verfahren zu deren gemeinsamer Navigation

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020004834A1 (en) 2018-06-27 2020-01-02 Lg Electronics Inc. A plurality of autonomous cleaners and a controlling method for the same
EP3813623A4 (en) * 2018-06-27 2022-04-20 LG Electronics, Inc. A VARIETY OF AUTONOMOUS CLEANERS AND CONTROL METHODS FOR THEM
CN111369640A (zh) * 2020-02-28 2020-07-03 广州高新兴机器人有限公司 多机器人建图方法、系统、计算机存储介质及电子设备
CN111369640B (zh) * 2020-02-28 2024-03-26 广州高新兴机器人有限公司 多机器人建图方法、系统、计算机存储介质及电子设备
CN111515965A (zh) * 2020-04-16 2020-08-11 广东博智林机器人有限公司 一种装饰面材的铺贴方法、装置、机器人及存储介质
CN111515965B (zh) * 2020-04-16 2023-02-17 广东博智林机器人有限公司 一种装饰面材的铺贴方法、装置、机器人及存储介质

Also Published As

Publication number Publication date
KR20180125587A (ko) 2018-11-23
DE112017002156T5 (de) 2019-01-10
DE112017002156B4 (de) 2020-11-26
AU2020233700A1 (en) 2020-10-08
US20200326722A1 (en) 2020-10-15
AU2017256477A1 (en) 2018-12-13
WO2017188708A3 (ko) 2018-08-02
KR102159971B1 (ko) 2020-09-25

Similar Documents

Publication Publication Date Title
WO2017188708A2 (ko) 이동 로봇, 복수의 이동 로봇 시스템 및 이동 로봇의 맵 학습방법
WO2018074903A1 (ko) 이동 로봇의 제어방법
WO2017188706A1 (ko) 이동 로봇 및 이동 로봇의 제어방법
WO2018038488A1 (ko) 이동 로봇 및 그 제어방법
AU2020247141B2 (en) Mobile robot and method of controlling the same
WO2017188800A1 (ko) 이동 로봇 및 그 제어방법
WO2021006556A1 (en) Moving robot and control method thereof
WO2021006677A2 (en) Mobile robot using artificial intelligence and controlling method thereof
WO2018139796A1 (ko) 이동 로봇 및 그의 제어 방법
WO2018139865A1 (ko) 이동 로봇
WO2018074904A1 (ko) 이동 로봇 및 이동 로봇의 제어방법
WO2015194866A1 (ko) 에지 기반 재조정을 이용하여 이동 로봇의 위치를 인식하기 위한 장치 및 그 방법
AU2020244635B2 (en) Mobile robot control method
WO2015194867A1 (ko) 다이렉트 트래킹을 이용하여 이동 로봇의 위치를 인식하기 위한 장치 및 그 방법
WO2015194864A1 (ko) 이동 로봇의 맵을 업데이트하기 위한 장치 및 그 방법
WO2015194865A1 (ko) 검색 기반 상관 매칭을 이용하여 이동 로봇의 위치를 인식하기 위한 장치 및 그 방법
AU2018216517B2 (en) Cleaner
WO2020241930A1 (ko) 멀티 센서를 이용하여 위치를 추정하는 방법 및 이를 구현하는 로봇
WO2019066444A1 (en) MOBILE ROBOT AND CONTROL METHOD
WO2018110963A1 (en) Movable object and method for controlling the same
WO2020241934A1 (ko) 멀티 센서를 동기화시켜 위치를 추정하는 방법 및 이를 구현하는 로봇
WO2019117576A1 (ko) 이동 로봇 및 이동 로봇의 제어방법
WO2018117616A1 (ko) 이동 로봇
AU2020362530B2 (en) Robot cleaner and method for controlling the same
EP4320472A1 (en) Device and method for predicted autofocus on an object

Legal Events

Date Code Title Description
ENP Entry into the national phase

Ref document number: 20187031610

Country of ref document: KR

Kind code of ref document: A

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

Ref document number: 17789892

Country of ref document: EP

Kind code of ref document: A2

ENP Entry into the national phase

Ref document number: 2017256477

Country of ref document: AU

Date of ref document: 20170425

Kind code of ref document: A

122 Ep: pct application non-entry in european phase

Ref document number: 17789892

Country of ref document: EP

Kind code of ref document: A2