LOCALIZATION FRAMEWORK FOR DYNAMIC ENVIRONMENTS FOR AUTONOMOUS INDOOR SEMI-AUTONOMOUS DEVICES
20230113331 · 2023-04-13
Inventors
- Marc GALLANT (Kitchener, CA)
- Teyvonia THOMAS (Kitchener, CA)
- Mark VANDERMEULEN (Kitchener, CA)
- Dan ERUSALIMCHIK (Kitchener, CA)
- Pablo Roberto Molina Cabrera (Waterloo, CA)
Cpc classification
International classification
Abstract
A hybrid mapping and localization system using continuous localization algorithms is disclosed. When a localization quality is sufficiently high, based on a validated points localization monitor metric, then the map updates are allowed to be made on the localization map. This helps localizing in dynamic environments because these environment changes are actually integrated into the underlying map, so that the particle filter does not snap to incorrect object locations.
Claims
1. A hybrid mapping and localization system using a continuous localization framework for dynamic environments for an autonomous indoor semi-autonomous device comprising: a processor; memory; a probabilistic occupancy grid configured to display maps. a 2D laser scan matcher; a particle filter; and a plurality of adapters configured to manage input and output activities for the semi-autonomous.
2. The system claim 1 wherein the probabilistic occupancy grid further comprises a global map and local map.
3. The system of claim 1 wherein the plurality of adapters is selected from a list consisting of an odometry adapter, a laser scan adapter, a pose adapter and a map adapter.
4. The system of claim 3 wherein the odometry adapter receives odometry data from the semi-autonomous device.
5. The system of claim 3 wherein the laser scan adapter is configured to receive laser scan and outputs point cloud created from input scans after pre-filtering.
6. The system of claim 3 wherein the pose adapter receives initial position and provides localization results.
7. The system of claim 3 wherein the map adapter is configured to receive the original cleaning map plan and generate internal maps.
8. The system of claim 1 further comprising additional components selected from a list consisting of a map reference frame, a robot reference frame, an odom reference frame, a sensor reference frame, an execution framework, base types, pose estimation algorithms, pose validation algorithms, mapping algorithms, shared Algorithms, a runtime module, a monitor module, a real-time operating system interfance and a communication interface.
8. A computer-implemented method for hybrid mapping and localization using a localization framework for an autonomous indoor semi-autonomous device, the method comprising the steps of: predicting a pose with odometry data; sampling particles using the odometry data; copying synched odometry data to previous synched odometry data; determine whether correction is required; if correction is required, setting the pose as uncorrected; creating a visible distribution field submap; downsampling merges scans; copying predicted pose to scan match in pose; and correcting pose with particle filter.
9. The method of claim 1 further comprising the steps of: copying the particle filter to scan match input pose; copying the particle filter to the corrected pose; setting pose corrected by the particle filter; and correcting with scan matching.
10. The method of claim 9 further comprising the steps of: determining whether scan match pose align with map; copying the scan pose to the corrected pose; and setting pose corrected by the scan match.
11. The method of claim 9 further comprising the steps of: confirming that pose is corrected; blending predicted and corrected pose; copying the synched odometry data to the value pose odometry data; generating a pose consistency report; and predicting the updated pose.
12. A computer-implemented method generating a map with a SLAM algorithm for an autonomous indoor semi-autonomous device comprising the steps of: copying predicted pose to input pose; determine whether correction is required; if correction is required, copy scan for SLAM algorithm; copying input pose to output pose; downsampling merge scans; creating visible distribution field submap; and correcting with scan matching.
13. The method of claim 12 further comprising the steps of: confirming whether scan matching improve pose; blending input and corrected pose; correcting with scan matching; and copying output pose and odometry to value pose and odometry.
14. The method of claim 13 further comprising the steps of: determining whether semi-autonomous device is turning; determining whether semi-autonomous device has moved enough since last update; and updating scan history.
15. The method of claim 14 further comprising the steps of: determining whether map is to be regenerated; if map is not to be regenerated, updating map; and if map is to be regenerated, regenerate map.
Description
BRIEF DESCRIPTION OF THE DRAWINGS
[0015]
[0016]
[0017]
[0018]
[0019]
[0020]
[0021]
[0022]
[0023]
DETAILED DESCRIPTION
[0024] An exemplary embodiment of an autonomous or semi-autonomous cleaning device is shown in
[0025]
[0026] The frame 102 of cleaning device 100 can be any suitable shape, size, and/or configuration. For example, in some embodiments, the frame 102 can include a set of components or the like, which are coupled to form a support structure configured to support the drive system 104, the cleaning assembly 108, and the electronic system 106. Cleaning assembly 108 may be connected directly to frame 102 or an alternate suitable support structure or sub-frame (not shown). The frame 102 of cleaning device 100 further comprises strobe light 110, front lights 112, a front sensing module 114 and a rear sensing module 128, rear wheels 116, rear skirt 118, handle 120 and cleaning hose 122. The frame 102 also includes one or more internal storage tanks or storing volumes for storing water, disinfecting solutions (i.e., bleach, soap, cleaning liquid, etc.), debris (dirt), and dirty water. More information on the cleaning device 100 is further disclosed in U.S. utility patent application Ser. No. 17/650678, entitled “APPARATUS AND METHODS FOR SEMI-AUTONOMOUS CLEANING OF SURFACES” filed on Feb. 11, 2022, the disclosure which is incorporated herein by reference in its entirety.
[0027] More particularly, in this embodiment, the front sensing module 114 further includes structured light sensors in a vertical and horizontal mounting position, an active stereo sensor and a RGB camera. The rear sensing module 128, as seen in
[0028] The back view of a semi-autonomous cleaning device 100, as seen in
[0029]
System1
[0030] One method of addressing the precise and continuous tracking of a robot's pose in dynamic environments (Problem 1) is to use continuous localization algorithms. A hybrid mapping and localization system (herein referred to System1) is disclosed.
[0031] According to System1, when the localization quality is sufficiently high, based on a validated points localization monitor metric, then map updates are allowed to be made on the localization map. This helps localizing in dynamic environments because these environment changes are integrated into the underlying map, so that the particle filter does not snap to incorrect object locations.
[0032] According to the disclosure, System1 is a system for simultaneous localization and mapping (SLAM) on a pre-created map and by usage of laser scans from one or two 2D LiDAR sensors. System1 consists of three main components: [0033] Probabilistic Occupancy Grid [0034] 2D Laser Scan Matcher (inherited from Hector SLAM) [0035] Particle Filter (PF)
[0036] According to the disclosure, the main idea of the system is updating of the pre-created map by new observations of the environment and localization on this map with two consequent localization methods. The probabilistic map provides an occupancy map that has tolerance to sensor noise and non-static objects.
[0037] Particle Filter (PF) is a part of localization that is responsible for the robustness of localization, whereas Scan matching ensures better accuracy. Both provide a robust and accurate fitting of every laser scan to the current map. The map is updated only if localization obtained from Particle Filter with Scan Matcher has enough level of confidence. The confidence, in turn, is based on a calculation of covariance of the current pose and the fitting score of the last scan to the map.
[0038] According to the disclosure, the SLAM does not have explicit loop closure methods, however, the scan matching from scan to map and the particle filter that tracks the motion on the updated map provides the same abilities inherent in SLAM systems with loop closure mechanism.
[0039]
[0040] According to
[0041] According to
[0042] According to
[0043] According to
[0044] According to
[0045] Finally, the system 600 then determines whether to do mapping at step 646. If no, do nothing at step 638. If yes, the process concludes by predicting the pose at step 648.
[0046] According to the disclosure, the main components of System1 include: [0047] Initial, robust estimation. Using the previous localization estimate as the initial guess, an initial guess of the new localization estimate is produced that does not necessarily need to be accurate (i.e., less accurate than the desired +/−5 cm error) but should be robust to multiple possible local minima. Put differently, if the environment contains symmetries or other ambiguities, this initial robust estimation is tolerant and provides a reasonable estimate that is refined in the secondary, more accurate estimation step.
[0048] Secondary, accurate estimation. Using the initial robust guess from the initial estimation, the estimate is refined using a local-minimum-seeking approach. System1 uses a Hessian scan matcher in this role, minimizing the distance between points in the laser scan and obstacles in the map.
[0049] Map update. The original map is updated probabilistically using the latest laser scan. This approach maps both obstacles and free space and is robust against dynamic obstacles. The updated map is used in both the initial and secondary estimation steps.
System2
[0050] According to the disclosure, a further hybrid mapping and localization system using continuous localization algorithms that is much closer to true simultaneous localization and mapping (SLAM) system is disclosed (herein referred to as System2). According to the disclosure, System2 builds a map effectively from scratch.
[0051] The SLAM problem is widely discussed in the literature and looks at ways to most consistently associate the entire history of odometry and lidar observations to minimize some notion of information misalignment (in a sense, information entropy). System2 is unique in its implementation because it contains an alignment workflow, which estimates the transformation between the map being generated by SLAM (in the SLAM workflow) with an a priori original map. This step of alignment between the SLAM map and original map is a unique and required step. This is because the robot must respect the cleaning plan, which is a highly annotated map containing input from the customer, including areas that the robot must avoid, slow down, should or should not be cleaned, etc. Put differently, the robot must know where these special annotations are located with respect to the robot. As a result, it cannot simply perform SLAM but also localize as well within the cleaning plan.
[0052] The two main workflows in System are described as follows: [0053] The SLAM workflow (
[0055]
[0056] According to
[0057] According to
[0058] According to
[0059] According to
[0060] According to
[0061]
[0062] According to
[0063] According to
[0064] According to
[0065] According to
[0066] According to
[0067] According to
[0068] According to
[0069] According to
Localization Monitor
[0070] Coupled with the continuous localization algorithm is also the localization monitor, which rapidly consumes reports published by the localization system and compares values in these reports with thresholds. The reports contain numerous metrics that can be used to evaluate the health and accuracy of the localization system.
[0071] The report addresses the following issues: [0072] How well the current scan aligns with the obstacles in the original map. [0073] The number of obstacles that were previously observed in the map and should now be observable but are missing. [0074] The size of the localization corrections currently being applied by the localization system. [0075] The uncertainty in the scan matching process. [0076] The distance the robot has driven since a localization correction was successfully applied.
[0077] When different combinations of thresholds are violated over a sustained period, the localization monitor triggers that the robot is considered lost, which will immediately stop the robot. At this point, remote monitoring intervention is performed to either correct the position of the robot or verify that a false positive has occurred.
[0078] An example of a localization monitor is disclosed in PCT publication WO2019183727A1 filed on Mar. 27, 2018, entitled “Safety systems for semi-autonomous devices and methods of using the same” which is incorporated by reference in its entirety.
Addressing Problem 2
[0079] According to the disclosure. a workflow-like framework to allow reusable components of various localization algorithms to be mixed and matched to streamline the creation and the evaluation of existing and new algorithms is disclosed.
[0080] At its highest level, the localization and mapping framework is designed to encourage code reuse by organizing algorithms into small single-purpose entities called tasks that can then be configured and assembled into workflows. These workflows are started and stopped by a driver, which is controlled via a communication interface such as ROS.
[0081] The algorithms called by the tasks are organized according to their core functionality, such as pose estimation, pose validation, and mapping. In addition to these algorithms, specifications are provided for the base data types (e.g., pose, map), the execution framework (e.g., task, workflow), the runtime (i.e., use of the execution framework for localization and mapping), the localization monitor, and the communication interface.
[0082] According to the disclosure, the SLAM system consists of a probabilistic occupancy grid, a 2D laser scan matcher, a particle filter, and a plurality of adapters. The adapters include an odometry adapter, a laser scan adapter, a pose adapter, and a map adapter. The odometry adapter receives odometry data from the semi-autonomous device. The laser scan adapter is configured to receive laser scan and outputs point cloud created from input scans after pre-filtering. The pose adapter receives initial position and provides localization results. The map adapter is configured to receive the original cleaning map plan and generate internal maps.
[0083] According to further embodiments of the disclosure, the SLAM system further comprises additional components including the following: [0084] Map reference frame [0085] Robot reference frame [0086] Odom reference frame [0087] Sensor reference frame [0088] Execution framework [0089] Base types [0090] Pose estimation algorithms [0091] Pose validation algorithms [0092] Mapping algorithms [0093] Shared Algorithms [0094] Runtime [0095] Monitor [0096] ROS/Communication Interface
Map Reference Frames
[0097] The map reference frame is the inertial reference frame relative in which localization is performed. That is, the pose of the robot is reported as the position and heading of the coordinate axes of the robot reference frame reported in the map reference frame. Note that the heading is defined as the counterclockwise angle from the x-axis of the map reference frame to the x-axis of the robot reference frame. The map reference frame uses the coordinate system as described in the grid map library [https://github.com/ANYbotics/grid_map].
[0098]
Robot Reference Frame
[0099] The robot reference frame is a moving reference frame attached to the robot, located at the front wheel. The x-axis of the coordinate axes points forward and the y-axis points left. The transform from the robot reference frame to the map reference frame represents the current best estimate of the pose of the robot in the map.
Odom Reference Frame
[0100] The odom reference frame is a fixed frame relative to the robot reference frame. It represents the smoothly-changing pose of the robot as reported by odometry. At start-up, the odom and map reference frame are identical. As dead-reckoning errors accumulate, the transform between them grows. The primary use of the odom reference frame is using sequential estimates of the pose to predict short-term changes in pose. Another use is comparing how the poses reported by odometry evolve over time to determine the likelihood that the wheels of the robot are slipping.
Sensor Reference Frame
[0101] The sensor reference frame is attached to an exteroceptive (i.e., environment-measuring) sensor that is rigidly fixed to the robot. Note that there is more than one sensor reference frame that should be named accordingly (e.g., front Lidar, rear_lidar, etc.). The data types storing the data from these sensors have fields with the data in their original sensor reference frames, as well as the same data transformed to the robot reference frame. The data in the original reference frame is kept because it sometimes provides additional information that is lost when transformed (e.g., regular spacing of data, well defined field of view).
Execution Framework
[0102] The execution framework is a hierarchy of elements: the data manager (stores all data such as poses, maps, and sensor data), task functions (algorithms such as scan matching), tasks (runs task functions using data from the data manager), workflows (ordering of tasks to form more complex behaviour such as continuous localization), and the driver (interface to start and stop workflows). Importantly, the execution framework is completely independent of localization and mapping. That is, it provides the elements listed above in a generic way that is agnostic to how it is used (i.e., what the tasks contain, how the workflows are organized, what actions the driver can take, etc.).
Base Types Algorithms
[0103] Localization and mapping have a set of base types that are used by all types of algorithms (e.g., from pose estimation, mapping, pose validation). These base types include the top-level types that are directly used in task functions (e.g., pose, map, global pose report) as well as types from which those top-level types are composed. For example, the global pose report contains a scan match score report, which contains scan match score stats.
Pose Estimation Algorithms
[0104] Pose estimation is performed by a collection of task functions and regular functions that estimate the pose using data from a sensor or knowledge about the motion of the robot. For example, scan matching and particle filtering are examples of pose estimation algorithms.
Pose Validation Algorithms
[0105] Pose validation is performed by a collection of task functions and regular functions that implement pose validation algorithms. A function is considered to implement a pose validation algorithm if it calculates validation data about a pose (e.g., how well a scan taken at a pose matches a map), determines the validity of a pose based on validation data, or calculates data about the environment whose purpose is to help validate poses (e.g., determining landmarks in a map that should be observed by valid poses).
Mapping Algorithms
[0106] Mapping is performed by a collection of task functions and regular functions that create or modify maps using sensor data. For example, updating the occupancy of a map using a laser scan is an example of a mapping algorithm.
Shared Algorithms
[0107] There exist some algorithms that do not fit under the definition of a more specific collection of algorithms (e.g., pose estimation, mapping) and/or provide functionality that may be useful to more than one category.
Runtime
[0108] The localization and mapping runtime specifies how the execution framework is used for localization and mapping. More specifically, it outlines the data that will be in the data manager, the tasks and workflows that are needed, and a driver that executes the workflows using actions. The execution framework describes what each of these elements are (task function, data manager, tasks, workflows, driver), while the runtime provides details how they can be leveraged into a full localization and mapping system.
Monitor
[0109] The monitor is responsible for determining whether the quality of the pose estimated by the localization and mapping system is acceptable for use by other systems. It consumes reports generated by the localization and mapping system and applies a set of thresholds to the values in those reports (e.g., the maximum allowable number of unoccluded validated points missed by a scan) to determine localization status. This status summarizes the current confidence that localization is being performed sufficiently well.
ROS or Equivalent Communication Interface
[0110] The localization and mapping system can leverage a ROS or similar interface to communicate with other systems on the robot. This consists of the custom message types provided by localization and mapping as well as the topics of which the system subscribes as well as those to which it publishes.
[0111] According to embodiments of the disclosure, a hybrid mapping and localization system using a continuous localization framework for dynamic environments for an autonomous indoor semi-autonomous device is disclosed. The system comprises a processor, memory, a probabilistic occupancy grid configured to display maps, a 2D laser scan matcher, a particle filter and a plurality of adapters configured to manage input and output activities for the semi-autonomous.
[0112] According to the disclosure, the probabilistic occupancy grid of the system further comprises a global map and local map. The plurality of adapters of the system is selected from a list consisting of an odometry adapter, a laser scan adapter, a pose adapter, and a map adapter.
[0113] According to the disclosure, the odometry adapter of the system receives odometry data from the semi-autonomous device. The laser scan adapter of the system is configured to receive laser scan and outputs point cloud created from input scans after pre-filtering. The pose adapter of the system receives initial position and provides localization results. The map adapter of the system is configured to receive the original cleaning map plan and generate internal maps.
[0114] According to the disclosure, the system further comprises additional components selected from a list consisting of a map reference frame, a robot reference frame, an odom reference frame, a sensor reference frame, an execution framework, base types, pose estimation algorithms, pose validation algorithms, mapping algorithms, shared Algorithms, a runtime module, a monitor module, a real-time operating system interface and a communication interface.
[0115] According to further embodiments of the disclosure, a computer-implemented method for hybrid mapping and localization using a localization framework for an autonomous indoor semi-autonomous device is disclosed. The computer-implemented method comprises the steps of predicting a pose with odometry data, sampling particles using the odometry data, copying synched odometry data to previous synched odometry data, determine whether correction is required and if correction is required, setting the pose as uncorrected, creating a visible distribution field submap, downsampling merges scans, copying predicted pose to scan match in pose and correcting pose with particle filter.
[0116] According to the disclosure, the computer-implemented method further comprising the steps of copying the particle filter to scan match input pose, copying the particle filter to the corrected pose, setting pose corrected by the particle filter and correcting with scan matching.
[0117] According to the disclosure, the method further comprising the steps of determining whether scan match pose align with map, copying the scan pose to the corrected pose and setting pose corrected by the scan match.
[0118] According to the disclosure, the method of claim 9 further comprising the steps of confirming that pose is corrected, blending predicted and corrected pose, copying the synched odometry data to the value pose odometry data, generating a pose consistency report and predicting the updated pose.
[0119] According to further embodiments of the disclosure, a computer-implemented method generating a map with a SLAM algorithm for an autonomous indoor semi-autonomous device is disclosed. The method comprises the steps of copying predicted pose to input pose, determine whether correction is required, if correction is required, copying scan for SLAM algorithm, copying input pose to output pose, downsampling merge scans, creating visible distribution field submap and correcting with scan matching.
[0120] According to the disclosure, the method further comprising the steps of confirming whether scan matching improve pose, blending input and corrected pose, correcting with scan matching and copying output pose and odometry to value pose and odometry.
[0121] According to the disclosure, the method further comprises the steps of determining whether semi-autonomous device is turning, determining whether semi-autonomous device has moved enough since last update and updating the scan history.
[0122] According to the disclosure, the method further comprising the steps of determining whether map is to be regenerated, if the map is not to be regenerated, updating map and if map is to be regenerated, regenerate map.
[0123] According to further embodiments of the disclosure, a computer-implemented method for aligning a map with a SLAM algorithm for an autonomous indoor semi-autonomous device is disclosed. The method comprises the steps of copying pose data for alignment, copying timestamp from odometer, do alignment and copying current to previous SLAM map, copying pose data for alignment, generating local point cloud, determine whether point cloud is good for alignment, retrieving current T reference map, retrieving local reference submap, aligning local point cloud to local reference map, determine whether local cloud is better aligned, storing local cloud scan to match output, generating local cloud scan to match report, downsampling merged scans for alignment, aligning latest scan to local reference map, determine whether latest scan is better aligned, storing latest scan match output, retrieving current T reference SLAM map, updating T reference SLAM map, storing previous T reference SLAM map and updating previous alignment time.
[0124] The methods disclosed herein comprise one or more steps or actions for achieving the described method. The method steps and/or actions may be interchanged with one another without departing from the scope of the claims. In other words, unless a specific order of steps or actions is required for proper operation of the method that is being described, the order and/or use of specific steps and/or actions may be modified without departing from the scope of the claims.
[0125] As used herein, the term “plurality” denotes two or more. For example, a plurality of components indicates two or more components. The term “determining” encompasses a wide variety of actions and, therefore, “determining” can include calculating, computing, processing, deriving, investigating, looking up (e.g., looking up in a table, a database, or another data structure), ascertaining and the like. Also, “determining” can include receiving (e.g., receiving information), accessing (e.g., accessing data in a memory) and the like. Also, “determining” can include resolving, selecting, choosing, establishing and the like.
[0126] The phrase “based on” does not mean “based only on,” unless expressly specified otherwise. In other words, the phrase “based on” describes both “based only on” and “based at least on.”
[0127] While the foregoing written description of the system 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 system 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 system. Thus, the present disclosure is not intended to be limited to the implementations shown herein but is to be accorded the widest scope consistent with the principles and novel features disclosed herein.