WO2020241930A1 - 멀티 센서를 이용하여 위치를 추정하는 방법 및 이를 구현하는 로봇 - Google Patents
멀티 센서를 이용하여 위치를 추정하는 방법 및 이를 구현하는 로봇 Download PDFInfo
- Publication number
- WO2020241930A1 WO2020241930A1 PCT/KR2019/006524 KR2019006524W WO2020241930A1 WO 2020241930 A1 WO2020241930 A1 WO 2020241930A1 KR 2019006524 W KR2019006524 W KR 2019006524W WO 2020241930 A1 WO2020241930 A1 WO 2020241930A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- frame
- robot
- lidar
- location information
- visual
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 80
- 230000000007 visual effect Effects 0.000 claims abstract description 124
- 239000000284 extract Substances 0.000 claims description 13
- 230000004044 response Effects 0.000 claims description 5
- 230000008569 process Effects 0.000 description 50
- 238000013473 artificial intelligence Methods 0.000 description 43
- 230000006870 function Effects 0.000 description 26
- 238000013528 artificial neural network Methods 0.000 description 23
- 238000010801 machine learning Methods 0.000 description 12
- 238000012549 training Methods 0.000 description 11
- 238000004891 communication Methods 0.000 description 9
- 230000033001 locomotion Effects 0.000 description 9
- 238000013135 deep learning Methods 0.000 description 8
- 210000002569 neuron Anatomy 0.000 description 7
- 238000004422 calculation algorithm Methods 0.000 description 6
- 230000004927 fusion Effects 0.000 description 6
- 238000012545 processing Methods 0.000 description 6
- 238000004140 cleaning Methods 0.000 description 5
- 238000004590 computer program Methods 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 5
- 230000004807 localization Effects 0.000 description 5
- 230000003993 interaction Effects 0.000 description 4
- 238000003058 natural language processing Methods 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 239000000470 constituent Substances 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 238000013507 mapping Methods 0.000 description 3
- 210000000225 synapse Anatomy 0.000 description 3
- 230000004913 activation Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 230000007423 decrease Effects 0.000 description 2
- 230000007613 environmental effect Effects 0.000 description 2
- 239000000463 material Substances 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000002787 reinforcement Effects 0.000 description 2
- 238000012952 Resampling Methods 0.000 description 1
- 230000001133 acceleration Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000001186 cumulative effect Effects 0.000 description 1
- 238000007405 data analysis Methods 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000015541 sensory perception of touch Effects 0.000 description 1
- 230000005236 sound signal Effects 0.000 description 1
- 230000000946 synaptic effect Effects 0.000 description 1
Images
Classifications
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J11/00—Manipulators not otherwise provided for
- B25J11/008—Manipulators for service tasks
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J13/00—Controls for manipulators
- B25J13/08—Controls for manipulators by means of sensing devices, e.g. viewing or touching devices
- B25J13/088—Controls for manipulators by means of sensing devices, e.g. viewing or touching devices with position, velocity or acceleration sensors
- B25J13/089—Determining the position of the robot with reference to its environment
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J19/00—Accessories fitted to manipulators, e.g. for monitoring, for viewing; Safety devices combined with or specially adapted for use in connection with manipulators
- B25J19/02—Sensing devices
- B25J19/021—Optical sensing devices
- B25J19/022—Optical sensing devices using lasers
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J19/00—Accessories fitted to manipulators, e.g. for monitoring, for viewing; Safety devices combined with or specially adapted for use in connection with manipulators
- B25J19/02—Sensing devices
- B25J19/021—Optical sensing devices
- B25J19/023—Optical sensing devices including video camera means
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/10—Programme-controlled manipulators characterised by positioning means for manipulator elements
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/16—Programme controls
- B25J9/1602—Programme controls characterised by the control system, structure, architecture
- B25J9/161—Hardware, e.g. neural networks, fuzzy logic, interfaces, processor
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/16—Programme controls
- B25J9/1628—Programme controls characterised by the control loop
- B25J9/1653—Programme controls characterised by the control loop parameters identification, estimation, stiffness, accuracy, error analysis
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/16—Programme controls
- B25J9/1679—Programme controls characterised by the tasks executed
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/16—Programme controls
- B25J9/1694—Programme 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
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/16—Programme controls
- B25J9/1694—Programme 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/1697—Vision controlled systems
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01C—MEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
- G01C21/00—Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
- G01C21/005—Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 with correlation of navigation data from several sources, e.g. map or contour matching
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01S—RADIO 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/00—Systems using the reflection or reradiation of electromagnetic waves other than radio waves, e.g. lidar systems
- G01S17/02—Systems using the reflection of electromagnetic waves other than radio waves
- G01S17/06—Systems determining position data of a target
- G01S17/42—Simultaneous measurement of distance and other co-ordinates
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01S—RADIO 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/00—Systems using the reflection or reradiation of electromagnetic waves other than radio waves, e.g. lidar systems
- G01S17/86—Combinations of lidar systems with systems other than lidar, radar or sonar, e.g. with direction finders
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01S—RADIO 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/00—Systems using the reflection or reradiation of electromagnetic waves other than radio waves, e.g. lidar systems
- G01S17/88—Lidar systems specially adapted for specific applications
- G01S17/89—Lidar systems specially adapted for specific applications for mapping or imaging
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01S—RADIO 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/00—Systems using the reflection or reradiation of electromagnetic waves other than radio waves, e.g. lidar systems
- G01S17/88—Lidar systems specially adapted for specific applications
- G01S17/93—Lidar systems specially adapted for specific applications for anti-collision purposes
- G01S17/931—Lidar systems specially adapted for specific applications for anti-collision purposes of land vehicles
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01S—RADIO 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
- G01S7/00—Details of systems according to groups G01S13/00, G01S15/00, G01S17/00
- G01S7/48—Details of systems according to groups G01S13/00, G01S15/00, G01S17/00 of systems according to group G01S17/00
- G01S7/4808—Evaluating distance, position or velocity data
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05D—SYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
- G05D1/00—Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
- G05D1/02—Control of position or course in two dimensions
- G05D1/021—Control of position or course in two dimensions specially adapted to land vehicles
- G05D1/0231—Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means
- G05D1/0246—Control 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/0248—Control 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
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05D—SYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
- G05D1/00—Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
- G05D1/02—Control of position or course in two dimensions
- G05D1/021—Control of position or course in two dimensions specially adapted to land vehicles
- G05D1/0268—Control of position or course in two dimensions specially adapted to land vehicles using internal positioning means
- G05D1/0274—Control of position or course in two dimensions specially adapted to land vehicles using internal positioning means using mapping information stored in a memory device
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V20/00—Scenes; Scene-specific elements
- G06V20/10—Terrestrial scenes
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J11/00—Manipulators not otherwise provided for
- B25J11/008—Manipulators for service tasks
- B25J11/0085—Cleaning
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/30—Nc systems
- G05B2219/40—Robotics, robotics mapping to robotics vision
- G05B2219/40411—Robot assists human in non-industrial environment like home or office
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/30—Nc systems
- G05B2219/45—Nc applications
- G05B2219/45098—Vacuum cleaning robot
Definitions
- the present invention relates to a method for estimating a position using a multi-sensor and a technology for a robot traveling using the same.
- 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.
- the robot may perform localization of estimating the position of the robot as a result of comparing the information on the map with the information acquired during the driving process.
- the robot is to estimate the position of the robot based on various types of sensors.
- a candidate position of the robot is calculated based on information generated by each of the sensors, and the final position information of the robot is estimated using these.
- the robot when the accuracy of any one of the sensors of the robot is low or a number of positions corresponding to the information obtained by any one of the sensors are detected, the robot can increase the accuracy of position estimation by using another sensor. To be.
- a robot that estimates a position using a multi-sensor and artificial intelligence senses the distance between an object placed outside the robot and the robot to generate a lidar frame, and the robot It includes a camera sensor that generates a visual frame by photographing the placed object.
- a robot that estimates a location using a multi-sensor and artificial intelligence compares the lidar frame stored in the map storage unit with the lidar frame calculated by the lidar sensor, and the visual frame stored in the map storage unit And a control unit that compares the visual frame calculated by the camera sensor and determines the accuracy of the location information based on the lidar sensor to calculate the current position of the robot.
- a robot that estimates a location using multi-sensors and artificial intelligence calculates the current location of the robot using odometry information.
- the control unit of the robot that estimates the position using multi-sensors and artificial intelligence according to an embodiment of the present invention stores a map of the second and third lidar frames similar to the first lidar frame calculated by the lidar sensor. It is extracted from the unit, and the controller extracts a second visual frame similar to the first visual frame calculated by the camera sensor from the map storage unit.
- a control unit of a robot that estimates a location using a multi-sensor and artificial intelligence is a second lid frame or a third lid extracted from the map storage unit using the second visual frame extracted from the map storage unit. Select one of the frames and calculate the current position of the robot using the selected lidar frame.
- the controller of the robot that estimates the position using multi-sensors and artificial intelligence according to an embodiment of the present invention is a second visual frame when the similarity between the first visual frame and the second visual frame calculated by the camera sensor is higher than a set reference value.
- the first lidar frame calculated by the lidar sensor corresponding to the location information of is stored in the map storage unit.
- the lidar sensor of the robot senses the distance between the robot and the object disposed outside the robot in the process of moving the robot by the moving unit. Generating a first lidar frame; generating a first visual frame by photographing an object placed outside of the robot by a camera sensor of the robot; and Computing the current position of the robot by comparing the first lidar frame, comparing the visual frame registered in the frame node of the pose graph with the first visual frame, and determining the accuracy of the comparison result of the first lidar frame.
- the robot may estimate the position of the robot based on various types of sensors.
- a candidate position of the robot may be calculated based on information generated by each of the sensors, and the final position information of the robot may be estimated using these.
- the robot uses another sensor.
- the accuracy of location estimation can be improved.
- 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 estimating a location using various sensors according to an embodiment of the present invention.
- FIG. 6 shows a process of estimating the position of a robot using a lidar sensor and a camera sensor according to an embodiment of the present invention.
- FIG. 7 shows a detailed process of estimating the position of a robot using a lidar sensor and a camera sensor according to an embodiment of the present invention.
- FIG. 8 shows a detailed process of estimating the position of a robot using a lidar sensor and a camera sensor according to an embodiment of the present invention.
- FIG. 9 shows a location estimation process according to an embodiment of the present invention.
- FIGS. 12 and 13 show a process of displaying a candidate position of a robot and calculating a final position using two types of sensors according to an embodiment of the present invention.
- FIG 14 shows the configuration of an AI server according to an embodiment of the present invention.
- FIG. 15 shows a process of updating a pose graph based on artificial intelligence in a SLAM process by a robot 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 separately.
- 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 robot can perform both the function of generating a map and the function of estimating the position of the robot using the map.
- the robot can only provide the ability to create a map.
- the robot can only provide a function of estimating the location of the robot using a map.
- the robot of the present invention mainly provides a function of estimating the position of the robot using a map. Additionally, the robot can provide the ability to create or modify maps.
- the LiDAR sensor 220 may sense surrounding objects in 2D or 3D. In the case of a two-dimensional lidar sensor, it can sense the position of an object in a range of 360 degrees around the robot. LiDAR information sensed at a specific location may constitute one LiDAR frame. That is, the lidar sensor 220 generates a lidar frame by sensing the distance between the robot and an object disposed outside the robot.
- the camera sensor 230 uses a general camera as an embodiment. Two or more camera sensors 230 may be used to solve the limitation of the viewing angle. Images taken at a specific location constitute vision information. That is, the camera sensor 230 photographs an object disposed outside the robot and generates a visual frame including vision information.
- the robot 1 to which the present invention is applied performs fusion-simultaneous localization and mapping (SLAM) using the lidar sensor 220 and the camera sensor 230.
- SLAM fusion-simultaneous localization and mapping
- Fusion SLAM can also be used by combining lidar information and vision information. These lidar information and vision information can be configured as a map.
- the accuracy of position estimation is high compared to a method that uses only one sensor (LiDAR-only SLAM, visual-only SLAM). That is, if fusion SLAM is performed by combining the lidar information and the vision information, a better map can be obtained in terms of map quality.
- the map quality is a criterion for both a vision map composed of vision information and a lidar map composed of lidar information.
- the quality of each map improves during fusion SLAM because the sensors can use information that each sensor cannot acquire or lack.
- lidar information or vision information can be extracted from one map and used.
- only the lidar information, vision information, or both can be applied to the robot's localization to suit the amount of memory held by the robot or the computational capability of the computational processor.
- the interface unit 290 receives information from a user. Various information such as touch input and voice input is input from the user, and the result is output. In addition, the interface unit 290 may output a map stored by the robot 1 or may output a process of moving the robot by overlapping the map.
- the interface unit 290 may provide predetermined information to a user.
- the controller 250 generates a map as shown in FIG. 4 to be described later, and estimates the position of the robot in the process of moving the robot based on the map.
- the communication unit 280 enables the robot 1 to transmit and receive information by communicating with another robot or an external server.
- the robot 1 may generate each map using respective sensors (lidar sensor, camera sensor). Alternatively, the robot 1 may create a map using these sensors and then create a map that extracts only the content corresponding to a specific sensor from the map again.
- the map of the present invention may include odometry information based on the rotation of the wheel.
- the odometry information is information obtained by calculating the distance the robot has moved by using the number of rotations of the wheels of the robot or the difference in the number of rotations of both wheels.
- the robot can calculate how far the robot has moved using odometry information.
- the control unit 250 of FIG. 2 may further include an artificial intelligence unit 255 for artificial intelligence work and processing.
- a plurality of lidar sensors 220 and camera sensors 230 of the robot may be disposed outside the robot 1 in order to identify external objects.
- lidar sensor 220 and camera sensor 230 shown in FIG. 2 various types of sensors (lidar sensor, infrared sensor, ultrasonic sensor, depth sensor, image sensor, microphone, etc.) are external to the robot 1. Is placed.
- the controller 250 collects and processes the information sensed by the sensors.
- the artificial intelligence unit 255 inputs information processed by the lidar sensor 220 and the camera sensor 230, and other sensors or information accumulated and stored by the robot 1 in the process of moving, and the controller 250 It is possible to output a result necessary to determine an external situation, process information, or create a moving path.
- the robot 1 may store location information of various objects arranged in a space in which the robot moves as a map.
- Objects include fixed objects such as walls and doors, and movable objects such as pots and desks.
- the artificial intelligence unit 255 uses the map information, the lidar sensor 220 and the camera sensor 230, and information provided by other sensors to determine the path the robot will move, or the range that the robot should cover when working. Data can be output.
- the artificial intelligence unit 255 may recognize objects disposed around the robot using information provided by the lidar sensor 220 and the camera sensor 230 and other sensors.
- the artificial intelligence unit 255 may receive an image and output meta information about the image. Meta-information includes the name of the object in the image, the distance between the object and the robot, the type of the object, and whether or not the object is located on the map.
- Information provided by the lidar sensor 220, the camera sensor 230, and other sensors are input to the input node of the deep learning network of the artificial intelligence unit 255, and then the deep learning network of the artificial intelligence unit 255.
- the result is output from the output node of the artificial intelligence unit 255 through information processing of the hidden layer of.
- the controller 250 may calculate a movement path of the robot using data calculated by the artificial intelligence unit 255 or data processed by various sensors.
- the robot of FIG. 2 may include one or more of a function of generating a map and a function of estimating a location while driving by using the map. 3 may be viewed as an example of a space in which the robot of FIG. 2 generates a map or estimates a location using a map.
- 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.
- the robot moves in the space of FIG. 3, and the current position of the robot may be checked by comparing it with information previously stored in the map storage unit 210.
- 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 pose graph as shown in FIG. 4 may be generated by a robot providing a map generating function and stored in the map storage unit 210 of all robots providing a driving function.
- the pose graph of FIG. 4 can be used by the robot 1 for position estimation even when only one of the camera sensor 230 and the lidar sensor 220 is operable.
- the robot 1 can increase the accuracy of location estimation by using another sensor. .
- a robot 1 including both one or more camera sensors 230 and one or more lidar sensors 220 may estimate a location using information acquired by multi-sensors with Fusion-SLAM (Fusion-SLAM). I can. If any one of the position estimation results estimated using each sensor is true, the robot 1 can estimate the position.
- Fusion-SLAM Fusion-SLAM
- the location may be estimated using information stored for each sensor stored in the map storage unit 210.
- the lidar sensor 220 may cover 360 degrees.
- FIG. 5 shows a process of estimating a location using various sensors according to an embodiment of the present invention.
- the robot 1 may be equipped with two types of sensors, such as a first sensor and a second sensor, to perform position estimation.
- a first sensor uses the lidar sensor 220 as an embodiment
- the second sensor uses the camera sensor 230 as an embodiment. Or vice versa.
- the control unit 250 compares the information acquired by the first sensor with the information stored in the map storage unit (S41). In an embodiment, the controller 250 may compare information registered in the frame node of the pose graph stored in the map storage unit 210 with information acquired by the first sensor.
- the controller 250 checks whether there is information acquired by the second sensor (S42). When there is information acquired by the second sensor, the controller 250 verifies the accuracy of the information acquired by the first sensor based on the information acquired by the second sensor (S43).
- the controller 250 performs position estimation using the information with the highest accuracy (S44).
- the controller 250 when there is no information acquired by the second sensor in S42, the controller 250 performs position estimation using the information acquired by the first sensor (S45). In this case, the controller 250 may perform position estimation by additionally using odometry information based on the rotation, direction, and movement distance of the wheel.
- FIG. 6 shows a process of estimating the position of a robot using a lidar sensor and a camera sensor according to an embodiment of the present invention.
- the control unit 250 uses the information (Image, 51) acquired by the camera sensor 230 and the wheel odometry (52) calculated from the wheel of the moving part of the robot 1 to the map storage unit 210a. Compare with the visual frames registered in the pose graph of. At this time, the control unit 250 selects and compares only some of all visual frames currently stored by the robot 1 using the wheel odometry information. As a result, it is possible to reduce the time and computational resources required for comparison of visual frames.
- the controller 250 may estimate the current position of the robot as a result of comparing the visual frames 51 and 210a. This is an embodiment in which the sensing value of the lidar sensor 220 is not used.
- the controller 250 may estimate the position of the robot by performing Visual SLAM (Visual SLAM) by performing steps S51 (extracting a visual frame) and S53 (estimating position).
- Visual SLAM Visual SLAM
- steps S51 extract a visual frame
- S53 estimating position
- the controller 250 uses the information (LiDAR scan data, 53) acquired by the lidar sensor 220 and the wheel odometry (52) calculated from the wheel of the moving part of the robot 1 to save the map. Compare with the lidar frames registered in the pose graph of (210a). In this case, the control unit 250 selects and compares only some of all lidar frames currently stored by the robot 1 using the wheel odometry information. As a result, it is possible to reduce the time and computational resources required for comparison of lidar frames.
- the controller 250 may estimate the current position of the robot as shown in 55 as a result of comparing the lidar frames 53 and 210a. This is an embodiment in which the sensing value of the camera sensor 230 is not used.
- the controller 250 may estimate the position of the robot by performing LiDAR SLAM (LiDAR SLAM) by performing steps S51 (extracting the lidar frame) and S52 (estimating through comparison with the lidar frame).
- LiDAR SLAM LiDAR SLAM
- steps S51 extract the lidar frame
- S52 estimating through comparison with the lidar frame
- the lidar sensor 220 and the camera sensor 230 can obtain meaningful information. This is when the first sensor of FIG. 5 is the lidar sensor 220 and the second sensor is the camera sensor 230 or the second sensor of FIG. 5 is the lidar sensor 220, and the second sensor is the camera sensor ( 230) can be applied to all.
- the steps of S41-S42-S43-S44 of FIG. 5 correspond to a process of performing position estimation.
- the controller 250 uses the information (LiDAR scan data, 53) acquired by the lidar sensor 220 and the wheel odometry (52) calculated from the wheel of the moving part of the robot 1 to save the map. Compare with the lidar frames registered in the pose graph of (210a). In this case, the controller 250 compares the visual frames registered in the pose graph using the image 51 acquired by the camera sensor 230.
- the controller 250 selects and compares only some of the entire lidar frames currently stored by the robot 1 using the wheel odometry information. Likewise, the controller 250 selects and compares only some of all visual frames currently stored by the robot 1 using the wheel odometry information.
- the controller 250 may estimate the current position of the robot as shown in 55 as a result of comparing the lidar frames 53 and 210a. This is an embodiment in which the sensing value of the camera sensor 230 is not used.
- the controller 250 may estimate the position of the robot by performing LiDAR SLAM (LiDAR SLAM) by performing steps S51 (extracting the lidar frame) and S52 (estimating through comparison with the lidar frame).
- LiDAR SLAM LiDAR SLAM
- steps S51 extract the lidar frame
- S52 estimating through comparison with the lidar frame
- the controller 250 extracts a candidate frame node from the map storage unit 210a using the acquisition information 51 of the camera sensor 230. Likewise, the control unit 250 extracts a candidate frame node from the map storage unit 210a using the acquisition information 53 of the lidar sensor 220.
- the controller 250 may compare the extracted frame nodes and estimate the position of the robot using any overlapping frame nodes.
- the controller 250 prioritizes information acquired by any one sensor, and when there are a plurality of these information, the accuracy may be increased by using the information acquired by another sensor.
- the controller 250 searches for and extracts a plurality of lidar frames comparable to the lidar frames obtained by the lidar sensor 220 from the map storage unit 210a.
- the controller 250 searches for and extracts one or more visual frames comparable to the visual frames acquired by the camera sensor 230 from the map storage unit 210a.
- the controller 250 checks a frame node in which the visual frame extracted from the map storage unit 210a is registered or a LiDAR frame registered in a frame node adjacent thereto, and selects a LiDAR frame with high accuracy among the plurality of previously extracted LiDAR frames.
- 7 shows a detailed process of estimating the position of a robot using a lidar sensor and a camera sensor according to an embodiment of the present invention. 7 illustrates an embodiment of selecting a specific location estimation candidate using the camera sensor 230 when there are a plurality of location estimation candidate locations based on information obtained by the lidar sensor 220.
- the lidar frames extracted by the controller 250 as similar from the map storage 210a using the lidar scan data 53 acquired by the lidar sensor 220 are LF1 and LF2.
- LF1 is registered in the frame node v1
- LF2 is registered in the frame node v4, and the positions of the two are different.
- the controller 250 uses the visual frame 51 acquired by the camera sensor 230.
- the controller 250 extracts the visual frame VF1 as similar to 51 from the map storage unit 210a.
- the controller 250 confirms that VF1 is registered in a frame node called v4. Also, LF2 is registered in the corresponding frame node v4. Therefore, the control unit 250 determines that LF2 is more accurate than LF1, and estimates the position of the robot based on LF2.
- 8 shows a detailed process of estimating the position of a robot using a lidar sensor and a camera sensor according to an embodiment of the present invention. 8 is an embodiment of selecting a specific location estimation candidate using the lidar sensor 220 when there are multiple location estimation candidate locations based on information obtained by the camera sensor 230.
- Visual frames extracted by the control unit 250 as similar from the map storage unit 210a using the camera image 51 acquired by the camera sensor 230 are VF1 and VF2.
- VF1 is registered in a frame node called v1
- VF2 is registered in a frame node called v4, and the positions of the two are different.
- the controller 250 uses the lidar scan data 53 acquired by the lidar sensor 220.
- the controller 250 extracts the lidar frame LF1 as similar to 53 from the map storage unit 210a.
- the controller 250 confirms that LF1 is registered in a frame node called v1. In addition, it checks that VF1 is registered in the frame node v1. Accordingly, the controller 250 determines that VF1 has higher accuracy than VF2, and estimates the position of the robot based on VF1.
- the accuracy of location estimation can be improved.
- the controller 250 may calculate a position estimation result with high accuracy by collecting the position estimation results calculated by these two sensors.
- the map storage unit 210 stores the lidar scan data as a lidar frame and stores the image as a visual feature node.
- some or all of the lidar frames and visual feature nodes are used as key frames and registered in a specific frame node of the pose graph.
- the robot 1 compares the information sensed by the respective sensors with the lidar frame/lidar keyframe or visual feature node/visual frame registered in the map storage unit 210. If both sensors correspond or are similar to the stored information of the same frame node, the corresponding position is set as the current position of the robot.
- the controller 250 may check one or more candidate locations.
- the sensor is not necessarily limited to the camera sensor and the lidar sensor.
- the controller 250 may acquire candidate positions acquired from various types of sensors, such as an IMU (Inertial Measurement Unit) sensor, a GPS sensor, a sonar sensor, and a radar, in the same manner.
- the controller 250 may verify the validity of location information based on information acquired by the lidar sensor 220 through this.
- the controller 250 may converge and determine the final position of the robot by resampling the lidar frame corresponding to the candidate position.
- the controller 250 may select a candidate that increases the accuracy of the position estimation of the current robot from a candidate pose calculated as a result of position estimation for each without combining sensors in the fusion SLAM.
- the map storage unit 210 of FIG. 2 stores the above-described pose graph.
- the map storage unit 210 stores a lidar branch including a plurality of lidar frames comparable to the first lidar frame.
- the map storage unit 210 stores a visual branch including a plurality of visual frames comparable to the first visual frame.
- the map storage unit 210 stores a pose graph composed of a backbone including at least one of the stored lidar frames or stored visual frames and at least two registered frame nodes. In addition, the map storage unit 210 stores odometry information between frame nodes.
- the controller 250 compares the lidar frame registered in the frame node of the pose graph with the first lidar frame acquired by the lidar sensor 220 during the driving process. In addition, the controller 250 compares the visual frame registered in the frame node of the pose graph with the first visual frame acquired by the camera sensor 230 during the driving process.
- the controller 250 searches for a lidar frame stored in the map storage unit 210 to check a location corresponding to the first lidar frame. In addition, as a result of the search, the controller 250 may search for one or more candidate positions of the robot and check the pose graph.
- the controller 250 may check a location corresponding to the first visual frame in order to select any one of the candidate locations. In this process, the controller 250 searches for a visual frame stored in the map storage unit 210. As a result of the search, the controller 250 may search for one or more candidate positions of the robot and check the pose graph.
- the control unit 250 may determine the accuracy of the candidate positions searched based on the lidar frame using the searched candidate positions based on the visual frame.
- FIG. 9 shows a location estimation process according to an embodiment of the present invention.
- the robot moves positions A, B, C and D.
- Information captured by the camera sensor 230 of the robot 1 at each position is CapVF 1 to CapVF 4, respectively.
- the scan data acquired by the lidar sensor 220 of the robot 1 at each position is CapLF 1 to CapLF 4, respectively.
- the map storage unit 210b is in a state in which a pose graph, respective lidar frames, and vision frames are stored.
- the control unit 250 uses odometry information. That is, the control unit 250 may check the direction or distance information that has started from the frame node v1 corresponding to the position A and moved using the odometry information.
- the controller 250 may determine that the current position of the robot is between v1 and v3 using the odometry information. More precisely, when the robot 1 reaches the position of B, it may determine that it is the v2 position based on the odometry information, or at least determine that it is in the vicinity of v2.
- the controller 250 obtains the acquired lidar scan data, that is, the lidar frames CapLF 2 and the lidar frames around v2, which are the lidar frames acquired by the lidar sensor 220, LF 12 , LF 13 , LF 2 , LF 21 ) Can be compared.
- the controller 250 may determine that any one lidar frame (for example, LF 2 ) and CapLF 2 are similar. In this case, the controller 250 may determine the current position of the robot as the position of v2.
- the controller 250 may compare the visual frames CapVF 2 and VF 11 to VF 52 , which are images captured by the camera sensor 230. Alternatively, since the controller 250 determines the movement between v1 to v3, the controller 250 may compare the visual frames CapVF 2 and VF 21 to VF 32 .
- the controller 250 may determine that two lidar frames (eg, LF 13 and LF 21 ) and CapLF 2 are similar. Here, the controller 250 should select one of the two lidar frames with high accuracy.
- the controller 250 compares the visual frame CapVF 2 , which is an image captured by the camera sensor 230, with the visual frames stored in the map storage unit 210b. Although the entire comparison may be performed, the control unit 250 may reduce the range of the visual frame to be compared using odometry information for search efficiency.
- control unit 250 may include a visual frame corresponding to the searched two lidar frames (eg, LF 13 and LF 21 ) as a search range.
- the controller 250 may determine that one visual frame similar to CapVF 2 (eg, VF 31 ) is similar.
- the controller 250 confirms that the position of the robot is the LF 21 position by using the previously searched position information of LF 13 and LF 21 and the position information of VF 31 .
- the controller 250 extracts LF 13 and LF 21 , which are lidar frames similar to CapLF 2 , which is a lidar frame acquired by the lidar sensor 220, from a frame node of the pose graph of the map storage unit 210b.
- controller 250 extracts VF 31 , a visual frame similar to the visual frame CapVF 2 , which is an image captured by the camera sensor 230, from the frame node of the pose graph of the map storage unit 210b.
- the controller 250 selects any one of LF 13 and LF 21 using VF 31 , and the controller 250 calculates the current position of the robot using the selected lidar frame.
- the controller 250 may determine whether the lidar frame registered in the v2 node is one of LF 13 and LF 21 .
- the controller 250 may calculate the location based on the frame node whose location was most recently identified using odometry information.
- the controller 250 of the robot 1 compares the visual frame acquired by the camera sensor 230 with the visual frame stored in the map storage unit 210 during the moving process (S61). And, as a result of the comparison, when the similarity between the two visual frames is greater than or equal to the set reference value (S62), the position of the robot 1 means that the position information of the stored visual frame is very close.
- the controller 250 stores the lidar frame acquired by the lidar sensor using the location information of the visual frame stored in the map storage 210 in the map storage. (S63). Then, the controller 250 estimates the position of the robot 1 (S64).
- CapVF 3 and VF 41 are the same or very similar. If so, the location of C is very similar to the location of the frame node v3. However, in v3, the lidar frame is not registered.
- the controller 250 may register CapLF 3 in v3. The results are shown in FIG. 11.
- FIG. 11 shows a configuration in which a new lidar frame CapLF 3 is added to the map storage unit 210b of FIG. 9. This means that if the similarity between the visual frame (CapVF 3 ) acquired by the robot at the position C and VF 41 is more than a certain standard (for example, 95% or more), the controller 250 determines that the robot has reached the position of VF 41 can do.
- a certain standard for example, 95% or more
- the controller 250 may register CapLF 3 , which is a lidar frame generated by scanning the lidar sensor 220 at the position C, in v3.
- an independent position estimation of the robot may be performed using a camera sensor (vision sensor) and a lidar sensor. Independent here means that it is possible to estimate the position of the robot even if there is only one sensor.
- the robot 1 can perform vision-only localization and lidar-only localization using each sensor.
- each sensor does not affect other sensors. Rather, the accuracy of each sensor can be verified through other sensors, thereby increasing the accuracy of position estimation.
- the robot 1 may perform fusion SLAM using other types of sensors.
- position estimation may fail because the field of view of the camera sensor 230 is restricted in an occlusion in which the lens is covered by another object.
- position estimation may be performed using images in different directions.
- VF 11 /VF 12 when VF 11 /VF 12 is an image captured at the same location by a pair of camera sensors 230, an image is captured with another camera sensor even if one of the camera sensors is covered, 11 /VF 12 can be compared.
- the camera sensor 230 may be vulnerable to environmental changes due to changes in light
- the controller 250 uses the lidar scan data acquired by the lidar sensor 220 to store the map storage unit 210. Compared with the stored lidar frame, position estimation can be performed.
- the controller 250 uses the image data acquired by the camera sensor 230 to the map storage unit 210 Compared with the visual frame stored in the device, it is possible to perform position estimation.
- the viewpoint controller 250 in which both types of sensors can be used may increase the speed of searching for information in the map storage unit or increase the accuracy of location estimation by using the information obtained by each sensor.
- the controller 250 calculates the first position information Pos1 and the second position information Pos2 as candidate positions through this.
- the controller 250 calculates the third position information Pos3 and the fourth position information Pos4 as candidate positions through this.
- the controller 250 may calculate the position of the robot by comparing Pos1 and Pos3/Pos4 and comparing Pos2 and Pos3/Pos4. Alternatively, the controller 250 may calculate the position of the robot by comparing Pos3 and Pos1/Pos2 and comparing Pos4 and Pos1/Pos2.
- the comparison method may be variously set according to a time required to search for a frame in the map storage unit 210, accuracy of a sensor, and the like.
- FIGS. 12 and 13 show a process of displaying a candidate position of a robot and calculating a final position using two types of sensors according to an embodiment of the present invention.
- the space in which the robot moves is displayed as a grid.
- a grid having a size of 20x20 such as 70 is stored in the map 210.
- the controller 250 searches for a lidar frame similar to this in the map storage unit 210. As a result of the search, lidar frames corresponding to specific positions on the grid are searched. The positions of these lidar frames are marked with L1, L2, and L3, respectively.
- the controller 250 searches for a similar visual frame in the map storage unit 210. As a result of the search, visual frames corresponding to specific positions on the grid are searched. Positions of these visual frames are indicated by V1, V2, and V3, respectively.
- the control unit 250 compares the distances of these candidate positions.
- the controller 250 calculates the distance between the following two points.
- the controller 250 calculates a point of the shortest distance among the calculated distances.
- L2V1 is the closest.
- the controller 250 may calculate the position of the robot based on L2 and V1.
- the control unit 250 may be an intermediate point between two points.
- the controller 250 may calculate the location information of the robot by reflecting the similarity between CapLF and L2.
- the controller 250 may calculate the position of the robot by reflecting the similarity between CapVF and V1.
- the controller 250 may calculate the position of the robot by comparing the similarity between CapLF and L2 and the similarity between CapVF and V1.
- the controller 250 may determine that the position of the robot is closer to V1. However, since the similarity to L2 is also 90%, the position of the robot can be set to a position close to V1 at the midpoint of the distance between V1 and L2.
- the controller 250 sets the position of the robot close to L2.
- the controller 250 may reduce the similarity of CapLF and L2 to 90% to 10 (calculation result of 90-80). Likewise, the controller 250 may reduce the similarity of CapVF and V1 to 95% to 15 (calculated result of 95-80).
- the control unit 250 sets the position of the robot by calculating a position of 2:3 between the position information 9 and 16 of V1 and the position information 8 and 17 of L2.
- control unit 250 calculates a point 73 of 2:3 as the position of the robot based on the center point 71 of V1 and the center point 72 of L2.
- the robot 1 may obtain information from each sensor in an area with high or low accuracy of position estimation and store the information.
- the robot 1 may learn the stored information using an artificial intelligence module, it is possible to repeatedly reflect acquisition information of a region with low or high accuracy of position estimation in the pose graph.
- the artificial intelligence unit 255 of the control unit 250 is a kind of learning processor, and the position information accumulated by the robot 1, information acquired by the sensor, and numerical values for the accuracy of position estimation You can update the pose graph by processing.
- Machine learning refers to the field of researching methodologies to define and solve various problems dealt with in the field of artificial intelligence. do.
- Machine learning is also defined as an algorithm that improves the performance of a task through continuous experience.
- An artificial neural network is a model used in machine learning, and may refer to an overall model with problem-solving capabilities, composed of artificial neurons (nodes) that form a network by combining synapses.
- the artificial neural network may be defined by a connection pattern between neurons of different layers, a learning process for updating model parameters, and an activation function for generating an output value.
- the artificial neural network may include an input layer, an output layer, and optionally one or more hidden layers. Each layer includes one or more neurons, and the artificial neural network may include neurons and synapses connecting neurons. In an artificial neural network, each neuron can output a function of an activation function for input signals, weights, and biases input through synapses.
- Model parameters refer to parameters determined through learning, and include weights of synaptic connections and biases of neurons.
- hyperparameters refer to parameters that must be set before learning in a machine learning algorithm, and include a learning rate, iteration count, mini-batch size, and initialization function.
- the purpose of learning artificial neural networks can be seen as determining model parameters that minimize the loss function.
- the loss function can be used as an index to determine an optimal model parameter in the learning process of the artificial neural network.
- Machine learning can be classified into supervised learning, unsupervised learning, and reinforcement learning according to the learning method.
- Supervised learning refers to a method of training an artificial neural network when a label for training data is given, and a label indicates the correct answer (or result value) that the artificial neural network must infer when training data is input to the artificial neural network. It can mean.
- Unsupervised learning may mean a method of training an artificial neural network in a state where a label for training data is not given.
- Reinforcement learning may mean a learning method in which an agent defined in a certain environment learns to select an action or action sequence that maximizes the cumulative reward in each state.
- machine learning implemented as a deep neural network (DNN) including a plurality of hidden layers is sometimes referred to as deep learning (deep learning), and deep learning is a part of machine learning.
- DNN deep neural network
- machine learning is used in the sense including deep learning.
- the artificial intelligence unit 255 described in FIG. 2 may perform an artificial intelligence function.
- the communication unit 280 of the robot 1 may transmit and receive data to and from external devices such as a robot that provides other AI functions or an AI server 300 to be described in FIG. 9 by using wired/wireless communication technology.
- the communication unit 280 may transmit and receive sensor information, a user input, a learning model, and a control signal with external devices.
- communication technologies used by the communication unit 280 include Global System for Mobile communication (GSM), Code Division Multi Access (CDMA), Long Term Evolution (LTE), 5G, Wireless LAN (WLAN), and Wireless-Fidelity (Wi-Fi). ), Bluetooth TM , Radio Frequency Identification (RFID), Infrared Data Association (IrDA), ZigBee, and Near Field Communication (NFC).
- GSM Global System for Mobile communication
- CDMA Code Division Multi Access
- LTE Long Term Evolution
- 5G Fifth Generation
- Wi-Fi Wireless LAN
- Wi-Fi Wireless-Fidelity
- Bluetooth TM Radio Frequency Identification
- RFID Radio Frequency Identification
- IrDA Infrared Data Association
- ZigBee ZigBee
- NFC Near Field Communication
- the interface unit 290 may acquire various types of data.
- the interface unit 290 may include a camera for inputting an image signal, a microphone for receiving an audio signal, and a user input unit for receiving information from a user.
- the information acquired by the lidar sensor 220, the camera sensor 230, or the microphone refers to sensing data or sensor information.
- the interface unit 290, various sensors 220 and 230, and the wheel encoder 260 may acquire training data for model training and input data to be used when acquiring an output using the training model.
- the above-described components may obtain unprocessed input data.
- the controller 250 or the artificial intelligence unit 255 may extract an input feature as a preprocess for the input data.
- the artificial intelligence unit 255 may train a model composed of an artificial neural network by using the training data.
- the learned artificial neural network may be referred to as a learning model.
- the learning model may be used to infer a result value for new input data other than the training data, and the inferred value may be used as a basis for a decision for the robot 1 to perform a certain operation.
- the artificial intelligence unit 255 may perform AI processing together with the learning processor 340 of the AI server 300.
- the artificial intelligence unit 255 may include a memory integrated or implemented in the robot 1.
- the artificial intelligence unit 255 may be implemented using a separate memory, an external memory coupled to the robot 1, or a memory maintained in an external device.
- the robot 1 may acquire at least one of internal information of the robot 1, information on the surrounding environment of the robot 1, and user information by using various sensors.
- the sensors included in the robot 1 include proximity sensors, illuminance sensors, acceleration sensors, magnetic sensors, gyro sensors, inertial sensors, RGB sensors, IR sensors, fingerprint recognition sensors, ultrasonic sensors, optical sensors, microphones, and lidar sensors. 220, a camera sensor 230, and a radar.
- the interface unit 290 described above may generate an output related to visual, auditory, or tactile sense.
- the interface unit 290 may include a display unit outputting visual information, a speaker outputting auditory information, a haptic module outputting tactile information, and the like.
- the memory built into the robot 1 may store data supporting various functions of the robot 1. For example, it is possible to store various sensors built into the robot 1, input data acquired by the interface unit 290, and the like, learning data, learning models, and learning history.
- the controller 250 may determine at least one executable operation of the robot 1 based on information determined or generated using a data analysis algorithm or a machine learning algorithm. In addition, the control unit 250 may perform the determined operation by controlling the components of the robot 1.
- control unit 250 may request, search, receive, or utilize data from the artificial intelligence unit 255 or the memory, and execute a predicted or desirable operation among the at least one executable operation. Components of the robot 1 can be controlled.
- the controller 250 may generate a control signal for controlling the corresponding external device and transmit the generated control signal to the corresponding external device.
- the controller 250 may obtain intention information for a user input, and determine a user's requirement based on the obtained intention information.
- control unit 250 uses at least one of a Speech To Text (STT) engine for converting a speech input into a character string or a Natural Language Processing (NLP) engine for obtaining intention information of a natural language. Intention information corresponding to the input can be obtained.
- STT Speech To Text
- NLP Natural Language Processing
- At this time, at least one or more of the STT engine and the NLP engine may be composed of an artificial neural network, at least partially learned according to a machine learning algorithm. And, at least one of the STT engine or the NLP engine is learned by the artificial intelligence unit 255, learning by the learning processor 340 of the AI server 300, or learning by distributed processing thereof It may have been.
- the control unit 250 collects the history information including the contents of the operation of the robot 1 or the user's feedback on the operation and stores it in the memory or the artificial intelligence unit 255, or in an external device such as the AI server 300. Can be transmitted.
- the collected history information can be used to update the learning model.
- the controller 250 may control at least some of the components of the robot 1 in order to drive the application program stored in the memory 170. Further, the controller 250 may operate by combining two or more of the components included in the robot 1 to drive the application program.
- a separate AI server that communicates with the robot 1 may be disposed and information provided by the robot 1 may be processed.
- FIG 14 shows the configuration of the AI server 300 according to an embodiment of the present invention.
- the artificial intelligence server that is, the AI server 300 may refer to a device that trains an artificial neural network using a machine learning algorithm or uses the learned artificial neural network.
- the AI server 300 may be composed of a plurality of servers to perform distributed processing, or may be defined as a 5G network.
- the AI server 300 may be included as a part of the AI device 100 to perform at least part of AI processing together.
- the AI server 300 may include a communication unit 310, a memory 330, a learning processor 340, a processor 360, and the like.
- the communication unit 310 may transmit and receive data with an external device such as the robot 1.
- the memory 330 may include a model storage unit 331.
- the model storage unit 331 may store a model (or artificial neural network, 231a) being trained or trained through the learning processor 340.
- the learning processor 340 may train the artificial neural network 331a using the training data.
- the learning model may be used while being mounted on the AI server 300 of the artificial neural network, or may be mounted on an external device such as the robot 1 and used.
- the learning model can be implemented in hardware, software, or a combination of hardware and software. When part or all of the learning model is implemented in software, one or more instructions constituting the learning model may be stored in the memory 330.
- the processor 360 may infer a result value for new input data using the learning model, and may generate a response or a control command based on the inferred result value.
- FIG. 15 shows a process of updating a pose graph based on artificial intelligence in a SLAM process by a robot according to an embodiment of the present invention.
- the robot acquires information on an area with high or low accuracy of position estimation. That is, the information sensed by the lidar sensor 220 or the camera sensor 230, the accuracy when the position estimation is performed using this information, and the position information, the artificial intelligence unit 255 or the AI server 300 It is provided to (S91).
- the artificial intelligence unit 255 or the artificial intelligence server 300 compares the accuracy of the information acquired by each sensor according to the location information by using the provided information.
- the artificial intelligence unit 255 or the artificial intelligence server 300 determines whether to update the map by comparing sensor information acquired in an area with high or low accuracy with information stored in an existing map storage unit (S92).
- the controller 250 updates the map using the sensed information according to the map update decision (S93).
- the lidar frame/visual frame registered in the pose graph may be updated.
- the robot 1 may acquire and store information from each sensor in an area with high or low accuracy of position estimation.
- the robot 1 may learn the stored information using an artificial intelligence module, it is possible to repeatedly reflect acquisition information of a region with low or high accuracy of position estimation in the pose graph.
- the robot 1 is applied with AI technology and can be implemented as a guide robot, a transport robot, a cleaning robot, a wearable robot, an entertainment robot, a pet robot, an unmanned flying robot, and the like.
- the robot 1 may include a robot control module for controlling an operation, and the robot control module may mean a software module or a chip implemented with hardware.
- the robot 1 acquires status information of the robot 1 using sensor information acquired from various types of sensors, detects (recognizes) the surrounding environment and objects, generates map data, and travels and travels. It can decide a plan, decide a response to user interaction, or decide an action.
- the robot 1 may use sensor information obtained from at least one sensor among a lidar, a radar, and a camera in order to determine a moving route and a driving plan.
- the robot 1 may perform the above operations using a learning model composed of at least one artificial neural network.
- the robot 1 may recognize a surrounding environment and an object using a learning model, and may determine an operation using the recognized surrounding environment information or object information.
- the learning model may be directly learned by the robot 1 or learned by an external device such as the AI server 300.
- the robot 1 may directly generate a result using a learning model to perform an operation, but transmits sensor information to an external device such as the AI server 300 and receives the generated result to perform the operation. You may.
- the robot 1 determines a movement route and a driving plan using at least one of map data, object information detected from sensor information, or object information obtained from an external device, and controls the driving unit to determine the determined movement path and travel plan. Accordingly, the robot 1 can be driven.
- the map data may include object identification information on various objects arranged in a space in which the robot 1 moves.
- the map data may include object identification information on fixed objects such as walls and doors and movable objects such as flower pots and desks.
- the object identification information may include a name, type, distance, and location.
- the robot 1 may perform an operation or run by controlling a driving unit based on a user's control/interaction.
- the robot 1 may acquire interaction intention information according to a user's motion or voice speech, and determine a response based on the acquired intention information to perform the operation.
- the control unit 250 may mount an artificial intelligence module.
- the controller 250 may mount an artificial intelligence module to search for a LiDAR frame stored in the map storage unit 210 that is similar to information acquired at the current location.
- a deep learning network may be used for image search, and the controller 250 including the deep learning network may increase the image search speed.
- the present invention is not necessarily limited to these embodiments, and all constituent elements within the scope of the present invention are one or more. It can also be selectively combined and operated.
- all of the components may be implemented as one independent hardware, a program module that performs some or all functions combined in one or more hardware by selectively combining some or all of the components. It may be implemented as a computer program having Codes and code segments constituting the computer program may be easily inferred by those skilled in the art of the present invention.
- Such a computer program is stored in a computer-readable storage medium, and is read and executed by a computer, thereby implementing an embodiment of the present invention.
- the storage medium of the computer program includes a magnetic recording medium, an optical recording medium, and a storage medium including a semiconductor recording element.
- the computer program implementing the embodiment of the present invention includes a program module that is transmitted in real time through an external device.
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Robotics (AREA)
- Mechanical Engineering (AREA)
- Radar, Positioning & Navigation (AREA)
- Remote Sensing (AREA)
- General Physics & Mathematics (AREA)
- Electromagnetism (AREA)
- Automation & Control Theory (AREA)
- Computer Networks & Wireless Communication (AREA)
- Multimedia (AREA)
- Human Computer Interaction (AREA)
- Optics & Photonics (AREA)
- Aviation & Aerospace Engineering (AREA)
- Evolutionary Computation (AREA)
- Artificial Intelligence (AREA)
- Fuzzy Systems (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Theoretical Computer Science (AREA)
- Control Of Position, Course, Altitude, Or Attitude Of Moving Bodies (AREA)
Abstract
본 발명은 멀티 센서를 이용하여 위치를 추정하는 방법 및 이를 구현하는 로봇에 관한 것으로, 발명의 일 실시예에 의한 멀티 센서를 이용하여 위치를 추정하는 방법은 이동부가 로봇을 이동시키는 과정에서 로봇의 라이다 센서가 로봇의 외부에 배치된 사물과 로봇 사이의 거리를 센싱하여 제1라이다 프레임을 생성하는 단계와, 로봇의 카메라 센서가 로봇의 외부에 배치된 사물을 촬영하여 제1비주얼 프레임을 생성하는 단계와, 제어부가 로봇의 맵 저장부에 저장된 라이다 프레임과 제1라이다 프레임을 비교하며, 포즈 그래프의 프레임 노드에 등록된 비주얼 프레임과 제1비주얼 프레임을 비교하여 제1라이다 프레임의 비교 결과의 정확도를 판단하여 로봇의 현재 위치를 계산하는 단계를 포함한다.
Description
본 발명은 멀티 센서를 이용하여 위치를 추정하는 방법 및 이를 이용하여 주행하는 로봇에 관한 기술이다.
대형 마트, 백화점, 공항, 골프장 등 인적, 물적 교류가 활발하게 발생하는 공간에는 사람들에게 정보를 제공하기 위해, 또는 사람들에게 편의를 제공하기 위해 로봇이 배치될 수 있다.
전술한 로봇의 종류로는 안내로봇, 보안로봇, 청소로봇 등이 있으며, 이들 다양한 로봇들은 공간 내에서 자신의 위치를 확인하며 이동한다.
한편, 로봇들이 자신의 위치를 확인하고 장애물을 회피하며 이동하기 위해서는 공간에 대한 정보와 로봇의 현재 위치 또는 이전에 로봇이 이동한 경로 등에 대한 정보를 로봇이 유지해야 한다.
로봇이 공간을 확인하고 이동하기 위해 로봇은 맵을 보유할 수 있다. 그런데, 맵을 생성하기 위해서 로봇은 다양한 센서들을 이용하여 맵을 작성할 수 있으며, 맵 내의 정보의 다양한 정보들을 일치시켜 저장하는 것이 필요하다.
또한, 맵을 저장한 후 이를 이용하여 로봇의 위치를 추정하기 위해서는 맵의 정보와 로봇이 주행 과정에서 획득한 정보를 비교하는 것이 필요하다. 즉, 로봇은 맵의 정보와 주행 과정에서 획득한 정보를 비교한 결과 로봇의 위치를 추정하는 로컬라이제이션(localization)을 수행할 수 있다.
한편, 로봇의 위치 추정의 정확도를 높이기 위해서는 센서의 수와 이에 대응하는 맵의 정보의 수가 증가시키는 것이 필요하며 이를 이용한 로봇의 위치 추정 기술을 구현하는 것이 요청된다.
본 명세서에서는 전술한 문제점을 해결하기 위한 것으로, 로봇이 다양한 종류의 센서들에 기반하여 로봇의 위치를 추정하고자 한다.
또한, 본 명세서에서는 각각의 센서들이 생성한 정보에 기반하여 로봇의 후보 위치를 산출하고 이들을 이용하여 로봇의 최종 위치 정보를 추정하고자 한다.
또한, 본 명세서에서는 로봇의 센서들 중 어느 하나의 정확도가 낮거나 어느 하나의 센서가 획득한 정보에 대응하는 위치가 다수 검출된 경우에 로봇이 또다른 센서를 이용하여 위치 추정의 정확도를 높일 수 있도록 한다.
본 발명의 목적들은 이상에서 언급한 목적으로 제한되지 않으며, 언급되지 않은 본 발명의 다른 목적 및 장점들은 하기의 설명에 의해서 이해될 수 있고, 본 발명의 실시예에 의해 보다 분명하게 이해될 것이다. 또한, 본 발명의 목적 및 장점들은 특허 청구 범위에 나타낸 수단 및 그 조합에 의해 실현될 수 있음을 쉽게 알 수 있을 것이다.
발명의 일 실시예에 의한 멀티 센서 및 인공지능을 이용하여 위치를 추정하는 로봇은 로봇의 외부에 배치된 사물과 로봇 사이의 거리를 센싱하여 라이다 프레임을 생성하는 라이다 센서와 로봇의 외부에 배치된 사물을 촬영하여 비주얼 프레임을 생성하는 카메라 센서를 포함한다.
발명의 일 실시예에 의한 멀티 센서 및 인공지능을 이용하여 위치를 추정하는 로봇은 맵 저장부에 저장된 라이다 프레임과 라이다 센서가 산출한 라이다 프레임을 비교하며, 맵 저장부에 저장된 비주얼 프레임과 카메라 센서가 산출한 비주얼 프레임을 비교하여 라이다 센서에 기반한 위치 정보의 정확도를 판단하여 로봇의 현재 위치를 계산하는 제어부를 포함한다.
발명의 일 실시예에 의한 멀티 센서 및 인공지능을 이용하여 위치를 추정하는 로봇은 오도메트리 정보를 이용하여 로봇의 현재 위치를 계산한다.
발명의 일 실시예에 의한 멀티 센서 및 인공지능을 이용하여 위치를 추정하는 로봇의 제어부는 라이다 센서가 산출한 제1라이다 프레임과 유사한 제2라이다 프레임과 제3라이다 프레임을 맵 저장부로부터 추출하고, 제어부는 카메라 센서가 산출한 제1비주얼 프레임과 유사한 제2비주얼 프레임을 맵 저장부로부터 추출한다.
발명의 일 실시예에 의한 멀티 센서 및 인공지능을 이용하여 위치를 추정하는 로봇의 제어부는 맵 저장부에서 추출한 제2비주얼 프레임을 이용하여 맵 저장부에서 추출한 제2라이다 프레임 또는 제3라이다 프레임 중 어느 하나를 선택하고 선택한 라이다 프레임을 이용하여 로봇의 현재 위치로 계산한다.
발명의 일 실시예에 의한 멀티 센서 및 인공지능을 이용하여 위치를 추정하는 로봇의 제어부는 카메라 센서가 산출한 제1비주얼 프레임과 제2비주얼 프레임의 유사도가 설정된 기준값 보다 높을 경우, 제2비주얼 프레임의 위치 정보에 대응하여 라이다 센서가 산출한 제1라이다 프레임을 맵 저장부에 저장한다.
발명의 일 실시예에 의한 멀티 센서 및 인공지능을 이용하여 위치를 추정하는 방법은 이동부가 로봇을 이동시키는 과정에서 로봇의 라이다 센서가 로봇의 외부에 배치된 사물과 로봇 사이의 거리를 센싱하여 제1라이다 프레임을 생성하는 단계와, 로봇의 카메라 센서가 로봇의 외부에 배치된 사물을 촬영하여 제1비주얼 프레임을 생성하는 단계와, 제어부가 로봇의 맵 저장부에 저장된 라이다 프레임과 제1라이다 프레임을 비교하며, 포즈 그래프의 프레임 노드에 등록된 비주얼 프레임과 제1비주얼 프레임을 비교하여 제1라이다 프레임의 비교 결과의 정확도를 판단하여 로봇의 현재 위치를 계산하는 단계를 포함한다.
본 발명의 실시예들을 적용할 경우, 로봇이 로봇이 다양한 종류의 센서들에 기반하여 로봇의 위치를 추정할 수 있다.
또한, 본 발명의 실시예들을 적용할 경우, 각각의 센서들이 생성한 정보에 기반하여 로봇의 후보 위치를 산출하고 이들을 이용하여 로봇의 최종 위치 정보를 추정할 수 있다.
또한, 본 발명의 실시예들을 적용할 경우, 로봇의 센서들 중 어느 하나의 정확도가 낮거나 어느 하나의 센서가 획득한 정보에 대응하는 위치가 다수 검출된 경우에 로봇이 또다른 센서를 이용하여 위치 추정의 정확도를 높일 수 있다.
본 발명의 효과는 전술한 효과에 한정되지 않으며, 본 발명의 당업자들은 본 발명의 구성에서 본 발명의 다양한 효과를 쉽게 도출할 수 있다.
도 1은 본 발명의 일 실시예에 의한 로봇의 외관을 보여준다.
도 2는 본 발명의 일 실시예에 의한 로봇의 제어모듈의 구성 요소를 보여준다.
도 3은 로봇이 공간에서 이동하는 과정을 보여준다.
도 4는 본 발명의 일 실시예에 의한 맵의 다중 구조를 보여준다.
도 5는 본 발명의 일 실시예에 의한 다양한 센서를 이용하여 위치를 추정하는 과정을 보여준다.
도 6은 본 발명의 일 실시예에 의한 라이다 센서와 카메라 센서를 이용하여 로봇의 위치를 추정하는 과정을 보여준다.
도 7은 본 발명의 일 실시예에 의한 라이다 센서와 카메라 센서를 이용하여 로봇의 위치를 추정하는 세부 과정을 보여준다.
도 8은 본 발명의 일 실시예에 의한 라이다 센서와 카메라 센서를 이용하여 로봇의 위치를 추정하는 세부 과정을 보여준다.
도 9는 본 발명의 일 실시예에 의한 위치 추정 과정을 보여준다.
도 10 및 도 11은 본 발명의 일 실시예에 의한 맵 저장부의 정보를 업데이트 하는 과정을 보여준다.
도 12 및 도 13은 본발명의 일 실시예에 의한 두 종류의 센서를 이용하여 로봇의 후보 위치를 표시하고 최종 위치를 계산하는 과정을 보여준다.
도 14는 본 발명의 일 실시예에 의한 AI 서버의 구성을 보여준다.
도 15는 본 발명의 일 실시예에 의한 로봇이 SLAM 과정에서 인공지능에 기반하여 포즈 그래프를 업데이트하는 과정을 보여준다.
이하, 도면을 참조하여 본 발명의 실시예에 대하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다.
본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 동일 또는 유사한 구성요소에 대해서는 동일한 참조 부호를 붙이도록 한다. 또한, 본 발명의 일부 실시예들을 예시적인 도면을 참조하여 상세하게 설명한다. 각 도면의 구성요소들에 참조부호를 부가함에 있어서, 동일한 구성요소들에 대해서는 비록 다른 도면상에 표시되더라도 가능한 한 동일한 부호를 가질 수 있다. 또한, 본 발명을 설명함에 있어, 관련된 공지 구성 또는 기능에 대한 구체적인 설명이 본 발명의 요지를 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명은 생략할 수 있다.
본 발명의 구성 요소를 설명하는 데 있어서, 제 1, 제 2, A, B, (a), (b) 등의 용어를 사용할 수 있다. 이러한 용어는 그 구성 요소를 다른 구성 요소와 구별하기 위한 것일 뿐, 그 용어에 의해 해당 구성 요소의 본질, 차례, 순서 또는 개수 등이 한정되지 않는다. 어떤 구성 요소가 다른 구성요소에 "연결", "결합" 또는 "접속"된다고 기재된 경우, 그 구성 요소는 그 다른 구성요소에 직접적으로 연결되거나 또는 접속될 수 있지만, 각 구성 요소 사이에 다른 구성 요소가 "개재"되거나, 각 구성 요소가 다른 구성 요소를 통해 "연결", "결합" 또는 "접속"될 수도 있다고 이해되어야 할 것이다.
또한, 본 발명을 구현함에 있어서 설명의 편의를 위하여 구성요소를 세분화하여 설명할 수 있으나, 이들 구성요소가 하나의 장치 또는 모듈 내에 구현될 수도 있고, 혹은 하나의 구성요소가 다수의 장치 또는 모듈들에 나뉘어져서 구현될 수도 있다.
이하, 본 명세서에서 로봇은 특정한 목적(청소, 보안, 모니터링, 안내 등)을 가지거나 혹은 로봇이 이동하는 공간의 특성에 따른 기능을 제공하며 이동하는 장치를 포함한다. 따라서, 본 명세서에서의 로봇은 소정의 정보와 센서를 이용하여 이동할 수 있는 이동수단을 보유하며 소정의 기능을 제공하는 장치를 통칭한다.
본 명세서에서 로봇은 맵을 보유하면서 이동할 수 있다. 맵은 공간에서 이동하지 않는 것으로 확인된 고정된 벽, 계단 등 고정 객체에 대한 정보를 의미한다. 또한, 주기적으로 배치되는 이동 장애물, 즉 동적인 객체들에 대한 정보도 맵 상에 저장될 수 있다.
일 실시예로 로봇의 진행 방향을 기준으로 일정한 범위 내에 배치된 장애물들에 대한 정보도 맵 상에 저장될 수 있다. 이 경우, 전술한 고정 객체가 저장되는 맵과 달리 임시적으로 장애물들의 정보가 맵에 등록되고 이후 로봇이 이동한 후 맵에서 제거될 수 있다.
또한, 본 명세서에서 로봇은 다양한 센서들을 이용하여 외부의 동적 객체를 확인할 수 있다. 외부의 동적 객체를 확인하면, 보행자로 붐비는 환경에서 로봇이 목적지까지 주행할 때, 목적지까지 거쳐가야 하는 경유 지점(Waypoint)의 장애물에 의한 점유 상황을 확인할 수 있다.
또한 로봇은 경유 지점의 방향 변경 정도에 따라 유연하게 경유 지점을 도착한 것으로 판단하고 다음 경유 지점으로 넘어 가도록 하여 목적지까지 성공적으로 주행할 수 있다.
도 1은 본 발명의 일 실시예에 의한 로봇의 외관을 보여준다. 도 1은 예시적인 외관에 해당하며, 도 1의 외관 외에도 다양한 외관으로 본 발명의 로봇을 구현할 수 있다. 특히, 각각의 구성요소는 로봇의 형상에 따라 상하좌우 전후 등에서 다른 위치에 배치될 수 있다.
본체(10)는 상하 방향으로 길이가 길게 형성되며, 전체적으로 하부에서 상부 방향으로 올라갈수록 슬림해지는 오뚝이 형상을 가질 수 있다.
본체(10)는 로봇(1)의 외관을 형성하는 케이스(30)를 포함할 수 있다. 케이스(30)는 상측에 배치되는 탑 커버(31), 탑 커버(31)의 하측에 배치되는 제1 미들 커버(32), 제1 미들 커버(32)의 하측에 배치되는 제2 미들 커버(33) 및 제2 미들 커버(33)의 하측에 배치되는 바텀 커버(34)를 포함할 수 있다. 여기서 제1 미들 커버(32)와 제2 미들 커버(33)는 하나의 미들 커버로 이루어질 수 있다.
탑 커버(31)는 로봇(1)의 최상단에 위치되며, 반구 또는 돔 형상을 가질 수 있다. 탑 커버(31)는 사용자로부터 명령을 용이하게 입력 받기 위하여 성인의 키보다 낮은 높이에 위치될 수 있다. 그리고 탑 커버(31)는 소정각도 회전 가능하도록 구성될 수 있다.
한편, 로봇(1)은 그 내부에 제어모듈(150)을 더 포함할 수 있다. 제어모듈(150)은 일종의 컴퓨터 또는 프로세서와 같이 로봇(1)을 제어한다. 따라서 제어모듈(150)은 로봇(1)내에 배치되어 메인 프로세서와 유사한 기능을 수행하며, 사용자와의 인터랙션(interaction)을 담당할 수 있다.
로봇의 이동과 주변의 사물을 감지하여 로봇을 제어하기 위해 제어모듈(150)이 로봇(1) 내부에 탑재된다. 로봇제어모듈(150)은 소프트웨어 모듈 또는 이를 하드웨어로 구현한 칩 등으로 구현 가능하다.
탑 커버(31)는 전면 일측에 사용자로부터 명령을 입력받거나 정보를 출력하는 디스플레이부(31a)과 카메라(31b), 마이크(31c)를 일 실시예로 하는 센서가 배치될 수 있다.
또한, 탑 커버(31)의 디스플레이부(31a) 외에도 미들 커버(32)의 일측에도 디스플레이부(20)가 배치된다.
로봇의 기능에 따라 두 개의 디스플레이부(31a, 20) 모두 정보를 출력하거나 혹은 어느 한쪽에서만 정보가 출력될 수 있다.
한편, 로봇(1)의 일측면 또는 하단부 전체에는 35a, 35b와 같이 다양한 장애물 센서(도 2의 220)들이 배치된다. 장애물 센서들은 TOF(Time of Flight) 센서, 초음파 센서, 적외선 센서, 뎁스 센서, 레이저 센서, 라이다 센서 등을 일 실시예로 한다. 센서들은 다양한 방식으로 로봇(1) 외부의 장애물을 감지한다.
또한, 도 1의 로봇은 하단부에 로봇을 이동시키는 구성요소인 이동부를 더 포함한다. 이동부는 일종의 바퀴와 같이 로봇을 이동시키는 구성요소이다.
도 1의 로봇의 형상은 예시적이며, 본 발명이 이에 한정되는 것은 아니다. 또한, 로봇의 다양한 카메라들과 센서들 역시 로봇(1)의 다양한 위치에 배치될 수 있다. 도 1의 로봇은 사용자에게 정보를 안내하고 특정 지점까지 이동하여 사용자를 안내하는 안내 로봇을 일 실시예로 한다.
이외에도 청소, 보안 또는 기능을 제공하는 로봇 역시 도 1의 로봇의 범위에 포함된다. 다양한 기능을 제공할 수 있으나, 본 명세서에서는 설명의 편의를 위해 안내 로봇을 중심으로 설명한다.
도 1를 일 실시예로 하는 로봇이 서비스 공간 내에 다수 배치된 상태에서 로봇이 특정한 기능(안내, 청소, 보안 등)을 수행한다. 이 과정에서 로봇(1)은 자신의 위치를 저장하며, 로봇(1)은 전체 공간에서 자신의 현재 위치를 확인하고, 목표 지점으로 이동하는데 필요한 경로를 생성할 수 있다.
도 2는 본 발명의 일 실시예에 의한 로봇의 제어모듈의 구성 요소를 보여준다.
로봇은 맵을 생성하는 기능과 맵을 이용하여 로봇의 위치를 추정하는 기능 둘 다 수행할 수 있다.
또는 로봇은 맵을 생성하는 기능만 제공할 수 있다.
또는 로봇은 맵을 이용하여 로봇의 위치를 추정하는 기능만 제공할 수 있다. 이하, 본 발명의 로봇은 맵을 이용하여 로봇의 위치를 추정하는 기능을 주로 제공한다. 추가적으로 로봇은 맵을 생성하거나 수정하는 기능을 제공할 수 있다.
라이다 센서(LiDAR Sensor)(220)는 2차원 또는 3차원으로 주변의 사물들을 센싱할 수 있다. 2차원 라이다 센서의 경우 로봇을 중심으로 360도 범위의 사물의 위치를 센싱할 수 있다. 특정 위치에서 센싱한 라이다 정보는 하나의 라이다 프레임을 구성할 수 있다. 즉, 라이다 센서(220)는 로봇의 외부에 배치된 사물과 로봇 사이의 거리를 센싱하여 라이다 프레임을 생성한다.
카메라 센서(230)는 일반 카메라를 일 실시예로 한다. 시야각의 제약을 해결하기 위해 둘 이상의 카메라 센서(230)를 사용할 수 있다. 특정 위치에서 촬영한 영상은 비전 정보를 구성한다. 즉, 카메라 센서(230)는 로봇의 외부에 배치된 사물을 촬영하여 비전 정보를 포함하는 비주얼 프레임을 생성한다.
이하 본 발명을 적용하는 로봇(1)은 라이다 센서(220)와 카메라 센서(230)를 이용한 퓨젼-SLAM(Fusion-simultaneous localization and mapping)을 수행한다.
퓨전 SLAM은 라이다 정보와 비전 정보를 결합하여 사용할 수도 있다. 이들 라이다 정보와 비전 정보는 맵으로 구성할 수 있다.
로봇이 퓨전 SLAM을 사용할 경우, 하나의 센서만을 사용하는 방식(LiDAR-only SLAM, visual-only SLAM)와 비교하여 위치 추정의 정확도가 높다. 즉, 라이다 정보와 비전 정보를 결합하여 퓨전 SLAM을 수행하면 맵 품질(map quality) 측면에서 더 좋은 맵을 획득할 수 있다.
여기서, 맵 품질이란 비전 정보들로 구성된 비전 맵(vision map)과 라이다 정보로 구성된 라이다 맵(lidar map) 양쪽에 모두 해당하는 기준이다. 퓨전 SLAM 시 각각의 맵 품질이 좋아지는데 이는 각각의 센서가 획득하지 못하거나 부족한 정보를 센서들이 서로 이용할 수 있기 때문이다.
또한, 하나의 맵에서 라이다 정보 또는 비전 정보만을 추출하여 사용할 수 있다. 예를 들어, 로봇이 보유하는 메모리의 양이나 연산 프로세서의 연산 능력 등에 적합하게 라이다 정보만을 이용하거나, 비전 정보만을 이용하거나 또는 두 정보 모두를 로봇의 위치 추정(localization)에 적용할 수 있다.
인터페이스부(290)는 사용자로부터 정보를 입력받는다. 터치 입력, 음성 입력 등 다양한 정보를 사용자로부터 입력받고, 이에 대한 결과를 출력한다. 또한 인터페이스부(290)는 로봇(1)이 저장하는 맵을 출력하거나, 로봇이 이동하는 과정을 맵과 오버랩 하여 출력할 수 있다.
또한, 인터페이스부(290)는 사용자에게 소정의 정보를 제공할 수 있다.
제어부(250)는 후술할 도 4와 같은 맵을 생성하고 이 맵을 기반으로 로봇이 이동하는 과정에서 로봇의 위치를 추정한다.
통신부(280)는 로봇(1)이 다른 로봇 또는 외부의 서버와 통신하여 정보를 송수신할 수 있도록 한다.
로봇(1)은 각각의 센서들(라이다 센서, 카메라 센서)을 이용하여 각각의 맵을 생성할 수 있다. 또는 로봇(1)은 이들 센서들을 이용하여 하나의 맵을 만든 후 맵에서 다시 이들로부터 특정 센서에 해당하는 내용만을 추출하는 맵을 생성할 수 있다.
또한, 본 발명의 맵은 바퀴의 회전에 기반한 오도메트리(odometry) 정보를 포함할 수 있다. 오도메트리 정보는 로봇의 바퀴 회전 횟수나 양 바퀴의 회전 횟수의 차이 등을 이용하여 로봇이 이동한 거리를 산출한 정보이다. 센서들을 이용한 정보 외에도 오도메트리 정보를 이용하여 로봇이 어디까지 이동했는지 로봇이 계산할 수 있다.
도 2의 제어부(250)는 인공지능 작업 및 처리를 위한 인공지능부(255)를 더 포함할 수 있다.
로봇의 라이다 센서(220) 및 카메라 센서(230)는 외부의 물체를 식별하기 위해 로봇(1)의 외부에 다수 배치할 수 있다.
도 2에 제시된 라이다 센서(220) 및 카메라 센서(230) 외에도 로봇(1)의 외부에는 다양한 종류의 센서들(라이다 센서, 적외선 센서, 초음파 센서, 뎁스 센서, 이미지 센서, 마이크 등)이 배치된다. 제어부(250)는 센서들이 센싱한 정보를 취합 및 처리한다.
인공지능부(255)는 라이다 센서(220) 및 카메라 센서(230), 그리고 그 외의 센서들이 처리한 정보 또는 로봇(1)이 이동 과정에서 누적 저장한 정보 등을 입력하여 제어부(250)가 외부 상황을 판단하거나, 정보를 처리하거나, 이동 경로를 생성하는데 필요한 결과물을 출력할 수 있다.
일 실시예로, 로봇(1)은 로봇이 이동하는 공간에 배치된 다양한 사물들의 위치 정보를 맵으로 저장할 수 있다. 사물들은 벽, 문 등의 고정 사물들과 화분, 책상 등 이동 가능한 사물들을 포함한다. 인공지능부(255)는 맵 정보와 라이다 센서(220) 및 카메라 센서(230), 그리고 그 외의 센서들이 제공하는 정보들을 이용하여 로봇이 이동할 경로, 혹은 로봇이 작업시 커버해야 할 범위 등에 대한 데이터를 출력할 수 있다.
또한 인공지능부(255)는 라이다 센서(220) 및 카메라 센서(230), 그리고 그 외의 센서들이 제공하는 정보들을 이용하여 로봇 주변에 배치된 사물을 인식할 수 있다. 인공지능부(255)는 이미지를 입력받아 이미지에 관한 메타 정보를 출력할 수 있다. 메타 정보란 이미지 내의 사물의 명칭, 사물과 로봇과의 거리, 사물의 종류, 사물이 맵 상에 위치하는지 여부 등을 포함한다.
라이다 센서(220) 및 카메라 센서(230), 그리고 그 외의 센서들이 제공하는 정보는 인공지능부(255)의 딥러닝 네트워크의 입력 노드로 입력된 후, 인공지능부(255)의 딥러닝 네트워크의 히든 레이어의 정보 처리를 통해 인공지능부(255)의 출력 노드에서 결과가 출력된다.
제어부(250)는 인공지능부(255)가 산출한 데이터 또는 다양한 센서들이 처리한 데이터를 이용하여 로봇의 이동 경로를 산출할 수 있다.
도 2의 로봇은 전술한 바와 같이 맵을 생성하는 기능과 맵을 이용하여 주행하며 위치를 추정하는 기능 중 어느 하나 이상을 포함할 수 있다. 도 2의 로봇이 맵을 생성하거나 또는 맵을 이용하여 위치를 추정하는 공간의 예시로 도 3을 살펴볼 수 있다.
도 3은 로봇이 공간에서 이동하는 과정을 보여준다. 공간(40) 내에서 로봇은 41이 지시하는 선을 따라 이동하며 라이다 센서(220)를 이용하여 특정 지점에서 라이다 센서가 센싱한 정보를 맵 저장부(210)에 저장할 수 있다. 공간(40)의 기초 형상은 로컬 맵(local map)으로 저장될 수 있다.
마찬가지로 로봇은 공간(40)을 이동하면서 카메라 센서(230)를 이용하여 특정 지점에서 카메라 센서가 센싱한 정보를 맵 저장부(210)에 저장할 수 있다.
또는, 도 3의 공간에서 로봇은 이동하며, 앞서 맵 저장부(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와 같은 포즈 그래프는 맵 생성 기능을 제공하는 로봇에 의해 생성되어 주행 기능을 제공하는 모든 로봇의 맵 저장부(210)에 저장될 수 있다.
특히, 도 4의 포즈 그래프는 카메라 센서(230)와 라이다 센서(220) 중 어느 하나만 작동 가능한 경우에도 로봇(1)이 위치 추정에 이용할 수 있다. 또는 로봇의 센서들 중 어느 하나의 정확도가 낮거나 어느 하나의 센서가 획득한 정보에 대응하는 위치가 다수 검출된 경우에 로봇(1)은 또다른 센서를 이용하여 위치 추정의 정확도를 높일 수 있다.
예를 들어, 하나 이상의 카메라 센서(230)와 하나 이상의 라이다 센서(220)를 모두 포함하는 로봇(1)이 퓨전 SLAM(Fusion-SLAM)으로 멀티 센서가 획득한 정보를 이용하여 위치를 추정할 수 있다. 각각의 센서를 이용하여 추정한 위치 추정 결과 중 하나라도 참인 경우가 존재하면 로봇(1)은 위치 추정이 가능하다.
또는 로봇(1)의 각 센서 중 일부 센서만 동작 가능하거나 어느 하나의 센서만을 포함하는 경우에도 맵 저장부(210)에 저장된 각 센서 별 저장된 정보를 이용하여 위치 추정이 가능하다. 하나의 라이다 센서(220)를 사용할 경우 라이다 센서(220)는 360도를 커버할 수 있다.
도 5는 본 발명의 일 실시예에 의한 다양한 센서를 이용하여 위치를 추정하는 과정을 보여준다.
로봇(1)은 제1센서 및 제2센서와 같이 두 종류의 센서가 장착되어 위치 추정을 수행할 수 있다. 도 2에 도시된 바와 같이 제1센서는 라이다 센서(220)를 일 실시예로 하고, 제2센서는 카메라 센서(230)를 일 실시예로 한다. 또는 그 반대의 경우에도 적용가능하다.
제어부(250)는 제1센서가 획득한 정보와 맵 저장부에 저장된 정보를 비교한다(S41). 일 실시예로 제어부(250)는 맵 저장부(210)에 저장된 포즈 그래프의 프레임 노드에 등록된 정보와 제1센서가 획득한 정보를 비교할 수 있다.
그리고 제어부(250)는 제2센서가 획득한 정보가 있는지 확인한다(S42). 제2센서가 획득한 정보가 있는 경우, 제어부(250)는 제2센서가 획득한 정보에 기반하여 제1센서가 획득한 정보의 정확도를 검증한다(S43).
그리고 제어부(250)는 가장 높은 정확도의 정보를 이용하여 위치 추정을 수행한다(S44).
한편, S42에서 제2센서가 획득한 정보가 없을 경우, 제어부(250)는 제1센서가 획득한 정보를 이용하여 위치 추정을 수행한다(S45). 이때, 제어부(250)는 휠의 회전이나 방향, 이동 거리 등에 기반한 오도메트리 정보를 추가적으로 이용하여 위치 추정을 수행할 수 있다.
도 6은 본 발명의 일 실시예에 의한 라이다 센서와 카메라 센서를 이용하여 로봇의 위치를 추정하는 과정을 보여준다.
먼저, 카메라 센서(230)만 사용가능하거나, 라이다 센서(220)가 유의미한 정보를 획득할 수 없는 경우를 살펴본다. 이는 도 5의 제1센서가 카메라 센서(230)이고, 제2센서가 라이다 센서(220)이며, S41-S42-S45의 단계로 위치 추정을 수행하는 과정에 해당한다.
제어부(250)는 카메라 센서(230)가 획득한 정보(Image, 51)와 로봇(1)의 이동부의 휠에서 산출된 휠 오도메트리(Wheel Odometry, 52)를 이용하여 맵저장부(210a)의 포즈 그래프에 등록된 비주얼 프레임들과 비교한다. 이때, 제어부(250)는 휠 오도메트리 정보를 이용하여 현재 로봇(1)이 저장한 전체 비주얼 프레임들 중 일부만을 선별하여 비교한다. 그 결과 비주얼 프레임의 비교에 필요한 시간과 연산 자원을 줄일 수 있다.
제어부(250)는 51과 210a 내의 비주얼 프레임을 비교한 결과 현재 로봇의 위치를 추정할 수 있다. 이는 라이다 센서(220)의 센싱 값을 이용하지 않는 실시예이다. 제어부(250)는 S51(비주얼 프레임 추출) 및 S53(위치 추정) 단계를 수행하여 비주얼 SLAM(Visual SLAM)을 수행하여 로봇의 위치를 추정할 수 있다. 특히 제어부(250)는 휠 오도메트리를 이용하므로 정확도를 높이고 연산 시간을 줄일 수 있다.
다음으로, 라이다 센서(220)만 사용가능하거나, 카메라 센서(230)가 유의미한 정보를 획득할 수 없는 경우를 살펴본다. 이는 도 5의 제1센서가 라이다 센서(220)이고, 제2센서가 카메라 센서(230)이며, S41-S42-S45의 단계로 위치 추정을 수행하는 과정에 해당한다.
제어부(250)는 라이다 센서(220)가 획득한 정보(LiDAR scan data, 53)와 로봇(1)의 이동부의 휠에서 산출된 휠 오도메트리(Wheel Odometry, 52)를 이용하여 맵저장부(210a)의 포즈 그래프에 등록된 라이다 프레임들과 비교한다. 이때, 제어부(250)는 휠 오도메트리 정보를 이용하여 현재 로봇(1)이 저장한 전체 라이다 프레임들 중 일부만을 선별하여 비교한다. 그 결과 라이다 프레임의 비교에 필요한 시간과 연산 자원을 줄일 수 있다.
제어부(250)는 53과 210a 내의 라이다 프레임을 비교한 결과 55와 같이 현재 로봇의 위치를 추정할 수 있다. 이는 카메라 센서(230)의 센싱 값을 이용하지 않는 실시예이다. 제어부(250)는 S51(라이다 프레임 추출) 및 S52(라이다 프레임과 비교를 통한 추정) 단계를 수행하여 라이다 SLAM(LiDAR SLAM)을 수행하여 로봇의 위치를 추정할 수 있다. 특히 제어부(250)는 휠 오도메트리를 이용하므로 정확도를 높이고 연산 시간을 줄일 수 있다.
한편, 두 개의 센서를 모두 이용할 수 있는 경우의 실시예를 살펴본다. 다음으로, 라이다 센서(220) 및 카메라 센서(230)가 유의미한 정보를 획득할 수 있는 경우를 살펴본다. 이는 도 5의 제1센서가 라이다 센서(220)이고, 제2센서가 카메라 센서(230)인 경우 또는 도 5의 제2센서가 라이다 센서(220)이고, 제2센서가 카메라 센서(230)인 경우 모두에 적용할 수 있다. 그리고 도 5의 S41-S42-S43-S44의 단계로 위치 추정을 수행하는 과정에 해당한다.
제어부(250)는 라이다 센서(220)가 획득한 정보(LiDAR scan data, 53)와 로봇(1)의 이동부의 휠에서 산출된 휠 오도메트리(Wheel Odometry, 52)를 이용하여 맵저장부(210a)의 포즈 그래프에 등록된 라이다 프레임들과 비교한다. 이때, 제어부(250)는 카메라 센서(230)가 획득한 이미지(51)를 이용하여 포즈 그래프에 등록된 비주얼 프레임들과 비교한다.
이 과정에서 이때, 제어부(250)는 휠 오도메트리 정보를 이용하여 현재 로봇(1)이 저장한 전체 라이다 프레임들 중 일부만을 선별하여 비교한다. 마찬가지로 제어부(250)는 휠 오도메트리 정보를 이용하여 현재 로봇(1)이 저장한 전체 비주얼 프레임들 중 일부만을 선별하여 비교한다.
그 결과 라이다 프레임의 비교 및 비주얼 프레임의 비교에 필요한 시간과 연산 자원을 줄일 수 있다.
제어부(250)는 53과 210a 내의 라이다 프레임을 비교한 결과 55와 같이 현재 로봇의 위치를 추정할 수 있다. 이는 카메라 센서(230)의 센싱 값을 이용하지 않는 실시예이다. 제어부(250)는 S51(라이다 프레임 추출) 및 S52(라이다 프레임과 비교를 통한 추정) 단계를 수행하여 라이다 SLAM(LiDAR SLAM)을 수행하여 로봇의 위치를 추정할 수 있다. 특히 제어부(250)는 휠 오도메트리를 이용하므로 정확도를 높이고 연산 시간을 줄일 수 있다.
제어부(250)는 카메라 센서(230)의 획득 정보(51)를 이용하여 후보가 되는 프레임 노드를 맵 저장부(210a)로부터 추출한다. 마찬가지로 제어부(250)는 라이다 센서(220)의 획득 정보(53)를 이용하여 후보가 되는 프레임 노드를 맵 저장부(210a)로부터 추출한다.
그 결과 제어부(250)는 각각 추출된 프레임 노드를 비교하여 어느 중복하는 프레임 노드를 이용하여 로봇의 위치를 추정할 수 있다.
또는 제어부(250)는 어느 하나의 센서가 획득한 정보를 우선으로 하고, 이들 정보가 다수인 경우에 다른 센서가 획득한 정보를 이용하여 정확도를 높일 수 있다.
예를 들어, 제어부(250)는 맵 저장부(210a)로부터 라이다 센서(220)가 획득한 라이다 프레임과 비교 가능한 라이다 프레임을 검색 및 다수 추출한 경우를 가정한다. 제어부(250)는 맵 저장부(210a)로부터 카메라 센서(230)가 획득한 비주얼 프레임과 비교 가능한 비주얼 프레임을 검색하여 하나 이상 추출한다.
제어부(250)는 맵 저장부(210a)로부터 추출된 비주얼 프레임이 등록된 프레임 노드 또는 이와 인접한 프레임 노드에 등록된 라이다 프레임을 확인하여, 앞서 다수 추출한 라이다 프레임 중에서 정확도가 높은 것을 선택한다.
도 7은 본 발명의 일 실시예에 의한 라이다 센서와 카메라 센서를 이용하여 로봇의 위치를 추정하는 세부 과정을 보여준다. 도 7은 라이다 센서(220)가 획득한 정보에 기반하여 위치 추정 후보지가 다수인 경우 카메라 센서(230)를 이용하여 특정 위치 추정 후보지를 선택하는 실시예이다.
라이다 센서(220)가 획득한 라이다 스캔 데이터(53)을 이용하여 제어부(250)가 맵 저장부(210a)로부터 유사한 것으로 추출한 라이다 프레임은 LF1 및 LF2이다. 그런데 LF1는 v1이라는 프레임 노드에 등록되었고, LF2는 v4라는 프레임 노드에 등록되었으며 둘의 위치가 상이하다.
정확도를 위해 제어부(250)는 카메라 센서(230)가 획득한 비주얼 프레임(51)을 이용한다. 제어부(250)는 맵 저장부(210a)로부터 51과 유사한 것으로 비주얼 프레임(VF1)을 추출한다.
그 결과 제어부(250)는 VF1은 v4 라는 프레임 노드에 등록된 것을 확인한다. 또한 해당 프레임 노드인 v4에 LF2가 등록되었다. 따라서 제어부(250)는 LF1 보다 LF2가 더 정확도가 높은 것으로 판단하고, LF2를 기준으로 로봇의 위치를 추정한다.
도 8은 본 발명의 일 실시예에 의한 라이다 센서와 카메라 센서를 이용하여 로봇의 위치를 추정하는 세부 과정을 보여준다. 도 8은 카메라 센서(230)가 획득한 정보에 기반하여 위치 추정 후보지가 다수인 경우 라이다 센서(220)를 이용하여 특정 위치 추정 후보지를 선택하는 실시예이다.
카메라 센서(230)가 획득한 카메라 이미지(51)을 이용하여 제어부(250)가 맵 저장부(210a)로부터 유사한 것으로 추출한 비주얼 프레임은 VF1 및 VF2이다. 그런데 VF1는 v1이라는 프레임 노드에 등록되었고, VF2는 v4라는 프레임 노드에 등록되었으며 둘의 위치가 상이하다.
정확도를 위해 제어부(250)는 라이다 센서(220)가 획득한 라이다 스캔 데이터(53)을 이용한다. 제어부(250)는 맵 저장부(210a)로부터 53과 유사한 것으로 라이다 프레임(LF1)을 추출한다.
그 결과 제어부(250)는 LF1은 v1 이라는 프레임 노드에 등록된 것을 확인한다. 또한 해당 프레임 노드인 v1에는 VF1가 등록된 것을 확인한다. 따라서 제어부(250)는 VF2 보다 VF1가 더 정확도가 높은 것으로 판단하고, VF1을 기준으로 로봇의 위치를 추정한다.
도 6 내지 도 8의 실시예에서 두 종류의 센서를 모두 사용할 수 있는 경우에 위치 추정의 정확도를 높일 수 있다. 특히 각각의 센서들은 각각 위치 추정한 결과를 산출할 수 있으므로, 제어부(250)는 이들 두 개의 센서들이 산출한 위치 추정 결과를 취합하여 정확도가 높은 위치 추정 결과를 산출할 수 있다.
정리하면, 맵 저장부(210)는 라이다 스캔 데이터를 라이다 프레임으로 저장하고, 이미지를 비주얼 피쳐 노드로 저장한다. 그리고 라이다 프레임 및 비주얼 피쳐 노드 중 일부 또는 전부를 키프레임으로 하여 포즈 그래프의 특정 프레임 노드에 등록한다.
이후 로봇(1)은 맵 저장부(210)에 등록된 라이다 프레임/라이다 키프레임 또는 비주얼 피쳐 노드/비주얼 프레임과 각각의 센서들이 센싱한 정보를 비교한다. 각각의 센서 둘 다 동일한 프레임 노드의 저장된 정보와 대응하거나 유사한 경우 해당 위치를 로봇의 현재 위치로 설정한다.
이 과정에서 틀린 위치에 대응하는 센싱한 정보들 또는 맵 저장부(210)에 저장된 정보들은 주행 과정에서 비교 대상에서 제거된다.
전술한 실시예는 각각의 센서가 획득한 정보와 맵 저장부에 저장된 정보를 비교하는 과정에서 제어부(250)는 후보가 되는 위치를 하나 이상 확인할 수 있다. 여기서 센서는 반드시 카메라 센서와 라이다 센서에 한정되지 않는다.
예를 들어, IMU(Inertial Measurement Unit) 센서, GPS 센서, 소나(Sonar) 센서, 레이다(Radar) 등 여러 종류의 센서에서 획득된 후보 위치를 동일한 방식으로 제어부(250)가 획득할 수 있다. 또한 제어부(250)는 이를 통해 라이다 센서(220)가 획득한 정보에 기반한 위치 정보들의 유효성을 검증할 수 있다.
제어부(250)는 후보 위치에 해당하는 라이다 프레임을 다시 샘플링(Resampling)하여 로봇의 최종 위치를 수렴 및 확정할 수 있다.
따라서, 제어부(250)는 퓨전 SLAM에서 센서를 조합하지 않고 각각에 대한 위치 추정 결과 산출된 후보 위치(candidate pose)에서 현재 로봇의 위치 추정의 정확도를 높이는 후보를 선택할 수 있다.
전술한 실시예를 정리하면 다음과 같다. 도 2의 맵 저장부(210)는 전술한 포즈 그래프를 저장한다. 맵 저장부(210)는 제1라이다 프레임과 비교 가능한 다수의 라이다 프레임들을 포함하는 라이다 브랜치를 저장한다. 또한 맵 저장부(210)는 제1비주얼 프레임과 비교 가능한 다수의 비주얼 프레임들을 포함하는 비주얼 브랜치를 저장한다.
맵 저장부(210)는 저장된 라이다 프레임 또는 저장된 비주얼 프레임 중 어느 하나 이상과 등록된 프레임 노드를 둘 이상 포함하는 백본으로 구성된 포즈 그래프를 저장한다. 또한 맵 저장부(210)는 프레임 노드 사이의 오도메트리 정보를 저장한다.
한편, 제어부(250)는 포즈 그래프의 프레임 노드에 등록된 라이다 프레임과 라이다 센서(220)가 주행 과정에서 획득한 제1라이다 프레임을 비교한다. 그리고 제어부(250)는 포즈 그래프의 프레임 노드에 등록된 비주얼 프레임과 카메라센서(230)가 주행 과정에서 획득한 제1비주얼 프레임을 비교한다.
제어부(250)는 제1라이다 프레임에 대응하는 위치를 확인하기 위해 맵 저장부(210)에 저장된 라이다 프레임을 검색한다. 그리고 검색 결과 제어부(250)는 로봇의 후보 위치를 하나 이상 검색하여 포즈 그래프에서 확인할 수 있다.
또한 제어부(250)는 후보 위치 중 어느 하나를 선택하기 위해, 제1비주얼 프레임에 대응하는 위치를 확인할 수 있다. 이 과정에서 제어부(250)는 맵 저장부(210)에 저장된 비주얼 프레임을 검색한다. 검색 결과 제어부(250)는 로봇의 후보 위치를 하나 이상 검색하여 포즈 그래프에서 확인할 수 있다.
제어부(250)는 라이다 프레임에 기반하여 검색된 후보 위치들의 정확도를 비주얼 프레임에 기반하여 검색된 후보 위치들을 이용하여 판단할 수 있다.
도 9는 본 발명의 일 실시예에 의한 위치 추정 과정을 보여준다. 로봇은 A, B, C, D 위치를 이동한다. 각 위치에서 로봇(1)의 카메라 센서(230)가 촬영한 정보는 각각 CapVF1~CapVF4 이다. 각 위치에서 로봇(1)의 라이다 센서(220)가 획득한 스캔 데이터는 각각 CapLF1~CapLF4이다.
한편, 맵 저장부(210b)는 포즈 그래프 및 각각의 라이다 프레임들, 비전 프레임들을 저장한 상태이다.
로봇(1)이 A의 위치에서 B의 위치로 이동할 때, 제어부(250)는 오도메트리 정보를 이용한다. 즉, 제어부(250)는 A 위치에 대응하는 프레임 노드(v1)에서 출발해서 이동한 방향이나 거리 정보를 오도메트리 정보를 이용하여 확인할 수 있다.
따라서, 로봇(1)이 B의 위치에 도달했을 경우, 제어부(250)는 오도메트리 정보를 이용하여 로봇의 현재 위치가 v1 에서 v3 사이라는 것을 판단할 수 있다. 보다 정확하게 로봇(1)은 B의 위치에 도달했을 경우, 오도메트리 정보에 기반하여 v2 위치라는 것을 판단하거나 최소한 v2 주변에 있는 것으로 판단할 수 있다.
그 결과 제어부(250)는 획득한 라이다 스캔 데이터, 즉 라이다 센서(220)가 획득한 라이다 프레임인 CapLF2와 v2 주변의 라이다 프레임들(LF12, LF13, LF2, LF21)을 비교할 수 있다. 그 결과 제어부(250)가 어느 하나의 라이다 프레임(예를 들어 LF2)와 CapLF2가 유사한 것으로 판단할 수 있다. 이 경우, 제어부(250)는 현재 로봇의 위치를 v2의 위치로 판단할 수 있다.
물론, 이 과정에서 v2의 위치인지 보다 명확하게 판단하기 위해, 제어부(250)는 카메라 센서(230)가 촬영한 이미지인 비주얼 프레임 CapVF2와 VF11~VF52를 비교할 수 있다. 또는 제어부(250)는 v1~v3 사이의 이동으로 판단하였으므로, 제어부(250)는 비주얼 프레임 CapVF2와 VF21~VF32를 비교할 수 있다.
다른 실시예로, 제어부(250)가 다른 두 개의 라이다 프레임(예를 들어 LF13과 LF21)와 CapLF2가 유사한 것으로 판단할 수 있다. 여기서 제어부(250)는 두 개의 라이다 프레임 중에서 정확도가 높은 것을 선택해야 한다.
제어부(250)는 카메라 센서(230)가 촬영한 이미지인 비주얼 프레임 CapVF2와 맵 저장부(210b)에 저장된 비주얼 프레임들을 비교한다. 전체 비교를 할 수도 있지만, 검색 효율을 위해 제어부(250)는 오도메트리 정보를 이용하여 비교할 비주얼 프레임의 범위를 줄일 수 있다.
또는 제어부(250)는 검색되었던 두 개의 라이다 프레임(예를 들어 LF13과 LF21)에 대응하는 비주얼 프레임을 검색 범위로 포함할 수 있다.
검색 결과 제어부(250) CapVF2와 유사한 하나의 비주얼 프레임(예를 들어 VF31)가 유사한 것으로 판단할 수 있다.
이때, 제어부(250)는 앞서 검색된 LF13과 LF21의 위치 정보와 VF31의 위치 정보를 이용하여, 로봇의 위치가 LF21 위치라는 것을 확인한다.
정리하면, 다음과 같다. 제어부(250)는 라이다 센서(220)가 획득한 라이다 프레임인 CapLF2와 유사한 라이다 프레임인 LF13과 LF21를 맵 저장부(210b)의 포즈 그래프의 프레임 노드로부터 추출한다.
그리고 제어부(250)는 카메라 센서(230)가 촬영한 이미지인 비주얼 프레임 CapVF2와 유사한 비주얼 프레임인 VF31을 맵 저장부(210b)의 포즈 그래프의 프레임 노드로부터 추출한다.
그리고 제어부(250)는 VF31을 이용하여 LF13과 LF21 중 어느 어느 하나를 선택하고, 제어부(250)는 선택한 라이다 프레임을 이용하여 로봇의 현재 위치를 계산한다.
이 과정에서 VF31가 v2 노드에 등록된 경우, 제어부(250)는 v2 노드에 등록된 라이다 프레임이 LF13과 LF21 중 어느 하나인지를 판단할 수 있다.
또는 등록되지 않은 경우에, 제어부(250)는 오도메트리 정보를 이용하여 가장 최근에 위치가 확인되었던 프레임 노드를 기준으로 위치를 산출할 수 있다.
도 10 및 도 11은 본 발명의 일 실시예에 의한 맵 저장부의 정보를 업데이트 하는 과정을 보여준다.
로봇(1)의 제어부(250)는 이동 과정에서 카메라 센서(230)가 획득한 비주얼 프레임과 맵저장부(210)에 저장된 비주얼 프레임을 비교한다(S61). 그리고 비교 결과 두 비주얼 프레임의 유사도가 설정된 기준값 이상인 경우(S62), 로봇(1)의 위치는 저장된 비주얼 프레임의 위치 정보에 매우 근접하였음을 의미한다.
따라서, S62에서 두 프레임 간의 유사도가 기준값 보다 높은 경우 제어부(250)는 맵 저장부(210)에 저장된 비주얼 프레임의 위치 정보를 이용하여 라이다 센서가 획득한 라이다 프레임을 맵 저장부에 저장한다(S63). 그리고 제어부(250)는 로봇(1)의 위치 추정을 수행한다(S64).
도 9에서 만약, CapVF3가 VF41가 동일하거나 매우 유사한 경우를 가정한다. 그렇다면, C의 위치는 v3이라는 프레임 노드의 위치와 매우 유사하다. 그런데 현재 v3 은 라이다 프레임이 등록되지 않은 상태이다.
따라서, 제어부(250)는 CapLF3을 v3에 등록시킬 수 있다. 그 결과는 도 11과 같다.
도 11은 도 9의 맵 저장부(210b)에 새로운 라이다 프레임(CapLF3)이 추가된 구성을 보여준다. 이는 로봇이 C의 위치에서 획득한 비주얼 프레임(CapVF3)과 VF41와의 유사도가 일정 기준 이상(예를 들어 95% 이상)이면, 제어부(250)는 VF41 의 위치에 로봇이 도달한 것으로 판단할 수 있다.
또한 VF41 가 등록된 프레임 노드인 v3에는 라이다 프레임이 등록되지 않은 상태이다. 따라서, 맵 정확도를 높이기 위해 제어부(250)는 C의 위치에서 라이다 센서(220)가 스캔하여 생성한 라이다 프레임인 CapLF3을 v3에 등록시킬 수 있다.
전술한 실시예들을 적용할 경우, 카메라 센서(비전 센서) 및 라이다 센서를 이용하여 로봇의 독립적인 위치 추정을 수행할 수 있다. 여기서 독립적이라는 것은 각 센서들이 하나씩만 있어도 로봇의 위치 추정이 가능하다는 의미이다.
따라서, 각각의 센서를 이용하여 로봇(1)은 비전 한정 위치추정(vision-only localization)과 라이다 한정 위치추정(lidar-only localization)을 수행할 수 있다. 또한 각각의 센서가 다른 센서에게 영향을 미치지 않음을 의미하며, 오히려 각 센서의 정확도를 다른 센서를 통해 검증할 수 있어 위치 추정의 정확도를 높일 수 있다.
특히, 환경적 요인 등으로 인해 특정 센서가 정확하게 위치추정을 하는데 실패할 경우에도 로봇(1)은 다른 종류의 센서를 이용하여 퓨전 SLAM을 수행할 수 있다.
예를 들어, 카메라 센서(230)를 하나만 사용하는 경우 렌즈가 다른 사물에 의해 가려지는 상황(occlusion)에서는 카메라 센서(230)의 시야가 제한되어 위치 추정이 실패할 수 있다. 그러나 둘 이상의 카메라 센서(230)를 이용하면 다른 방향의 이미지를 이용하여 위치 추정을 수행할 수 있다.
예를 들어, 도 9 및 11에서 VF11/VF12가 한 쌍의 카메라 센서(230)가 동일한 위치에서 촬영한 이미지일 경우 카메라 센서 중 어느 하나가 가려진 상태라도 다른 카메라 센서로 이미지를 촬영하여 VF11/VF12와 비교할 수 있다.
또한, 카메라 센서(230)의 경우 빛의 변화에 따른 환경 변화에 취약할 수 있는데, 제어부(250)는 라이다 센서(220)가 획득한 라이다 스캔 데이터를 이용하여 맵 저장부(210)에 저장된 라이다 프레임과 비교하여 위치 추정을 수행할 수 있도록 한다.
반대로, 라이다 센서(220)가 센싱하는 영역에 반사 물질의 배치나 기하학적 구조의 변경이 발생하여도 제어부(250)는 카메라 센서(230)가 획득한 이미지 데이터를 이용하여 맵 저장부(210)에 저장된 비주얼 프레임과 비교하여 위치 추정을 수행할 수 있도록 한다.
따라서, 어느 하나의 센서가 사용할 수 없는 경우 혹은 정확도가 낮은 경우에도 다른 센서가 측정한 값을 이용하므로, 위치 추정의 정확도 및 강인성(robustness)을 높일 수 있다.
그리고 두 종류의 센서 모두 사용 가능한 시점 제어부(250)는 각 센서들이 획득한 정보를 이용하여 맵 저장부 내의 정보 검색의 속도를 높이거나, 위치 추정의 정확도를 높일 수 있다.
예를 들어 도 11에서 로봇이 획득한 라이다 프레임이 CapLF1인 경우, 제어부(250)는 이를 통해 제1위치 정보(Pos1) 및 제2위치 정보(Pos2)를 후보 위치로 산출한다.
마찬가지로, 로봇이 획득한 비주얼 프레임이 CapVF1인 경우 제어부(250)는 이를 통해 제3위치 정보(Pos3) 및 제4위치 정보(Pos4)를 후보 위치로 산출한다.
그리고 제어부(250)는 Pos1과 Pos3/Pos4를 비교하고 Pos2와 Pos3/Pos4를 비교하여 로봇의 위치를 산출할 수 있다. 또는 제어부(250)는 Pos3과 Pos1/Pos2를 비교하고 Pos4와 Pos1/Pos2를 비교하여 로봇의 위치를 산출할 수 있다.
비교 방식은 맵 저장부(210)에서 프레임을 검색하는데 소요되는 시간, 센서의 정확도 등에 따라 다양하게 설정될 수 있다.
도 12 및 도 13은 본발명의 일 실시예에 의한 두 종류의 센서를 이용하여 로봇의 후보 위치를 표시하고 최종 위치를 계산하는 과정을 보여준다.
도 12의 70은 로봇이 이동하는 공간을 그리드로 표시한 것이다. 70과 같이 20x20 크기의 그리드가 맵(210)에 저장된다.
로봇(1)이 이동하는 과정에서 특정 위치에서 로봇이 획득한 라이다 프레임이 CapLF인 경우, 제어부(250)는 이와 유사한 라이다 프레임을 맵 저장부(210)에서 검색한다. 검색한 결과 그리드 상의 특정 위치에 해당하는 라이다 프레임들이 검색된다. 이들 라이다 프레임의 위치들은 각각 L1, L2, L3가 표시된다.
한편, 로봇이 획득한 주변 이미지 정보인 비주얼 프레임이 CapVF인 경우, 제어부(250)는 이와 유사한 비주얼 프레임을 맵 저장부(210)에서 검색한다. 검색한 결과 그리드 상의 특정 위치에 해당하는 비주얼 프레임들이 검색된다. 이들 비주얼 프레임의 위치들은 각각 V1, V2, V3가 표시된다.
제어부(250)는 이들 후보위치들의 거리를 비교한다.
예를 들어 제어부(250)는 다음 두 지점의 거리를 산출한다.
L1 - V1의 거리: L1V1 // L1 - V2의 거리: L1V2 // L1 - V3의 거리: L1V3
L2 - V1의 거리: L2V1 // L2 - V2의 거리: L2V2 // L2 - V3의 거리: L2V3
L3 - V1의 거리: L3V1 // L3 - V2의 거리: L3V2 // L3 - V3의 거리: L3V3
그리고 제어부(250)는 산출된 거리들 중에서 가장 짧은 거리의 지점을 산출한다. 도 12에서는 L2V1이 가장 가깝다. 제어부(250)는 L2와 V1을 기준으로 로봇의 위치를 산출할 수 있다. 제어부(250)는 두 지점의 중간 지점으로 할 수 있다. 또는 제어부(250)는 CapLF와 L2와의 유사도를 반영하여 로봇의 위치 정보를 산출할 수 있다. 또는 제어부(250)는 CapVF와 V1과의 유사도를 반영하여 로봇의 위치를 산출할 수 있다.
즉 제어부(250)는 CapLF와 L2의 유사도와 CapVF와 V1의 유사도를 비교하여 로봇의 위치를 계산할 수 있다.
일 실시예로, CapLF와 L2와의 유사도가 90%이고, CapVF와 V1의 유사도가 95%인 경우, 제어부(250)는 로봇의 위치가 V1에 더 가까운 것으로 판단할 수 있다. 다만 L2와의 유사도도 90%이므로, V1과 L2 사이의 거리의 중간 지점에서 V1에 가까운 위치로 로봇의 위치를 설정할 수 있다.
이는 유사도의 산술적인 비례에 따라 혹은 센서의 정확도에 따라 다양하게 선택될 수 있다. 라이다 센서(220)의 정확도가 매우 높다면, 제어부(250)는 L2에 근접하여 로봇의 위치를 설정한다.
일 실시예로 유사도의 기준값이 80%인 경우 제어부(250)는 CapLF와 L2와의 유사도 90%를 10(90-80의 계산결과)으로 환원할 수 있다. 마찬가지로 제어부(250)는 CapVF와 V1의 유사도 95%를 15(95-80의 계산결과)으로 환원할 수 있다.
그리고 이는 10:15의 차이이므로 2:3의 비율로 환원할 수 있다. 제어부(250)는 V1의 위치 정보(9, 16)와 L2의 위치 정보(8, 17) 사이에서 2:3의 위치를 산출하여 로봇의 위치를 설정한다.
도 13에 도시된 바와 같이, 제어부(250)는 V1의 중심점(71)과 L2의 중심점(72)을 기준으로 2:3인 지점(73)을 로봇의 위치로 계산한다.
한편, 로봇(1)은 SLAM을 수행하는 과정에서 위치 추정의 정확도가 높은 영역 또는 낮은 영역에서 각각의 센서가 정보를 획득하고 이를 저장할 수 있다. 그리고 저장된 정보들을 인공지능 모듈을 이용하여 학습하여 반복적으로 위치 추정의 정확도가 낮은 영역이나 높은 영역의 획득 정보를 포즈 그래프에 반영할 수 있다.
이를 위해, 제어부(250)의 인공지능부(255)는 일종의 러닝 프로세서(learning processor)이며, 로봇(1)이 누적하여 저장된 위치 정보 및 센서가 획득한 정보, 그리고 위치 추정의 정확도에 대한 수치값을 처리하여 포즈 그래프를 업데이트할 수 있다.
인공 지능은 인공적인 지능 또는 이를 만들 수 있는 방법론을 연구하는 분야를 의미하며, 머신 러닝(기계 학습, Machine Learning)은 인공 지능 분야에서 다루는 다양한 문제를 정의하고 그것을 해결하는 방법론을 연구하는 분야를 의미한다. 머신 러닝은 어떠한 작업에 대하여 꾸준한 경험을 통해 그 작업에 대한 성능을 높이는 알고리즘으로 정의하기도 한다.
인공 신경망(ANN: Artificial Neural Network)은 머신 러닝에서 사용되는 모델로써, 시냅스의 결합으로 네트워크를 형성한 인공 뉴런(노드)들로 구성되는, 문제 해결 능력을 가지는 모델 전반을 의미할 수 있다. 인공 신경망은 다른 레이어의 뉴런들 사이의 연결 패턴, 모델 파라미터를 갱신하는 학습 과정, 출력값을 생성하는 활성화 함수(Activation Function)에 의해 정의될 수 있다.
인공 신경망은 입력층(Input Layer), 출력층(Output Layer), 그리고 선택적으로 하나 이상의 은닉층(Hidden Layer)를 포함할 수 있다. 각 층은 하나 이상의 뉴런을 포함하고, 인공 신경망은 뉴런과 뉴런을 연결하는 시냅스를 포함할 수 있다. 인공 신경망에서 각 뉴런은 시냅스를 통해 입력되는 입력 신호들, 가중치, 편향에 대한 활성 함수의 함숫값을 출력할 수 있다.
모델 파라미터는 학습을 통해 결정되는 파라미터를 의미하며, 시냅스 연결의 가중치와 뉴런의 편향 등이 포함된다. 그리고, 하이퍼파라미터는 머신 러닝 알고리즘에서 학습 전에 설정되어야 하는 파라미터를 의미하며, 학습률(Learning Rate), 반복 횟수, 미니 배치 크기, 초기화 함수 등이 포함된다.
인공 신경망의 학습의 목적은 손실 함수를 최소화하는 모델 파라미터를 결정하는 것으로 볼 수 있다. 손실 함수는 인공 신경망의 학습 과정에서 최적의 모델 파라미터를 결정하기 위한 지표로 이용될 수 있다.
머신 러닝은 학습 방식에 따라 지도 학습(Supervised Learning), 비지도 학습(Unsupervised Learning), 강화 학습(Reinforcement Learning)으로 분류할 수 있다.
지도 학습은 학습 데이터에 대한 레이블(label)이 주어진 상태에서 인공 신경망을 학습시키는 방법을 의미하며, 레이블이란 학습 데이터가 인공 신경망에 입력되는 경우 인공 신경망이 추론해 내야 하는 정답(또는 결과 값)을 의미할 수 있다. 비지도 학습은 학습 데이터에 대한 레이블이 주어지지 않는 상태에서 인공 신경망을 학습시키는 방법을 의미할 수 있다. 강화 학습은 어떤 환경 안에서 정의된 에이전트가 각 상태에서 누적 보상을 최대화하는 행동 혹은 행동 순서를 선택하도록 학습시키는 학습 방법을 의미할 수 있다.
인공 신경망 중에서 복수의 은닉층을 포함하는 심층 신경망(DNN: Deep Neural Network)으로 구현되는 머신 러닝을 딥 러닝(심층 학습, Deep Learning)이라 부르기도 하며, 딥 러닝은 머신 러닝의 일부이다. 이하에서, 머신 러닝은 딥 러닝을 포함하는 의미로 사용된다.
로봇(1)은 도 2에서 살펴보았던 인공지능부(255)가 인공지능 기능을 수행할 수 있다.
이 경우, 로봇(1)의 통신부(280)는 유무선 통신 기술을 이용하여 다른 AI 기능을 제공하는 로봇이나 또는 도 9에서 살펴볼 AI 서버(300) 등의 외부 장치들과 데이터를 송수신할 수 있다. 예컨대, 통신부(280)는 외부 장치들과 센서 정보, 사용자 입력, 학습 모델, 제어 신호 등을 송수신할 수 있다.
이때, 통신부(280)가 이용하는 통신 기술에는 GSM(Global System for Mobile communication), CDMA(Code Division Multi Access), LTE(Long Term Evolution), 5G, WLAN(Wireless LAN), Wi-Fi(Wireless-Fidelity), 블루투스(BluetoothTM), RFID(Radio Frequency Identification), 적외선 통신(Infrared Data Association; IrDA), ZigBee, NFC(Near Field Communication) 등이 있다.
인터페이스부(290)는 다양한 종류의 데이터를 획득할 수 있다.
이때, 인터페이스부(290)는 영상 신호 입력을 위한 카메라, 오디오 신호를 수신하기 위한 마이크로폰, 사용자로부터 정보를 입력 받기 위한 사용자 입력부 등을 포함할 수 있다. 여기서, 라이다 센서(220), 카메라 센서(230) 또는 마이크로폰이 획득한 정보들은 센싱 데이터 또는 센서 정보등 지칭한다.
인터페이스부(290) 및 각종 센서들(220, 230)과 휠 인코더(260) 등은 모델 학습을 위한 학습 데이터 및 학습 모델을 이용하여 출력을 획득할 때 사용될 입력 데이터 등을 획득할 수 있다. 전술한 구성요소들은 가공되지 않은 입력 데이터를 획득할 수도 있으며, 이 경우 제어부(250) 또는 인공지능부(255)는 입력 데이터에 대하여 전처리로써 입력 특징점(input feature)을 추출할 수 있다.
인공지능부(255)는 학습 데이터를 이용하여 인공 신경망으로 구성된 모델을 학습시킬 수 있다. 여기서, 학습된 인공 신경망을 학습 모델이라 칭할 수 있다. 학습 모델은 학습 데이터가 아닌 새로운 입력 데이터에 대하여 결과 값을 추론해 내는데 사용될 수 있고, 추론된 값은 로봇(1)이 어떠한 동작을 수행하기 위한 판단의 기초로 이용될 수 있다.
이때, 인공지능부(255)는 AI 서버(300)의 러닝 프로세서(340)과 함께 AI 프로세싱을 수행할 수 있다.
이때, 인공지능부(255)는 로봇(1)에 통합되거나 구현된 메모리를 포함할 수 있다. 또는, 인공지능부(255)는 별도의 메모리 또는 로봇(1)에 결합된 외부 메모리 또는 외부 장치에서 유지되는 메모리를 사용하여 구현될 수도 있다.
로봇(1)은 다양한 센서들을 이용하여 로봇(1)의 내부 정보, 로봇(1)의 주변 환경 정보 및 사용자 정보 중 적어도 하나를 획득할 수 있다.
이때, 로봇(1)에 포함되는 센서에는 근접 센서, 조도 센서, 가속도 센서, 자기 센서, 자이로 센서, 관성 센서, RGB 센서, IR 센서, 지문 인식 센서, 초음파 센서, 광 센서, 마이크로폰, 라이다 센서(220), 카메라 센서(230), 레이더 등이 있다.
또한, 앞서 살펴본 인터페이스부(290)는 시각, 청각 또는 촉각 등과 관련된 출력을 발생시킬 수 있다.
이때, 인터페이스부(290)는 시각 정보를 출력하는 디스플레이부, 청각 정보를 출력하는 스피커, 촉각 정보를 출력하는 햅틱 모듈 등이 포함될 수 있다.
로봇(1)에 내장된 메모리는 로봇(1)의 다양한 기능을 지원하는 데이터를 저장할 수 있다. 예컨대, 로봇(1)에 내장된 각종 센서들이나 인터페이스부(290) 등이 획득한 입력 데이터, 학습 데이터, 학습 모델, 학습 히스토리 등을 저장할 수 있다.
제어부(250)는 데이터 분석 알고리즘 또는 머신 러닝 알고리즘을 사용하여 결정되거나 생성된 정보에 기초하여, 로봇(1)의 적어도 하나의 실행 가능한 동작을 결정할 수 있다. 그리고, 제어부(250)는 로봇(1)의 구성 요소들을 제어하여 결정된 동작을 수행할 수 있다.
이를 위해, 제어부(250)는 인공지능부(255) 또는 메모리의 데이터를 요청, 검색, 수신 또는 활용할 수 있고, 상기 적어도 하나의 실행 가능한 동작 중 예측되는 동작이나, 바람직한 것으로 판단되는 동작을 실행하도록 로봇(1)의 구성 요소들을 제어할 수 있다.
이때, 제어부(250)는 결정된 동작을 수행하기 위하여 외부 장치의 연계가 필요한 경우, 해당 외부 장치를 제어하기 위한 제어 신호를 생성하고, 생성한 제어 신호를 해당 외부 장치에 전송할 수 있다.
제어부(250)는 사용자 입력에 대하여 의도 정보를 획득하고, 획득한 의도 정보에 기초하여 사용자의 요구 사항을 결정할 수 있다.
이때, 제어부(250)는 음성 입력을 문자열로 변환하기 위한 STT(Speech To Text) 엔진 또는 자연어의 의도 정보를 획득하기 위한 자연어 처리(NLP: Natural Language Processing) 엔진 중에서 적어도 하나 이상을 이용하여, 사용자 입력에 상응하는 의도 정보를 획득할 수 있다.
이때, STT 엔진 또는 NLP 엔진 중에서 적어도 하나 이상은 적어도 일부가 머신 러닝 알고리즘에 따라 학습된 인공 신경망으로 구성될 수 있다. 그리고, STT 엔진 또는 NLP 엔진 중에서 적어도 하나 이상은 인공지능부(255)에 의해 학습된 것이나, AI 서버(300)의 러닝 프로세서(340)에 의해 학습된 것이거나, 또는 이들의 분산 처리에 의해 학습된 것일 수 있다.
제어부(250)는 로봇(1)의 동작 내용이나 동작에 대한 사용자의 피드백 등을 포함하는 이력 정보를 수집하여 메모리 또는 인공지능부(255)에 저장하거나, AI 서버(300) 등의 외부 장치에 전송할 수 있다. 수집된 이력 정보는 학습 모델을 갱신하는데 이용될 수 있다.
제어부(250)는 메모리(170)에 저장된 응용 프로그램을 구동하기 위하여, 로봇(1)의 구성 요소들 중 적어도 일부를 제어할 수 있다. 나아가, 제어부(250)는 는 상기 응용 프로그램의 구동을 위하여, 로봇(1)에 포함된 구성 요소들 중 둘 이상을 서로 조합하여 동작시킬 수 있다.
또는 로봇(1)과 통신하는 별도의 인공지능 서버(AI server)가 배치되고 로봇(1)이 제공하는 정보를 처리할 수 있다.
도 14는 본 발명의 일 실시예에 의한 AI 서버(300)의 구성을 보여준다.
인공 지능 서버, 즉 AI 서버(300)는 머신 러닝 알고리즘을 이용하여 인공 신경망을 학습시키거나 학습된 인공 신경망을 이용하는 장치를 의미할 수 있다. 여기서, AI 서버(300)는 복수의 서버들로 구성되어 분산 처리를 수행할 수도 있고, 5G 네트워크로 정의될 수 있다. 이때, AI 서버(300)는 AI 장치(100)의 일부의 구성으로 포함되어, AI 프로세싱 중 적어도 일부를 함께 수행할 수도 있다.
AI 서버(300)는 통신부(310), 메모리(330), 러닝 프로세서(340) 및 프로세서(360) 등을 포함할 수 있다.
통신부(310)는 로봇(1)등의 외부 장치와 데이터를 송수신할 수 있다.
메모리(330)는 모델 저장부(331)를 포함할 수 있다. 모델 저장부(331)는 러닝 프로세서(340)을 통하여 학습 중인 또는 학습된 모델(또는 인공 신경망, 231a)을 저장할 수 있다.
러닝 프로세서(340)는 학습 데이터를 이용하여 인공 신경망(331a)을 학습시킬 수 있다. 학습 모델은 인공 신경망의 AI 서버(300)에 탑재된 상태에서 이용되거나, 로봇(1)등의 외부 장치에 탑재되어 이용될 수도 있다.
학습 모델은 하드웨어, 소프트웨어 또는 하드웨어와 소프트웨어의 조합으로 구현될 수 있다. 학습 모델의 일부 또는 전부가 소프트웨어로 구현되는 경우 학습 모델을 구성하는 하나 이상의 명령어(instruction)는 메모리(330)에 저장될 수 있다.
프로세서(360)는 학습 모델을 이용하여 새로운 입력 데이터에 대하여 결과 값을 추론하고, 추론한 결과 값에 기초한 응답이나 제어 명령을 생성할 수 있다.
도 15는 본 발명의 일 실시예에 의한 로봇이 SLAM 과정에서 인공지능에 기반하여 포즈 그래프를 업데이트하는 과정을 보여준다.
로봇은 SLAM을 수행하는 과정에서 위치 추정의 정확도가 높은 영역 또는 낮은 영역에 대한 정보를 획득한다. 즉, 라이다 센서(220) 또는 카메라 센서(230)가 센싱한 정보와, 이 정보를 이용하여 위치 추정을 수행한 경우의 정확도, 그리고 위치 정보를 인공지능부(255) 또는 AI 서버(300)에게 제공한다(S91).
인공지능부(255) 또는 인공지능서버(300)는 제공된 정보를 이용하여 위치 정보에 따라 각 센서가 획득한 정보의 정확도를 비교한다. 인공지능부(255) 또는 인공지능서버(300)는 정확도가 높거나 낮은 영역에서 획득된 센서 정보와 기존의 맵 저장부에 저장된 정보를 비교하여 맵 업데이트 여부를 결정한다(S92).
이후, 제어부(250)는 맵 업데이트 결정에 따라 센싱한 정보를 이용하여 맵을 업데이트한다(S93). 일 실시예로 포즈그래프에 등록된 라이다 프레임/비주얼 프레임을 업데이트할 수 있다.
도 15의 프로세스를 적용할 경우, 로봇(1)은 SLAM을 수행하는 과정에서 위치 추정의 정확도가 높은 영역 또는 낮은 영역에서 각각의 센서가 정보를 획득하고 이를 저장할 수 있다. 그리고 저장된 정보들을 인공지능 모듈을 이용하여 학습하여 반복적으로 위치 추정의 정확도가 낮은 영역이나 높은 영역의 획득 정보를 포즈 그래프에 반영할 수 있다.
로봇(1)은 AI 기술이 적용되어, 안내 로봇, 운반 로봇, 청소 로봇, 웨어러블 로봇, 엔터테인먼트 로봇, 펫 로봇, 무인 비행 로봇 등으로 구현될 수 있다.
로봇(1)은 동작을 제어하기 위한 로봇 제어 모듈을 포함할 수 있고, 로봇 제어 모듈은 소프트웨어 모듈 또는 이를 하드웨어로 구현한 칩을 의미할 수 있다.
로봇(1)은 다양한 종류의 센서들로부터 획득한 센서 정보를 이용하여 로봇(1)의 상태 정보를 획득하거나, 주변 환경 및 객체를 검출(인식)하거나, 맵 데이터를 생성하거나, 이동 경로 및 주행 계획을 결정하거나, 사용자 상호작용에 대한 응답을 결정하거나, 동작을 결정할 수 있다.
여기서, 로봇(1)은 이동 경로 및 주행 계획을 결정하기 위하여, 라이다, 레이더, 카메라 중에서 적어도 하나 이상의 센서에서 획득한 센서 정보를 이용할 수 있다.
로봇(1)은 적어도 하나 이상의 인공 신경망으로 구성된 학습 모델을 이용하여 상기한 동작들을 수행할 수 있다. 예컨대, 로봇(1)은 학습 모델을 이용하여 주변 환경 및 객체를 인식할 수 있고, 인식된 주변 환경 정보 또는 객체 정보를 이용하여 동작을 결정할 수 있다. 여기서, 학습 모델은 로봇(1)에서 직접 학습되거나, AI 서버(300) 등의 외부 장치에서 학습된 것일 수 있다.
이때, 로봇(1)은 직접 학습 모델을 이용하여 결과를 생성하여 동작을 수행할 수도 있지만, AI 서버(300) 등의 외부 장치에 센서 정보를 전송하고 그에 따라 생성된 결과를 수신하여 동작을 수행할 수도 있다.
로봇(1)은 맵 데이터, 센서 정보로부터 검출한 객체 정보 또는 외부 장치로부터 획득한 객체 정보 중에서 적어도 하나 이상을 이용하여 이동 경로와 주행 계획을 결정하고, 구동부를 제어하여 결정된 이동 경로와 주행 계획에 따라 로봇(1)을 주행시킬 수 있다.
맵 데이터에는 로봇(1)이 이동하는 공간에 배치된 다양한 객체들에 대한 객체 식별 정보가 포함될 수 있다. 예컨대, 맵 데이터에는 벽, 문 등의 고정 객체들과 화분, 책상 등의 이동 가능한 객체들에 대한 객체 식별 정보가 포함될 수 있다. 그리고, 객체 식별 정보에는 명칭, 종류, 거리, 위치 등이 포함될 수 있다.
또한, 로봇(1)은 사용자의 제어/상호작용에 기초하여 구동부를 제어함으로써, 동작을 수행하거나 주행할 수 있다. 이때, 로봇(1)은 사용자의 동작이나 음성 발화에 따른 상호작용의 의도 정보를 획득하고, 획득한 의도 정보에 기초하여 응답을 결정하여 동작을 수행할 수 있다.
본 발명의 실시예에 의한 제어부(250)는 인공지능 모듈을 탑재할 수 있다. 이 경우, 제어부(250)는 맵 저장부(210)에 저장된 라이다 프레임 중에서 현재 위치에서 획득된 정보와 유사한 것을 검색하는데 인공지능 모듈을 탑재할 수 있다. 예를 들어 이미지 검색에 딥러닝 네트워크를 이용할 수 있으며, 딥러닝 네트워크를 포함한 제어부(250)는 이미지 검색 속도를 높일 수 있다.
본 발명의 실시예를 구성하는 모든 구성 요소들이 하나로 결합되거나 결합되어 동작하는 것으로 설명되었다고 해서, 본 발명이 반드시 이러한 실시예에 한정되는 것은 아니며, 본 발명의 목적 범위 내에서 모든 구성 요소들이 하나 이상으로 선택적으로 결합하여 동작할 수도 있다. 또한, 그 모든 구성 요소들이 각각 하나의 독립적인 하드웨어로 구현될 수 있지만, 각 구성 요소들의 그 일부 또는 전부가 선택적으로 조합되어 하나 또는 복수 개의 하드웨어에서 조합된 일부 또는 전부의 기능을 수행하는 프로그램 모듈을 갖는 컴퓨터 프로그램으로서 구현될 수도 있다. 그 컴퓨터 프로그램을 구성하는 코드들 및 코드 세그먼트들은 본 발명의 기술 분야의 당업자에 의해 용이하게 추론될 수 있을 것이다. 이러한 컴퓨터 프로그램은 컴퓨터가 읽을 수 있는 저장매체(Computer Readable Media)에 저장되어 컴퓨터에 의하여 읽혀지고 실행됨으로써, 본 발명의 실시예를 구현할 수 있다. 컴퓨터 프로그램의 저장매체로서는 자기 기록매체, 광 기록매체, 반도체 기록소자를 포함하는 저장매체를 포함한다. 또한 본 발명의 실시예를 구현하는 컴퓨터 프로그램은 외부의 장치를 통하여 실시간으로 전송되는 프로그램 모듈을 포함한다.
이상에서는 본 발명의 실시예를 중심으로 설명하였지만, 통상의 기술자의 수준에서 다양한 변경이나 변형을 가할 수 있다. 따라서, 이러한 변경과 변형이 본 발명의 범위를 벗어나지 않는 한 본 발명의 범주 내에 포함되는 것으로 이해할 수 있을 것이다.
Claims (15)
- 로봇을 이동시키는 이동부;상기 로봇의 외부에 배치된 사물과 로봇 사이의 거리를 센싱하여 제1라이다 프레임을 생성하는 라이다 센서;상기 로봇의 외부에 배치된 사물을 촬영하여 제1비주얼 프레임을 생성하는 카메라 센서;상기 제1라이다 프레임과 비교 가능한 다수의 라이다 프레임들을 포함하는 라이다 브랜치를 저장하고, 상기 제1비주얼 프레임과 비교 가능한 다수의 비주얼 프레임들을 포함하는 비주얼 브랜치를 저장하며, 상기 저장된 라이다 프레임 또는 상기 저장된 비주얼 프레임 중 어느 하나 이상과 등록된 프레임 노드를 둘 이상 포함하는 백본으로 구성된 포즈 그래프를 저장하며, 상기 프레임 노드 사이의 오도메트리 정보를 저장하는 맵 저장부; 및상기 포즈 그래프의 프레임 노드에 등록된 라이다 프레임과 상기 제1라이다 프레임을 비교하며, 상기 포즈 그래프의 프레임 노드에 등록된 비주얼 프레임과 상기 제1비주얼 프레임을 비교하여 상기 제1라이다 프레임의 비교 결과의 정확도를 판단하여 로봇의 현재 위치를 계산하는 제어부를 포함하는, 멀티 센서를 이용하여 위치를 추정하는 로봇.
- 제1항에 있어서,상기 제어부는 상기 오도메트리 정보를 이용하여 로봇의 현재 위치를 계산하는, 멀티 센서를 이용하여 위치를 추정하는 로봇.
- 제1항에 있어서,상기 제어부는 상기 제1라이다 프레임과 유사한 제2라이다 프레임과 제3라이다 프레임을 상기 포즈 그래프의 프레임 노드로부터 추출하고,상기 제어부는 상기 제1비주얼 프레임과 유사한 제2비주얼 프레임을 상기 포즈 그래프의 프레임 노드로부터 추출하고,상기 제어부는 상기 제2비주얼 프레임을 이용하여 상기 제2라이다 프레임 또는 제3라이다 프레임 중 어느 하나를 선택하고 선택한 라이다 프레임을 이용하여 로봇의 현재 위치로 계산하는, 멀티 센서를 이용하여 위치를 추정하는 로봇.
- 제3항에 있어서,상기 제어부는 상기 제1비주얼 프레임과 상기 제2비주얼 프레임의 유사도가 설정된 기준값 보다 높을 경우, 상기 제2비주얼 프레임의 위치 정보에 대응하여 상기 제1라이다 프레임을 상기 맵 저장부에 저장하는, 멀티 센서를 이용하여 위치를 추정하는 로봇.
- 제1항에 있어서,상기 제어부는 상기 제1라이다 프레임을 이용하여 제1위치 정보 및 제2위치 정보를 검색하며,상기 제어부는 상기 제1비주얼 프레임을 이용하여 제3위치 정보 및 제4위치 정보를 검색하며,상기 제어부는 상기 제1위치 정보, 상기 제2위치 정보, 상기 제3위치 정보, 상기 제4위치 정보를 이용하여 상기 로봇의 위치 정보를 산출하는, 멀티 센서를 이용하여 위치를 추정하는 로봇.
- 제5항에 있어서,상기 제어부는 상기 제1위치 정보와 상기 제3위치 정보의 거리, 상기 제2위치 정보와 상기 제3위치 정보의 거리, 상기 제1위치 정보와 상기 제4위치 정보의 거리, 상기 제2위치 정보와 상기 제4위치 정보의 거리를 비교하여 가장 근접한 거리의 위치 정보들을 이용하여 로봇의 위치 정보를 계산하는, 멀티 센서를 이용하여 위치를 추정하는 로봇.
- 제6항에 있어서,상기 제어부는 제1위치 정보 및 상기 제3위치 정보의 거리가 가장 근접한 것으로 판단한 경우,상기 제1라이다 프레임과 상기 제1위치 정보의 라이다 프레임의 유사도 및 상기 제2비주얼 프레임과 상기 제3위치 정보의 비주얼 프레임의 유사도를 비교하여 상기 로봇의 위치 정보를 계산하는, 멀티 센서를 이용하여 위치를 추정하는 로봇.
- 이동부가 로봇을 이동시키는 과정에서 상기 로봇의 라이다 센서가 상기 로봇의 외부에 배치된 사물과 로봇 사이의 거리를 센싱하여 제1라이다 프레임을 생성하는 단계;상기 로봇의 카메라 센서가 상기 로봇의 외부에 배치된 사물을 촬영하여 제1비주얼 프레임을 생성하는 단계; 및상기 제어부가 상기 로봇의 맵 저장부에 저장된 라이다 프레임과 상기 제1라이다 프레임을 비교하며, 상기 포즈 그래프의 프레임 노드에 등록된 비주얼 프레임과 상기 제1비주얼 프레임을 비교하여 상기 제1라이다 프레임의 비교 결과의 정확도를 판단하여 로봇의 현재 위치를 계산하는 단계를 포함하는, 멀티 센서를 이용하여 위치를 추정하는 방법.
- 제8항에 있어서,상기 맵 저장부는상기 제1라이다 프레임과 비교 가능한 다수의 라이다 프레임들을 포함하는 라이다 브랜치를 저장하고, 상기 제1비주얼 프레임과 비교 가능한 다수의 비주얼 프레임들을 포함하는 비주얼 브랜치를 저장하며, 상기 저장된 라이다 프레임 또는 상기 저장된 비주얼 프레임 중 어느 하나 이상과 등록된 프레임 노드를 둘 이상 포함하는 백본으로 구성된 포즈 그래프를 저장하며, 상기 프레임 노드 사이의 오도메트리 정보를 저장하는, 멀티 센서를 이용하여 위치를 추정하는 방법.
- 제8항에 있어서,상기 제어부는 상기 오도메트리 정보를 이용하여 로봇의 현재 위치를 계산하는 단계를 더 포함하는, 멀티 센서를 이용하여 위치를 추정하는 방법.
- 제9항에 있어서,상기 제어부는 상기 제1라이다 프레임과 유사한 제2라이다 프레임과 제3라이다 프레임을 상기 포즈 그래프의 프레임 노드로부터 추출하는 단계;상기 제어부는 상기 제1비주얼 프레임과 유사한 제2비주얼 프레임을 상기 포즈 그래프의 프레임 노드로부터 추출하는 단계; 및상기 제어부는 상기 제2비주얼 프레임을 이용하여 상기 제2라이다 프레임 또는 제3라이다 프레임 중 어느 하나를 선택하고 선택한 라이다 프레임을 이용하여 로봇의 현재 위치로 계산하는 단계를 더 포함하는, 멀티 센서를 이용하여 위치를 추정하는 방법.
- 제11항에 있어서,상기 제어부는 상기 제1비주얼 프레임과 상기 제2비주얼 프레임의 유사도가 설정된 기준값 보다 높을 경우, 상기 제2비주얼 프레임의 위치 정보에 대응하여 상기 제1라이다 프레임을 상기 맵 저장부에 저장하는 단계를 더 포함하는, 멀티 센서를 이용하여 위치를 추정하는 방법.
- 제8항에 있어서,상기 제어부는 상기 제1라이다 프레임을 이용하여 제1위치 정보 및 제2위치 정보를 검색하는 단계;상기 제어부는 상기 제1비주얼 프레임을 이용하여 제3위치 정보 및 제4위치 정보를 검색하는 단계; 및상기 제어부는 상기 제1위치 정보, 상기 제2위치 정보, 상기 제3위치 정보, 상기 제4위치 정보를 이용하여 상기 로봇의 위치 정보를 산출하는 단계를 더 포함하는, 멀티 센서를 이용하여 위치를 추정하는 방법.
- 제13항에 있어서,상기 제어부는 상기 제1위치 정보와 상기 제3위치 정보의 거리, 상기 제2위치 정보와 상기 제3위치 정보의 거리, 상기 제1위치 정보와 상기 제4위치 정보의 거리, 상기 제2위치 정보와 상기 제4위치 정보의 거리를 비교하여 가장 근접한 거리의 위치 정보들을 이용하여 로봇의 위치 정보를 계산하는 단계를 더 포함하는, 멀티 센서를 이용하여 위치를 추정하는 방법.
- 제14항에 있어서,상기 제어부는 제1위치 정보 및 상기 제3위치 정보의 거리가 가장 근접한 것으로 판단한 경우,상기 제1라이다 프레임과 상기 제1위치 정보의 라이다 프레임의 유사도 및 상기 제2비주얼 프레임과 상기 제3위치 정보의 비주얼 프레임의 유사도를 비교하여 상기 로봇의 위치 정보를 계산하는 단계를 더 포함하는, 멀티 센서를 이용하여 위치를 추정하는 방법.
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/KR2019/006524 WO2020241930A1 (ko) | 2019-05-30 | 2019-05-30 | 멀티 센서를 이용하여 위치를 추정하는 방법 및 이를 구현하는 로봇 |
US16/766,274 US11554495B2 (en) | 2019-05-30 | 2019-05-30 | Method of localization using multi sensor and robot implementing same |
KR1020197023486A KR102220564B1 (ko) | 2019-05-30 | 2019-05-30 | 멀티 센서를 이용하여 위치를 추정하는 방법 및 이를구현하는 로봇 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/KR2019/006524 WO2020241930A1 (ko) | 2019-05-30 | 2019-05-30 | 멀티 센서를 이용하여 위치를 추정하는 방법 및 이를 구현하는 로봇 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2020241930A1 true WO2020241930A1 (ko) | 2020-12-03 |
Family
ID=73549597
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/KR2019/006524 WO2020241930A1 (ko) | 2019-05-30 | 2019-05-30 | 멀티 센서를 이용하여 위치를 추정하는 방법 및 이를 구현하는 로봇 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11554495B2 (ko) |
KR (1) | KR102220564B1 (ko) |
WO (1) | WO2020241930A1 (ko) |
Families Citing this family (9)
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 |
US11274930B1 (en) * | 2019-12-11 | 2022-03-15 | Amazon Technologies, Inc. | System for assessing an autonomously determined map |
US11508089B2 (en) * | 2021-03-05 | 2022-11-22 | Black Sesame Technologies Inc. | LiDAR assisted wheel encoder to camera calibration |
CN113777615B (zh) * | 2021-07-19 | 2024-03-29 | 派特纳(上海)机器人科技有限公司 | 室内机器人的定位方法、***及清洁机器人 |
CN114378825B (zh) * | 2022-01-21 | 2023-05-12 | 四川长虹智能制造技术有限公司 | 一种多相机视觉定位方法、***及电子设备 |
CN114674308B (zh) * | 2022-05-26 | 2022-09-16 | 之江实验室 | 基于安全出口指示牌视觉辅助激光长廊定位方法及装置 |
KR102616776B1 (ko) * | 2023-08-21 | 2023-12-21 | 주식회사 랑데뷰 | 자율주행 가능한 대차 로봇 |
KR102681287B1 (ko) * | 2023-12-01 | 2024-07-04 | 주식회사 폴라리스쓰리디 | 지도상 자동 도착 위치 설정 및 데이터 기반 경로 최적화 방법 및 로봇 |
KR102650894B1 (ko) * | 2023-12-11 | 2024-03-27 | 강윤 | 모바일 로봇을 위한 uwb 전파 기반 3차원 전방위 인간 추종 시스템 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20160209846A1 (en) * | 2015-01-19 | 2016-07-21 | The Regents Of The University Of Michigan | Visual Localization Within LIDAR Maps |
KR20180044486A (ko) * | 2016-10-21 | 2018-05-03 | 네이버 주식회사 | 자율 주행 기술을 응용한 3차원 실내 정밀 지도 자동 생성 로봇 및 로봇의 제어 방법 |
US20180204338A1 (en) * | 2017-01-13 | 2018-07-19 | Otsaw Digital Pte. Ltd. | Three-dimensional mapping of an environment |
KR20180117879A (ko) * | 2017-04-20 | 2018-10-30 | 한국과학기술원 | 그래프 구조 기반의 무인체 위치 추정 장치 및 그 방법 |
KR20190045006A (ko) * | 2017-10-23 | 2019-05-02 | 주식회사 유진로봇 | 라이다를 이용한 위치 인식 및 지도 작성에 관한 방법 및 장치 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2999940A4 (en) * | 2013-05-22 | 2017-11-15 | Neurala Inc. | Methods and apparatus for early sensory integration and robust acquisition of real world knowledge |
KR101725060B1 (ko) | 2014-06-17 | 2017-04-10 | 주식회사 유진로봇 | 그래디언트 기반 특징점을 이용한 이동 로봇의 위치를 인식하기 위한 장치 및 그 방법 |
US10241514B2 (en) | 2016-05-11 | 2019-03-26 | Brain Corporation | Systems and methods for initializing a robot to autonomously travel a trained route |
US11092690B1 (en) * | 2016-09-22 | 2021-08-17 | Apple Inc. | Predicting lidar data using machine learning |
US10962647B2 (en) | 2016-11-30 | 2021-03-30 | Yujin Robot Co., Ltd. | Lidar apparatus based on time of flight and moving object |
KR102647351B1 (ko) * | 2017-01-26 | 2024-03-13 | 삼성전자주식회사 | 3차원의 포인트 클라우드를 이용한 모델링 방법 및 모델링 장치 |
US10776948B1 (en) * | 2017-09-04 | 2020-09-15 | Apple Inc. | Method and device for improved localization and mapping |
US11579298B2 (en) | 2017-09-20 | 2023-02-14 | Yujin Robot Co., Ltd. | Hybrid sensor and compact Lidar sensor |
US11874399B2 (en) | 2018-05-16 | 2024-01-16 | Yujin Robot Co., Ltd. | 3D scanning LIDAR sensor |
US11351917B2 (en) * | 2019-02-13 | 2022-06-07 | Ford Global Technologies, Llc | Vehicle-rendering generation for vehicle display based on short-range communication |
-
2019
- 2019-05-30 WO PCT/KR2019/006524 patent/WO2020241930A1/ko active Application Filing
- 2019-05-30 KR KR1020197023486A patent/KR102220564B1/ko active IP Right Grant
- 2019-05-30 US US16/766,274 patent/US11554495B2/en active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20160209846A1 (en) * | 2015-01-19 | 2016-07-21 | The Regents Of The University Of Michigan | Visual Localization Within LIDAR Maps |
KR20180044486A (ko) * | 2016-10-21 | 2018-05-03 | 네이버 주식회사 | 자율 주행 기술을 응용한 3차원 실내 정밀 지도 자동 생성 로봇 및 로봇의 제어 방법 |
US20180204338A1 (en) * | 2017-01-13 | 2018-07-19 | Otsaw Digital Pte. Ltd. | Three-dimensional mapping of an environment |
KR20180117879A (ko) * | 2017-04-20 | 2018-10-30 | 한국과학기술원 | 그래프 구조 기반의 무인체 위치 추정 장치 및 그 방법 |
KR20190045006A (ko) * | 2017-10-23 | 2019-05-02 | 주식회사 유진로봇 | 라이다를 이용한 위치 인식 및 지도 작성에 관한 방법 및 장치 |
Also Published As
Publication number | Publication date |
---|---|
KR20200137943A (ko) | 2020-12-09 |
KR102220564B1 (ko) | 2021-02-25 |
US11554495B2 (en) | 2023-01-17 |
US20200376676A1 (en) | 2020-12-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2020241930A1 (ko) | 멀티 센서를 이용하여 위치를 추정하는 방법 및 이를 구현하는 로봇 | |
WO2020241934A1 (ko) | 멀티 센서를 동기화시켜 위치를 추정하는 방법 및 이를 구현하는 로봇 | |
WO2021010502A1 (ko) | 로봇 및 그를 이용한 물품 관리 방법 | |
WO2019031825A1 (ko) | 전자 장치 및 그 동작 방법 | |
WO2019132518A1 (en) | Image acquisition device and method of controlling the same | |
WO2021002499A1 (ko) | 군집 로봇을 이용하여 사용자의 위치를 추적하는 방법, 태그장치 및 이를 구현하는 로봇 | |
WO2015194867A1 (ko) | 다이렉트 트래킹을 이용하여 이동 로봇의 위치를 인식하기 위한 장치 및 그 방법 | |
WO2015194866A1 (ko) | 에지 기반 재조정을 이용하여 이동 로봇의 위치를 인식하기 위한 장치 및 그 방법 | |
WO2019151735A1 (en) | Vision inspection management method and vision inspection system | |
WO2015194868A1 (ko) | 광각 카메라가 탑재된 이동 로봇의 주행을 제어하기 위한 장치 및 그 방법 | |
WO2020226187A1 (ko) | 다중 센서 및 인공지능에 기반하여 맵을 생성하고 맵을 이용하여 주행하는 로봇 | |
WO2021002511A1 (ko) | 마커, 마커 추종 모드로 이동하는 방법 및 이를 구현하는 카트로봇 | |
WO2019216578A1 (en) | Method and apparatus for executing cleaning operation | |
WO2017188800A1 (ko) | 이동 로봇 및 그 제어방법 | |
EP3993961A1 (en) | Moving robot and control method thereof | |
WO2020230931A1 (ko) | 다중 센서 및 인공지능에 기반하여 맵을 생성하고 노드들의 상관 관계를 설정하며 맵을 이용하여 주행하는 로봇 및 맵을 생성하는 방법 | |
WO2015194865A1 (ko) | 검색 기반 상관 매칭을 이용하여 이동 로봇의 위치를 인식하기 위한 장치 및 그 방법 | |
WO2020231153A1 (en) | Electronic device and method for assisting with driving of vehicle | |
WO2020251086A1 (ko) | 인공지능 세탁물 처리 기기 | |
WO2019172645A1 (ko) | 차량의 주행을 보조하는 전자 장치 및 방법 | |
WO2019208950A1 (ko) | 사용자에게 서비스를 제공하는 이동형 로봇 장치 및 방법 | |
WO2021040214A1 (ko) | 이동 로봇 및 그 제어 방법 | |
WO2020262721A1 (ko) | 인공 지능을 이용하여, 복수의 로봇들을 제어하는 관제 시스템 | |
WO2020222342A1 (ko) | 인공지능을 이용하여 주행공간을 식별하는 방법, 학습모듈 및 카트로봇 | |
WO2018117538A1 (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: 19931332 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: 19931332 Country of ref document: EP Kind code of ref document: A1 |