Systems and methods for robot navigation, teaching, and mapping
By generating robot maps and combining them with sensor data to project training trajectories, the challenges of robot navigation and cleaning in complex environments have been solved, enabling autonomous obstacle avoidance and efficient cleaning.
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- INTELLIGENT CLEANING EQUIPMENT HOLDINGS CO LTD
- Filing Date
- 2023-03-27
- Publication Date
- 2026-06-09
AI Technical Summary
Existing technologies struggle to enable efficient autonomous navigation and cleaning in complex environments, especially when multiple obstacles are present, making it difficult for robots to accurately locate and plan cleaning paths.
By generating a robot map using repositionable initial objects, combining sensor data to project training trajectories, and expanding the cleaning area, the robot can autonomously avoid obstacles and clean the target area.
It achieves efficient autonomous navigation and cleaning in complex environments, accurately locates and plans cleaning paths, avoids collisions with obstacles, and improves cleaning efficiency.
Smart Images

Figure CN116423475B_ABST
Abstract
Description
Technical Field
[0001] This disclosure generally relates to systems and methods for robot navigation, teaching, and mapping. Background Technology
[0002] Robots and / or machines can be used to perform tasks autonomously or semi-autonomously, provide services, and traverse environments. Some robots or machines can be used to perform cleaning tasks in environments in which the robot or machine is located, or is able to navigate to or traverse with or without human operator input or commands. Summary of the Invention
[0003] This disclosure generally relates to systems and methods for robot navigation, teaching, and mapping. Robotic systems may include robots or machines capable of cleaning, sterilizing, disinfecting, transporting goods, inspecting, monitoring, or surveillance in an area or environment. The robots or machines may be configured to operate autonomously or semi-autonomously to clean an area or environment.
[0004] In one aspect, a method of operating a robot is provided. The method may include: (a) determining a robot pose based at least in part on one or more images of one or more repositionable or movable initialization objects within an environment; (b) generating a map of an environment in which the robot is configured to move, wherein the map includes information about: (i) an area of the environment in which the robot is configured to move or traverse to perform one or more tasks or operations; (ii) one or more predetermined paths for the robot's movement; and (iii) the robot's pose, wherein the map and the one or more predetermined paths are associated with repositionable or movable initialization objects; and (c) initiating movement of the robot along at least a portion of one or more predetermined paths to perform one or more tasks or operations.
[0005] On the other hand, the method may include: (a) providing a robot including one or more sensors configured to detect one or more obstacles in or near the environment as the robot traverses or moves through the environment along one or more training trajectories, wherein the robot is configured to: (1) determine a clean area in the environment by (i) projecting one or more training trajectories and sensor data acquired using one or more sensors onto a map and (ii) extending one or more training trajectories based on the location of one or more unoccupied grids in the map, wherein the clean area includes one or more training trajectories and does not include one or more obstacles detected using one or more sensors; (2) identify one or more target areas to be cleaned within the clean area based on marking one or more boundaries for one or more target areas, wherein one or more boundaries are recorded by the robot as it traverses or moves along one or more boundaries; and (3) move or navigate along one or more cleaning paths through one or more target areas or move or navigate along one or more cleaning paths within one or more target areas to clean one or more target areas or a portion thereof.
[0006] A further aspect relates to a method comprising: (a) providing (i) a plurality of robots and (ii) one or more scannable objects associated with one or more maps of an environment; and (b) deploying the plurality of robots in the environment to perform one or more tasks, wherein the plurality of robots are configured to navigate through the environment using one or more maps to perform one or more tasks.
[0007] Another aspect of this disclosure provides a non-transitory computer-readable medium comprising machine-executable code that, when executed by one or more computer processors, implements any of the methods described above or elsewhere herein.
[0008] Another aspect of this disclosure provides a system comprising one or more computer processors and computer memory coupled thereto. The computer memory includes machine-executable code that, when executed by the one or more computer processors, implements any of the methods described above or elsewhere herein.
[0009] Other aspects and advantages of this disclosure will become apparent to those skilled in the art from the following detailed description, in which illustrative embodiments of this disclosure are shown and described. As will be appreciated, this disclosure is capable of other and different embodiments, and certain details thereof can be modified in various obvious respects, all without departing from this disclosure. Therefore, the drawings and descriptions should be considered illustrative in nature and not restrictive.
[0010] Incorporation
[0011] All publications, patents, and patent applications mentioned in this specification are incorporated herein by reference to the extent that each individual publication, patent, or patent application is specifically and individually identified as incorporated by reference. To the extent that any publication or patent or patent application incorporated by reference contradicts the disclosure contained in this specification, the specification is intended to supersede and / or take precedence over any such contradictory material. Attached Figure Description
[0012] The novel features of this disclosure are particularly set forth in the appended claims. A better understanding of the features and advantages of this disclosure will be obtained by referring to the following detailed description of illustrative embodiments utilizing various principles, along with the accompanying drawings (also referred to herein as “Figures”):
[0013] Figure 1 A robot according to some embodiments is illustrated schematically.
[0014] Figure 2 A cleaning robot according to some embodiments is illustrated schematically.
[0015] Figure 3 The illustration schematically depicts an environment including obstacles in which a robot can operate according to some embodiments.
[0016] Figure 4 A binocular camera module used by or mounted on a robot is schematically illustrated according to some embodiments.
[0017] Figure 5 The coordinate system of an IMU and a TOF sensor rigidly coupled together according to some embodiments is schematically illustrated.
[0018] Figure 6 An example of an initialization object according to some implementations is shown, which can be used to establish the robot's starting position for initializing the robot's navigation path.
[0019] Figures 7(a)-7(c) illustrate map and path generation according to some implementation methods.
[0020] Figures 8(a)-8(c) illustrate map and path generation according to some implementations, as well as automatic path adjustment for avoiding obstacles.
[0021] Figures 9(a) and 9(b) illustrate loopback detection and / or map correction according to some implementations.
[0022] Figures 10(a) and 10(b) illustrate examples of visual codes or markers that can be used for robot localization according to some embodiments, and Figure 10(c) illustrates the projection of robot position onto a grid map based on marker position according to some embodiments.
[0023] Figures 11(a) and 11(b) illustrate the use of image signals as instructions for robot operation, behavior, and tasks according to some embodiments.
[0024] Figures 12(a)-12(e) and 13(a)-13(c) illustrate examples of robot teaching and boundary delineation for determining one or more target areas to be cleaned, according to some implementations.
[0025] Figure 14(a) shows a spiral cleaning path according to some embodiments, and Figure 14(b) shows a bow-shaped cleaning path according to some embodiments.
[0026] Figure 15 The illustration schematically depicts multiple robots and / or machines communicating with a central server according to some implementation methods.
[0027] Figure 16 A computer system is schematically illustrated as being programmed or otherwise configured to implement any of the methods provided herein. Detailed Implementation
[0028] Although various embodiments have been shown and described herein, it will be apparent to those skilled in the art that these embodiments are provided by way of example only. Many variations, modifications, and substitutions will occur to those skilled in the art without departing from this disclosure. It should be understood that various alternatives to the embodiments described herein may be employed.
[0029] Whenever the terms "at least," "greater than," or "greater than or equal to" precede the first value in a series of two or more values, the terms "at least," "greater than," or "greater than or equal to" apply to each value in the series. For example, greater than or equal to 1, 2, or 3 is equivalent to greater than or equal to 1, greater than or equal to 2, or greater than or equal to 3.
[0030] Whenever the terms “not greater than,” “less than,” or “less than or equal to” precede the first value in a series of two or more values, the terms “not greater than,” “less than,” or “less than or equal to” apply to each value in that series. For example, less than or equal to 3, 2, or 1 is equivalent to less than or equal to 3, less than or equal to 2, or less than or equal to 1.
[0031] The terms “real-time” or “instantaneous”, used interchangeably in this document, generally refer to events (e.g., operations, processes, methods, techniques, calculations, operations, analyses, visualizations, optimizations, etc.) performed using recently acquired (e.g., collected or received) data. In some cases, real-time events can be performed almost immediately or over sufficiently short time spans, such as within at least 0.0001 milliseconds (ms), 0.0005 ms, 0.001 ms, 0.005 ms, 0.01 ms, 0.05 ms, 0.1 ms, 0.5 ms, 1 ms, 5 ms, 0.01 seconds, 0.05 seconds, 0.1 seconds, 0.5 seconds, 1 second, or longer. In some cases, real-time events can be executed almost immediately or within a sufficiently short time span, such as within 1 second, 0.5 seconds, 0.1 seconds, 0.05 seconds, 0.01 seconds, 5ms, 1ms, 0.5ms, 0.1ms, 0.05ms, 0.01ms, 0.005ms, 0.001ms, 0.0005ms, 0.0001ms, or less.
[0032] Overview
[0033] This disclosure relates to systems and methods for robot navigation, teaching, and mapping. Robotic systems may include robots or machines capable of cleaning, sterilizing, disinfecting, transporting goods, inspecting, monitoring, or providing surveillance in an area or environment. The robot or machine may be configured to operate autonomously or semi-autonomously to clean the area or environment.
[0034] Advantages of the methods and systems described herein include the use of initialization objects (for initializing robot position and / or robot operations) that can be repositioned or moved within the environment for subsequent robot operations without affecting or requiring updates to the environment map. This disclosure also provides methods for determining areas in the environment where a robot can perform one or more tasks (e.g., cleaning areas) by projecting training trajectories and sensor data onto a map and extending the training trajectory based on the locations of one or more unoccupied grids. The navigation, teaching, and mapping systems and methods disclosed herein can be applied to a variety of robotic systems and many different types of environments for one or more end applications that may include cleaning tasks or operations.
[0035] Robots / Machines
[0036] In one aspect, this disclosure provides a system including a robot or machine. In some embodiments, the machine may include an autonomous, semi-autonomous, and / or non-autonomous robot or machine. In some embodiments, the robot may include an autonomous, semi-autonomous, and / or non-autonomous machine or robot. In some embodiments, a robot may be interchangeably referred to as a machine, and a machine may be interchangeably referred to as a robot. In some cases, a robot may be equivalent to a machine, and vice versa. Alternatively, a robot may include a system capable of autonomous or semi-autonomous operation, and a machine may include a non-autonomous system capable of being operated by a human or other machine or robot.
[0037] In some embodiments, the robot or machine may include a cleaning machine or robot (e.g., a floor scrubber or vacuum cleaner). In other embodiments, the robot or machine may include, for example, a non-autonomous, semi-autonomous, or autonomous vehicle, a probe, a drone, or a shuttle vehicle for transporting people or objects. In some cases, the robot or machine may include a humanoid robot or a non-humanoid robot.
[0038] In any of the embodiments described herein, one or more robots or machines may be configured to operate individually or collectively as robot or machine formations or clusters. As used herein, the term "formation" can refer to any group or collection of multiple robots or other machines that can be controlled independently or jointly by a human or computer system. A formation may include one or more robots and / or one or more machines. One or more robots and / or one or more machines may include non-autonomous, semi-autonomous, or autonomous robots or machines that can be controlled locally or remotely. Robots and / or machines in a formation may be controlled by a human operator and / or a computer. In any of the embodiments described herein, a formation may include a combination of robots and / or machines. In any of the embodiments described herein, a formation may include a combination of autonomous, semi-autonomous, and / or non-autonomous robots and / or machines.
[0039] In some implementations, the robot or machine may include a non-autonomous robot or machine. Such a non-autonomous robot or machine may not include, or may have, or may not need to include, autonomous navigation capabilities or functions. In some cases, such a non-autonomous robot or machine may be configured to operate based on one or more inputs, commands, or instructions provided by a human operator. One or more inputs, commands, or instructions may include physical motion, auditory communication, or virtual input or selection of actions or movements to be performed by the robot or machine to move the robot or machine.
[0040] Figure 1An example of a robot 100 according to some embodiments is illustrated. The robot 100 may be configured to perform one or more tasks or operations. In some cases, the task may include a cleaning task, and the robot may be configured to perform cleaning routines or cleaning operations. Cleaning routines or cleaning operations may involve cleaning, disinfecting, or sterilizing an area or zone using instruments, tools, or substances (e.g., water and / or detergents) or any combination thereof.
[0041] In some implementations, robot 100 may include a navigation subsystem 110. The navigation subsystem 110 may be configured to provide or manage control logic used by the robot to navigate the environment to teach the robot to clean the environment, and / or perform cleaning operations or procedures.
[0042] In some implementations, robot 100 may include one or more sensors 112. The one or more sensors 112 may be used to acquire measurements associated with the operation of the robot (or any of its components or subsystems), the environment in which the robot operates, or obstacles around the robot. In some cases, the robot may use the measurements acquired by using one or more sensors 112 to control or regulate its operation (e.g., navigating the robot through its environment, teaching the robot to clean its environment, or operating one or more of the robot's components or subsystems).
[0043] In some embodiments, robot 100 may include processor 150. Processor 150 may be configured to control the operation of the robot (or any of its components or subsystems) based on measurements or readings acquired using one or more sensors 112. In some cases, processor 150 may be operatively coupled to sensors 112 and / or various other components or subsystems of robot 100 to aid in (1) processing sensor data and (2) controlling the operation or behavior of robot 100 or its various components / subsystems. The processor, in combination with navigation subsystems and sensors, may be used to execute instructions to perform or implement any of the methods disclosed herein.
[0044] Figure 2 An example of a robot 100 including additional subsystems or components is illustrated. Figure 2 Robot 100 in the text can be a cleaning robot.
[0045] refer to Figure 2 In some embodiments, robot 100 may include drive unit 101. Drive unit 101 may include, for example, wheels, rollers, conveyor belts, treads, magnets, etc.
[0046] In some embodiments, robot 100 may include one or more brushes 102. Brushes 102 may be operated to clean the environment. Brushes 102 may be rotatable to capture dirt, dust, debris, waste, particles, and / or sewage. In some cases, brushes 102 may include scrubbers, cleaning blades, and / or wipers.
[0047] In some embodiments, robot 100 may include a bin 103. Bin 103 may be configured to collect trash from a brush or scrubber on the proximal side of bin 103.
[0048] In some embodiments, robot 100 may include a tank 104. Tank 104 may include a solution tank and a wastewater tank. The solution tank may contain (a) a cleaning solution (e.g., clean water with detergent added) or (b) clean water. In some cases, the cleaning machine may be configured to automatically mix detergent with clean water to produce a cleaning solution that can be applied to the floor. In some cases, the solution tank may be manually filled by a user with a pre-mixed cleaning solution. In other cases, the solution tank may be manually filled by a user separately with clean water and detergent, which can then be mixed to produce a cleaning solution. In some embodiments, the solution in the solution tank may be sprayed onto a roller brush and / or side brush for cleaning the floor. In some embodiments, negative pressure may be applied to collect wastewater from the floor back into the wastewater tank.
[0049] In some implementations, robot 100 may include a handle 105. The handle 105 may be used to operate, push, or carry the robot. In some cases, the handle may be used to enable an operating mode, control the robot in a selected mode, or switch between different operating modes.
[0050] In some implementations, robot 100 may include a wiper 106. The wiper 106 can be used to clean or remove residual water or watermarks from the area being cleaned.
[0051] In some implementations, robot 100 may include a buffer 107. Buffer 107 may be configured to detect contact (e.g., impact or collision) between robot 100 and one or more objects, people, or obstacles in the cleaning environment. Buffer 107 may be used to protect robot 100 or any components of robot 100 from damage.
[0052] In some embodiments, robot 100 may include a detergent dispensing subsystem 108. The detergent dispensing subsystem may be configured to provide or release detergent into a water tank 104 of robot 100. In some cases, a predicted dose of detergent may be provided within one or more consumable packs, containers, or bags.
[0053] In some embodiments, robot 100 may include a processing or disinfection subsystem 109. The processing or disinfection subsystem 109 may be configured to perform processing operations (e.g., disinfection or sterilization operations) on one or more components or portions of robot 100. In some cases, the processing or disinfection subsystem may be used to process or disinfect hazardous or toxic materials or any other materials that may be harmful to human or animal health.
[0054] In some embodiments, robot 100 may include a communication unit 111. Communication unit 111 may include a transmitter and / or receiver for transmitting and / or receiving information or data. The information or data may include operational data of the robot, including data on the robot's components. In some cases, communication unit 111 may be configured to transmit information or data to a central server or one or more other robots or machines. In some cases, communication unit 111 may be configured to receive information or data transmitted to robot 100 from a central server or one or more other robots or machines.
[0055] Example robot configuration
[0056] The robot may include a frame and a drive mechanism for moving the robot through an environment. The environment may, for example, include one or more target areas to be cleaned by the robot. In some embodiments, the robot may include one or more brushes for cleaning one or more objects, surfaces, or areas in the environment. In some embodiments, the robot may include one or more sensors for detecting objects in the environment or mapping / visually inspecting the environment. One or more sensors can be positioned at any location on the robot in any suitable configuration to allow the robot to intelligently sense obstacles or movement around it from multiple directions or perspectives. Sensor placement can provide up to 360 degrees of coverage for the robot to detect or sense obstacles or movement (e.g., peripheral movement).
[0057] In some implementations, the robot may include a slit or opening located within its body or frame. The robot may include one or more sensors (e.g., LiDAR sensors) positioned within the slit or opening in its body or frame. In some cases, sensors (e.g., optical sensors, LiDAR sensors, radar sensors, etc.) may be integrated into a portion of the robot provided within or near the slit or opening. In some cases, sensors provided within or near the slit or opening may have a wide horizontal field of view. In some cases, the wide horizontal field of view may be at least about 180 degrees, 225 degrees, or 270 degrees. In some cases, sensors provided in the middle of the robot's body or frame may be able to directly detect objects near the robot. In some cases, sensors may be positioned to minimize blind spots on the robot.
[0058] In some implementations, the robot may include a handle for operating, pushing, or carrying the robot. The handle can be used to enable an operating mode, control the robot in a selected mode, or switch between different operating modes.
[0059] In some embodiments, the brush assembly and wiper assembly are lowered to the ground during operation. In some embodiments, the cleaning machine is in manual operation mode when the handle is open or raised. In some embodiments, cleaning operations or map constraint operations can be performed in manual operation mode. In some embodiments, the cleaning machine is in automatic operation mode when the handle is closed.
[0060] The handle can be movable between two or more positions. These two or more positions can correspond to different operating modes. In some cases, the handle can be flush with the top surface of the robot. In some cases, the handle can be angled relative to the top surface of the robot. In some cases, the handle can be temporarily locked in a given position to allow the operator to use the robot in the desired operating mode without continuous monitoring or control of the handle's position relative to the robot.
[0061] Application usage examples
[0062] In some embodiments, the robot may be configured to clean an environment. The environment may include an indoor environment or an outdoor environment. In some cases, the environment may include a combination of one or more indoor environments and one or more outdoor environments. An indoor environment may include, for example, a building, office, residence, shop, or any other space or area at least partially surrounded by one or more walls, ceilings, panels, floors, or other structural elements. An outdoor environment may include, for example, any space at least partially exposed to natural elements, such as public spaces, private spaces not surrounded by structural elements or components, roads, terrestrial or aquatic ecosystems, etc. In some embodiments, the robot may clean, or may be configured to clean, places such as retail stores, fast food restaurants, convenience stores, airports, train stations, shopping malls, commercial buildings, supermarkets, campuses, or schools.
[0063] In some embodiments, the robot may be optimized or configured for commercial floor cleaning, covering areas ranging from 100 to 30,000 square feet. In other embodiments, the robot may be optimized or configured to clean areas larger than 30,000 square feet. In one embodiment, the robot may be optimized or configured to clean areas up to 15,000 square feet.
[0064] In implementations where robots are configured for floor cleaning areas of less than 10,000 square feet, robots can serve such areas far more effectively and efficiently than (i) large commercial cleaning robots that cannot maneuver nimbly in confined spaces or navigate precisely to or through hard-to-reach areas, (ii) small household cleaning robots that lack the battery capacity or productivity of robots for commercial cleaning applications, and (iii) human operators who manually clean areas using mops or buckets.
[0065] Figure 3 An exemplary environment 300 in which a robot 100 may operate is illustrated. The environment may include one or more obstacles 301 that the robot must navigate around to avoid collision. In any of the embodiments described herein, the robot may be configured to clean the environment 300 while navigating around one or more obstacles.
[0066] like Figure 3As shown, the robot may be able to traverse an environment 300 in which multiple obstacles 301 are clustered together in close proximity or adjacent to each other. These multiple obstacles can include individual and distinct obstacles. Examples of obstacles may include shelves, tables, chairs, equipment, or any physical object that may obstruct the robot's path or trajectory. In some cases, multiple obstacles may include different parts, areas, sections, or components of the same object (e.g., different legs of the same chair or table). In any of the embodiments described herein, the robot may have a shape factor that allows it to navigate around multiple obstacles, make sharp turns with a minimum turning radius, and maintain a precise cleaning path despite the presence of obstacles along or near the robot's trajectory. The cleaning path can be dynamically adjusted by the robot to take into account the specific characteristics or layout of the cleaning environment while utilizing the robot's shape factor and ability to make sharp turns with a minimum turning radius.
[0067] sensor
[0068] The systems disclosed herein may include one or more sensors. These sensors may include one or more vision sensors and / or one or more navigation sensors. The one or more vision sensors may be configured to create a visualization of the robot's surrounding environment based on data acquired using the one or more sensors, or to otherwise simulate or model the surrounding environment. The one or more navigation sensors may be used to acquire data that the robot can use to traverse the surrounding environment while avoiding obstacles or traveling along a path. In some non-limiting embodiments, the one or more sensors may include binocular cameras, radar units, time-of-flight (TOF) cameras, lidar units, ultrasonic or infrared sensors, cliff sensors utilizing ultrasonic or infrared waves, inertial units (e.g., inertial measurement units or IMUs), accelerometers, velocity sensors, impact sensors, position sensors, GPS, gyroscopes, encoders, odometry, or any other type of sensor as described elsewhere herein.
[0069] In some implementations, one or more sensors may be configured to acquire operational data of the robot or machine. In some implementations, one or more sensors may be configured to acquire data about the environment in which the robot or machine operates, or about one or more objects in that environment. The one or more objects may include stationary or moving objects.
[0070] In some implementations, one or more sensors may include, for example, wheel sensors, encoders, or clocks or timing units for measuring the operating time of a machine or component.
[0071] In some implementations, one or more sensors may include vision sensors (e.g., computer vision sensors) and / or navigation sensors. Vision and / or navigation sensors may include LiDAR units, time-of-flight (TOF) cameras, binocular vision cameras, or ultrasonic sensors. In some cases, a processor operatively coupled to the vision and / or navigation sensors may be configured to re-prioritize robot routes, machine paths, or cleaning routines / logic. In some cases, one or more vision and / or one or more navigation sensors may be used to detect water or residual water / residue on the floor and to navigate the robot toward or around the residual water / residue.
[0072] In some implementations, one or more sensors may be configured to acquire operational data of the robot or machine. In some implementations, the operational data may include information about the frequency with which one or more processing or disinfection procedures occur or need to occur. In some cases, the operational data may include information about the duration of the processing or disinfection procedures that occur or need to occur.
[0073] In some implementations, one or more sensors may include one or more vision sensors as described above. In some cases, the vision sensor may be configured to detect debris on the floor. In some cases, the vision sensor may be configured to detect the amount or level of water remaining on the floor or surface.
[0074] In some implementations, one or more sensors may include impact sensors or accelerometers as described above. Impact sensors or accelerometers may be used to determine cleaning efficiency and whether the robot, machine, or robot or machine operator is following an optimal path or cleaning routine (i.e., whether the actual path or cleaning routine used corresponds to a trained or reference path or cleaning routine).
[0075] Mapping and Navigation
[0076] In some implementations, the method of operating a robot may include determining the robot’s pose based at least in part on one or more images of one or more repositionable or movable initial objects in the environment, and generating a map of the environment in which the robot is configured to move.
[0077] The robot may include a binocular camera module. Compared to using a single monocular camera, a binocular camera module can provide higher accuracy in pose determination. A binocular camera module may include multiple monocular cameras, such as two monocular cameras. The multiple monocular cameras (e.g., a first monocular camera and a second monocular camera) may be separated by a predetermined distance to support binocular or stereo vision and imaging. In some implementations, the binocular camera module may include an IMU (Integrated Device Unit). A binocular camera module with an IMU can perform both distance measurement (e.g., measuring the distance from the robot to an initialization object) and pose determination.
[0078] One or more initialization objects can be used to establish the robot's starting position for initialization. The starting position can be obtained through visual recognition of one or more initialization objects. Initialization objects may be interchangeably referred to as markers herein. Markers include a unique identifier (ID) and can be used to determine the relative pose (position and attitude angle) between the robot and the marker. One or more initialization objects may include AprilTag, Quick Response (QR) codes, patterns, checkerboard patterns, reference markers, ArUco, Charuco, ARtag, CALTAG, etc. Figure 6 An example of AprilTag is shown, and Figure 10(b) shows an example of a checkerboard pattern. The aforementioned AprilTag and checkerboard pattern can be used to determine the robot's pose relative to those markers. Initialization objects (or markers) can be provided in various forms, such as printed on a material (e.g., paper). In some implementations, the initialization object can be an image displayed on an electronic screen or device.
[0079] The generated map of the environment may include information about: (i) the area of the environment in which the robot is configured to move or traverse to perform one or more tasks or operations, (ii) one or more predetermined paths for the robot's movement, and (iii) the robot's pose. The map and one or more predetermined paths may be associated with an initialization object. In some implementations, the map of the environment can be generated by generating an occupied grid map based on sensor data acquired by the robot, and by expanding the occupied grid map through the environment as the robot moves. The occupied grid map may include one or more occupied grids that indicate the position or orientation of the boundaries of obstacles or the environment relative to the robot. The occupied grid map may include one or more occupied grids, unoccupied grids, and / or one or more unknown grids. The robot's movement may be adjusted based on one or more unoccupied grids. One or more occupied grids may be positioned based on the robot's pose relative to the boundaries of obstacles and / or the environment. In some cases, the robot's pose may be updated by matching sensor data acquired by the robot with the generated map or with one or more features or objects within the map.
[0080] Referring to Figure 7(a), a blank grid map can initially be generated. The robot's pose with respect to markers can then be projected onto the blank grid map, with the marker's position serving as the origin on the map. When the robot is operated, the navigation subsystem can be configured to combine data from various sensors (e.g., LiDAR, IMU, odometry, etc.) to calculate the robot's position. The robot's position data can be automatically projected onto the grid map. Based on the current position data and historical navigation data, the robot calculates the probability that each individual square grid (near the robot) is occupied by an object (obstacle). If the probability of occupation is high, those square grids are recorded as occupied grids (shaded squares as shown in Figure 7(b)). Conversely, if the probability of occupation is low, those square grids are recorded as passable grids (unshaded squares as shown in Figure 7(b)). In some implementations, as the robot moves closer to the edge of the grid map, the grid map can expand in the direction of the robot's movement (e.g., as shown in Figure 7(c)).
[0081] In some implementations, loopback detection is triggered when the robot approaches a position it has previously traversed while moving along at least a portion of one or more predetermined paths. Loopback detection allows the robot to adjust its trajectory and realign with one or more predetermined paths.
[0082] In some implementations, the navigation subsystem may be configured to perform corrections using SLAM loopback detection. For example, the robot may include a LIDAR that continuously collects data about its surroundings. LIDAR sensor data may be fused with other sensor data (e.g., visual / image data, odometry, IMU, etc.) to estimate the robot's position. When the robot moves to (or approaches) an area it has previously traversed, it may be configured to perform loopback detection and / or map correction, as illustrated in Figures 9(a) and 9(b). Map correction may include correcting the map and the robot's path / trajectory based on the difference between the robot's estimated position and its target position.
[0083] Once the map is built, the map data can be stored on the robot and / or a remote server. The map building described above, as well as elsewhere in this document, does not require merging existing maps because it is based on the automatic filling of a raster map, which begins with a blank raster with an origin and expands the raster map as the robot moves within the environment.
[0084] In some implementations, a robot can be operated to perform one or more tasks or operations by initiating or controlling its movement along or controlling at least a portion of one or more predetermined paths. The robot may be configured to move along different trajectories or traverse different areas within an environment based on the tasks or operations performed by the robot. In some implementations, one or more tasks or operations may include cleaning tasks.
[0085] In some implementations, path planning and robot training can be based on path decision learning. During the path planning phase, environmental information, the desired robot path, and an environmental map can be recorded or generated. If the robot is used for a cleaning task, the planned path and environmental map can be loaded when the robot's autonomous cleaning operation is activated. Referring to Figure 8(a), obstacle information can be collected from sensor data (e.g., LiDAR, TOF sensors, binocular cameras, etc.) and projected onto the environmental map based on the local and relative positions of different sensors on the robot. Points on the robot path (e.g., points close to the robot) can then be selected as target points, and the robot's current position can be used as a starting point to plan an operable path through the environment while avoiding obstacles. See, for example, Figure 8(b). The robot can be configured to move autonomously along the planned path to perform the cleaning task. If the robot senses obstacles near or along the planned path, it can be configured to autonomously adjust its path to enhance cleaning and avoid those obstacles, as shown, for example, in Figure 8(c).
[0086] Figures 10(a) and 10(b) illustrate examples of visual codes or markers that can be used for robot localization. Referring to Figure 10(b), an image of the marker can be captured by an imaging sensor on the robot (e.g., a binocular camera module described elsewhere herein). The marker can be detected using software (e.g., AprilTag machine vision software), and the position of each corner point in the image can be determined. The relative pose of each monocular camera (e.g., the left and right eye cameras) in the binocular camera module with respect to the marker can then be calculated based on the corner points (e.g., using OpenCVPNP). Given that the location of the binocular camera module on the robot is known, the relative pose of each monocular camera with respect to the marker can be transformed / converted into the robot's relative pose with respect to the marker. The robot's position can then be projected onto the grid map based on the marker positions already recorded to the grid map, as shown, for example, in Figure 10(c).
[0087] Markers (e.g., AprilTags) can be used to establish and determine the origin of the world coordinate system. When creating a map, once the robot detects a marker using its binocular camera module, it can use the marker's location to establish the origin of the world coordinate system. If the marker is placed on a building's wall, a coordinate system that roughly corresponds to the building's structure can be established. This can offer technical advantages in terms of reduced memory usage and improved graphics display (since the building's structure / layout is usually known).
[0088] Markers can be used to mark the area where the robot is located, providing initial and approximate localization. The surrounding environment can then be scanned using sensors mounted on the robot (e.g., LiDAR and vision sensors), and matched against the sensed environment recorded during map creation to provide precise localization. Therefore, markers serve as a reference for re-localizing the robot and provide a coarse initial location. The robot's trajectory and movements are recorded on the map but are not bound to or limited by the marker's position. For example, if the marker's position changes or moves to a different location, the robot can still operate autonomously within the target area and planned route. Furthermore, even if the robot and marker are separated by a considerable distance (e.g., greater than 1 m) at the start of the location initialization step, localization errors do not accumulate. This contrasts with other conventional robot navigation systems, which may require the robot to be close to (e.g., less than 0.1 m) the marker during the location initialization step (otherwise, errors could accumulate, leading to inaccurate routes).
[0089] Therefore, the robot's trajectory along one or more predetermined paths, or a portion thereof, can be independent of the position of one or more initialization objects within the environment. In other words, the initialization objects do not need to remain in a fixed position, and they can be repositioned or moved within the environment without affecting the robot's operation or trajectory. The initialization objects described herein (e.g., markers) can be used as references for the start and end points of a path. The generated map does not need to be associated with / related to the markers. For example, once a map is generated using markers as start and end points, the map will not change or "transform" even if the markers are moved to another location on the map. The above features are advantageous because in many cases, permanent adhesion of markers is not permitted (e.g., adhesion to walls in public places or buildings). To avoid adhesion to building walls, markers can, for example, be provided on movable boards (e.g., poster stands). As for the robot's cleaning task / operation, once a map is generated using markers as reference points, the movable board can be removed until the next cleaning cycle (which could be the next day or another different time within the same day). In the next cleaning cycle, the movable board with the markers does not need to be placed in the same location / spot as before. As long as the movable board with markers is placed anywhere along the planned cleaning path, the generated map will not be transformed or altered (even if the movable board with markers is no longer in the same location as when it was used for map generation).
[0090] Figures 11(a) and 11(b) illustrate the use of image signals as instructions for robot operation, behavior, and tasks according to some embodiments. The robot can be configured to collect images of its surrounding environment. Machine vision can be used to correct the robot's actions / behaviors, such as avoiding pedestrians, avoiding elevators, etc. For example, if the robot's vision detects a pedestrian, the navigation subsystem can calculate the relative position of the pedestrian and the robot and guide the robot to slow down, take a detour, or issue an audio signal to avoid the pedestrian. As another example, if the robot's vision detects an elevator, the navigation subsystem can calculate the relative position of the elevator and the robot, guide the robot to take a detour, and determine whether the operating environment poses a risk to the robot's operation.
[0091] In some implementations, initializing an object or marker may include a planar checkerboard pattern with alternating black and white squares. Each square may be uniform in size and arranged in a grid with multiple rows and columns. In some implementations, the corner points of the squares may serve as feature points for performing camera calibration. Machine vision techniques (e.g., AprilTag) can be used to distinguish the corner points relatively easily from the rest of the image data. Alternatively, other parts of the checkerboard may serve as features for calibration purposes (e.g., black squares or white squares, etc.). Various feature extraction techniques can be used to identify marker features, and the image coordinates of each feature can be determined. This process can be facilitated by knowledge of the geometry of the checkerboard. For example, in an implementation where the corner points of the checkerboard squares serve as feature points of the marker, the size of the squares defines the spacing between adjacent feature points. Therefore, the image coordinates of each corner point can be determined based on its row and column position within the checkerboard.
[0092] Once the image coordinates of the features in the marker are determined, the correspondence between the image coordinates of the features on the marker and their world coordinates can be identified. The world coordinate system can be defined relative to the marker, such that the world coordinates of each feature correspond to the position of the feature on the marker.
[0093] The binocular camera module disclosed herein may include a left-eye monocular camera and a right-eye monocular camera, the left-eye monocular camera being configured to capture a first image of a marker, and the right-eye monocular camera being configured to capture a second image of the marker. The correspondence between image coordinates of features (e.g., corner points) in the first image, image coordinates of corresponding features in the second image, and world coordinates of features in the marker can be identified and used to determine the robot's pose.
[0094] Low light conditions
[0095] In some implementations, the binocular camera module may further include a light sensor and an infrared light source. The light sensor may be configured to detect ambient illumination. The robot may be configured to activate the light sensor to detect ambient illumination when (i) the initial object is not initially detected or (ii) only one or a subset of the multiple monocular cameras detect the initial object. The robot may be configured to activate the infrared light source in low-light or dark environments, after which the binocular camera module can be used to detect the initial object or acquire one or more images of the initial object.
[0096] In some implementations, the robot can be configured to adjust the exposure time or gain of the binocular camera module when the light sensor detects overexposure. Conversely, the robot can be configured to activate an infrared light source and / or adjust its illuminance if the light sensor detects underexposure. The illuminance of the infrared light source can have an adjustable range between 0 and 100. In some implementations, the binocular camera module can be configured to initially attempt to detect an initial object using a low illuminance level. If the binocular camera module cannot detect the initial object, the illuminance can be incrementally increased until the binocular camera module is able to detect the initial object.
[0097] Posture confirmation
[0098] In some implementations, an infinitesimal plane-based pose estimation (IPPE) algorithm can be used to verify or confirm the accuracy of the robot's pose. In other implementations, a perspective-n-point (PNP) algorithm can be used to verify or confirm pose accuracy by solving for the perspective projection from 3D to 2D. In some implementations, the robot begins to move when the accuracy of its pose is within a predetermined threshold or range. If the accuracy of the robot's pose is outside the predetermined threshold or range, the robot may not operate or move, and the initialization steps may need to be repeated to achieve pose accuracy within the predetermined threshold or range.
[0099] IMU with TOF sensor
[0100] Time-of-flight (TOF) sensors can be used to detect obstacles at low altitudes for obstacle identification and avoidance. However, if a standalone TOF sensor is not precisely mounted at a predetermined location on the robot, its accuracy may be low.
[0101] To overcome the above shortcomings and improve detection accuracy, the robot disclosed herein may include an inertial measurement unit (IMU) and a time-of-flight (TOF) sensor. The IMU may include a 3-axis accelerometer and a 3-axis gyroscope. The IMU and the TOF sensor may be rigidly coupled to each other. The IMU and the TOF sensor may be calibrated relative to each other. A self-calibration process may be performed at regular intervals to compensate for loss errors or sensor drift. The IMU may be configured to detect the motion and vibration characteristics of the TOF sensor. Figure 5 The diagram illustrates the IMU coordinate system and the TOF coordinate system, which are fixed relative to each other due to the rigid coupling between the IMU and the TOF sensor.
[0102] IMU and TOF sensors can be used to assist robots in navigation or movement through their environment. For example, an IMU can be configured to detect the robot's acceleration, velocity, and / or attitude in real time in 3D space, or via a TOF sensor. Detection frequencies can be up to 500 Hz (1000 Hz for IMUs), allowing for dynamic detection of the robot body as well as real-time attitude detection by the IMU.
[0103] A Time-of-Flight (TOF) sensor can be configured to detect or identify one or more objects or obstacles. An Induction Unit (IMU) can be configured to compensate for one or more errors in one or more measurements obtained using the TOF sensor. Based on dynamic information from the IMU, TOF information can be compensated for in both the range and frequency domains. The range domain refers to the dynamic amplitude. The frequency domain refers to the noise caused by the TOF transmission, which is due to the Doppler effect caused by the vibration of the robot body.
[0104] In some cases, experimental results of the above-mentioned IMU and TOF sensor combination have shown (for sensors with a size of 4x4x4cm) 3 For objects of that size) more than 80% and (for objects with a size of 6x6x6 cm) 3 For objects of that size, the detection accuracy exceeds 90%. The above assumes that the tolerances of the angle between the TOF sensor and the ground, the roll and yaw angles of the TOF sensor, and the roll and yaw angles of the binocular camera are all controlled within ±1 degree.
[0105] Teaching mode, self-filling mode, and map segmentation
[0106] In some cases, users can define one or more boundaries of the area to be cleaned on a map via a human-computer interface. The cleaning robot can be configured to perform automatic path planning within the area defined by these boundaries and complete the cleaning task according to the planned path. In other cases, the robot may not be able to fully distinguish the area to be cleaned, for example, due to limited sensor detection capabilities and / or the presence of complex or irregularly shaped obstacle boundaries.
[0107] To overcome at least the aforementioned difficulties, the robot disclosed herein may include one or more sensors configured to detect one or more obstacles in or near the environment as the robot traverses or moves through the environment along one or more training trajectories. The robot may be configured to determine clean areas in the environment by (i) projecting one or more training trajectories and sensor data acquired using one or more sensors onto a map and (ii) extending one or more training trajectories based on the locations of one or more unoccupied grids in the map. The map may include (i) one or more obstacle regions comprising one or more obstacles detected by the robot and (ii) one or more traversable areas comprising one or more training trajectories. In some embodiments, the map may include occupied grids. The clean area may include one or more training trajectories and may not include one or more obstacles detected using one or more sensors. The one or more training trajectories may define or extend a portion of the potential clean area.
[0108] Sensor data can indicate the location or orientation of one or more obstacles. In some implementations, the robot can be configured to capture sensor data while the robot is manually advanced along one or more training tracks. The robot can be configured to register or record one or more coordinates for one or more boundaries on a map as the robot is manually advanced along one or more training tracks.
[0109] In some alternative implementations, the robot may be configured to capture sensor data while moving autonomously or remotely controlled along one or more training trajectories. In some implementations, one or more boundaries of one or more target areas may be defined by the robot's user or operator. Additionally or alternatively, one or more boundaries of one or more target areas may be defined by personnel associated with the target areas, such as operators, floor managers, etc. In some implementations, one or more boundaries of one or more target areas may be automatically defined by software programs / algorithms designed to optimize or maximize the floor area / space to be cleaned.
[0110] A robot can be configured to identify one or more target areas to be cleaned within a cleaning area based on the calibration of one or more boundaries of one or more target areas. As the robot traverses or moves along one or more boundaries, these boundaries can be recorded by the robot. One or more target areas can be identified by excluding areas in the environment in which one or more obstacles are located. In some implementations, one or more target areas can be identified by excluding additional areas in the environment that are close to or adjacent to areas in which one or more obstacles are located. These additional areas can extend from the areas in which one or more obstacles are located by a predefined distance (e.g., ranging from 1 cm to 50 cm). Excluding additional areas can help reduce the risk of collisions between the robot and one or more obstacles, especially when the obstacles are closely packed or have complex shapes / sizes.
[0111] Once the target area to be cleaned is identified, the robot can be configured to move or navigate along one or more cleaning paths through one or more target areas, or along one or more cleaning paths within one or more target areas, to clean one or more target areas or a portion thereof. The robot can be configured to clean one or more target areas while avoiding one or more obstacle areas (including one or more obstacles detected by the robot).
[0112] In some implementations, the target area may include two or more target areas defined by two or more distinct boundaries. In some implementations, two or more target areas may be merged into a combined target area for robot cleaning. Conversely, in other implementations, the robot may be configured to divide the target area into two or more sub-regions for cleaning. In some cases, the robot may be configured to extend one or more training trajectories based on sensor data acquired by the robot. One or more extended trajectories allow the robot to traverse paths extending beyond one or more training trajectories. In some implementations, the robot may be configured to adjust or extend one or more training trajectories based on processing of sensor data using artificial intelligence (AI) or machine learning (ML). Examples of machine learning algorithms may include support vector machines (SVM), Naive Bayes classification, random forests, neural networks, deep learning, or other supervised or unsupervised learning algorithms. One or more training datasets may be used to train the machine learning algorithm.
[0113] Figures 12(a)-12(e) and 13(a)-13(c) illustrate examples of robot teaching and boundary delineation for determining one or more target areas to be cleaned. In some implementations, teaching and boundary delineation can be performed by a user manually advancing the robot along one or more training tracks. In other implementations, teaching and boundary delineation can be performed semi-automatically by a user remotely controlling the robot to move along one or more training tracks. In some alternative implementations, teaching and boundary delineation can be performed automatically as the robot moves autonomously along one or more training tracks. After one or more target cleaning areas have been determined, the robot can be configured to move / traverse through the target areas in one or more patterns (e.g., a spiral pattern or a bow-shaped pattern) to ensure that the target areas are cleaned correctly.
[0114] During the teaching step, the robot moves along one or more training trajectories (e.g., manually propelled by the user through an environment to be cleaned). Onboard sensors (e.g., infrared sensors, ultrasonic sensors, collision sensors, odometry, cameras, LiDAR, TOF sensors, etc.) can sense the environment during teaching. Sensor data can be projected onto a 2D grid map, as shown in Figure 12(a), for example. The grid map can include obstacle areas (i.e., areas the robot cannot pass through) and passable areas (i.e., areas the robot can pass through). Values (e.g., 0 to 255) can be assigned to each grid cell in the grid map, thereby indicating the likelihood that the cell is occupied. For example, a grid value in an obstacle area could be set to 254, while a grid value in a passable area could be set to 0.
[0115] Figure 12(b) illustrates a taught trajectory for the robot to avoid an obstacle area. This taught trajectory may correspond to one or more training trajectories used to teach the robot. A position table list-1 can be generated. During the teaching step, the coordinates of each grid on the taught trajectory can be recorded in the position table list-1 in the order in which the robot moves / traverses. The position table list-1 can be bound to a grid map.
[0116] The taught trajectory can then be expanded based on the grid map and location list-1 to obtain the maximum coverage / cleaning area. For example, each path within the trajectory can be expanded by a predetermined number of grids to obtain the area to be cleaned, as shown in Figure 12(c). Referring to Figure 12(c), the expanded area can completely cover / enclose the taught trajectory without including obstacle areas. Therefore, the expanded area can correspond to the maximum coverage area that the robot can clean. Information associated with the maximum coverage area can be imported into the newly generated map-1, where the grid value within the maximum coverage area is 0.
[0117] The robot can then be moved (or manually propelled by the user) to define / delineate cleaning boundaries within the target area. The defined boundary points can be recorded. As shown in Figure 12(d), dashed line a can correspond to the boundary of the target area to be cleaned. The coordinates of points along boundary a can be recorded in another location table, List-2. The boundary and the area enclosed by that boundary can then be imported into a newly generated map, Map-2, where the raster value of the imported data in Map-2 is set to 1.
[0118] Then, to obtain the area to be cleaned, a new map, map-3, can be generated. Map-1 (the maximum coverage area, where the raster value is 0) and map-2 (the area surrounded by the boundary, where the raster value is 1) are imported into map-3. The area in map-3 (where the raster value is 1) corresponds to the target area to be cleaned (which is depicted by the shaded area in Figure 12(e)).
[0119] In some implementations, two or more cleaning boundaries can be defined / delineated for a target area. The robot can move (e.g., manually propelled by a user, remotely controlled by a user, or autonomously) to delineate two or more cleaning boundaries. For example, referring to Figure 13(a), a first boundary a and a second boundary b can be delineated by moving the robot to define those boundaries. The first boundary a can be the same as the boundary a previously described and shown in Figure 12(d). The coordinates of the first boundary a can be recorded in a location table list-A (which is similar to or the same as list-2 described with reference to Figure 12(d)). The second boundary b can be an additional new boundary, and its coordinates can be recorded in a location table list-B. The first and second boundaries (a and b), along with the area enclosed by the two boundaries, can then be imported into a newly generated map, map-A. The raster values of the data input into map-A can be set to 1. A new map, map-4, can then be generated. The previously obtained Map-1 (maximum coverage area, with a raster value of 0) and Map-A (area surrounded by boundaries, with a raster value of 1) can be imported into Map-4. Therefore, the area in Map-4 (where the raster value is set to 1) can correspond to the final area to be cleaned, as shown in the shaded area in Figure 13(b).
[0120] In some implementations, the target area can be divided into two or more sub-areas for cleaning. This can improve cleaning efficiency, especially when the target area has a complex shape or contour. A target area with a complex shape or contour can be divided into two or more sub-areas with simpler shapes or contours. In some implementations, the order in which the robot cleans those sub-areas can be defined, for example, by optimizing the cleaning path from one sub-area to the next and / or based on the priority of each sub-area to be cleaned.
[0121] Referring to Figure 13(c), the target area to be cleaned has a relatively complex shape or contour. Therefore, the target area can be divided into multiple sub-regions (e.g., sub-regions 1, 2, and 3), which have less complex shapes or contours. A segmentation algorithm can be used to automatically divide the target area to be cleaned into two or more sub-regions. In some implementations, the segmentation algorithm can be a ox-plowing cell decomposition algorithm. The sub-regions can have a cleaning order. For example, in Figure 13(c), the robot can be configured to clean sub-region 1 first, then sub-region 2, and finally sub-region 3. As previously mentioned, the cleaning order can be optimized, for example, based on the cleaning path from one sub-region to the next, and / or based on the priority of each sub-region to be cleaned.
[0122] Once the target area (or two or more sub-areas) to be cleaned has been determined, a cleaning path within the target area can be automatically generated for the robot. This cleaning path can have any number of configurations. For example, Figure 14(a) shows a spiral cleaning path, and Figure 14(b) shows a bow-shaped cleaning path. The cleaning path can be a single configuration or can have two or more configurations. In some embodiments, the cleaning path can be a combination of spiral and bow-shaped cleaning paths. The type of path configuration can be determined based on the type of area to be cleaned and / or the type of cleaning robot. For example, some areas may be cleaned more efficiently using a spiral path, while other areas may be cleaned more efficiently using a bow-shaped path. Similarly, some cleaning robots can be customized to travel in a spiral pattern, while others are better suited to travel in a bow-shaped pattern.
[0123] Mapping based on user input (operations on the robot handle)
[0124] In some implementations, the robot can operate autonomously, at least partially based on a map. Mapping methods can be used to construct the map. The map can be constructed, at least partially based on user input. In some implementations, user input may include pushing the robot with a handle. In some implementations, the mapping method may include using simultaneous localization and mapping (SLAM) or visual SLAM (VSLAM) methods. In some implementations, the mapping method may include using sensor data from one or more sensors. In some implementations, one or more sensors may be mounted on the robot as described elsewhere herein. In some implementations, one or more sensors may be fused. In some implementations, the mapping method may include calculating the robot's movement trajectory and / or position information.
[0125] In some embodiments, the mapping method may include opening a robot handle. In some embodiments, the mapping method may include scanning a position calibration code using a vision sensor and / or a navigation sensor. In some embodiments, the calibration code may include a QR code or a barcode. In some embodiments, the mapping method may include pushing the handle. In some embodiments, pushing the handle may initiate the calculation of the robot's trajectory and / or position information. In some embodiments, the calculation may be at least partially based on data collected by one or more vision sensors and / or one or more navigation sensors configured or implemented for SLAM or VSLAM applications (e.g., VSLAM data). In some embodiments, the method may include releasing the handle. In some embodiments, the method may include a secondary scan of the position calibration code. In some embodiments, the secondary scan of the position calibration code saves the map to a digital storage device.
[0126] Can scan objects and share maps
[0127] In some implementations, the method may include providing (i) multiple robots and (ii) one or more scannable objects associated with one or more maps of the environment; and (b) deploying multiple robots in the environment to perform one or more tasks. Maps of the environment can be generated using any of the systems and methods described elsewhere herein. Scannable objects within the environment may be repositionable or movable without affecting or requiring updates to the already generated map of the environment.
[0128] In some implementations, the method may include providing one or more maps to multiple robots as they register or image one or more scannable objects. The one or more maps may include multiple different maps. These multiple different maps may be provided to different robots among the multiple robots. The multiple different maps may include different trajectories for different robots. The multiple different maps may correspond to different regions or sub-regions of the environment. The multiple robots may be configured to share one or more maps of the environment.
[0129] Scannable objects may include, or correspond to, one or more repositionable or movable initial objects (or markers) as described elsewhere herein. Scannable objects may be associated with or affixed to one or more physical objects or surfaces in the environment to be cleaned or traversed. In some cases, scannable objects may include barcodes, quick-response (QR) codes, AprilTags, unique identifiers, or serial numbers.
[0130] Scannable objects can be scanned by the robot. In some embodiments, scannable objects can be used to facilitate cleaning operations. Based on the scan, the robot can initiate a cleaning procedure or move along a predetermined route. Multiple robots can be configured to navigate through the environment using one or more maps to perform one or more tasks. Tasks may include, for example, one or more cleaning tasks as described elsewhere herein. In some embodiments, multiple robots can be configured to perform one or more tasks collaboratively. In other embodiments, multiple robots can be configured to perform one or more tasks independently or separately.
[0131] motion path
[0132] In some cases, the operation of one or more robots or machines can be adjusted based on operational data acquired for those robots or machines. In some cases, one or more motion paths or cleaning routines assigned to one or more robots or machines can be adjusted based on operational data. In some cases, the operation of one or more robots or machines can be adjusted based on detected changes or deviations in the expected behavior or performance of the robots or machines.
[0133] Operational data
[0134] Operational data of one or more robots or machines in a formation can be collected or acquired using one or more sensors of one or more robots or machines. In some cases, the one or more sensors may include one or more vision sensors and / or one or more navigation sensors as described elsewhere herein. In some cases, the one or more sensors may include position sensors, GPS units, encoders, odometry, accelerometers, inertial measurement units (IMUs), gyroscopes, or velocity sensors. In some cases, the one or more sensors may include, for example, temperature sensors, pressure sensors, humidity sensors, or any other type of environmental sensor for sensing the conditions of the environment in which one or more robots or machines operate. In some cases, the one or more sensors may include optical sensors or vision sensors as described elsewhere herein. Optical sensors or vision sensors may include, for example, imaging sensors or cameras. In some cases, the one or more sensors may include lidar sensors, vision sensors, time-of-flight sensors (e.g., 3D time-of-flight sensors), binocular vision sensors, stereo vision sensors, or ultrasonic sensors.
[0135] In some implementations, operational data can be received from a single robot and / or machine or from multiple robots and / or machines. In some cases, operational data can be received continuously or sequentially from multiple robots and / or machines. Alternatively, operational data can be received simultaneously or concurrently from multiple robots and / or machines. As described above, robots and / or machines can include autonomous, semi-autonomous, and / or non-autonomous robots or machines, or any combination thereof. Any combination of robots and / or machines, including autonomous, semi-autonomous, and non-autonomous machines or robots, can be used together to implement the systems and methods of this disclosure.
[0136] In some cases, operational data may include information about the geographical location of one or more robots or machines. In some cases, operational data may include information about the position, orientation, or orientation of one or more robots or machines. In some cases, operational data may include information about the spatial distribution of one or more robots or machines across a region or environment.
[0137] In some cases, operational data may include information about the battery level or state of charge of one or more robots or machines and / or one or more components of one or more robots or machines. The battery level or state of charge can indicate how long the robot or machine has been operating and how long it can continue to operate before losing power.
[0138] In some cases, operational data may include fault information or alarm information from one or more robots or machines and / or one or more components of one or more robots or machines. In some cases, fault information may be automatically generated by one or more robots or machines. In some cases, fault information may be manually reported or generated by the user or operator of one or more robots or machines.
[0139] In some cases, operational data may include information about the work logs, cleaning paths, or cleaning performance of one or more robots or machines. In other cases, operational data may include information about the total usage or operating time of one or more components.
[0140] In any of the embodiments described herein, operational data may be periodically generated or compiled by one or more robots or machines for transmission or upload to a central server. In any of the embodiments described herein, operational data may be transmitted from one or more robots or machines to the central server at one or more predetermined or periodic time intervals. In any of the embodiments described herein, operational data may be transmitted from one or more robots or machines to the central server at one or more time intervals that vary based on the historical usage or total operating time of one or more robots or machines.
[0141] In some implementations, a float sensor can be used to acquire operational data. In some cases, the float sensor can indicate that the wastewater tank is full and remind the user that the tank needs to be replaced. In other cases, the float sensor can indicate that the solution tank is empty and remind the user that the tank needs to be refilled.
[0142] In some implementations, operational data may include information about the operating time of the robot or machine. This information can be used to determine when to activate a treatment or disinfection subsystem as described elsewhere herein. In some cases, this information can be used to remind or notify a user when they should initiate a treatment or disinfection procedure (e.g., disinfecting or cleaning components or subsystems of the robot or machine, or sterilizing harmful substances or byproducts that are generated or accumulate over time during one or more cleaning operations performed by the robot or machine).
[0143] In some implementations, operational data may include information about the frequency with which a treatment or disinfection procedure occurs or needs to occur. In some cases, operational data may include information about the duration for which a treatment or disinfection procedure occurs or needs to occur. In some cases, frequency and / or duration information may indicate the extent or frequency of cleaning performed over time.
[0144] In some implementations, cleaning data or information can be used to identify water spots or other blemishes that may require additional cleaning, and to modify the operation of the machine or machine components to optimize cleaning performance.
[0145] In some cases, cleaning data or information may include information about environmental factors associated with the operating environment of the robot or machine. Environmental factors may include, for example, temperature, humidity, or the operating area. In some cases, such as in colder climates, the robot or machine may automatically adjust its operation or movement to operate more slowly, increase vacuum power, and / or increase water flow.
[0146] Robot Formation
[0147] Figure 15 The illustration schematically depicts a central server 2400 and multiple robots and / or machines 2401-1, 2401-2, and 2401-3 communicating with the central server 2400. In some cases, the central server 2400 may be configured to receive operational data from the multiple robots and / or machines 2401-1, 2401-2, and 2401-3. The multiple robots and / or machines 2401-1, 2401-2, and 2401-3 may communicate with each other. Alternatively, the multiple robots and / or machines 2401-1, 2401-2, and 2401-3 may not communicate with each other or may not need to communicate with each other.
[0148] Multiple robots and / or machines 2401-1, 2401-2, and 2401-3 may each include one or more sensors. The one or more sensors may be used to capture operational data associated with the operation or status of the multiple robots and / or machines 2401-1, 2401-2, and 2401-3.
[0149] Central server 2400 may be configured to process operational data. In some embodiments, central server 2400 may be configured to compare operational data with one or more reference values or thresholds associated with the operation or state of one or more robots or machines, or one or more components of one or more robots or machines. In some cases, central server 2400 may be configured to receive one or more reference values or thresholds from memory module 2410. Central server 2400 may be configured to detect one or more changes or deviations in the operation or expected behavior of one or more robots or machines, or one or more components of one or more robots or machines, based at least in part on the comparison of operational data with one or more reference values or thresholds. Central server 2400 may be configured to generate one or more reports or update the operational logic of one or more robots or machines based on the detected changes or deviations or based on one or more metrics calculated using operational data received from one or more robots or machines.
[0150] In some implementations, the central server 2400 may be configured to generate one or more reports 2415 and transmit them to one or more entities 2420. The one or more entities 2420 may include operators or administrators of one or more robots or machines. The one or more reports 2415 may include one or more metrics associated with the operation of one or more robots or machines.
[0151] Platform / i-SYNERGY
[0152] In some cases, the systems and methods of this disclosure can be implemented using a platform for collecting and processing operational data from one or more robots or machines. Operational data from each robot or machine in the formation can be transmitted to a central server or platform configured to collect and process the operational data. The operational data (and / or any other information that can be derived from the processing of the operational data) can be transmitted to one or more end-user interfaces or portals to facilitate monitoring and control of the robot or machine's operation. In some cases, the central server or platform may include an IoT platform that collaboratively manages multiple cleaning robots or machines in the formation based on operational data acquired from one or more robots or machines in the formation.
[0153] In some cases, the platform may include a cloud server that communicates with one or more robots or machines via a wireless communication network. The cloud server may be operatively coupled to multiple robots or machines configured to operate in an environment. In some cases, the environment may be an indoor environment that supports wireless communication.
[0154] In some cases, cleaning robots or machines may communicate with cloud servers via a network. The network may allow data transfer between (i) the service provider or cloud server and (ii) the cleaning robot or machine. The service provider or cloud server may be configured to process data received from the robot or machine. The service provider or cloud server may be configured to monitor or control the operation of the robot or machine based on operational data received from it. In some cases, the service provider or cloud server may be configured to provide one or more reports, alerts, and / or notifications to the user or operator of the robot or machine based on operational data received from it. One or more notifications may, for example, indicate that a change or deviation in the expected performance or behavior of the robot or machine has been detected, or that a change in the planned motion logic of the robot or machine has been identified. In some cases, the service provider or cloud server may interface with mobile or web applications to facilitate the tracking of cleaning, robot or machine operations, and / or the processing of platooning information and / or operational data.
[0155] Computer System
[0156] In one aspect, this disclosure provides a computer system that is programmed or otherwise configured to implement the methods of this disclosure, such as any subject-specific method for robotic cleaning. References Figure 16 The computer system 2901 can be programmed or otherwise configured to implement methods for cleaning environments. For example, the computer system 2901 can be configured to control a robot to perform cleaning procedures or operations based on user input, prior training or teaching, or by the robot based on sensor readings and / or decisions made using artificial intelligence or machine learning. The computer system 2901 can be a user's electronic device or a computer system located remotely relative to that electronic device. The electronic device can be a mobile electronic device.
[0157] Computer system 2901 may include a central processing unit (CPU, also referred to herein as a “processor” and “computer processor”) 2905, which may be a single-core or multi-core processor, or multiple processors for parallel processing. Computer system 2901 also includes memory or memory location 2910 (e.g., random access memory, read-only memory, flash memory), electronic storage unit 2915 (e.g., hard disk), communication interface 2920 for communicating with one or more other systems (e.g., network adapter), and peripheral devices 2925, such as cache, other memory, data storage, and / or electronic display adapters. Memory 2910, storage unit 2915, interface 2920, and peripheral devices 2925 communicate with CPU 2905 via a communication bus (solid line) such as a motherboard. Storage unit 2915 may be a data storage unit (or data repository) for storing data. Computer system 2901 may be operatively coupled to computer network (“network”) 2930 by means of communication interface 2920. Network 2930 may be the Internet, the Internet and / or an extranet, or an intranet and / or an extranet communicating with the Internet. In some cases, network 2930 is a telecommunications and / or data network. Network 2930 may include one or more computer servers that can implement distributed computing, such as cloud computing. In some cases, with the aid of computer system 2901, network 2930 can implement a peer-to-peer network, which allows devices coupled to computer system 2901 to act as clients or servers.
[0158] CPU 2905 can execute a series of machine-readable instructions, which can be embodied as a program or software. The instructions can be stored in a memory location such as memory 2910. The instructions can be directed to CPU 2905, which can then be programmed or otherwise configured to implement the methods of this disclosure. Examples of operations performed by CPU 2905 can include fetching, decoding, executing, and writing back.
[0159] CPU 2905 may be part of a circuit such as an integrated circuit. One or more other components of system 2901 may be included in the circuit. In some cases, the circuit is an application-specific integrated circuit (ASIC).
[0160] Storage unit 2915 may store files, such as drivers, libraries, and saved programs. Storage unit 2915 may store user data, such as user preferences and user programs. In some cases, computer system 2901 may include one or more additional data storage units located outside computer system 2901 (e.g., on a remote server communicating with computer system 2901 via an intranet or the Internet).
[0161] Computer system 2901 can communicate with one or more remote computer systems via network 2930. For example, computer system 2901 can communicate with a remote computer system belonging to a user (e.g., an operator or administrator of a robot or machine). Examples of remote computer systems include personal computers (e.g., portable PCs), tablets or slab PCs (e.g., Apple® iPad, Samsung® Galaxy Tab), telephones, smartphones (e.g., Apple® iPhone, Android-enabled devices, Blackberry®), or personal digital assistants. Users can access computer system 2901 via network 2930.
[0162] The methods described herein can be implemented using machine-executable code (e.g., a computer processor) stored in an electronic storage location (e.g., memory 2910 or electronic storage unit 2915) of computer system 2901. The machine-executable or machine-readable code can be provided in software form. During use, the code can be executed by processor 2905. In some cases, the code can be retrieved from storage unit 2915 and stored in memory 2910 for access by processor 2905 at any time. In some cases, electronic storage unit 2915 can be excluded, and machine-executable instructions are stored in memory 2910.
[0163] The code can be pre-compiled and configured for use with machines having processors suitable for executing the code, or it can be compiled at runtime. The code can be supplied in a programming language, which can be selected to enable the code to be executed in a pre-compiled or on-site compiled manner.
[0164] Various aspects of the systems and methods provided herein, such as computer system 2901, can be embodied in programming. These aspects of the technology can be considered "products" or "artifacts," typically in the form of machine (or processor) executable code and / or associated data carried or embodied in some type of machine-readable medium. Machine-executable code can be stored on electronic storage units, such as memory (e.g., read-only memory, random access memory, flash memory) or hard disks. "Storage" type media can include any or all tangible storage of computers, processors, etc., or their associated modules, such as various semiconductor memories, tape drives, disk drives, etc., which can provide non-transitory storage for software programming at any time. All or part of the software can be communicated from time to time via the Internet or various other telecommunications networks. For example, such communication can enable the loading of software from one computer or processor to another, such as from a management server or host computer to a computer platform for an application server. Therefore, another type of medium that can carry software elements includes light waves, radio waves, and electromagnetic waves, such as those used through physical interfaces between local devices, wired and optical ground networks, and various air links. Physical elements carrying such waves, such as wired or wireless links, optical links, etc., can also be considered as media carrying software. As used herein, unless limited to non-transitory, tangible "storage" media, terms such as "computer or machine-readable medium" refer to any medium involved in providing instructions to a processor for execution.
[0165] Therefore, machine-readable media, such as computer-executable code, can take many forms, including but not limited to tangible storage media, carrier media, or physical transmission media. Non-volatile storage media, including, for example, optical discs or disks, or any storage device in any computer, can be used to implement databases as shown in the accompanying drawings. Volatile storage media include dynamic memory, such as the main memory of such a computer platform. Tangible transmission media include coaxial cables; copper wires and optical fibers, including lines that constitute a bus within a computer system. Carrier transmission media can take the form of electrical or electromagnetic signals, or the form of sound waves or light waves, such as those generated during radio frequency (RF) and infrared (IR) data communications. Therefore, common forms of computer-readable media include, for example, floppy disks, flexible disks, hard disks, magnetic tapes, any other magnetic media, CD-ROMs, DVDs or DVD-ROMs, any other optical media, punched cardstock, any other physical storage media with a perforated pattern, RAM, ROM, PROM and EPROM, FLASH-EPROM, any other memory chips or cartridges, carriers for transmitting data or instructions, cables or links for transmitting such carriers, or any other medium from which a computer can read programming code and / or data. Many of these forms of computer-readable media may involve delivering one or more sequences of one or more instructions to a processor for execution.
[0166] Computer system 2901 may include or communicate with an electronic display 2935, which includes a user interface (UI) 2940. The UI 2940 may provide a portal, for example, for a user or operator to monitor or control the operation of one or more robots or machines. The portal may be provided via an application programming interface (API). Users or entities may also interact with various elements within the portal via the UI. Examples of UIs include, but are not limited to, graphical user interfaces (GUIs) and web-based user interfaces.
[0167] The methods and systems disclosed herein can be implemented using one or more algorithms. The algorithms can be implemented using software executed by the central processing unit 2905. For example, the algorithms can be configured to control a robot to perform cleaning procedures or operations based on user input, prior training or teaching, or by decisions made by the robot based on sensor readings and / or using artificial intelligence or machine learning.
[0168] Although preferred embodiments of the invention have been shown and described herein, it will be apparent to those skilled in the art that such embodiments are provided by way of example only. The invention is not intended to be limited to the specific examples provided in the specification. Although the invention has been described with reference to the foregoing description, the description and illustration of embodiments herein are not intended to be construed as limiting. Many variations, modifications, and substitutions will now occur to those skilled in the art without departing from the invention. Furthermore, it should be understood that all aspects of the invention are not limited to the specific descriptions, configurations, or relative proportions set forth herein, and depend on a variety of conditions and variables. It should be understood that various alternatives to the embodiments of the invention described herein may be employed in carrying out the invention. Therefore, it is contemplated that the invention should also cover any such alternatives, modifications, variations, or equivalents. The appended claims are intended to define the scope of the invention and thereby cover the methods and structures within the scope of these claims and their equivalents.
Claims
1. A method for robot navigation, teaching, and mapping, comprising: (a) The robot’s pose is determined at least in part based on one or more images of one or more repositionable or movable initial objects in the environment; (b) Generate a map of the environment in which the robot is configured to move, wherein the map includes information about: (i) regions of the environment in which the robot is configured to move or traverse the regions of the environment to perform one or more tasks or operations; (ii) one or more training trajectories for the robot's movement; and (iii) the robot's pose, wherein the map and the one or more training trajectories are associated with the repositionable or movable initialization object. as well as (c) To cause the robot to begin moving along at least a portion of the one or more training trajectories to perform the one or more tasks or operations. The robot is manually propelled by the user through the environment to be cleaned to move along one or more training tracks and to define / define cleaning boundaries within the environment to be cleaned.
2. The method of claim 1, wherein one or more of the initialization objects can be placed anywhere on the one or more training trajectories in the already generated map.
3. The method according to claim 1, further comprising: The robot's pose is updated by matching sensor data acquired by the robot with the map generated in (b) or one or more features or objects within the map.
4. The method of claim 1, wherein the one or more repositionable or movable initialization objects include Quick Response (QR) codes, April Tags, patterns, checkerboards, or reference markers.
5. The method of claim 1, wherein in (b), the map of the environment is generated by: a. Generate an occupancy grid map based on sensor data acquired by the robot; and b. As the robot moves through the environment, the occupied grid map expands, wherein the occupied grid map includes one or more occupied grids that indicate the position or orientation of obstacles or boundaries of the environment relative to the robot.
6. The method of claim 5, wherein the occupied grid map comprises one or more occupied grids, unoccupied grids, and / or one or more unknown grids.
7. The method of claim 5, wherein the movement of the robot is adjusted based on the one or more unoccupied grids.
8. The method of claim 5, wherein the one or more occupancy grids are positioned based on the pose of the robot relative to the boundary of the obstacle or the environment.
9. The method according to claim 1, further comprising: Following (c), a loopback detection is triggered when the robot approaches a position it has previously passed, wherein the loopback detection causes the robot to adjust its trajectory and realign with the one or more training trajectories.
10. The method of claim 1, wherein the robot includes a binocular camera module.
11. The method of claim 10, wherein the binocular camera module comprises a plurality of monocular cameras, an infrared light source, and a light sensor.
12. The method of claim 11, wherein the plurality of monocular cameras are separated by a predetermined distance to support binocular or stereo vision and imaging.
13. The method of claim 10, wherein the binocular camera module is configured to detect and / or identify the initial object.
14. The method of claim 11, wherein the light sensor is configured to detect ambient illuminance.
15. The method of claim 11, wherein the robot is configured to activate the infrared light source in a low-light or dark environment.
16. The method of claim 11, wherein (a) further comprises using the binocular camera module to detect the initialized object or acquire one or more images of the initialized object.
17. The method of claim 16, wherein the robot is configured to activate the light sensor to detect ambient illumination when (i) the initial object is not initially detected or (ii) only one or a subset of the plurality of monocular cameras detect the initial object.
18. The method of claim 17, wherein the robot is configured to adjust the exposure time or gain of the binocular camera module when the light sensor detects overexposure.
19. The method of claim 17, wherein the robot is configured to activate the infrared light source and / or adjust the illuminance of the infrared light source if the light sensor detects insufficient exposure.
20. The method according to claim 1, further comprising: Following (a), a pose estimation algorithm based on infinitesimal planes is used to verify or confirm the accuracy of the robot's pose.
21. The method of claim 1, wherein in (c), the robot begins the movement when the accuracy of the robot pose is within a predetermined threshold or range.
22. The method of claim 1, wherein the robot comprises an inertial measurement unit (IMU) and a time-of-flight (TOF) sensor.
23. The method of claim 22, wherein the IMU and the TOF sensor are rigidly coupled to each other.
24. The method of claim 22, wherein the IMU and the TOF sensor are calibrated relative to each other.
25. The method of claim 22, further comprising using the IMU and the TOF sensor to assist the robot in navigating or moving through the environment.
26. The method of claim 25, further comprising using the IMU to detect the acceleration, velocity and / or attitude of the robot or the TOF sensor in real time.
27. The method of claim 22, further comprising using the TOF sensor to detect or identify one or more objects or obstacles.
28. The method of claim 27, further comprising using the IMU to compensate for one or more errors in one or more measurements acquired using the TOF sensor.
29. The method of claim 22, further comprising using the IMU and the TOF sensor to perform the one or more tasks or operations.
30. The method of claim 29, wherein the one or more tasks or operations include cleaning tasks.
31. The method of claim 1, wherein the robot is configured to move along different trajectories or traverse different areas within the environment based on a task or operation performed by the robot.
32. A method comprising: (a) Providing a robot including one or more sensors configured to detect one or more obstacles in or near an environment as the robot traverses or moves along one or more training tracks, wherein the robot is configured to: i. Determining a clean area in the environment by (i) projecting the one or more training trajectories and sensor data acquired using the one or more sensors onto a map and (ii) extending the one or more training trajectories based on the locations of one or more unoccupied grids in the map, wherein the clean area includes the one or more training trajectories and does not include the one or more obstacles detected using the one or more sensors; ii. Identifying the one or more target areas to be cleaned within the cleaning area by calibrating one or more boundaries for one or more target areas, wherein the robot records the one or more boundaries as it traverses or moves along them; as well as iii. To move or navigate along one or more cleaning paths through the one or more target areas, or to move or navigate along the one or more cleaning paths within the one or more target areas, in order to clean the one or more target areas or a portion thereof. The robot is manually propelled by the user to move along one or more training trajectories and to define / delineate one or more boundaries in one or more target areas.
33. The method of claim 32, wherein the one or more training trajectories define or span a portion of a potential clean area.
34. The method of claim 32, wherein the sensor data indicates the position or orientation of the one or more obstacles.
35. The method of claim 32, wherein the robot is configured to capture the sensor data while the robot is manually propelled along the one or more training trajectories.
36. The method of claim 32, wherein the one or more boundaries of the one or more target areas are defined by a user or operator of the robot.
37. The method of claim 32, wherein the robot is configured to register or record one or more coordinates for the one or more boundaries on the map as the robot is manually advanced along the one or more training trajectories.
38. The method of claim 32, wherein the one or more target areas are identified by excluding areas in the environment in which the one or more obstacles are located.
39. The method of claim 38, wherein the one or more target areas are identified by excluding additional areas in the environment, the additional areas being close to or adjacent to the areas in which the one or more obstacles are located.
40. The method of claim 32, wherein the map comprises (i) one or more obstacle regions, including the one or more obstacles detected by the robot, and (ii) one or more passable regions, including the one or more training trajectories.
41. The method of claim 32, wherein the map comprises an occupying grid.
42. The method of claim 32, wherein the robot is configured to clean the one or more target areas while avoiding one or more obstacle areas, the one or more obstacle areas including the one or more obstacles detected by the robot.
43. The method of claim 32, wherein the one or more target regions comprise two or more target regions defined by two or more different boundaries.
44. The method of claim 43, wherein the two or more target areas are combined into a combined target area for cleaning by the robot.
45. The method of claim 32, wherein the robot is configured to divide the target area into two or more sub-areas for cleaning.
46. The method of claim 32, wherein the robot is configured to extend the one or more training trajectories based on the sensor data acquired by the robot.
47. The method of claim 46, wherein the one or more extended trajectories allow the robot to traverse paths extending beyond the one or more training trajectories.
48. The method of claim 32, wherein the robot is configured to adjust or extend the one or more training trajectories based on processing of the sensor data using artificial intelligence (AI) or machine learning (ML).
49. A method comprising: (a) Provide (i) a plurality of robots and (ii) one or more scannable objects associated with one or more maps of the environment, wherein the one or more scannable objects serve as the starting point of a navigation path, and the robots are configured to move or traverse the navigation path; as well as (b) Deploying the plurality of robots in the environment to perform one or more tasks, the deployment of the plurality of robots including deploying a first robot of the plurality of robots according to a first path, wherein the plurality of robots are configured to navigate through the environment using the one or more maps to perform the one or more tasks; Create a first path map of the first path navigating the first robot; Upload the first path map to the central server; The first path map is transmitted to the second robot among the plurality of robots; as well as The second robot is deployed in the environment and configured to navigate using the first path map.
50. The method of claim 49, further comprising: When the multiple robots register or image the one or more scannable objects, the multiple robots are provided with the one or more maps.
51. The method of claim 50, wherein the one or more maps comprise a plurality of different maps.
52. The method of claim 51, wherein the plurality of different maps are provided to different robots among the plurality of robots.
53. The method of claim 51, wherein the plurality of different maps include different trajectories for different robots.
54. The method of claim 51, wherein the plurality of different maps correspond to different regions or sub-regions of the environment.
55. The method of claim 51, wherein the plurality of robots are configured to perform the one or more tasks together.
56. The method of claim 51, wherein the plurality of robots are configured to perform the one or more tasks independently.
57. The method of claim 49, wherein the plurality of robots are configured to share one or more maps of the environment.