WO2019006289A1 - Systems and methods for improvements in scanning and mapping - Google Patents

Systems and methods for improvements in scanning and mapping Download PDF

Info

Publication number
WO2019006289A1
WO2019006289A1 PCT/US2018/040269 US2018040269W WO2019006289A1 WO 2019006289 A1 WO2019006289 A1 WO 2019006289A1 US 2018040269 W US2018040269 W US 2018040269W WO 2019006289 A1 WO2019006289 A1 WO 2019006289A1
Authority
WO
WIPO (PCT)
Prior art keywords
data
scanning device
sensor
freedom
pose
Prior art date
Application number
PCT/US2018/040269
Other languages
French (fr)
Inventor
Steven HUBER
Calvin Wade Sheen
Ji Zhang
Original Assignee
Kaarta, Inc.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from PCT/US2017/055938 external-priority patent/WO2018071416A1/en
Priority claimed from PCT/US2018/015403 external-priority patent/WO2018140701A1/en
Application filed by Kaarta, Inc. filed Critical Kaarta, Inc.
Priority to EP18824609.4A priority Critical patent/EP3646058A4/en
Priority to EP18834521.9A priority patent/EP3656138A4/en
Priority to PCT/US2018/042346 priority patent/WO2019018315A1/en
Publication of WO2019006289A1 publication Critical patent/WO2019006289A1/en
Priority to US16/733,787 priority patent/US11573325B2/en
Priority to US16/745,775 priority patent/US10989542B2/en
Priority to US17/202,602 priority patent/US11506500B2/en
Priority to US17/964,307 priority patent/US20230288209A1/en

Links

Classifications

    • GPHYSICS
    • G01MEASURING; TESTING
    • G01SRADIO DIRECTION-FINDING; RADIO NAVIGATION; DETERMINING DISTANCE OR VELOCITY BY USE OF RADIO WAVES; LOCATING OR PRESENCE-DETECTING BY USE OF THE REFLECTION OR RERADIATION OF RADIO WAVES; ANALOGOUS ARRANGEMENTS USING OTHER WAVES
    • G01S17/00Systems using the reflection or reradiation of electromagnetic waves other than radio waves, e.g. lidar systems
    • G01S17/02Systems using the reflection of electromagnetic waves other than radio waves
    • G01S17/06Systems determining position data of a target
    • G01S17/42Simultaneous measurement of distance and other co-ordinates
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01CMEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
    • G01C21/00Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
    • G01C21/10Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 by using measurements of speed or acceleration
    • G01C21/12Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 by using measurements of speed or acceleration executed aboard the object being navigated; Dead reckoning
    • G01C21/16Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 by using measurements of speed or acceleration executed aboard the object being navigated; Dead reckoning by integrating acceleration or speed, i.e. inertial navigation
    • G01C21/165Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 by using measurements of speed or acceleration executed aboard the object being navigated; Dead reckoning by integrating acceleration or speed, i.e. inertial navigation combined with non-inertial navigation instruments
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01SRADIO DIRECTION-FINDING; RADIO NAVIGATION; DETERMINING DISTANCE OR VELOCITY BY USE OF RADIO WAVES; LOCATING OR PRESENCE-DETECTING BY USE OF THE REFLECTION OR RERADIATION OF RADIO WAVES; ANALOGOUS ARRANGEMENTS USING OTHER WAVES
    • G01S17/00Systems using the reflection or reradiation of electromagnetic waves other than radio waves, e.g. lidar systems
    • G01S17/86Combinations of lidar systems with systems other than lidar, radar or sonar, e.g. with direction finders
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01SRADIO DIRECTION-FINDING; RADIO NAVIGATION; DETERMINING DISTANCE OR VELOCITY BY USE OF RADIO WAVES; LOCATING OR PRESENCE-DETECTING BY USE OF THE REFLECTION OR RERADIATION OF RADIO WAVES; ANALOGOUS ARRANGEMENTS USING OTHER WAVES
    • G01S17/00Systems using the reflection or reradiation of electromagnetic waves other than radio waves, e.g. lidar systems
    • G01S17/88Lidar systems specially adapted for specific applications
    • G01S17/89Lidar systems specially adapted for specific applications for mapping or imaging
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01SRADIO DIRECTION-FINDING; RADIO NAVIGATION; DETERMINING DISTANCE OR VELOCITY BY USE OF RADIO WAVES; LOCATING OR PRESENCE-DETECTING BY USE OF THE REFLECTION OR RERADIATION OF RADIO WAVES; ANALOGOUS ARRANGEMENTS USING OTHER WAVES
    • G01S7/00Details of systems according to groups G01S13/00, G01S15/00, G01S17/00
    • G01S7/48Details of systems according to groups G01S13/00, G01S15/00, G01S17/00 of systems according to group G01S17/00
    • G01S7/4808Evaluating distance, position or velocity data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/20Analysis of motion
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/50Depth or shape recovery
    • G06T7/55Depth or shape recovery from multiple images
    • G06T7/579Depth or shape recovery from multiple images from motion
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10028Range image; Depth image; 3D point clouds
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/30Subject of image; Context of image processing
    • G06T2207/30244Camera pose

Definitions

  • PCT Application No. PCT/US2018/015403 claims priority to, and is a continuation-in-part of, PCT Application No.
  • PCT Application No. PCT/US2017/055938 (Atty. Dckt. No. KRTA-0008-WO) claims priority to, and is a continuation-in-part of, PCT Application No.
  • PCT Application No. PCT/US2018/015403 claims priority to PCT Application No. PCT/US2017/021120 (Atty. Dckt. No. KRTA-0005- WO).
  • PCT Application No. PCT/US2017/055938 (Atty. Dckt. No. KRTA-0008-WO) further claims priority to U.S. Provisional No. 62/406,910 (Atty. Dckt. No. KRTA-0002- P02), entitled "LASER SCANNER WITH REAL-TIME, ONLINE EGO-MOTION
  • PCT Application No. PCT/US2017/021120 (Atty. Dckt. No. KRTA-0005-WO) claims the benefit of U.S. Provisional Patent Application Serial No. 62/307,061 (Atty. Dckt. No. KRTA-0001-P01), entitled "LASER SCANNER WITH REAL-TIME, ONLINE EGO- MOTION ESTIMATION,” filed on March 11, 2016.
  • New forms of mobile mapping use passive or active sensing means to quickly capture a 3D map of the environment or operate in real-time.
  • These systems may use one or more of the following sensors: laser radar (lidar), camera, inertial measurement unit, and other sensors.
  • laser radar lidar
  • camera inertial measurement unit
  • sensors combined with sufficient computing resources and the application of novel algorithms, may be used to build a real-time 3D map of a local environment. As the sensor moves through the environment, it gathers image, lidar, and motion data to populate a 3D map of the environment. The map accretes additional data and continues to build a map of the environment.
  • mapping is difficult or challenging. This is often a function of the geometry of the environment. Examples include narrow stairwells, featureless environments (either geometric or visual), or narrow transitions between two larger areas such as a doorway. In such instances the model may be distorted or warped as a result of an inability to correctly track features in the environment. This can result in the map having non- level floors or adjacent rooms that appear to be at angles to each other when in fact, they are not.
  • SLAM simultaneously localization and mapping
  • a method of pose calculation for a portable three-dimensional scanning device comprising a first sensor and a second sensor the method comprising utilizing data from the first sensor and data from the second sensor to acquire data defining six degrees of freedom of the scanning device to optimize a first pose calculation, receiving data comprising one of data from the first sensor and data from the second sensor, selecting a subset of the six degrees of freedom of the scanning device, utilizing the data from the first sensor and the received data for the selected subset of six degrees of freedom to optimize a second pose, wherein the unselected degrees of freedom are retained from the first pose and storing received data associated with the second camera pose in a point cloud database.
  • a method comprises utilizing inertial measurement unit (IMU) data and one of tracking camera data and laser data for six degrees of freedom of the scanning device to optimize a first pose calculation, receiving data comprising one of a scan from the laser and an image from the tracking camera, selecting a subset of the six degrees of freedom of the scanning device and utilizing the IMU data and the received data for the selected subset of six degrees of freedom to optimize a second pose, wherein the unselected degrees of freedom are retained from the first pose.
  • IMU inertial measurement unit
  • method comprises computing a degraded direction in state space of a scanning device in a default mode, determining if at least one of a roll or a pitch of the scanning device is in the degraded direction, determining if a yaw of the scanning device is in the degraded direction, activating a roll and pitch lock mode if it is determined that at least one of a roll or a pitch of the scanning device is in the degraded direction and activating a yaw lock mode if it is determined that the yaw of the scanning device is in the degraded direction.
  • FIG. 1 illustrates an image of a map of a circular staircase created using a LIDAR scanner and an inertial measurement unit (IMU) known in the art.
  • IMU inertial measurement unit
  • FIG. 2 is an illustration of a 3D model of a segment of a building created in accordance with exemplary and non-limiting embodiments described herein.
  • FIG. 3 is an illustration of an exemplary and non-limiting embodiment of a map created utilizing pose decoupling.
  • FIG. 4 is a flowchart of an exemplary an non-limiting embodiment of the flow of information and decision points related to decision points for roll and pitch decoupling and yaw decoupling.
  • FIGS. 5(a)-5(c) illustrate an exemplary portable handheld real-time mapping system and accompanying pose decoupling indicators.
  • FIG. 6 is an illustration of an exemplary and non-limiting embodiment of a stabilizing platform.
  • FIG. 1 there is illustrated an image of a map of a circular staircase 1001 created using a lidar scanner and an inertial measurement unit (IMU).
  • IMU inertial measurement unit
  • the map of the staircase 1001 that, in reality, extends straight upwards, displays a pronounced curvature arising from the introduction of scanning error. Even good algorithms and sensor combinations can fail in such an environment. The consistent curvature of the overall scan indicates a systemic issue. Position or orientation is not completely lost but becomes inaccurate. The result is a distortion that does not accurately reflect reality.
  • staircase segment 2001 is a direct output map with no post-processing other than visual rendering. Note the lack of discernible curvature.
  • a series of adjustments may be applied to the mapping process to mitigate or eliminate issues where confidence measures such as covariance matrix results, are low.
  • the covariance matrix is a measure of how strongly correlated different parts of the pose solution are.
  • the covariance matrix may be used to identify directions in the state estimate that are of higher and lower confidence.
  • the covariance matrix is a 6x6 matrix representing the 6 degrees of freedom: x, y, z, roll, pitch, and yaw. This matrix may be decomposed by determining the directions or vectors with the largest variance, specifically, the eignvectors). The magnitude of these eigenvectors (or eigenvalues) indicates the level of variance and the associated certainty along that direction.
  • laser point matching in an infinite length hallway with flat walls should generate an eigenvector with low certainty oriented down the length of the hallway, indicating that the placement of the new data in that direction is uncertain.
  • modes may be applied manually by recognizing the type of environment or previous patterns. Mode application may also be performed automatically by noting the degradation of the resultant map information and making parameter changes on the fly based on measurements such as the covariance matrices associated with each optimization step. The same approach may be used for hand-carried systems, vehicle-based systems, aerial, subterranean, even underwater mapping systems all of which are subject to the same issues.
  • Pose such as the pose of a three-dimensional scanning device (e.g., a
  • SLAM Simultaneous Localization And Mapping device
  • a SLAM device is defined by both position in space and orientation and is defined by 6 degrees of freedom using spatial coordinates and orientation (x, y, z and roll, pitch, and yaw). If a SLAM system provides good quality information about these attributes, then it likely provides good pose. If any of these drift in value or are calculated incorrectly then the pose value is in error and subsequent map information that depends on pose data will also be in error.
  • the mapping system continuously calculates pose while building a map and vice versa.
  • mapping areas in which there are narrow corridors there are significant advantages in being able to vary pose calculation options.
  • FIG. 3 there is illustrated a 3D model of a typical floor plan arrangement of rooms as in an office or other application.
  • the solid line rendered model 3001 is formed of geometric elements that are well aligned.
  • superimposed over the model 3001 is dashed- line rendered model 3003.
  • Model 3003 is visibly twisted with respect to other parts of the model. As described more fully below, dashed-line rendered model 3003 was created without pose decoupling while dashed- line rendered model 3003 was created using pose decoupling.
  • varying the method of computation of pose for aspects such as roll and pitch and/or the yaw may substantially improve results when going through challenging environments such as, for example, transitions comprising doorways, narrow spaces, hallways and stairwells.
  • varying the method of computation of pose may result in improved mapping accuracy exhibiting a low net twist of the scanned data.
  • the method described here achieves this improved accuracy, in part, by relying more heavily a scanning mode that utilizes sensor data that is less impacted by these environments.
  • the generated model, or point cloud has significantly fewer local errors, such as rooms twisted relative to each other.
  • One trade-off that may arise is the presence of increased blur from sensor noise and a larger global drift.
  • the overall error and resulting twist of the scanned image may be dramatically improved.
  • image twist in terms of roll and pitch may be unstable, but the introduced error varies around a central median, rather than aggressively twisting due to a poor scan-to-scan point matching. Poor scan-to-scan point matching may result from pulling the data dramatically for successive scans that capture data from surfaces that are widely separated. As a result, such error may be improved by breaking down the motion estimate of position (e.g., pose) to be optimized for fewer degrees of freedom and then using scan matching refinement to get the "true" pose in some fashion before adding the points to the point cloud.
  • position e.g., pose
  • this reduction in utilized degrees of freedom in optimization steps may be used in various ways. For example, consider an instance where map-building or scanning starts at the top of a stairwell. First, a base map may be built using a SLAM device while standing still, holding a mapping device in a level pose with the rotation axis of the LIDAR generally perpendicular to the direction of descent.
  • the operator of the SLAM device may switch scan matching modes to a twist-reducing scan mode to change the computation of pose that decouples at least one of roll, pitch, and yaw, then moves down (or perhaps up) stairs with the mapping device held perpendicular to descent and generally pointing to the center of the stairwell throughout movement.
  • ascent or descent may occur relatively rapidly as long as motion is smooth.
  • each successive scan uses the twist-reducing pose optimization technique to process the scanned/imaged data to be stored in a point cloud.
  • the device may be changed back to its traditional mapping and pose estimation mode, such as for example, turning off the twist-reducing scan mode.
  • twist reduction that also reduces local errors may include activating a twist reduction mode during motion in a stairwell or the like to fall back on the IMU and/or camera estimates that have fewer unpredictable twists as new sections are revealed than the LIDAR matching. Then, the operator may stop, for example, halfway to a third of the way down each flight when a next flight or turn in the flight comes into view and the laser view is more stable. At that point the user would turn full scan matching back on (i.e., turn off the twist reduction mode) to help refine position and remove blur and drift built up when the twist reduction mode was on. Implementations may alternately only retain the data collected in the sections with full scan matching on to reduce the noisy measurements during the decoupled portions of the scan. Alternatively, the data collected may be tagged based on collection state and filtered in post processing.
  • This approach may proceed with brief stops to add data and refine position and add data to the map at each landing and at the halfway point of each flight. This is possible due to the twist reduction mode keeping the global drift very low while on, but also not introducing a significant local error that often occurs in the frequent environmental
  • optimization confidence metrics during scan matching can be used to automate much of this process by detecting when it is okay to switch back to full scan matching mode. This may be done by examining the eigenvectors and eigenvalues of the covariance matrix to determine degrees of freedom that are of low confidence.
  • the system in a "stairwell” or "hallway” mode could sense when the user comes to a stop and when they resume motion as a guide for when to transition modes.
  • tracking key poses during the passage along the stairwell and resuming scanning at each floor can enable the data captured in the stairwell to be used as the vertical reference frame for the entire building. It may be used as an anchor for subsequent scans at each floor. Doing this in multiple stairwells in a building has the potential to create an even larger benefit.
  • a high-quality stationary LIDAR is capable of collecting very good scans of stairwells that are accurate, clear, and straight. However, it requires approximately four positions per floor and approximately ten minutes per position to produce such a high quality scan. In contrast, when the described pose-decoupling is employed, twenty-four floors may be scanned in approximately thirty minutes or less. The high-quality stationary LIDAR scan described above would require nearly seven hours to scan a mere ten floors. The LIDAR dictates the quality of the scan. Thus, while the high-end stationary LIDAR may be of better quality, the described pose-coupling scanning method and means is an order of magnitude faster. As LIDAR technology and algorithms continue to improve, the differences in accuracy and precision between the two methods will matter less and less.
  • State estimation using perception sensor data extracts useful information in the sensor data to formulate a mathematical problem.
  • the extracted information can be texture information, if using vision sensors such as a camera, or structural information, if using range sensors such as a LIDAR.
  • the formulated problem has to be well conditioned, meaning that the sensor data contains sufficient information to constrain the solution in all directions in the state space. When insufficient information is provided in the sensor data, the problem is degraded - certain directions in the state space are unconstrained, and resulting solution is invalid in the degraded directions.
  • One way to solve a degraded problem is to decouple the degraded directions from the well- structured directions in the state space.
  • the proposed roll/pitch twist reduction and yaw twist reduction do so by limiting the state estimation (in this instance device pose is the resulting feature being generated) to a lower dimensional state space.
  • the 2 degree of freedom (DOF) rotational motion is estimated solely by the onboard IMU, as opposed to a the full state estimation algorithm.
  • the state estimation problem may be refined by computer vision and scan matching in the remaining 4 DOFs (x, y, z, and yaw) instead of 6 DOF, while holding the roll and pitch DOF unchanged.
  • the one DOF rotational motion is estimated by the onboard IMU as opposed to by the full state estimation algorithm.
  • the state estimation is refined by computer vision and scan matching in 3 DOF (x, y, and z) only, the three rotational DOFs remain unchanged from a previous calculation.
  • the approach is particularly helpful when insufficient texture information is contained in the image data, or insufficient structural information is contained in the range data, such that the state estimation cannot be carried out in full 6 DOF.
  • a result, for example is that new camera and/or scan data that would otherwise cause the scan matching function to generate a twist or distortion in the scanned image, does not have as significant an impact on the scanned image.
  • a scanning device such as a SLAM device
  • experiences degradation in one or more directions each correlated to a degree of freedom One way comprises adding more sensor data to provide constraints in the degraded directions in the state space. This requires additional sensors.
  • another way comprises decoupling the degraded directions from well-conditioned directions. This involves roll/pitch decoupling and yaw decoupling.
  • FIG. 4 there is illustrated an exemplary and non-limiting embodiment of the flow of information and decision points related to decision points for roll and pitch decoupling and yaw decoupling.
  • the illustrated method may be used for both manual and automated versions of this technique.
  • the estimated confidence of degraded directions in state space are computed.
  • the estimated confidences are displayed to a user, such as via a user interface of a SLAM device. These values may be normalized to provide a specific scale of good and poor values such as 1 to 100 or 0 to 50,000. Thresholds may be set such that reverting to earlier estimates occurs when the new estimates are less likely to be accurate than the prior estimates (e.g., your camera uncertainty is less than the expected average IMU error). This should be tuned to specific sensors.
  • a decision is made as to whether a degraded direction corresponds to either roll or pitch.
  • step 4003 If either roll or pitch is found to be in a degraded direction, processing proceeds to step 4003 whereat roll and pitch lock is turned on. If neither roll nor pitch is found to be in a degraded direction, processing proceeds to step 4004 where roll and pitch lock are turned off. The default setting of using all sensor information is on until a degraded condition is determined. Processing then proceeds to step 4005 whereat a decision is made as to whether a degraded direction corresponds to yaw. If yaw is found to be in a degraded direction, processing proceeds to step 4006 whereat yaw lock is turned on. If yaw is not found to be in a degraded direction, processing proceeds to step 4007 whereat roll and pitch lock is turned off.
  • Icons 5002 indicate and provide for selective control of pose decoupling features for scanning challenging environments. Operator selection may be based on visual map information, confidence measures, and knowledge of mapped environments.
  • the interactive screen 5003 may be used to provide selection controls for pose decoupling and for showing the real time map 5004. Additional confidence measures, either graphical or numerical, may be used to indicate the quality of the map being built at that time. Typically, if the confidence measure is low, the mapping process can be slowed down, or mapping can be rewound and repeated for that section. In addition, pose-decoupling can be used to gather a better quality map at that point.
  • FIGs. 5(b) and 5(c) there are illustrated exemplary versions of icons 5005, 5006 for selectively turning on and off pose-decoupling functions for Yaw (icon 5005) and Roll & Pitch (icon 5006).
  • icon 5005 represents a Yaw-decoupling function and enables such function upon activation or selection. Upon selection of icon 5005 decoupling of the yaw function is realized. Similarly, when icon 5006 is selected, the roll and pitch axes are effectively decoupled. When selected, a portion of each icon may disappear or any one of several graphical means may be employed to indicate selection of the icon 5005, 5006. In the instance that each icon 5005, 5006 appears on a button, the icon may be lit or not lit. A physical button or switch may be toggled and an LED may provide an indication of a decoupling status in one or more devices where specific modes are selected and deselected.
  • the function may also be implemented in an interactive screen through the use of gestures, stylus, track pad, trackball, joystick, and interactive displays including, but not limited to, capacitive touch, resistive touch, and so forth.
  • a stabilizing platform can be used to provide a stable pose-decoupling capability.
  • Fig. 6 there is illustrated an exemplary and non- limiting embodiment of stabilizing platform 6001.
  • the mapping system may be mounted directly to a stabilizing platform that provides fixed orientation or control of the mapping system.
  • the use of a stabilizing platform for a mapping and localization system may provide external control of pose to ensure good quality pose capture.
  • the stabilizing platform may be used to control the orientation of the unit and not just stabilize the unit. This form of active control may be interfaced to the analysis of the mapped environment geometry.
  • the pose estimation of the system may be used to adjust the stabilizing platform to maintain the same roll, pitch, and/or yaw during motion. While only a few embodiments of the present disclosure have been shown and described, it will be obvious to those skilled in the art that many changes and modifications may be made thereunto without departing from the spirit and scope of the present disclosure as described in the following claims. All patent applications and patents, both foreign and domestic, and all other publications referenced herein are incorporated herein in their entireties to the full extent permitted by law.
  • the methods and systems described herein may be deployed in part or in whole through a machine that executes computer software, program codes, and/or instructions on a processor.
  • the present disclosure may be implemented as a method on the machine, as a system or apparatus as part of or in relation to the machine, or as a computer program product embodied in a computer readable medium executing on one or more of the machines.
  • the processor may be part of a server, cloud server, client, network infrastructure, mobile computing platform, stationary computing platform, or other computing platform.
  • a processor may be any kind of computational or processing device capable of executing program instructions, codes, binary instructions and the like.
  • the processor may be or may include a signal processor, digital processor, embedded processor, microprocessor or any variant such as a co-processor (math co-processor, graphic co-processor, communication co-processor and the like) and the like that may directly or indirectly facilitate execution of program code or program instructions stored thereon.
  • the processor may enable execution of multiple programs, threads, and codes. The threads may be executed simultaneously to enhance the performance of the processor and to facilitate simultaneous operations of the application.
  • methods, program codes, program instructions and the like described herein may be implemented in one or more thread.
  • the thread may spawn other threads that may have assigned priorities associated with them; the processor may execute these threads based on priority or any other order based on instructions provided in the program code.
  • the processor may include non- transitory memory that stores methods, codes, instructions and programs as described herein and elsewhere.
  • the processor may access a non-transitory storage medium through an interface that may store methods, codes, and instructions as described herein and elsewhere.
  • the storage medium associated with the processor for storing methods, programs, codes, program instructions or other type of instructions capable of being executed by the computing or processing device may include but may not be limited to one or more of a CD-ROM, DVD, memory, hard disk, flash drive, RAM, ROM, cache and the like.
  • a processor may include one or more cores that may enhance speed and performance of a multiprocessor.
  • the process may be a dual core processor, quad core processors, other chip-level multiprocessor and the like that combine two or more independent cores (called a die).
  • the methods and systems described herein may be deployed in part or in whole through a machine that executes computer software on a server, client, firewall, gateway, hub, router, or other such computer and/or networking hardware.
  • the software program may be associated with a server that may include a file server, print server, domain server, internet server, intranet server, cloud server, and other variants such as secondary server, host server, distributed server and the like.
  • the server may include one or more of memories, processors, computer readable media, storage media, ports (physical and virtual), communication devices, and interfaces capable of accessing other servers, clients, machines, and devices through a wired or a wireless medium, and the like.
  • the methods, programs, or codes as described herein and elsewhere may be executed by the server.
  • other devices required for execution of methods as described in this application may be considered as a part of the infrastructure associated with the server.
  • the server may provide an interface to other devices including, without limitation, clients, other servers, printers, database servers, print servers, file servers, communication servers, distributed servers, social networks, and the like. Additionally, this coupling and/or connection may facilitate remote execution of program across the network. The networking of some or all of these devices may facilitate parallel processing of a program or method at one or more location without deviating from the scope of the disclosure.
  • any of the devices attached to the server through an interface may include at least one storage medium capable of storing methods, programs, code and/or instructions.
  • a central repository may provide program instructions to be executed on different devices.
  • the remote repository may act as a storage medium for program code, instructions, and programs.
  • the software program may be associated with a client that may include a file client, print client, domain client, internet client, intranet client and other variants such as secondary client, host client, distributed client and the like.
  • the client may include one or more of memories, processors, computer readable media, storage media, ports (physical and virtual), communication devices, and interfaces capable of accessing other clients, servers, machines, and devices through a wired or a wireless medium, and the like.
  • the methods, programs, or codes as described herein and elsewhere may be executed by the client.
  • other devices required for execution of methods as described in this application may be considered as a part of the infrastructure associated with the client.
  • the client may provide an interface to other devices including, without limitation, servers, other clients, printers, database servers, print servers, file servers, communication servers, distributed servers and the like. Additionally, this coupling and/or connection may facilitate remote execution of program across the network. The networking of some or all of these devices may facilitate parallel processing of a program or method at one or more location without deviating from the scope of the disclosure.
  • any of the devices attached to the client through an interface may include at least one storage medium capable of storing methods, programs, applications, code and/or instructions.
  • a central repository may provide program instructions to be executed on different devices.
  • the remote repository may act as a storage medium for program code, instructions, and programs.
  • the methods and systems described herein may be deployed in part or in whole through network infrastructures.
  • the network infrastructure may include elements such as computing devices, servers, routers, hubs, firewalls, clients, personal computers, communication devices, routing devices and other active and passive devices, modules and/or components as known in the art.
  • the computing and/or non-computing device(s) associated with the network infrastructure may include, apart from other components, a storage medium such as flash memory, buffer, stack, RAM, ROM and the like.
  • the processes, methods, program codes, instructions described herein and elsewhere may be executed by one or more of the network infrastructural elements.
  • SaaS software as a service
  • PaaS platform as a service
  • IaaS infrastructure as a service
  • the methods, program codes, and instructions described herein and elsewhere may be implemented on a cellular network having sender-controlled contact media content item multiple cells.
  • the cellular network may either be frequency division multiple access (FDMA) network or code division multiple access (CDMA) network.
  • FDMA frequency division multiple access
  • CDMA code division multiple access
  • the cellular network may include mobile devices, cell sites, base stations, repeaters, antennas, towers, and the like.
  • the cell network may be a GSM, GPRS, 3G, EVDO, mesh, or other networks types.
  • the methods, program codes, and instructions described herein and elsewhere may be implemented on or through mobile devices.
  • the mobile devices may include navigation devices, cell phones, mobile phones, mobile personal digital assistants, laptops, palmtops, netbooks, pagers, electronic books readers, music players and the like. These devices may include, apart from other components, a storage medium such as a flash memory, buffer, RAM, ROM and one or more computing devices.
  • the computing devices associated with mobile devices may be enabled to execute program codes, methods, and instructions stored thereon. Alternatively, the mobile devices may be configured to execute instructions in collaboration with other devices.
  • the mobile devices may communicate with base stations interfaced with servers and configured to execute program codes.
  • the mobile devices may communicate on a peer-to-peer network, mesh network, or other communications network.
  • the program code may be stored on the storage medium associated with the server and executed by a computing device embedded within the server.
  • the base station may include a computing device and a storage medium.
  • the storage device may store program codes and instructions executed by the computing devices associated
  • the computer software, program codes, and/or instructions may be stored and/or accessed on machine readable media that may include: computer components, devices, and recording media that retain digital data used for computing for some interval of time; semiconductor storage known as random access memory (RAM); mass storage typically for more permanent storage, such as optical discs, forms of magnetic storage like hard disks, tapes, drums, cards and other types; processor registers, cache memory, volatile memory, non-volatile memory; optical storage such as CD, DVD; removable media such as flash memory (e.g.
  • RAM random access memory
  • mass storage typically for more permanent storage, such as optical discs, forms of magnetic storage like hard disks, tapes, drums, cards and other types
  • processor registers cache memory, volatile memory, non-volatile memory
  • optical storage such as CD, DVD
  • removable media such as flash memory (e.g.
  • USB sticks or keys floppy disks, magnetic tape, paper tape, punch cards, standalone RAM disks, Zip drives, removable mass storage, off-line, and the like; other computer memory such as dynamic memory, static memory, read/write storage, mutable storage, read only, random access, sequential access, location addressable, file addressable, content addressable, network attached storage, storage area network, bar codes, magnetic ink, and the like.
  • the methods and systems described herein may transform physical and/or or intangible items from one state to another.
  • the methods and systems described herein may also transform data representing physical and/or intangible items from one state to another.
  • machines may include, but may not be limited to, personal digital assistants, laptops, personal computers, mobile phones, other handheld computing devices, medical equipment, wired or wireless communication devices, transducers, chips, calculators, satellites, tablet PCs, electronic books, gadgets, electronic devices, devices haa sender-controlled contact media content item artificial intelligence, computing devices, networking equipment, servers, routers and the like.
  • the elements depicted in the flow chart and block diagrams or any other logical component may be implemented on a machine capable of executing program instructions.
  • the methods and/or processes described above, and steps associated therewith, may be realized in hardware, software or any combination of hardware and software suitable for a particular application.
  • the hardware may include a general- purpose computer and/or dedicated computing device or specific computing device or particular aspect or component of a specific computing device.
  • the processes may be realized in one or more microprocessors, microcontrollers, embedded microcontrollers, programmable digital signal processors or other programmable device, along with internal and/or external memory.
  • the processes may also, or instead, be embodied in an application specific integrated circuit, a programmable gate array, programmable array logic, or any other device or combination of devices that may be configured to process electronic signals. It will further be appreciated that one or more of the processes may be realized as a computer executable code capable of being executed on a machine -readable medium.
  • the computer executable code may be created using a structured programming language such as C, an object oriented programming language such as C++, or any other high- level or low-level programming language (including assembly languages, hardware description languages, and database programming languages and technologies) that may be stored, compiled or interpreted to run on one of the above devices, as well as heterogeneous combinations of processors, processor architectures, or combinations of different hardware and software, or any other machine capable of executing program instructions.
  • a structured programming language such as C
  • an object oriented programming language such as C++
  • any other high- level or low-level programming language including assembly languages, hardware description languages, and database programming languages and technologies
  • methods described above and combinations thereof may be embodied in computer executable code that, when executing on one or more computing devices, performs the steps thereof.
  • the methods may be embodied in systems that perform the steps thereof, and may be distributed across devices in a number of ways, or all of the functionality may be integrated into a dedicated, standalone device or other hardware.
  • the means for performing the steps associated with the processes described above may include any of the hardware and/or software described above. All such permutations and combinations are intended to fall within the scope of the present disclosure.

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Remote Sensing (AREA)
  • General Physics & Mathematics (AREA)
  • Electromagnetism (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Theoretical Computer Science (AREA)
  • Multimedia (AREA)
  • Automation & Control Theory (AREA)
  • Traffic Control Systems (AREA)

Abstract

A method of pose calculation for a portable three-dimensional scanning device including a first sensor and a second sensor the method including utilizing data from the first sensor and data from the second sensor to acquire data defining six degrees of freedom of the scanning device to optimize a first pose calculation, receiving data comprising one of data from the first sensor and data from the second sensor, selecting a subset of the six degrees of freedom of the scanning device, utilizing the IMU data and the received data for the selected subset of six degrees of freedom to optimize a second pose, wherein the unselected degrees of freedom are retained from the first pose and storing received data associated with the second camera pose in a point cloud database.

Description

SYSTEMS AND METHODS FOR IMPROVEMENTS IN SCANNING AND
MAPPING
STATEMENT OF PRIORITY
[0001] This application claims priority to, and is a continuation-in-part of, PCT Application No. PCT/US2018/015403 (Atty. Dckt. No. KRTA-0010-WO) entitled "LASER SCANNER WITH REAL-TIME, ONLINE EGO-MOTION ESTIMATION," filed on January 26, 2018.
[0002] This application also claims priority to PCT Application No. PCT/US2017/055938 (Atty. Dckt. No. KRTA-0008-WO) entitled "LASER SCANNER WITH REAL-TIME, ONLINE EGO-MOTION ESTIMATION," filed on October 10, 2017.
[0003] PCT Application No. PCT/US2018/015403 (Atty. Dckt. No. KRTA-0010-WO) claims priority to, and is a continuation-in-part of, PCT Application No.
PCT/US2017/055938 (Atty. Dckt. No. KRTA-0008-WO) entitled "LASER SCANNER WITH REAL-TIME, ONLINE EGO-MOTION ESTIMATION," filed on October 10, 2017.
[0004] PCT Application No. PCT/US2017/055938 (Atty. Dckt. No. KRTA-0008-WO) claims priority to, and is a continuation-in-part of, PCT Application No.
PCT/US2017/021120 (Atty. Dckt. No. KRTA-0005-WO) entitled "LASER SCANNER WITH REAL-TIME, ONLINE EGO-MOTION ESTIMATION," filed on March 7, 2017.
[0005] PCT Application No. PCT/US2018/015403 (Atty. Dckt. No. KRTA-0010-WO) claims priority to PCT Application No. PCT/US2017/021120 (Atty. Dckt. No. KRTA-0005- WO). PCT Application No. PCT/US2017/055938 (Atty. Dckt. No. KRTA-0008-WO) further claims priority to U.S. Provisional No. 62/406,910 (Atty. Dckt. No. KRTA-0002- P02), entitled "LASER SCANNER WITH REAL-TIME, ONLINE EGO-MOTION
ESTIMATION," filed on October 11, 2016.
[0006] PCT Application No. PCT/US2017/021120 (Atty. Dckt. No. KRTA-0005-WO) claims the benefit of U.S. Provisional Patent Application Serial No. 62/307,061 (Atty. Dckt. No. KRTA-0001-P01), entitled "LASER SCANNER WITH REAL-TIME, ONLINE EGO- MOTION ESTIMATION," filed on March 11, 2016.
[0007] PCT Application No. PCT/US2018/015403 (Atty. Dckt. No. KRTA-0010-WO) further claims priority to U.S. Provisional No. 62/451,294 (Atty. Dckt. No. KRTA-0004- P01), entitled "LIDAR AND VISION-BASED EGO-MOTION ESTIMATION AND MAPPING," filed January 27, 2017.
[0008] This application claims the benefit of U.S. Provisional Patent Application Serial No. 62/527,341 (Atty. Dckt. No. KRTA-0006-P01), entitled "SYSTEMS AND METHODS FOR IMPROVEMENTS IN SCANNING AND MAPPING," filed on June 30, 2017, the disclosure of which is incorporated herein by reference in its entirety and for all purposes.
[0009] The disclosures of all patents and applications referred to herein including
PCT/US2018/015403, PCT/US2017/055938, PCT/US2017/021120 and U.S. Provisional Nos. 62/406,910, 62/307,061, 62/527,341 and 62/451,294 are incorporated herein by reference in their entireties and for all purposes.
BACKGROUND
[0010] For many applications including architecture, engineering, and construction, there is a need to build accurate maps of as-built environments. Additional applications include the use of such maps by first responders, municipalities, developers, security personnel and more. The creation of such maps typically requires manual measurements, precision-surveying instruments, and imaging devices or, more recently, laser radar (lidar) to build detailed plans or a map of the environment. Lidar tools are typically stationary when providing measurements but new generations of backpack systems and wheeled carts with integral sensors, sometimes termed 'trolleys,' are also used.
[0011] New forms of mobile mapping use passive or active sensing means to quickly capture a 3D map of the environment or operate in real-time. These systems may use one or more of the following sensors: laser radar (lidar), camera, inertial measurement unit, and other sensors. Such sensors, combined with sufficient computing resources and the application of novel algorithms, may be used to build a real-time 3D map of a local environment. As the sensor moves through the environment, it gathers image, lidar, and motion data to populate a 3D map of the environment. The map accretes additional data and continues to build a map of the environment.
[0012] However, occasionally even when using this combination of sensing, computing, and processing, mapping is difficult or challenging. This is often a function of the geometry of the environment. Examples include narrow stairwells, featureless environments (either geometric or visual), or narrow transitions between two larger areas such as a doorway. In such instances the model may be distorted or warped as a result of an inability to correctly track features in the environment. This can result in the map having non- level floors or adjacent rooms that appear to be at angles to each other when in fact, they are not. [0013] What is therefore needed is a system and a method for operating the system to scan areas that pose unique challenges for mapping solutions that use traditional simultaneously localization and mapping (SLAM) techniques.
SUMMARY
[0012] In accordance with an exemplary and non-limiting embodiment, a method of pose calculation for a portable three-dimensional scanning device comprising a first sensor and a second sensor the method comprising utilizing data from the first sensor and data from the second sensor to acquire data defining six degrees of freedom of the scanning device to optimize a first pose calculation, receiving data comprising one of data from the first sensor and data from the second sensor, selecting a subset of the six degrees of freedom of the scanning device, utilizing the data from the first sensor and the received data for the selected subset of six degrees of freedom to optimize a second pose, wherein the unselected degrees of freedom are retained from the first pose and storing received data associated with the second camera pose in a point cloud database.
[0013] In another exemplary embodiment, a method comprises utilizing inertial measurement unit (IMU) data and one of tracking camera data and laser data for six degrees of freedom of the scanning device to optimize a first pose calculation, receiving data comprising one of a scan from the laser and an image from the tracking camera, selecting a subset of the six degrees of freedom of the scanning device and utilizing the IMU data and the received data for the selected subset of six degrees of freedom to optimize a second pose, wherein the unselected degrees of freedom are retained from the first pose.
[0014] In another exemplary embodiment, method comprises computing a degraded direction in state space of a scanning device in a default mode, determining if at least one of a roll or a pitch of the scanning device is in the degraded direction, determining if a yaw of the scanning device is in the degraded direction, activating a roll and pitch lock mode if it is determined that at least one of a roll or a pitch of the scanning device is in the degraded direction and activating a yaw lock mode if it is determined that the yaw of the scanning device is in the degraded direction.
BRIEF DESCRIPTION OF THE FIGURES [0015] FIG. 1 illustrates an image of a map of a circular staircase created using a LIDAR scanner and an inertial measurement unit (IMU) known in the art.
[0016] FIG. 2 is an illustration of a 3D model of a segment of a building created in accordance with exemplary and non-limiting embodiments described herein.
[0017] FIG. 3 is an illustration of an exemplary and non-limiting embodiment of a map created utilizing pose decoupling.
[0018] FIG. 4 is a flowchart of an exemplary an non-limiting embodiment of the flow of information and decision points related to decision points for roll and pitch decoupling and yaw decoupling.
[0019] FIGS. 5(a)-5(c) illustrate an exemplary portable handheld real-time mapping system and accompanying pose decoupling indicators.
[0020] FIG. 6 is an illustration of an exemplary and non-limiting embodiment of a stabilizing platform.
DETAILED DESCRIPTION
[0021] With reference to Fig. 1, there is illustrated an image of a map of a circular staircase 1001 created using a lidar scanner and an inertial measurement unit (IMU). As illustrated, the map of the staircase 1001 that, in reality, extends straight upwards, displays a pronounced curvature arising from the introduction of scanning error. Even good algorithms and sensor combinations can fail in such an environment. The consistent curvature of the overall scan indicates a systemic issue. Position or orientation is not completely lost but becomes inaccurate. The result is a distortion that does not accurately reflect reality.
[0022] With reference to Fig. 2, there is illustrated an image of a 3D model of a 10-story segment of a 24- story building created in accordance with exemplary and non-limiting embodiments of the method described herein. As illustrated, staircase segment 2001 is a direct output map with no post-processing other than visual rendering. Note the lack of discernible curvature.
[0023] In accordance with exemplary and non-limiting embodiments described more fully below, a series of adjustments may be applied to the mapping process to mitigate or eliminate issues where confidence measures such as covariance matrix results, are low. The covariance matrix is a measure of how strongly correlated different parts of the pose solution are. The covariance matrix may be used to identify directions in the state estimate that are of higher and lower confidence. In an exemplary embodiment, the covariance matrix is a 6x6 matrix representing the 6 degrees of freedom: x, y, z, roll, pitch, and yaw. This matrix may be decomposed by determining the directions or vectors with the largest variance, specifically, the eignvectors). The magnitude of these eigenvectors (or eigenvalues) indicates the level of variance and the associated certainty along that direction.
[0024] For example, laser point matching in an infinite length hallway with flat walls should generate an eigenvector with low certainty oriented down the length of the hallway, indicating that the placement of the new data in that direction is uncertain. In the instance where confidence measurements are low, modes may be applied manually by recognizing the type of environment or previous patterns. Mode application may also be performed automatically by noting the degradation of the resultant map information and making parameter changes on the fly based on measurements such as the covariance matrices associated with each optimization step. The same approach may be used for hand-carried systems, vehicle-based systems, aerial, subterranean, even underwater mapping systems all of which are subject to the same issues.
[0025] Pose, such as the pose of a three-dimensional scanning device (e.g., a
Simultaneous Localization And Mapping device, hereinafter a "SLAM" device) is defined by both position in space and orientation and is defined by 6 degrees of freedom using spatial coordinates and orientation (x, y, z and roll, pitch, and yaw). If a SLAM system provides good quality information about these attributes, then it likely provides good pose. If any of these drift in value or are calculated incorrectly then the pose value is in error and subsequent map information that depends on pose data will also be in error.
[0026] The mapping system continuously calculates pose while building a map and vice versa. When mapping areas in which there are narrow corridors, there are significant advantages in being able to vary pose calculation options.
[0027] With reference to Fig. 3, there is illustrated a 3D model of a typical floor plan arrangement of rooms as in an office or other application. The solid line rendered model 3001 is formed of geometric elements that are well aligned. Superimposed over the model 3001 is dashed- line rendered model 3003. Model 3003 is visibly twisted with respect to other parts of the model. As described more fully below, dashed-line rendered model 3003 was created without pose decoupling while dashed- line rendered model 3003 was created using pose decoupling.
[0028] In particular, varying the method of computation of pose for aspects such as roll and pitch and/or the yaw may substantially improve results when going through challenging environments such as, for example, transitions comprising doorways, narrow spaces, hallways and stairwells. In such instances, varying the method of computation of pose may result in improved mapping accuracy exhibiting a low net twist of the scanned data. The method described here, achieves this improved accuracy, in part, by relying more heavily a scanning mode that utilizes sensor data that is less impacted by these environments. In such a scanning mode, the generated model, or point cloud, has significantly fewer local errors, such as rooms twisted relative to each other. One trade-off that may arise is the presence of increased blur from sensor noise and a larger global drift. However, when used for short durations in challenging parts of an environment, the overall error and resulting twist of the scanned image may be dramatically improved.
[0029] In these alternate scanning modes, image twist in terms of roll and pitch may be unstable, but the introduced error varies around a central median, rather than aggressively twisting due to a poor scan-to-scan point matching. Poor scan-to-scan point matching may result from pulling the data dramatically for successive scans that capture data from surfaces that are widely separated. As a result, such error may be improved by breaking down the motion estimate of position (e.g., pose) to be optimized for fewer degrees of freedom and then using scan matching refinement to get the "true" pose in some fashion before adding the points to the point cloud.
[0030] In certain environments certain aspects of pose can be better estimated with different methods. For example, if a combination of laser and camera data do not provide enough data to maintain constant pitch and roll, then reverting to an inertial sensor estimate that is generally noisier, but is corrected by gravity, can dramatically reduce drift. This is particularly the case traveling down a long hallway or through a transition, such as a doorway where there is little overlap with prior data for the laser data to use.
[0031] In accordance with exemplary and non-limiting embodiments, this reduction in utilized degrees of freedom in optimization steps may be used in various ways. For example, consider an instance where map-building or scanning starts at the top of a stairwell. First, a base map may be built using a SLAM device while standing still, holding a mapping device in a level pose with the rotation axis of the LIDAR generally perpendicular to the direction of descent. Once a sufficient baseline is built, the operator of the SLAM device may switch scan matching modes to a twist-reducing scan mode to change the computation of pose that decouples at least one of roll, pitch, and yaw, then moves down (or perhaps up) stairs with the mapping device held perpendicular to descent and generally pointing to the center of the stairwell throughout movement. [0032] Since drift is largely time based, ascent or descent may occur relatively rapidly as long as motion is smooth. During descent each successive scan uses the twist-reducing pose optimization technique to process the scanned/imaged data to be stored in a point cloud. Once the user exits the stairwell the device may be changed back to its traditional mapping and pose estimation mode, such as for example, turning off the twist-reducing scan mode.
[0033] In accordance with an alternative method, twist reduction that also reduces local errors may include activating a twist reduction mode during motion in a stairwell or the like to fall back on the IMU and/or camera estimates that have fewer unpredictable twists as new sections are revealed than the LIDAR matching. Then, the operator may stop, for example, halfway to a third of the way down each flight when a next flight or turn in the flight comes into view and the laser view is more stable. At that point the user would turn full scan matching back on (i.e., turn off the twist reduction mode) to help refine position and remove blur and drift built up when the twist reduction mode was on. Implementations may alternately only retain the data collected in the sections with full scan matching on to reduce the noisy measurements during the decoupled portions of the scan. Alternatively, the data collected may be tagged based on collection state and filtered in post processing.
[0034] This approach may proceed with brief stops to add data and refine position and add data to the map at each landing and at the halfway point of each flight. This is possible due to the twist reduction mode keeping the global drift very low while on, but also not introducing a significant local error that often occurs in the frequent environmental
"transitions" within a stairwell. Also, optimization confidence metrics during scan matching can be used to automate much of this process by detecting when it is okay to switch back to full scan matching mode. This may be done by examining the eigenvectors and eigenvalues of the covariance matrix to determine degrees of freedom that are of low confidence.
Alternately the system in a "stairwell" or "hallway" mode could sense when the user comes to a stop and when they resume motion as a guide for when to transition modes.
[0035] Additionally, tracking key poses during the passage along the stairwell and resuming scanning at each floor can enable the data captured in the stairwell to be used as the vertical reference frame for the entire building. It may be used as an anchor for subsequent scans at each floor. Doing this in multiple stairwells in a building has the potential to create an even larger benefit.
[0036] Typically, a high-quality stationary LIDAR is capable of collecting very good scans of stairwells that are accurate, clear, and straight. However, it requires approximately four positions per floor and approximately ten minutes per position to produce such a high quality scan. In contrast, when the described pose-decoupling is employed, twenty-four floors may be scanned in approximately thirty minutes or less. The high-quality stationary LIDAR scan described above would require nearly seven hours to scan a mere ten floors. The LIDAR dictates the quality of the scan. Thus, while the high-end stationary LIDAR may be of better quality, the described pose-coupling scanning method and means is an order of magnitude faster. As LIDAR technology and algorithms continue to improve, the differences in accuracy and precision between the two methods will matter less and less.
Details
[0037] State estimation using perception sensor data extracts useful information in the sensor data to formulate a mathematical problem. The extracted information can be texture information, if using vision sensors such as a camera, or structural information, if using range sensors such as a LIDAR. Regardless of the sensors being used, the formulated problem has to be well conditioned, meaning that the sensor data contains sufficient information to constrain the solution in all directions in the state space. When insufficient information is provided in the sensor data, the problem is degraded - certain directions in the state space are unconstrained, and resulting solution is invalid in the degraded directions.
[0038] One way to solve a degraded problem is to decouple the degraded directions from the well- structured directions in the state space. The proposed roll/pitch twist reduction and yaw twist reduction do so by limiting the state estimation (in this instance device pose is the resulting feature being generated) to a lower dimensional state space. With roll/pitch twist reduction, the 2 degree of freedom (DOF) rotational motion is estimated solely by the onboard IMU, as opposed to a the full state estimation algorithm. In this roll/pitch twist reduction mode, the state estimation problem may be refined by computer vision and scan matching in the remaining 4 DOFs (x, y, z, and yaw) instead of 6 DOF, while holding the roll and pitch DOF unchanged. Likewise, with yaw twist reduction, the one DOF rotational motion is estimated by the onboard IMU as opposed to by the full state estimation algorithm. With both roll/pitch decoupling and yaw twist reduction, the state estimation is refined by computer vision and scan matching in 3 DOF (x, y, and z) only, the three rotational DOFs remain unchanged from a previous calculation. The approach is particularly helpful when insufficient texture information is contained in the image data, or insufficient structural information is contained in the range data, such that the state estimation cannot be carried out in full 6 DOF. A result, for example is that new camera and/or scan data that would otherwise cause the scan matching function to generate a twist or distortion in the scanned image, does not have as significant an impact on the scanned image. [0039] In some exemplary embodiments, one may automatically turn on/off roll/pitch decoupling and yaw decoupling during the mapping process in response to degradation of certain pose DOF measures. To this end, one may utilize eigenvalues and eigenvectors associated with the state estimation problem to determine degraded directions in the state space. Specifically, when roll or pitch are in the degraded directions, roll/pitch decoupling is turned on, and when yaw is in the degraded directions, yaw decoupling is turned on. The potential feature will ease the mapping process and help produce results in a better quality especially for new users.
[0040] As discussed above, there are two ways to handle a degraded state estimation problem wherein a scanning device, such as a SLAM device, experiences degradation in one or more directions each correlated to a degree of freedom. One way comprises adding more sensor data to provide constraints in the degraded directions in the state space. This requires additional sensors. In contrast, as described above, another way comprises decoupling the degraded directions from well-conditioned directions. This involves roll/pitch decoupling and yaw decoupling.
[0041] With reference to Fig. 4, there is illustrated an exemplary and non-limiting embodiment of the flow of information and decision points related to decision points for roll and pitch decoupling and yaw decoupling. The illustrated method may be used for both manual and automated versions of this technique.
[0042] First, at step 4001, the estimated confidence of degraded directions in state space are computed. In the case of manual performance, the estimated confidences are displayed to a user, such as via a user interface of a SLAM device. These values may be normalized to provide a specific scale of good and poor values such as 1 to 100 or 0 to 50,000. Thresholds may be set such that reverting to earlier estimates occurs when the new estimates are less likely to be accurate than the prior estimates (e.g., your camera uncertainty is less than the expected average IMU error). This should be tuned to specific sensors. Next, at step 4002, a decision is made as to whether a degraded direction corresponds to either roll or pitch. If either roll or pitch is found to be in a degraded direction, processing proceeds to step 4003 whereat roll and pitch lock is turned on. If neither roll nor pitch is found to be in a degraded direction, processing proceeds to step 4004 where roll and pitch lock are turned off. The default setting of using all sensor information is on until a degraded condition is determined. Processing then proceeds to step 4005 whereat a decision is made as to whether a degraded direction corresponds to yaw. If yaw is found to be in a degraded direction, processing proceeds to step 4006 whereat yaw lock is turned on. If yaw is not found to be in a degraded direction, processing proceeds to step 4007 whereat roll and pitch lock is turned off.
[0043] With reference to Fig. 5, there is illustrated an exemplary portable handheld realtime mapping system 5001. Icons 5002 indicate and provide for selective control of pose decoupling features for scanning challenging environments. Operator selection may be based on visual map information, confidence measures, and knowledge of mapped environments.
[0044] The interactive screen 5003 may be used to provide selection controls for pose decoupling and for showing the real time map 5004. Additional confidence measures, either graphical or numerical, may be used to indicate the quality of the map being built at that time. Typically, if the confidence measure is low, the mapping process can be slowed down, or mapping can be rewound and repeated for that section. In addition, pose-decoupling can be used to gather a better quality map at that point.
[0045] With reference to Figs. 5(b) and 5(c), there are illustrated exemplary versions of icons 5005, 5006 for selectively turning on and off pose-decoupling functions for Yaw (icon 5005) and Roll & Pitch (icon 5006).
[0046] As noted, icon 5005 represents a Yaw-decoupling function and enables such function upon activation or selection. Upon selection of icon 5005 decoupling of the yaw function is realized. Similarly, when icon 5006 is selected, the roll and pitch axes are effectively decoupled. When selected, a portion of each icon may disappear or any one of several graphical means may be employed to indicate selection of the icon 5005, 5006. In the instance that each icon 5005, 5006 appears on a button, the icon may be lit or not lit. A physical button or switch may be toggled and an LED may provide an indication of a decoupling status in one or more devices where specific modes are selected and deselected. The function may also be implemented in an interactive screen through the use of gestures, stylus, track pad, trackball, joystick, and interactive displays including, but not limited to, capacitive touch, resistive touch, and so forth.
[0047] When the system is physically out of reach of an operator or if automatic control is desired, a stabilizing platform can be used to provide a stable pose-decoupling capability. With reference to Fig. 6, there is illustrated an exemplary and non- limiting embodiment of stabilizing platform 6001. The mapping system may be mounted directly to a stabilizing platform that provides fixed orientation or control of the mapping system. The use of a stabilizing platform for a mapping and localization system may provide external control of pose to ensure good quality pose capture. The stabilizing platform may be used to control the orientation of the unit and not just stabilize the unit. This form of active control may be interfaced to the analysis of the mapped environment geometry. That is, the pose estimation of the system may be used to adjust the stabilizing platform to maintain the same roll, pitch, and/or yaw during motion. While only a few embodiments of the present disclosure have been shown and described, it will be obvious to those skilled in the art that many changes and modifications may be made thereunto without departing from the spirit and scope of the present disclosure as described in the following claims. All patent applications and patents, both foreign and domestic, and all other publications referenced herein are incorporated herein in their entireties to the full extent permitted by law.
[0048] The methods and systems described herein may be deployed in part or in whole through a machine that executes computer software, program codes, and/or instructions on a processor. The present disclosure may be implemented as a method on the machine, as a system or apparatus as part of or in relation to the machine, or as a computer program product embodied in a computer readable medium executing on one or more of the machines. In embodiments, the processor may be part of a server, cloud server, client, network infrastructure, mobile computing platform, stationary computing platform, or other computing platform. A processor may be any kind of computational or processing device capable of executing program instructions, codes, binary instructions and the like. The processor may be or may include a signal processor, digital processor, embedded processor, microprocessor or any variant such as a co-processor (math co-processor, graphic co-processor, communication co-processor and the like) and the like that may directly or indirectly facilitate execution of program code or program instructions stored thereon. In addition, the processor may enable execution of multiple programs, threads, and codes. The threads may be executed simultaneously to enhance the performance of the processor and to facilitate simultaneous operations of the application. By way of implementation, methods, program codes, program instructions and the like described herein may be implemented in one or more thread. The thread may spawn other threads that may have assigned priorities associated with them; the processor may execute these threads based on priority or any other order based on instructions provided in the program code. The processor, or any machine utilizing one, may include non- transitory memory that stores methods, codes, instructions and programs as described herein and elsewhere. The processor may access a non-transitory storage medium through an interface that may store methods, codes, and instructions as described herein and elsewhere. The storage medium associated with the processor for storing methods, programs, codes, program instructions or other type of instructions capable of being executed by the computing or processing device may include but may not be limited to one or more of a CD-ROM, DVD, memory, hard disk, flash drive, RAM, ROM, cache and the like.
[0049] A processor may include one or more cores that may enhance speed and performance of a multiprocessor. In embodiments, the process may be a dual core processor, quad core processors, other chip-level multiprocessor and the like that combine two or more independent cores (called a die).
[0050] The methods and systems described herein may be deployed in part or in whole through a machine that executes computer software on a server, client, firewall, gateway, hub, router, or other such computer and/or networking hardware. The software program may be associated with a server that may include a file server, print server, domain server, internet server, intranet server, cloud server, and other variants such as secondary server, host server, distributed server and the like. The server may include one or more of memories, processors, computer readable media, storage media, ports (physical and virtual), communication devices, and interfaces capable of accessing other servers, clients, machines, and devices through a wired or a wireless medium, and the like. The methods, programs, or codes as described herein and elsewhere may be executed by the server. In addition, other devices required for execution of methods as described in this application may be considered as a part of the infrastructure associated with the server.
[0051] The server may provide an interface to other devices including, without limitation, clients, other servers, printers, database servers, print servers, file servers, communication servers, distributed servers, social networks, and the like. Additionally, this coupling and/or connection may facilitate remote execution of program across the network. The networking of some or all of these devices may facilitate parallel processing of a program or method at one or more location without deviating from the scope of the disclosure. In addition, any of the devices attached to the server through an interface may include at least one storage medium capable of storing methods, programs, code and/or instructions. A central repository may provide program instructions to be executed on different devices. In this implementation, the remote repository may act as a storage medium for program code, instructions, and programs.
[0052] The software program may be associated with a client that may include a file client, print client, domain client, internet client, intranet client and other variants such as secondary client, host client, distributed client and the like. The client may include one or more of memories, processors, computer readable media, storage media, ports (physical and virtual), communication devices, and interfaces capable of accessing other clients, servers, machines, and devices through a wired or a wireless medium, and the like. The methods, programs, or codes as described herein and elsewhere may be executed by the client. In addition, other devices required for execution of methods as described in this application may be considered as a part of the infrastructure associated with the client.
[0053] The client may provide an interface to other devices including, without limitation, servers, other clients, printers, database servers, print servers, file servers, communication servers, distributed servers and the like. Additionally, this coupling and/or connection may facilitate remote execution of program across the network. The networking of some or all of these devices may facilitate parallel processing of a program or method at one or more location without deviating from the scope of the disclosure. In addition, any of the devices attached to the client through an interface may include at least one storage medium capable of storing methods, programs, applications, code and/or instructions. A central repository may provide program instructions to be executed on different devices. In this implementation, the remote repository may act as a storage medium for program code, instructions, and programs.
[0054] The methods and systems described herein may be deployed in part or in whole through network infrastructures. The network infrastructure may include elements such as computing devices, servers, routers, hubs, firewalls, clients, personal computers, communication devices, routing devices and other active and passive devices, modules and/or components as known in the art. The computing and/or non-computing device(s) associated with the network infrastructure may include, apart from other components, a storage medium such as flash memory, buffer, stack, RAM, ROM and the like. The processes, methods, program codes, instructions described herein and elsewhere may be executed by one or more of the network infrastructural elements. The methods and systems described herein may be adapted for use with any kind of private, community, or hybrid cloud computing network or cloud computing environment, including those which involve features of software as a service (SaaS), platform as a service (PaaS), and/or infrastructure as a service (IaaS).
[0055] The methods, program codes, and instructions described herein and elsewhere may be implemented on a cellular network having sender-controlled contact media content item multiple cells. The cellular network may either be frequency division multiple access (FDMA) network or code division multiple access (CDMA) network. The cellular network may include mobile devices, cell sites, base stations, repeaters, antennas, towers, and the like. The cell network may be a GSM, GPRS, 3G, EVDO, mesh, or other networks types.
[0056] The methods, program codes, and instructions described herein and elsewhere may be implemented on or through mobile devices. The mobile devices may include navigation devices, cell phones, mobile phones, mobile personal digital assistants, laptops, palmtops, netbooks, pagers, electronic books readers, music players and the like. These devices may include, apart from other components, a storage medium such as a flash memory, buffer, RAM, ROM and one or more computing devices. The computing devices associated with mobile devices may be enabled to execute program codes, methods, and instructions stored thereon. Alternatively, the mobile devices may be configured to execute instructions in collaboration with other devices. The mobile devices may communicate with base stations interfaced with servers and configured to execute program codes. The mobile devices may communicate on a peer-to-peer network, mesh network, or other communications network. The program code may be stored on the storage medium associated with the server and executed by a computing device embedded within the server. The base station may include a computing device and a storage medium. The storage device may store program codes and instructions executed by the computing devices associated with the base station.
[0057] The computer software, program codes, and/or instructions may be stored and/or accessed on machine readable media that may include: computer components, devices, and recording media that retain digital data used for computing for some interval of time; semiconductor storage known as random access memory (RAM); mass storage typically for more permanent storage, such as optical discs, forms of magnetic storage like hard disks, tapes, drums, cards and other types; processor registers, cache memory, volatile memory, non-volatile memory; optical storage such as CD, DVD; removable media such as flash memory (e.g. USB sticks or keys), floppy disks, magnetic tape, paper tape, punch cards, standalone RAM disks, Zip drives, removable mass storage, off-line, and the like; other computer memory such as dynamic memory, static memory, read/write storage, mutable storage, read only, random access, sequential access, location addressable, file addressable, content addressable, network attached storage, storage area network, bar codes, magnetic ink, and the like.
[0058] The methods and systems described herein may transform physical and/or or intangible items from one state to another. The methods and systems described herein may also transform data representing physical and/or intangible items from one state to another.
[0059] The elements described and depicted herein, including in flow charts and block diagrams throughout the figures, imply logical boundaries between the elements. However, according to software or hardware engineering practices, the depicted elements and the functions thereof may be implemented on machines through computer executable media haa sender-controlled contact media content item a processor capable of executing program instructions stored thereon as a monolithic software structure, as standalone software modules, or as modules that employ external routines, code, services, and so forth, or any combination of these, and all such implementations may be within the scope of the present disclosure. Examples of such machines may include, but may not be limited to, personal digital assistants, laptops, personal computers, mobile phones, other handheld computing devices, medical equipment, wired or wireless communication devices, transducers, chips, calculators, satellites, tablet PCs, electronic books, gadgets, electronic devices, devices haa sender-controlled contact media content item artificial intelligence, computing devices, networking equipment, servers, routers and the like. Furthermore, the elements depicted in the flow chart and block diagrams or any other logical component may be implemented on a machine capable of executing program instructions. Thus, while the foregoing drawings and descriptions set forth functional aspects of the disclosed systems, no particular arrangement of software for implementing these functional aspects should be inferred from these descriptions unless explicitly stated or otherwise clear from the context. Similarly, it will be appreciated that the various steps identified and described above may be varied, and that the order of steps may be adapted to particular applications of the techniques disclosed herein. All such variations and modifications are intended to fall within the scope of this disclosure. As such, the depiction and/or description of an order for various steps should not be understood to require a particular order of execution for those steps, unless required by a particular application, or explicitly stated or otherwise clear from the context.
[0060] The methods and/or processes described above, and steps associated therewith, may be realized in hardware, software or any combination of hardware and software suitable for a particular application. The hardware may include a general- purpose computer and/or dedicated computing device or specific computing device or particular aspect or component of a specific computing device. The processes may be realized in one or more microprocessors, microcontrollers, embedded microcontrollers, programmable digital signal processors or other programmable device, along with internal and/or external memory. The processes may also, or instead, be embodied in an application specific integrated circuit, a programmable gate array, programmable array logic, or any other device or combination of devices that may be configured to process electronic signals. It will further be appreciated that one or more of the processes may be realized as a computer executable code capable of being executed on a machine -readable medium.
[0061] The computer executable code may be created using a structured programming language such as C, an object oriented programming language such as C++, or any other high- level or low-level programming language (including assembly languages, hardware description languages, and database programming languages and technologies) that may be stored, compiled or interpreted to run on one of the above devices, as well as heterogeneous combinations of processors, processor architectures, or combinations of different hardware and software, or any other machine capable of executing program instructions.
[0062] Thus, in one aspect, methods described above and combinations thereof may be embodied in computer executable code that, when executing on one or more computing devices, performs the steps thereof. In another aspect, the methods may be embodied in systems that perform the steps thereof, and may be distributed across devices in a number of ways, or all of the functionality may be integrated into a dedicated, standalone device or other hardware. In another aspect, the means for performing the steps associated with the processes described above may include any of the hardware and/or software described above. All such permutations and combinations are intended to fall within the scope of the present disclosure.
[0063] While the disclosure has been disclosed in connection with the preferred embodiments shown and described in detail, various modifications and improvements thereon will become readily apparent to those skilled in the art. Accordingly, the spirit and scope of the present disclosure is not to be limited by the foregoing examples, but is to be understood in the broadest sense allowable by law.
[0064] The use of the terms "a" and "an" and "the" and similar referents in the context of describing the disclosure (especially in the context of the following claims) is to be construed to cover both the singular and the plural, unless otherwise indicated herein or clearly contradicted by context. The terms "comprising," "haa sender-controlled contact media content item," "including," and "containing" are to be construed as open-ended terms (i.e., meaning "including, but not limited to,") unless otherwise noted. Recitation of ranges of values herein are merely intended to serve as a shorthand method of referring individually to each separate value falling within the range, unless otherwise indicated herein, and each separate value is incorporated into the specification as if it were individually recited herein. All methods described herein can be performed in any suitable order unless otherwise indicated herein or otherwise clearly contradicted by context. The use of any and all examples, or exemplary language (e.g., "such as") provided herein, is intended merely to better illuminate the disclosure and does not pose a limitation on the scope of the disclosure unless otherwise claimed. No language in the specification should be construed as indicating any non-claimed element as essential to the practice of the disclosure.
[0065] While the foregoing written description enables one of ordinary skill to make and use what is considered presently to be the best mode thereof, those of ordinary skill will understand and appreciate the existence of variations, combinations, and equivalents of the specific embodiment, method, and examples herein. The disclosure should therefore not be limited by the above described embodiment, method, and examples, but by all embodiments and methods within the scope and spirit of the disclosure.
[0066] All documents referenced herein are hereby incorporated by reference.

Claims

CLAIMS What is claimed is:
1. A method of pose calculation for a portable three-dimensional scanning device comprising a first sensor and a second sensor the method comprising:
utilizing data from the first sensor and data from the second sensor to acquire data defining six degrees of freedom of the scanning device to optimize a first pose calculation;
receiving data comprising one of data from the first sensor and data from the second sensor;
selecting a subset of the six degrees of freedom of the scanning device;
utilizing the data from the first sensor and the received data for the selected subset of six degrees of freedom to optimize a second pose, wherein the unselected degrees of freedom are retained from the first pose; and
storing received data associated with the second camera pose in a point cloud
database.
2. The method of claim 1 wherein the portable three-dimensional scanning device comprises a simultaneously localization and mapping (SLAM) device.
3. The method of claim 1 wherein selecting the subset further comprises selecting the subset based, at least in part, upon a confidence measurement of at least one of the six degrees of freedom.
4. The method of claim 3 wherein the confidence measurement is derived, at least in part, by an eigenvector and an associated eigenvalue of a covariance matrix.
5. The method of claim 3 further comprising:
displaying the confidence measurement on a user interface portion of the scanning device; and
receiving from a user of the scanning device the selection of the subset of the six degrees of freedom of the scanning device.
6. The method of claim 3 wherein the selection of the subset is performed automatically.
7. The method of claim 3 wherein, if the confidence measurement is above a predetermined threshold, the selected subset of the six degrees of freedom of the scanning device comprises all six degrees of freedom of the scanning device.
8. The method of claim 1 wherein selecting the subset further comprises selecting the subset so as to decouple one of or both of yaw and roll/pitch of the scanning device.
9. The method of claim 1 , wherein the first sensor comprises one of an inertial measurement unit (IMU), a tracking camera and a LIDAR and wherein the second sensor both comprises one of the IMU, the tracking camera and the LIDAR and is of a different type than the first sensor.
10. The method of claim 9, wherein the data from the first sensor comprises IMU data.
11. The method of claim 9, wherein the data from the second sensor comprises camera data.
12. The method of claim 9. wherein the scanning device comprises a third sensor that
comprises one of the IMU, the tracking camera and the LIDAR and is of a different type than the first sensor and the second sensor.
13. A method comprising:
(a) utilizing inertial measurement unit (IMU) data and one of tracking camera data and laser data for six degrees of freedom of the scanning device to optimize a first pose calculation;
(b) receiving data comprising one of a scan from the laser and an image from the tracking camera;
(c) selecting a subset of the six degrees of freedom of the scanning device; and
(d) utilizing the IMU data and the received data for the selected subset of six degrees of freedom to optimize a second pose, wherein the unselected degrees of freedom are retained from the first pose.
14. The method of claim 13 further comprising repeating steps (a)-(d) more than once while storing the data received in step (b) in a point cloud database;
15. The method of claim 14 further comprising temporarily storing the received data associated with the second camera pose as temporary data in a point cloud database for each repeat of step (a).
16. The method of claim 15 further comprising removing an accumulated blur and drift from the temporary data.
17. A method comprising:
computing a degraded direction in state space of a scanning device in a default mode; determining if at least one of a roll or a pitch of the scanning device is in the degraded direction;
determining if a yaw of the scanning device is in the degraded direction;
activating a roll and pitch lock mode if it is determined that at least one of a roll or a pitch of the scanning device is in the degraded direction; and
activating a yaw lock mode if it is determined that the yaw of the scanning device is in the degraded direction.
18. The method of claim 17, wherein the activating is performed manually by an operator of the scanning device.
19. The method of claim 18, wherein a state of activation is displayed on a user interface of the scanning device.
20. The method of claim 17, wherein the activating is performed automatically by the scanning device.
21. The method of claim 20, wherein a state of activation is displayed on a user interface of the scanning device.
22. The method of claim 17, wherein the determining is based, at least in part, on a confidence measurement derived, at least in part, by an eigenvector and an associated eigenvalue of a covariance matrix.
PCT/US2018/040269 2016-03-11 2018-06-29 Systems and methods for improvements in scanning and mapping WO2019006289A1 (en)

Priority Applications (7)

Application Number Priority Date Filing Date Title
EP18824609.4A EP3646058A4 (en) 2017-06-30 2018-06-29 Systems and methods for improvements in scanning and mapping
EP18834521.9A EP3656138A4 (en) 2017-07-17 2018-07-16 Aligning measured signal data with slam localization data and uses thereof
PCT/US2018/042346 WO2019018315A1 (en) 2017-07-17 2018-07-16 Aligning measured signal data with slam localization data and uses thereof
US16/733,787 US11573325B2 (en) 2016-03-11 2020-01-03 Systems and methods for improvements in scanning and mapping
US16/745,775 US10989542B2 (en) 2016-03-11 2020-01-17 Aligning measured signal data with slam localization data and uses thereof
US17/202,602 US11506500B2 (en) 2016-03-11 2021-03-16 Aligning measured signal data with SLAM localization data and uses thereof
US17/964,307 US20230288209A1 (en) 2016-03-11 2022-10-12 Aligning measured signal data with slam localization data and uses thereof

Applications Claiming Priority (6)

Application Number Priority Date Filing Date Title
US201762527341P 2017-06-30 2017-06-30
US62/527,341 2017-06-30
USPCT/US2017/055938 2017-10-10
PCT/US2017/055938 WO2018071416A1 (en) 2016-10-11 2017-10-10 Laser scanner with real-time, online ego-motion estimation
PCT/US2018/015403 WO2018140701A1 (en) 2017-01-27 2018-01-26 Laser scanner with real-time, online ego-motion estimation
USPCT/US2018/015403 2018-01-26

Related Parent Applications (2)

Application Number Title Priority Date Filing Date
PCT/US2018/015403 Continuation WO2018140701A1 (en) 2016-03-11 2018-01-26 Laser scanner with real-time, online ego-motion estimation
PCT/US2018/015403 Continuation-In-Part WO2018140701A1 (en) 2016-03-11 2018-01-26 Laser scanner with real-time, online ego-motion estimation

Related Child Applications (2)

Application Number Title Priority Date Filing Date
PCT/US2018/042346 Continuation-In-Part WO2019018315A1 (en) 2016-03-11 2018-07-16 Aligning measured signal data with slam localization data and uses thereof
US16/733,787 Continuation US11573325B2 (en) 2016-03-11 2020-01-03 Systems and methods for improvements in scanning and mapping

Publications (1)

Publication Number Publication Date
WO2019006289A1 true WO2019006289A1 (en) 2019-01-03

Family

ID=64742246

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2018/040269 WO2019006289A1 (en) 2016-03-11 2018-06-29 Systems and methods for improvements in scanning and mapping

Country Status (2)

Country Link
EP (1) EP3646058A4 (en)
WO (1) WO2019006289A1 (en)

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110501712A (en) * 2019-09-05 2019-11-26 北京百度网讯科技有限公司 For determining the method, apparatus, equipment and medium of position and attitude data
CN112204344A (en) * 2019-08-30 2021-01-08 深圳市大疆创新科技有限公司 Pose acquisition method and system and movable platform
US10962370B2 (en) 2016-03-11 2021-03-30 Kaarta, Inc. Laser scanner with real-time, online ego-motion estimation
US10989542B2 (en) 2016-03-11 2021-04-27 Kaarta, Inc. Aligning measured signal data with slam localization data and uses thereof
ES2824873A1 (en) * 2019-11-13 2021-05-13 Fund Tekniker METHOD AND SYSTEM FOR SPACE TRACKING OF OBJECTS (Machine-translation by Google Translate, not legally binding)
CN113614795A (en) * 2019-03-19 2021-11-05 微软技术许可有限责任公司 Relative spatial positioning of mobile devices
CN114450691A (en) * 2019-07-12 2022-05-06 本田技研工业株式会社 Robust positioning
US11398075B2 (en) 2018-02-23 2022-07-26 Kaarta, Inc. Methods and systems for processing and colorizing point clouds and meshes
CN115494518A (en) * 2022-08-15 2022-12-20 杭州羽亿创智科技有限公司 Pattern establishing method based on mode switching and laser radar equipment
US11567201B2 (en) 2016-03-11 2023-01-31 Kaarta, Inc. Laser scanner with real-time, online ego-motion estimation
US11573325B2 (en) 2016-03-11 2023-02-07 Kaarta, Inc. Systems and methods for improvements in scanning and mapping
US11815601B2 (en) 2017-11-17 2023-11-14 Carnegie Mellon University Methods and systems for geo-referencing mapping systems
US11830136B2 (en) 2018-07-05 2023-11-28 Carnegie Mellon University Methods and systems for auto-leveling of point clouds and 3D models
US12014533B2 (en) 2018-04-03 2024-06-18 Carnegie Mellon University Methods and systems for real or near real-time point cloud map data confidence evaluation

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050168437A1 (en) * 2004-01-30 2005-08-04 Carl Stewart R. Processing pose data derived from the pose of an elongate object
US20100286905A1 (en) * 2002-12-17 2010-11-11 Evolution Robotics, Inc. Systems and methods for filtering potentially unreliable visual data for visual simultaneous localization and mapping
US20120123615A1 (en) * 2009-05-15 2012-05-17 Mbda France Method and a system for estimating a trajectory of a moving body
WO2014048475A1 (en) 2012-09-27 2014-04-03 Metaio Gmbh Method of determining a position and orientation of a device associated with a capturing device for capturing at least one image
WO2014120613A1 (en) * 2013-01-30 2014-08-07 Qualcomm Incorporated Real-time 3d reconstruction with power efficient depth sensor usage
WO2014130854A1 (en) 2013-02-21 2014-08-28 Regents Of The Univesity Of Minnesota Extrinsic parameter calibration of a vision-aided inertial navigation system
US20150142378A1 (en) * 2012-07-18 2015-05-21 Creaform Inc. 3-d scanning and positioning interface
US20150317832A1 (en) * 2014-05-01 2015-11-05 Michael John Ebstyne World-locked display quality feedback
US20170123066A1 (en) * 2011-12-21 2017-05-04 Robotic paradigm Systems LLC Apparatus, Systems and Methods for Point Cloud Generation and Constantly Tracking Position

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018071416A1 (en) * 2016-10-11 2018-04-19 Kaarta, Inc. Laser scanner with real-time, online ego-motion estimation
JP7141403B2 (en) * 2017-01-27 2022-09-22 カールタ インコーポレイテッド Laser scanner with real-time online self-motion estimation

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100286905A1 (en) * 2002-12-17 2010-11-11 Evolution Robotics, Inc. Systems and methods for filtering potentially unreliable visual data for visual simultaneous localization and mapping
US20050168437A1 (en) * 2004-01-30 2005-08-04 Carl Stewart R. Processing pose data derived from the pose of an elongate object
US20120123615A1 (en) * 2009-05-15 2012-05-17 Mbda France Method and a system for estimating a trajectory of a moving body
US20170123066A1 (en) * 2011-12-21 2017-05-04 Robotic paradigm Systems LLC Apparatus, Systems and Methods for Point Cloud Generation and Constantly Tracking Position
US20150142378A1 (en) * 2012-07-18 2015-05-21 Creaform Inc. 3-d scanning and positioning interface
WO2014048475A1 (en) 2012-09-27 2014-04-03 Metaio Gmbh Method of determining a position and orientation of a device associated with a capturing device for capturing at least one image
WO2014120613A1 (en) * 2013-01-30 2014-08-07 Qualcomm Incorporated Real-time 3d reconstruction with power efficient depth sensor usage
WO2014130854A1 (en) 2013-02-21 2014-08-28 Regents Of The Univesity Of Minnesota Extrinsic parameter calibration of a vision-aided inertial navigation system
US20150317832A1 (en) * 2014-05-01 2015-11-05 Michael John Ebstyne World-locked display quality feedback

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See also references of EP3646058A4

Cited By (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11573325B2 (en) 2016-03-11 2023-02-07 Kaarta, Inc. Systems and methods for improvements in scanning and mapping
US11585662B2 (en) 2016-03-11 2023-02-21 Kaarta, Inc. Laser scanner with real-time, online ego-motion estimation
US11567201B2 (en) 2016-03-11 2023-01-31 Kaarta, Inc. Laser scanner with real-time, online ego-motion estimation
US10962370B2 (en) 2016-03-11 2021-03-30 Kaarta, Inc. Laser scanner with real-time, online ego-motion estimation
US11506500B2 (en) 2016-03-11 2022-11-22 Kaarta, Inc. Aligning measured signal data with SLAM localization data and uses thereof
US10989542B2 (en) 2016-03-11 2021-04-27 Kaarta, Inc. Aligning measured signal data with slam localization data and uses thereof
US11815601B2 (en) 2017-11-17 2023-11-14 Carnegie Mellon University Methods and systems for geo-referencing mapping systems
US11398075B2 (en) 2018-02-23 2022-07-26 Kaarta, Inc. Methods and systems for processing and colorizing point clouds and meshes
US12014533B2 (en) 2018-04-03 2024-06-18 Carnegie Mellon University Methods and systems for real or near real-time point cloud map data confidence evaluation
US11830136B2 (en) 2018-07-05 2023-11-28 Carnegie Mellon University Methods and systems for auto-leveling of point clouds and 3D models
CN113614795A (en) * 2019-03-19 2021-11-05 微软技术许可有限责任公司 Relative spatial positioning of mobile devices
CN114450691A (en) * 2019-07-12 2022-05-06 本田技研工业株式会社 Robust positioning
WO2021035748A1 (en) * 2019-08-30 2021-03-04 深圳市大疆创新科技有限公司 Pose acquisition method, system, and mobile platform
CN112204344A (en) * 2019-08-30 2021-01-08 深圳市大疆创新科技有限公司 Pose acquisition method and system and movable platform
CN110501712A (en) * 2019-09-05 2019-11-26 北京百度网讯科技有限公司 For determining the method, apparatus, equipment and medium of position and attitude data
ES2824873A1 (en) * 2019-11-13 2021-05-13 Fund Tekniker METHOD AND SYSTEM FOR SPACE TRACKING OF OBJECTS (Machine-translation by Google Translate, not legally binding)
CN115494518A (en) * 2022-08-15 2022-12-20 杭州羽亿创智科技有限公司 Pattern establishing method based on mode switching and laser radar equipment

Also Published As

Publication number Publication date
EP3646058A1 (en) 2020-05-06
EP3646058A4 (en) 2020-12-02

Similar Documents

Publication Publication Date Title
US11573325B2 (en) Systems and methods for improvements in scanning and mapping
WO2019006289A1 (en) Systems and methods for improvements in scanning and mapping
US11946761B2 (en) System and method associated with expedient determination of location of one or more object(s) within a bounded perimeter of 3D space based on mapping and navigation to a precise POI destination using a smart laser pointer device
JP6971359B2 (en) Posture prediction using recurrent neural network
Hilsenbeck et al. Graph-based data fusion of pedometer and WiFi measurements for mobile indoor positioning
US9615562B2 (en) Analyzing marine trip data
US9706364B2 (en) Accounting for indoor-outdoor transitions during position determination
CN105229490B (en) Using satellite visibility data come the positional accuracy for lifting
TWI500003B (en) Positioning and mapping based on virtual landmarks
AU2015216722B2 (en) Determining the position of a mobile device in a geographical area
JP2021510861A (en) Determining the current amount, shape, and size of fish
US20150212583A1 (en) Detection of user gestures
WO2017112414A1 (en) Method and system for using offline map information aided enhanced portable navigation
CN114179832A (en) Lane changing method for autonomous vehicle
US20220276058A1 (en) Systems and methods for utilizing modeling to automatically generate paths for indoor navigation
US11199409B2 (en) Method for processing measurements of at least one electronic sensor placed in a handheld device
CN118319188A (en) Repositioning method for cleaning robot, cleaning robot and computer equipment
CA2894863A1 (en) Indoor localization using crowdsourced data
KR101470367B1 (en) Apparatus and method for detecting and tracking multiple objects by using dual-layer particle filter
CN116047558A (en) Positioning method and device
Chen et al. Fully Onboard Single Pedestrian Tracking On Nano-UAV Platform
RU2759773C1 (en) Method and system for determining the location of the user
US20240177342A1 (en) Information processing device, information processing method, and storage medium
Li et al. KP-Cartographer: A Lightweight SLAM Approach Based on Cartographer
EA041418B1 (en) METHOD AND SYSTEM FOR DETERMINING THE LOCATION OF THE USER

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

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

WWE Wipo information: entry into national phase

Ref document number: 2018824609

Country of ref document: EP

ENP Entry into the national phase

Ref document number: 2018824609

Country of ref document: EP

Effective date: 20200130