WO2020230931A1 - 다중 센서 및 인공지능에 기반하여 맵을 생성하고 노드들의 상관 관계를 설정하며 맵을 이용하여 주행하는 로봇 및 맵을 생성하는 방법 - Google Patents

다중 센서 및 인공지능에 기반하여 맵을 생성하고 노드들의 상관 관계를 설정하며 맵을 이용하여 주행하는 로봇 및 맵을 생성하는 방법 Download PDF

Info

Publication number
WO2020230931A1
WO2020230931A1 PCT/KR2019/005885 KR2019005885W WO2020230931A1 WO 2020230931 A1 WO2020230931 A1 WO 2020230931A1 KR 2019005885 W KR2019005885 W KR 2019005885W WO 2020230931 A1 WO2020230931 A1 WO 2020230931A1
Authority
WO
WIPO (PCT)
Prior art keywords
nodes
robot
frame
lidar
visual
Prior art date
Application number
PCT/KR2019/005885
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 KR1020197023288A priority Critical patent/KR20210155833A/ko
Priority to US16/760,013 priority patent/US11614747B2/en
Priority to PCT/KR2019/005885 priority patent/WO2020230931A1/ko
Publication of WO2020230931A1 publication Critical patent/WO2020230931A1/ko

Links

Images

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • G05D1/02Control of position or course in two dimensions
    • G05D1/021Control of position or course in two dimensions specially adapted to land vehicles
    • G05D1/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
    • G05D1/0253Control 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 extracting relative motion information from a plurality of images taken successively, e.g. visual odometry, optical flow
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • G05D1/02Control of position or course in two dimensions
    • G05D1/021Control of position or course in two dimensions specially adapted to land vehicles
    • G05D1/0268Control of position or course in two dimensions specially adapted to land vehicles using internal positioning means
    • G05D1/0274Control of position or course in two dimensions specially adapted to land vehicles using internal positioning means using mapping information stored in a memory device
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • 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/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
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1694Programme controls characterised by use of sensors other than normal servo-feedback from position, speed or acceleration sensors, perception control, multi-sensor controlled systems, sensor fusion
    • B25J9/1697Vision controlled systems
    • 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
    • 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/93Lidar systems specially adapted for specific applications for anti-collision purposes
    • G01S17/931Lidar systems specially adapted for specific applications for anti-collision purposes of land vehicles
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • G05D1/02Control of position or course in two dimensions
    • G05D1/021Control of position or course in two dimensions specially adapted to land vehicles
    • G05D1/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
    • G05D1/0248Control 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 in combination with a laser
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • G05D1/02Control of position or course in two dimensions
    • G05D1/021Control of position or course in two dimensions specially adapted to land vehicles
    • G05D1/0268Control of position or course in two dimensions specially adapted to land vehicles using internal positioning means
    • G05D1/0272Control of position or course in two dimensions specially adapted to land vehicles using internal positioning means comprising means for registering the travel distance, e.g. revolutions of wheels

Definitions

  • the present invention relates to a method of generating a map based on multiple sensors and artificial intelligence, setting a correlation between nodes, and generating a driving robot and a map 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 creates a map for a space using various sensors and attempts to store information based on the sensors in the map.
  • the robot establishes a correlation between nodes in the map to increase the accuracy of the fusion slam.
  • a robot that is created based on multiple sensors and artificial intelligence and sets the correlation of nodes is a lidar sensor that senses the distance between an object placed outside the robot and the robot to generate a lidar frame. And a camera sensor that generates a visual frame by photographing an object disposed outside of the robot.
  • a robot that is created based on multiple sensors and artificial intelligence and sets the correlation of nodes is a LiDAR branch including one or more LiDAR frames, and a visual branch and LiDAR including one or more visual frames It generates a pose graph composed of a backbone including at least one of a frame or a visual frame and at least two registered frame nodes, and includes a control unit for generating a correlation between nodes of the pose graph.
  • it includes a map storage unit that generates a Lida branch, a visual branch, a backbone, and a map storage unit that creates a correlation of nodes based on multiple sensors and artificial intelligence.
  • a robot that creates a map and establishes a correlation between nodes based on multiple sensors and artificial intelligence selects two adjacent nodes from among nodes, and a wheel encoder performs a movement between the two nodes.
  • the generated wheel odometry information is set as a correlation between two nodes and stored in the map storage unit.
  • a robot that creates a map and sets a correlation between nodes based on multiple sensors and artificial intelligence uses two lidar frames registered between two nodes to provide lidar odometry information. Or to generate visual odometry information using two visual frames registered between two nodes.
  • a robot that generates a map and establishes a correlation of nodes based on multiple sensors and artificial intelligence generates an essential graph by selecting nodes that are not adjacent among nodes and registered visual frames. In the essential graph, a correlation between nodes in which the lidar frame is registered is created.
  • a robot traveling using a map in which the correlation of nodes is stored based on multiple sensors and artificial intelligence includes a wheel encoder that generates wheel odometry information during the movement of the robot, and external to the robot.
  • the lidar sensor that generates the first lidar frame by sensing the distance between the placed object and the robot, the camera sensor that generates the first visual frame by photographing the object placed outside of the robot, and wheel odometry information
  • a control unit that calculates the current position of the robot by comparing the correlation between the first lidar frame, the first visual frame, and nodes stored in the map storage unit.
  • the robot may generate a map for a space using various sensors and set a correlation between each road in the map.
  • a robot may perform Fusion SLAM in space using various sensors.
  • the robot moves based on a map composed of various sensors, and correlations are applied to accurately calculate the current position of the robot.
  • 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 a process of calculating a correlation between adjacent nodes according to an embodiment of the present invention.
  • 6 to 10 show a process of establishing a correlation between non-adjacent nodes according to an embodiment of the present invention.
  • FIG. 11 shows a process of performing a fusion slam according to an embodiment of the present invention.
  • FIG. 12 shows a process of performing a fusion slam according to an embodiment of 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, thereby successfully driving 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 wheel encoder 260 of FIG. 2 generates wheel odometry information by collecting information such as rotation or direction of a wheel constituting the moving part of the robot, and provides it to the controller 250.
  • the controller 250 may calculate a moving distance or a moving direction based on information provided by the wheel encoder 260.
  • 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.
  • the frame node is abbreviated as a node.
  • the lidar information or visual information registered in the frame node is indicated by a lidar keyframe and a visual keyframe, respectively.
  • the lidar information referred to as a reference of the frame node is indicated by a lidar keyframe, a lidar frame, or lidar information.
  • the visual information registered in the frame node is also indicated by a visual key frame or a visual frame or visual information.
  • e12, e23, e34, and e45 are edges between adjacent nodes, and e13, e35, and e25 are edges between non-adjacent nodes. Correlations (constraints) are established between these nodes. The correlation refers to information that can be used by the robot 1 to perform fusion SLAM when moving between nodes.
  • the correlation refers to a condition that the robot 1 must satisfy when moving between nodes under a kind of constraint.
  • the lidar frame checked at the first node and the lidar frame checked at the second node may be a constraint required to check the position when the robot moves between the first node and the second node.
  • the correlation between adjacent nodes includes information necessary to confirm the current position of the robot when the robot moves between two adjacent nodes.
  • Two adjacent nodes mean a case where no other node is placed between a path moving between two nodes.
  • the correlation between non-adjacent nodes includes information necessary to determine the current position of the robot when the robot moves between two non-adjacent nodes.
  • a non-adjacent node refers to a case where another node is placed in a path between two nodes or there is another node adjacent to each other.
  • the adjacent node indicates two nodes in which wheel odometry information is registered.
  • a non-adjacent node indicates two nodes for which no wheel odometry information is registered.
  • a non-adjacent node means a node including two or more wheel odometry information by having a transit node in the middle. For example, in FIG. 4, e13, which is an edge between non-adjacent nodes, may combine wheel odometry information of e12 and e23 and store it as a correlation.
  • the controller 250 of the robot may select a correlation between nodes based on information generated by heterogeneous sensors so as to move based on the fusion SLAM and store the correlation between the nodes in the map.
  • the robot can accurately check the current position of the robot in the process of moving between adjacent nodes.
  • the robot can accurately check the current position of the robot in the process of moving between non-adjacent nodes.
  • the robot performs fusion SLAM based on two or more types of sensors.
  • a map as shown in FIG. 4 may be generated based on the lidar sensor 220 and the camera sensor 230.
  • the lidar sensor 220 may sense objects in a 360-degree direction.
  • two or more lidar sensors 220 may be used to sense objects in a specific direction or a specific height.
  • one or more camera sensors 230 may be disposed on the robot 1 to overcome the limitation of the viewing angle.
  • the correlation is a process of combining wheel odometry information between adjacent nodes and information of other sensors (Fig. 5), and a loop correlation based on a lidar frame after generating a visual frame-based essential graph between non-adjacent nodes. It is created in the process of creating a relationship (Figs. 6 to 10).
  • the generated correlation is stored in the map storage unit 210 together with the lidar branch, visual branch, and backbone of FIG. 4. Thereafter, the robot 1 may perform fusion SLAM using the information stored in the map storage unit 210.
  • FIG. 5 shows a process of calculating a correlation between adjacent nodes according to an embodiment of the present invention.
  • Correlation can be established between adjacent nodes by combining information acquired by each sensor.
  • the controller 250 may calculate a correlation based on a combination of the lidar sensor 220, the camera sensor 230, and the rotation/direction of the wheel.
  • Odometry that can be applied between nodes is WO (Wheel Odometry), VO (Visual Odometry), and LO (Lidar Odometry).
  • WO indicates odometry based on wheel encoder 260.
  • LO lidar odometry information based on lidar sensor 220.
  • VO is visual odometry information based on the camera sensor 230.
  • the controller 250 may calculate a correlation between adjacent nodes.
  • the control unit 250 sets i to 1 (S51), and starts the correlation calculation process.
  • the control unit 250 checks a key frame commonly registered between the adjacent nodes vi and v(i+1) (S52). Commonly registered means that the same type (lida frame or visual frame) is registered in both nodes.
  • the one commonly registered to the first node and the second node is the lidar frame and between them.
  • the odometry information of is calculated based on the first lidar frame and the second lidar frame.
  • the control unit 250 branches to S54 or S55 depending on whether a visual keyframe is included in a keyframe registered in common.
  • the controller 250 checks whether the keyframe commonly registered in S54 is a LiDAR keyframe (S54). In S54, if the keyframe included in common is not a LiDAR keyframe, there is no common keyframe between the two nodes (vi and v(i+1)), so the correlation of their edges ei(i+1) The WO is set as (S56). This means that the wheel odometry information moved by the wheel between the two nodes is set as a correlation.
  • the WO ⁇ LO is set (S57). This means that information obtained by combining odometry information moved by a wheel between two nodes and odometry information matched with a lidar keyframe is set as a correlation.
  • is a kind of operator.
  • a ⁇ B means combining the information of A and B.
  • the information of A or B that is different among the information of A and information of B can be applied with priority to the information of A or B with high priority.
  • the LiDAR odometry information matched with the LiDAR keyframe refers to a difference between the LiDAR keyframes between two nodes as an embodiment.
  • the controller 250 checks whether the LiDAR keyframe is further included in the keyframe commonly registered in S55 (S55).
  • S55 when there is no lidar keyframe in the common keyframe, a common keyframe exists between two nodes (vi and v(i+1)) and only visual keyframes exist.
  • WO ⁇ VO is set as the correlation between the edges ei(i+1) of these two nodes (S58). This means that information obtained by combining odometry information moved by a wheel between two nodes and odometry information matched with a visual keyframe is set as a correlation.
  • the visual odometry information matched with visual keyframes refers to a difference in visual keyframes between two nodes as an embodiment.
  • the lidar keyframe and visual keyframe are registered as a common keyframe between the two nodes (vi and v(i+1)). . Therefore, (WO ⁇ LO) ⁇ VO is set as the correlation of these edges ei(i+1) (S59).
  • the control unit 250 Since the correlation for the edge between the two adjacent nodes (vi and v(i+1)) has been set, the control unit 250 increases i by 1 (S60), and then sets the correlation between adjacent nodes. . If i is equal to or greater than the maximum number of nodes (MAX_NODE, which has a value of 5 in FIG. 4) (S61), the edge correlation setting for all nodes has been completed, and thus it is terminated.
  • MAX_NODE maximum number of nodes
  • WO-Only This is odometry information including rotation of moving parts such as wheels, which are generated by the movement of the robot. If the lidar sensor 220 or the camera sensor 230 is not available, the robot checks the location using only the WO.
  • WO ⁇ LO This is odometry information that can use both WO and LO. This is a combination when the lidar sensor 220 can be used.
  • the node v1 and v2 have a LiDAR keyframe in common. Therefore, e12 between v1-v2 of FIG. 4 may use WO ⁇ LO.
  • WO ⁇ VO This is odometry information that can use both WO and VO. This is a combination when the camera sensor 230 can be used.
  • the v3 and v4 nodes are commonly registered with a visual keyframe. Therefore, e34 between v3-v4 of FIG. 4 can use WO ⁇ VO.
  • the controller 250 may preferentially perform matching with the LO. have.
  • the controller 250 preferentially performs matching with the VO. I can. This is exemplarily applied when the lidar sensor 220 senses in three dimensions (WO ⁇ VO) and may be combined such as ⁇ LO.
  • odometry information between nodes may be variously combined according to the type of keyframes registered in the nodes v1 to v5 of the backbone of each first layer.
  • the robot 1 is able to perform wheel odometry or odometry based on other sensors. Tree information can be used.
  • the process of FIG. 5 is summarized as follows.
  • the control unit 250 selects two adjacent nodes and stores the map by setting the wheel odometry information generated by the moving unit (wheel encoder 260) as a correlation between the two nodes in the movement between the two nodes. It is stored in the part (S56).
  • the controller 250 generates lidar odometry information using two lidar frames registered between the two nodes (S57). This may include a difference value of two lidar frames (each lidar frame registered in each node) between two nodes. Alternatively, the difference value can be changed according to the distance between the two nodes and stored as lidar odometry information.
  • control unit 250 generates visual odometry information using two visual frames registered between the two nodes (S58). This may include a difference value between two visual frames (each visual frame registered in each node) between the two nodes. Alternatively, a difference value may be changed according to a distance between two nodes and stored as visual odometry information.
  • FIG. 6 shows a process of establishing a correlation between non-adjacent nodes according to an embodiment of the present invention.
  • Figures 7 to 10 show the results calculated for each step.
  • the correlation between non-adjacent nodes can be applied to e13, e25, and e35 of FIG. 4.
  • the controller 250 selects nodes that are not adjacent among the nodes and registers a visual frame to generate an essential graph, and then generates a correlation between nodes in which a lidar frame is registered in the generated essential graph.
  • the controller 250 is connected with a specific correlation or constraint between visual keyframes around a specific node within a maximum sensing distance (R_max) that can be sensed by the lidar sensor.
  • the existing node set is searched (S64). In this case, the controller 250 may search for all weak or strong correlations according to the degree of connection of the constraints.
  • the control unit 250 sets the size of a search region with a radius of the maximum sensing distance R_max that can be sensed by a lidar sensor based on a specific reference node. Further, the control unit 250 checks whether a correlation exists between frame nodes including a visual keyframe based on the reference node.
  • Nodes connected by a strong visual edge having a strong correlation around the reference node of FIG. 7 and nodes connected by a weak visual edge having a weak correlation are connected by a dotted line.
  • control unit 250 continuously expands the area in the manner of FIG. 7 to search for a node and connect correlations (constraints).
  • controller 250 generates a covisibility graph composed of a set of correlations between visual keyframes (S65). It looks at in Figure 8.
  • FIG. 8 shows step S65 of FIG. 6.
  • Frame nodes including visual keyframes are connected to visual edges.
  • Frame nodes in which only the lidar keyframe is registered are not connected to the edge.
  • control unit 250 first generates a visual edge based on the existence of a correlation around a reference node, and then checks whether an edge exists between other nodes, and results as shown in FIG. Generate.
  • the controller 250 generates an essential graph by removing only edges of strong correlation in the covisability graph and removing other edges and nodes (S66).
  • the essential graph has high similarity and includes nodes and edges thereof that can be compared to determine the position of the robot during fusion SLAM.
  • a first visual frame was registered to the first node, a second visual frame was registered to the second node, and a third visual frame was registered to the third node.
  • the controller 250 configures nodes in which visual frames with high similarity are registered as an essential graph.
  • the similarity of the first visual frame and the second visual frame is higher than that of the third visual frame and the first visual frame.
  • the similarity between the first visual frame and the second visual frame is higher than the similarity between the third and second visual frames.
  • step S66 of FIG. 6 Visual keyframes connected to visual edges of strong correlation are arranged.
  • control unit 250 removes the edges of weak correlation and also removes the frame node in which only the lidar keyframe is registered.
  • control unit 250 leaves only frame nodes including the LiDAR keyframe in the essential graph (S67). Apply to create loop closing constraints between nodes using the remaining nodes.
  • step S67 of FIG. 6 Only frame nodes containing the lidar keyframe are left, and the edges of these nodes are applied to create loop closing constraints.
  • the correlation may include a displacement between two nodes.
  • the controller 250 may check the position of the robot by comparing the value checked by the current lidar sensor with the above-described displacement.
  • the controller 250 of the robot 1 creates a correlation between nodes that are not adjacent.
  • the controller 250 uses the lidar sensor 220 to obtain the camera sensor 230 The accuracy of the information can be verified and corrected.
  • the controller 250 may select a node to be matched using a lidar sensor from among keyframes or frames acquired by the camera sensor 230.
  • controller 250 may calculate the correlation between non-adjacent nodes of the information sensed by the lidar sensor 220 using a visual essential graph transferred to calculate the correlation between non-adjacent nodes. have.
  • the process of FIG. 6 can be performed as the following algorithm.
  • the control unit 250 extracts all visual edges (edges between nodes in which a visual keyframe is registered) within the maximum lidar sensing range centering on a reference node (algorithm Refer to lines 2-4 of).
  • the extracted edges are included in a candidate visual edge (E candidate ).
  • the controller 250 In response to line 7 of the algorithm (S65 and S66 in Fig. 6), the controller 250 generates a visual essential graph using the candidate visual edge.
  • the control unit 250 determines the node where the lidar keyframe exists, the distance between these nodes, and whether the lidar edge exists between these nodes. Based on this, a lidar loop correlation is extracted.
  • the Topological_dist(vi, vj) function of line 11 refers to the number of edges included in the shortest path between two nodes vi and vj.
  • the controller 250 may redefine previously generated weak or incorrect visual loop constraints using the LiDAR correlation. That is, the error of the visual loop correlation can be compensated for by using the lidar loop correlation.
  • the lidar sensor 220 since sensing of the lidar sensor 220 is more precise than that of the camera sensor 230, the accuracy of the entire map can be improved.
  • the controller 250 determines the correlation between nodes in which key frames are registered in a map in which heterogeneous data generated by heterogeneous sensors (lidar keyframe, visual keyframe) is registered. Is calculated, it is possible to increase the accuracy of the fusion SLAM in the process of moving between nodes.
  • the robot 1 can more accurately calculate the correlations (constraints or edges) between nodes as compared to the SLAM method (LiDAR-only SLAM or visual-only SLAM) using one sensor. . This is because the error of one sensor can be corrected by another sensor.
  • the controller 250 may calculate a correlation between adjacent nodes by combining odometry information for each sensor.
  • the controller 250 may generate an essential graph based on vision information (such as a visual key frame) and calculate a correlation between non-adjacent nodes based thereon.
  • vision information such as a visual key frame
  • the robot 1 can perform fusion SLAM using both the information generated by the lidar sensor 220 and the information generated by the camera sensor 230, thereby increasing accuracy during movement. .
  • the robot 1 can generate a correlation between adjacent/non-adjacent nodes and use it during fusion SLAM, accuracy in the SLAM process can be improved.
  • the controller 250 compares the correlation between the wheel odometry information, the lidar frame sensed by the lidar sensor, the visual frame sensed by the camera sensor, and the nodes stored in the map storage unit 210 to determine the current position of the robot. Calculate
  • 11 shows a process of performing a fusion slam according to an embodiment of the present invention. 11 is an embodiment using odometry information between adjacent nodes.
  • the robot 1 is moving from the first frame node to the second frame node (S81).
  • the control unit 250 checks the type of odometry information between the first frame node and the second frame node (S81).
  • the controller 250 registers the WO registered at the edges of the first frame node and the second frame node, and the value sensed by the wheel encoder 260 of the robot The current position of the robot is calculated by comparing (S84).
  • the wheel encoder 260 calculates the moving distance in the process of starting from the first frame node and moving.
  • the control unit 260 may calculate the current position of the robot 1 based on the first frame node and the second frame node based on the WO (wheel odometry information) between the first frame node and the second frame node. have.
  • step S83 If there is odometry information other than WO in S83, it moves to S85.
  • the process proceeds to step S86.
  • the controller 250 branches to step S87.
  • the controller 250 is a value sensed by the WO and LO registered at the edges of the first frame node and the second frame node, the robot's wheel encoder (wheel odometry information), and information sensed by the LiDAR sensor (LIDAR. Frame) to calculate the current position of the robot (S87).
  • the process proceeds to step S88.
  • the controller 250 includes WO, LO, and VO registered at the edges of the first frame node and the second frame node, values sensed by the wheel encoder of the robot (wheel odometry information), and information sensed by the lidar sensor (D. Ida frame) and the information (visual frame) sensed by the camera sensor are compared to calculate the current position of the robot (S88).
  • one frame can be applied first when calculating the position according to the data size of the lidar frame and the data size of the visual frame. For example, if the time required to compare lidar frames is small, the position of the robot 1 is first calculated using WO and LO. The controller 250 calculates the current position of the robot by preferentially combining the lidar odometry information with the wheel autometry information rather than the visual odometry information.
  • the position of the robot 1 may be recalculated using VO. This is because the data size is small when the 2D LiDAR sensor generates the LiDAR frame, so the LiDAR frame and the LiDAR odometry information can be applied first.
  • the position of the robot 1 is first calculated using WO and VO. And in order to increase the accuracy of the position calculation, the position of the robot 1 may be recalculated using the LO. This is because the data size is large when the 3D LiDAR sensor generates the LiDAR frame, so the visual frame and visual odometry information can be applied first.
  • the controller 250 includes WO and VO registered at the edges of the first frame node and the second frame node, values sensed by the wheel encoder of the robot (wheel odometry information), and information sensed by the camera sensor (visual frame). The current position of the robot is calculated by comparing (S89).
  • the lidar sensor 220 senses the distance between the robot and the object disposed outside the robot during the movement process to generate a first lidar frame.
  • the camera sensor 230 generates a first visual frame by photographing an object disposed outside the robot during the moving process.
  • the controller 250 extracts a correlation between nodes of the pose graph from the map storage unit 210.
  • the control unit 250 In the process of moving from the first frame node to the second frame node, the control unit 250 generates the first lidar frame or the first visual frame or the wheel odometry information and nodes at the current position of the robot.
  • the robot's position is calculated by comparing the extracted correlations (odometry information, WO, LO, VO).
  • the controller 250 may calculate the current position of the robot by combining this with the wheel odometry information.
  • the controller 250 compares the wheel odometry information (WO) and the moving distance of the robot sensed by the wheel encoder, and the lidar odometry information (LO) or visual odometry information (VO) is sensed by the robot.
  • the robot's current position is calculated by comparing the lidar frame/visual frame.
  • 12 shows a process of performing a fusion slam according to an embodiment of the present invention. 12 is an embodiment using odometry information between non-adjacent nodes.
  • the robot 1 is moving from the first frame node to the second frame node (S91).
  • the first frame node and the second frame node are non-adjacent nodes.
  • a lidar loop closing correlation is registered between the first frame node and the second frame node.
  • the control unit 250 extracts a loop closing correlation between the first frame node and the second frame node (S92). In addition, the controller 250 compares the first lidar frame generated by the lidar sensor and the loop closing correlation to calculate the current position of the robot based on the first frame node and the second frame node (S93).
  • the present invention is not necessarily limited to these embodiments, and all constituent elements within the scope of the present invention are not 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.

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Remote Sensing (AREA)
  • General Physics & Mathematics (AREA)
  • Robotics (AREA)
  • Mechanical Engineering (AREA)
  • Electromagnetism (AREA)
  • Aviation & Aerospace Engineering (AREA)
  • Automation & Control Theory (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Multimedia (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Optics & Photonics (AREA)
  • Control Of Position, Course, Altitude, Or Attitude Of Moving Bodies (AREA)

Abstract

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

Description

다중 센서 및 인공지능에 기반하여 맵을 생성하고 노드들의 상관 관계를 설정하며 맵을 이용하여 주행하는 로봇 및 맵을 생성하는 방법
본 발명은 다중 센서 및 인공지능에 기반하여 맵을 생성하고 노드들의 상관 관계를 설정하며 맵을 이용하여 주행하는 로봇 및 맵을 생성하는 방법에 관한 기술이다.
대형 마트, 백화점, 공항, 골프장 등 인적, 물적 교류가 활발하게 발생하는 공간에는 사람들에게 정보를 제공하기 위해, 또는 사람들에게 편의를 제공하기 위해 로봇이 배치될 수 있다.
전술한 로봇의 종류로는 안내로봇, 보안로봇, 청소로봇 등이 있으며, 이들 다양한 로봇들은 공간 내에서 자신의 위치를 확인하며 이동한다.
한편, 로봇들이 자신의 위치를 확인하고 장애물을 회피하며 이동하기 위해서는 공간에 대한 정보와 로봇의 현재 위치 또는 이전에 로봇이 이동한 경로 등에 대한 정보를 로봇이 유지해야 한다.
로봇이 공간을 확인하고 이동하기 위해 로봇은 맵을 보유할 수 있다. 그런데, 맵을 생성하기 위해서 로봇은 다양한 센서들을 이용하여 맵을 작성할 수 있으며, 맵 내의 정보의 다양한 정보들을 일치시켜 저장하는 것이 필요하다.
그러나 센서들은 각각의 특성과 로봇이 이동하는 과정에서 발생하는 오차가 있으므로 이를 반영하여 맵을 생성하고 맵을 보정하는 기술이 필요하다.
본 명세서에서는 전술한 문제점을 해결하기 위한 것으로, 로봇이 다양한 센서를 이용하여 공간에 대한 맵을 생성하고 맵 내에서 센서들에 기반한 정보를 저장하고자 한다.
또한, 본 명세서에서는 다양한 센서를 이용하여 공간에서의 로봇의 위치를 식별하는 퓨전-슬램(Fusion SLAM)을 구현하고자 한다.
또한, 본 명세서에서는 로봇이 맵 내의 노드들 사이에 상관 관계를 설정하여 퓨전 슬램의 정확도를 높이고자 한다.
본 발명의 목적들은 이상에서 언급한 목적으로 제한되지 않으며, 언급되지 않은 본 발명의 다른 목적 및 장점들은 하기의 설명에 의해서 이해될 수 있고, 본 발명의 실시예에 의해 보다 분명하게 이해될 것이다. 또한, 본 발명의 목적 및 장점들은 특허 청구 범위에 나타낸 수단 및 그 조합에 의해 실현될 수 있음을 쉽게 알 수 있을 것이다.
발명의 일 실시예에 의한 다중 센서 및 인공지능에 기반하여 생성하고 노드들의 상관 관계를 설정하는 로봇은 로봇의 외부에 배치된 사물과 로봇 사이의 거리를 센싱하여 라이다 프레임을 생성하는 라이다 센서와 로봇의 외부에 배치된 사물을 촬영하여 비주얼 프레임을 생성하는 카메라 센서를 포함한다.
발명의 일 실시예에 의한 다중 센서 및 인공지능에 기반하여 생성하고 노드들의 상관 관계를 설정하는 로봇은 하나 이상의 라이다 프레임을 포함하는 라이다 브랜치와 하나 이상의 비주얼 프레임을 포함하는 비주얼 브랜치와 라이다 프레임 또는 비주얼 프레임 중 어느 하나 이상과 등록된 프레임 노드를 둘 이상 포함하는 백본으로 구성된 포즈 그래프를 생성하며, 포즈 그래프의 노드들 사이의 상관 관계를 생성하는 제어부를 포함한다.
발명의 일 실시예에 의한 다중 센서 및 인공지능에 기반하여 생성하고 노드들의 상관 관계를 설정하는 라이다 브랜치, 비주얼 브랜치, 백본, 상관 관계를 저장하는 맵 저장부를 포함한다.
발명의 일 실시예에 의한 다중 센서 및 인공지능에 기반하여 맵을 생성하고 노드들의 상관 관계를 설정하는 로봇은 노드들 중에서 인접한 두 개의 노드들을 선정하여, 두 개의 노드들 사이의 이동에서 휠 인코더가 생성한 휠 오도메트리 정보를 두 개의 노드 사이의 상관관계로 설정하여 맵 저장부에 저장한다.
발명의 일 실시예에 의한 다중 센서 및 인공지능에 기반하여 맵을 생성하고 노드들의 상관 관계를 설정하는 로봇은 두 개의 노드들 사이에 등록된 두 개의 라이다 프레임을 이용하여 라이다 오도메트리 정보를 생성하거나 두 개의 노드들 사이에 등록된 두 개의 비주얼 프레임을 이용하여 비주얼 오도메트리 정보를 생성한다.
발명의 일 실시예에 의한 다중 센서 및 인공지능에 기반하여 맵을 생성하고 노드들의 상관 관계를 설정하는 로봇은 노드들 중에서 인접하지 않으며 비주얼 프레임이 등록된 노드들을 선정하여 에센셜 그래프를 생성하며 생성된 에센셜 그래프에서 라이다 프레임이 등록된 노드들 사이의 상관 관계를 생성한다.
발명의 일 실시예에 의한 다중 센서 및 인공지능에 기반하여 노드들의 상관 관계가 저장된 맵을 이용하여 주행하는 로봇은 로봇의 이동 과정에서 휠 오도메트리 정보를 생성하는 휠 인코더와, 로봇의 외부에 배치된 사물과 로봇 사이의 거리를 센싱하여 제1라이다 프레임을 생성하는 라이다 센서와 로봇의 외부에 배치된 사물을 촬영하여 제1비주얼 프레임을 생성하는 카메라 센서와 휠 오도메트리 정보와 제1라이다 프레임과 제1비주얼 프레임과 맵 저장부에 저장된 노드들의 상관관계를 비교하여 현재 로봇의 위치를 계산하는 제어부를 포함한다.
본 발명의 실시예들을 적용할 경우, 로봇이 다양한 센서를 이용하여 공간에 대한 맵을 생성하고 맵 내의 각각의 노도들 간의 상관관계를 설정할 수 있다.
또한, 본 발명의 실시예들을 적용할 경우, 다양한 센서를 이용하여 공간에서 로봇이 퓨전-슬램(Fusion SLAM)을 수행할 수 있다.
또한, 본 발명의 실시예들을 적용할 경우, 다양한 센서들로 구성된 맵에 기반하여 로봇이 이동하며 상관 관계를 적용하여 현재 로봇의 위치를 정확하게 계산할 수 있다.
본 발명의 효과는 전술한 효과에 한정되지 않으며, 본 발명의 당업자들은 본 발명의 구성에서 본 발명의 다양한 효과를 쉽게 도출할 수 있다.
도 1은 본 발명의 일 실시예에 의한 로봇의 외관을 보여준다.
도 2는 본 발명의 일 실시예에 의한 로봇의 제어모듈의 구성 요소를 보여준다.
도 3은 로봇이 공간에서 이동하는 과정을 보여준다.
도 4는 본 발명의 일 실시예에 의한 맵의 다중 구조를 보여준다.
도 5는 본 발명의 일 실시예에 의한 인접한 노드 간의 상관 관계를 산출하는 과정을 보여준다.
도 6 내지 도 10은 본 발명의 일 실시예에 의한 비인접 노드 사이의 상관 관계를 설정하는 과정을 보여준다.
도 11은 본 발명의 일 실시예에 의한 퓨전 슬램을 수행하는 과정을 보여준다.
도 12는 본 발명의 일 실시예에 의한 퓨전 슬램을 수행하는 과정을 보여준다.
이하, 도면을 참조하여 본 발명의 실시예에 대하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다.
본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 동일 또는 유사한 구성요소에 대해서는 동일한 참조 부호를 붙이도록 한다. 또한, 본 발명의 일부 실시예들을 예시적인 도면을 참조하여 상세하게 설명한다. 각 도면의 구성요소들에 참조부호를 부가함에 있어서, 동일한 구성요소들에 대해서는 비록 다른 도면상에 표시되더라도 가능한 한 동일한 부호를 가질 수 있다. 또한, 본 발명을 설명함에 있어, 관련된 공지 구성 또는 기능에 대한 구체적인 설명이 본 발명의 요지를 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명은 생략할 수 있다.
본 발명의 구성 요소를 설명하는 데 있어서, 제 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의 휠 인코더(Wheel Encoder)(260)는 로봇의 이동부를 구성하는 바퀴의 회전이나 방향 등의 정보를 취합하여 휠 오도메트리 정보를 생성하고 이를 제어부(250)에게 제공한다. 제어부(250)는 휠 인코더(260)가 제공한 정보에 기반하여 이동 거리나 이동 방향 등을 산출할 수 있다.
센서들을 이용한 정보 외에도 오도메트리 정보를 이용하여 로봇이 어디까지 이동했는지 로봇이 계산할 수 있다.
도 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)에 저장한다.
이하, 프레임 노드를 줄여서 노드라고 한다. 또한 프레임 노드에 등록된 라이다 정보 또는 비주얼 정보는 각각 라이다 키프레임 및 비주얼 키프레임으로 지시된다. 또한, 라이다 정보가 모두 프레임 노드에 등록될 수 있으므로, 프레임 노드의 기준으로 참조하는 라이다 정보는 라이다 키프레임 또는 라이다 프레임 또는 라이다 정보 등으로 지시한다. 마찬가지로 프레임 노드에 등록된 비주얼 정보 역시 비주얼 키프레임 또는 비주얼 프레임 또는 비주얼 정보 등으로 지시된다.
도 4에 제시된 바와 같이, e12, e23, e34, e45는 인접 노드들 사이의 에지이며, e13, e35, e25는 인접하지 않은 노드들 사이의 에지이다. 이들 노드들 사이에는 상관 관계(constraints)가 설정된다. 상관관계란 노드 사이를 이동할 경우 퓨전 SLAM을 수행하는데 로봇(1)이 사용할 수 있는 정보를 의미한다.
또는 상관관계란, 일종의 제약 조건으로 노드 사이를 이동할 때 로봇(1)이 충족시켜야 하는 조건을 의미한다. 예를 들어 제1노드에서 확인된 라이다 프레임과 제2노드에서 확인된 라이다 프레임은 로봇이 제1노드와 제2노드 사이를 이동할 때 위치를 확인하는데 필요한 제약 조건이 될 수 있다.
인접 노드 사이의 상관 관계는 인접한 두 개의 노드들 사이를 로봇이 이동할 경우 로봇의 현재 위치를 확인하는데 필요한 정보를 포함한다. 인접한 두 개의 노드란 두 개의 노드 사이를 이동하는 경로 사이에 다른 노드가 배치되지 않은 경우를 의미한다. 마찬가지로 비인접 노드 사이의 상관 관계는 두 개의 비인접한 노드들 사이를 로봇이 이동할 경우 로봇의 현재 위치를 확인하는데 필요한 정보를 포함한다. 비인접 노드란 두 개의 노드 사이의 경로에 다른 노드가 배치되거나 근접하가 다른 노드가 있는 경우를 의미한다.
일 실시예로 인접 노드란 휠 오도메트리 정보가 등록된 두 개의 노드를 지시한다. 또한, 비인접 노드란 휠 오도메트리 정보가 등록되지 않은 두 개의 노드를 지시한다. 또다른 실시예로 비인접 노드란 중간에 경유 노드를 가져서 둘 이상의 휠 오도메트리 정보를 포함하는 노드를 의미한다. 예를 들어 도 4에서 비인접 노드 간의 에지인 e13은 e12 및 e23의 휠 오도메트리 정보를 결합하여 상관관계로 저장할 수 있다.
따라서, 로봇의 제어부(250)는 퓨전 SLAM에 기반하여 이동할 수 있도록 이종의 센서들이 생성한 정보들에 기반하여 노드 사이의 상관 관계를 선정하고 이를 맵에 저장할 수 있다.
예를 들어, 퓨전 SLAM에서의 인접 노드 사이의 상관 관계를 선정하여 맵에 저장할 경우 로봇은 인접 노드 사이의 이동 과정에서 로봇의 현재 위치를 정확하게 확인할 수 있다. 마찬가지로 퓨전 SLAM에서의 비인접 노드 사이의 상관 관계를 선정하여 맵에 저장할 경우 로봇은 비인접 노드 사이의 이동 과정에서 로봇의 현재 위치를 정확하게 확인할 수 있다.
로봇은 전술한 바와 같이 두 종류 이상의 센서에 기반하여 퓨전 SLAM을 수행한다. 라이다 센서(220)와 카메라 센서(230)에 기반하여 도 4와 같은 맵을 생성할 수 있다. 라이다 센서(220)는 360도 방향으로 사물들을 센싱할 수 있다. 또는 둘 이상의 라이다 센서(220)를 이용하여 특정 방향 또는 특정 높이의 사물들을 센싱할 수 있다.
마찬가지로 카메라센서(230)도 하나 또는 둘 이상 로봇(1)에 배치되어 시야각의 한계를 극복할 수 있다.
이하, 제어부(250)가 도 4의 포즈 그래프의 노드들의 상관관계를 생성하는 과정을 살펴본다. 상관관계는 인접한 노드들 사이의 휠 오도메트리 정보 및 다른 센서들의 정보를 결합하는 과정(도 5) 및 비인접 노드들 사이의 비주얼 프레임 기반 에센셜 그래프를 생성한 후 라이다 프레임에 기반하여 루프 상관 관계를 생성하는 과정(도 6 내지 도 10)에서 생성된다.
생성된 상관관계는 도 4의 라이다 브랜치, 비주얼 브랜치, 백본과 함께 맵저장부(210)에 저장된다. 이후 맵 저장부(210)에 저장된 정보를 이용하여 로봇(1)은 퓨전 SLAM을 수행할 수 있다.
도 5는 본 발명의 일 실시예에 의한 인접한 노드 간의 상관 관계를 산출하는 과정을 보여준다.
인접한 노드 사이에는 각 센서들이 획득한 정보들을 조합하여 상관관계를 설정할 수 있다. 일 실시예로, 제어부(250)는 라이다 센서(220), 카메라 센서(230) 및 휠의 회전/방향의 조합에 의한 상관관계를 산출할 수 있다.
노드 사이에 적용 가능한 오도메트리로는 WO(Wheel Odometry), VO(Visual Odometry), LO(Lidar Odometry)가 있다. WO는 휠 인코더(260)에 기반한 오도메트리를 지시한다.
LO는 라이다 센서(220)에 기반한 라이다 오도메트리 정보이다. VO는 카메라 센서(230)에 기반한 비주얼 오도메트리 정보이다. 이들 각각 또는 이들의 조합으로 제어부(250)는 인접한 노드 사이의 상관관계를 산출할 수 있다.
제어부(250)는 i를 1로 설정하고(S51), 상관관계의 산출 프로세스를 시작한다. 제어부(250)는 인접하는 노드인 vi와 v(i+1) 사이에 공통으로 등록된 키프레임을 확인한다(S52). 공통으로 등록되었다는 의미는 동일한 종류(라이다 프레임 또는 비주얼 프레임)이 양쪽 노드에 각각 등록되었음을 의미한다.
즉 제1노드에 제1라이다 프레임이 등록되고 제2노드에 제2라이다 프레임 및 제1비주얼 프레임이 등록된 경우 제1노드 및 제2노드에 공통으로 등록된 것은 라이다 프레임이며 이들 사이의 오도메트리 정보는 제1라이다 프레임 및 제2라이다 프레임에 기반하여 산출된다.
제어부(250)의 확인 결과 공통으로 등록된 키프레임에 비주얼 키프레임이 포함되는지에 따라 S54 또는 S55로 분기한다.
제어부(250)는 공통으로 등록된 키프레임에 비주얼 키프레임이 포함되지 않은 경우 S54에서 공통으로 등록된 키프레임이 라이다 키프레임인지 확인한다(S54). S54에서 공통으로 포함된 키프레임이 라이다 키프레임이 아닌 경우 두 개의 노드 (vi와 v(i+1)) 사이에는 공통된 키프레임이 전혀 없으므로, 이들의 에지 ei(i+1)의 상관관계로 WO를 설정한다(S56). 이는 두 노드 사이에서 휠로 이동한 휠 오도메트리 정보가 상관관계로 설정되는 것을 의미한다.
한편 S54에서 공통으로 포함된 키프레임이 라이다 키프레임인 경우 두 개의 노드 (vi와 v(i+1)) 사이에는 공통된 키프레임은 라이다 키프레임 뿐이므로, 이들의 에지 ei(i+1)의 상관관계로 WO ⊙ LO 를 설정한다(S57). 이는 두 노드 사이에서 휠로 이동한 오도메트리 정보 및 라이다 키프레임으로 매칭하는 오도메트리 정보를 조합한 정보가 상관관계로 설정되는 것을 의미한다.
⊙는 일종의 연산자이다. A ⊙ B 는 A와 B의 정보를 결합하는 것을 의미한다. 이 과정에서 A 의 정보와 B 의 정보 중 상이한 것은 우선 순위가 높은 A 또는 B의 정보를 우선하여 적용할 수 있다.
라이다 키프레임으로 매칭하는 라이다 오도메트리 정보란 두 노드 사이의 라이다 키프레임의 차이를 일 실시예로 한다.
제어부(250)는 공통으로 등록된 키프레임에 비주얼 키프레임이 포함된 경우 S55에서 공통으로 등록된 키프레임에 라이다 키프레임이 더 포함되는지를 확인한다(S55). S55에서 공통으로 포함된 키프레임이 라이다 키프레임이 없을 경우, 두 개의 노드 (vi와 v(i+1)) 사이에는 공통된 키프레임이 비주얼 키프레임만 존재하는 경우이다.
따라서, 이들 두 노드의 에지 ei(i+1)의 상관관계로 WO ⊙ VO 를 설정한다(S58). 이는 두 노드 사이에서 휠로 이동한 오도메트리 정보 및 비주얼 키프레임으로 매칭하는 오도메트리 정보를 조합한 정보가 상관관계로 설정되는 것을 의미한다.
비주얼 키프레임으로 매칭하는 비주얼 오도메트리 정보란 두 노드 사이의 비주얼 키프레임의 차이를 일 실시예로 한다.
한편 S55에서 공통으로 등록된 키프레임에 라이다 키프레임이 더 포함될 경우 두 개의 노드 (vi와 v(i+1)) 사이에는 공통된 키프레임으로 라이다 키프레임 및 비주얼 키프레임이 등록된 상태이다. 따라서, 이들의 에지 ei(i+1)의 상관관계로 (WO ⊙ LO) ⊙ VO 를 설정한다(S59).
이는 두 노드 사이에서 휠로 이동한 오도메트리 정보 및 라이다 키프레임으로 매칭하는 오도메트리 정보 및 비주얼 키프레임으로 매칭하는 오도메트리 정보를 모두 조합한 정보가 상관관계로 설정되는 것을 의미한다.
인접한 두 개의 노드 (vi와 v(i+1)) 사이의 에지에 대한 상관관계가 설정되었으므로, 제어부(250)는 i를 1 증가시켜서(S60), 그 다음 인접 노드들 간의 상관 관계를 설정한다. 만약 i가 최대 노드의 수(MAX_NODE, 도 4에서는 5의 값을 가짐)와 같거나 큰 경우(S61) 모든 노드들에 대한 에지의 상관관계 설정이 완료되었으므로 종료한다.
S56 내지 S59에서 살표본 상관관계의 조합에 대해 보다 상세히 살펴보면 다음과 같다.
i) WO-Only: 로봇의 움직임으로 발생하는 바퀴와 같은 이동부의 회전을 포함하는 오도메트리 정보이다. 라이다 센서(220) 또는 카메라 센서(230)를 이용할 수 없는 경우 로봇은 WO 만을 이용하여 위치를 확인한다.
ii) WO ⊙ LO: WO 및 LO를 모두 이용할 수 있는 오도메트리 정보이다. 라이다 센서(220)를 이용할 수 있는 경우의 조합이다. 도 4에서 v1과 v2 노드는 공통으로 라이다 키프레임이 등록되었다. 따라서 도 4의 v1-v2 사이의 e12는 WO ⊙ LO를 이용할 수 있다.
iii) WO ⊙ VO: WO 및 VO를 모두 이용할 수 있는 오도메트리 정보이다. 카메라 센서(230)를 이용할 수 있는 경우의 조합이다. 도 4에서 v3과 v4 노드는 공통으로 비주얼 키프레임이 등록되었다. 따라서 도 4의 v3-v4 사이의 e34는 WO ⊙ VO를 이용할 수 있다.
iv) (WO ⊙ LO) ⊙ VO: WO 및 LO 및 VO를 모두 이용할 수 있는 오도메트리 정보이다. 라이다 센서(220)와 카메라 센서(230)를 이용할 수 있는 경우의 조합이다. 도 4에서 v4과 v5 노드는 공통으로 라이다 키프레임 및 비주얼 키프레임이 등록되었다. 따라서 도 4의 v4-v5 사이의 e45는 (WO ⊙ LO) ⊙ VO 를 이용할 수 있다.
라이다 센서(220)가 센싱한 정보들을 비교함에 있어서의 속도가 카메라 센서(220)가 센싱한 정보를 비교함에 있어서의 속도 보다 빠를 경우, 제어부(250)는 LO에 우선적으로 매칭을 수행할 수 있다.
반대로, 라이다 센서(220)가 센싱한 정보를 비교함에 있어서의 속도가 센서(220)가 센싱한 정보를 비교함에 있어서의 속도 보다 느릴 경우, 제어부(250)는 VO에 우선적으로 매칭을 수행할 수 있다. 이는 라이다 센서(220)가 3차원으로 센싱할 경우 예시적으로 적용되며 (WO ⊙ VO) ⊙ LO 와 같이 조합될 수 있다.
도 5는 각각의 제1레이어의 백본의 노드들(v1~v5)에 등록된 키프레임의 종류에 따라 노드 사이의 오도메트리 정보를 다양하게 결합할 수 있다. 특히, 인접 노드간의 상관 관계에 있어서, 모든 센서들을 이용할 수 없는 경우이거나 또는 모든 센서들의 데이터가 키프레임으로 등록되지 않은 경우에도 로봇(1)은 휠 오도메트리 또는 여기에 다른 센서에 기반한 오도메트리 정보를 이용할 수 있다.
도 5의 과정을 정리하면 다음과 같다. 제어부(250)는 인접한 두 개의 노드들을 선정하여, 두 개의 노드들 사이의 이동에서 이동부(휠 인코더(260)가 생성한 휠 오도메트리 정보를 두 개의 노드 사이의 상관관계로 설정하여 맵 저장부에 저장한다(S56).
또한 제어부(250)는 두 개의 노드들 사이에 등록된 두 개의 라이다 프레임을 이용하여 라이다 오도메트리 정보를 생성한다(S57). 이는 두 개의 노드 사이의 두 라이다 프레임(각 노드에 등록된 각각의 라이다 프레임)의 차분값을 포함할 수 있다. 또는 두 개의 노드 사이에서 거리에 따라 차분값을 변화시켜 라이다 오도메트리 정보로 저장할 수 있다.
또한 제어부(250)는 두 개의 노드들 사이에 등록된 두 개의 비주얼 프레임을 이용하여 비주얼 오도메트리 정보를 생성한다(S58). 이는 두 개의 노드 사이의 두 비주얼 프레임(각 노드에 등록된 각각의 비주얼 프레임)의 차분값을 포함할 수 있다. 또는 두 개의 노드 사이에서 거리에 따라 차분값을 변화시켜 비주얼 오도메트리 정보로 저장할 수 있다.
도 6은 본 발명의 일 실시예에 의한 비인접 노드 사이의 상관 관계를 설정하는 과정을 보여준다. 그리고 도 7 내지 도 10은 각 단계 별로 산출된 결과를 보여준다. 비 인접 노드들의 상관관계는 도 4의 e13, e25, e35에 적용될 수 있다. 제어부(250)는 노드들 중에서 인접하지 않으며 비주얼 프레임이 등록된 노드들을 선정하여 에센셜 그래프를 생성한 후, 생성된 에센셜 그래프에서 라이다 프레임이 등록된 노드들 사이의 상관 관계를 생성한다.
도 6에서 제어부(250)는 라이다 센서가 센싱할 수 있는 최대 센싱 거리 (R_max) 내에서 특정 노드(reference node)를 중심으로 비주얼 키프레임 사이에 특정한 상관관계 또는 제약 관계(constraint)로 연결되어 있는 노드 set을 검색한다(S64). 이 때, 제어부(250)는 constraint의 연결 정도에 따라 약한 상관 관계(weak constraints) 또는 강한 상관관계(strong constraints)들을 모두 검색할 수 있다.
도 7은 도 6의 S64 단계를 보여준다. 제어부(250)는 특정한 참조 노드(reference node)를 기준으로 라이다 센서가 센싱할 수 있는 최대 센싱 거리 (R_max)를 반경으로 검색 영역(searching region)의 크기를 설정한다. 그리고 제어부(250)는 참조 노드를 중심으로 비주얼 키프레임이 포함된 프레임 노드들 사이에 상관관계가 존재하는지 확인한다.
도 7의 참조 노드를 중심으로 강한 상관관계의 비주얼 에지(strong visual edge)로 연결된 노드들과 약한 상관관계의 비주얼 에지(weak visual edge)로 연결된 노드들이 점선으로 연결된다.
다음으로 도 6에 도시된 바와 같이 제어부(250)는 도 7의 방식으로 계속 영역을 확장시켜가며 노드를 검색하고 상관 관계들(constraints)을 연결한다. S64 단계를 반복하여 제어부(250)는 비주얼 키프레임 간의 상관관계들의 집합으로 구성된 코비지빌리티 그래프(covisibility graph)를 생성한다(S65). 도 8에서 살펴본다.
도 8은 도 6의 S65 단계를 보여준다. 비주얼 키프레임이 포함된 프레임 노드들이 비주얼 에지들로 연결된 상태이다. 라이다 키프레임만 등록된 프레임 노드들은 에지에 연결되지 못한 상태이다.
보다 상세히, 도 7과 같이 제어부(250)는 기준 노드를 중심으로 1차로 상관관계의 존재 여부에 따라 비주얼 에지를 생성한 후, 다른 노드들 사이에도 에지가 존재하는지 확인하여 도 8과 같은 결과를 생성한다.
다음으로 도 6에 도시된 바와 같이, 제어부(250)는 코비지빌리티 그래프에서 강한 상관관계의 에지들만을 남기고 그 외의 에지 및 노드들을 제거하여 에센셜 그래프(essential graph)를 생성한다(S66). 여기서 에센셜 그래프는 두 노드에 각각 등록된 제1비주얼 프레임 및 제2비주얼 프레임을 비교한 결과 유사도가 높아 퓨전SLAM시 로봇의 위치 확인을 위해 비교 가능한 노드들 및 이들의 에지를 포함한다.
예를 들어 에센셜 그래프를 구성하며 강한 상관관계가 설정된 제1노드 및 제2노드와 에센셜 그래프를 구성하지 않는 제3노드을 가정한다.
제1노드에는 제1 비주얼 프레임이 등록되었고, 제2노드에는 제2비주얼 프레임이 등록되었고, 제3노드에는 제3비주얼 프레임이 등록되었다.
제어부(250)는 유사도가 높은 비주얼 프레임이 등록된 노드들을 에센셜 그래프로 구성한다. 그 결과, 제1비주얼 프레임 및 제2비주얼 프레임의 유사도가 제3비주얼 프레임 및 제1비주얼 프레임의 유사도 보다 높다. 또는 제1비주얼 프레임 및 제2비주얼 프레임의 유사도가 제3비주얼 프레임 및 제2비주얼 프레임의 유사도 보다 높다.
도 9는 도 6의 S66 단계를 보여준다. 강한 상관관계의 비주얼 에지들로 연결된 비주얼 키프레임들이 배치된 상태이다.
도 8의 결과에서 제어부(250)는 약한 상관관계의 에지들을 제거하고, 라이다 키프레임만 등록된 프레임 노드 역시 제거한다.
다음으로 도 6에 도시된 바와 같이 제어부(250)는 에센셜 그래프 중에서 라이다 키프레임을 포함하는 프레임 노드만 남긴다(S67). 남겨진 노드들을 이용하여 노드들 간의 루프 클로징 상관 관계(loop closing constraints)를 생성하는데 적용한다.
도 10은 도 6의 S67 단계를 보여준다. 라이다 키프레임이 포함된 프레임 노드들 만이 남겨지며, 이들 노드들의 에지는 루프 클로징 상관 관계(loop closing constraints)를 생성하는데 적용한다.
루프 클로징 상관관계의 일 실시예로 상관관계는 두 개의 노드 사이의 변위를 포함할 수 있다. 이 경우 두 노드 사이에서 로봇이 이동할 경우 제어부(250)는 현재 라이다 센서가 확인한 값과 전술한 변위를 비교하여 로봇의 위치를 확인할 수 있다.
도 6 내지 도 10에서 살펴본 바와 같이, 로봇(1)의 제어부(250)는 인접하지 않는 노드간의 상관관계를 생성한다.
즉, 라이다 정보(라이다 키프레임)과 비주얼 정보(비전 정보, 비주얼 키프레임)이 모두 등록된 노드에서 제어부(250)는 라이다 센서(220)를 이용하여 카메라 센서(230)가 획득한 정보의 정확도를 검증 및 보정할 수 있다.
제어부(250)는 카메라 센서(230)가 획득한 키프레임들 또는 프레임들 중에서 라이다 센서를 이용하여 매칭할 노드를 선택할 수 있다.
또한, 제어부(250)는 비인접 노드 간 상관 관계의 산출을 위해 전수한 비주얼 에센셜 그래프(visual essential graph)을 이용하여 라이다 센서(220)가 센싱한 정보들의 비인접 노드 간 상관 관계를 산출할 수 있다.
도 6의 프로세스는 다음의 알고리즘과 같이 수행될 수 있다. 도 6의 S64에 대응하여, 제어부(250)는 참조 노드(Reference node)를 중심으로 최대 라이다 센싱 범위 내에서 모든 비주얼 에지(비주얼 키프레임이 등록된 노드들 사이의 에지)를 추출한다(알고리즘의 2~4라인 참고). 추출된 에지들은 후보 비주얼 에지(Ecandidate)에 포함된다.
다음으로 알고리즘의 라인 7(도 6의 S65, S66)에 대응하여 제어부(250)는 후보 비주얼 에지를 이용하여 비주얼 에센셜 그래프를 생성한다.
이후, 알고리즘의 라인 10 및 11(도 6의 S67)에 대응하여 제어부(250)는 라이다 키프레임이 존재하는 노드 및 이들 노드들 사이의 거리, 그리고 이들 노드 사이의 라이다 에지의 존재 여부에 기반하여 라이다 루프 상관 관계를 추출한다.
라인 11의 Topological_dist(vi, vj) 함수는 두 개의 노드(vi, vj) 사이의 최소거리의 패스(shortest path)에 포함된 에지의 수를 의미한다.
Figure PCTKR2019005885-appb-I000001
도 6 내지 도 10의 과정을 적용할 경우, 제어부(250)는 라이다 상관관계를 이용하여 이전에 생성된 약하거나 잘못된 비주얼 루프 상관 관계(visual loop constraints)를 재정의할 수 있다. 즉, 라이다 루프 상관 관계를 이용하여 비주얼 루프 상관 관계의 에러를 보상할 수 있다. 또한 라이다 센서(220)의 센싱이 카메라 센서(230) 보다 정밀하기 때문에 전체 맵의 정밀도를 높일 수 있다.
전술한 실시예들을 적용할 경우, 이종의 센서들이 생성한 이종의 데이터들(라이다 키프레임, 비주얼 키프레임)이 등록된 맵에서 키프레임이 등록된 노드들 사이의 상관관계를 제어부(250)가 산출하여, 노드 간 이동 과정에서 퓨전 SLAM의 정확도를 높일 수 있다.
즉, 퓨전 SLAM에 기반하면 로봇(1)은 하나의 센서를 이용한 SLAM 방식(LiDAR-only SLAM 또는 visual-only SLAM)과 비교할 때, 노드 간의 상관관계(constraints 또는 edge)를 더 정확하게 산출할 수 있다. 왜냐하면 어느 하나의 센서의 오류를 다른 센서가 보정할 수 있기 때문이다.
도 5에 제시된 바와 같이 제어부(250)는 오도메트리 정보를 센서 별로 결합하여 인접한 노드들 사이의 상관 관계를 산출할 수 있다.
또한, 도 6 내지 도 10에 제시된 바와 같이 제어부(250)는 비전 정보들(비주얼 키프레임 등)을 기반으로 에센셜 그래프를 생성하여 이에 기반하여 비인접 노드 간의 상관 관계를 산출할 수 있다.
그 결과 본 발명의 실시예에 의한 로봇(1)은 라이다 센서(220)가 생성한 정보와 카메라 센서(230)가 생성한 정보를 모두 이용하여 퓨전 SLAM을 수행할 수 있으므로 이동 시 정확도를 높인다. 그리고 로봇(1)은 인접/비인접 노드 사이의 상관관계를 생성하고 이를 퓨전 SLAM 시 이용할 수 있으므로 SLAM 과정에서의 정확도를 높일 수 있다.
이하 로봇이 노드들의 상관 관계가 저장된 맵을 이용하여 주행하며 로봇의 현재 위치를 계산하는 과정을 살펴본다. 즉, 제어부(250)는 휠 오도메트리 정보, 라이다 센서가 센싱한 라이다 프레임, 카메라 센서가 센싱한 비주얼 프레임과 맵 저장부(210)에 저장된 노드들의 상관관계를 비교하여 현재 로봇의 위치를 계산한다.
도 11은 본 발명의 일 실시예에 의한 퓨전 슬램을 수행하는 과정을 보여준다. 도 11은 인접 노드 사이의 오도메트리 정보를 이용한 실시예이다. 로봇(1)은 제1프레임 노드에서 제2프레임 노드로 이동중이다(S81). 이 과정에서 제어부(250)는 제1프레임 노드 및 제2프레임 노드 사이의 오도메트리 정보의 종류를 확인한다(S81).
확인 결과 오도메트리 정보가 WO(Wheel Odometry) 만 존재할 경우(S83) 제어부(250)는 제1프레임 노드와 제2프레임 노드의 에지에 등록된 WO와 로봇의 휠 인코더(260)가 센싱한 값을 비교하여 로봇의 현재 위치를 계산한다(S84).
예를 들어 제1프레임 노드에서 출발하여 이동하는 과정에서 휠 인코더(260)가 이동 거리를 산출한다. 제어부(260)는 제1프레임 노드와 제2프레임 노드 사이의 WO(휠 오도메트리 정보)에 기반하여 로봇(1)의 현재 위치를 제1프레임 노드 및 제2프레임 노드를 기준으로 산출할 수 있다.
S83에서 WO 이외에도 오도메트리 정보가 존재할 경우 S85로 이동한다. 제1프레임 노드와 제2프레임 노드의 에지에 등록된 오도메트리 정보의 종류가 WO 및 LO인 경우, S86 단계로 분기한다.
제어부(250)는 제1프레임 노드와 제2프레임 노드의 에지에 등록된 오도메트리 정보의 종류가 WO 및 LO 둘 만 존재하는 경우(S86), S87 단계로 분기한다. 그리고 제어부(250)는 제1프레임 노드 및 제2프레임 노드의 에지에 등록된 WO, LO와 로봇의 휠 인코더가 센싱한 값(휠 오도메트리 정보), 라이다 센서가 센싱한 정보(라이다 프레임)를 비교하여 로봇의 현재 위치를 계산한다(S87).
한편, S86에서 에지에 등록된 오도메트리 정보의 종류가 WO 및 LO 및 VO인 경우 S88 단계로 분기한다. 제어부(250)는 제1프레임 노드 및 제2프레임 노드의 에지에 등록된 WO, LO, VO와 로봇의 휠 인코더가 센싱한 값(휠 오도메트리 정보), 라이다 센서가 센싱한 정보(라이다 프레임), 카메라 센서가 센싱한 정보(비주얼 프레임)를 비교하여 로봇의 현재 위치를 계산한다(S88).
S88에서 라이다 프레임의 데이터 크기와 비주얼 프레임의 데이터 크기에 따라 위치 계산 시 하나의 프레임을 우선 적용할 수 있다. 예를 들어, 라이다 프레임을 비교하는데 소요되는 시간이 적을 경우 WO 및 LO를 이용하여 먼저 로봇(1)의 위치를 계산한다. 제어부(250)는 비주얼 오도메트리 정보보다 라이다 오도메트리 정보를 우선적으로 휠 오토메트리 정보와 결합하여 로봇의 현재 위치를 계산한다.
그리고 위치 계산의 정확도를 높이기 위해 VO를 이용하여 로봇(1)의 위치를 재산정할 수 있다. 이는 2차원 라이다 센서가 라이다 프레임을 생성할 경우 데이터의 크기가 작으므로 라이다 프레임 및 라이다 오도메트리 정보를 우선 적용할 수 있다.
역으로, 비주얼 프레임을 비교하는데 소요되는 시간이 적을 경우 WO 및 VO를 이용하여 먼저 로봇(1)의 위치를 계산한다. 그리고 위치 계산의 정확도를 높이기 위해 LO를 이용하여 로봇(1)의 위치를 재산정할 수 있다. 이는 3차원 라이다 센서가 라이다 프레임을 생성할 경우 데이터의 크기가 크므로 비주얼 프레임 및 비주얼 오도메트리 정보를 우선 적용할 수 있다.
한편, S85에서 에지에 등록된 오도메트리 정보의 종류가 WO 및 L가 아닌 경우, 이는 WO 및 VO이므로 S89 단계로 분기한다. 그리고 제어부(250)는 제1프레임 노드 및 제2프레임 노드의 에지에 등록된 WO, VO와 로봇의 휠 인코더가 센싱한 값(휠 오도메트리 정보), 카메라 센서가 센싱한 정보(비주얼 프레임)를 비교하여 로봇의 현재 위치를 계산한다(S89).
도 11을 정리하면, 라이다 센서(220)는 이동 과정에서 로봇의 외부에 배치된 사물과 로봇 사이의 거리를 센싱하여 제1라이다 프레임을 생성한다. 그리고 카메라 센서(230)는 이동 과정에서 로봇의 외부에 배치된 사물을 촬영하여 제1비주얼 프레임을 생성한다. 또한 제어부(250)는 맵 저장부(210)로부터 포즈 그래프의 노드들 사이의 상관관계를 추출한다.
그 결과 제어부(250)는 제1프레임 노드에서 제2프레임 노드로 이동하는 과정에서 현재 로봇의 위치에서 생성된 제1라이다 프레임 또는 제1비주얼 프레임 또는 현재 위치의 휠 오도메트리 정보와 노드들 사이의 추출된 상관관계(오도메트리 정보, WO, LO, VO)를 비교하여 로봇의 위치를 계산한다.
즉, 인접 노드 사이에 등록된 라이다 오도메트리 정보 또는 비주얼 오도메트리 정보가 하나라도 있을 경우, 제어부(250)는 이를 휠 오도메트리 정보와 결합하여 로봇의 현재 위치를 계산할 수 있다.
제어부(250)는 휠 오도메트리 정보(WO)와 휠 인코더가 센싱한 로봇의 이동거리를 비교하고, 라이다 오도메트리 정보(LO) 또는 비주얼 오도메트리 정보(VO)와 로봇이 센싱한 라이다 프레임/비주얼 프레임을 비교하여 로봇의 현재 위치를 계산한다.
도 12는 본 발명의 일 실시예에 의한 퓨전 슬램을 수행하는 과정을 보여준다. 도 12는 비인접 노드 사이의 오도메트리 정보를 이용한 실시예이다.
로봇(1)이 제1프레임 노드에서 제2프레임 노드로 이동 중이다(S91). 제1프레임 노드 및 제2프레임 노드가 비인접 노드이다. 그리고 제1프레임 노드 및 제2프레임 노드 사이에 라이다 루프 클로징 상관 관계가 등록된 상태를 가정한다.
제어부(250)는 제1프레임 노드 및 제2프레임 노드 사이의 루프 클로징 상관 관계를 추출한다(S92). 그리고 제어부(250)는 라이다 센서가 생성한 제1라이다 프레임과 루프 클로징 상관 관계를 비교하여 로봇의 현재 위치를 제1프레임 노드와 제2프레임 노드를 기준으로 계산한다(S93).
본 발명의 실시예를 구성하는 모든 구성 요소들이 하나로 결합되거나 결합되어 동작하는 것으로 설명되었다고 해서, 본 발명이 반드시 이러한 실시예에 한정되는 것은 아니며, 본 발명의 목적 범위 내에서 모든 구성 요소들이 하나 이상으로 선택적으로 결합하여 동작할 수도 있다. 또한, 그 모든 구성 요소들이 각각 하나의 독립적인 하드웨어로 구현될 수 있지만, 각 구성 요소들의 그 일부 또는 전부가 선택적으로 조합되어 하나 또는 복수 개의 하드웨어에서 조합된 일부 또는 전부의 기능을 수행하는 프로그램 모듈을 갖는 컴퓨터 프로그램으로서 구현될 수도 있다. 그 컴퓨터 프로그램을 구성하는 코드들 및 코드 세그먼트들은 본 발명의 기술 분야의 당업자에 의해 용이하게 추론될 수 있을 것이다. 이러한 컴퓨터 프로그램은 컴퓨터가 읽을 수 있는 저장매체(Computer Readable Media)에 저장되어 컴퓨터에 의하여 읽혀지고 실행됨으로써, 본 발명의 실시예를 구현할 수 있다. 컴퓨터 프로그램의 저장매체로서는 자기 기록매체, 광 기록매체, 반도체 기록소자를 포함하는 저장매체를 포함한다. 또한 본 발명의 실시예를 구현하는 컴퓨터 프로그램은 외부의 장치를 통하여 실시간으로 전송되는 프로그램 모듈을 포함한다.
이상에서는 본 발명의 실시예를 중심으로 설명하였지만, 통상의 기술자의 수준에서 다양한 변경이나 변형을 가할 수 있다. 따라서, 이러한 변경과 변형이 본 발명의 범위를 벗어나지 않는 한 본 발명의 범주 내에 포함되는 것으로 이해할 수 있을 것이다.

Claims (16)

  1. 로봇의 이동 과정에서 휠 오도메트리 정보를 생성하는 휠 인코더;
    상기 로봇의 외부에 배치된 사물과 로봇 사이의 거리를 센싱하여 라이다 프레임을 생성하는 라이다 센서;
    상기 로봇의 외부에 배치된 사물을 촬영하여 비주얼 프레임을 생성하는 카메라 센서;
    상기 하나 이상의 라이다 프레임을 포함하는 라이다 브랜치와 상기 하나 이상의 비주얼 프레임을 포함하는 비주얼 브랜치와 상기 라이다 프레임 또는 상기 비주얼 프레임 중 어느 하나 이상과 등록된 프레임 노드를 둘 이상 포함하는 백본으로 구성된 포즈 그래프를 생성하며, 상기 포즈 그래프의 노드들 사이의 상관 관계를 생성하는 제어부; 및
    상기 라이다 브랜치, 상기 비주얼 브랜치, 상기 백본, 상기 상관 관계를 저장하는 맵 저장부를 포함하는, 다중 센서 및 인공지능에 기반하여 맵을 생성하고 노드들의 상관 관계를 설정하는 로봇.
  2. 제1항에 있어서,
    상기 제어부는 상기 노드들 중에서 인접한 두 개의 노드들을 선정하여, 상기 두 개의 노드들 사이의 이동에서 상기 휠 인코더가 생성한 휠 오도메트리 정보를 상기 두 개의 노드 사이의 상관관계로 설정하여 상기 맵 저장부에 저장하는, 다중 센서 및 인공지능에 기반하여 맵을 생성하고 노드들의 상관 관계를 설정하는 로봇.
  3. 제2항에 있어서,
    상기 제어부는 상기 두 개의 노드들 사이에 등록된 두 개의 라이다 프레임을 이용하여 라이다 오도메트리 정보를 생성하는, 다중 센서 및 인공지능에 기반하여 맵을 생성하고 노드들의 상관 관계를 설정하는 로봇.
  4. 제2항에 있어서,
    상기 제어부는 상기 두 개의 노드들 사이에 등록된 두 개의 비주얼 프레임을 이용하여 비주얼 오도메트리 정보를 생성하는, 다중 센서 및 인공지능에 기반하여 맵을 생성하고 노드들의 상관 관계를 설정하는 로봇.
  5. 제1항에 있어서,
    상기 제어부는 상기 노드들 중에서 인접하지 않으며 비주얼 프레임이 등록된 노드들을 선정하여 에센셜 그래프를 생성하며,
    상기 제어부는 상기 생성된 에센셜 그래프에서 라이다 프레임이 등록된 노드들 사이의 상관 관계를 생성하는, 다중 센서 및 인공지능에 기반하여 맵을 생성하고 노드들의 상관 관계를 설정하는 로봇.
  6. 제5항에 있어서,
    상기 에센셜 그래프의 제1노드의 제1비주얼 프레임 및 상기 제2노드의 제2비주얼 프레임의 유사도가 상기 에센셜 그래프에 포함되지 않은 제3노드의 제3비주얼 프레임 및 상기 제1비주얼 프레임의 유사도 보다 높은, 다중 센서 및 인공지능에 기반하여 맵을 생성하고 노드들의 상관 관계를 설정하는 로봇.
  7. 로봇의 이동 과정에서 휠 오도메트리 정보를 생성하는 휠 인코더;
    상기 로봇의 외부에 배치된 사물과 로봇 사이의 거리를 센싱하여 제1라이다 프레임을 생성하는 라이다 센서;
    상기 로봇의 외부에 배치된 사물을 촬영하여 제1비주얼 프레임을 생성하는 카메라 센서;
    상기 제1라이다 프레임과 비교 가능한 다수의 라이다 프레임들을 포함하는 라이다 브랜치를 저장하고, 상기 제1비주얼 프레임과 비교 가능한 다수의 비주얼 프레임들을 포함하는 비주얼 브랜치를 저장하며, 상기 저장된 라이다 프레임 또는 상기 저장된 비주얼 프레임 중 어느 하나 이상과 등록된 프레임 노드를 둘 이상 포함하는 백본으로 구성된 포즈 그래프를 저장하며, 상기 포즈 그래프의 노드들 사이의 상관 관계를 저장하는 맵 저장부; 및
    제1프레임 노드에서 제2프레임 노드로 이동하는 과정에서 현재 로봇의 위치에서 생성된 상기 제1라이다 프레임 또는 상기 제1비주얼 프레임 또는 현재 위치의 휠 오도메트리 정보를 이용하여 현재 로봇의 위치를 계산하는 제어부를 포함하는, 다중 센서 및 인공지능에 기반하여 노드들의 상관 관계가 저장된 맵을 이용하여 주행하는 로봇.
  8. 제7항에 있어서,
    상기 제1프레임 노드 및 상기 제2프레임 노드가 인접 노드이며,
    상기 제어부는 상기 제1프레임 노드 및 상기 제2프레임 노드 사이에 등록된 라이다 오도메트리 정보 또는 비주얼 오도메트리 정보 중 어느 하나 이상과 상기 휠 오도메트리 정보를 이용하여 현재 로봇의 위치를 계산하는, 다중 센서 및 인공지능에 기반하여 노드들의 상관 관계가 저장된 맵을 이용하여 주행하는 로봇.
  9. 제8항에 있어서,
    상기 제1프레임 노드 및 상기 제2프레임 노드 사이에 라이다 오도메트리 정보 및 비주얼 오도메트리 정보가 모두 등록된 경우, 상기 제어부는 상기 비주얼 오도메트리 정보보다 상기 라이다 오도메트리 정보를 우선적으로 상기 휠 오도메트리 정보와 결합하여 현재 로봇의 위치를 계산하는, 다중 센서 및 인공지능에 기반하여 노드들의 상관 관계가 저장된 맵을 이용하여 주행하는 로봇.
  10. 제7항에 있어서,
    상기 제1프레임 노드 및 상기 제2프레임 노드가 비인접 노드이며,
    상기 제1프레임 노드 및 상기 제2프레임 노드 사이에 라이다 루프 클로징 상관 관계가 등록된 경우,
    상기 제어부는 상기 제1라이다 프레임과 상기 루프 클로징 상관 관계를 비교하여 상기 로봇의 현재 위치를 상기 제1프레임 노드 및 상기 제2프레임 노드를 기준으로 설정하는, 다중 센서 및 인공지능에 기반하여 노드들의 상관 관계가 저장된 맵을 이용하여 주행하는 로봇.
  11. 로봇의 휠 인코더가 상기 로봇의 이동 과정에서 휠 오도메트리 정보를 생성하는 단계;
    상기 로봇의 라이다 센서가 상기 로봇의 외부에 배치된 사물과 로봇 사이의 거리를 센싱하여 라이다 프레임을 생성하는 단계;
    상기 로봇의 상기 카메라 센서가 상기 로봇의 외부에 배치된 사물을 촬영하여 비주얼 프레임을 생성하는 단계;
    상기 로봇의 제어부가 상기 하나 이상의 라이다 프레임을 포함하는 라이다 브랜치와 상기 하나 이상의 비주얼 프레임을 포함하는 비주얼 브랜치와 상기 라이다 프레임 또는 상기 비주얼 프레임 중 어느 하나 이상과 등록된 프레임 노드를 둘 이상 포함하는 백본으로 구성된 포즈 그래프를 생성하는 단계;
    상기 제어부가 상기 포즈 그래프의 노드들 사이의 상관 관계를 생성하는 단계; 및
    상기 제어부가 상기 라이다 브랜치, 상기 비주얼 브랜치, 상기 백본, 상기 상관 관계를 맵 저장부에 저장하는 단계를 포함하는, 다중 센서 및 인공지능에 기반하여 맵을 생성하고 노드들의 상관 관계를 설정하는 방법.
  12. 제11항에 있어서,
    상기 제어부는 상기 노드들 중에서 인접한 두 개의 노드들을 선정하는 단계; 및
    상기 제어부느 상기 두 개의 노드들 사이의 이동에서 상기 휠 인코더가 생성한 휠 오도메트리 정보를 상기 두 개의 노드 사이의 상관관계로 설정하여 상기 맵 저장부에 저장하는 단계를 더 포함하는, 다중 센서 및 인공지능에 기반하여 맵을 생성하고 노드들의 상관 관계를 설정하는 방법.
  13. 제12항에 있어서,
    상기 제어부는 상기 두 개의 노드들 사이에 등록된 두 개의 라이다 프레임을 이용하여 라이다 오도메트리 정보를 생성하는 단계를 더 포함하는, 다중 센서 및 인공지능에 기반하여 맵을 생성하고 노드들의 상관 관계를 설정하는 방법.
  14. 제12항에 있어서,
    상기 제어부는 상기 두 개의 노드들 사이에 등록된 두 개의 비주얼 프레임을 이용하여 비주얼 오도메트리 정보를 생성하는 단계를 더 포함하는, 다중 센서 및 인공지능에 기반하여 맵을 생성하고 노드들의 상관 관계를 설정하는 방법.
  15. 제11항에 있어서,
    상기 제어부는 상기 노드들 중에서 인접하지 않으며 비주얼 프레임이 등록된 노드들을 선정하여 에센셜 그래프를 생성하며 단계; 및
    상기 제어부는 상기 생성된 에센셜 그래프에서 라이다 프레임이 등록된 노드들 사이의 상관 관계를 생성하는 단계를 더 포함하는, 다중 센서 및 인공지능에 기반하여 맵을 생성하고 노드들의 상관 관계를 설정하는 방법.
  16. 제15항에 있어서,
    상기 에센셜 그래프의 제1노드의 제1비주얼 프레임 및 상기 제2노드의 제2비주얼 프레임의 유사도가 상기 에센셜 그래프에 포함되지 않은 제3노드의 제3비주얼 프레임 및 상기 제1비주얼 프레임의 유사도 보다 높은, 다중 센서 및 인공지능에 기반하여 맵을 생성하고 노드들의 상관 관계를 설정하는 방법.
PCT/KR2019/005885 2019-05-16 2019-05-16 다중 센서 및 인공지능에 기반하여 맵을 생성하고 노드들의 상관 관계를 설정하며 맵을 이용하여 주행하는 로봇 및 맵을 생성하는 방법 WO2020230931A1 (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020197023288A KR20210155833A (ko) 2019-05-16 2019-05-16 다중 센서 및 인공지능에 기반하여 맵을 생성하고 노드들의 상관 관계를 설정하며 맵을 이용하여 주행하는 로봇 및 맵을 생성하는 방법
US16/760,013 US11614747B2 (en) 2019-05-16 2019-05-16 Robot generating map and configuring correlation of nodes based on multi sensors and artificial intelligence, and moving based on map, and method of generating map
PCT/KR2019/005885 WO2020230931A1 (ko) 2019-05-16 2019-05-16 다중 센서 및 인공지능에 기반하여 맵을 생성하고 노드들의 상관 관계를 설정하며 맵을 이용하여 주행하는 로봇 및 맵을 생성하는 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/KR2019/005885 WO2020230931A1 (ko) 2019-05-16 2019-05-16 다중 센서 및 인공지능에 기반하여 맵을 생성하고 노드들의 상관 관계를 설정하며 맵을 이용하여 주행하는 로봇 및 맵을 생성하는 방법

Publications (1)

Publication Number Publication Date
WO2020230931A1 true WO2020230931A1 (ko) 2020-11-19

Family

ID=73290065

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2019/005885 WO2020230931A1 (ko) 2019-05-16 2019-05-16 다중 센서 및 인공지능에 기반하여 맵을 생성하고 노드들의 상관 관계를 설정하며 맵을 이용하여 주행하는 로봇 및 맵을 생성하는 방법

Country Status (3)

Country Link
US (1) US11614747B2 (ko)
KR (1) KR20210155833A (ko)
WO (1) WO2020230931A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113075686A (zh) * 2021-03-19 2021-07-06 长沙理工大学 一种基于多传感器融合的电缆沟智能巡检机器人建图方法

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
CN114563000B (zh) * 2022-02-23 2024-05-07 南京理工大学 一种基于改进型激光雷达里程计的室内外slam方法
CN115774265B (zh) * 2023-02-15 2023-05-12 江苏集萃清联智控科技有限公司 用于工业机器人的二维码和激光雷达融合定位方法与装置

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 한국과학기술원 그래프 구조 기반의 무인체 위치 추정 장치 및 그 방법
KR20180118500A (ko) * 2017-04-21 2018-10-31 한국과학기술원 2차원 레이저 스캐너를 이용한 계층적 구조 기반의 맵 제작 방법 및 장치

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10989542B2 (en) * 2016-03-11 2021-04-27 Kaarta, Inc. Aligning measured signal data with slam localization data and uses thereof
US10921816B2 (en) 2017-04-21 2021-02-16 Korea Advanced Institute Of Science And Technology Method and apparatus for producing map based on hierarchical structure using 2D laser scanner
CN112544097A (zh) * 2018-07-06 2021-03-23 诺基亚技术有限公司 用于执行三维无线电模型构建的方法、装置和计算机程序
US11016175B2 (en) * 2018-10-10 2021-05-25 Ford Global Technologies, Llc Transportation infrastructure communication and control
EP3899683A4 (en) * 2018-12-20 2022-08-10 Augean Robotics, Inc. COLLABORATIVE AUTONOMOUS GROUND VEHICLE
US10955257B2 (en) * 2018-12-28 2021-03-23 Beijing Didi Infinity Technology And Development Co., Ltd. Interactive 3D point cloud matching
EP3918437A4 (en) * 2019-01-31 2022-11-02 Brain Corporation SYSTEMS AND METHODS FOR LASER ODOMETRY AND IMAGING FOR AUTONOMOUS ROBOTS

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 한국과학기술원 그래프 구조 기반의 무인체 위치 추정 장치 및 그 방법
KR20180118500A (ko) * 2017-04-21 2018-10-31 한국과학기술원 2차원 레이저 스캐너를 이용한 계층적 구조 기반의 맵 제작 방법 및 장치

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113075686A (zh) * 2021-03-19 2021-07-06 长沙理工大学 一种基于多传感器融合的电缆沟智能巡检机器人建图方法
CN113075686B (zh) * 2021-03-19 2024-01-12 长沙理工大学 一种基于多传感器融合的电缆沟智能巡检机器人建图方法

Also Published As

Publication number Publication date
KR20210155833A (ko) 2021-12-24
US11614747B2 (en) 2023-03-28
US20210405650A1 (en) 2021-12-30

Similar Documents

Publication Publication Date Title
WO2020226187A1 (ko) 다중 센서 및 인공지능에 기반하여 맵을 생성하고 맵을 이용하여 주행하는 로봇
WO2020230931A1 (ko) 다중 센서 및 인공지능에 기반하여 맵을 생성하고 노드들의 상관 관계를 설정하며 맵을 이용하여 주행하는 로봇 및 맵을 생성하는 방법
WO2020241930A1 (ko) 멀티 센서를 이용하여 위치를 추정하는 방법 및 이를 구현하는 로봇
WO2015194867A1 (ko) 다이렉트 트래킹을 이용하여 이동 로봇의 위치를 인식하기 위한 장치 및 그 방법
WO2015194864A1 (ko) 이동 로봇의 맵을 업데이트하기 위한 장치 및 그 방법
WO2015194866A1 (ko) 에지 기반 재조정을 이용하여 이동 로봇의 위치를 인식하기 위한 장치 및 그 방법
WO2018230852A1 (ko) 3차원 공간의 이동 객체를 식별하는 방법 및 이를 구현하는 로봇
WO2015194868A1 (ko) 광각 카메라가 탑재된 이동 로봇의 주행을 제어하기 위한 장치 및 그 방법
WO2020141924A1 (en) Apparatus and method of generating map data of cleaning space
WO2020241934A1 (ko) 멀티 센서를 동기화시켜 위치를 추정하는 방법 및 이를 구현하는 로봇
WO2015194865A1 (ko) 검색 기반 상관 매칭을 이용하여 이동 로봇의 위치를 인식하기 위한 장치 및 그 방법
WO2018074903A1 (ko) 이동 로봇의 제어방법
WO2018186583A1 (ko) 주행 지면의 장애물을 식별하는 방법 및 이를 구현하는 로봇
WO2019135437A1 (ko) 안내 로봇 및 그의 동작 방법
WO2018038488A1 (ko) 이동 로봇 및 그 제어방법
WO2018135870A1 (en) Mobile robot system and control method thereof
WO2018230845A1 (ko) 비전 정보에 기반한 위치 설정 방법 및 이를 구현하는 로봇
WO2017091008A1 (ko) 이동 로봇 및 그 제어 방법
WO2019235743A1 (ko) 장애물 회피에 기반하여 경유 지점을 주행하는 로봇 및 주행하는 방법
WO2016074169A1 (zh) 一种对目标物体的检测方法、检测装置以及机器人
WO2011013862A1 (ko) 이동 로봇의 위치 인식 및 주행 제어 방법과 이를 이용한 이동 로봇
WO2020141900A1 (ko) 이동 로봇 및 그 구동 방법
WO2021002499A1 (ko) 군집 로봇을 이용하여 사용자의 위치를 추적하는 방법, 태그장치 및 이를 구현하는 로봇
WO2015016619A1 (en) Electronic apparatus, method of controlling the same, and image reproducing apparatus and method
WO2019045293A1 (ko) 타겟 지향 로컬 경로를 생성하는 방법 및 이를 구현하는 로봇

Legal Events

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

Ref document number: 19928995

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

Country of ref document: EP

Kind code of ref document: A1