WO2020027515A1 - 속성 블록을 설정하는 이동 로봇 - Google Patents

속성 블록을 설정하는 이동 로봇 Download PDF

Info

Publication number
WO2020027515A1
WO2020027515A1 PCT/KR2019/009386 KR2019009386W WO2020027515A1 WO 2020027515 A1 WO2020027515 A1 WO 2020027515A1 KR 2019009386 W KR2019009386 W KR 2019009386W WO 2020027515 A1 WO2020027515 A1 WO 2020027515A1
Authority
WO
WIPO (PCT)
Prior art keywords
map
mobile robot
zone
information
robot
Prior art date
Application number
PCT/KR2019/009386
Other languages
English (en)
French (fr)
Inventor
신경철
박성주
김재하
권지욱
문병권
Original Assignee
(주)유진로봇
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from KR1020180131436A external-priority patent/KR20200015340A/ko
Application filed by (주)유진로봇 filed Critical (주)유진로봇
Publication of WO2020027515A1 publication Critical patent/WO2020027515A1/ko

Links

Images

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60WCONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
    • B60W40/00Estimation or calculation of non-directly measurable driving parameters for road vehicle drive control systems not related to the control of a particular sub unit, e.g. by using mathematical models
    • B60W40/02Estimation or calculation of non-directly measurable driving parameters for road vehicle drive control systems not related to the control of a particular sub unit, e.g. by using mathematical models related to ambient conditions
    • 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
    • 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

Definitions

  • the technical field to which the present invention pertains relates to a method and apparatus for controlling the operation of a mobile robot by setting a zone on a map of a space where the mobile robot is located.
  • a simple or single driving method cannot meet all of the various requirements desired by the user of an autonomous robot.
  • the user may want the robot to decelerate in some sections or to block the entry of the robot by setting a prohibited area.
  • the user is obliged to accumulate obstacles so that the robot is obeyed in emergency situations such as fires or fires.
  • the user may want the robot to walk in as wide a section as possible, but move closer to one wall in another section.
  • Patent Document 1 Korean Patent Publication No. 10-2015-0009413 (2015.01.26.)
  • Patent Document 2 Korean Patent Publication No. 10-2017-0087403 (2017.07.28.)
  • Patent Document 3 Korean Patent Publication No. 10-2014-0087486 (2014.07.09.)
  • Patent Documents 1 to 3 Since the mobile robots described in Patent Documents 1 to 3 perform operations on a single requirement of a user, it is difficult to change or expand to other requirements. The requirements need to be reflected arbitrarily or variably depending on the purpose and intention of the user of the autonomous robot, and it is difficult to respond to various situations by simple or single means. Even if a plurality of driving methods are provided and mixed each time, the maintenance cost for managing the transition state from one method to another increases.
  • the embodiments of the present invention are mainly used to set various zones and to dynamically change the driving behavior of the mobile robot in the set zone using an abstract interface designed to be flexible and expandable to meet various requirements of the user. There is a purpose.
  • Embodiments of the present invention specify a boundary for the area where the robot can move using the robot's movement path, and the robot generates a map in the area inside the boundary, thereby controlling the movement of the robot before the mapping is completed.
  • Still other objects of the present invention may be additionally considered within the scope that can be easily inferred from the following detailed description and effects thereof.
  • a mobile robot comprising: a first sensor for detecting odometry information of the mobile robot; A second sensor that detects surrounding environment information of the mobile robot; a storage unit storing (i) an attribute block in which attributes of the zone are defined for each zone type and (ii) a map being created or generated using the surrounding environment information; A controller configured to estimate a position of the mobile robot and set a travel plan based on the odometry information and the surrounding environment information; And a mobile device for moving the mobile robot according to the travel plan.
  • the mobile robot may include a communication unit configured to receive, from the user terminal device or the map management server, an attribute block in which the property of the zone is defined as an abstract interface for each type of the zone, or to transmit it to the user terminal device or the map management server. It may further comprise.
  • the attribute block is defined as an abstract interface, defined by (i) the identification of the zone, (ii) the name of the zone and a descriptor for the zone, (iii) the type of zone, and (iv) the type of zone. Control parameters, (v) the location and size of the zone, or a combination thereof.
  • the type of zone may be (i) a speed change zone, (ii) a no entry zone, (iii) a concentrated repeat zone, (iv) an exclusive zone, (v) a waiting zone, (vi) a travel routing zone, or a combination thereof It may include.
  • control parameters defined for each zone type are (i) speed, (ii) direction, (iii) position, (iv) distance, (v) whether allowed or restricted, (vi) number of times, (vii) maximum, (viii) ) Minimum value, or a combination thereof.
  • the controller may be configured to (i) expand a region by setting a plurality of basic figures of the region, or (ii) exclude an overlap region between the plurality of basic figures from all regions of the plurality of basic figures, or (iii)
  • the shape of the zone can be adjusted by setting an inner zone or an outer zone.
  • the controller may set a plurality of types in the same area by setting a plurality of property blocks to overlap the same area on the map.
  • the controller estimates the position of the mobile robot and sets a basic movement route plan based on the odometry information and the surrounding environment information, and the basic movement path according to the situation of the mobile robot with reference to the plurality of property blocks.
  • the basic travel path plan may be dynamically changed by applying the extended travel path plan to the travel path plan.
  • the situation of the mobile robot acts as a starting condition of the extended travel path plan, and the control unit converts the basic travel path plan into the extended travel path plan. You can change it.
  • the situation of the mobile robot acts as a release condition of the extended movement path plan, and the controller controls the extended movement path plan as the basic movement path plan. Can be changed.
  • the controller may include an attribute block manager and a movement path manager.
  • the attribute block manager may interpret the attribute block for each type to generate message information about an attribute decodable by a path planner and store message information about the decodable attribute in the storage unit.
  • the movement route manager may receive message information regarding the attribute from the storage and apply the data to the route planner, the cost map, the driving parameter, or the map data.
  • the map may be divided into a global map and a local map.
  • the cost map may be divided into a global cost map and a local cost map.
  • the route planner may include a global route planner extracting the entire movement route using the global cost map based on the global map, and a regional route planner extracting the partial movement route through the region map.
  • Message information about an attribute applied to the global map may be dynamically applied to the local map and displayed.
  • the map may include a basic map, a driving map for setting an attribute block for driving, and a cleaning map for setting an attribute block for cleaning.
  • the mobile robot does not enter the same area but in the same area. Can be set not to clean.
  • the controller may set an outline of the attribute block based on the trace of the movement of the mobile device in the mode of setting the boundary of the attribute block.
  • the storage unit may store the trace moved by the mobile device, and store the moved trace as an outline of the attribute block.
  • the controller may detect the wall by analyzing the surrounding environment information in the mode for setting the boundary of the property block, and set the wall as an outline of the property block when the distance from the wall is within a preset range.
  • the controller may include a position from the mobile robot to the nearest wall in the outline of the property block.
  • the controller may update the map and the attribute block using the surrounding environment information while the mobile device moves in an inner region of the outline of the attribute block.
  • the driving route plan is dynamically changed according to the situation of the mobile robot in which the attribute block is located in the designated area based on the attribute block defined by the abstract interface. It is possible to meet the requirements and the driving mode can be changed during runtime without stopping the robot.
  • the robot by using the robot's movement path or the location of the wall to specify a boundary for the area where the robot can move, the robot generates a map in the area inside the boundary, the entry before the mapping is completed It has the effect of setting the prohibited zone.
  • FIG. 1 is a diagram illustrating a mobile robot, a user terminal device, and a map management server according to embodiments of the present invention.
  • FIG. 2 is a block diagram illustrating a mobile robot according to an embodiment of the present invention.
  • 3A to 3D are diagrams illustrating an operation of setting a boundary line of a zone by a mobile robot according to one embodiment of the present invention.
  • FIG. 4 is a diagram illustrating an operation in which a mobile robot sets a boundary line of a zone based on a position of a movement path or a wall according to an embodiment of the present invention.
  • FIG. 5 is a diagram illustrating a control unit of a mobile robot according to an embodiment of the present invention.
  • FIG. 6 is a diagram illustrating a map generated by a mobile robot according to an embodiment of the present invention.
  • FIG. 7 is a diagram illustrating an area set according to an attribute block by a mobile robot according to an embodiment of the present invention.
  • FIG. 8 is a diagram illustrating a shape of a region set by a mobile robot according to an embodiment of the present invention on a map.
  • FIG. 9 is a diagram illustrating a mobile robot dynamically changing a movement route plan according to an attribute block according to an embodiment of the present invention.
  • FIG. 10 is a block diagram illustrating a user terminal device according to another embodiment of the present invention.
  • FIG. 11 is a diagram illustrating an operation of editing a map by a user terminal device according to another embodiment of the present invention.
  • FIG. 12 illustrates an example of extracting an outline of a specific area by a user terminal device according to another exemplary embodiment of the present invention.
  • FIG. 13 is a block diagram illustrating a map management server according to another embodiment of the present invention.
  • FIG. 14 is a flowchart illustrating operations of a mobile robot, a user terminal device, and a map management server according to embodiments of the present invention.
  • 15 is a flowchart illustrating a method for performing a cleaning by a mobile robot according to another embodiment of the present invention.
  • FIG. 16 is a view for explaining an operation of performing location recognition by a mobile robot according to another embodiment of the present invention.
  • an attribute refers to a requirement that a user specifies so that an autonomous robot moves according to a user's purpose and intention of using space. For example, if the user wants to prevent the robot from entering a certain section at all, set the property of the specific section to 'prohibit'. Like setting the intensive cleaning section of the cleaning robot, if the robot wants to travel repeatedly several times instead of passing the specific section once, set the section as 'repeated'.
  • An attribute block refers to a map area in which an area to which an attribute designated by a user is applied is designated.
  • the attribute block can be set on map data stored by the robot or synchronized with an external device for autonomous driving.
  • the mobile robot, the user terminal device, or the map management server may designate a range of an area to which a corresponding attribute is to be assigned by adjusting the size of each attribute block.
  • One attribute block describes one attribute (requirement condition). According to the user's intention and purpose, a plurality of attribute blocks may be applied to one region or overlapped.
  • the attribute block provides a triggering condition for implementing a driving algorithm and a route plan that are specialized to satisfy the attribute (requirement condition) of the segment when the robot is present in the segment. For example, when an autonomous robot passes a section without any attribute block, it moves according to the default route plan and the basic driving control. When the robot enters a section to which an attribute block is assigned, the robot is dynamically switched to route planning and driving control customized to the attribute. When the robot exits the section, it returns to the previous basic route plan and driving control.
  • FIG. 1 is a diagram illustrating a mobile robot, a user terminal device, and a map management server according to embodiments of the present invention.
  • the mobile robot 100, the user terminal device 200, and the map management server 300 generate and update a map while communicating with each other.
  • the mobile robot 100, the user terminal device 200, and the map management server 300 match an attribute block which is being generated or generated with the set attribute block.
  • the mobile robot 100, the user terminal device 200, and the map management server 300 may communicate directly with each other or through a communication network.
  • the communication network refers to a set of communication facilities connected for the purpose of enabling communication between the mobile robot 100, the user terminal device 200, and the map management server 300.
  • Communication networks include nodes, circuits, trunk lines, satellites, and the like, which can be connected and connected to each other.
  • the mobile robot 100 refers to a device designed to move from a specific position to another position according to a predefined method, and may move from a specific position to another position by using a moving means such as wheels, rails, walking legs, and the like. have.
  • the mobile robot 100 may move according to the collected information after collecting external information using a sensor or the like, or may be moved by a user using a separate operation means.
  • An example of the mobile robot 100 may be a robot cleaner, a toy car, a mobile robot that can be used for industrial or military purposes, and the like.
  • the robot cleaner is a device that automatically cleans the cleaning space by suctioning foreign substances such as dust accumulated on the floor while driving the cleaning space. Unlike the general cleaner moving by external force by the user, the robot cleaner cleans the cleaning space while moving by using external information or a predefined movement pattern.
  • the robot cleaner may move automatically using a predefined pattern, or may detect an external obstacle by a detection sensor, and then move according to the detection, or according to a signal transmitted from a remote control device operated by a user. It is movable.
  • the user terminal device 200 may watch the process of generating the map while moving the robot, edit the map in real time, and insert semantic information.
  • Semantic information represents a relational term that a user can recognize with respect to an attribute.
  • the user terminal device 200 includes a semantic map generation application.
  • the semantic map generation application remotely sends and receives control signals to control the robot.
  • the user may insert semantic information in real time through the semantic map generation application.
  • the user terminal device 200 may be connected to a communication network.
  • the user terminal device 200 may be a smart phone, a personal computer (PC), a tablet PC (tablet PC), a portable personal digital assistant (PDA), a laptop, and the like. However, it is not limited thereto.
  • the map management server 300 is an electronic device that analyzes and processes data received from the mobile robot 100 or the user terminal device 200.
  • the map management server 300 manages the generated map and the edited map.
  • the map includes a basic map 31 created based on the surrounding environment information collected by the mobile robot, a driving map 32 for setting an attribute block for driving, and a cleaning map 33 for setting an attribute block for cleaning. do.
  • the editing map 34 is a map in which the basic map 31, the driving map 32, and the cleaning map 33 are integrated.
  • the editing map 34 may be generated by integrating the base map 31, the driving map 32, and the cleaning map 33 into a multi-layered layer structure.
  • the basic map 31, the driving map 32, the cleaning map 33, and the editing map 34 are stored and synchronized with the mobile robot 100, the user terminal device 200, and the map management server 300, respectively. Can be.
  • the map management server 300 may be connected to a communication network.
  • the map management server 300 may include a database.
  • the database refers to a storage form of data that can freely search, extract, delete, edit, and add data.
  • Databases include Oracle, Infomix, Sybase, Relational Database Base Management System (RDBMS), Gemston, Orion, Object-Oriented Database Management System ( Object Oriented Database Management System (OODBMS), or may be implemented in accordance with the purpose of this embodiment using a distributed cloud.
  • RDBMS Relational Database Base Management System
  • OODBMS Object-Oriented Database Management System
  • the mobile robot 100 includes a first control unit 110, a first sensor 120, a second sensor 130, a first communication unit 140, a first storage unit 150, and a mobile device 160. do.
  • the mobile robot 100 is illustrated to include various components, but some of the components may be omitted or may further include other components.
  • the first control unit 110 estimates the position of the mobile robot 100 based on the odometry information obtained by the first sensor 120 and the surrounding environment information obtained by the second sensor 130, and performs basic movement. Set up a route plan.
  • the first controller 110 dynamically changes the basic movement path plan by applying the extended movement path plan to the basic movement path plan according to the situation of the mobile robot 100 with reference to the plurality of attribute blocks.
  • the first controller 110 is a unit that executes various software or instruction sets to perform various functions for the mobile robot 100 and process data.
  • the first control unit 110 may be implemented by a microprocessor or the like.
  • the first sensor 120 detects odometry information of the mobile robot 100.
  • Odometry information is a measure of its own travel distance according to the movement of the mobile robot. Odometry information such as rotation speed, tilt, rotation amount, linear velocity, and angular velocity may be obtained from an encoder or an IMU (Inertial Measurement Unit) connected to the mobile device 160. IMUs can be implemented with acceleration sensors and gyro sensors.
  • the second sensor 130 detects surrounding environment information of the mobile robot 100.
  • the surrounding environment information may be image information about an obstacle, distance information about an obstacle, or information integrating image information and distance information.
  • the second sensor 130 may be an image sensor that acquires image information about an obstacle.
  • the image information about the obstacle includes first coordinate information expressed in two dimensions and intensity information related to the first coordinate information.
  • the intensity information has a certain range according to the bit value set for the pixel.
  • the camera includes an image sensor that converts light entering the lens into an electrical video signal.
  • the image sensor may be implemented as a Charged Coupled Device (CCD) and a Complementary Metal-Oxide-Semiconductor (CMOS).
  • CCD Charged Coupled Device
  • CMOS Complementary Metal-Oxide-Semiconductor
  • the second sensor 130 may be a lidar sensor that obtains distance information about the obstacle.
  • the distance information about the obstacle includes second coordinate information expressed in two dimensions and depth information related to the second coordinate information.
  • Lidar sensor is a device that measures the time to shoot the laser signal and reflected back, and to measure the distance of the reflector using the speed of light.
  • the laser signal is converted into an electrical signal through the photodiode.
  • the laser signal may have a predetermined wavelength band.
  • the lidar may use the wavelength of the infrared region.
  • the lidar sensor may operate in a time of flight (TOF) manner.
  • the time of flight method measures the distance between the measurement object and the sensor by measuring the time that the laser emits a pulse or square wave signal and the reflected pulse or square wave signals from objects within the measurement range arrive at the receiver.
  • TOF time of flight
  • the second sensor 130 may receive the image data from the image sensor, receive the distance data from the lidar sensor, and generate composite data in which the image data and the distance data are mapped.
  • the composite data includes spatial coordinate information and intensity information expressed in three dimensions.
  • the second sensor 130 may interpolate the spatial coordinate information with reference to the mapped intensity information.
  • the first communication unit 140 receives a plurality of attribute blocks from the user terminal device 200.
  • properties of a zone are defined as abstract interfaces for each type of zone.
  • the first communication unit 140 is a unit that converts an electrical signal into an electromagnetic wave or converts an electromagnetic wave into an electrical signal, and performs a communication function with a communication network or another device using the electromagnetic wave.
  • the first communication unit 140 is connected to the first control unit 110.
  • the first communication unit 140 may use various communication protocols for mobile communication or wireless communication.
  • GSM Global System for Mobile Communications
  • EDGE Enhanced Data GSM Environment
  • HSDPA High Speed Downlink Packet Access
  • HSUPA High Speed Uplink Access Packet Access
  • WCDMA Wideband Code Division Multiple Access
  • CDMA Code Division Multiple Access
  • TDMA Time Division Multiple Access
  • Bluetooth Bluetooth
  • Wi-Fi Wireless Fidelity, WiFi
  • RFID Radio Frequency Identification
  • Zigbee Zigbee
  • the first storage unit 150 stores the generated or generated map using the surrounding environment information and stores the plurality of attribute blocks.
  • the first storage unit 150 is a unit for storing software, an instruction set, or data for operating the mobile robot 100.
  • the first storage unit 150 is connected to the first control unit 110.
  • the first storage unit 150 may include a random access memory (RAM), a magnetic disk, a flash memory, a static random access memory (SRAM), a read only memory (ROM). ROM), EEPROM (Electrically Erasable Programmable Read Only Memory), PROM (Programmable Read Only Memory), and the like, but are not limited thereto.
  • the moving device 160 calculates a driving route or detects an obstacle based on the distance to the object to move the moving object.
  • the mobile device 160 may be implemented by traveling using wheels, walking by using one or more legs, using a flying means by a wing or a propulsion device, or a combination thereof.
  • the mobile robot 100 may include a power supply unit (not shown).
  • the power supply unit is a unit for supplying power to each component of the mobile robot 100.
  • Each component of the mobile robot 100 may perform the functions of other components as needed.
  • the components may be implemented in logic circuits by hardware, firmware, software, or a combination thereof. These components communicate via one or more communication buses or signal lines.
  • 3A to 3D are diagrams illustrating an operation of setting a boundary line of a zone by a mobile robot.
  • the mobile robot applies semi-automatic mapping technology that combines manual borderline and automatic map generation functions to avoid prohibited areas before mapping.
  • the mobile robot sets the outline of the attribute block based on the trace of the movement of the mobile device in the mode of setting the boundary of the attribute block.
  • the attribute block is defined as an abstract interface, which includes (i) zone identification, (ii) the name of the zone and its descriptor for the zone, (iii) the type of zone, and (iv) the control parameters defined for each zone type, (v) ) Location and size, or a combination thereof.
  • the user directly adjusts the robot to move along the boundary line to the area where the robot can move so that the robot can move only in an area allocated to be movable even when the map is not completely drawn.
  • the robot directly generates a map and location information of the robot using SLAM technology while moving.
  • the storage unit stores the trace moved by the mobile device in the mode for setting the boundary of the attribute block, and stores the moved trace as an outline of the attribute block.
  • the robot continues to store the movement path and is set as a boundary based on the stored movement path of the robot.
  • the controller detects the wall by analyzing the surrounding environment information in the mode for setting the boundary of the property block, and sets the wall as an outline of the property block when the distance from the wall is within a preset range.
  • the controller classifies the shape by comparing the shape recognized from the surrounding environment information with the stored data.
  • the control unit includes a position from the mobile robot to the nearest wall in the outline of the attribute block.
  • the outline may form a closed loop having a specific coordinate or sequentially connecting adjacent points such as extracted edges or corners.
  • the movement path 41 of the robot is set as the boundary line 44.
  • the robot releases the automatic boundary correction mode.
  • the mobile robot sets the boundary line of the zone based on the movement path or the position of the wall.
  • the robot when the boundary setting is completed, the robot automatically moves inside the set boundary line and generates a new movement route 43 using the SLAM technology to create a map. While the mobile device moves in the inner region of the outline of the attribute block, the controller updates the map and the attribute block using the surrounding environment information. At this time, the map according to the movement path 43 is updated on the map made for setting the boundary line to complete the entire map.
  • the robot can travel by applying various algorithms. For example, a Flood Fill algorithm, a Complete Coverage path planning algorithm, a Surveillance algorithm, an Exploration algorithm, and the like, which find connected pixels according to adjacent pixel information, may be applied.
  • the robot sets the virtual obstacle area based on the boundary information displayed on the map so that it does not fall outside the boundary line.
  • the type of attribute block in the inner area of the outline is divided into (i) movable zones, (ii) obstacle zones, and (iii) uncertain zones. If the sensor arrives in the map file and recognizes the environment, it distinguishes between movable and obstacle zones. Scan the second sensor to expand the movable area or obstacle area.
  • the control sets an uncertainty zone in the map file where the sensor does not reach. Scan the inside of the border area in the map file and finish creating the map if there is no area representing the uncertainty area. If the uncertainty area is less than or equal to a certain size, the controller terminates the operation of generating a map, and the storage unit stores the completed map and the boundary line. 3d shows the completed map and the boundary line 44 of the zone.
  • the mobile robot or the user terminal device can change the information about the attribute block.
  • region information eg, boundary or outline of the region, location and size of the basic figure, etc.
  • FIG. 5 is a diagram illustrating a control unit of a mobile robot according to an embodiment of the present invention
  • Figure 6 is a diagram illustrating a map generated by a mobile robot according to an embodiment of the present invention.
  • a map of the environment is created using the sensor information, and the current position of the mobile robot 100 is estimated from the created map.
  • the first controller 110 receives an attribute designated by a user and region information on which the attribute is located, based on a pre-generated map.
  • the first controller 110 receives a data portion that describes in detail how to change the driving state of the robot when the robot enters the corresponding attribute block section.
  • the first control unit 110 interprets the attribute description data.
  • the first controller 110 plans a global path according to an attribute, plans a local path, and transfers a changed parameter to a retry / research behavior in case of a driving failure to change the driving behavior. .
  • the first control unit 110 generates a moving path plan.
  • the travel route plan generates a trajectory from the current location to the target point on the map.
  • the movement path plan generates a robot's movement path by dividing it into a global path plan for the entire map and a local path plan for a certain area around the robot.
  • the first controller 110 can use the odometry information for local path planning. It is used to generate a local movement path or to avoid obstacles by receiving information such as the current speed of the robot.
  • the first control unit 110 may include an attribute block manager and a movement path manager.
  • the first control unit 110 or the property block manager parses and interprets the property block for each type to generate message information about an attribute decipherable by the route planner.
  • the first control unit 110 or the property block manager stores message information about the decodable property in the storage unit.
  • the state that all attributes are given is kept on the block stack.
  • the block stack provides various kinds of information about the attribute when referencing or inquiring the attribute information in path planning.
  • Block information set as public authority may set a shared access memory area to allow each S / W component to access each time it is needed, and may be implemented to send and receive messages for each component in a message queue manner.
  • the first controller 110 or the movement route manager may receive the message information about the attribute from the storage and apply the message information to the route planner, cost map, driving parameters (speed, etc.) or map data.
  • Other components such as a path planner (Global Planner, Local Planner) or a cost map, can query the block attribute information and receive the result.
  • the first control unit 110 updates image data collected through an encoder, an inertial sensor (IMU), a combination thereof, or the like, and includes an image sensor, a lidar sensor, a ToF sensor, an ultrasonic sensor, a combination thereof, or the like.
  • Environmental information (2D and / or 3D spatial information) is measured through.
  • the first control unit 110 performs relative position conversion of the position of the sensor. Since the position of the second sensor 130 changes relative to the hardware configuration of the robot, a relative position transformation called 'tf' is used. Relative position transformation describes how far the sensor is from x, y, z coordinates from the position of the robot when estimating the position of the robot with the odometry information.
  • the first controller 110 estimates the current location (Localization / Pose) of the robot on the map created using the location estimation algorithm.
  • the position estimation algorithm calculates the probability that the robot is located in the given environment based on the wheel rotation from the encoder, the inertia information from the inertial sensor, and the distance information from the distance sensor to the obstacle. Coordinates of x, y and ⁇ are indicated on the image.
  • the mobile robot 100 may apply Simultaneous Localization And Mapping (SLAM) method.
  • the information processed by the SLAM includes the position (x) of the robot, the odometry information (u), the observation value (z), and the estimation map (m).
  • SLAM Simultaneous Localization And Mapping
  • the mobile robot 100 may apply adaptive Monte Carlo Localization (AMCL), which is a particle filter-based SLAM, as a position estimation algorithm.
  • AMCL adaptive Monte Carlo Localization
  • the mobile robot 100 establishes a sensor model and a movement model, and performs a prediction process and a correction process of the filter.
  • the robot's position is calculated using the robot's movement model, the probability at the previous position, and the movement information received from the encoder.
  • the sensor model, the probability at the previous position, and the normalization constant are used to calculate the probability at the current position with increased accuracy based on the sensor information.
  • the position is estimated by generating a plurality of particles (samples) using a particle filter using the probability of the current position calculated by the following process.
  • a new sample set is extracted using the robot's moving model from the probability at the previous position, and the weight is calculated using the sample selected from the sample set, the distance information obtained from the distance sensor, and the normalized constant.
  • N new sets of particles are generated using samples and weights. The resampling process can be repeated to move the particles and increase the accuracy of the robot's position estimate.
  • the mobile robot 100 may apply a graph-based SLAM.
  • the first controller 110 expresses a position where the scanning is performed as a node and calculates a relative position between the nodes.
  • the first controller 110 updates the map by optimizing the position of each node according to the relative position between the nodes.
  • the first controller 110 optimizes the position of the node by finding a node value that satisfies the constraint conditions as much as possible, or a node value that deviates at least from the constraint conditions, and corrects errors in the positions of the nodes. In other words, the nodes converge to the optimal node value based on the constraint.
  • the second sensor 130 obtains scan information of a space where the mobile robot 100 is located.
  • the second sensor 130 may obtain distance information of omnidirectional or partial region by using one or more sensors selected from various sensors.
  • the first controller 110 additionally obtains odometry information of the mobile robot 100 together with the distance information.
  • the first controller 110 generates a key frame for the node using the scan information, and calculates the odometry edges between successive nodes. Observations between nodes have uncertainty. The uncertainty of the odometry edge can be represented by a covariance matrix.
  • the first controller 110 stores a key frame among a plurality of scan information obtained for each scanning period.
  • the scan information may be expressed as point cloud or composite data in which image information and distance information are mapped.
  • the key frame includes distance information and time information.
  • the first controller 110 If there is no registered key frame, the first controller 110 generates a key frame using the currently input distance information, and then updates the key frame to estimate the area map.
  • the first controller 110 may improve the accuracy by performing scan matching based on a regional map in which a plurality of pieces of scan information are combined.
  • the first controller 110 retrieves the position of the robot, the position of the sensor, the position information of the obstacle, and the map generated by the sensor, and maps the map area to an occupied area, a free area, and an unknown area. Unknown Area).
  • the first controller 110 generates a cost map that calculates an area in which the robot can move, an obstacle area, and an area in which the robot is expected to collide with the obstacle.
  • the cost map is divided into a global cost map and a local cost map.
  • the global cost map is the output from the global breadcrumb plan when you plan your trip to the entire area of the fixed map, and the regional cost map is the local breadcrumb when you plan the trip to a subregion of the map. Output.
  • the cost map has a value in a range.
  • the cost map may be represented by a value from 0 to 255.
  • the free area that the robot can move freely is expressed as 000, the area that does not collide is represented by 001 to 127, the area that may be collided is represented by 128 to 252, and the collision area is represented by 253 to 254.
  • the occupied area in which the robot cannot move can be represented as 255.
  • the first control unit 110 may avoid the obstacle using an obstacle avoidance algorithm.
  • the first controller 110 may apply a dynamic window approach (DWA) as an obstacle avoidance algorithm.
  • DWA dynamic window approach
  • the obstacle avoidance algorithm used in the local travel path planning selects a speed that can quickly reach the target point while avoiding obstacles that may collide with the robot in the velocity search space of the robot.
  • the obstacle avoidance algorithm calculates the speed (angular velocity and linear velocity) at which the objective function designed in consideration of the robot's direction, speed (possible and acceptable speeds), and collision is maximized.
  • the moving device 160 moves to the target point according to the moving trajectory.
  • the mobile robot 100 senses during the movement, estimates the position, and continues the moving path planning while avoiding obstacles or other moving objects.
  • the present invention provides an abstract interface that can easily set an attribute block and add an extension function for each block in order to dynamically change the driving mode of the mobile robot.
  • the attribute block will be described with reference to FIGS. 7 to 9.
  • a plurality of attribute blocks in which the attributes for a zone are defined as abstract interfaces include (i) the identifier of the zone, (ii) the name and description of the zone, (iii) the type of zone, and (iv) Control parameters defined by type, (v) the central position and angle of the base figure of the zone, (vi) the size of the base figure of the zone, or a combination thereof.
  • Types of zones may include (i) speed changing zones, (ii) no entry zones, (iii) concentrated repeat zones, (iv) exclusive zones, (v) waiting zones, (vi) travel routing zones, or a combination thereof. It may include.
  • the exclusive zone is a space that a specific mobile robot uses independently without overlapping with other mobile robots. For example, an elevator or a charging station (docking station).
  • the waiting area is the space where the robot should be located to avoid people's traffic in case of emergency.
  • the route setting zone may be set as a temporary detour, a main route, a secondary route, or a recommended route. This is merely an example of an attribute of an attribute block, and is not limited thereto. An appropriate attribute may be defined according to a design requirement to be implemented.
  • Control parameters defined for each zone type include (i) speed, (ii) direction, (iii) position, (iv) distance, (v) whether to allow or limit, (vi) number of times, (vii) maximum, and (viii) Minimum, or a combination thereof.
  • Examples of dynamically changing control parameters defined for each zone type include adjusting speed on an up / down ramp or adjusting driving acceleration when passing through a threshold (eg, an elevator).
  • the mobile robot 100, the user terminal device 200, and the map management server 300 may set a plurality of attribute blocks in a specific area. Multiple types may be set in the same area by overlapping the same area on the map. When setting multiple attributes in the same area, set them except for meaningless or opposite objects such as deceleration, acceleration, deceleration and prohibition. When a plurality of attributes set in the same area are meaningless or opposite to each other, one attribute is selected according to a user input or an attribute is expressed according to a priority set in the plurality of attributes.
  • FIG. 7 is a diagram illustrating an area set according to an attribute block by a mobile robot according to an embodiment of the present invention.
  • obstacles 53 such as a section 51, a wall 52, a facility, or a person, can be freely roamed.
  • the prohibition property 54 is given to a section where the robot should never enter due to frequent environmental changes or dangerous goods.
  • the deceleration property 57 is given to a section where people frequently travel or have to drive slowly for safety reasons.
  • the docking station needs to be slow because it can be used exclusively by one robot and at the same time other robots may be roaming or waiting around the docking station.
  • an area 59 is set in which the exclusive area and the deceleration property block overlap.
  • Some attributes can change the driving by modifying the basic driving parameters of the autonomous robot or by modifying some areas of the cost map or map data (set as obstacles).
  • the attribute description data of the deceleration attribute block may be expressed as shown in Table 1
  • the attribute block designating a place where the robot should wait in an emergency situation may be expressed as shown in Table 2
  • the entry prohibition area is shown in Table 3 Can be expressed.
  • the mobile robot parses the attribute description data of the attribute block and extracts the data.
  • FIG. 8 is a diagram illustrating a shape of a region set by a mobile robot according to an embodiment of the present invention on a map.
  • the basic figure may be set as a rectangle, but may be changed to a polygon or a circle.
  • the mobile robot 100, the user terminal device 200, and the map management server 300 may adjust the spherical shape by rotating the basic figure.
  • the mobile robot 100, the user terminal device 200, and the map management server 300 may adjust the shape of the zone by extending the union area by setting a plurality of basic figures of the zone.
  • the mobile robot 100, the user terminal device 200, and the map management server 300 adjust the shape of the area by using a difference area except the overlap area between the plurality of basic shapes in the entire area of the plurality of basic shapes. Can be.
  • the mobile robot 100, the user terminal device 200, and the map management server 300 may adjust the shape of an area by setting an internal area or an external area of the basic figure.
  • FIG. 9 is a diagram illustrating a mobile robot dynamically changing a movement route plan according to an attribute block according to an embodiment of the present invention.
  • the present invention has a structure for easily extending the functions of key components such as global route planner, regional route planner, retry / rescan behavior in case of driving failure, and change of driving control parameters.
  • key components such as global route planner, regional route planner, retry / rescan behavior in case of driving failure, and change of driving control parameters.
  • the function of the autonomous robot can be extended by arbitrarily expanding the property and implementing the corresponding function.
  • Some attributes require modifications to separate driving and route planning algorithms. For example, when the user is driving the cleaning autonomous robot and wishes to clean a section intensively, the coverage for the corresponding area may be specified to the maximum.
  • the traveling stack component includes a basic route planner and an extended route planner.
  • the default route planner includes the default global route planner, the default local route planner, and the default retry / rescan behavior.
  • Extended path planners include an extended global path planner, an extended default local path planner, and an extended default retry / rescan behavior.
  • the default route planner and the extended route planner are defined by the same template. Templates are defined based on a set of control parameters defined by type.
  • the route plan is dynamically changed.
  • the situation (location, time, sensing information, etc.) of the mobile robot acts as a starting condition of the extended travel path plan, and the controller moves the basic travel path plan to the extended travel path.
  • Change to route planning When the mobile robot is leaving a specific area or leaving a specific area, the situation of the mobile robot acts as a release condition of the extended moving path plan, and the controller changes the extended moving path plan to the basic moving path plan.
  • the basic travel path plan and the extended travel path plan are defined in the same template defined as a set of control parameters.
  • the user terminal device 200 includes a second control unit 210, a user input unit 220, a display unit 230, a second communication unit 240, and a second storage unit 250.
  • the user terminal device 200 is illustrated to include various components, but some components may be omitted or may further include other components.
  • the second control unit 210 is connected to the user input unit 220, the display unit 230, the second storage unit 250, and the second communication unit 240 to control operation signals.
  • the second controller 210 is a unit that executes various software or command sets to perform various functions for the user terminal device 200 and process data.
  • the second control unit 210 may be implemented by a microprocessor or the like.
  • the user input unit 220 is connected to the second control unit 210.
  • the user input unit 220 is a unit for receiving information from a user of the user terminal device 200 by using sight, hearing, and touch.
  • the user input unit 220 is a touch sensor unit for inputting information using a touch sensor, a button for inputting a single key, a keyboard for inputting a plurality of keys, a microphone for receiving a sound, and taking a picture or video for information. It may include a camera for receiving the input, but is not limited thereto.
  • the touch sensor unit may be connected to the display unit which is one of the display units 230 to form a touch screen.
  • the touchscreen can detect one or more touchpoints on the touchscreen based on any phenomenon that can be measured capacitive, resistive, optical, acoustical, inductive, mechanical, and chemical.
  • the display unit 230 is a unit for providing information to the user of the user terminal device 200 by using sight, hearing, and touch.
  • the display unit 230 may include a display unit or a light unit that provides visual information, a vibrator that provides tactile information, a speaker that provides auditory information, and the like. It is not.
  • the display unit displays information on the screen.
  • the display unit is implemented with various display panels, for example, a liquid crystal display (LCD), an organic light emitting diode (OLED), and a thin film transistor liquid crystal display (TFT-LCD). It may be, but is not limited to such.
  • the light portion includes a light emitter.
  • the light unit may provide information by changing colors or flickering.
  • the vibrator vibrates the user terminal device 200 by regularly or irregularly rotating the ruminant located inside the user terminal device 200. Speakers convert electrical signals into sound waves.
  • the second communication unit 240 is a unit that converts an electrical signal into an electromagnetic wave or converts an electromagnetic wave into an electrical signal, and performs a communication function with a communication network or another device using the electromagnetic wave.
  • the second communication unit 240 is connected to the second control unit 210.
  • the second communication unit 240 may use various communication protocols for mobile communication or wireless communication.
  • GSM Global System for Mobile Communications
  • EDGE Enhanced Data GSM Environment
  • HSDPA High Speed Downlink Packet Access
  • HSUPA High Speed Uplink Access Packet Access
  • WCDMA Wideband Code Division Multiple Access
  • CDMA Code Division Multiple Access
  • TDMA Time Division Multiple Access
  • Bluetooth Bluetooth
  • Wi-Fi Wireless Fidelity, WiFi
  • RFID Radio Frequency Identification
  • Zigbee Zigbee
  • the second storage unit 250 stores the generated map or the generated map using the surrounding environment information and stores the plurality of attribute blocks.
  • the second storage unit 250 is a unit for storing software, an instruction set, or data for operating the user terminal device 200.
  • the second storage unit 250 is connected to the second control unit 210.
  • the second storage unit 250 may include a random access memory (RAM), a magnetic disc, a flash memory, a static random access memory (SRAM), and a read only memory (ROM).
  • ROM read only memory
  • ROM read only memory
  • ROM read only memory
  • ROM read only memory
  • EEPROM Electrically Erasable Programmable Read Only Memory
  • PROM Programgrammable Read Only Memory
  • the user terminal device 200 may include a power supply unit (not shown).
  • the power supply unit is a unit for supplying power to each component of the user terminal device 200.
  • Each component of the user terminal device 200 may perform a function of another component as needed.
  • the components may be implemented in logic circuits by hardware, firmware, software, or a combination thereof. These components communicate via one or more communication buses or signal lines.
  • the user terminal device 200 includes an editor application for editing a map.
  • 11 is a screen in which an editor application is installed and executed in the user terminal device 200.
  • the user terminal device 200 or the editor application receives an attribute specified by the user and region information on which the attribute is to be located, based on a pre-generated map.
  • the user terminal device 200 receives a data portion that describes in detail how to change the driving state of the robot when the robot enters the corresponding attribute block section.
  • the user terminal device 200 receives a part for interpreting attribute description data.
  • the user terminal device 200 inserts a global route planner according to an attribute and stores the global route planner in a map so that the user can display the location as an easy word representing a place, not a number.
  • the user terminal device 200 may create a map in real time in consideration of a lidar-based SLAM.
  • the user terminal device 200 or the editor application performs real-time map editing and information generation. By directly editing the map in real time, it is possible to set areas for no-access zones, high-speed zones, low-speed zones, major cleaning zones, low noise zones, and so on.
  • the mobile robot can manage and use a total of two maps, including a basic map and a driving map.
  • the cleaning robot can manage and use a total of three maps including a basic map, a driving map, and a cleaning map.
  • the base map is a map being created or generated by a mobile robot.
  • the driving map is a map that shows the areas where the robot can go and areas that cannot be reached. Insert additional places where the robot can't go to the base map.
  • the cleaning map is inserted in addition to the basic map by the part marked by the user as the main cleaning area. All but the areas marked by the user as the main cleaning area are marked as obstacle areas.
  • the driving map is used, and the mobile robot does not enter the prohibited area indicated by the user.
  • the mobile robot starts cleaning in the main cleaning area, use the cleaning map to avoid going out of the cleaning area and cleaning.
  • the cleaning robot when a cleaning robot located outside the main cleaning area is instructed to clean the main cleaning area, the cleaning robot loads a driving map and moves to the main cleaning area. When the cleaning robot moves to the main cleaning area according to the attribute block, it changes the map to the cleaning map. The cleaning robot starts cleaning according to the property block. When the cleaning robot finishes cleaning, it reloads the driving map and returns to where it was before cleaning or moved to another point.
  • the user terminal device 200 or the editor application may add, insert, or remove the editing and information on the map being created or generated by the mobile robot in real time.
  • the user terminal device 200 or the editor application may set a zone or set a name for the zone.
  • the set zone may be divided into a no-access zone, a high speed movement zone, a low speed movement zone, a main cleaning zone, a low noise zone, and the like.
  • the user terminal device 200 or the editor application may allocate a name (semantic information) for the set area or place. Using the semantic information, the robot can be sent or cleaned by the name of the area (eg, 'cleaning the conference room') rather than by coordinates.
  • a name semantic information
  • the robot can be sent or cleaned by the name of the area (eg, 'cleaning the conference room') rather than by coordinates.
  • the user terminal device 200 or the editor application generates an editing map for editing the map, and displays the base map, the driving map, and the cleaning map together on the editing map.
  • the user may add or delete the prohibition area or the interest cleaning area in the editing map.
  • the content displayed on the map for editing is automatically edited on the map according to its properties. For example, when the user displays or deletes the restricted area, the restricted area is added or deleted on the driving map. When the user displays or deletes the main cleaning area, the main cleaning area is added or deleted on the cleaning map.
  • the attribute block set in the driving map has a higher priority than the attribute block set in the cleaning map.
  • the no entry zone is an area that should not be entered when the robot is driving or cleaning, so it is not considered in the route planning. Even if a certain area overlaps the no-entry area and the main cleaning area, the cleaning robot should mark the map as an obstacle and exclude it from the driving path when generating the global path or the local path. If the area set to be cleaned on the cleaning map and the area set to be prohibited from entering on the driving map are the same area, the mobile robot does not enter the same area and does not clean the same area.
  • the user terminal device 200 or the editor application may automatically extract a shape when the user selects a specific area or basic figure by a mouse click, a keypad input, a touch or drag of a touch screen, or the like.
  • the cleaning zone may be set by dividing the inside and the outside of the room.
  • FIG. 10 illustrates an example of extracting an outline of a specific area by a user terminal device according to another exemplary embodiment.
  • an area 61 slightly larger than a region of interest desired by the user is selected. Since there is a part out of the divided space among the areas selected by the user, as shown in FIG. 12C, the second controller automatically extracts and provides the ROI 62. As shown in FIG. 12D, the representative position 63 of the selected region of interest is extracted.
  • the second controller can extract the outline by filling the internal space from the center point of the zone or by connecting adjacent disconnections.
  • Image processing algorithms can be applied for automatic region extraction. Considering the movement and size of the robot, the algorithm shown in Table 4 can be applied.
  • the cleaning robot can start cleaning from a representative point.
  • FIG. 13 is a block diagram illustrating a map management server according to another embodiment of the present invention.
  • the map management server 300 includes a third controller 310, a third communication unit 320, and a third storage unit 330.
  • the map management server 300 is illustrated to include various components, but some components may be omitted or may further include other components.
  • the third control unit 310 is connected to the third storage unit 320 and the third communication unit 330 to control the operation signal to each other.
  • the third controller 310 is a unit that executes various software or command sets to perform various functions for the map management server 300 and to process data.
  • the third controller 310 may be implemented by a microprocessor or the like.
  • the third communication unit 320 is a unit that converts an electrical signal into an electromagnetic wave or converts an electromagnetic wave into an electrical signal, and performs a communication function with a communication network or another device using the electromagnetic wave.
  • the third communication unit 320 is connected to the third control unit 310.
  • the third communication unit 320 may use various communication protocols for mobile communication or wireless communication.
  • GSM Global System for Mobile Communications
  • EDGE Enhanced Data GSM Environment
  • HSDPA High Speed Downlink Packet Access
  • HSUPA High Speed Uplink Access Packet Access
  • WCDMA Wideband Code Division Multiple Access
  • CDMA Code Division Multiple Access
  • TDMA Time Division Multiple Access
  • Bluetooth Bluetooth
  • Wi-Fi Wireless Fidelity, WiFi
  • RFID Radio Frequency Identification
  • Zigbee Zigbee
  • the third storage unit 330 stores the generated or generated map using the surrounding environment information and stores the plurality of attribute blocks.
  • the third storage unit 330 is a unit for storing software, an instruction set, or data for operating the map management server 300.
  • the third storage unit 330 is connected to the third control unit 310.
  • the third storage unit 330 may include a random access memory (RAM), a magnetic disk, a flash memory, a static random access memory (SRAM), a read only memory (ROM). ROM), EEPROM (Electrically Erasable Programmable Read Only Memory), PROM (Programmable Read Only Memory), and the like, but are not limited thereto.
  • the map management server 300 may include a power supply unit (not shown).
  • the power supply unit is a unit for supplying power to each component of the map management server 300.
  • Each component of the map management server 300 may perform the functions of other components as needed.
  • the components may be implemented in logic circuits by hardware, firmware, software, or a combination thereof. These components communicate via one or more communication buses or signal lines.
  • FIG. 14 is a flowchart illustrating operations of a mobile robot, a user terminal device, and a map management server according to embodiments of the present invention.
  • the mobile robot 100 generates a map.
  • the map may include a global map and a regional map.
  • the map may include a base map, a driving map, a cleaning map, an editing map, or a combination thereof.
  • the mobile robot 100 and the user terminal device 200 transmit and receive data on a map or a map to synchronize information updated on the map.
  • the mobile robot 100 and the map management server 300 transmit and receive data on a map or map to synchronize information updated on the map.
  • the user terminal device 200 and the map management server 300 transmit and receive a map or map-related data to synchronize information updated on the map.
  • the user terminal device 200 sets a zone and sets attribute information.
  • the attribute block is defined as an abstract interface with attributes for zones and contains zone and attribute information.
  • the attribute block contains control parameters defined for each zone type.
  • the mobile robot 100 and the user terminal device 200 transmit and receive data regarding the attribute block to synchronize information updated by the attribute block and the mobile robot.
  • the mobile robot 100 and the map management server 300 transmit and receive data related to the attribute block to synchronize information updated by the attribute block and the mobile robot.
  • the user terminal device 200 and the map management server 300 transmit and receive data related to the attribute block to synchronize information updated by the attribute block and the mobile robot.
  • the mobile robot 100 sets a zone and sets attribute information of the user terminal device 200.
  • Property blocks serve as conditions for dynamically changing path plans.
  • the basic driving plan and the extended driving plan are defined with the same abstract interface and are compatible with each other. The advantage of this feature is that, as mentioned, it is possible to change the driving mode during runtime without stopping the robot.
  • business logic eg, algorithm implementation
  • the mobile robot 100 may transmit and synchronize the situation of the mobile robot 100 to the user terminal device 200 and the map management server 300.
  • the mobile robot, user terminal device, and map management server may be implemented in logic circuitry by hardware, firmware, software, or a combination thereof, or may be implemented using a general purpose or special purpose computer.
  • the device may be implemented using a hardwired device, a field programmable gate array (FPGA), an application specific integrated circuit (ASIC), or the like.
  • the device may also be implemented as a System on Chip (SoC) including one or more processors and controllers.
  • SoC System on Chip
  • FIG. 15 is a flowchart illustrating a method for performing a cleaning by a mobile robot according to another embodiment of the present invention
  • FIG. 16 illustrates an operation of performing position recognition by a mobile robot according to another embodiment of the present invention. It is a drawing for
  • the mobile robot performs the cleaning using the stored map.
  • the cleaning robot creates a new map and performs the cleaning.
  • the mobile robot may generate and selectively use a plurality of different maps according to the working environment instead of generating only one map.
  • the mobile robot may generate an environment information map including environment information for recognizing a location in the cleaning area, and a plurality of cleaning map information (composite map information) including option information set by a user.
  • One cleaning map information may be complex map information including a cleaning area map, an environment information map, and option information.
  • the cleaning area map may be a map composed of an array of square grids for cleaning areas to be cleaned. Each square grid may include information to distinguish the shape of the region. For example, the cleaning area map stores the area where the cleaning is completed, obstacle information, charging station information, and the like.
  • the environment information map is a map composed of environment information for recognizing the position of the mobile robot in the cleaning area, and the environment information may include, for example, coordinates of feature points extracted from an image photographed by a camera. Such environment information is generated for each square grid constituting the cleaning area map, and may be a plurality.
  • the option information is information set by the user, and may include, for example, cleaning area information indicating an entry prohibition area, a concentrated cleaning area, and the like, cleaning method information indicating a moving pattern, a moving speed, a cleaning sequence, and the like.
  • Such complex map information may be generated in plural for the same place or in plural for other places. For example, complex map information may be generated for each visit if the visit of the room is closed at the same place and otherwise, and complex map information may be generated for each floor in a multi-level environment.
  • the complex map information may be map information created by the mobile robot itself, but is not limited thereto and may be map information provided by a user through a user device.
  • a mobile robot when a mobile robot receives a control command, for example, a cleaning start command from a user or a user device (S1001), the mobile robot according to an embodiment of the present invention may check whether there is previously stored cleaning map information (S1001). S1002).
  • a control command for example, a cleaning start command from a user or a user device (S1001)
  • the mobile robot may check whether there is previously stored cleaning map information (S1001). S1002).
  • the mobile robot drives the search mode for determining the position before cleaning start (S1003) and performs cleaning according to a preset method while performing cleaning from the first position according to the search mode. It can be obtained (S1004).
  • the driving environment of the mobile robot may be a variety of structures depending on the interior of the room, such a structure may be formed in a repetitive form.
  • the accurate current position cannot be estimated only by the information obtained by the mobile robot in place before the start of cleaning, and the present invention attempts to acquire the information in various ways.
  • the first method is a method in which a mobile robot acquires an image from a camera while rotating in place.
  • the information extracted from the image acquired through the first scheme may have a higher matching rate with the map information than the information obtained from the still operation. However, it can still show a low matching rate in a simple repeating indoor environment.
  • the second method is a method in which a mobile robot acquires an image from a camera in a process of linear driving after rotating in place.
  • the third method is a method of merging the first method and the second method, but traveling based on a driving pattern actually used.
  • the mobile robot operates in the same movement pattern as when the actual cleaning is performed, but operates at a lower speed than the actual moving speed in order to increase the success rate of position recognition.
  • the mobile robot may perform cleaning based on the new cleaning map information generated by generating new cleaning map information (S1014).
  • the mobile robot may extract a feature point from the surrounding environment information acquired through the second sensor (S1005) and generate a temporary environment information map composed of the extracted feature points (S1006).
  • the feature points are mainly extracted from edges, corners, edges of main articles, and the like.
  • the mobile robot may extract geometric information, for example, a geometric shape and a geometric correlation between feature points constituting the generated temporary environment information map (S1007).
  • geometric information for example, a geometric shape and a geometric correlation between feature points constituting the generated temporary environment information map (S1007).
  • the mobile robot compares the extracted geometric information with pre-stored composite map information (S1008) and calculates a matching rate indicating a degree of matching as a result of the comparison (S1009).
  • the mobile robot may select one piece of composite map information having the highest matching rate (S1010). That is, the mobile robot may determine that the region where the composite map information having the highest matching rate is generated is the cleaning region that is currently located and is intended to be cleaned.
  • the matching rate may be calculated using Sum of Absolute Differences (SAD), Sum of Squared Differences (SSD), and the like, but is not limited thereto.
  • the mobile robot may recognize the current second location by loading the selected composite map information and comparing the environment information map constituting the loaded composite map information with the temporary environment information map (S1011).
  • the mobile robot recognizes the corresponding position of the environment information map that matches the temporary environment information map among the environment information maps constituting the loaded cleaning map information as the current second location.
  • the mobile robot does not compare both the temporary environment information map and the environment information map constituting the loaded composite map information, and predicts the moving point using the odometry information and places the environmental information located around the predicted moving point. Compare the maps.
  • the mobile robot collects inertia information while operating the search mode and calculates odometry information, that is, a driving distance and a driving direction, based on the collected inertia information.
  • the odometry information that is, the driving distance d and the driving direction ⁇ It is possible to predict the moving point P1 using.
  • the mobile robot includes the temporary environment information at the predicted movement point P 1 and the movement point P 1 and its surroundings P 2 , P 3 , P 4 , P 5 , P 6 , P 7 , P 8 , and P 9 .
  • the position P 2 having the highest matching rate may be determined as the second position.
  • the mobile robot may overlap the cleaned region in the second location recognition process with the composite map information (S1012). That is, the mobile robot may update the composite map information to the cleaned area in the process of recognizing the location according to the search mode.
  • the mobile robot can check the area that has already been cleaned during the position recognition process, thereby reducing the cleaning time and increasing the cleaning efficiency.
  • the mobile robot can start cleaning from the second position of the composite map information (S1013).
  • the mobile robot, the user terminal device, and the map management server may be mounted on a computing device provided with hardware elements in the form of software, hardware, or a combination thereof.
  • the computing device includes various or all communication devices such as a communication modem for performing communication with various devices or wired and wireless communication networks, a memory for storing data for executing a program, and a microprocessor for executing and operating a program. It can mean a device.
  • Computer-readable media refers to any medium that participates in providing instructions to a processor for execution.
  • Computer-readable media can include program instructions, data files, data structures, or a combination thereof. For example, there may be a magnetic medium, an optical recording medium, a memory, and the like.
  • the computer program may be distributed over networked computer systems so that the computer readable code is stored and executed in a distributed fashion. Functional programs, codes, and code segments for implementing the present embodiment may be easily inferred by programmers in the art to which the present embodiment belongs.

Landscapes

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

Abstract

본 실시예들은 추상 인터페이스로 정의된 속성 블록을 기반으로 속성 블록이 지정된 영역에 위치하는 이동 로봇의 상황에 따라 주행 경로 계획을 동적으로 변경함으로써, 사용자의 다양한 요구사항에 능동적으로 대응 가능하고, 로봇의 운행을 중지하지 않고 런타임 중에 주행 모드를 변경할 수 있는 이동 로봇, 속성 블록을 설정하는 사용자 단말 장치, 및 속성 블록을 저장하는 지도 관리 서버를 제공한다.

Description

속성 블록을 설정하는 이동 로봇
본 발명이 속하는 기술 분야는 이동 로봇이 위치하는 공간에 관한 지도에 구역을 설정하여 이동 로봇의 동작을 제어하는 방법 및 장치에 관한 것이다.
이 부분에 기술된 내용은 단순히 본 실시예에 대한 배경 정보를 제공할 뿐 종래기술을 구성하는 것은 아니다.
각종 센서와 IT기술의 발전으로 자율 주행이 가능한 무인 이동 로봇 기술이 발전하며 무인 이동 로봇의 활용 분야 역시 빠르게 확대하고 있다. 이동 로봇의 경로 계획 또는 주행 거동에 다양한 요구 조건이 필요하며, 이러한 요구 조건을 충족하면서 서비스 품질을 담보할 필요가 있다.
단순한 또는 단일 주행 방법은 자율 주행 로봇의 사용자가 원하는 다양한 요구 사항을 모두 충족시킬 수 없다. 예를 들면, 사용자는 일부 구간에서는 로봇이 감속 운행하거나 또는 금지구역을 설정하여 로봇의 진입을 원천 차단하는 것을 원할 수 있다. 사용자는 임시로 장애물이 쌓여 경로가 폐쇄된 경우나 화재와 같은 긴급상황에서 로봇이 준수해
야 하는 권장 이동 경로를 사전에 지정하는 것을 원할 수 있다. 사용자는 특정 구간에서는 로봇이 최대한 넓은 구간에서 활보하되, 다른 구간에서는 한 쪽 벽에 바짝 붙어서 이동하는 것을 원할 수도 있다.
(특허문헌1) 한국공개특허공보 제10-2015-0009413호 (2015.01.26.)
(특허문헌2) 한국공개특허공보 제10-2017-0087403호 (2017.07.28.)
(특허문헌3) 한국공개특허공보 제10-2014-0087486호 (2014.07.09.)
특허문헌1 내지 특허문헌3에 기재된 이동 로봇들은 사용자의 단일 요구 사항에 관한 동작을 수행하기 때문에 다른 요구 사항으로 변경하거나 확장하기 어렵다. 요구 사항은 자율 주행 로봇의 사용자의 목적과 의도에 따라 임의적 혹은 가변적으로 반영될 필요가 있고, 단순한 또는 단일의 수단으로 다양한 상황에 대응하는 것이 곤란하다. 다수의 주행 방법을 구비해두고 그 때마다 혼합하여 사용하더라도 하나의 방법에서 다른 방법으로의 전이(transition) 상태를 관리하기 위한 유지 보수 비용이 증가한다.
지도가 완성되기 전이나 작성 중에는 로봇의 진입이 금지된 구역에 대한 위치 정보가 없거나 부족한 실정이다. 로봇이 부족한 위치 정보에 따라 전체 영역을 자유롭게 이동하면서 지도를 생성하다 보면, 진입 금지 구역에 로봇이 진입하게 되는 문제가 있다.
본 발명의 실시예들은 사용자의 다양한 요구사항에 대응 가능하도록 유연하고 확장이 용이하도록 설계된 추상 인터페이스를 이용하여 다양한 구역을 설정하고, 설정된 구역에서 이동 로봇의 주행 동작을 동적으로 변경하는 데 발명의 주된 목적이 있다.
본 발명의 실시예들은 로봇의 이동 경로를 이용하여 로봇이 이동 가능한 구역에 대한 경계를 지정하고, 경계 내부 영역에서 로봇이 지도를 생성함으로써, 지도 작성이 완료되기 전에 로봇의 움직임을 제어하는 데 발명의 다른 목적이 있다.
본 발명의 명시되지 않은 또 다른 목적들은 하기의 상세한 설명 및 그 효과로부터 용이하게 추론할 수 있는 범위 내에서 추가적으로 고려될 수 있다.
본 실시예의 일 측면에 의하면, 이동 로봇에 있어서, 상기 이동 로봇의 오도메트리 정보를 감지하는 제1 센서; 상기 이동 로봇의 주변 환경 정보를 감지하는 제2 센서; (i) 구역(Zone)의 유형 별로 상기 구역에 대한 속성이 정의된 속성 블록 및 (ii) 상기 주변 환경 정보를 이용하여 생성 중이거나 생성된 지도를 저장하는 저장부; 상기 오도메트리 정보 및 상기 주변 환경 정보를 기반으로 상기 이동 로봇의 위치를 추정하고 주행 계획을 설정하는 제어부; 및 상기 주행 계획에 따라 상기 이동 로봇을 이동시키는 이동 장치를 포함하는 이동 로봇을 제공한다.
상기 이동 로봇은 상기 구역(Zone)의 유형 별로 상기 구역에 대한 속성이 추상 인터페이스로 정의된 속성 블록을 사용자 단말 장치 또는 지도 관리 서버로부터 수신하거나 상기 사용자 단말 장치 또는 상기 지도 관리 서버로 송신하는 통신부를 추가로 포함할 수 있다.
상기 속성 블록은 추상 인터페이스로 정의되며, (i) 상기 구역의 식별정보, (ii) 상기 구역의 명칭 및 상기 구역에 대한 서술자, (iii) 상기 구역의 유형, (iv) 상기 구역의 유형 별로 정의된 제어 파라미터, (v) 상기 구역의 위치 및 크기, 또는 이들의 조합을 포함할 수 있다.
상기 구역의 유형은 (i) 속도 변경 구역, (ii) 진입 금지 구역, (iii) 집중 반복 구역, (iv) 배타 구역, (v) 대기 구역, (vi) 이동 경로 설정 구역, 또는 이들의 조합을 포함할 수 있다.
상기 구역의 유형 별로 정의된 제어 파라미터는 (i) 속도, (ii) 방향, (iii) 위치, (iv) 거리, (v) 허용 또는 제한 여부, (vi) 횟수, (vii) 최대치, (viii) 최소치, 또는 이들의 조합을 포함할 수 있다.
상기 제어부는 (i) 상기 구역의 기본 도형을 복수로 설정하여 영역을 확장하거나 (ii) 상기 복수의 기본 도형의 전체 영역에서 상기 복수의 기본 도형 간의 오버랩 영역을 제외하거나 (iii) 상기 기본 도형의 내부 영역 또는 외부 영역을 설정하여 상기 구역의 형상을 조절할 수 있다.
상기 제어부는 복수의 속성 블록을 상기 지도 상의 동일 영역에 중첩하게 설정하여 상기 동일 영역에 복수의 유형을 설정할 수 있다.
상기 제어부는, 상기 오도메트리 정보 및 상기 주변 환경 정보를 기반으로 상기 이동 로봇의 위치를 추정하고 기본 이동 경로 계획을 설정하며, 상기 복수의 속성 블록을 참조하여 상기 이동 로봇의 상황에 따라 상기 기본 이동 경로 계획에 확장된 이동 경로 계획을 적용하여 상기 기본 이동 경로 계획을 동적으로 변경할 수 있다.
상기 이동 로봇이 상기 구역에 접근하거나 상기 구역에 존재하면, 상기 이동 로봇의 상황이 상기 확장된 이동 경로 계획의 개시 조건으로 작용하고, 상기 제어부가 상기 기본 이동 경로 계획을 상기 확장된 이동 경로 계획으로 변경할 수 있다.
상기 이동 로봇이 상기 구역을 이탈 중이거나 상기 구역을 이탈하면, 상기 이동 로봇의 상황이 상기 확장된 이동 경로 계획의 해제 조건으로 작용하고, 상기 제어부가 상기 확장된 이동 경로 계획을 상기 기본 이동 경로 계획으로 변경할 수 있다.
상기 제어부는 속성 블록 관리자 및 이동 경로 관리자를 포함할 수 있다.
상기 속성 블록 관리자는 상기 속성 블록을 유형 별로 해석하여 경로 계획자에 의해 해독 가능한 속성에 관한 메시지 정보를 생성하고 상기 해독 가능한 속성에 관한 메시지 정보를 상기 저장부에 저장할 수 있다.
상기 이동 경로 관리자는 상기 속성에 관한 메시지 정보를 상기 저장부로부터 수신하여 경로 계획자, 비용 맵, 주행 파라미터, 또는 지도의 데이터에 적용할 수 있다.
상기 지도는 전역 지도와 지역 지도로 구분될 수 있다.
상기 비용 맵은 전역 비용 맵과 지역 비용 맵으로 구분될 수 있다.
상기 경로 계획자는 상기 전역 지도를 기반으로 상기 전역 비용 맵을 이용하여 전체 이동 경로를 추출하는 전역 경로 계획자 및 상기 지역 지도를 통하여 부분 이동 경로를 추출하는 지역 경로 계획자를 포함할 수 있다.
상기 전역 지도에 적용된 속성에 관한 메시지 정보는 상기 지역 지도에 동적으로 적용되어 표시될 수 있다.
상기 지도는 기본 지도, 주행에 관한 속성 블록을 설정한 주행 지도, 및 청소에 관한 속성 블록을 설정한 청소 지도를 포함할 수 있다.
상기 주행 지도가 상기 청소 지도보다 우선 순위가 높아서 상기 청소 지도에서 청소하도록 설정된 구역과 상기 주행 지도에서 진입 금지로 설정된 영역이 동일 영역이면, 상기 이동 로봇은 상기 동일 영역에 진입하지 않고 상기 동일 영역에서 청소를 하지 않도록 설정될 수 있다.
상기 제어부는 상기 속성 블록의 경계를 설정하는 모드에서 상기 이동 장치가 이동한 자취를 기준으로 상기 속성 블록의 외곽선을 설정할 수 있다.
상기 저장부는 상기 이동 장치가 이동한 자취를 저장하고, 상기 이동한 자취를 상기 속성 블록의 외곽선으로 저장할 수 있다.
상기 제어부는 상기 속성 블록의 경계를 설정하는 모드에서 상기 주변 환경 정보를 분석하여 벽을 검출하고, 상기 벽으로부터의 거리가 기설정된 범위 이내이면 상기 벽을 상기 속성 블록의 외곽선으로 설정할 수 있다.
상기 제어부는 상기 이동 로봇으로부터 가장 가까운 벽까지의 위치를 상기 속성 블록의 외곽선에 포함시킬 수 있다.
상기 이동 장치가 상기 속성 블록의 외곽선의 내부 영역에서 이동하는 동안, 상기 제어부는 상기 주변 환경 정보를 이용하여 상기 지도 및 상기 속성 블록을 갱신할 수 있다.
이상에서 설명한 바와 같이 본 발명의 실시예들에 의하면, 추상 인터페이스로 정의된 속성 블록을 기반으로 속성 블록이 지정된 영역에 위치하는 이동 로봇의 상황에 따라 주행 경로 계획을 동적으로 변경함으로써, 사용자의 다양한 요구사항에 대응 가능하고, 로봇의 운행을 중지하지 않고 런타임 중에 주행 모드를 변경할 수 있는 효과가 있다.
본 발명의 실시예들에 의하면, 로봇의 이동 경로 또는 벽의 위치를 이용하여 로봇이 이동 가능한 구역에 대한 경계를 지정하고, 경계 내부 영역에서 로봇이 지도를 생성함으로써, 지도 작성이 완료되기 전에 진입 금지 구역을 설정할 수 있는 효과가 있다.
여기에서 명시적으로 언급되지 않은 효과라 하더라도, 본 발명의 기술적 특징에 의해 기대되는 이하의 명세서에서 기재된 효과 및 그 잠정적인 효과는 본 발명의 명세서에 기재된 것과 같이 취급된다.
도 1은 본 발명의 실시예들에 따른 이동 로봇, 사용자 단말 장치, 및 지도 관리 서버를 예시한 도면이다.
도 2는 본 발명의 일 실시예에 따른 이동 로봇을 예시한 블록도이다.
도 3a 내지 도 3d는 본 발명의 일 실시예에 따른 이동 로봇이 구역의 경계선을 설정하는 동작을 예시한 도면이다.
도 4는 본 발명의 일 실시예에 따른 이동 로봇이 이동 경로 또는 벽의 위치를 기준으로 구역의 경계선을 설정하는 동작을 예시한 도면이다.
도 5는 본 발명의 일 실시예에 따른 이동 로봇의 제어부를 예시한 도면이다.
도 6은 본 발명의 일 실시예에 따른 이동 로봇이 생성한 지도를 예시한 도면이다.
도 7은 본 발명의 일 실시예에 따른 이동 로봇이 속성 블록에 따라 설정한 구역을 예시한 도면이다.
도 8은 본 발명의 일 실시예에 따른 이동 로봇이 지도에서 설정하는 구역의 형상을 예시한 도면이다.
도 9는 본 발명의 일 실시예에 따른 이동 로봇이 속성 블록에 따라 이동 경로 계획을 동적으로 변경하는 것을 예시한 도면이다.
도 10은 본 발명의 다른 실시예에 따른 사용자 단말 장치를 예시한 블록도이다.
도 11는 본 발명의 다른 실시예에 따른 사용자 단말 장치가 지도를 편집하는 동작을 예시한 도면이다.
도 12는 본 발명의 다른 실시예에 따른 사용자 단말 장치가 특정 영역의 외곽선을 추출하는 것을 예시한 도면이다.
도 13은 본 발명의 다른 실시예에 따른 지도 관리 서버를 예시한 블록도이다.
도 14는 본 발명의 실시예들에 따른 이동 로봇, 사용자 단말 장치, 및 지도 관리 서버의 동작을 예시한 흐름도이다.
도 15는 본 발명의 또 다른 실시예에 따른 이동 로봇이 청소를 수행하기 위한 방법을 나타내는 흐름도이다.
도 16은 본 발명의 또 다른 실시예에 따른 이동 로봇이 위치 인식을 수행하는 동작을 설명하기 위한 도면이다.
이하, 본 발명을 설명함에 있어서 관련된 공지기능에 대하여 이 분야의 기술자에게 자명한 사항으로서 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략하고, 본 발명의 일부 실시예들을 예시적인 도면을 통해 상세하게 설명한다.
본 명세서에서 자율 주행 로봇의 주행 거동에 영향을 주는 사용자의 다양한 요구사항을 '속성'이라 정의한다. 속성(Attribute)은 자율 주행 로봇이 사용자의 공간 활용 목적과 의도에 따라 이동하도록 사용자가 지정하는 요구 조건을 의미한다. 예를 들어, 사용자가 특정 구간에 로봇이 아예 진입하지 못하게 하고자 한다면, 특정 구간의 속성을 '금지'로 설정한다. 청소 로봇의 집중 청소 구간을 설정하는 것과 같이, 로봇이 특정 구간을 1회 주행으로 통과하는 것이 아니라 수 차례 반복하여 주행하기를 원한다면 해당 구간을 '반복'으로 설정한다.
속성 블록(Attribute Block)은 사용자가 지정한 속성이 적용될 영역을 지정한 지도 영역을 의미한다. 속성 블록은 자율 주행을 위해 로봇이 저장하거나 외부 장치와 동기화한 지도 데이터 상에 설정 가능하다. 이동 로봇, 사용자 단말 장치, 또는 지도 관리 서버는 각 속성 블록의 크기를 조정하여 해당 속성이 부여될 영역의 범위를 지정할 수 있다. 하나의 속성 블록은 하나의 속성(요구 조건)을 기술한다. 사용자의 의도와 목적에 맞게 복수의 속성 블록들은 한 영역에 중첩 또는 중복하여 적용 가능하다.
속성 블록은 로봇이 해당 구간 내에 존재할 때 해당 구간의 속성(요구 조건)을 만족하도록 특화된 주행 알고리즘과 경로 계획을 실시하기 위한 촉발 조건을 제공한다. 예를 들어, 자율 주행 로봇이 아무런 속성 블록이 없는 구간을 통과할 때는 기본(Default) 경로 계획과 기본 주행 제어에 따라 움직인다. 로봇이 속성 블록이 부여된 구간에 진입하면, 로봇은 해당 속성에 맞춤화된 경로 계획과 주행 제어로 동적으로 전환된다. 로봇이 해당 구간에서 빠져나오면 이전의 기본 경로 계획과 주행 제어로 복귀한다.
도 1은 본 발명의 실시예들에 따른 이동 로봇, 사용자 단말 장치, 및 지도 관리 서버를 예시한 도면이다.
이동 로봇(100), 사용자 단말 장치(200), 및 지도 관리 서버(300)는 상호 통신하면서 지도를 생성하고 갱신한다. 이동 로봇(100), 사용자 단말 장치(200), 및 지도 관리 서버(300)는 생성 중이거나 생성된 지도와 설정된 속성 블록을 매칭한다.
이동 로봇(100), 사용자 단말 장치(200), 및 지도 관리 서버(300)는 상호 직접 통신하거나 통신망을 통하여 통신할 수 있다. 통신망은 이동 로봇(100), 사용자 단말 장치(200), 및 지도 관리 서버(300) 간의 통신을 가능케 할 목적으로 연결해 놓은 통신 설비의 집합을 의미한다. 통신망은 노드(Node), 회선, 간선, 및 위성 등을 포함하고 이들은 서로 연결 및 접속될 수 있다.
이동 로봇(100)은 미리 정의된 방식에 따라 특정 위치에서 다른 위치로 이동 가능하도록 설계된 장치를 의미하며, 바퀴, 레일, 보행용 다리 등과 같은 이동 수단을 이용하여, 특정 위치에서 다른 위치로 이동할 수 있다. 이동 로봇(100)은 센서 등을 이용하여 외부의 정보를 수집한 후 수집된 정보에 따라서 이동할 수도 있고, 사용자에 의해 별도의 조작 수단을 이용하여 이동할 수 있다.
이동 로봇(100)의 일례로는 로봇 청소기, 장난감 자동차, 산업용 또는 군사용 목적 등으로 이용 가능한 이동 로봇 등이 있을 수 있다.
로봇 청소기는 청소 공간을 주행하면서 바닥에 쌓인 먼지 등의 이물질을 흡입함으로써 청소 공간을 자동으로 청소하는 장치이다. 일반적인 청소기가 사용자에 의한 외력으로 이동하는 것과 달리, 로봇 청소기는 외부의 정보 또는 미리 정의된 이동 패턴을 이용하여 이동하면서 청소 공간을 청소한다.
로봇 청소기는 미리 정의된 패턴을 이용하여 자동적으로 이동하거나, 또는 감지 센서에 의해 외부의 장애물을 감지한 후, 감지된 바에 따라 이동할 수도 있고, 사용자에 의해 조작되는 원격 제어 장치로부터 전달되는 신호에 따라 이동 가능하다.
사용자 단말 장치(200)는 로봇을 이동시키면서 지도가 생성되는 과정을 보고 실시간으로 지도를 편집하고 시맨틱(Semantic) 정보를 삽입할 수 있다. 시맨틱 정보는 속성에 관하여 사용자가 인지할 수 있는 관계적 용어를 나타낸다.
사용자 단말 장치(200)는 시맨틱 지도 생성 애플리케이션을 포함한다. 시맨틱 지도 생성 애플리케이션은 원격으로 제어 신호를 송수신하여 로봇을 조정한다. 사용자는 시맨틱 지도 생성 애플리케이션을 통하여 실시간으로 시맨틱 정보를 삽입할 수 있다.
사용자 단말 장치(200)는 통신망에 연결될 수 있다. 사용자 단말 장치(200)는 스마트폰(Smart Phone), 개인용 컴퓨터(Personal Computer, PC), 태블릿 PC(Tablet PC), 휴대용 개인정보 단말기(Personal Digital Assistant, PDA), 랩톱(Laptop) 등이 있을 수 있으나 이에 한정되는 것은 아니다.
지도 관리 서버(300)는 이동 로봇(100) 또는 사용자 단말 장치(200)로부터 수신한 데이터를 분석하고 처리하는 전자 장치이다. 지도 관리 서버(300)는 생성된 지도와 편집된 지도를 관리한다. 지도는 이동 로봇이 수집한 주변 환경 정보를 기반으로 작성된 기본 지도(31), 주행에 관한 속성 블록을 설정한 주행 지도(32), 및 청소에 관한 속성 블록을 설정한 청소 지도(33)를 포함한다. 편집용 지도(34)는 기본 지도(31), 주행 지도(32), 및 청소 지도(33)를 통합한 지도이다. 편집용 지도(34)는 기본 지도(31), 주행 지도(32), 및 청소 지도(33)를 다층 레이어 구조로 통합하여 생성될 수 있다. 기본 지도(31), 주행 지도(32), 청소 지도(33), 및 편집용 지도(34)는 이동 로봇(100), 사용자 단말 장치(200), 지도 관리 서버(300)에 각각 저장되어 동기화될 수 있다.
지도 관리 서버(300)는 통신망에 연결될 수 있다. 지도 관리 서버(300)는 데이터베이스를 포함할 수 있다. 데이터베이스는 데이터의 검색, 추출, 삭제, 편집, 추가 등을 자유롭게 행할 수 있는 데이터의 저장형태를 의미한다. 데이터베이스는 오라클(Oracle), 인포믹스(Infomix), 사이베이스(Sybase), 관계형 데이터베이스 관리시스템(Relational Data Base Management System, RDBMS), 겜스톤(Gemston), 오리온(Orion), 객체 지향형 데이타베이스 관리시스템(Object Oriented Database Management System, OODBMS), 또는 분산 클라우드(Distributed Cloud) 등을 이용하여 본 실시예의 목적에 맞게 구현될 수 있다.
도 2는 본 발명의 일 실시예에 따른 이동 로봇을 예시한 블록도이다. 이동 로봇(100)은 제1 제어부(110), 제1 센서(120), 제2 센서(130), 제1 통신부(140), 제1 저장부(150), 및 이동 장치(160)를 포함한다. 도 2에서는 이동 로봇(100)이 다양한 구성요소들을 포함하도록 도시되어 있으나 일부 구성요소가 생략되거나 다른 구성요소를 추가로 포함할 수 있다.
제1 제어부(110)는 제1 센서(120)에 의해 획득한 오도메트리 정보 및 제2 센서(130)에 의해 획득한 주변 환경 정보를 기반으로 이동 로봇(100)의 위치를 추정하고 기본 이동 경로 계획을 설정한다. 제1 제어부(110)는 복수의 속성 블록을 참조하여 이동 로봇(100)의 상황에 따라 기본 이동 경로 계획에 확장된 이동 경로 계획을 적용하여 기본 이동 경로 계획을 동적으로 변경한다.
제1 제어부(110)는 다양한 소프트웨어 또는 명령어 세트를 실행하여 이동 로봇(100)을 위한 다양한 기능을 수행하고 데이터를 처리하는 유닛이다. 제1 제어부(110)는 마이크로 프로세서 등에 의해 구현될 수 있다.
제1 센서(120)는 이동 로봇(100)의 오도메트리 정보를 감지한다. 오도메트리 정보는 이동 로봇의 주행에 따른 자신의 주행 거리 측정값이다. 이동 장치(160)에 연결된 엔코더(Encoder) 또는 IMU(Inertial Measurement Unit)로부터 회전수, 기울기, 회전량, 선속도, 각속도 등의 오도메트리 정보를 획득할 수 있다. IMU는 가속도 센서 및 자이로 센서로 구현될 수 있다.
제2 센서(130)는 이동 로봇(100)의 주변 환경 정보를 감지한다. 주변 환경 정보는 장애물에 관한 영상 정보, 장애물에 관한 거리 정보, 또는 영상 정보 및 거리 정보를 통합한 정보일 수 있다.
제2 센서(130)는 장애물에 관한 영상 정보를 획득하는 이미지 센서일 수 있다. 장애물에 관한 영상 정보는 2차원으로 표현된 제1 좌표 정보 및 제1 좌표 정보에 관련된 인텐시티 정보를 포함한다. 인텐시티 정보는 픽셀에 관하여 설정된 비트 값에 따라 일정한 범위를 갖는다. 카메라는 렌즈를 통해 들어오는 빛을 전기적인 영상 신호로 바꿔 주는 이미지 센서를 포함한다. 이미지 센서는 CCD(Charged Coupled Device)와 CMOS(Complementary Metal-Oxide-Semiconductor) 등으로 구현될 수 있다.
제2 센서(130)는 장애물에 관한 거리 정보를 획득하는 라이다 센서일 수 있다. 장애물에 관한 거리 정보는 2차원으로 표현된 제2 좌표 정보와 제2 좌표 정보에 관련된 깊이 정보를 포함한다. 라이다 센서는 레이저 신호를 쏘고 반사되어 돌아오는 시간을 측정하고, 빛의 속도를 이용하여 반사체의 거리를 측정하는 장치이다. 레이저 신호는 포토 다이오드를 통하여 전기적인 신호로 변경된다. 레이저 신호는 기 설정된 파장 대역을 가질 수 있다. 예컨대, 라이다는 적외선 영역의 파장을 이용할 수 있다. 라이다 센서는 타임 오브 플라이트(Time of Flight, TOF) 방식으로 동작할 수 있다. 타임 오브 플라이트 방식은 레이저가 펄스 또는 구형파 신호를 방출하여 측정 범위 내에 있는 물체들로부터의 반사 펄스 또는 구형파 신호들이 수신기에 도착하는 시간을 측정함으로써, 측정 대상과 센서 사이의 거리를 측정한다.
제2 센서(130)는 이미지 센서로부터 영상 데이터를 수신하고, 라이다 센서로부터 거리 데이터를 수신한 후 영상 데이터와 거리 데이터를 매핑한 복합 데이터를 생성할 수 있다. 복합 데이터는 3차원으로 표현된 공간 좌표 정보와 인텐시티 정보를 포함한다. 제2 센서(130)는 매핑된 인텐시티 정보를 참조하여 공간 좌표 정보를 보간할 수 있다.
제1 통신부(140)는 사용자 단말 장치(200)로부터 복수의 속성 블록을 수신한다. 복수의 속성 블록은 구역(Zone)의 유형 별로 구역에 대한 속성이 추상 인터페이스로 정의된다.
제1 통신부(140)는 전기신호를 전자파로 변환하거나 전자파를 전기신호로 변환하고, 전자파를 이용하여 통신망 또는 다른 장치와 통신 기능을 수행하는 유닛이다. 제1 통신부(140)는 제1 제어부(110)에 연결된다. 제1 통신부(140)는 이동통신 또는 무선통신 등을 위한 다양한 통신 프로토콜을 이용할 수 있다. 예를 들면, 세계무선통신시스템(Global System for Mobile Communications, GSM), 에지(Enhanced Data GSM Environment. EDGE), 고속하향패킷접속(High Speed Downlink Packet Access, HSDPA), 고속상향패킷접속(High Speed Uplink Packet Access, HSUPA), 광대역코드분할다중접속(Wideband Code Division Multiple Access, WCDMA), 코드분할다중접속(Code Division Multiple Access, CDMA), 시분할다중접속(Time Division Multiple Access, TDMA), 블루투스(Bluetooth), 와이파이(Wireless Fidelity, WiFi), RFID(Radio Frequency Identification), 지그비(Zigbee) 등이 있으나 이에 한정되는 것은 아니다.
제1 저장부(150)는 주변 환경 정보를 이용하여 생성 중이거나 생성된 지도를 저장하고 복수의 속성 블록을 저장한다. 제1 저장부(150)는 이동 로봇(100)을 동작시키기 위한 소프트웨어, 명령어 세트, 또는 데이터 등을 저장하기 위한 유닛이다. 제1 저장부(150)는 제1 제어부(110)에 연결된다. 제1 저장부(150)는 랜덤액세스메모리(Random Access Memory, RAM), 자기 디스크(Magnetic Disc), 플래시 메모리(Flash Memory), 정적램(Static Random Access Memory, SRAM), 롬(Read Only Memory, ROM), EEPROM(Electrically Erasable Programmable Read Only Memory), PROM(Programmable Read Only Memory) 등으로 구현될 수 있으나 이에 한정되는 것은 아니다.
이동 장치(160)는 대상체까지의 거리를 기반으로 주행 경로를 산출하거나 장애물을 검출하여 이동체를 이동시킨다. 이동 장치(160)는 바퀴를 이용하여 주행하거나, 하나 이상의 다리를 이용하여 보행하거나, 날개 또는 추진 장치에 의한 비행 수단을 이용하거나, 이들의 조합 등으로 구현될 수 있다.
이동 로봇(100)은 전원부(미도시)를 포함할 수 있다. 전원부는 이동 로봇(100)의 각각의 구성요소에 전력을 공급하기 위한 유닛이다.
이동 로봇(100)의 각각의 구성요소들은 필요에 따라서 다른 구성요소의 기능을 함께 수행할 수 있다. 구성요소들은 하드웨어, 펌웨어, 소프트웨어 또는 이들의 조합에 의해 로직회로로 구현될 수 있다. 이러한 구성요소들은 하나 이상의 통신버스 또는 신호선을 통하여 통신을 수행한다.
도 3a 내지 도 3d는 이동 로봇이 구역의 경계선을 설정하는 동작을 예시한 도면이다. 이동 로봇은 지도 작성 이전에 금지 영역을 회피하기 위해서 수동 경계선 작성과 자동 지도 생성 기능을 융합한 반자동 지도 작성 기술을 적용한다.
이동 로봇은 속성 블록의 경계를 설정하는 모드에서 이동 장치가 이동한 자취를 기준으로 속성 블록의 외곽선을 설정한다. 속성 블록은 추상 인터페이스로 정의되며, (i) 구역의 식별정보, (ii) 구역의 명칭 및 구역에 대한 서술자, (iii) 구역의 유형, (iv) 구역의 유형 별로 정의된 제어 파라미터, (v) 구역의 위치 및 크기, 또는 이들의 조합을 포함할 수 있다.
도 3a를 참조하면, 지도가 완전히 작성되지 않은 상태에서도 로봇이 이동 가능하도록 할당된 영역에서만 움직일 수 있도록, 사용자가 로봇을 직접 조정하여 로봇이 이동할 수 있는 영역에 대한 경계선을 따라 이동시킨다. 도 3b를 참조하면, 로봇은 이동 중에 SLAM 기술을 이용하여 로봇의 지도와 위치 정보를 바로 생성한다. 저장부는 속성 블록의 경계를 설정하는 모드에서 이동 장치가 이동한 자취를 저장하고, 이동한 자취를 속성 블록의 외곽선으로 저장한다.
로봇은 이동 경로를 계속 저장하고 저장된 로봇의 이동 경로를 기초로 경계선으로 설정된다. 제어부는 속성 블록의 경계를 설정하는 모드에서 주변 환경 정보를 분석하여 벽을 검출하고, 벽으로부터의 거리가 기설정된 범위 이내이면 벽을 속성 블록의 외곽선으로 설정한다. 제어부는 주변 환경 정보로부터 인지된 형상을 저장된 데이터와 비교하여 형상을 분류한다.
이동 로봇의 진행 방향을 따라 로봇과 벽과의 거리가 정해진 임계치 이내로 들어오면, 벽(42)을 경계선(44)으로 설정한다. 즉, 로봇은 자동 경계선 수정 모드에 진입한다. 제어부는 이동 로봇으로부터 가장 가까운 벽까지의 위치를 속성 블록의 외곽선에 포함시킨다. 외곽선은 특정 좌표를 갖거나 추출된 에지 또는 코너 등의 지점과 인접한 지점들을 순차적으로 연결한 폐루프를 형성할 수 있다.
로봇과 벽과의 거리가 정해진 임계치를 벗어나면, 로봇의 이동 경로(41)를 경계선(44)으로 설정한다. 즉, 로봇은 자동 경계선 수정 모드를 해제한다. 도 4에서는 이동 로봇이 이동 경로 또는 벽의 위치를 기준으로 구역의 경계선을 설정하는 동작을 도시하고 있다.
도 3c를 참조하면, 경계선 설정이 완료되면 로봇은 설정된 경계선 내부를 자동으로 움직이면서 SLAM 기술을 이용하여 새로운 이동 경로(43)를 생성하고 지도를 작성한다. 이동 장치가 속성 블록의 외곽선의 내부 영역에서 이동하는 동안, 제어부는 주변 환경 정보를 이용하여 지도 및 속성 블록을 갱신한다. 이때 경계선 설정을 위해 만들어진 지도 위에 이동 경로(43)에 따른 지도를 업데이트하여 전체 지도를 완성한다. 로봇이 자동으로 경계선 내부의 모든 공간을 지나면서 지도를 작성하기 위하여 로봇이 주행할 경로를 다양한 알고리즘을 적용하여 설정할 수 있다. 예컨대, 인접 픽셀 정보에 따라 연결된 픽셀을 찾는 플러드 필(Flood Fill) 알고리즘, 전 영역(Complete Coverage) 경로 계획 알고리즘, 감시(Surveillance) 알고리즘, 탐사(Exploration) 알고리즘 등을 적용할 수 있다.
로봇은 지도에 표시된 경계선 정보를 바탕으로 가상의 장애물 구역으로 설정하여 경계선 밖을 벗어 나지 않도록 한다. 외곽선의 내부 영역에서 속성 블록의 유형은 (i) 이동 가능 구역, (ii) 장애물 구역, 및 (iii) 불확실 구역으로 구분된다. 지도 파일에서 센서가 도달하여 환경을 인식한 경우 이동 가능한 구역과 장애물 구역을 구분한다. 제2 센서를 스캔하여 이동 가능 구역 또는 장애물 구역을 확장한다.
제어부는 지도 파일에서 센서가 도달하지 않는 불확실 구역을 설정한다. 지도 파일에서 경계선 영역 내부를 스캔해서 불확실 구역을 나타내는 영역이 없으면 지도 생성을 종료한다. 제어부는 불확실 구역이 일정 크기 이하이거나 없으면 지도를 생성하는 동작을 종료하고, 저장부는 완성된 지도와 경계선을 저장한다. 도 3d는 완성된 지도와 구역의 경계선(44)을 도시하고 있다.
지도가 완성된 후에, 이동 로봇 또는 사용자 단말 장치는 속성 블록에 관한 정보를 변경할 수 있다. 예컨대, 지도가 완성된 후에 변경된 주변 상황을 반영하여 속성 블록에서 정의된 구역의 영역 정보(예컨대, 구역의 경계선 또는 외곽선, 기본 도형의 위치 및 크기 등)를 변경할 수 있다.
도 5는 본 발명의 일 실시예에 따른 이동 로봇의 제어부를 예시한 도면이고, 도 6은 본 발명의 일 실시예에 따른 이동 로봇이 생성한 지도를 예시한 도면이다.
이동 로봇(100)이 미지의 환경에서 이동하기 위해서는 주변 환경에 관한 정보가 없으므로, 센서 정보를 이용하여 환경에 관한 지도를 작성하고, 작성된 지도로부터 이동 로봇(100)의 현재 위치를 추정한다.
제1 제어부(110)는 기 생성된 지도를 기반으로 사용자에 의해 지정되는 속성과 해당 속성이 위치할 영역 정보를 입력받는다. 제1 제어부(110)는 로봇이 해당 속성 블록 구간에 진입하였을 때 로봇의 주행 상태를 어떻게 변경할 것인가를 구체적으로 기술한 데이터 부분을 입력받는다. 제1 제어부(110)는 속성 기술 데이터를 해석한다.
제1 제어부(110)는 속성에 맞게 전역 경로(Global Path)를 계획하고, 국부 경로(Local Path)를 계획하고, 주행 실패시 재시도/재탐색 거동에 변경된 파라미터를 전달하여 주행 거동을 변경한다.
제1 제어부(110)는 이동 경로 계획(Moving Path Plan)을 생성한다. 이동 경로 계획은 현재 위치로부터 지도 상의 목표 지점까지 이동 궤적(trajectory)을 생성한다. 이동 경로 계획은 지도 전체에 관한 전역 이동 경로 계획(Global Path Plan)과 로봇을 중심으로 일부 지역을 대상으로 한 국부 이동 경로 계획(Local Path Plan)으로 나누어 로봇의 이동 경로를 생성한다.
제1 제어부(110)는 오도메트리 정보를 국부 이동 경로 계획(Local Path Planning)에 사용할 수 있다. 로봇의 현재 속도 등의 정보를 받아서 국부 이동 경로를 생성하거나 장애물 회피 등에 사용된다.
제1 제어부(110)는 속성 블록 관리자 및 이동 경로 관리자를 포함할 수 있다.
제1 제어부(110) 또는 속성 블록 관리자는 속성 블록을 유형 별로 파싱하고 해석하여 경로 계획자에 의해 해독 가능한 속성에 관한 메시지 정보를 생성한다. 제1 제어부(110) 또는 속성 블록 관리자는 해독 가능한 속성에 관한 메시지 정보를 저장부에 저장한다. 프로그래밍 언어에 따라 블록 클래스를 구현할 수 있고, 블록 클래스를 활용하여 생성된 인스턴스인 블록 클래스 데이터를 생성할 수 있다. 모든 속성들이 부여된 상태는 블록 스택에 보관된다. 블록 스택은 경로 계획 등에서 속성 정보를 참고 또는 조회할 때 해당 속성에 관한 각종 정보를 제공한다. 공개 권한으로 설정된 블록 정보는 공유 접근 메모리 영역을 설정하여 각 S/W 컴포넌트들이 필요할 때마다 접근하게 할 수도 있고, 메시지 큐 방식으로 각 컴포넌트들마다 메세지를 주고 받도록 구현할 수도 있다.
제1 제어부(110) 또는 이동 경로 관리자는 속성에 관한 메시지 정보를 저장부로부터 수신하여 경로 계획자, 비용 맵(Cost Map), 주행 파라미터(속도 등), 또는 지도의 데이터에 적용할 수 있다. 경로 계획자(Global Planner, Local Planner)나 비용 맵과 같은 다른 컴포넌트는 블록 속성 정보를 조회 요청하고 결과를 받을 수 있다.
제1 제어부(110)는 엔코더, 관성 센서(IMU), 또는 이들의 조합 등을 통하여 수집된 오도메트리 정보를 갱신하면서, 이미지 센서, 라이다 센서, ToF 센서, 초음파 센서, 또는 이들의 조합 등을 통하여 환경 정보(2D 및/또는 3D 공간 정보)를 계측한다.
제1 제어부(110)는 센서의 위치를 상대 위치 변환을 수행한다. 제2 센서(130)의 위치는 로봇의 하드웨어적 구성에 따라 위치가 상대적으로 바뀌므로, 'tf'라는 상대 위치 변환을 이용한다. 상대 위치 변환은 오도메트리 정보로 로봇의 위치를 추정할 때, 로봇의 위치로부터 x,y,z 좌표 상에서 센서가 얼마만큼의 거리에 떨어져 있음을 기술한다.
제1 제어부(110)는 위치 추정 알고리즘을 이용하여 작성된 지도상에 로봇의 현재 위치(Localization/Pose)를 추정(Estimation)한다. 위치 추정 알고리즘은 주어진 환경 속에서 엔코더로부터의 바퀴 회전량, 관성 센서로부터의 관성 정보, 거리 센서로부터 장애물과의 거리 정보 등을 기반으로 로봇이 위치하고 있을 가능성을 확률로 계산하고, 기존에 작성해둔 지도상에서 x, y, θ의 좌표를 표시한다. 이동 로봇(100)은 동시간 위치 인식 및 지도 작성(Simultaneous Localization And Mapping, SLAM) 방법을 적용할 수 있다. SLAM이 처리하는 정보는 로봇의 위치(x), 오도메트리 정보(u), 관측값(z), 및 추정 맵(m)을 포함한다. SLAM에 관한 방법으로는 파티클 필터 기반의 SLAM, 그래프 기반의 SLAM 등 다양한 방법이 있다.
예컨대, 이동 로봇(100)은 위치 추정 알고리즘으로 파티클 필터 기반의 SLAM인 AMCL(Adaptive Monte Carlo Localization)을 적용할 수 있다. 이동 로봇(100)은 센서 모델과 이동 모델을 수립하고, 필터의 예측 과정과 보정 과정을 수행한다. 예측 과정에서 로봇의 이동 모델과 이전 위치에서의 확률, 엔코더로부터 받은 이동 정보를 이용하여 다음 시간에서의 로봇의 위치를 계산한다. 보정 과정에서 센서 모델, 이전 위치에서의 확률, 정규화 상수를 이용하여 센서 정보를 기반으로 정확도를 올린 현재 위치에서의 확률을 계산한다. 다음 과정으로 계산된 현재 위치의 확률을 이용하여 파티클 필터로 복수(N) 개의 파티클(샘플)을 생성하여 위치를 추정한다. 이전 위치에서의 확률에서 로봇의 이동 모델을 이용하여 새로운 샘플 집합을 추출하고, 샘플 집합 중에서 선택된 샘플과 거리 센서로부터 획득한 거리 정보, 정규화상수로 가중치를 계산한다. 리샘플링 과정에서 샘플과 가중치를 이용하여 N 개의 새로운 파티클(샘플) 집합을 생성한다. 리샘플링 과정을 반복하여 파티클을 이동시키고, 로봇의 위치 추정치의 정확도를 높일 수 있다.
예컨대, 이동 로봇(100)은 그래프 기반의 SLAM을 적용할 수 있다. 제1 제어부(110)는 스캐닝을 수행한 위치(Pose)를 노드로 표현하고 노드 간의 상대 위치(Relative Pose)를 산출한다. 제1 제어부(110)는 노드 간의 상대 위치에 따라 각각의 노드의 위치를 최적화하여 지도를 갱신한다. 제1 제어부(110)는 구속 조건들을 최대한 만족하는 노드값 또는 구속 조건들을 최소한 벗어나는 노드값을 찾고, 노드들의 위치에서의 오차들을 보정하는 과정을 수행하여 노드의 위치를 최적화한다. 즉, 노드들은 구속 조건을 기반으로 최적의 노드값으로 수렴한다. 제2 센서(130)는 이동 로봇(100)이 위치하는 공간의 스캔 정보를 획득한다. 제2 센서(130)는 다양한 센서 중에서 선택된 하나 이상의 센서를 이용하여 전방향(Omnidirectional) 또는 일부 영역의 거리 정보를 획득할 수 있다. 제1 제어부(110)는 거리 정보와 함께 이동 로봇(100)의 오도메트리 정보를 추가로 획득한다. 제1 제어부(110)는 스캔 정보를 이용하여 노드에 관한 키 프레임을 생성하고, 연속하는 노드 간의 오도메트리 엣지를 산출한다. 노드 간의 관측값은 불확실성(Uncertainty)을 갖는다. 오도메트리 엣지의 불확실성은 공분산 행렬로 표현될 수 있다. 제1 제어부(110)는 스캐닝 주기마다 획득한 복수의 스캔 정보 중에서 키 프레임을 저장한다. 스캔 정보는 점군(Point Cloud) 또는 영상 정보와 거리 정보가 매핑된 복합 데이터로 표현될 수 있다. 키 프레임은 거리 정보 및 시간 정보를 포함한다. 제1 제어부(110)는 등록된 키 프레임이 없으면 현재 입력된 거리 정보를 이용하여 키 프레임을 생성하고, 이후 키 프레임을 갱신하여 지역 지도를 추정한다. 제1 제어부(110)는 복수의 스캔 정보를 합친 지역 지도를 기반으로 스캔 매칭을 수행하여 정확도를 향상시킬 수 있다.
제1 제어부(110)는 로봇의 위치, 센서의 위치, 장애물의 위치 정보, 및 센서로 생성한 지도를 불러와서, 지도 영역을 점유 영역(Occupied Area), 자유 영역(Free Area), 미지 영역(Unknown Area)에 대한 정보로 구분한다.
제1 제어부(110)는 로봇이 이동 가능한 영역, 장애물 영역, 장애물과 충돌이 예상되는 영역을 계산한 비용 맵을 생성한다. 비용 맵은 전역 비용 맵과 지역 비용 맵으로 구분된다. 전역 비용 맵은 전역 이동 경로 계획에서 고정 지도의 전체 영역을 대상으로 이동 계획을 수립할 때의 출력이고, 지역 비용 맵은 지역 이동 경로 계획에서 지도의 부분 영역을 대상으로 이동 계획을 수립할 때의 출력이다. 비용 맵은 일정 범위에서 값을 갖는다. 비용 맵은 0에서 255까지의 값으로 표현될 수 있다. 로봇이 자유롭게 이동 가능한 자유 영역(Free Area)을 000으로 표현하고, 충돌하지 않는 영역을 001 내지 127으로 표현하고, 충돌 가능성이 있는 영역을 128 내지 252으로 표현하고, 충돌 영역을 253 내지 254으로 표현하고, 로봇이 이동 불가능한 점유 영역(Occupied Area)을 255로 표현할 수 있다.
제1 제어부(110)는 장애물 회피 알고리즘을 이용하여 장애물을 회피할 수 있다. 예컨대, 제1 제어부(110)는 장애물 회피 알고리즘으로 DWA(Dynamic Window Approach)를 적용할 수 있다. 지역 이동 경로 계획에서 사용되는 장애물 회피 알고리즘은 로봇의 속도 탐색 영역(Velocity Search Space)에서 로봇과 충돌 가능한 장애물을 회피하면서 목표점까지 빠르게 도달할 수 있는 속도를 선택한다. 장애물 회피 알고리즘은 로봇의 방향, 속도(가능 속도 및 허용 속도), 충돌을 고려하여 설계된 목적 함수가 최대가 되는 속도(각속도 및 선속도)를 산출한다.
제1 제어부(110)가 이동 경로 계획에서 작성된 이동 궤적을 따라 로봇에 속도 명령을 이동 장치(160)에 전달하면, 이동 장치(160)는 이동 궤적에 따라 목적 지점까지 이동한다. 이동 로봇(100)이 이동 중에 센싱하고, 위치를 추정하고, 이동 경로 계획을 계속 수행하면서, 장애물이나 다른 이동 물체를 회피한다.
본 발명은 이동 로봇의 주행 모드를 동적으로 변경하기 위하여, 속성 블록을 설정하고 각 블록에 맞는 확장 기능을 쉽게 추가할 수 있는 추상 인터페이스를 제공한다. 이하에서는 도 7 내지 도 9를 참조하여, 속성 블록을 설명하기로 한다.
구역(Zone)에 대한 속성이 추상 인터페이스로 정의된 복수의 속성 블록은 (i) 구역의 식별정보, (ii) 구역의 명칭 및 구역에 대한 서술자, (iii) 구역의 유형, (iv) 구역의 유형 별로 정의된 제어 파라미터, (v) 구역의 기본 도형의 중심 위치 및 각도, (vi) 구역의 기본 도형의 크기, 또는 이들의 조합을 포함한다.
구역의 유형은 (i) 속도 변경 구역, (ii) 진입 금지 구역, (iii) 집중 반복 구역, (iv) 배타 구역, (v) 대기 구역, (vi) 이동 경로 설정 구역, 또는 이들의 조합을 포함할 수 있다. 배타 구역은 특정 이동 로봇이 다른 이동 로봇과 상호 중복하지 않고 독자적으로 사용하는 공간이다. 예컨대, 엘리베이터 또는 충전소(도킹 스테이션) 등이 있다. 대기 구역은 긴급 사태 발생시 사람들의 동선을 피해 로봇이 위치해야 하는 공간이다. 이동 경로 설정 구역은 임시 우회로, 주 운행 경로, 부 운행 경로, 권장 운행 경로로 설정될 수 있다. 이는 속성 블록의 속성에 관한 예시일 뿐이며 이에 한정되는 것은 아니고 구현되는 설계 요구 사항에 따라 적합한 속성이 정의될 수 있다.
구역의 유형 별로 정의된 제어 파라미터는 (i) 속도, (ii) 방향, (iii) 위치, (iv) 거리, (v) 허용 또는 제한 여부, (vi) 횟수, (vii) 최대치, (viii) 최소치, 또는 이들의 조합을 포함한다. 구역의 유형 별로 정의된 제어 파라미터를 동적으로 변경하는 예로는 상향/하향 경사로에서 속도를 조절하거나, 문턱이 있는 장소(예컨대, 엘리베이터 등)를 통과할 때 주행 가속도를 조절하는 것이 있다.
이동 로봇(100), 사용자 단말 장치(200), 및 지도 관리 서버(300)는 복수의 속성 블록을 특정 영역에 설정할 수 있다. 지도 상의 동일 영역에 중첩하게 설정하여 동일 영역에 복수의 유형을 설정할 수 있다. 동일 영역에 복수 속성을 설정시 감속과 가속, 감속과 금지와 같이 무의미하거나 상호 반대되는 것을 제외하여 설정한다. 동일 영역에 설정된 복수의 속성이 무의미하거나 상호 반대되면, 사용자의 입력에 따라 하나의 속성이 선택되거나 복수 속성에 설정된 우선 순위에 따라 속성이 발현된다.
도 7은 본 발명의 일 실시예에 따른 이동 로봇이 속성 블록에 따라 설정한 구역을 예시한 도면이다.
도 7에서는 로봇이 자유롭게 돌아다닐 수 있는 구간(51), 벽(52), 시설물 또는 사람 등의 장애물(53)이 도시되어 있다. 환경 변화가 자주 발생하거나 위험물 등이 있어서 로봇이 절대 진입하면 안 되는 구간에는 금지 속성(54)을 부여한다. 주변에 장애물이 있거나 복도가 넓지 않아 로봇이 벽 쪽으로 붙어서 이동하게 경로 지정을 교시한 구역(55)이 있다. 화재 등 긴급 사태 시에 사람들의 동선을 피해 로봇이 위치해야 하는 대기 장소를 지정한 구역(56)이 있다. 사람들이 자주 다니거나 안전상 천천히 주행해야 하는 구간에는 감속 속성(57)을 부여한다. 도킹 스테이션이 위치한 곳으로 한 대의 로봇이 차지하고 있으면 배타적 사용을 보장받는 구역(58)이 있다.
지도 상에서 속성 블록을 중첩하여 적용할 수 있다. 예를 들어, 도킹 스테이션은 한 로봇이 배타적으로 사용해야 하는 구간이면서 동시에 도킹 스테이션 주변에 다른 로봇이 배회하거나 대기 중일 수 있기 때문에 서행할 필요가 있다. 따라서 배타 구역과 감속 속성 블록이 중첩하여 설정된 영역(59)이 발생한다.
감속이나 가속, 금지와 같은 일부 속성은 자율 주행 로봇의 기본적인 주행 파라미터를 수정하거나 비용 맵 또는 지도 데이터의 일부 영역(장애물로 설정)을 수정하여 주행을 변경할 수 있다.
예컨대, 감속 속성 블록의 속성 기술 데이터는 표 1과 같이 표현될 수 있고, 긴급 상황에서 로봇이 대기해야 하는 장소를 지정한 속성 블록은 표 2와 같이 표현될 수 있고, 진입 금지 구역은 표 3과 같이 표현될 수 있다.
Figure PCTKR2019009386-appb-T000001
Figure PCTKR2019009386-appb-T000002
Figure PCTKR2019009386-appb-T000003
이동 로봇은 속성 블록의 속성 기술 데이터를 파싱하여 데이터를 추출한다.
도 8은 본 발명의 일 실시예에 따른 이동 로봇이 지도에서 설정하는 구역의 형상을 예시한 도면이다.
기본 도형은 사각형으로 설정될 수 있으나, 다각형 또는 원형으로 변경이 가능하다. 이동 로봇(100), 사용자 단말 장치(200), 및 지도 관리 서버(300)는 기본 도형을 회전시켜 구형의 형상을 조절할 수 있다. 이동 로봇(100), 사용자 단말 장치(200), 및 지도 관리 서버(300)는 구역의 기본 도형을 복수로 설정하여 합집합 영역을 확장하여 구역의 형상을 조절할 수 있다. 이동 로봇(100), 사용자 단말 장치(200), 및 지도 관리 서버(300)는 복수의 기본 도형의 전체 영역에서 상기 복수의 기본 도형 간의 오버랩 영역을 제외한 차집합 영역을 이용하여 구역의 형상을 조절할 수 있다. 이동 로봇(100), 사용자 단말 장치(200), 및 지도 관리 서버(300)는 기본 도형의 내부 영역 또는 외부 영역을 설정하여 구역의 형상을 조절할 수 있다.
도 9는 본 발명의 일 실시예에 따른 이동 로봇이 속성 블록에 따라 이동 경로 계획을 동적으로 변경하는 것을 예시한 도면이다.
본 발명은 전역 경로 계획자, 지역 경로 계획자, 주행 실패 시 재시도/재탐색 거동, 주행 제어 파라미터 변경 등의 핵심적인 구성 요소들의 기능을 쉽게 확장하기 위한 구조를 갖춘다. 추상화 인터페이스로 정의된 속성 블록에 따라 사용자의 다양한 의도에 맞도록 특화된 경로 계획이나 별도의 주행 동작 모드가 필요할 경우 속성을 임의로 확장하고 해당하는 기능을 구현하여 자율 주행 로봇의 기능을 확장할 수 있다.
일부 속성은 별도의 주행 알고리즘과 경로 계획 알고리즘을 변경해야 한다. 예를 들어, 사용자가 청소용 자율 주행 로봇을 운행 중이며, 어떤 구간을 집중적으로 청소하기를 희망할 경우, 해당 영역에 대한 커버리지를 최대로 지정할 수 있다.
다양한 주행 알고리즘을 확장 변경하기 위해서, 주행 스택 컴포넌트는 기본 경로 계획자와 확장된 경로 계획자를 포함한다. 기본 경로 계획자는 기본 전역 경로 계획자, 기본 지역 경로 계획자, 및 기본 재시도/재탐색 거동을 포함한다. 확장된 경로 계획자는 확장된 전역 경로 계획자, 확장된 기본 지역 경로 계획자, 및 확장된 기본 재시도/재탐색 거동을 포함한다. 기본 경로 계획자와 확장된 경로 계획자는 동일한 템플릿으로 정의된다. 템플릿은 유형 별로 정의된 제어 파라미터의 집합을 기반으로 정의된다.
이동 로봇이 주행 중에 속성 블록에 의해 설정된 특정 구역에 도달하면, 경로 계획이 동적으로 변경된다. 이동 로봇이 특정 구역에 접근하거나 특정 구역에 존재하면, 이동 로봇의 상황(위치, 시간, 센싱 정보 등)이 확장된 이동 경로 계획의 개시 조건으로 작용하고, 제어부는 기본 이동 경로 계획을 확장된 이동 경로 계획으로 변경한다. 이동 로봇이 특정 구역을 이탈 중이거나 특정 구역을 이탈하면, 이동 로봇의 상황이 확장된 이동 경로 계획의 해제 조건으로 작용하고, 제어부가 확장된 이동 경로 계획을 기본 이동 경로 계획으로 변경한다. 기본 이동 경로 계획과 확장된 이동 경로 계획은 제어 파라미터의 집합으로 정의된 동일한 템플릿으로 정의된다.
기본 구성요소로 해결할 수 없는 요구 조건이 발생했을 경우, 해당 속성(요구 조건)을 충족하도록 맞춤형 속성(custom zone)을 정의하고 템플릿을 확장하여 독자적인 처리 루틴을 구성할 수 있다. 확장된 구성요소와 기본 구성요소는 동일한 추상 인터페이스로 정의되어 상호 간에 호환이 가능하다. 이러한 특성의 장점은 언급한 것처럼 로봇의 운행을 멈추지 않고도 런타임 중에 주행 모드를 변경하는 것이 가능하다는 점이다. 더불어, 속성과 템플릿이라는 기본적인 틀을 제공함으로써 새로운 요구 조건이 발생했을 때 이를 해결하기 위한 비즈니스 로직 개발(예컨대, 알고리즘 구현)에만 집중할 수 있게 된다. 이로써 상대적으로 개발 주기를 단축시키며 서두에 언급한 다양한 비즈니스 요구 변화에 신속하게 대응할 수 있다는 장점을 추가로 얻을 수 있다.
도 10은 본 발명의 다른 실시예에 따른 사용자 단말 장치를 예시한 블록도이다. 사용자 단말 장치(200)는 제2 제어부(210), 사용자 입력부(220), 표시부(230), 제2 통신부(240), 및 제2 저장부(250)를 포함한다. 도 8에서는 사용자 단말 장치(200)가 다양한 구성요소들을 포함하도록 도시되어 있으나 일부 구성요소가 생략되거나 다른 구성요소를 추가로 포함할 수 있다.
제2 제어부(210)는 사용자 입력부(220), 표시부(230), 제2 저장부(250), 및 제2 통신부(240)에 연결되어 상호 간에 동작 신호를 제어한다. 제2 제어부(210)는 다양한 소프트웨어 또는 명령어 세트를 실행하여 사용자 단말 장치(200)을 위한 다양한 기능을 수행하고 데이터를 처리하는 유닛이다. 제2 제어부(210)는 마이크로 프로세서 등에 의해 구현될 수 있다.
사용자 입력부(220)는 제2 제어부(210)에 연결된다. 사용자 입력부(220)는 시각, 청각, 촉각 등을 이용하여 사용자 단말 장치(200)의 사용자로부터 정보를 제공받기 위한 유닛이다. 사용자 입력부(220)는 터치센서를 이용하여 정보를 입력받는 터치센서부, 한 개의 키를 눌러 입력받는 버튼, 복수개의 키를 눌러 입력받는 키보드, 음향을 입력받는 마이크, 사진이나 영상을 촬영하여 정보를 입력받는 카메라 등을 포함할 수 있으나 이에 한정되는 것은 아니다. 터치센서부는 표시부(230)의 하나인 디스플레이부와 연결되어 터치스크린을 형성할 수 있다. 터치스크린은 용량성, 저항성, 광학적, 음향적, 유도적, 기계적, 화학적으로 측정될 수 있는 임의의 현상에 기초하여 터치스크린에서 하나 이상의 터치지점을 검출할 수 있다.
표시부(230)는 시각, 청각, 촉각 등을 이용하여 사용자 단말 장치(200)의 사용자에게 정보를 제공하기 위한 유닛이다. 표시부(230)는 시각적인 정보를 제공하는 디스플레이부(Display Unit) 또는 라이트부(Light Unit), 촉각적인 정보를 제공하는 진동부, 청각적인 정보를 제공하는 스피커 등을 포함할 수 있으나 이에 한정되는 것은 아니다. 디스플레이부는 화면에 정보를 표시한다. 디스플레이부는 다양한 디스플레이 패널, 예를 들면, 액정 디스플레이(Liquid Crystal Display, LCD), 유기발광 다이오드(Organic Light Emitting Diode, OLED), 박막트랜지스터 액정디스플레이(Thin Film Transistor Liquid Crystal Display, TFT-LCD)로 구현될 수 있으나 이에 한정되는 것은 아니다. 라이트부는 발광체를 포함한다. 라이트부는 색을 변화시키거나 깜박거림으로 정보를 제공할 수 있다. 진동부는 사용자 단말 장치(200)의 내부에 위치한 반추를 규칙적 또는 불규칙적으로 회전시켜 사용자 단말 장치(200)를 진동시킨다. 스피커는 전기신호를 음파로 변환한다.
제2 통신부(240)는 전기신호를 전자파로 변환하거나 전자파를 전기신호로 변환하고, 전자파를 이용하여 통신망 또는 다른 장치와 통신 기능을 수행하는 유닛이다. 제2 통신부(240)는 제2 제어부(210)에 연결된다. 제2 통신부(240)는 이동통신 또는 무선통신 등을 위한 다양한 통신 프로토콜을 이용할 수 있다. 예를 들면, 세계무선통신시스템(Global System for Mobile Communications, GSM), 에지(Enhanced Data GSM Environment. EDGE), 고속하향패킷접속(High Speed Downlink Packet Access, HSDPA), 고속상향패킷접속(High Speed Uplink Packet Access, HSUPA), 광대역코드분할다중접속(Wideband Code Division Multiple Access, WCDMA), 코드분할다중접속(Code Division Multiple Access, CDMA), 시분할다중접속(Time Division Multiple Access, TDMA), 블루투스(Bluetooth), 와이파이(Wireless Fidelity, WiFi), RFID(Radio Frequency Identification), 지그비(Zigbee) 등이 있으나 이에 한정되는 것은 아니다.
제2 저장부(250)는 주변 환경 정보를 이용하여 생성 중이거나 생성된 지도를 저장하고 복수의 속성 블록을 저장한다. 제2 저장부(250)는 사용자 단말 장치(200)을 동작시키기 위한 소프트웨어, 명령어 세트, 또는 데이터 등을 저장하기 위한 유닛이다. 제2 저장부(250)는 제2 제어부(210)에 연결된다. 제2 저장부(250)는 랜덤액세스메모리(Random Access Memory, RAM), 자기 디스크(Magnetic Disc), 플래시 메모리(Flash Memory), 정적램(Static Random Access Memory, SRAM), 롬(Read Only Memory, ROM), EEPROM(Electrically Erasable Programmable Read Only Memory), PROM(Programmable Read Only Memory) 등으로 구현될 수 있으나 이에 한정되는 것은 아니다.
사용자 단말 장치(200)는 전원부(미도시)를 포함할 수 있다. 전원부는 사용자 단말 장치(200)의 각각의 구성요소에 전력을 공급하기 위한 유닛이다.
사용자 단말 장치(200)의 각각의 구성요소들은 필요에 따라서 다른 구성요소의 기능을 함께 수행할 수 있다. 구성요소들은 하드웨어, 펌웨어, 소프트웨어 또는 이들의 조합에 의해 로직회로로 구현될 수 있다. 이러한 구성요소들은 하나 이상의 통신버스 또는 신호선을 통하여 통신을 수행한다.
사용자 단말 장치(200)는 지도를 편집하는 에디터 애플리케이션을 포함한다. 도 11는 사용자 단말 장치(200)에 에디터 애플리케이션을 설치하여 실행시킨 화면이다.
사용자 단말 장치(200) 또는 에디터 애플리케이션은 기 생성된 지도를 기반으로 사용자에 의해 지정되는 속성과 해당 속성이 위치할 영역 정보를 입력받는다. 사용자 단말 장치(200)는 로봇이 해당 속성 블록 구간에 진입하였을 때 로봇의 주행 상태를 어떻게 변경할 것인가를 구체적으로 기술한 데이터 부분을 입력받는다. 사용자 단말 장치(200)는 속성 기술 데이터를 해석하는 부분을 입력받는다. 사용자 단말 장치(200)는 속성에 맞게 전역 경로 계획자를 삽입하여 지도에 저장하여 사용자가 위치를 숫자가 아닌 장소를 나타내는 쉬운 단어로 표시할 수 있도록 지원한다. 사용자 단말 장치(200)는 라이다 기반의 SLAM을 고려하여 실시간으로 지도를 작성할 수 있다.
사용자 단말 장치(200) 또는 에디터 애플리케이션은 실시간 지도 편집 및 정보 생성을 수행한다. 실시간으로 지도를 바로 편집하여, 접근 금지 구역, 고속 이동 구역, 저속 이동 구역, 주요 청소 구역, 저 소음 구역 등에 관한 영역을 설정할 수 있다.
이동 로봇은 기본 지도 및 주행 지도를 포함한 총 2개의 지도를 관리하여 사용할 수 있다. 이동 로봇 중에서 청소 로봇은 기본 지도, 주행 지도, 청소 지도를 포함한 총 3개의 지도를 관리하여 사용할 수 있다.
기본 지도는 이동 로봇에 의해 생성 중이거나 생성된 지도이다. 주행 지도는 기본 지도에 로봇이 갈 수 있는 구역과 가지 못하는 구역을 표시한 지도이다. 로봇이 가지 못하는 곳을 기본 지도에 추가로 삽입한다. 청소 지도는 사용자가 주요 청소 구역으로 표시한 부분이 기본 지도에 추가로 삽입한다. 사용자가 주요 청소 구역으로 표시한 부분 이외에는 모두 장애물 구역으로 표시한다.
이동 로봇이 특정 위치로 주행하고 있는 중에는 주행 지도를 사용하며, 사용자가 표시한 금지 영역에 진입하지 않도록 한다. 이동 로봇이 주요 청소 영역에서 청소를 시작하였을 때에는 청소 지도를 사용하여, 청소 영역 밖으로 나가서 청소하지 않도록 한다.
시나리오를 예로 들면, 주요 청소 영역 밖에 위치하는 청소 로봇에게 주요 청소 영역을 청소하도록 명령하였을 때, 청소 로봇은 주행 지도를 로드하여 주요 청소 영역으로 이동한다. 청소 로봇이 속성 블록에 따라 주요 청소 영역으로 이동하면, 지도를 청소 지도로 변경한다. 청소 로봇이 속성 블록에 따라 청소를 시작한다. 청소 로봇이 청소를 마치면 다시 주행 지도를 로드하여 청소를 하기 전에 위치하던 지점으로 복귀하거나 다른 지점으로 이동한다.
사용자 단말 장치(200) 또는 에디터 애플리케이션은 이동 로봇이 실시간으로 생성 중인 지도나 작성된 지도에 대하여 편집 및 정보를 추가, 삽입, 또는 제거할 수 있다.
사용자 단말 장치(200) 또는 에디터 애플리케이션은 구역을 설정하거나 구역에 이름을 설정할 수 있다. 설정된 구역은 접근 금지 구역, 고속 이동 구역, 저속 이동 구역, 주요 청소 구역, 저 소음 구역 등으로 구분될 수 있다.
사용자 단말 장치(200) 또는 에디터 애플리케이션은 설정된 영역이나 장소에 대한 이름(시맨틱 정보)을 할당할 수 있다. 시맨틱 정보를 이용하여 로봇을 좌표가 아닌 영역의 이름(예컨대, '대회의실' 청소해)으로 로봇을 보내거나 청소를 시킬 수 있다.
사용자 단말 장치(200) 또는 에디터 애플리케이션은 지도 편집을 위해서 편집용 지도를 생성하고 기본 지도, 주행 지도, 청소 지도를 모두 합하여 편집용 지도에 표시한다. 사용자는 편집용 지도에서 접근 금지 영역 또는 관심 청소 영역을 추가하거나 삭제할 수 있다. 편집용 지도에서 표시된 내용은 속성에 따라 해당 지도에서 자동으로 편집된다. 예컨대, 사용자가 접근 금지 지역을 표시하거나 삭제하면 주행 지도에 접근 금지 구역이 추가 또는 삭제된다. 사용자가 주요 청소 지역을 표시하거나 삭제하면 청소 지도에 주요 청소 지역이 추가 또는 삭제된다.
속성에 따라 특정 지도가 다른 지도보다 우선한다. 주행 지도에 설정된 속성 블록은 청소 지도에 설정된 속성 블록보다 우선 순위가 높다. 진입 금지 구역은 로봇이 주행 중이거나 청소 중일 때 진입하면 안 되는 구역이므로, 경로 계획에서 고려하지 않는 장소이다. 특정 영역이 진입 금지 구역과 주요 청소 구역이 오버랩되어도, 청소 로봇은 장애물로 지도에 표시하여 전역 경로 생성 또는 지역 경로 생성시 주행 가능 경로에서 제외하여야 한다. 청소 지도에서 청소하도록 설정된 구역과 주행 지도에서 진입 금지로 설정된 영역이 동일 영역이면, 이동 로봇은 동일 영역에 진입하지 않고 동일 영역에서 청소를 하지 않는다.
전역 경로 생성시 주행 가능 경로에서 제외되더라도 실제 주행 중인 로봇의 센서는 환경 정보를 수집하므로 지역 경로 생성시 자동으로 제외한다. 즉, 전역 지도에 적용된 속성은 지역 지도에 동적으로 적용되어 표시된다.
사용자 단말 장치(200) 또는 에디터 애플리케이션은 사용자가 마우스 클릭, 키패드 입력, 터치 스크린의 터치 또는 드래그 등의 방식으로 특정 영역이나 기본 도형을 선택했을 때 형상을 자동으로 추출할 수 있다. 예컨대, 방의 내부와 외부를 구분하여 청소 구역을 설정할 수 있다. 도 10은 본 발명의 다른 실시예에 따른 사용자 단말 장치가 특정 영역의 외곽선을 추출하는 것을 예시한 도면이다.
도 12의 (b)를 참조하면, 도 12의 (a)의 기본 지도에서 사용자가 원하는 관심 구역보다 약간 큰 영역(61)을 선택한다. 사용자가 선택한 영역 중에는 구분되는 공간을 벗어나는 부분이 있기 때문에, 도 12의 (c)와 같이 제2 제어부가 자동으로 로봇이 관심 구역(62)을 추출하여 제공한다. 도 12의 (d)와 같이 선택된 관심 구역의 대표 위치(63)를 추출한다.
제2 제어부는 구역의 중심점부터 내부 공간을 채우는 방식 또는 인접한 단선들을 연결하는 방식으로 외곽선을 추출할 수 있다. 자동 영역 추출을 위하여 이미지 처리 알고리즘을 적용할 수 있다. 로봇의 이동과 크기를 고려하여 표 4와 같은 알고리즘을 적용할 수 있다.
Figure PCTKR2019009386-appb-T000004
로봇이 관심 구역(1020)으로 쉽게 이동할 수 있도록 관심 구역(1030)의 대표 지점을 생성한다. 예컨대, 청소 로봇이 대표 지점부터 청소를 시작할 수 있다.
도 13은 본 발명의 다른 실시예에 따른 지도 관리 서버를 예시한 블록도이다.
지도 관리 서버(300)는 제3 제어부(310), 제3 통신부(320), 및 제3 저장부(330)를 포함한다. 도 11에서는 지도 관리 서버(300)가 다양한 구성요소들을 포함하도록 도시되어 있으나 일부 구성요소가 생략되거나 다른 구성요소를 추가로 포함할 수 있다.
제3 제어부(310)는 제3 저장부(320) 및 제3 통신부(330)에 연결되어 상호 간에 동작 신호를 제어한다. 제3 제어부(310)는 다양한 소프트웨어 또는 명령어 세트를 실행하여 지도 관리 서버(300)를 위한 다양한 기능을 수행하고 데이터를 처리하는 유닛이다. 제3 제어부(310)는 마이크로 프로세서 등에 의해 구현될 수 있다.
제3 통신부(320)는 전기신호를 전자파로 변환하거나 전자파를 전기신호로 변환하고, 전자파를 이용하여 통신망 또는 다른 장치와 통신 기능을 수행하는 유닛이다. 제3 통신부(320)는 제3 제어부(310)에 연결된다. 제3 통신부(320)는 이동통신 또는 무선통신 등을 위한 다양한 통신 프로토콜을 이용할 수 있다. 예를 들면, 세계무선통신시스템(Global System for Mobile Communications, GSM), 에지(Enhanced Data GSM Environment. EDGE), 고속하향패킷접속(High Speed Downlink Packet Access, HSDPA), 고속상향패킷접속(High Speed Uplink Packet Access, HSUPA), 광대역코드분할다중접속(Wideband Code Division Multiple Access, WCDMA), 코드분할다중접속(Code Division Multiple Access, CDMA), 시분할다중접속(Time Division Multiple Access, TDMA), 블루투스(Bluetooth), 와이파이(Wireless Fidelity, WiFi), RFID(Radio Frequency Identification), 지그비(Zigbee) 등이 있으나 이에 한정되는 것은 아니다.
제3 저장부(330)는 주변 환경 정보를 이용하여 생성 중이거나 생성된 지도를 저장하고 복수의 속성 블록을 저장한다. 제3 저장부(330)는 지도 관리 서버(300)을 동작시키기 위한 소프트웨어, 명령어 세트, 또는 데이터 등을 저장하기 위한 유닛이다. 제3 저장부(330)는 제3 제어부(310)에 연결된다. 제3 저장부(330)는 랜덤액세스메모리(Random Access Memory, RAM), 자기 디스크(Magnetic Disc), 플래시 메모리(Flash Memory), 정적램(Static Random Access Memory, SRAM), 롬(Read Only Memory, ROM), EEPROM(Electrically Erasable Programmable Read Only Memory), PROM(Programmable Read Only Memory) 등으로 구현될 수 있으나 이에 한정되는 것은 아니다.
지도 관리 서버(300)는 전원부(미도시)를 포함할 수 있다. 전원부는 지도 관리 서버(300)의 각각의 구성요소에 전력을 공급하기 위한 유닛이다.
지도 관리 서버(300)의 각각의 구성요소들은 필요에 따라서 다른 구성요소의 기능을 함께 수행할 수 있다. 구성요소들은 하드웨어, 펌웨어, 소프트웨어 또는 이들의 조합에 의해 로직회로로 구현될 수 있다. 이러한 구성요소들은 하나 이상의 통신버스 또는 신호선을 통하여 통신을 수행한다.
도 14는 본 발명의 실시예들에 따른 이동 로봇, 사용자 단말 장치, 및 지도 관리 서버의 동작을 예시한 흐름도이다.
단계 S410에서 이동 로봇(100)은 지도를 생성한다. 지도는 전역 지도 및 지역 지도를 포함할 수 있다. 지도는 기본 지도, 주행 지도, 청소 지도, 편집용 지도, 또는 이들의 조합을 포함할 수 있다.
단계 S421에서 이동 로봇(100)과 사용자 단말 장치(200)는 지도 또는 지도에 관한 데이터를 송수신하여 지도에서 갱신되는 정보를 동기화한다. 단계 S422에서 이동 로봇(100)과 지도 관리 서버(300)는 지도 또는 지도에 관한 데이터를 송수신하여 지도에서 갱신되는 정보를 동기화한다. 단계 S423에서 사용자 단말 장치(200)와 지도 관리 서버(300)는 지도 또는 지도에 관한 데이터를 송수신하여 지도에서 갱신되는 정보를 동기화한다.
단계 S430에서 사용자 단말 장치(200)는 구역을 설정하고 속성 정보를 설정한다. 속성 블록은 구역(Zone)에 대한 속성이 추상 인터페이스로 정의되며, 구역과 속성 정보를 포함한다. 속성 블록은 구역의 유형 별로 정의된 제어 파라미터를 포함한다.
단계 S441에서 이동 로봇(100)과 사용자 단말 장치(200)는 속성 블록에 관한 데이터를 송수신하여 속성 블록 및 이동 로봇에서 갱신되는 정보를 동기화한다. 단계 S422에서 이동 로봇(100)과 지도 관리 서버(300)는 속성 블록에 관한 데이터를 송수신하여 속성 블록 및 이동 로봇에서 갱신되는 정보를 동기화한다. 단계 S423에서 사용자 단말 장치(200)와 지도 관리 서버(300)는 속성 블록에 관한 데이터를 송수신하여 속성 블록 및 이동 로봇에서 갱신되는 정보를 동기화한다.
단계 S450에서 이동 로봇(100)은 사용자 단말 장치(200)는 구역을 설정하고 속성 정보를 설정한다. 속성 블록을 참조하여 이동 로봇의 상황에 따라 주행 계획을 동적 변경한다. 속성 블록은 경로 계획을 동적 변경하는 조건으로 작용한다. 기본 주행 계획과 확장된 주행 계획은 동일한 추상 인터페이스로 정의되어 상호 간에 호환이 가능하다. 이러한 특성의 장점은 언급한 것처럼 로봇의 운행을 멈추지 않고도 런타임 중에 주행 모드를 변경하는 것이 가능하다는 점이다. 더불어, 속성과 템플릿이라는 기본적인 틀을 제공함으로써 새로운 요구 조건이 발생했을 때 이를 해결하기 위한 비즈니스 로직 개발(예컨대, 알고리즘 구현)에만 집중할 수 있게 된다. 이로써 상대적으로 개발 주기를 단축시키며 서두에 언급한 다양한 비즈니스 요구 변화에 신속하게 대응할 수 있다는 장점을 추가로 얻을 수 있다.
이동 로봇(100)은 이동 로봇(100)의 상황을 사용자 단말 장치(200) 및 지도 관리 서버(300)에 전송하여 동기화할 수 있다.
이동 로봇, 사용자 단말 장치, 및 지도 관리 서버는 하드웨어, 펌웨어, 소프트웨어 또는 이들의 조합에 의해 로직회로 내에서 구현될 수 있고, 범용 또는 특정 목적 컴퓨터를 이용하여 구현될 수도 있다. 장치는 고정배선형(Hardwired) 기기, 필드 프로그램 가능한 게이트 어레이(Field Programmable Gate Array, FPGA), 주문형 반도체(Application Specific Integrated Circuit, ASIC) 등을 이용하여 구현될 수 있다. 또한, 장치는 하나 이상의 프로세서 및 컨트롤러를 포함한 시스템온칩(System on Chip, SoC)으로 구현될 수 있다.
도 15는 본 발명의 또 다른 실시예에 따른 이동 로봇이 청소를 수행하기 위한 방법을 나타내는 흐름도이고, 도 16은 본 발명의 또 다른 실시예에 따른 이동 로봇이 위치 인식을 수행하는 동작을 설명하기 위한 도면이다
이동 로봇은 저장된 지도를 이용하여 청소를 수행하는데, 일반적으로 다른 곳으로 이동하여 청소를 수행하는 경우 새로운 지도를 작성하여 청소를 수행하게 된다. 이동 로봇은 하나의 지도만을 생성하지 않고 작업 환경에 따라 다른 다수의 지도를 생성하여 선택적으로 사용할 수 있다.
이동 로봇은 청소 영역 내 위치를 인식하기 위한 환경 정보를 포함하는 환경 정보 지도, 및 사용자에 의해 설정된 옵션 정보를 포함하는 다수의 청소 지도 정보(복합 지도 정보)를 생성할 수 있다. 하나의 청소 지도 정보는 청소 영역 지도, 환경 정보 지도, 옵션 정보를 포함하는 복합 지도 정보일 수 있다.
청소 영역 지도는 청소 대상인 청소 영역에 대한 정방형 격자의 배열로 구성된 지도일 수 있다. 각 정방형 격자는 해당 지역의 형태를 구분할 수 있는 정보를 포함할 수 있다. 예컨대, 청소 영역 지도는 청소를 완료한 영역, 장애물 정보, 충전 스테이션 정보 등을 함께 저장한다.
환경 정보 지도는 청소 영역 내 이동 로봇의 위치를 인식하기 위한 환경 정보로 구성된 지도로서, 환경 정보는 예컨대, 카메라에 의해 촬영된 영상으로부터 추출된 특징점의 좌표 등을 포함할 수 있다. 이러한 환경 정보는 청소 영역 지도를 구성하는 정방형 격자마다 생성되며, 다수 개일 수 있다.
옵션 정보는 사용자에 의해 설정되는 정보로서, 예컨대, 진입 금지 영역, 집중 청소 영역 등을 나타내는 청소 영역 정보, 이동 패턴, 이동 속도, 청소 순서 등을 나타내는 청소 방식 정보 등을 포함할 수 있다.
이러한 복합 지도 정보는 동일 장소에 대해 다수 개로 생성될 수 있고, 다른 장소에 대해 다수 개로 생성될 수도 있다. 예컨대, 동일 장소에서 룸(room)의 방문이 닫혀있는 경우와 그렇지 않은 경우 각각에 대한 복합 지도 정보가 생성될 수 있고 복층의 환경일 경우 각 층마다 복합 지도 정보가 생성될 수 있다.
이러한 복합 지도 정보는 이동 로봇 스스로 작성한 지도 정보일 수 있지만 반드시 이에 한정되지 않고 사용자가 사용자 기기를 통해 제공한 지도 정보일 수도 있다.
도 15에 도시한 바와 같이, 본 발명의 일 실시예에 따른 이동 로봇은 사용자 또는 사용자 기기로부터 제어 명령 예컨대, 청소 시작 명령을 입력 받으면(S1001), 미리 저장된 청소 지도 정보가 존재하는지를 확인할 수 있다(S1002).
다음으로, 이동 로봇은 청소 지도 정보가 존재하는 경우, 청소 시작 전 위치를 판단하기 위한 탐색 모드를 구동하여(S1003) 탐색 모드에 따라 제1 위치부터 청소를 수행하면서 미리 설정된 방식에 따라 이동하여 영상을 획득할 수 있다(S1004).
부연 설명하면, 이동 로봇의 구동 환경은 실내로서 실내 인테리어에 따라 다양한 구조가 있을 수 있는데, 이러한 구조는 반복적인 형태로 이루어질 수 있다. 이렇게 단순한 구조로 반복되어 구성된 구동 환경의 경우 이동 로봇이 청소 시작 전 제자리에서 획득한 정보만으로는 정확한 현재의 위치를 추정할 수 없어 본 발명에서는 다양한 방식으로 정보를 획득하고자 한다.
예컨대, 제1 방식은 이동 로봇이 제자리에서 회전을 하면서 카메라로부터 영상을 획득하는 방식이다. 제1 방식을 통해 획득된 영상으로부터 추출된 정보는 정지 동작에서 획득한 정보보다 지도 정보와 높은 매칭률을 보일 수 있다. 그러나 여전히 단순 반복 구조의 실내 환경에서는 낮은 매칭률을 보일 수 있다.
제2 방식은 이동 로봇이 제자리에서 회전을 한 후 직선 주행을 하는 과정에서 카메라로부터 영상을 획득하는 방식이다.
제3 방식은 상기 제1 방식과 상기 제2 방식을 병합하되, 실제 사용하는 주행 패턴을 기반으로 주행하는 방식이다.
이때, 이동 로봇은 실제 청소를 수행하는 경우와 동일한 이동 패턴으로 동작하되, 위치 인식의 성공률을 높이기 위해 실제 이동 속도보다 낮은 속도로 동작한다.
반면, 이동 로봇은 청소 지도 정보가 존재하지 않는 경우, 새로운 청소 지도 정보를 생성하여 생성된 새로운 청소 지도 정보를 기반으로 청소를 수행할 수 있다(S1014).
다음으로, 이동 로봇은 제2 센서를 통해 획득된 주변 환경 정보로부터 특징점을 추출하여(S1005) 추출된 특징점으로 구성된 임시(temporary) 환경 정보 지도를 생성할 수 있다(S1006).
이때, 특징점은 주로 모서리, 방 구석, 주요 물품의 에지 등으로부터 추출된다.
다음으로, 이동 로봇은 생성된 임시 환경 정보 지도를 구성하는 특징점들 간의 기하학 정보 예컨대, 기하학적 형상과 기하학적 상관관계 등을 추출할 수 있다(S1007).
다음으로, 이동 로봇은 추출된 기하학 정보를 미리 저장된 복합 지도 정보와 비교하여(S1008) 그 비교한 결과로서 일치 정도를 나타내는 매칭률을 산출할 수 있다(S1009).
다음으로, 이동 로봇은 산출된 매칭률이 가장 높은 하나의 복합 지도 정보를 선택할 수 있다(S1010). 즉, 이동 로봇은 매칭률이 가장 높은 복합 지도 정보가 생성된 영역이 현재 자신이 위치하고 청소하고자 하는 대상인 청소 영역이라고 판단할 수 있다.
이때, 매칭률은 SAD(Sum of Absolute Differences), SSD(Sum of Squared Differences) 등을 이용하여 산출될 수 있는데, 반드시 이에 한정되지 않고 다양한 방식이 사용된다.
다음으로, 이동 로봇은 선택된 복합 지도 정보를 로딩하고 로딩된 복합 지도 정보를 구성하는 환경 정보 지도와 임시 환경 정보 지도를 비교하여 현재의 제2 위치를 인식할 수 있다(S1011).
즉, 이동 로봇은 로딩된 청소 지도 정보를 구성하는 환경 정보 지도 중 임시 환경 정보 지도와 일치하는 환경 정보 지도의 해당 위치를 현재의 제2 위치로 인식한다.
이때, 이동 로봇은 임시 환경 정보 지도와 로딩된 복합 지도 정보를 구성하는 환경 정보 지도 모두를 비교하지 않고, 오도메트리 정보를 이용하여 이동 지점을 예측하고 예측된 이동 지점의 주변에 위치하는 환경 정보 지도들을 비교한다.
이를 위해서, 이동 로봇은 탐색 모드를 운영하는 중 관성 정보를 수집하여 수집된 관성 정보를 기반으로 오도메트리 정보 즉, 주행 거리와 주행 방향을 산출할 수 있다.
도 16에 도시한 바와 같이, 이동 로봇이 제1 위치 R부터 탐색 모드에 따라 청소를 수행하면서 미리 설정된 방식으로 동작하여 영상을 획득하는 과정에서, 오도메트리 정보 즉, 주행 거리 d와 주행 방향 θ를 이용하여 이동 지점 P1을 예측 가능하다.
이때, 이동 로봇은 예측된 이동 지점 P1에서의 임시 환경 정보와, 상기 이동 지점 P1과 그 주변 P2, P3, P4, P5, P6, P7, P8, P9의 실제 청소 지도 정보를 구성하는 환경 정보 지도의 환경 정보를 비교하여 그 비교한 결과로 매칭률이 가장 높은 위치 P2를 제2 위치로 결정할 수 있다.
다음으로, 이동 로봇은 제2 위치 인식 과정에서 청소 완료한 영역을 복합 지도 정보에 오버래핑할 수 있다(S1012). 즉, 이동 로봇은 탐색 모드에 따라 위치를 인식하는 과정에서 청소가 완료된 영역으로 복합 지도 정보를 업데이트할 수 있다.
이처럼 이동 로봇은 위치 인식 과정에서 이미 청소 완료한 영역에 대한 확인이 가능하기 때문에, 이로 인해 청소 시간이 단축되며 청소 효율성을 높일 수 있다.
다음으로, 이동 로봇은 복합 지도 정보의 제2 위치로부터 청소를 시작할 수 있다(S1013).
이동 로봇, 사용자 단말 장치, 및 지도 관리 서버는 하드웨어적 요소가 마련된 컴퓨팅 디바이스에 소프트웨어, 하드웨어, 또는 이들의 조합하는 형태로 탑재될 수 있다. 컴퓨팅 디바이스는 각종 기기 또는 유무선 통신망과 통신을 수행하기 위한 통신 모뎀 등의 통신장치, 프로그램을 실행하기 위한 데이터를 저장하는 메모리, 프로그램을 실행하여 연산 및 명령하기 위한 마이크로프로세서 등을 전부 또는 일부 포함한 다양한 장치를 의미할 수 있다.
본 실시예들에 따른 동작은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능한 매체에 기록될 수 있다. 컴퓨터 판독 가능한 매체는 실행을 위해 프로세서에 명령어를 제공하는 데 참여한 임의의 매체를 나타낸다. 컴퓨터 판독 가능한 매체는 프로그램 명령, 데이터 파일, 데이터 구조 또는 이들의 조합을 포함할 수 있다. 예를 들면, 자기 매체, 광기록 매체, 메모리 등이 있을 수 있다. 컴퓨터 프로그램은 네트워크로 연결된 컴퓨터 시스템 상에 분산되어 분산 방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수도 있다. 본 실시예를 구현하기 위한 기능적인(Functional) 프로그램, 코드, 및 코드 세그먼트들은 본 실시예가 속하는 기술분야의 프로그래머들에 의해 용이하게 추론될 수 있을 것이다.
본 실시예들은 본 실시예의 기술 사상을 설명하기 위한 것이고, 이러한 실시예에 의하여 본 실시예의 기술 사상의 범위가 한정되는 것은 아니다. 본 실시예의 보호 범위는 아래의 청구범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술 사상은 본 실시예의 권리범위에 포함되는 것으로 해석되어야 할 것이다.

Claims (15)

  1. 이동 로봇에 있어서,
    상기 이동 로봇의 오도메트리 정보를 감지하는 제1 센서;
    상기 이동 로봇의 주변 환경 정보를 감지하는 제2 센서;
    (i) 구역(Zone)의 유형 별로 상기 구역에 대한 속성이 정의된 속성 블록 및 (ii) 상기 주변 환경 정보를 이용하여 생성 중이거나 생성된 지도를 저장하는 저장부;
    상기 오도메트리 정보 및 상기 주변 환경 정보를 기반으로 상기 이동 로봇의 위치를 추정하고 주행 계획을 설정하는 제어부; 및
    상기 주행 계획에 따라 상기 이동 로봇을 이동시키는 이동 장치
    를 포함하는 이동 로봇.
  2. 제1항에 있어서,
    상기 구역(Zone)의 유형 별로 상기 구역에 대한 속성이 추상 인터페이스로 정의된 속성 블록을 사용자 단말 장치 또는 지도 관리 서버로부터 수신하거나 상기 사용자 단말 장치 또는 상기 지도 관리 서버로 송신하는 통신부를 추가로 포함하는 이동 로봇.
  3. 제1항에 있어서,
    상기 속성 블록은 추상 인터페이스로 정의되며, (i) 상기 구역의 식별정보, (ii) 상기 구역의 명칭 및 상기 구역에 대한 서술자, (iii) 상기 구역의 유형, (iv) 상기 구역의 유형 별로 정의된 제어 파라미터, (v) 상기 구역의 위치 및 크기, 또는 이들의 조합을 포함하는 것을 특징으로 하는 이동 로봇.
  4. 제3항에 있어서,
    상기 구역의 유형은 (i) 속도 변경 구역, (ii) 진입 금지 구역, (iii) 집중 반복 구역, (iv) 배타 구역, (v) 대기 구역, (vi) 이동 경로 설정 구역, 또는 이들의 조합을 포함하고,
    상기 구역의 유형 별로 정의된 제어 파라미터는 (i) 속도, (ii) 방향, (iii) 위치, (iv) 거리, (v) 허용 또는 제한 여부, (vi) 횟수, (vii) 최대치, (viii) 최소치, 또는 이들의 조합을 포함하는 것을 특징으로 하는 이동 로봇.
  5. 제3항에 있어서,
    상기 제어부는 (i) 상기 구역의 기본 도형을 복수로 설정하여 영역을 확장하거나 (ii) 상기 복수의 기본 도형의 전체 영역에서 상기 복수의 기본 도형 간의 오버랩 영역을 제외하거나 (iii) 상기 기본 도형의 내부 영역 또는 외부 영역을 설정하여 상기 구역의 형상을 조절하는 것을 특징으로 하는 이동 로봇.
  6. 제1항에 있어서,
    상기 제어부는 복수의 속성 블록을 상기 지도 상의 동일 영역에 중첩하게 설정하여 상기 동일 영역에 복수의 유형을 설정하는 것을 특징으로 하는 이동 로봇.
  7. 제1항에 있어서,
    상기 제어부는,
    상기 오도메트리 정보 및 상기 주변 환경 정보를 기반으로 상기 이동 로봇의 위치를 추정하고 기본 이동 경로 계획을 설정하며, 상기 복수의 속성 블록을 참조하여 상기 이동 로봇의 상황에 따라 상기 기본 이동 경로 계획에 확장된 이동 경로 계획을 적용하여 상기 기본 이동 경로 계획을 동적으로 변경하는 것을 특징으로 하는 이동 로봇.
  8. 제7항에 있어서,
    상기 이동 로봇이 상기 구역에 접근하거나 상기 구역에 존재하면, 상기 이동 로봇의 상황이 상기 확장된 이동 경로 계획의 개시 조건으로 작용하고, 상기 제어부가 상기 기본 이동 경로 계획을 상기 확장된 이동 경로 계획으로 변경하는 것을 특징으로 하는 이동 로봇.
  9. 제7항에 있어서,
    상기 이동 로봇이 상기 구역을 이탈 중이거나 상기 구역을 이탈하면, 상기 이동 로봇의 상황이 상기 확장된 이동 경로 계획의 해제 조건으로 작용하고, 상기 제어부가 상기 확장된 이동 경로 계획을 상기 기본 이동 경로 계획으로 변경하는 것을 특징으로 하는 이동 로봇.
  10. 제1항에 있어서,
    상기 제어부는 속성 블록 관리자 및 이동 경로 관리자를 포함하며,
    상기 속성 블록 관리자는 상기 속성 블록을 유형 별로 해석하여 경로 계획자에 의해 해독 가능한 속성에 관한 메시지 정보를 생성하고 상기 해독 가능한 속성에 관한 메시지 정보를 상기 저장부에 저장하며,
    상기 이동 경로 관리자는 상기 속성에 관한 메시지 정보를 상기 저장부로부터 수신하여 경로 계획자, 비용 맵, 주행 파라미터, 또는 지도의 데이터에 적용하는 것을 특징으로 하는 이동 로봇.
  11. 제10항에 있어서,
    상기 지도는 전역 지도와 지역 지도로 구분되고,
    상기 비용 맵은 전역 비용 맵과 지역 비용 맵으로 구분되고,
    상기 경로 계획자는 상기 전역 지도를 기반으로 상기 전역 비용 맵을 이용하여 전체 이동 경로를 추출하는 전역 경로 계획자 및 상기 지역 지도를 통하여 부분 이동 경로를 추출하는 지역 경로 계획자를 포함하고,
    상기 전역 지도에 적용된 속성에 관한 메시지 정보는 상기 지역 지도에 동적으로 적용되어 표시되는 것을 특징으로 하는 이동 로봇.
  12. 제1항에 있어서,
    상기 지도는 기본 지도, 주행에 관한 속성 블록을 설정한 주행 지도, 및 청소에 관한 속성 블록을 설정한 청소 지도를 포함하며,
    상기 주행 지도가 상기 청소 지도보다 우선 순위가 높아서 상기 청소 지도에서 청소하도록 설정된 구역과 상기 주행 지도에서 진입 금지로 설정된 영역이 동일 영역이면, 상기 이동 로봇은 상기 동일 영역에 진입하지 않고 상기 동일 영역에서 청소를 하지 않는 것을 특징으로 하는 이동 로봇.
  13. 제1항에 있어서,
    상기 제어부는 상기 속성 블록의 경계를 설정하는 모드에서 상기 이동 장치가 이동한 자취를 기준으로 상기 속성 블록의 외곽선을 설정하고,
    상기 저장부는 상기 이동 장치가 이동한 자취를 저장하고, 상기 이동한 자취를 상기 속성 블록의 외곽선으로 저장하는 것을 특징으로 하는 이동 로봇.
  14. 제1항에 있어서,
    상기 제어부는 상기 속성 블록의 경계를 설정하는 모드에서 상기 주변 환경 정보를 분석하여 벽을 검출하고, 상기 벽으로부터의 거리가 기설정된 범위 이내이면 상기 벽을 상기 속성 블록의 외곽선으로 설정하는 것을 특징으로 하는 이동 로봇.
  15. 제1항에 있어서,
    상기 이동 장치가 상기 속성 블록의 외곽선의 내부 영역에서 이동하는 동안, 상기 제어부는 상기 주변 환경 정보를 이용하여 상기 지도 및 상기 속성 블록을 갱신하는 것을 특징으로 하는 이동 로봇.
PCT/KR2019/009386 2018-08-02 2019-07-29 속성 블록을 설정하는 이동 로봇 WO2020027515A1 (ko)

Applications Claiming Priority (6)

Application Number Priority Date Filing Date Title
KR20180090142 2018-08-02
KR10-2018-0090142 2018-08-02
KR10-2018-0131436 2018-10-31
KR1020180131436A KR20200015340A (ko) 2018-08-02 2018-10-31 속성 블록에 따라 동적 주행하는 이동 로봇, 사용자 단말 장치, 및 지도 관리 서버
KR1020180158792A KR20200015348A (ko) 2018-08-02 2018-12-11 속성 블록의 경계를 설정하는 이동 로봇
KR10-2018-0158792 2018-12-11

Publications (1)

Publication Number Publication Date
WO2020027515A1 true WO2020027515A1 (ko) 2020-02-06

Family

ID=69232237

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2019/009386 WO2020027515A1 (ko) 2018-08-02 2019-07-29 속성 블록을 설정하는 이동 로봇

Country Status (1)

Country Link
WO (1) WO2020027515A1 (ko)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112146662A (zh) * 2020-09-29 2020-12-29 炬星科技(深圳)有限公司 一种引导建图方法、设备及计算机可读存储介质
WO2021248846A1 (zh) * 2020-06-12 2021-12-16 珠海一微半导体股份有限公司 一种机器人沿边行走的区域清扫规划方法、芯片及机器人
CN114098534A (zh) * 2021-11-30 2022-03-01 深圳Tcl新技术有限公司 扫地机的清扫区域识别方法、装置、存储介质及电子设备
CN114466088A (zh) * 2022-01-07 2022-05-10 上海黑眸智能科技有限责任公司 扫地机器人的数据传输方法、装置、存储介质及终端
CN114521841A (zh) * 2022-03-23 2022-05-24 深圳市优必选科技股份有限公司 打扫区域管理方法、系统、智能终端、机器人及存储介质
CN116734861A (zh) * 2023-07-25 2023-09-12 深圳市神州云海智能科技有限公司 机器人调度方法、系统、设备以及路径拼接方法、机器人

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101096592B1 (ko) * 2010-09-29 2011-12-20 국방과학연구소 장애물격자지도를 활용하는 무인차량의 자율주행성능 향상 장치 및 방법
US20120106829A1 (en) * 2010-11-03 2012-05-03 Tae-Kyeong Lee Robot cleaner and controlling method of the same
KR101660162B1 (ko) * 2015-03-05 2016-10-04 고려대학교 산학협력단 자율 주행 기반 무인 운반차 시스템 및 이의 제어 방법
JP2018044983A (ja) * 2016-09-12 2018-03-22 株式会社ダイヘン 移動属性設定装置
KR20180082264A (ko) * 2017-01-10 2018-07-18 엘지전자 주식회사 이동 로봇 및 그 제어방법

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101096592B1 (ko) * 2010-09-29 2011-12-20 국방과학연구소 장애물격자지도를 활용하는 무인차량의 자율주행성능 향상 장치 및 방법
US20120106829A1 (en) * 2010-11-03 2012-05-03 Tae-Kyeong Lee Robot cleaner and controlling method of the same
KR101660162B1 (ko) * 2015-03-05 2016-10-04 고려대학교 산학협력단 자율 주행 기반 무인 운반차 시스템 및 이의 제어 방법
JP2018044983A (ja) * 2016-09-12 2018-03-22 株式会社ダイヘン 移動属性設定装置
KR20180082264A (ko) * 2017-01-10 2018-07-18 엘지전자 주식회사 이동 로봇 및 그 제어방법

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021248846A1 (zh) * 2020-06-12 2021-12-16 珠海一微半导体股份有限公司 一种机器人沿边行走的区域清扫规划方法、芯片及机器人
CN112146662A (zh) * 2020-09-29 2020-12-29 炬星科技(深圳)有限公司 一种引导建图方法、设备及计算机可读存储介质
CN112146662B (zh) * 2020-09-29 2022-06-10 炬星科技(深圳)有限公司 一种引导建图方法、设备及计算机可读存储介质
CN114098534A (zh) * 2021-11-30 2022-03-01 深圳Tcl新技术有限公司 扫地机的清扫区域识别方法、装置、存储介质及电子设备
CN114098534B (zh) * 2021-11-30 2023-02-17 深圳Tcl新技术有限公司 扫地机的清扫区域识别方法、装置、存储介质及电子设备
CN114466088A (zh) * 2022-01-07 2022-05-10 上海黑眸智能科技有限责任公司 扫地机器人的数据传输方法、装置、存储介质及终端
CN114466088B (zh) * 2022-01-07 2023-12-08 深圳华芯信息技术股份有限公司 扫地机器人的数据传输方法、装置、存储介质及终端
CN114521841A (zh) * 2022-03-23 2022-05-24 深圳市优必选科技股份有限公司 打扫区域管理方法、系统、智能终端、机器人及存储介质
CN116734861A (zh) * 2023-07-25 2023-09-12 深圳市神州云海智能科技有限公司 机器人调度方法、系统、设备以及路径拼接方法、机器人

Similar Documents

Publication Publication Date Title
WO2020027515A1 (ko) 속성 블록을 설정하는 이동 로봇
WO2017091008A1 (ko) 이동 로봇 및 그 제어 방법
WO2018093055A1 (en) Mobile robot system and mobile robot
WO2019235743A1 (ko) 장애물 회피에 기반하여 경유 지점을 주행하는 로봇 및 주행하는 방법
WO2020139064A1 (en) Cleaning robot and method of performing task thereof
KR20200015348A (ko) 속성 블록의 경계를 설정하는 이동 로봇
WO2018066816A1 (ko) 공항용 로봇 및 그의 동작 방법
WO2018070687A1 (ko) 공항 로봇 및 그를 포함하는 공항 로봇 시스템
WO2016200098A1 (ko) 이동 로봇 및 그 제어방법
WO2018097558A1 (en) Electronic device, server, and method for determining presence or absence of user within specific space
WO2018070663A1 (ko) 공항용 로봇 및 그의 동작 방법
WO2015194866A1 (ko) 에지 기반 재조정을 이용하여 이동 로봇의 위치를 인식하기 위한 장치 및 그 방법
WO2019216578A1 (en) Method and apparatus for executing cleaning operation
WO2018182237A1 (ko) 무인 항공기 및 이를 제어하는 방법
WO2019066444A1 (en) MOBILE ROBOT AND CONTROL METHOD
WO2020046038A1 (ko) 로봇 및 그의 제어 방법
WO2019031825A1 (ko) 전자 장치 및 그 동작 방법
WO2019045293A1 (ko) 타겟 지향 로컬 경로를 생성하는 방법 및 이를 구현하는 로봇
WO2020241930A1 (ko) 멀티 센서를 이용하여 위치를 추정하는 방법 및 이를 구현하는 로봇
WO2021002499A1 (ko) 군집 로봇을 이용하여 사용자의 위치를 추적하는 방법, 태그장치 및 이를 구현하는 로봇
WO2020226187A1 (ko) 다중 센서 및 인공지능에 기반하여 맵을 생성하고 맵을 이용하여 주행하는 로봇
WO2020241934A1 (ko) 멀티 센서를 동기화시켜 위치를 추정하는 방법 및 이를 구현하는 로봇
WO2021040214A1 (ko) 이동 로봇 및 그 제어 방법
EP3773111A1 (en) Method and apparatus for executing cleaning operation
WO2020241920A1 (ko) 장치 정보에 기반하여, 다른 장치를 제어할 수 있는 인공 지능 장치

Legal Events

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

Ref document number: 19845549

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 19845549

Country of ref document: EP

Kind code of ref document: A1