WO2020226187A1 - 다중 센서 및 인공지능에 기반하여 맵을 생성하고 맵을 이용하여 주행하는 로봇 - Google Patents

다중 센서 및 인공지능에 기반하여 맵을 생성하고 맵을 이용하여 주행하는 로봇 Download PDF

Info

Publication number
WO2020226187A1
WO2020226187A1 PCT/KR2019/005305 KR2019005305W WO2020226187A1 WO 2020226187 A1 WO2020226187 A1 WO 2020226187A1 KR 2019005305 W KR2019005305 W KR 2019005305W WO 2020226187 A1 WO2020226187 A1 WO 2020226187A1
Authority
WO
WIPO (PCT)
Prior art keywords
frame
lidar
robot
visual
node
Prior art date
Application number
PCT/KR2019/005305
Other languages
English (en)
French (fr)
Inventor
어규호
김정식
김형록
노동기
박중태
Original Assignee
엘지전자 주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 엘지전자 주식회사 filed Critical 엘지전자 주식회사
Priority to KR1020197023289A priority Critical patent/KR102664410B1/ko
Priority to US16/964,176 priority patent/US11960297B2/en
Priority to PCT/KR2019/005305 priority patent/WO2020226187A1/ko
Publication of WO2020226187A1 publication Critical patent/WO2020226187A1/ko

Links

Images

Classifications

    • GPHYSICS
    • G01MEASURING; TESTING
    • G01SRADIO DIRECTION-FINDING; RADIO NAVIGATION; DETERMINING DISTANCE OR VELOCITY BY USE OF RADIO WAVES; LOCATING OR PRESENCE-DETECTING BY USE OF THE REFLECTION OR RERADIATION OF RADIO WAVES; ANALOGOUS ARRANGEMENTS USING OTHER WAVES
    • G01S17/00Systems using the reflection or reradiation of electromagnetic waves other than radio waves, e.g. lidar systems
    • G01S17/86Combinations of lidar systems with systems other than lidar, radar or sonar, e.g. with direction finders
    • G05D1/246
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J11/00Manipulators not otherwise provided for
    • B25J11/008Manipulators for service tasks
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J11/00Manipulators not otherwise provided for
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J19/00Accessories fitted to manipulators, e.g. for monitoring, for viewing; Safety devices combined with or specially adapted for use in connection with manipulators
    • B25J19/02Sensing devices
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J19/00Accessories fitted to manipulators, e.g. for monitoring, for viewing; Safety devices combined with or specially adapted for use in connection with manipulators
    • B25J19/02Sensing devices
    • B25J19/021Optical sensing devices
    • B25J19/022Optical sensing devices using lasers
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J19/00Accessories fitted to manipulators, e.g. for monitoring, for viewing; Safety devices combined with or specially adapted for use in connection with manipulators
    • B25J19/02Sensing devices
    • B25J19/021Optical sensing devices
    • B25J19/023Optical sensing devices including video camera means
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1602Programme controls characterised by the control system, structure, architecture
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1656Programme controls characterised by programming, planning systems for manipulators
    • B25J9/1664Programme controls characterised by programming, planning systems for manipulators characterised by motion, path, trajectory planning
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1679Programme controls characterised by the tasks executed
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01CMEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
    • G01C21/00Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
    • G01C21/005Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 with correlation of navigation data from several sources, e.g. map or contour matching
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01CMEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
    • G01C21/00Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
    • G01C21/20Instruments for performing navigational calculations
    • G01C21/206Instruments for performing navigational calculations specially adapted for indoor navigation
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01CMEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
    • G01C21/00Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
    • G01C21/38Electronic maps specially adapted for navigation; Updating thereof
    • G01C21/3804Creation or updating of map data
    • G01C21/3833Creation or updating of map data characterised by the source of data
    • G01C21/3848Data obtained from both position sensors and additional sensors
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01SRADIO DIRECTION-FINDING; RADIO NAVIGATION; DETERMINING DISTANCE OR VELOCITY BY USE OF RADIO WAVES; LOCATING OR PRESENCE-DETECTING BY USE OF THE REFLECTION OR RERADIATION OF RADIO WAVES; ANALOGOUS ARRANGEMENTS USING OTHER WAVES
    • G01S17/00Systems using the reflection or reradiation of electromagnetic waves other than radio waves, e.g. lidar systems
    • G01S17/88Lidar systems specially adapted for specific applications
    • G01S17/89Lidar systems specially adapted for specific applications for mapping or imaging
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01SRADIO DIRECTION-FINDING; RADIO NAVIGATION; DETERMINING DISTANCE OR VELOCITY BY USE OF RADIO WAVES; LOCATING OR PRESENCE-DETECTING BY USE OF THE REFLECTION OR RERADIATION OF RADIO WAVES; ANALOGOUS ARRANGEMENTS USING OTHER WAVES
    • G01S17/00Systems using the reflection or reradiation of electromagnetic waves other than radio waves, e.g. lidar systems
    • G01S17/88Lidar systems specially adapted for specific applications
    • G01S17/89Lidar systems specially adapted for specific applications for mapping or imaging
    • G01S17/8943D imaging with simultaneous measurement of time-of-flight at a 2D array of receiver pixels, e.g. time-of-flight cameras or flash lidar
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course or altitude of land, water, air, or space vehicles, e.g. automatic pilot
    • G05D1/02Control of position or course in two dimensions
    • G05D1/021Control of position or course in two dimensions specially adapted to land vehicles
    • G05D1/0212Control of position or course in two dimensions specially adapted to land vehicles with means for defining a desired trajectory
    • G05D1/0221Control of position or course in two dimensions specially adapted to land vehicles with means for defining a desired trajectory involving a learning process
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course or altitude of land, water, air, or space vehicles, e.g. automatic pilot
    • G05D1/02Control of position or course in two dimensions
    • G05D1/021Control of position or course in two dimensions specially adapted to land vehicles
    • G05D1/0231Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means
    • G05D1/0238Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means using obstacle or wall sensors
    • G05D1/024Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means using obstacle or wall sensors in combination with a laser
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course or altitude of land, water, air, or space vehicles, e.g. automatic pilot
    • G05D1/02Control of position or course in two dimensions
    • G05D1/021Control of position or course in two dimensions specially adapted to land vehicles
    • G05D1/0231Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means
    • G05D1/0246Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means using a video camera in combination with image processing means
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course or altitude of land, water, air, or space vehicles, e.g. automatic pilot
    • G05D1/02Control of position or course in two dimensions
    • G05D1/021Control of position or course in two dimensions specially adapted to land vehicles
    • G05D1/0268Control of position or course in two dimensions specially adapted to land vehicles using internal positioning means
    • G05D1/027Control of position or course in two dimensions specially adapted to land vehicles using internal positioning means comprising intertial navigation means, e.g. azimuth detector
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course or altitude of land, water, air, or space vehicles, e.g. automatic pilot
    • G05D1/02Control of position or course in two dimensions
    • G05D1/021Control of position or course in two dimensions specially adapted to land vehicles
    • G05D1/0268Control of position or course in two dimensions specially adapted to land vehicles using internal positioning means
    • G05D1/0274Control of position or course in two dimensions specially adapted to land vehicles using internal positioning means using mapping information stored in a memory device
    • G05D1/243
    • G05D1/2435
    • G05D1/644
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods

Definitions

  • the present invention relates to a robot that generates a map based on multiple sensors and artificial intelligence and travels using the map.
  • Robots may be arranged to provide information to people or to provide convenience to people in spaces where human and material exchanges are actively occurring, such as large marts, department stores, airports, and golf courses.
  • robots described above include guide robots, security robots, cleaning robots, and the like, and these various robots move while checking their position in space.
  • the robot in order for the robots to check their position, avoid obstacles, and move, the robot must maintain information about the space and the current position of the robot or the path the robot has moved previously.
  • the robot In order for the robot to check space and move around, the robot can hold a map. However, in order to create a map, a robot can create a map using various sensors, and it is necessary to match and store various information of information in the map.
  • a robot that generates a map based on multiple sensors and artificial intelligence includes a lidar sensor that generates a lidar frame by sensing the distance between the robot and an object placed outside the robot. It includes a camera sensor that generates a visual frame by photographing an object disposed outside.
  • a robot that generates a map based on multiple sensors and artificial intelligence includes a lidar branch including one or more lidar frames, a visual branch including the one or more visual frames, and the lidar frame or the And a control unit for generating a pose graph consisting of a backbone including at least one of the visual frames and at least two registered frame nodes, and generating odometry information generated by the robot moving between the frame nodes.
  • a robot that generates a map based on multiple sensors and artificial intelligence is a map that stores odometry information between the lidar branch, the visual branch, the backbone, and the frame nodes, and the pose graph. Includes a storage unit.
  • a robot that generates a map based on multiple sensors and artificial intelligence generates a new frame node based on the distance or angle between the previous frame node and the current location, and the visual frame that can be registered at the current location Alternatively, one or more of the lidar frames are searched in the map storage unit and registered in the generated new frame node.
  • a robot that generates a map based on multiple sensors and artificial intelligence generates a visual-only pose graph by removing a lidar frame registered in a frame node constituting the backbone from the pose graph.
  • a robot that generates a map based on multiple sensors and artificial intelligence generates a pose graph dedicated to lidar by removing a visual frame registered in a frame node constituting the backbone from the pose graph.
  • a robot traveling using a map generated based on multiple sensors and artificial intelligence includes a frame registered in a frame node of the pose graph and a first lidar frame or camera sensor generated by a lidar sensor. And a control unit that compares the first visual frame generated by or calculates the current position of the robot using the odometry information.
  • the robot may generate a heterogeneous map of the space using various sensors.
  • a robot may perform Fusion SLAM in space using various sensors.
  • FIG. 1 shows the appearance of a robot according to an embodiment of the present invention.
  • FIG. 2 shows the components of the control module of the robot according to an embodiment of the present invention.
  • FIG. 4 shows a multiple structure of a map according to an embodiment of the present invention.
  • FIG 5 shows an initial mapping process according to an embodiment of the present invention.
  • FIG. 6 shows a process of generating a visual keyframe according to an embodiment of the present invention.
  • FIG. 7 shows a process of generating a lidar key frame according to an embodiment of the present invention.
  • FIG. 8 shows a process of registering a frame node of a backbone according to an embodiment of the present invention.
  • FIG. 9 shows a visual-only pose graph with a lidar frame removed from a pose graph according to an embodiment of the present invention.
  • FIG. 10 shows a visual-only pose graph with a visual frame removed from a pose graph according to an embodiment of the present invention.
  • FIG. 11 shows a process of partially deleting a pose graph according to an embodiment of the present invention.
  • FIG. 12 shows a location estimation process based on a lidar sensor using the present invention.
  • FIG. 13 shows a location estimation process based on a camera sensor using the present invention.
  • first, second, A, B, (a), (b) may be used. These terms are only for distinguishing the component from other components, and the nature, order, order, or number of the component is not limited by the term.
  • a component is described as being “connected”, “coupled” or “connected” to another component, the component may be directly connected or connected to that other component, but other components between each component It is to be understood that is “interposed”, or that each component may be “connected”, “coupled” or “connected” through other components.
  • components may be subdivided and described for convenience of description, but these components may be implemented in one device or module, or one component may be a plurality of devices or modules. It can also be implemented by being divided into.
  • a robot includes a device that has a specific purpose (cleaning, security, monitoring, guidance, etc.) or provides a function according to the characteristics of a space in which the robot moves. Accordingly, the robot in the present specification collectively refers to a device that provides a predetermined function while holding a moving means that can move using predetermined information and sensors.
  • a map refers to information on fixed objects such as fixed walls and stairs that are confirmed to not move in space. Also, information about moving obstacles, that is, moving objects that are periodically arranged, may be stored on the map.
  • information on obstacles disposed within a certain range based on the moving direction of the robot may also be stored on the map.
  • information on obstacles is temporarily registered in the map, and after the robot moves, it may be removed from the map.
  • the robot may check external dynamic objects using various sensors.
  • the external dynamic object when the robot travels to the destination in an environment crowded with pedestrians, it is possible to check the occupied situation due to obstacles at the waypoint that must pass to the destination.
  • the robot can flexibly determine that it has arrived at the transit point according to the degree of change in the direction of the transit point, and allow it to move to the next transit point so that it can successfully travel to the destination.
  • FIG. 1 shows the appearance of a robot according to an embodiment of the present invention.
  • FIG. 1 corresponds to an exemplary appearance, and the robot of the present invention can be implemented in various appearances in addition to the appearance of FIG. 1.
  • each component may be disposed at different positions in the vertical, left, right, front, back, etc. according to the shape of the robot.
  • the main body 10 may be formed to have a long length in the vertical direction, and may have a shape of a pit that becomes slim as it goes from the bottom to the top as a whole.
  • the main body 10 may include a case 30 forming the exterior of the robot 1.
  • the case 30 includes a top cover 31 disposed above, a first middle cover 32 disposed below the top cover 31, and a second middle cover disposed below the first middle cover 32 ( 33) and a bottom cover 34 disposed under the second middle cover 33.
  • the first middle cover 32 and the second middle cover 33 may be formed of one middle cover.
  • the top cover 31 is located at the uppermost end of the robot 1 and may have a hemispherical or dome shape.
  • the top cover 31 may be positioned at a height lower than that of an adult in order to easily receive a command from a user.
  • the top cover 31 may be configured to be rotatable at a predetermined angle.
  • the robot 1 may further include a control module 150 therein.
  • the control module 150 controls the robot 1 like a kind of computer or processor. Accordingly, the control module 150 is disposed in the robot 1 to perform a function similar to that of the main processor, and may be responsible for interaction with a user.
  • the control module 150 is mounted inside the robot 1 in order to control the robot by detecting the movement of the robot and objects around it.
  • the robot control module 150 may be implemented as a software module or a chip embodied in hardware.
  • the top cover 31 may have a display unit 31a for receiving a command or outputting information from a user, and a sensor having a camera 31b and a microphone 31c as an exemplary embodiment.
  • the display unit 20 is also disposed on one side of the middle cover 32.
  • both of the two display units 31a and 20 may output information or only one of them may output information.
  • Obstacle sensors are disposed on one side or the entire lower portion of the robot 1, such as 35a and 35b.
  • Obstacle sensors include a TOF (Time of Flight) sensor, an ultrasonic sensor, an infrared sensor, a depth sensor, a laser sensor, a lidar sensor, and the like. The sensors detect obstacles outside the robot 1 in various ways.
  • TOF Time of Flight
  • the robot of FIG. 1 further includes a moving unit that is a component for moving the robot at the lower end.
  • the moving part is a component that moves the robot like a wheel.
  • the shape of the robot of FIG. 1 is exemplary, and the present invention is not limited thereto. In addition, various cameras and sensors of the robot may also be disposed at various positions of the robot 1.
  • the robot of FIG. 1 is a guide robot that guides information to a user and guides the user by moving to a specific point.
  • robots that provide cleaning, security, or functions are also included in the scope of the robot of FIG. 1.
  • Various functions may be provided, but in the present specification, for convenience of explanation, a guide robot will be described.
  • the robot In a state in which a number of robots, shown in FIG. 1 as an embodiment, are arranged in a service space, the robot performs specific functions (guidance, cleaning, security, etc.). In this process, the robot 1 stores its own location, and the robot 1 can check its current location in the entire space and create a path necessary for moving to the target point.
  • specific functions guidance, cleaning, security, etc.
  • FIG. 2 shows the components of the control module of the robot according to an embodiment of the present invention.
  • the LiDAR sensor 220 may sense surrounding objects in 2D or 3D. In the case of a two-dimensional lidar sensor, it can sense the position of an object in a range of 360 degrees around the robot. LiDAR information sensed at a specific location may constitute one LiDAR frame. That is, the lidar sensor 220 generates a lidar frame by sensing the distance between the robot and an object disposed outside the robot.
  • the camera sensor 230 uses a general camera as an embodiment. Two or more camera sensors 230 may be used to solve the limitation of the viewing angle. Images taken at a specific location constitute vision information. That is, the camera sensor 230 photographs an object disposed outside the robot and generates a visual frame including vision information.
  • the robot 1 to which the present invention is applied performs fusion-simultaneous localization and mapping (SLAM) using the lidar sensor 220 and the camera sensor 230.
  • SLAM fusion-simultaneous localization and mapping
  • Fusion SLAM can also be used by combining lidar information and vision information. These lidar information and vision information can be configured as a map.
  • the accuracy of position estimation is high compared to a method that uses only one sensor (LiDAR-only SLAM, visual-only SLAM). That is, if fusion SLAM is performed by combining the lidar information and the vision information, a better map can be obtained in terms of map quality.
  • the map quality is a criterion for both a vision map composed of vision information and a lidar map composed of lidar information.
  • the quality of each map improves during fusion SLAM because the sensors can use information that each sensor cannot acquire or lack.
  • lidar information or vision information can be extracted from one map and used.
  • only the lidar information, vision information, or both can be applied to the robot's localization to suit the amount of memory held by the robot or the computational capability of the computational processor.
  • the interface unit 290 receives information from a user. Various information such as touch input and voice input is input from the user, and the result is output. In addition, the interface unit 290 may output a map stored by the robot 1 or may output a process of moving the robot by overlapping the map.
  • the interface unit 290 may provide predetermined information to a user.
  • the controller 250 generates a map as shown in FIG. 4 to be described later, and estimates the position of the robot in the process of moving the robot based on the map.
  • the communication unit 280 enables the robot 1 to transmit and receive information by communicating with another robot or an external server.
  • the robot 1 may generate each map using respective sensors (lidar sensor, camera sensor). Alternatively, the robot 1 may create a map using these sensors and then create a map that extracts only the content corresponding to a specific sensor from the map again.
  • the map of the present invention may include odometry information based on the rotation of the wheel.
  • the odometry information is information obtained by calculating the distance the robot has moved by using the number of rotations of the wheels of the robot or the difference in the number of rotations of both wheels.
  • the robot can calculate how far the robot has moved using odometry information.
  • the control unit 250 of FIG. 2 may further include an artificial intelligence unit 255 for artificial intelligence work and processing.
  • a plurality of lidar sensors 220 and camera sensors 230 of the robot may be disposed outside the robot 1 in order to identify external objects.
  • lidar sensor 220 and camera sensor 230 shown in FIG. 2 various types of sensors (lidar sensor, infrared sensor, ultrasonic sensor, depth sensor, image sensor, microphone, etc.) are external to the robot 1. Is placed.
  • the controller 250 collects and processes the information sensed by the sensors.
  • the artificial intelligence unit 255 inputs information processed by the lidar sensor 220 and the camera sensor 230, and other sensors or information accumulated and stored by the robot 1 in the process of moving, and the controller 250 It is possible to output a result necessary to determine an external situation, process information, or create a moving path.
  • the robot 1 may store location information of various objects arranged in a space in which the robot moves as a map.
  • Objects include fixed objects such as walls and doors, and movable objects such as pots and desks.
  • the artificial intelligence unit 255 uses the map information, the lidar sensor 220 and the camera sensor 230, and information provided by other sensors to determine the path the robot will move, or the range that the robot should cover when working. Data can be output.
  • the artificial intelligence unit 255 may recognize objects disposed around the robot using information provided by the lidar sensor 220 and the camera sensor 230 and other sensors.
  • the artificial intelligence unit 255 may receive an image and output meta information about the image. Meta-information includes the name of the object in the image, the distance between the object and the robot, the type of the object, and whether or not the object is located on the map.
  • Information provided by the lidar sensor 220, the camera sensor 230, and other sensors are input to the input node of the deep learning network of the artificial intelligence unit 255, and then the deep learning network of the artificial intelligence unit 255.
  • the result is output from the output node of the artificial intelligence unit 255 through information processing of the hidden layer of.
  • the controller 250 may calculate a movement path of the robot using data calculated by the artificial intelligence unit 255 or data processed by various sensors.
  • the robot moves along a line indicated by 41, and may store information sensed by the lidar sensor at a specific point in the map storage unit 210 using the lidar sensor 220.
  • the basic shape of the space 40 may be stored as a local map.
  • the robot may store information sensed by the camera sensor at a specific point in the map storage unit 210 using the camera sensor 230 while moving the space 40.
  • FIG. 4 shows a multiple structure of a map according to an embodiment of the present invention.
  • FIG. 4 shows a configuration of a double layer in which the backbone is used as a first layer and the LiDAR branch and the visual branch are respectively used as second layers.
  • the structure shown in FIG. 4 is referred to as structurally elastic pose graph-based SLAM.
  • the backbone is information that tracks the trajectory of the robot.
  • the backbone includes one or more frame nodes corresponding to the trajectory.
  • these frame nodes further include constraint information (constraint) in relation to other frame nodes.
  • Edges between nodes represent constraint information.
  • Edge means odometry constraint information or loop constraint information.
  • the LiDAR branch of the second layer is composed of LiDAR frames.
  • the ride frame includes the lidar sensing value sensed during the movement of the robot. At least one of these lidar frames is set as a lidar keyframe.
  • the lidar keyframe has a corresponding relationship with the node of the backbone.
  • v1, v2, v4, and v5 of the nodes v1 to v5 of the backbone indicate the LiDAR keyframe.
  • the visual branch of the second layer is composed of visual keyframes.
  • the visual keyframe indicates at least one visual feature node, which is a camera sensing value (ie, an image captured by a camera) sensed during the movement of the robot.
  • the robot can create multiple visual feature nodes.
  • the lidar keyframe is connected to the frame node of the backbone or the visual keyframe is connected.
  • both lidar/visual keyframes can be connected to one frame node (v1, v4, v5).
  • the pose of the robot of the lidar or visual keyframe connected to each frame node is the same. However, according to the position where the lidar sensor or the camera sensor is attached to the robot, an extrinsic parameter may be added for each keyframe.
  • the external parameter refers to information about the relative position of the sensor from the center of the robot.
  • the visual keyframe has a correspondence with the nodes of the backbone.
  • v1, v3, v4, and v5 of the nodes v1 to v5 of the backbone indicate a visual keyframe.
  • two visual feature nodes are composed of a pair, which means that the robot 1 captures an image including two camera sensors 230. As the camera sensor 230 increases or decreases, the number of visual feature nodes at each location also increases or decreases.
  • Edges are marked between the nodes v1 to v5 constituting the backbone of the first layer.
  • e12, e23, e34, and e45 are edges between adjacent nodes, and e13, e35, and e25 are edges between non-adjacent nodes.
  • the odometry constraint information means a constraint between adjacent frame nodes such as e12, e23, e34, and e45.
  • Loop constraint information or loop information for short means a constraint between non-adjacent frames such as e13, e25, and e35.
  • the backbone consists of a number of keyframes.
  • the controller 250 may perform an initial mapping process. Initial mapping is based on keyframes, adding lidar keyframes and visual keyframes.
  • Lida branches contain one or more lidar frames.
  • a visual branch contains one or more visual frames.
  • the backbone includes at least one of a lidar frame or a visual frame and at least two registered frame nodes.
  • the lidar frame or visual frame registered in the frame node is referred to as a key frame.
  • the pose graph includes these lidar branches, visual branches, and backbones.
  • the pose graph includes odometry information and loop information between frame nodes.
  • the odometry information includes the rotation or direction of the wheel generated by the robot moving between frame nodes.
  • the loop information is based on a set of frame nodes connected with a specific constraint condition between visual keyframes around a specific frame node within the maximum sensing distance of the lidar sensor 220.
  • the pose graph of FIG. 4 is generated by the controller 250.
  • the controller 250 stores the odometry information between the lidar branch, the visual branch, the backbone, and frame nodes, and a pose graph including the same in the map storage unit 210.
  • FIG. 5 shows an initial mapping process according to an embodiment of the present invention.
  • the robot travels in a local space to secure the lidar frame and visual feature node (visual frame) of FIG. 4.
  • the robot may travel in a local space, secure the lidar frame and visual feature node of FIG. 4 in real time, and simultaneously perform the process of FIG. 5.
  • the control unit 250 creates a frame node constituting the backbone of the first layer (S45).
  • Frame nodes are based on a certain distance and angle between nodes.
  • a frame node is created when any one of lidar information (lidar frame) or vision information (visual frame) exists at the corresponding location.
  • additional nodes can be created to create specific destinations (pharmacies, information desks, etc.). This is possible when the user sets in advance or when the corresponding location is previously designated as a node during the frame node creation process.
  • the controller 250 calculates the number of feature points in the captured image and checks whether there is much information provided by the image enough to register the image as a visual key frame. If the entire image is of the same color (in the case of a wall) or people are photographed (no feature), the controller 250 does not register as a visual keyframe.
  • a keyframe is generated when the overlapping regions in the lidar information sensed while the robot moves are reduced.
  • LiDAR information may be the same within a close distance. Therefore, it is registered as a key frame only when the lidar information is different because there is a certain distance difference.
  • the controller 250 may register frame nodes, visual keyframes, and lidar keyframes of the backbone in real time by collecting lidar information and vision information in real time while the robot moves.
  • the controller 250 may register frame nodes, visual keyframes, and lidar keyframes of the backbone.
  • controller 250 may generate a frame node of the backbone and add odometry constraint information and loop constraint information between nodes as edges.
  • the controller 250 creates a new frame node based on the distance or angle between the previous frame node and the current location (S45).
  • the controller 250 searches the map storage unit 210 for one or more of a visual frame or a lidar frame that can be registered at the current location and registers it in a new frame node generated in S45 (S46, S47).
  • the controller 250 may newly create a lidar frame/visual frame using the lidar sensor 220 or the camera sensor 230. have.
  • the control unit 250 selects a visual key frame suitable for SLAM from among the input vision information.
  • the controller 250 performs initialization (S51). Initialization means that the control unit 250 sets the set of neighboring nodes V neigbor to the empty set ⁇ and the number of neighboring nodes n neighbor to 0.
  • control unit 250 includes nodes located within a maximum angle (R max ) of the candidate region among nodes located within a certain distance in a candidate visual keyframe (v v candidate ) as neighboring nodes (V neigbor ).
  • R max means the maximum search range required to identify the overlapped visual keyframe. For example, if the size of R max is small, the map can be created with very high density.
  • the next step is to check whether the candidate visual keyframe has enough 3D points. If enough 3D points are held, this candidate visual keyframe may be added to the pose graph including the backbone of FIG. 4 as a keyframe (S54).
  • N min 3D _point means the minimum 3D point to register as a key frame.
  • the process of FIG. 6 may be repeated when the camera sensor collects images.
  • the process of FIG. 6 is implemented as an exemplary pseudo code, it is as follows.
  • S51 corresponds to the following line 1
  • S52 corresponds to the following line 2.
  • S53 corresponds to the following lines 3-8.
  • S54 corresponds to the following lines 9-14.
  • a visual keyframe that can be registered in a frame node is selected from among visual frames.
  • the controller 250 selects a visual keyframe from among a plurality of visual frames according to the distance, angle, and number of feature points within the visual frame from adjacent visual frames.
  • the visual branch includes a plurality of visual frames and one or more visual keyframes.
  • the visual keyframe is a visual frame selected from among visual frames.
  • FIG. 7 shows a process of generating a lidar key frame according to an embodiment of the present invention.
  • the controller 250 may generate a lidar frame at a specific location during the moving process. Then, the first lidar frame is registered as a lidar key frame (S56), and a new lidar frame is generated in the process of moving the robot 1 (S57). The controller 250 selects a new lidar frame (S58).
  • the control unit 250 compares the selected lidar frame with a previously registered key frame and registers it as a key frame when the overlapping size is less than a predetermined standard (S59). S57 to S59 may be repeated while the robot moves.
  • a lidar frame having a large change size and a previous space may be registered as a keyframe.
  • the control unit 250 selects the second lidar key frame according to a size overlapping the first lidar key frame from among the plurality of lidar frames.
  • the first lidar keyframe is a keyframe already selected as a keyframe
  • the second lidar keyframe is a newly selected keyframe.
  • the LiDAR branch includes a plurality of LiDAR frames and one or more LiDAR keyframes.
  • the lidar keyframe is a lidar frame selected from among a plurality of lidar frames.
  • the generation of the visual keyframe and the generation of the lidar keyframe of FIGS. 6 and 7 may be performed independently.
  • the controller 250 registers as a frame node of the backbone.
  • FIG. 8 shows a process of registering a frame node of a backbone according to an embodiment of the present invention.
  • the control unit 250 may generate a frame node after the visual keyframes and lidar keyframes described in the process of FIGS. 6 and 7 are generated.
  • the control unit 250 may generate separate visual keyframes and lidar keyframes at locations specifically indicated by users, and register frame nodes and visual keyframes/lidar keyframes by creating a frame node at the corresponding location. have.
  • the mode is switched to a mode in which the user inputs a Point of Interest (POI).
  • POI Point of Interest
  • the interface unit 290 may receive an input of adding a frame node. Along with the addition of a frame node, metadata for the current location may be input.
  • the controller 250 In response to a user's input, the controller 250 creates a frame node at the current location, searches for a visual frame or lidar frame that can be registered in the generated frame node, and registers it in the frame node. Alternatively, the controller 250 may control the lidar sensor 220 or the camera sensor 230 to generate a new visual frame/lidar frame and register the generated frames to the frame node.
  • the controller 250 generates vision information by controlling the camera sensor 230 at the current position of the robot 1, and generates the lidar information by controlling the lidar sensor 220.
  • the controller 250 generates a visual keyframe using the generated vision information, and generates a lidar keyframe using the generated lidar information (S62). Thereafter, the controller 250 creates a frame node at the corresponding location (S63), and registers (or associates, associates) a visual keyframe and a lidar keyframe with the created frame node (S64).
  • the controller 250 determines whether to generate the current position as a frame node based on the difference between the previous frame node (v f previous ) and the current position (p current ) of the robot. (S65).
  • control unit 250 uses criteria such as a distance T dist and an angle T angle that must be satisfied at least between a previous frame node and a new frame node.
  • the controller 250 determines that the difference between the position of the previous frame node (p(v f previous )) and the position of the current robot (p current ) is greater than T dist or the position of the previous frame node (p(v f previous )). Check if the angle between )) and the current robot position (p current ) is greater than the T angle . In addition, when the condition of S65 is satisfied, the controller 250 may register a visual keyframe or a lidar keyframe that can be registered at the corresponding location (S66). A frame node is created (S67).
  • the controller 250 may register only the visual keyframe to the frame node. Alternatively, the controller 250 may register only the lidar keyframe to the frame node, or the controller 250 may register both the visual keyframe/lidar keyframe to the frame node.
  • S61 corresponds to the following line 1
  • S62 to S64 correspond to the following lines 2 to 4.
  • S65 to S68 correspond to the following lines 5-18.
  • S65 corresponds to lines 5-6
  • S66 corresponds to line 7
  • S67 corresponds to line 8.
  • S68 corresponds to lines 12 to 17.
  • the robot 1 can generate two types of maps (vision map and lidar map), respectively, and combine them around the backbone.
  • a required map (vision map or lidar map) can be extracted from a pose graph including an already integrated backbone and applied to the SLAM of the robot 1. This is applicable when the robot 1 is equipped with only one sensor (220 or 230) or performs SLAM around any one sensor.
  • the robot 1 including both the lidar sensor 220 and the camera sensor 230 generates two types of maps (vision map and lidar map) and uses keyframes between them. To create a pose graph including the backbone.
  • a lidar map is installed for a robot equipped with only the lidar sensor 220
  • a vision map is installed for a robot equipped with only the camera sensor 230 so that the robots with different sensors can perform position estimation.
  • the location estimation scenario that the robot can use can be applied in various ways depending on the characteristics of the map.
  • FIG. 9 shows a visual-only pose graph with a lidar frame removed from a pose graph according to an embodiment of the present invention.
  • Frame nodes, odometry information, and visual frames and visual keyframes constitute a pose graph called G_Visual.
  • FIG. 10 shows a visual-only pose graph with a visual frame removed from a pose graph according to an embodiment of the present invention.
  • the frame node and odometry information, and the lidar frame and lidar keyframe form a pose graph called G_LiDAR.
  • FIG. 11 shows a process of partially deleting a pose graph according to an embodiment of the present invention.
  • the controller 250 loads a pause graph including a frame node into the memory (S71). And it branches according to whether or not a visual-only pose graph is generated (S72). In the case of generating a visual-only pose graph, the controller 250 removes the lidar frame registered in the frame node constituting the backbone from the loaded pose graph (S73). In addition, the controller 250 generates a visual-only pose graph by removing the Lida branch from the pose graph (S74). The results are shown in FIG. 9.
  • control unit 250 can estimate the position of the robot using the map of FIG. 9.
  • the controller 250 removes the visual frame registered in the frame node constituting the backbone from the pose graph (S75). In addition, the controller 250 generates a pose graph dedicated to Lida by removing the visual branch from the pose graph (S76). The results are shown in FIG. 10.
  • the controller 250 may estimate the position of the robot using the map of FIG. 10.
  • the robot 12 shows a location estimation process based on a lidar sensor using the present invention.
  • the robot may further include a camera sensor.
  • the lidar sensor 220 senses the distance between the robot and the object disposed outside the robot to generate the first lidar frame (S81). Then, the control unit 250 selects a frame node stored in the map storage unit 210 (S82). The selection of the frame node can use odometry information that the robot has moved based on the previously identified frame node.
  • the controller 250 compares the generated first lidar frame with the second lidar frame registered in the frame node (S83). When it is possible to estimate the position according to the comparison result (S84), the controller 250 estimates the current position of the robot (S86).
  • the controller 250 searches for a new frame node in the backbone of the map storage unit 210 or performs location estimation using the first visual frame generated by the camera sensor 230. (S85).
  • the map storage unit 210 stores the above-described pose graph.
  • the map storage unit 210 stores a lidar branch including a plurality of lidar frames comparable to the first lidar frame.
  • the map storage unit 210 stores a visual branch including a plurality of visual frames comparable to the first visual frame.
  • the map storage unit 210 stores a pose graph composed of a backbone including at least one of the stored lidar frames or stored visual frames and at least two registered frame nodes. In addition, the map storage unit 210 stores odometry information between frame nodes.
  • the map storage unit 210 may store a pose graph from which the lidar branch is removed (FIG. 9), or the map storage unit 210 may store a pose graph from which the visual branch is removed ( Fig. 10).
  • the controller 250 may estimate a position by comparing the frame registered in the frame node of the pose graph with the first lidar frame or the first visual frame. Alternatively, the controller 250 may calculate the current position of the robot using odometry information.
  • a new lidar frame is extracted.
  • the controller 250 searches for a first frame node corresponding to a current position in the backbone and extracts a second lidar frame registered in the first frame node.
  • the controller 250 may determine that the two frames are different as a result of comparing the first lidar frame and the second lidar frame.
  • the controller 250 may calculate a current position of the robot by extracting a third lidar frame adjacent to the second lidar frame from the lidar branch and comparing the first lidar frame with the third lidar frame.
  • the robot can use the visual frame. That is, when two frames are different as a result of comparing the first and third lidar frames, the control unit 250 extracts the second visual frame registered in the first frame node.
  • the controller 250 calculates the current position of the robot by comparing the first visual frame and the second visual frame.
  • the controller 250 may search for a new frame node. For example, if it is determined as v2 in the configuration of FIG. 4 but the position estimation fails, the controller 250 may search for an adjacent v1 or v3 as a new frame node.
  • the controller 250 may extract a visual frame or lidar frame other than the key frame registered in the current frame node from the map storage unit 210 and compare it with the first lidar frame/first visual frame acquired at the current location. .
  • the robot may further include a lidar sensor.
  • the camera sensor 230 generates a first visual frame by photographing an object disposed outside the robot (S91).
  • control unit 250 selects a frame node stored in the map storage unit 210 (S92).
  • the selection of the frame node can use odometry information that the robot has moved based on the previously identified frame node.
  • the control unit 250 compares the generated first visual frame with the second visual frame registered in the frame node (S93). When it is possible to estimate the position according to the comparison result (S94), the control unit 250 estimates the current position of the robot (S96).
  • the controller 250 searches for a new frame node from the backbone of the map storage unit 210 or performs location estimation using the first lidar frame generated by the lidar sensor 220. Perform (S95)
  • a new visual frame is extracted.
  • the controller 250 searches for a first frame node corresponding to the current position in the backbone and extracts a second visual frame registered in the first frame node.
  • the controller 250 may determine that the two frames are different as a result of comparing the first visual frame and the second visual frame.
  • the controller 250 may calculate a current position of the robot by extracting a third visual frame adjacent to the second visual frame from the visual branch and comparing the first visual frame with the third visual frame.
  • the robot can use the lidar frame. That is, when two frames are different as a result of comparing the first visual frame and the third visual frame, the controller 250 extracts the second lidar frame registered in the first frame node.
  • controller 250 calculates the current position of the robot by comparing the first lidar frame and the second lidar frame.
  • the controller 250 may search for a new frame node. For example, if it is determined as v2 in the configuration of FIG. 4 but the position estimation fails, the controller 250 may search for an adjacent v1 or v3 as a new frame node.
  • the controller 250 may extract a visual frame or lidar frame other than the key frame registered in the current frame node from the map storage unit 210 and compare it with the first lidar frame/first visual frame acquired at the current location. .
  • the controller 250 estimates the current position of the robot based on the first frame node that has first searched for it.
  • control unit 250 extracts the second frame node in which the lidar frame or the visual frame is registered among the paths the robot has moved, and uses the odometry information from the second frame node to the first frame node to determine the current position of the robot. Can be calculated.
  • the controller 250 may generate a single map by fusing a camera sensor generating vision information and a lidar sensor generating lidar information. Further, the controller 250 may generate a map as shown in FIG. 4 based on information sensed by these sensors. In addition, the controller 250 can separate the map into a map based on a visual frame, a map based on a lidar frame, etc., and independently use the map separated according to the type of sensors held by the robot 1 Position estimation can be performed.
  • the present invention is not necessarily limited to these embodiments, and all constituent elements within the scope of the present invention are one or more It can also be selectively combined and operated.
  • all of the components may be implemented as one independent hardware, a program module that performs some or all functions combined in one or more hardware by selectively combining some or all of the components. It may be implemented as a computer program having Codes and code segments constituting the computer program may be easily inferred by those skilled in the art of the present invention.
  • Such a computer program is stored in a computer-readable storage medium, and is read and executed by a computer, thereby implementing an embodiment of the present invention.
  • the storage medium of the computer program includes a magnetic recording medium, an optical recording medium, and a storage medium including a semiconductor recording element.
  • the computer program implementing the embodiment of the present invention includes a program module that is transmitted in real time through an external device.

Abstract

본 발명은 다중 센서 및 인공지능에 기반하여 맵을 생성하고 맵을 이용하여 주행하는 로봇에 관한 것으로, 발명의 일 실시예에 의한 다중 센서 및 인공지능에 기반하여 맵을 생성하는 로봇은 하나 이상의 라이다 프레임을 포함하는 라이다 브랜치와 상기 하나 이상의 비주얼 프레임을 포함하는 비주얼 브랜치와 상기 라이다 프레임 또는 상기 비주얼 프레임 중 어느 하나 이상과 등록된 프레임 노드를 둘 이상 포함하는 백본으로 구성된 포즈 그래프를 생성하며, 상기 프레임 노드 사이를 상기 로봇이 이동하여 생성한 오도메트리 정보를 생성하는 제어부를 포함한다.

Description

다중 센서 및 인공지능에 기반하여 맵을 생성하고 맵을 이용하여 주행하는 로봇
본 발명은 다중 센서 및 인공지능에 기반하여 맵을 생성하고 맵을 이용하여 주행하는 로봇에 관한 기술이다.
대형 마트, 백화점, 공항, 골프장 등 인적, 물적 교류가 활발하게 발생하는 공간에는 사람들에게 정보를 제공하기 위해, 또는 사람들에게 편의를 제공하기 위해 로봇이 배치될 수 있다.
전술한 로봇의 종류로는 안내로봇, 보안로봇, 청소로봇 등이 있으며, 이들 다양한 로봇들은 공간 내에서 자신의 위치를 확인하며 이동한다.
한편, 로봇들이 자신의 위치를 확인하고 장애물을 회피하며 이동하기 위해서는 공간에 대한 정보와 로봇의 현재 위치 또는 이전에 로봇이 이동한 경로 등에 대한 정보를 로봇이 유지해야 한다.
로봇이 공간을 확인하고 이동하기 위해 로봇은 맵을 보유할 수 있다. 그런데, 맵을 생성하기 위해서 로봇은 다양한 센서들을 이용하여 맵을 작성할 수 있으며, 맵 내의 정보의 다양한 정보들을 일치시켜 저장하는 것이 필요하다.
그러나 센서들은 각각의 특성과 로봇이 이동하는 과정에서 발생하는 오차가 있으므로 이를 반영하여 맵을 생성하는 기술이 필요하다.
본 명세서에서는 전술한 문제점을 해결하기 위한 것으로, 로봇이 다양한 센서를 이용하여 공간에 대한 이종의 맵을 생성하고자 한다.
또한, 본 명세서에서는 다양한 센서를 이용하여 공간에서의 로봇의 위치를 식별하는 퓨전-슬램(Fusion SLAM)을 구현하고자 한다.
또한, 본 명세서에서는 로봇이 한 종류의 센서만을 이용할 수 있도록 이종의 맵을 분리하여 제공하고자 한다.
본 발명의 목적들은 이상에서 언급한 목적으로 제한되지 않으며, 언급되지 않은 본 발명의 다른 목적 및 장점들은 하기의 설명에 의해서 이해될 수 있고, 본 발명의 실시예에 의해 보다 분명하게 이해될 것이다. 또한, 본 발명의 목적 및 장점들은 특허 청구 범위에 나타낸 수단 및 그 조합에 의해 실현될 수 있음을 쉽게 알 수 있을 것이다.
발명의 일 실시예에 의한 다중 센서 및 인공지능에 기반하여 맵을 생성하는 로봇은 상기 로봇의 외부에 배치된 사물과 로봇 사이의 거리를 센싱하여 라이다 프레임을 생성하는 라이다 센서와 상기 로봇의 외부에 배치된 사물을 촬영하여 비주얼 프레임을 생성하는 카메라 센서를 포함한다.
발명의 일 실시예에 의한 다중 센서 및 인공지능에 기반하여 맵을 생성하는 로봇은 하나 이상의 라이다 프레임을 포함하는 라이다 브랜치와 상기 하나 이상의 비주얼 프레임을 포함하는 비주얼 브랜치와 상기 라이다 프레임 또는 상기 비주얼 프레임 중 어느 하나 이상과 등록된 프레임 노드를 둘 이상 포함하는 백본으로 구성된 포즈 그래프를 생성하며, 상기 프레임 노드 사이를 상기 로봇이 이동하여 생성한 오도메트리 정보를 생성하는 제어부를 포함한다.
발명의 일 실시예에 의한 다중 센서 및 인공지능에 기반하여 맵을 생성하는 로봇은 상기 라이다 브랜치, 상기 비주얼 브랜치, 상기 백본, 상기 프레임 노드 사이의 오도메트리 정보 및 상기 포즈 그래프를 저장하는 맵 저장부를 포함한다.
발명의 일 실시예에 의한 다중 센서 및 인공지능에 기반하여 맵을 생성하는 로봇은 이전 프레임 노드와 현재 위치 사이의 거리 또는 각도에 기반하여 새로운 프레임 노드를 생성하며, 현재 위치에서 등록 가능한 상기 비주얼 프레임 또는 상기 라이다 프레임 중 어느 하나 이상을 상기 맵 저장부에서 검색하여 상기 생성한 새로운 프레임 노드에 등록시킨다.
발명의 일 실시예에 의한 다중 센서 및 인공지능에 기반하여 맵을 생성하는 로봇은 상기 포즈 그래프에서 상기 백본을 구성하는 프레임 노드에 등록된 라이다 프레임을 제거한 비주얼 전용 포즈 그래프를 생성한다.
발명의 일 실시예에 의한 다중 센서 및 인공지능에 기반하여 맵을 생성하는 로봇은 상기 포즈 그래프에서 상기 백본을 구성하는 프레임 노드에 등록된 비주얼 프레임을 제거한 라이다 전용 포즈 그래프를 생성한다.
발명의 일 실시예에 의한 다중 센서 및 인공지능에 기반하여 생성된 맵을 이용하여 주행하는 로봇은 상기 포즈 그래프의 프레임 노드에 등록된 프레임과 라이다 센서가 생성한 제1라이다 프레임 또는 카메라 센서가 생성한 제1비주얼 프레임을 비교하거나 또는 상기 오도메트리 정보를 이용하여 로봇의 현재 위치를 계산하는 제어부를 포함한다.
본 발명의 실시예들을 적용할 경우, 로봇이 다양한 센서를 이용하여 공간에 대한 이종의 맵을 생성할 수 있다.
또한, 본 발명의 실시예들을 적용할 경우, 다양한 센서를 이용하여 공간에서 로봇이 퓨전-슬램(Fusion SLAM)을 수행할 수 있다.
또한, 본 발명의 실시예들을 적용할 경우, 다양한 센서들로 구성된 맵에서 일부 맵을 추출하여 로봇에 적합하게 SLAM을 수행할 수 있다.
본 발명의 효과는 전술한 효과에 한정되지 않으며, 본 발명의 당업자들은 본 발명의 구성에서 본 발명의 다양한 효과를 쉽게 도출할 수 있다.
도 1은 본 발명의 일 실시예에 의한 로봇의 외관을 보여준다.
도 2는 본 발명의 일 실시예에 의한 로봇의 제어모듈의 구성 요소를 보여준다.
도 3은 로봇이 공간에서 이동하는 과정을 보여준다.
도 4는 본 발명의 일 실시예에 의한 맵의 다중 구조를 보여준다.
도 5는 본 발명의 일 실시예에 의한 초기 매핑 과정을 보여준다.
도 6은 본 발명의 일 실시예에 의한 비주얼 키프레임을 생성하는 과정을 보여준다.
도 7은 본 발명의 일 실시예에 의한 라이다 키 프레임을 생성하는 과정을 보여준다.
도 8은 본 발명의 일 실시예에 의한 백본의 프레임 노드를 등록하는 과정을 보여준다.
도 9는 본 발명의 일 실시예에 의한 포즈 그래프에서 라이다 프레임을 제거한 비주얼 전용 포즈 그래프를 보여준다.
도 10은 본 발명의 일 실시예에 의한 포즈 그래프에서 비주얼 프레임을 제거한 비주얼 전용 포즈 그래프를 보여준다.
도 11은 본 발명의 일 실시예에 의한 포즈 그래프를 일부 삭제하는 과정을 보여준다.
도 12는 본 발명의 이용하여 라이다 센서에 기반한 위치추정 과정을 보여준다.
도 13은 본 발명의 이용하여 카메라 센서에 기반한 위치추정 과정을 보여준다.
이하, 도면을 참조하여 본 발명의 실시예에 대하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다.
본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 동일 또는 유사한 구성요소에 대해서는 동일한 참조 부호를 붙이도록 한다. 또한, 본 발명의 일부 실시예들을 예시적인 도면을 참조하여 상세하게 설명한다. 각 도면의 구성요소들에 참조부호를 부가함에 있어서, 동일한 구성요소들에 대해서는 비록 다른 도면상에 표시되더라도 가능한 한 동일한 부호를 가질 수 있다. 또한, 본 발명을 설명함에 있어, 관련된 공지 구성 또는 기능에 대한 구체적인 설명이 본 발명의 요지를 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명은 생략할 수 있다.
본 발명의 구성 요소를 설명하는 데 있어서, 제 1, 제 2, A, B, (a), (b) 등의 용어를 사용할 수 있다. 이러한 용어는 그 구성 요소를 다른 구성 요소와 구별하기 위한 것일 뿐, 그 용어에 의해 해당 구성 요소의 본질, 차례, 순서 또는 개수 등이 한정되지 않는다. 어떤 구성 요소가 다른 구성요소에 "연결", "결합" 또는 "접속"된다고 기재된 경우, 그 구성 요소는 그 다른 구성요소에 직접적으로 연결되거나 또는 접속될 수 있지만, 각 구성 요소 사이에 다른 구성 요소가 "개재"되거나, 각 구성 요소가 다른 구성 요소를 통해 "연결", "결합" 또는 "접속"될 수도 있다고 이해되어야 할 것이다.
또한, 본 발명을 구현함에 있어서 설명의 편의를 위하여 구성요소를 세분화하여 설명할 수 있으나, 이들 구성요소가 하나의 장치 또는 모듈 내에 구현될 수도 있고, 혹은 하나의 구성요소가 다수의 장치 또는 모듈들에 나뉘어져서 구현될 수도 있다.
이하, 본 명세서에서 로봇은 특정한 목적(청소, 보안, 모니터링, 안내 등)을 가지거나 혹은 로봇이 이동하는 공간의 특성에 따른 기능을 제공하며 이동하는 장치를 포함한다. 따라서, 본 명세서에서의 로봇은 소정의 정보와 센서를 이용하여 이동할 수 있는 이동수단을 보유하며 소정의 기능을 제공하는 장치를 통칭한다.
본 명세서에서 로봇은 맵을 보유하면서 이동할 수 있다. 맵은 공간에서 이동하지 않는 것으로 확인된 고정된 벽, 계단 등 고정 객체에 대한 정보를 의미한다. 또한, 주기적으로 배치되는 이동 장애물, 즉 동적인 객체들에 대한 정보도 맵 상에 저장될 수 있다.
일 실시예로 로봇의 진행 방향을 기준으로 일정한 범위 내에 배치된 장애물들에 대한 정보도 맵 상에 저장될 수 있다. 이 경우, 전술한 고정 객체가 저장되는 맵과 달리 임시적으로 장애물들의 정보가 맵에 등록되고 이후 로봇이 이동한 후 맵에서 제거될 수 있다.
또한, 본 명세서에서 로봇은 다양한 센서들을 이용하여 외부의 동적 객체를 확인할 수 있다. 외부의 동적 객체를 확인하면, 보행자로 붐비는 환경에서 로봇이 목적지까지 주행할 때, 목적지까지 거쳐가야 하는 경유 지점(Waypoint)의 장애물에 의한 점유 상황을 확인할 수 있다.
또한 로봇은 경유 지점의 방향 변경 정도에 따라 유연하게 경유 지점을 도착한 것으로 판단하고 다음 경유 지점으로 넘어 가도록 하여 목적지까지 성공적으로 주행할 수 있다.
도 1은 본 발명의 일 실시예에 의한 로봇의 외관을 보여준다. 도 1은 예시적인 외관에 해당하며, 도 1의 외관 외에도 다양한 외관으로 본 발명의 로봇을 구현할 수 있다. 특히, 각각의 구성요소는 로봇의 형상에 따라 상하좌우 전후 등에서 다른 위치에 배치될 수 있다.
본체(10)는 상하 방향으로 길이가 길게 형성되며, 전체적으로 하부에서 상부 방향으로 올라갈수록 슬림해지는 오뚝이 형상을 가질 수 있다.
본체(10)는 로봇(1)의 외관을 형성하는 케이스(30)를 포함할 수 있다. 케이스(30)는 상측에 배치되는 탑 커버(31), 탑 커버(31)의 하측에 배치되는 제1 미들 커버(32), 제1 미들 커버(32)의 하측에 배치되는 제2 미들 커버(33) 및 제2 미들 커버(33)의 하측에 배치되는 바텀 커버(34)를 포함할 수 있다. 여기서 제1 미들 커버(32)와 제2 미들 커버(33)는 하나의 미들 커버로 이루어질 수 있다.
탑 커버(31)는 로봇(1)의 최상단에 위치되며, 반구 또는 돔 형상을 가질 수 있다. 탑 커버(31)는 사용자로부터 명령을 용이하게 입력 받기 위하여 성인의 키보다 낮은 높이에 위치될 수 있다. 그리고 탑 커버(31)는 소정각도 회전 가능하도록 구성될 수 있다.
한편, 로봇(1)은 그 내부에 제어모듈(150)을 더 포함할 수 있다. 제어모듈(150)은 일종의 컴퓨터 또는 프로세서와 같이 로봇(1)을 제어한다. 따라서 제어모듈(150)은 로봇(1)내에 배치되어 메인 프로세서와 유사한 기능을 수행하며, 사용자와의 인터랙션(interaction)을 담당할 수 있다.
로봇의 이동과 주변의 사물을 감지하여 로봇을 제어하기 위해 제어모듈(150)이 로봇(1) 내부에 탑재된다. 로봇제어모듈(150)은 소프트웨어 모듈 또는 이를 하드웨어로 구현한 칩 등으로 구현 가능하다.
탑 커버(31)는 전면 일측에 사용자로부터 명령을 입력받거나 정보를 출력하는 디스플레이부(31a)과 카메라(31b), 마이크(31c)를 일 실시예로 하는 센서가 배치될 수 있다.
또한, 탑 커버(31)의 디스플레이부(31a) 외에도 미들 커버(32)의 일측에도 디스플레이부(20)가 배치된다.
로봇의 기능에 따라 두 개의 디스플레이부(31a, 20) 모두 정보를 출력하거나 혹은 어느 한쪽에서만 정보가 출력될 수 있다.
한편, 로봇(1)의 일측면 또는 하단부 전체에는 35a, 35b와 같이 다양한 장애물 센서(도 2의 220)들이 배치된다. 장애물 센서들은 TOF(Time of Flight) 센서, 초음파 센서, 적외선 센서, 뎁스 센서, 레이저 센서, 라이다 센서 등을 일 실시예로 한다. 센서들은 다양한 방식으로 로봇(1) 외부의 장애물을 감지한다.
또한, 도 1의 로봇은 하단부에 로봇을 이동시키는 구성요소인 이동부를 더 포함한다. 이동부는 일종의 바퀴와 같이 로봇을 이동시키는 구성요소이다.
도 1의 로봇의 형상은 예시적이며, 본 발명이 이에 한정되는 것은 아니다. 또한, 로봇의 다양한 카메라들과 센서들 역시 로봇(1)의 다양한 위치에 배치될 수 있다. 도 1의 로봇은 사용자에게 정보를 안내하고 특정 지점까지 이동하여 사용자를 안내하는 안내 로봇을 일 실시예로 한다.
이외에도 청소, 보안 또는 기능을 제공하는 로봇 역시 도 1의 로봇의 범위에 포함된다. 다양한 기능을 제공할 수 있으나, 본 명세서에서는 설명의 편의를 위해 안내 로봇을 중심으로 설명한다.
도 1를 일 실시예로 하는 로봇이 서비스 공간 내에 다수 배치된 상태에서 로봇이 특정한 기능(안내, 청소, 보안 등)을 수행한다. 이 과정에서 로봇(1)은 자신의 위치를 저장하며, 로봇(1)은 전체 공간에서 자신의 현재 위치를 확인하고, 목표 지점으로 이동하는데 필요한 경로를 생성할 수 있다.
도 2는 본 발명의 일 실시예에 의한 로봇의 제어모듈의 구성 요소를 보여준다.
라이다 센서(LiDAR Sensor)(220)는 2차원 또는 3차원으로 주변의 사물들을 센싱할 수 있다. 2차원 라이다 센서의 경우 로봇을 중심으로 360도 범위의 사물의 위치를 센싱할 수 있다. 특정 위치에서 센싱한 라이다 정보는 하나의 라이다 프레임을 구성할 수 있다. 즉, 라이다 센서(220)는 로봇의 외부에 배치된 사물과 로봇 사이의 거리를 센싱하여 라이다 프레임을 생성한다.
카메라 센서(230)는 일반 카메라를 일 실시예로 한다. 시야각의 제약을 해결하기 위해 둘 이상의 카메라 센서(230)를 사용할 수 있다. 특정 위치에서 촬영한 영상은 비전 정보를 구성한다. 즉, 카메라 센서(230)는 로봇의 외부에 배치된 사물을 촬영하여 비전 정보를 포함하는 비주얼 프레임을 생성한다.
이하 본 발명을 적용하는 로봇(1)은 라이다 센서(220)와 카메라 센서(230)를 이용한 퓨젼-SLAM(Fusion-simultaneous localization and mapping)을 수행한다.
퓨전 SLAM은 라이다 정보와 비전 정보를 결합하여 사용할 수도 있다. 이들 라이다 정보와 비전 정보는 맵으로 구성할 수 있다.
로봇이 퓨전 SLAM을 사용할 경우, 하나의 센서만을 사용하는 방식(LiDAR-only SLAM, visual-only SLAM)와 비교하여 위치 추정의 정확도가 높다. 즉, 라이다 정보와 비전 정보를 결합하여 퓨전 SLAM을 수행하면 맵 품질(map quality) 측면에서 더 좋은 맵을 획득할 수 있다.
여기서, 맵 품질이란 비전 정보들로 구성된 비전 맵(vision map)과 라이다 정보로 구성된 라이다 맵(lidar map) 양쪽에 모두 해당하는 기준이다. 퓨전 SLAM 시 각각의 맵 품질이 좋아지는데 이는 각각의 센서가 획득하지 못하거나 부족한 정보를 센서들이 서로 이용할 수 있기 때문이다.
또한, 하나의 맵에서 라이다 정보 또는 비전 정보만을 추출하여 사용할 수 있다. 예를 들어, 로봇이 보유하는 메모리의 양이나 연산 프로세서의 연산 능력 등에 적합하게 라이다 정보만을 이용하거나, 비전 정보만을 이용하거나 또는 두 정보 모두를 로봇의 위치 추정(localization)에 적용할 수 있다.
인터페이스부(290)는 사용자로부터 정보를 입력받는다. 터치 입력, 음성 입력 등 다양한 정보를 사용자로부터 입력받고, 이에 대한 결과를 출력한다. 또한 인터페이스부(290)는 로봇(1)이 저장하는 맵을 출력하거나, 로봇이 이동하는 과정을 맵과 오버랩 하여 출력할 수 있다.
또한, 인터페이스부(290)는 사용자에게 소정의 정보를 제공할 수 있다.
제어부(250)는 후술할 도 4와 같은 맵을 생성하고 이 맵을 기반으로 로봇이 이동하는 과정에서 로봇의 위치를 추정한다.
통신부(280)는 로봇(1)이 다른 로봇 또는 외부의 서버와 통신하여 정보를 송수신할 수 있도록 한다.
로봇(1)은 각각의 센서들(라이다 센서, 카메라 센서)을 이용하여 각각의 맵을 생성할 수 있다. 또는 로봇(1)은 이들 센서들을 이용하여 하나의 맵을 만든 후 맵에서 다시 이들로부터 특정 센서에 해당하는 내용만을 추출하는 맵을 생성할 수 있다.
또한, 본 발명의 맵은 바퀴의 회전에 기반한 오도메트리(odometry) 정보를 포함할 수 있다. 오도메트리 정보는 로봇의 바퀴 회전 횟수나 양 바퀴의 회전 횟수의 차이 등을 이용하여 로봇이 이동한 거리를 산출한 정보이다. 센서들을 이용한 정보 외에도 오도메트리 정보를 이용하여 로봇이 어디까지 이동했는지 로봇이 계산할 수 있다.
도 2의 제어부(250)는 인공지능 작업 및 처리를 위한 인공지능부(255)를 더 포함할 수 있다.
로봇의 라이다 센서(220) 및 카메라 센서(230)는 외부의 물체를 식별하기 위해 로봇(1)의 외부에 다수 배치할 수 있다.
도 2에 제시된 라이다 센서(220) 및 카메라 센서(230) 외에도 로봇(1)의 외부에는 다양한 종류의 센서들(라이다 센서, 적외선 센서, 초음파 센서, 뎁스 센서, 이미지 센서, 마이크 등)이 배치된다. 제어부(250)는 센서들이 센싱한 정보를 취합 및 처리한다.
인공지능부(255)는 라이다 센서(220) 및 카메라 센서(230), 그리고 그 외의 센서들이 처리한 정보 또는 로봇(1)이 이동 과정에서 누적 저장한 정보 등을 입력하여 제어부(250)가 외부 상황을 판단하거나, 정보를 처리하거나, 이동 경로를 생성하는데 필요한 결과물을 출력할 수 있다.
일 실시예로, 로봇(1)은 로봇이 이동하는 공간에 배치된 다양한 사물들의 위치 정보를 맵으로 저장할 수 있다. 사물들은 벽, 문 등의 고정 사물들과 화분, 책상 등 이동 가능한 사물들을 포함한다. 인공지능부(255)는 맵 정보와 라이다 센서(220) 및 카메라 센서(230), 그리고 그 외의 센서들이 제공하는 정보들을 이용하여 로봇이 이동할 경로, 혹은 로봇이 작업시 커버해야 할 범위 등에 대한 데이터를 출력할 수 있다.
또한 인공지능부(255)는 라이다 센서(220) 및 카메라 센서(230), 그리고 그 외의 센서들이 제공하는 정보들을 이용하여 로봇 주변에 배치된 사물을 인식할 수 있다. 인공지능부(255)는 이미지를 입력받아 이미지에 관한 메타 정보를 출력할 수 있다. 메타 정보란 이미지 내의 사물의 명칭, 사물과 로봇과의 거리, 사물의 종류, 사물이 맵 상에 위치하는지 여부 등을 포함한다.
라이다 센서(220) 및 카메라 센서(230), 그리고 그 외의 센서들이 제공하는 정보는 인공지능부(255)의 딥러닝 네트워크의 입력 노드로 입력된 후, 인공지능부(255)의 딥러닝 네트워크의 히든 레이어의 정보 처리를 통해 인공지능부(255)의 출력 노드에서 결과가 출력된다.
제어부(250)는 인공지능부(255)가 산출한 데이터 또는 다양한 센서들이 처리한 데이터를 이용하여 로봇의 이동 경로를 산출할 수 있다.
도 3은 로봇이 공간에서 이동하는 과정을 보여준다. 공간(40) 내에서 로봇은 41이 지시하는 선을 따라 이동하며 라이다 센서(220)를 이용하여 특정 지점에서 라이다 센서가 센싱한 정보를 맵 저장부(210)에 저장할 수 있다. 공간(40)의 기초 형상은 로컬 맵(local map)으로 저장될 수 있다.
마찬가지로 로봇은 공간(40)을 이동하면서 카메라 센서(230)를 이용하여 특정 지점에서 카메라 센서가 센싱한 정보를 맵 저장부(210)에 저장할 수 있다.
도 4는 본 발명의 일 실시예에 의한 맵의 다중 구조를 보여준다. 도 4는 백본(backbone)을 제1레이어(first layer)로 하며 라이다 브랜치(LiDAR branch) 및 비주얼 브랜치(Visual branch)를 각각 제2레이어(second layer)로 하는 2중층의 구성을 보여준다. 도 4와 같은 구조를 구조적으로 탄력적인 포즈 그래프 기반 슬램(structurally elastic pose graph-based SLAM)이라 명명한다.
백본은 로봇의 궤적(trajectory)을 추적한 정보이다. 또한 백본은 궤적에 대응하는 하나 이상의 프레임 노드들을 포함한다. 그리고 이들 프레임 노드들은 다른 프레임 노드와의 관계에서 제약 정보(constraint)를 더 포함한다. 노드 사이의 에지는 제약 정보를 나타낸다. 에지는 오도메트리 제약 정보(odometry constraint) 또는 루프 제약 정보(loop constraint)를 의미한다.
또한, 제2레이어의 라이다 브랜치는 라이다 프레임(LiDAR Frame)들로 구성된다. 라이드 프레임은 로봇의 이동 과정에서 센싱한 라이다 센싱 값을 포함한다. 이들 라이다 프레임들 중에서 적어도 하나 이상은 라이다 키프레임(LiDAR Keyframe)으로 설정된다.
라이다 키프레임은 백본의 노드와 대응관계를 가진다. 도 4에서 백본의 노드들 v1 내지 v5 중에서 v1, v2, v4, v5가 라이다 키프레임을 지시한다.
마찬가지로, 제2레이어의 비주얼 브랜치는 비주얼 키 프레임(Visual Keyframe)들로 구성된다. 비주얼 키프레임은 로봇의 이동 과정에서 센싱한 카메라 센싱 값(즉, 카메라로 촬영한 영상)인 비주얼 피쳐 노드(visual feature node)들을 하나 이상 지시한다. 로봇에 배치된 카메라 센서의 수에 따라 로봇은 다수의 비주얼 피쳐 노드를 생성할 수 있다.
즉, 도 4의 맵 구조에서는 백본의 프레임 노드에 라이다 키프레임이 연결되거나 또는 비주얼 키프레임이 연결되는 구성이다. 물론 라이다/비주얼 키프레임 모두 하나의 프레임 노드에 연결될 수 있다(v1, v4, v5).
각 프레임 노드와 연결된 라이다 또는 비주얼 키프레임의 로봇의 포즈는 같다. 다만, 라이다 센서 또는 카메라 센서가 로봇에 부착된 위치에 따라 외부 파라미터(extrinsic parameter)가 키프레임 별로 추가될 수 있다. 외부 파라미터란 로봇 중심으로부터의 센서가 부착된 상대적인 위치 정보를 의미한다.
비주얼 키프레임은 백본의 노드와 대응관계를 가진다. 도 4에서 백본의 노드들 v1 내지 v5 중에서 v1, v3, v4, v5가 비주얼 키프레임을 지시한다. 도 2에서 비주얼 피쳐 노드(비주얼 프레임)들은 두 개가 한 쌍으로 구성되는데, 이는 로봇(1)이 두 개의 카메라 센서(230)를 포함하여 영상을 촬영함을 의미한다. 카메라 센서(230)의 증감에 따라 각각의 위치에서 비주얼 피쳐 노드의 수 역시 증감한다.
제1레이어의 백본을 구성하는 노드들(v1~v5) 사이에는 에지(edge)가 표시되어 있다. e12, e23, e34, e45는 인접 노드들 사이의 에지이며, e13, e35, e25는 인접하지 않은 노드들 사이의 에지이다.
오도메트리 제약 정보 또는 줄여서 오도메트리 정보는 e12, e23, e34, e45와 같이 인접한 프레임 노드 사이의 제약 조건을 의미한다. 루프 제약 정보 또는 줄여서 루프 정보는 e13, e25, e35와 같이 인접하지 않은 프레임 사이의 제약 조건을 의미한다.
백본은 다수의 키프레임들로 구성된다. 다수의 키프레임을 백본으로 추가하기 위해 제어부(250)는 초기 매핑 과정(initial mapping process)를 수행할 수 있다. 초기 매핑은 키프레임 기반으로 라이다 키프레임과 비주얼 키프레임을 추가한다.
도 4의 구조를 정리하면 다음과 같다. 라이다 브랜치는 하나 이상의 라이다 프레임을 포함한다. 비주얼 브랜치는 하나 이상의 비주얼 프레임을 포함한다.
그리고 백본은 라이다 프레임 또는 비주얼 프레임 중 어느 하나 이상과 등록된 프레임 노드를 둘 이상 포함한다. 이때, 프레임 노드에 등록되는 라이다 프레임 또는 비주얼 프레임을 키프레임이라 지칭한다. 그리고 포즈 그래프는 이들 라이다 브랜치, 비주얼 브랜치, 백본을 포함한다.
뿐만 아니라, 포즈 그래프는 프레임 노드 사이의 오도메트리 정보 및 루프 정보 등을 포함한다. 오도메트리 정보는 로봇이 프레임 노드 사이를 이동하여 생성한 휠의 회전이나 방향 등을 포함한다. 루프 정보는 라이다 센서(220)의 최대 센싱 거리 내에서 특정한 프레임 노드를 중심으로 비주얼 키프레임 사이에 특정한 제약 조건으로 연결된 프레임 노드 셋에 기반한다.
도 4의 포즈 그래프는 제어부(250)가 생성한다. 제어부(250)는 라이다 브랜치, 비주얼 브랜치, 백본, 프레임 노드 사이의 오도메트리 정보 및 이를 포함하는 포즈 그래프를 맵 저장부(210)에 저장한다.
도 5는 본 발명의 일 실시예에 의한 초기 매핑 과정을 보여준다. 로봇은 로컬 공간을 주행하여 도 4의 라이다 프레임, 비주얼 피쳐 노드(비주얼 프레임)를 확보한 상태이다. 또는 로봇은 로컬 공간을 주행하며 실시간으로 도 4의 라이다 프레임, 비주얼 피쳐 노드를 확보하며 동시에 도 5의 프로세스를 수행할 수 있다.
먼저 제어부(250)는 제1레이어의 백본을 구성하는 프레임 노드를 생성한다(S45). 프레임 노드는 노드 간의 일정한 거리와 각도를 기반으로 한다. 또한, 해당 위치에서 라이다 정보(라이다 프레임) 또는 비전 정보(비주얼 프레임) 중 어느 하나라도 존재할 경우 프레임 노드를 생성한다.
또한, 특정한 목적지(약국, 안내데스크 등)를 생성하기 위해 추가로 노드를 생성할 수 있다. 이는 사용자가 미리 셋팅한 경우 또는 프레임 노드 생성 과정에서 해당 위치를 노드로 미리 지정한 경우에 가능하다.
프레임 노드의 생성에서 노드 간의 거리와 각도를 반영하는 것은 로봇이 정지한 경우에 중복된 노드가 생성되는 것을 방지한다.
다음으로 비주얼 키프레임을 등록하는 과정(S46)은 기존의 프레임과의 각도와 로봇이 이루는 각도 차이가 클 경우에 등록한다. 이 역시 중복된 키프레임이 생성되는 것을 방지하기 위함이다.
또한 제어부(250)는 촬영된 영상에서 특징점 개수를 계산하여 해당 영상을 비주얼 키프레임으로 등록할 정도로 영상이 제공하는 정보가 많은 지를 확인한다. 만약 영상 전체가 동일한 색상이거나(벽의 경우) 사람들이 촬영된 경우(특징점 없음)에는 제어부(250)는 비주얼 키프레임으로 등록하지 않는다.
또한 라이다 키프레임을 등록하는 과정은 로봇이 이동하면서 센싱한 라이다 정보에서 서로 중첩되는 영역이 줄어들면 키프레임을 생성한다. 근접한 거리 내에서는 라이다 정보들이 동일할 수 있다. 따라서 일정한 거리 차이가 있어서 라이다 정보들이 상이할 경우에만 키프레임으로 등록한다.
S45 내지 S47은 로봇이 이동하면서 실시간으로 라이다 정보와 비전 정보를 취합하여 실시간으로 제어부(250)가 백본의 프레임 노드 및 비주얼 키프레임, 라이다 키프레임을 등록할 수 있다.
또는 로봇이 1차적으로 이동하면서 미리 라이다 정보와 비전 정보를 취합 및 저장한 후, 제어부(250)가 백본의 프레임 노드 및 비주얼 키프레임, 라이다 키프레임을 등록할 수 있다.
또한, 제어부(250)는 백본의 프레임 노드를 생성하며 각 노드들 사이의 오도메트리 제약 정보와 루프 제약 정보를 에지로 추가할 수 있다.
도 5를 정리하면 다음과 같다. 제어부(250)는 이전 프레임 노드와 현재 위치 사이의 거리 또는 각도에 기반하여 새로운 프레임 노드를 생성한다(S45). 그리고 제어부(250)는 현재 위치에서 등록 가능한 비주얼 프레임 또는 라이다 프레임 중 어느 하나 이상을 맵 저장부(210)에서 검색하여 S45에서 생성한 새로운 프레임 노드에 등록시킨다(S46, S47).
물론, 새로운 프레임 노드를 기준으로 비주얼 프레임/라이다 프레임이 전혀 없을 경우, 라이다 센서(220) 또는 카메라 센서(230)를 이용하여 제어부(250)는 새롭게 라이다 프레임/비주얼 프레임을 생성할 수도 있다.
도 6은 본 발명의 일 실시예에 의한 비주얼 키프레임을 생성하는 과정을 보여준다. 제어부(250)는 입력된 비전 정보들 중에서 SLAM에 적합한 비주얼 키프레임을 선택한다.
제어부(250)는 초기화를 수행한다(S51). 초기화는 제어부(250)가 이웃 노드들(Vneigbor)의 집합을 공집합(Ф)으로, 그리고 이웃 노드들의 수(nneighbor)를 0으로 설정하는 것을 의미한다.
그리고 제어부(250)는 후보 비주얼 키프레임(candidate visual keyframe, vv candidate)에 일정 거리 이내로 위치한 노드들 중에서 후보 영역의 최대 각도(Rmax) 이내에 위치한 노드들을 이웃 노드들(Vneigbor)로 포함시킨다(S52). 여기서 Rmax는 중첩된 비주얼 키프레임을 식별하는데 필요한 최대 검색 범위를 의미한다. 예를 들어, Rmax의 크기가 작으면 맵은 매우 밀집도가 높게 작성될 수 있다.
이웃 노드들의 집합이 셋팅되면, 비주얼 키프레임을 기준으로 θreg이하의 방향 차이를 가지는 이웃 노드가 있으며, 이들 이웃 노드들과의 에지가 포즈 그래프(pose graph)와 일치한다면 이는 위치추정에 중요한 키프레임으로 판단할 수 있다(S53).
다음 단계로, 후보 비주얼 키프레임이 충분히 3D 포인트를 가지고 있는지 확인한다. 만약, 충분히 3D 포인트를 보유한다면, 이러한 후보 비주얼 키프레임은 키프레임으로 도 4의 백본을 포함하는 포즈 그래프에 추가될 수 있다(S54).
3D 포인트에 대한 기준은 Nmin 3D _point은 키프레임으로 등록하기 위한 최소한의 3D 포인트를 의미한다.
도 6의 과정은 카메라 센서가 이미지를 취합하면 반복 실시할 수 있다. 도 6의 과정을 예시적인 유사코드(pseudo code)로 구현하면 다음과 같다. S51은 하기의 라인 1에 해당하며, S52는 하기 라인 2에 해당한다. S53은 하기 라인 3-8에 해당한다. S54는 하기 라인 9~14에 해당한다.
Figure PCTKR2019005305-appb-I000001
도 6을 정리하면, 프레임 노드에 등록될 수 있는 비주얼 키프레임은 비주얼 프레임들 중에서 선택된다. 제어부(250)는 다수의 비주얼 프레임들 중에서 인접한 비주얼 프레임들과 거리, 각도 및 비주얼 프레임 내의 특징점의 수에 따라 비주얼 키프레임을 선택한다.
그리고 도 4에 제시된 바와 같이 비주얼 브랜치는 다수의 비주얼 프레임 및 하나 이상의 비주얼 키프레임을 포함한다. 비주얼 키프레임은 비주얼 프레임들 중에서 선택된 비주얼 프레임이다.
도 7은 본 발명의 일 실시예에 의한 라이다 키 프레임을 생성하는 과정을 보여준다.
제어부(250)는 이동하는 과정에서 특정 위치의 라이다 프레임을 생성할 수 있다. 그리고 첫번째 라이다 프레임을 라이다 키프레임으로 등록(S56)하고 로봇(1)의 이동 과정에서 새로운 라이다 프레임을 생성한다(S57). 제어부(250)는 새로운 라이다 프레임을 선택한다(S58).
제어부(250)는 선택한 라이다 프레임과 이전에 등록된 키프레임을 비교하여 오버랩하는 크기가 일정 기준 이하인 경우에 키프레임으로 등록한다(S59). S57 내지 S59는 로봇이 이동하는 과정에서 반복될 수 있다.
도 7의 과정을 적용하면 라이다 프레임들 중에서 이전 공간과 변화의 크기가 큰 라이다 프레임이 키프레임으로 등록될 수 있다.
도 7을 정리하면 다음과 같다. 제어부(250)는 다수의 라이다 프레임들 중에서 제1라이다 키프레임과 오버랩하는 크기에 따라 제2라이다 키프레임을 선택한다. 제1라이다 키프레임은 이미 키프레임으로 선택된 키프레임이며, 제2라이다 키프레임은 새롭게 선택된 키프레임이다.
도 4에 제시된 바와 같이 라이다 브랜치는 다수의 라이다 프레임 및 하나 이상의 라이다 키프레임을 포함한다. 라이다 키프레임은 다수의 라이다 프레임 중 선택된 라이다 프레임이다.
도 6 및 도 7의 비주얼 키프레임의 생성과 라이다 키프레임의 생성은 독립적으로 이루어질 수 있다.
도 6 및 도 7과 같이 생성된 키프레임들 중에서 제어부(250)는 백본의 프레임 노드로 등록한다.
도 8은 본 발명의 일 실시예에 의한 백본의 프레임 노드를 등록하는 과정을 보여준다.
본 발명의 일 실시예에 의한 제어부(250)는 앞서 도 6 및 도 7의 과정에서 살펴본 비주얼 키프레임 및 라이다 키프레임들이 생성된 이후 프레임 노드를 생성할 수 있다. 또는 제어부(250)는 사용자들이 특정하게 지시한 위치에서 별도의 비주얼 키프레임과 라이다 키프레임을 생성하고 해당 위치에서 프레임 노드를 생성하여 프레임 노드와 비주얼 키프레임/라이다 키프레임을 등록할 수 있다.
보다 상세히, 사용자의 수동 등록 상태인 경우(S61), 사용자가 POI(Point of Interest)를 입력하는 모드로 전환한다.
즉, 인터페이스부(290)가 프레임 노드의 추가를 입력받을 수 있다. 프레임 노드의 추가와 함께 현재 위치에 대한 메타데이터(meta data)를 입력 받을 수 있다.
사용자의 입력에 대응하여 제어부(250)는 현재 위치에서 프레임 노드를 생성하고 생성한 프레임 노드에 등록 가능한 비주얼 프레임 또는 라이다 프레임을 검색하여 상기 프레임 노드에 등록시킨다. 또는 제어부(250)가 라이다 센서(220) 또는 카메라 센서(230)를 제어하여 새로운 비주얼 프레임/라이다 프레임을 생성하여 생성된 프레임들을 프레임 노드에 등록시킬 수 있다.
제어부(250)는 현재 로봇(1)의 위치에서 카메라 센서(230)를 제어하여 비전 정보를 생성하고 라이다 센서(220)를 제어하여 라이다 정보를 생성한다.
그리고 제어부(250)는 생성된 비전 정보를 이용하여 비주얼 키프레임을 생성하고, 생성된 라이다 정보를 이용하여 라이다 키프레임을 생성한다(S62). 이후 제어부(250)는 해당 위치에서 프레임 노드를 생성하고(S63), 생성한 프레임 노드에 비주얼 키프레임 및 라이다 키프레임을 등록(혹은 결합, associate)시킨다(S64).
S61에서 사용자의 수동 등록 상태가 아닌 경우, 제어부(250)는 이전 프레임 노드(vf previous)와 로봇의 현재 위치(pcurrent)간의 차이에 기반하여 현재 위치를 프레임 노드로 생성할 것인지를 판단한다(S65).
예를 들어, 제어부(250)는 이전 프레임 노드와 새로운 프레임 노드 사이에서 최소한 만족시켜야 하는 거리(Tdist)와 각도(Tangle)라는 기준을 이용한다.
보다 상세히, 제어부(250)는 이전 프레임 노드의 위치(p(vf previous))와 현재 로봇의 위치(pcurrent)의 차이가 Tdist 보다 크거나 또는 이전 프레임 노드의 위치(p(vf previous))와 현재 로봇의 위치(pcurrent) 사이의 각도가 Tangle 보다 큰지 확인한다. 그리고 S65의 조건을 충족할 경우, 제어부(250)는 해당 위치에서 등록 가능한 비주얼 키프레임 또는 라이다 키프레임이 존재할 경우(S66). 프레임 노드를 생성한다(S67).
그리고 프레임 노드가 생성되면 해당 위치에서 등록 가능한 비주얼 키프레임과 라이다 키프레임을 프레임 노드에 등록한다(S68). 제어부(250)는 비주얼 키프레임만 프레임 노드에 등록할 수 있다. 또는 제어부(250)는 라이다 키프레임만 프레임 노드에 등록할 수 있다, 혹은 제어부(250)는 비주얼 키프레임/라이다 키프레임 모두 프레임 노드에 등록할 수 있다.
도 8의 과정은 로봇이 이동하는 과정에서 반복 실시할 수 있다. 도 8의 과정을 예시적인 유사코드(pseudo code)로 구현하면 다음과 같다. S61은 하기의 라인 1에 해당하며, S62~S64는 하기 라인 2~4에 해당한다. S65~S68은 하기 라인 5-18에 해당한다. 보다 상세히, S65는 라인 5~6에, S66은 라인 7에 S67은 라인 8에 해당한다. S68은 라인 12 내지 17에 해당한다.
Figure PCTKR2019005305-appb-I000002
전술한 과정을 적용하면 로봇(1)은 두 종류의 맵(비전 맵, 라이다 맵)을 각각 생성하고 이들을 백본을 중심으로 조합할 수 있다. 또는 이미 하나의 통합된 백본을 포함한 포즈 그래프에서 필요한 맵(비전 맵 또는 라이다 맵)을 추출하여 로봇(1)의 SLAM에 적용할 수 있다. 이는 로봇(1)이 어느 하나의 센서만 장착하였거나(220 또는 230) 어느 하나의 센서를 중심으로 SLAM을 수행할 경우 적용가능하다.
따라서, 전술한 맵 생성은 라이다 센서(220) 및 카메라 센서(230)를 모두 포함하는 로봇(1)이 두 종류의 맵(비전 맵과 라이다 맵)을 생성하여 이들 사이의 키프레임들을 이용하여 백본을 포함한 포즈 그래프를 생성한다.
이후 라이다 센서(220)만을 장착한 로봇에게는 라이다 맵을 설치하고, 카메라 센서(230)만을 장착한 로봇에게는 비전 맵을 설치하여 각각의 상이한 센서를 가진 로봇들이 위치 추정을 수행할 수 있도록 한다. 물론 맵의 특징에 따라 로봇이 사용할 수 있는 위치추정 시나리오는 다양하게 적용될 수 있다.
도 9는 본 발명의 일 실시예에 의한 포즈 그래프에서 라이다 프레임을 제거한 비주얼 전용 포즈 그래프를 보여준다. 프레임 노드와 오도메트리 정보, 그리고 비주얼 프레임 및 비주얼 키프레임이 G_Visual이라는 포즈 그래프를 구성한다.
도 10은 본 발명의 일 실시예에 의한 포즈 그래프에서 비주얼 프레임을 제거한 비주얼 전용 포즈 그래프를 보여준다. 프레임 노드와 오도메트리 정보, 그리고 라이다 프레임 및 라이다 키프레임이 G_LiDAR 라는 포즈 그래프를 구성한다.
도 11은 본 발명의 일 실시예에 의한 포즈 그래프를 일부 삭제하는 과정을 보여준다.
제어부(250)는 프레임 노드를 포함하는 포즈 그래프를 메모리에 로딩한다(S71). 그리고 비주얼 전용 포즈 그래프의 생성인지 아닌지에 따라 분기한다(S72). 비주얼 전용 포즈 그래프의 생성인 경우, 제어부(250)는 로딩한 포즈 그래프에서 백본을 구성하는 프레임 노드에 등록된 라이다 프레임을 제거한다(S73). 그리고 제어부(250)는 포즈 그래프에서 라이다 브랜치를 제거한 비주얼 전용 포즈 그래프를 생성한다(S74). 그 결과는 도 9와 같다.
라이다 센서(220)를 포함하지 않는 로봇의 SLAM 과정에서 제어부(250)가 도 9의 맵을 이용하여 로봇의 위치를 추정할 수 있따.
한편 S71에서 라이다 전용 포즈 그래프의 생성인 경우 제어부(250)는 포즈 그래프에서 백본을 구성하는 프레임 노드에 등록된 비주얼 프레임을 제거한다(S75). 그리고 제어부(250)는 포즈 그래프에서 비주얼 브랜치를 제거한 라이다 전용 포즈 그래프를 생성한다(S76). 그 결과는 도 10과 같다.
카메라 센서(230)를 포함하지 않는 로봇의 SLAM 과정에서 제어부(250)가 도 10의 맵을 이용하여 로봇의 위치를 추정할 수 있다.
도 12는 본 발명의 이용하여 라이다 센서에 기반한 위치추정 과정을 보여준다. 로봇은 카메라 센서를 더 포함할 수 있다.
라이다 센서(220)가 로봇의 외부에 배치된 사물과 로봇 사이의 거리를 센싱하여 제1라이다 프레임을 생성한다(S81). 그리고 제어부(250)는 맵 저장부(210)에 저장된 프레임 노드를 선택한다(S82). 프레임 노드의 선택은 이전에 확인된 프레임 노드를 기준으로 로봇이 이동한 오도메트리 정보를 이용할 수 있다.
제어부(250)는 생성한 제1라이다 프레임과 프레임 노드에 등록된 제2라이다 프레임을 비교한다(S83). 비교 결과에 따라 위치 추정이 가능할 경우(S84) 제어부(250)는 로봇의 현재 위치 추정을 수행한다(S86).
반면 S84에서 위치추정이 불가능한 경우, 제어부(250)는 맵 저장부(210)의 백본에서 새로운 프레임 노드를 검색하거나 혹은 카메라 센서(230)가 생성한 제1비주얼 프레임을 이용하여 위치 추정을 수행한다(S85).
맵 저장부(210)는 전술한 포즈 그래프를 저장한다. 맵 저장부(210)는 제1라이다 프레임과 비교 가능한 다수의 라이다 프레임들을 포함하는 라이다 브랜치를 저장한다. 또한 맵 저장부(210)는 제1비주얼 프레임과 비교 가능한 다수의 비주얼 프레임들을 포함하는 비주얼 브랜치를 저장한다.
맵 저장부(210)는 저장된 라이다 프레임 또는 저장된 비주얼 프레임 중 어느 하나 이상과 등록된 프레임 노드를 둘 이상 포함하는 백본으로 구성된 포즈 그래프를 저장한다. 또한 맵 저장부(210)는 프레임 노드 사이의 오도메트리 정보를 저장한다.
로봇이 제공하는 센서의 종류에 따라 맵저장부(210)는 라이다 브랜치를 제거한 포즈 그래프를 저장하거나(도 9), 또는 맵저장부(210)는 비주얼 브랜치를 제거한 포즈 그래프를 저장할 수 있다(도 10).
그리고 제어부(250)는 포즈 그래프의 프레임 노드에 등록된 프레임과 제1라이다 프레임 또는 상기 제1비주얼 프레임을 비교하여 위치를 추정할 수 있다. 또는 제어부(250)는 오도메트리 정보를 이용하여 로봇의 현재 위치를 계산할 수 있다.
특히, 라이다 센서로 위치 추정이 안될 경우 새로운 라이다 프레임을 추출한다. 예를 들어, 제어부(250) 백본에서 현재 위치에 대응하는 제1프레임 노드를 검색하여 상기 제1프레임 노드에 등록된 제2라이다 프레임을 추출한다.
그리고 제어부(250)는 제1라이다 프레임과 제2라이다 프레임을 비교한 결과 상기 두 프레임이 상이한 것으로 판단할 수 있다. 제어부(250)는 라이다 브랜치에서 제2라이다 프레임에 인접한 제3라이다 프레임을 추출하여 상기 제1라이다 프레임과 제3라이다 프레임을 비교하여 로봇의 현재 위치를 계산할 수 있다.
그럼에도 여전히 라이다 센서를 이용하여 위치 추정에 실패하면, 로봇은 비주얼 프레임을 사용할 수 있다. 즉, 제어부(250)는 제1라이다 프레임과 제3라이다 프레임을 비교한 결과 두 프레임이 상이한 경우, 제어부(250)는 제1프레임 노드에 등록된 제2비주얼 프레임을 추출한다.
그리고 제어부(250)는 제1비주얼 프레임과 제2비주얼 프레임을 비교하여 로봇의 현재 위치를 계산한다.
현재 확인된 프레임 노드를 기준으로 라이다 프레임 또는 비주얼 프레임을 이용한 위치 추정에 실패할 경우, 제어부(250)는 새로운 프레임 노드를 검색할 수 있다. 예를 들어, 도 4의 구성에서 v2로 판단하였으나 위치 추정에 실패한 경우 제어부(250)는 인접한 v1 또는 v3를 새로운 프레임 노드로 검색할 수 있다.
또는 제어부(250)는 현재 프레임 노드에 등록된 키프레임 외의 비주얼 프레임 또는 라이다 프레임을 맵 저장부(210)에서 추출하여 현재 위치에서 획득한 제1라이다 프레임/제1비주얼 프레임과 비교할 수 있다.
도 13은 본 발명의 이용하여 카메라 센서에 기반한 위치추정 과정을 보여준다. 로봇은 라이다 센서를 더 포함할 수 있다.
카메라 센서(230)가 로봇의 외부에 배치된 사물을 촬영하여 제1비주얼 프레임을 생성한다(S91).
그리고 제어부(250)는 맵 저장부(210)에 저장된 프레임 노드를 선택한다(S92). 프레임 노드의 선택은 이전에 확인된 프레임 노드를 기준으로 로봇이 이동한 오도메트리 정보를 이용할 수 있다.
제어부(250)는 생성한 제1비주얼 프레임과 프레임 노드에 등록된 제2비주얼 프레임을 비교한다(S93). 비교 결과에 따라 위치 추정이 가능할 경우(S94) 제어부(250)는 로봇의 현재 위치 추정을 수행한다(S96).
반면 S94에서 위치추정이 불가능한 경우, 제어부(250)는 맵 저장부(210)의 백본에서 새로운 프레임 노드를 검색하거나 혹은 라이다 센서(220)가 생성한 제1라이다 프레임을 이용하여 위치 추정을 수행한다(S95)
특히, 카메라 센서로 위치 추정이 안될 경우 새로운 비주얼 프레임을 추출한다. 예를 들어, 제어부(250) 백본에서 현재 위치에 대응하는 제1프레임 노드를 검색하여 상기 제1프레임 노드에 등록된 제2비주얼 프레임을 추출한다.
그리고 제어부(250)는 제1비주얼 프레임과 제2비주얼 프레임을 비교한 결과 상기 두 프레임이 상이한 것으로 판단할 수 있다. 제어부(250)는 비주얼 브랜치에서 제2비주얼 프레임에 인접한 제3비주얼 프레임을 추출하여 상기 제1비주얼 프레임과 제3비주얼 프레임을 비교하여 로봇의 현재 위치를 계산할 수 있다.
그럼에도 여전히 카메라 센서를 이용하여 위치 추정에 실패하면, 로봇은 라이다 프레임을 사용할 수 있다. 즉, 제어부(250)는 제1비주얼 프레임과 제3비주얼 프레임을 비교한 결과 두 프레임이 상이한 경우, 제어부(250)는 제1프레임 노드에 등록된 제2라이다 프레임을 추출한다.
그리고 제어부(250)는 제1라이다 프레임과 제2라이다 프레임을 비교하여 로봇의 현재 위치를 계산한다.
현재 확인된 프레임 노드를 기준으로 라이다 프레임 또는 비주얼 프레임을 이용한 위치 추정에 실패할 경우, 제어부(250)는 새로운 프레임 노드를 검색할 수 있다. 예를 들어, 도 4의 구성에서 v2로 판단하였으나 위치 추정에 실패한 경우 제어부(250)는 인접한 v1 또는 v3를 새로운 프레임 노드로 검색할 수 있다.
또는 제어부(250)는 현재 프레임 노드에 등록된 키프레임 외의 비주얼 프레임 또는 라이다 프레임을 맵 저장부(210)에서 추출하여 현재 위치에서 획득한 제1라이다 프레임/제1비주얼 프레임과 비교할 수 있다.
도 12 및 도 13에서 프레임 노드 중에 라이다 프레임 또는 비주얼 프레임이 등록되지 않았거나 위치 추정에 실패한 경우에, 제어부(250)는 로봇의 현재 위치를 처음 검색한 제1프레임 노드를 기준으로 추정한다.
그리고 제어부(250)는 로봇이 이동했던 경로 중 라이다 프레임 또는 비주얼 프레임이 등록된 제2프레임 노드을 추출하여 제2프레임 노드로부터 제1프레임 노드까지의 오도메트리 정보를 이용하여 로봇의 현재 위치를 계산할 수 있다.
전술한 실시예들을 적용할 경우, 제어부(250)는 비전 정보를 생성하는 카메라 센서와 라이다 정보를 생성하는 라이다 센서를 융합하여 하나의 맵을 생성할 수 있다. 그리고 제어부(250)는 이들 센서들이 센싱한 정보에 기반하여 도 4와 같이 맵을 생성할 수 있다. 또한 제어부(250)는 맵을 별도로 분리하여 비주얼 프레임에 기반한 맵, 라이다 프레임에 기반한 맵 등으로 분리할 수 있으며, 로봇(1)이 보유한 센서들의 종류에 따라 분리된 맵을 각각 독립적으로 사용하여 위치추정을 수행할 수 있다.
그 결과 서로 상이한 센서에 기반한 프레임 및 키프레임을 이용하여 고품질의 상호 호완적인 맵을 생성하여 위치 추정에 적용할 수 있다.
본 발명의 실시예를 구성하는 모든 구성 요소들이 하나로 결합되거나 결합되어 동작하는 것으로 설명되었다고 해서, 본 발명이 반드시 이러한 실시예에 한정되는 것은 아니며, 본 발명의 목적 범위 내에서 모든 구성 요소들이 하나 이상으로 선택적으로 결합하여 동작할 수도 있다. 또한, 그 모든 구성 요소들이 각각 하나의 독립적인 하드웨어로 구현될 수 있지만, 각 구성 요소들의 그 일부 또는 전부가 선택적으로 조합되어 하나 또는 복수 개의 하드웨어에서 조합된 일부 또는 전부의 기능을 수행하는 프로그램 모듈을 갖는 컴퓨터 프로그램으로서 구현될 수도 있다. 그 컴퓨터 프로그램을 구성하는 코드들 및 코드 세그먼트들은 본 발명의 기술 분야의 당업자에 의해 용이하게 추론될 수 있을 것이다. 이러한 컴퓨터 프로그램은 컴퓨터가 읽을 수 있는 저장매체(Computer Readable Media)에 저장되어 컴퓨터에 의하여 읽혀지고 실행됨으로써, 본 발명의 실시예를 구현할 수 있다. 컴퓨터 프로그램의 저장매체로서는 자기 기록매체, 광 기록매체, 반도체 기록소자를 포함하는 저장매체를 포함한다. 또한 본 발명의 실시예를 구현하는 컴퓨터 프로그램은 외부의 장치를 통하여 실시간으로 전송되는 프로그램 모듈을 포함한다.
이상에서는 본 발명의 실시예를 중심으로 설명하였지만, 통상의 기술자의 수준에서 다양한 변경이나 변형을 가할 수 있다. 따라서, 이러한 변경과 변형이 본 발명의 범위를 벗어나지 않는 한 본 발명의 범주 내에 포함되는 것으로 이해할 수 있을 것이다.

Claims (19)

  1. 로봇을 이동시키는 이동부;
    상기 로봇의 외부에 배치된 사물과 로봇 사이의 거리를 센싱하여 라이다 프레임을 생성하는 라이다 센서;
    상기 로봇의 외부에 배치된 사물을 촬영하여 비주얼 프레임을 생성하는 카메라 센서;
    상기 하나 이상의 라이다 프레임을 포함하는 라이다 브랜치와 상기 하나 이상의 비주얼 프레임을 포함하는 비주얼 브랜치와 상기 라이다 프레임 또는 상기 비주얼 프레임 중 어느 하나 이상과 등록된 프레임 노드를 둘 이상 포함하는 백본으로 구성된 포즈 그래프를 생성하며, 상기 프레임 노드 사이를 상기 로봇이 이동하여 생성한 오도메트리 정보를 생성하는 제어부; 및
    상기 라이다 브랜치, 상기 비주얼 브랜치, 상기 백본, 상기 프레임 노드 사이의 오도메트리 정보 및 상기 포즈 그래프를 저장하는 맵 저장부를 포함하는, 다중 센서 및 인공지능에 기반하여 맵을 생성하는 로봇.
  2. 제1항에 있어서,
    상기 제어부는 이전 프레임 노드와 현재 위치 사이의 거리 또는 각도에 기반하여 새로운 프레임 노드를 생성하며,
    상기 제어부는 현재 위치에서 등록 가능한 상기 비주얼 프레임 또는 상기 라이다 프레임 중 어느 하나 이상을 상기 맵 저장부에서 검색하여 상기 생성한 새로운 프레임 노드에 등록시키는, 다중 센서 및 인공지능에 기반하여 맵을 생성하는 로봇.
  3. 제1항에 있어서,
    상기 프레임 노드에 등록된 비주얼 프레임은
    상기 제어부가 다수의 비주얼 프레임들 중에서 인접한 비주얼 프레임들과 거리, 각도 및 비주얼 프레임 내의 특징점의 수에 따라 선택한 비주얼 키프레임이며,
    상기 비주얼 브랜치는 상기 다수의 비주얼 프레임 및 상기 비주얼 프레임 중 선택된 하나 이상의 비주얼 키프레임을 포함하는, 다중 센서 및 인공지능에 기반하여 맵을 생성하는 로봇.
  4. 제1항에 있어서,
    상기 프레임 노드에 등록된 라이다 프레임은
    상기 제어부가 다수의 라이다 프레임들 중에서 제1라이다 키프레임과 오버랩하는 크기에 따라 선택한 제2라이다 키프레임이며,
    상기 라이다 브랜치는 상기 다수의 라이다 프레임 및 상기 라이다 프레임 중 선택된 하나 이상의 라이다 키프레임을 포함하는, 다중 센서 및 인공지능에 기반하여 맵을 생성하는 로봇.
  5. 제1항에 있어서,
    로봇은 사용자로부터 정보를 입력받는 인터페이스부를 더 포함하며,
    상기 인터페이스부가 프레임 노드의 추가를 입력받으면,
    상기 제어부가 현재 위치에서 프레임 노드를 생성하고 상기 생성한 프레임 노드에 등록 가능한 비주얼 프레임 또는 라이다 프레임을 검색하여 상기 프레임 노드에 등록시키는, 다중 센서 및 인공지능에 기반하여 맵을 생성하는 로봇.
  6. 제1항에 있어서,
    상기 제어부는 상기 포즈 그래프에서 상기 백본을 구성하는 프레임 노드에 등록된 라이다 프레임을 제거한 비주얼 전용 포즈 그래프를 생성하는, 다중 센서 및 인공지능에 기반하여 맵을 생성하는 로봇.
  7. 제1항에 있어서,
    상기 제어부는 상기 포즈 그래프에서 상기 백본을 구성하는 프레임 노드에 등록된 비주얼 프레임을 제거한 라이다 전용 포즈 그래프를 생성하는, 다중 센서 및 인공지능에 기반하여 맵을 생성하는 로봇.
  8. 로봇을 이동시키는 이동부;
    상기 로봇의 외부에 배치된 사물과 로봇 사이의 거리를 센싱하여 제1라이다 프레임을 생성하는 라이다 센서;
    상기 로봇의 외부에 배치된 사물을 촬영하여 제1비주얼 프레임을 생성하는 카메라 센서;
    상기 제1라이다 프레임과 비교 가능한 다수의 라이다 프레임들을 포함하는 라이다 브랜치를 저장하고, 상기 제1비주얼 프레임과 비교 가능한 다수의 비주얼 프레임들을 포함하는 비주얼 브랜치를 저장하며, 상기 저장된 라이다 프레임 또는 상기 저장된 비주얼 프레임 중 어느 하나 이상과 등록된 프레임 노드를 둘 이상 포함하는 백본으로 구성된 포즈 그래프를 저장하며, 상기 프레임 노드 사이의 오도메트리 정보를 저장하는 맵 저장부;
    상기 포즈 그래프의 프레임 노드에 등록된 프레임과 상기 제1라이다 프레임 또는 상기 제1비주얼 프레임을 비교하거나 또는 상기 오도메트리 정보를 이용하여 로봇의 현재 위치를 계산하는 제어부를 포함하는, 다중 센서 및 인공지능에 기반하여 생성된 맵을 이용하여 주행하는 로봇.
  9. 제8항에 있어서,
    상기 제어부는 상기 백본에서 현재 위치에 대응하는 제1프레임 노드를 검색하여 상기 제1프레임 노드에 등록된 제2라이다 프레임을 추출하며,
    상기 제어부가 상기 제1라이다 프레임과 상기 제2라이다 프레임을 비교한 결과 상기 두 프레임이 상이한 경우, 상기 제어부는 상기 라이다 브랜치에서 상기 제2라이다 프레임에 인접한 제3라이다 프레임을 추출하여 상기 제1라이다 프레임과 상기 제3라이다 프레임을 비교하여 로봇의 현재 위치를 계산하는, 다중 센서 및 인공지능에 기반하여 생성된 맵을 이용하여 주행하는 로봇.
  10. 제9항에 있어서,
    상기 제어부는 상기 제1라이다 프레임과 상기 제3라이다 프레임을 비교한 결과 상기 두 프레임이 상이한 경우,
    상기 제어부는 상기 제1프레임 노드에 등록된 제2비주얼 프레임을 추출하며,
    상기 제어부가 상기 제1비주얼 프레임과 상기 제2비주얼 프레임을 비교하여 로봇의 현재 위치를 계산하는, 다중 센서 및 인공지능에 기반하여 생성된 맵을 이용하여 주행하는 로봇.
  11. 제8항에 있어서,
    상기 제어부는 상기 백본에서 현재 위치에 대응하는 제1프레임 노드를 검색하여 상기 제1프레임 노드에 등록된 제2비주얼 프레임을 추출하며,
    상기 제어부가 상기 제1비주얼 프레임과 상기 제2비주얼 프레임을 비교한 결과 상기 두 프레임이 상이한 경우, 상기 제어부는 상기 비주얼 브랜치에서 상기 제2비주얼 프레임에 인접한 제3비주얼 프레임을 추출하여 상기 제1비주얼 프레임과 상기 제3비주얼 프레임을 비교하여 로봇의 현재 위치를 계산하는, 다중 센서 및 인공지능에 기반하여 생성된 맵을 이용하여 주행하는 로봇.
  12. 제11항에 있어서,
    상기 제어부는 상기 제1비주얼 프레임과 상기 제3비주얼 프레임을 비교한 결과 상기 두 프레임이 상이한 경우,
    상기 제어부는 상기 제1프레임 노드에 등록된 제2라이다 프레임을 추출하며,
    상기 제어부가 상기 제1라이다 프레임과 상기 제2라이다 프레임을 비교하여 로봇의 현재 위치를 계산하는, 다중 센서 및 인공지능에 기반하여 생성된 맵을 이용하여 주행하는 로봇.
  13. 제9항에 있어서,
    상기 포즈 그래프를 구성하는 프레임 노드 중 제1프레임 노드는 라이다 프레임 또는 비주얼 프레임이 등록되지 않은 프레임 노드이며,
    상기 제어부는 상기 로봇의 현재 위치를 상기 제1프레임 노드를 기준으로 추정하며,
    상기 제어부는 로봇이 이동했던 경로 중 라이다 프레임 또는 비주얼 프레임이 등록된 제2프레임 노드을 추출하여 상기 제2프레임 노드로부터 상기 제1프레임 노드까지의 오도메트리 정보를 이용하여 상기 로봇의 현재 위치를 계산하는, 다중 센서 및 인공지능에 기반하여 생성된 맵을 이용하여 주행하는 로봇.
  14. 로봇을 이동시키는 이동부;
    상기 로봇의 외부에 배치된 사물과 로봇 사이의 거리를 센싱하여 제1라이다 프레임을 생성하는 라이다 센서;
    상기 제1라이다 프레임과 비교 가능한 다수의 라이다 프레임들을 포함하는 라이다 브랜치를 저장하고, 상기 저장된 라이다 프레임 중 어느 하나 이상과 등록된 프레임 노드를 둘 이상 포함하는 백본으로 구성된 포즈 그래프를 저장하며, 상기 프레임 노드 사이의 오도메트리 정보를 저장하는 맵 저장부;
    상기 포즈 그래프의 프레임 노드에 등록된 프레임과 상기 제1라이다 프레임을 비교하거나 또는 상기 오도메트리 정보를 이용하여 로봇의 현재 위치를 계산하는 제어부를 포함하는, 인공지능에 기반하여 생성된 맵을 이용하여 주행하는 로봇.
  15. 제14항에 있어서,
    상기 제어부는 상기 백본에서 현재 위치에 대응하는 제1프레임 노드를 검색하여 상기 제1프레임 노드에 등록된 제2라이다 프레임을 추출하며,
    상기 제어부가 상기 제1라이다 프레임과 상기 제2라이다 프레임을 비교한 결과 상기 두 프레임이 상이한 경우, 상기 제어부는 상기 라이다 브랜치에서 상기 제2라이다 프레임에 인접한 제3라이다 프레임을 추출하여 상기 제1라이다 프레임과 상기 제3라이다 프레임을 비교하여 로봇의 현재 위치를 계산하는, 인공지능에 기반하여 생성된 맵을 이용하여 주행하는 로봇.
  16. 제14항에 있어서,
    상기 포즈 그래프를 구성하는 프레임 노드 중 제1프레임 노드는 라이다 프레임이 등록되지 않은 프레임 노드이며,
    상기 제어부는 상기 로봇의 현재 위치를 상기 제1프레임 노드를 기준으로 추정하며,
    상기 제어부는 로봇이 이동했던 경로 중 라이다 프레임이 등록된 제2프레임 노드을 추출하여 상기 제2프레임 노드로부터 상기 제1프레임 노드까지의 오도메트리 정보를 이용하여 상기 로봇의 현재 위치를 계산하는, 인공지능에 기반하여 생성된 맵을 이용하여 주행하는 로봇.
  17. 로봇을 이동시키는 이동부;
    상기 로봇의 외부에 배치된 사물을 촬영하여 제1비주얼 프레임을 생성하는 카메라 센서;
    상기 제1비주얼 프레임과 비교 가능한 다수의 비주얼 프레임들을 포함하는 비주얼 브랜치를 저장하고, 상기 저장된 비주얼 프레임 중 어느 하나 이상과 등록된 프레임 노드를 둘 이상 포함하는 백본으로 구성된 포즈 그래프를 저장하며, 상기 프레임 노드 사이의 오도메트리 정보를 저장하는 맵 저장부;
    상기 포즈 그래프의 프레임 노드에 등록된 프레임과 상기 제1비주얼 프레임을 비교하거나 또는 상기 오도메트리 정보를 이용하여 로봇의 현재 위치를 계산하는 제어부를 포함하는, 인공지능에 기반하여 생성된 맵을 이용하여 주행하는 로봇.
  18. 제17항에 있어서,
    상기 제어부는 상기 백본에서 현재 위치에 대응하는 제1프레임 노드를 검색하여 상기 제1프레임 노드에 등록된 제2비주얼 프레임을 추출하며,
    상기 제어부가 상기 제1비주얼 프레임과 상기 제2비주얼 프레임을 비교한 결과 상기 두 프레임이 상이한 경우, 상기 제어부는 상기 비주얼 브랜치에서 상기 제2비주얼 프레임에 인접한 제3비주얼 프레임을 추출하여 상기 제1비주얼 프레임과 상기 제3비주얼 프레임을 비교하여 로봇의 현재 위치를 계산하는, 인공지능에 기반하여 생성된 맵을 이용하여 주행하는 로봇.
  19. 제17항에 있어서,
    상기 포즈 그래프를 구성하는 프레임 노드 중 제1프레임 노드는 비주얼 프레임이 등록되지 않은 프레임 노드이며,
    상기 제어부는 상기 로봇의 현재 위치를 상기 제1프레임 노드를 기준으로 추정하며,
    상기 제어부는 로봇이 이동했던 경로 중 비주얼 프레임이 등록된 제2프레임 노드을 추출하여 상기 제2프레임 노드로부터 상기 제1프레임 노드까지의 오도메트리 정보를 이용하여 상기 로봇의 현재 위치를 계산하는, 인공지능에 기반하여 생성된 맵을 이용하여 주행하는 로봇.
PCT/KR2019/005305 2019-05-03 2019-05-03 다중 센서 및 인공지능에 기반하여 맵을 생성하고 맵을 이용하여 주행하는 로봇 WO2020226187A1 (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020197023289A KR102664410B1 (ko) 2019-05-03 다중 센서 및 인공지능에 기반하여 맵을 생성하고 맵을 이용하여 주행하는 로봇
US16/964,176 US11960297B2 (en) 2019-05-03 2019-05-03 Robot generating map based on multi sensors and artificial intelligence and moving based on map
PCT/KR2019/005305 WO2020226187A1 (ko) 2019-05-03 2019-05-03 다중 센서 및 인공지능에 기반하여 맵을 생성하고 맵을 이용하여 주행하는 로봇

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/KR2019/005305 WO2020226187A1 (ko) 2019-05-03 2019-05-03 다중 센서 및 인공지능에 기반하여 맵을 생성하고 맵을 이용하여 주행하는 로봇

Publications (1)

Publication Number Publication Date
WO2020226187A1 true WO2020226187A1 (ko) 2020-11-12

Family

ID=73051506

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2019/005305 WO2020226187A1 (ko) 2019-05-03 2019-05-03 다중 센서 및 인공지능에 기반하여 맵을 생성하고 맵을 이용하여 주행하는 로봇

Country Status (2)

Country Link
US (1) US11960297B2 (ko)
WO (1) WO2020226187A1 (ko)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112785702A (zh) * 2020-12-31 2021-05-11 华南理工大学 一种基于2d激光雷达和双目相机紧耦合的slam方法
CN112882054A (zh) * 2021-02-26 2021-06-01 广州优亿信息科技有限公司 一种室内机器人定位导航系统及信号采集方法
CN114674308A (zh) * 2022-05-26 2022-06-28 之江实验室 基于安全出口指示牌视觉辅助激光长廊定位方法及装置
WO2023280410A1 (en) * 2021-07-08 2023-01-12 Telefonaktiebolaget Lm Ericsson (Publ) Supporting localization and mapping using a heterogeneous map

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11960297B2 (en) * 2019-05-03 2024-04-16 Lg Electronics Inc. Robot generating map based on multi sensors and artificial intelligence and moving based on map
CN114200945B (zh) * 2021-12-13 2024-04-02 长三角哈特机器人产业技术研究院 一种移动机器人的安全控制方法
CN115930933B (zh) * 2022-09-20 2023-07-04 江苏海洋大学 一种基于集群控制的多智能体协同建图方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160209846A1 (en) * 2015-01-19 2016-07-21 The Regents Of The University Of Michigan Visual Localization Within LIDAR Maps
KR20180044486A (ko) * 2016-10-21 2018-05-03 네이버 주식회사 자율 주행 기술을 응용한 3차원 실내 정밀 지도 자동 생성 로봇 및 로봇의 제어 방법
US20180204338A1 (en) * 2017-01-13 2018-07-19 Otsaw Digital Pte. Ltd. Three-dimensional mapping of an environment
KR20180117879A (ko) * 2017-04-20 2018-10-30 한국과학기술원 그래프 구조 기반의 무인체 위치 추정 장치 및 그 방법
KR20190045006A (ko) * 2017-10-23 2019-05-02 주식회사 유진로봇 라이다를 이용한 위치 인식 및 지도 작성에 관한 방법 및 장치

Family Cites Families (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7363157B1 (en) * 2005-02-10 2008-04-22 Sarnoff Corporation Method and apparatus for performing wide area terrain mapping
WO2012166814A1 (en) * 2011-05-31 2012-12-06 Honda Motor Co., Ltd. Online environment mapping
GB201202344D0 (en) * 2012-02-10 2012-03-28 Isis Innovation Method of locating a sensor and related apparatus
WO2014068302A1 (en) * 2012-11-05 2014-05-08 The Chancellor Masters And Scholars Of The University Of Oxford Extrinsic calibration of imaging sensing devices and 2d lidars mounted on transportable apparatus
GB201303076D0 (en) * 2013-02-21 2013-04-10 Isis Innovation Generation of 3D models of an environment
JP2016540211A (ja) * 2013-11-27 2016-12-22 ザ トラスティーズ オブ ザ ユニバーシティー オブ ペンシルバニア 回転翼型小型飛行体(mav)での屋内環境及び屋外環境における安定自律飛行のためのマルチセンサの融合
WO2016161104A1 (en) * 2015-04-01 2016-10-06 Vayavision, Ltd. Generating 3-dimensional maps of a scene using passive and active measurements
DE102016211805A1 (de) * 2015-10-09 2017-04-13 Volkswagen Aktiengesellschaft Fusion von Positionsdaten mittels Posen-Graph
US20190346271A1 (en) * 2016-03-11 2019-11-14 Kaarta, Inc. Laser scanner with real-time, online ego-motion estimation
US11567201B2 (en) * 2016-03-11 2023-01-31 Kaarta, Inc. Laser scanner with real-time, online ego-motion estimation
US10989542B2 (en) * 2016-03-11 2021-04-27 Kaarta, Inc. Aligning measured signal data with slam localization data and uses thereof
WO2017173553A1 (en) * 2016-04-08 2017-10-12 A&K Robotics Inc. Autoscrubber convertible between manual and autonomous operation
US11092690B1 (en) * 2016-09-22 2021-08-17 Apple Inc. Predicting lidar data using machine learning
WO2018089703A1 (en) * 2016-11-09 2018-05-17 The Texas A&M University System Method and system for accurate long term simultaneous localization and mapping with absolute orientation sensing
US10962647B2 (en) 2016-11-30 2021-03-30 Yujin Robot Co., Ltd. Lidar apparatus based on time of flight and moving object
US10445928B2 (en) * 2017-02-11 2019-10-15 Vayavision Ltd. Method and system for generating multidimensional maps of a scene using a plurality of sensors of various types
US10379606B2 (en) * 2017-03-30 2019-08-13 Microsoft Technology Licensing, Llc Hologram anchor prioritization
US10531065B2 (en) * 2017-03-30 2020-01-07 Microsoft Technology Licensing, Llc Coarse relocalization using signal fingerprints
US10600252B2 (en) * 2017-03-30 2020-03-24 Microsoft Technology Licensing, Llc Coarse relocalization using signal fingerprints
CN113341397A (zh) * 2017-08-15 2021-09-03 百度在线网络技术(北京)有限公司 反射值地图构建方法和装置
US11579298B2 (en) * 2017-09-20 2023-02-14 Yujin Robot Co., Ltd. Hybrid sensor and compact Lidar sensor
US10984583B2 (en) * 2018-03-28 2021-04-20 Apple Inc. Reconstructing views of real world 3D scenes
US11874399B2 (en) 2018-05-16 2024-01-16 Yujin Robot Co., Ltd. 3D scanning LIDAR sensor
US10582137B1 (en) * 2018-09-26 2020-03-03 Zoox, Inc. Multi-sensor data capture synchronizaiton
CN111060101B (zh) * 2018-10-16 2022-06-28 深圳市优必选科技有限公司 视觉辅助的距离slam方法及装置、机器人
KR102243179B1 (ko) * 2019-03-27 2021-04-21 엘지전자 주식회사 이동 로봇 및 그 제어방법
US11960297B2 (en) * 2019-05-03 2024-04-16 Lg Electronics Inc. Robot generating map based on multi sensors and artificial intelligence and moving based on map
WO2020230931A1 (ko) * 2019-05-16 2020-11-19 엘지전자 주식회사 다중 센서 및 인공지능에 기반하여 맵을 생성하고 노드들의 상관 관계를 설정하며 맵을 이용하여 주행하는 로봇 및 맵을 생성하는 방법
WO2020241934A1 (ko) * 2019-05-30 2020-12-03 엘지전자 주식회사 멀티 센서를 동기화시켜 위치를 추정하는 방법 및 이를 구현하는 로봇
US11554495B2 (en) * 2019-05-30 2023-01-17 Lg Electronics Inc. Method of localization using multi sensor and robot implementing same

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160209846A1 (en) * 2015-01-19 2016-07-21 The Regents Of The University Of Michigan Visual Localization Within LIDAR Maps
KR20180044486A (ko) * 2016-10-21 2018-05-03 네이버 주식회사 자율 주행 기술을 응용한 3차원 실내 정밀 지도 자동 생성 로봇 및 로봇의 제어 방법
US20180204338A1 (en) * 2017-01-13 2018-07-19 Otsaw Digital Pte. Ltd. Three-dimensional mapping of an environment
KR20180117879A (ko) * 2017-04-20 2018-10-30 한국과학기술원 그래프 구조 기반의 무인체 위치 추정 장치 및 그 방법
KR20190045006A (ko) * 2017-10-23 2019-05-02 주식회사 유진로봇 라이다를 이용한 위치 인식 및 지도 작성에 관한 방법 및 장치

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112785702A (zh) * 2020-12-31 2021-05-11 华南理工大学 一种基于2d激光雷达和双目相机紧耦合的slam方法
CN112882054A (zh) * 2021-02-26 2021-06-01 广州优亿信息科技有限公司 一种室内机器人定位导航系统及信号采集方法
CN112882054B (zh) * 2021-02-26 2023-10-27 广州优亿信息科技有限公司 一种室内机器人定位导航系统及信号采集方法
WO2023280410A1 (en) * 2021-07-08 2023-01-12 Telefonaktiebolaget Lm Ericsson (Publ) Supporting localization and mapping using a heterogeneous map
CN114674308A (zh) * 2022-05-26 2022-06-28 之江实验室 基于安全出口指示牌视觉辅助激光长廊定位方法及装置

Also Published As

Publication number Publication date
US20210356293A1 (en) 2021-11-18
US11960297B2 (en) 2024-04-16
KR20210150624A (ko) 2021-12-13

Similar Documents

Publication Publication Date Title
WO2020226187A1 (ko) 다중 센서 및 인공지능에 기반하여 맵을 생성하고 맵을 이용하여 주행하는 로봇
WO2020241930A1 (ko) 멀티 센서를 이용하여 위치를 추정하는 방법 및 이를 구현하는 로봇
WO2015194868A1 (ko) 광각 카메라가 탑재된 이동 로봇의 주행을 제어하기 위한 장치 및 그 방법
WO2015194866A1 (ko) 에지 기반 재조정을 이용하여 이동 로봇의 위치를 인식하기 위한 장치 및 그 방법
WO2015194864A1 (ko) 이동 로봇의 맵을 업데이트하기 위한 장치 및 그 방법
WO2015194867A1 (ko) 다이렉트 트래킹을 이용하여 이동 로봇의 위치를 인식하기 위한 장치 및 그 방법
WO2018230852A1 (ko) 3차원 공간의 이동 객체를 식별하는 방법 및 이를 구현하는 로봇
WO2018135870A1 (en) Mobile robot system and control method thereof
WO2018038488A1 (ko) 이동 로봇 및 그 제어방법
WO2018186583A1 (ko) 주행 지면의 장애물을 식별하는 방법 및 이를 구현하는 로봇
WO2015194865A1 (ko) 검색 기반 상관 매칭을 이용하여 이동 로봇의 위치를 인식하기 위한 장치 및 그 방법
WO2020230931A1 (ko) 다중 센서 및 인공지능에 기반하여 맵을 생성하고 노드들의 상관 관계를 설정하며 맵을 이용하여 주행하는 로봇 및 맵을 생성하는 방법
WO2018074903A1 (ko) 이동 로봇의 제어방법
WO2019235743A1 (ko) 장애물 회피에 기반하여 경유 지점을 주행하는 로봇 및 주행하는 방법
WO2018230845A1 (ko) 비전 정보에 기반한 위치 설정 방법 및 이를 구현하는 로봇
WO2018131884A1 (en) Moving robot and control method thereof
WO2018139865A1 (ko) 이동 로봇
WO2020141900A1 (ko) 이동 로봇 및 그 구동 방법
WO2019135437A1 (ko) 안내 로봇 및 그의 동작 방법
WO2021137483A1 (ko) 자율주행 로봇을 이용한 지도 업데이트 방법 및 시스템
WO2020241934A1 (ko) 멀티 센서를 동기화시켜 위치를 추정하는 방법 및 이를 구현하는 로봇
WO2020218644A1 (ko) 인공지능을 이용하여 로봇의 위치를 재정의하는 방법 및 로봇
WO2020153810A1 (en) Method of controlling device and electronic device
WO2015016619A1 (en) Electronic apparatus, method of controlling the same, and image reproducing apparatus and method
WO2019066444A1 (en) MOBILE ROBOT AND CONTROL METHOD

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

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

Country of ref document: EP

Kind code of ref document: A1