System and method for map transfer between mobile robots

Automated map transformation methods synchronize mobile robot data in a common reference frame, addressing sensing and coordinate system disparities to enhance cooperation and efficiency among robots.

JP2026508439APending Publication Date: 2026-03-10OMRON CORP
View PDF 0 Cites 0 Cited by

Patent Information

Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
Filing Date
2024-03-29
Publication Date
2026-03-10

AI Technical Summary

Technical Problem

Differences in sensing capabilities and map coordinate systems among mobile robots hinder effective cooperation and data sharing, leading to inefficiencies and potential collisions.

Method used

Automated methods for determining map transformations between mobile robots, allowing position and trajectory information to be synchronized in a common reference frame, using a follower robot to track a target robot through goal locations and transform collected data into a common coordinate system.

Benefits of technology

Enables precise and efficient operation of multiple mobile robots in a shared environment, facilitating coordinated movement and data sharing without manual intervention.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 2026508439000001_ABST
    Figure 2026508439000001_ABST
Patent Text Reader

Abstract

Systems and methods for determining map transformations between mobile robots are disclosed. In some examples, a follower robot follows a target robot through a series of goal locations. While the follower robot follows the target robot through the multiple goal locations, position and trajectory information of the follower robot can be recorded. Once completed, the collected position and trajectory data can be analyzed and transformed into a common reference coordinate system, thereby relating the target robot's map to the follower robot's map.
Need to check novelty before this filing date? Find Prior Art

Description

[Technical Field]

[0001] Some embodiments of the present disclosure relate to systems and methods for determining map transformations between robots, such as mobile robots. [Background technology]

[0002] Mobile robots can be used to perform a wide variety of tasks within a work environment. For example, in manufacturing facilities and warehouses, mobile robots can be used to transport materials throughout the work environment. In some cases, multiple mobile robots are deployed within a work environment, and their movements must be coordinated to avoid collisions and maximize efficiency. Summary of the Invention

[0003] Mobile robots, whether autonomous or guided, often use a map of the working environment for navigation. For some mobile robots, this map is determined or generated using the robot's various sensing capabilities (e.g., image sensors, LiDAR sensors, etc.). This sensing capability may vary depending on the robot's make and model. In some cases, even within the same make and model, differences may occur due to physical differences between individual units. Due to differences in sensing capabilities between different mobile robots, as well as other robot-related factors, the maps of the working environment determined by different mobile robots may differ from each other.

[0004] Different mobile robots operating in the same working environment need to cooperate effectively with one another, for example, to share working areas and resources, exchange interoperability requirements, avoid collisions, coordinate movements, maximize efficiency, etc. The aforementioned differences in the maps of the working environment determined by different mobile robots can hinder or limit the ability of mobile robots operating in a common working environment to cooperate effectively. It would be highly advantageous to be able to provide or determine a common reference map from which the positions and movements of all or many mobile robots can be determined, along with other objects and obstacles in the working environment.

[0005] This application provides methods and systems for determining map transformations between different mobile robots. The systems and methods may be automatic or unsupervised; that is, in some cases, the systems and methods may be performed in an automated manner by the mobile robots themselves with little or no human intervention. The methods and systems for determining map transformations between different mobile robots may include calculating or determining transformation parameters for synchronizing map data for the different mobile robots or for accurately representing position and trajectory information of the different mobile robots in a shared reference frame.

[0006] In some examples, systems and methods for determining map transformations between different mobile robots may utilize a follower robot autonomously following a target robot through a series of tasks (e.g., movement). For example, the series of tasks may include moving the target robot through multiple goal locations, with the follower robot following the target robot through each of the multiple goal locations. While the follower robot follows the target robot through the multiple goal locations, position and trajectory information of the follower robot may be recorded. Upon completion, the collected position and trajectory data may be analyzed and automatically transformed into a common reference coordinate system, thereby correlating the target robot's map with the follower robot's map. In some embodiments, these processes may be repeated for additional mobile robots in the working environment until the position and trajectory information of all mobile robots can be expressed in a common reference coordinate system. This is highly advantageous because using this reference coordinate system allows a master control system to effectively operate all mobile robots in the working environment with high precision, regardless of platform differences.

[0007] In some embodiments, the present technology relates to a method for determining map transformations between mobile robots, the method comprising: moving a first mobile robot to each of a plurality of goal locations within a working environment; determining a first position of the first mobile robot in a first map associated with the first mobile robot while the first mobile robot is located at each of the plurality of goal locations; and determining an observed position of the first mobile robot relative to the position of the second mobile robot based on data from at least one environmental sensor of a second mobile robot; moving the second mobile robot to each observed position; determining a second position of the second mobile robot in a second map associated with the second mobile robot while the second mobile robot is located at each observed position; and determining a transformation between the first map associated with the first mobile robot and the second map associated with the second mobile robot based on the determined first positions and second positions.

[0008] In some aspects, the present technology relates to a mobile robot management system. The mobile robot management system of this aspect includes a communications module configured to communicate with at least a first mobile robot and a second mobile robot within a working environment; a processor; and computer-readable memory in communication with the processor, the memory storing instructions executable by the processor that, when executed by the processor, cause the system to: move the first mobile robot to each of a plurality of goal locations within the working environment; determine a first position of the first mobile robot within a first map associated with the first mobile robot while the first mobile robot is located at each of the plurality of goal locations; determine an observed position of the first mobile robot relative to the position of the second mobile robot based on data from at least one environmental sensor of the second mobile robot; move the second mobile robot to each of the observed positions; determine a second position of the second mobile robot within a second map associated with the second mobile robot while the second mobile robot is located at each of the observed positions; and determine a transformation between the first map associated with the first mobile robot and the second map associated with the second mobile robot based on the determined first positions and second positions.

[0009] In some embodiments, the present technology relates to a mobile robot, the mobile robot comprising: a drive system configured to move the mobile robot; at least one environmental sensor; a processor; and computer-readable memory in communication with the processor, the memory storing instructions executable by the processor that, when executed by the processor, cause the mobile robot to receive from the target mobile robot, for each of a plurality of goal locations through which the target mobile robot will travel, a first position of the target mobile robot within a first map associated with the target mobile robot; determine an observed position of the target mobile robot relative to a current position of the mobile robot based on data from the at least one environmental sensor of the mobile robot; move the mobile robot to the observed position; determine a second position of the mobile robot within a second map associated with the mobile robot while the mobile robot is located at the observed position; and determine a transformation between the first map associated with the target mobile robot and the second map associated with the mobile robot based on the determined first and second positions.

[0010] In some embodiments, the present technology relates to a mobile robot, the mobile robot comprising: a drive system configured to move the mobile robot; at least one environmental sensor; a processor; and computer-readable memory in communication with the processor, the memory storing instructions executable by the processor that, when executed by the processor, cause the mobile robot to receive from the target mobile robot, for each of a plurality of goal locations through which the target mobile robot will travel, a first position of the target mobile robot within a first map associated with the target mobile robot; determine an observed position of the target mobile robot relative to a current position of the mobile robot based on data from the at least one environmental sensor of the mobile robot; determine a second position of the target mobile robot within a second map associated with the mobile robot based on the observed position; and determine a transformation between the first map associated with the target mobile robot and the second map associated with the mobile robot based on the determined first and second positions.

[0011] In some embodiments, the present technology relates to a method for determining map transformations between mobile robots, the method comprising: moving a first mobile robot to each of a plurality of goal points within a working environment; determining a first position of the first mobile robot within a first map associated with the first mobile robot while the first mobile robot is located at each of the plurality of goal points; determining an observed position of the first mobile robot relative to the position of the second mobile robot based on data from at least one environmental sensor of a second mobile robot; determining a second position of the first mobile robot within a second map associated with the second mobile robot based on the observed position; and determining a transformation between the first map associated with the first mobile robot and the second map associated with the second mobile robot based on the determined first positions and second positions.

[0012] For purposes of this Summary, certain aspects, advantages, and novel features of the present disclosure have been described, but it should be understood that not all of these advantages are necessarily achieved in any embodiment. Thus, for example, one skilled in the art will recognize that the invention may be embodied or practiced in a manner that achieves one or more of the advantages taught herein, while not necessarily achieving other advantages.

[0013] Specific embodiments will now be described in detail with reference to the drawings, in which like reference numerals refer to like elements throughout. These drawings are illustrative examples, and the embodiments are not limited to the specific examples shown in the drawings. [Brief explanation of the drawings]

[0014] [Figure 1] FIG. 1 illustrates an exemplary embodiment of a mobile robot. [Figure 2] FIG. 1 is a schematic diagram of an exemplary embodiment of a mobile robot. [Figure 3]FIG. 1 is a schematic diagram of a mobile robot management system in communication with a mobile robot and a user device. [Figure 4A] FIG. 10 is an exemplary diagram of a map of a working environment determined by a first mobile robot. [Figure 4B] FIG. 4B is an exemplary illustration of a map of the same working environment as FIG. 4A determined by a second mobile robot. [Figure 5A] 1 illustrates exemplary steps in an embodiment of an automated process for determining map transformation between two mobile robots. [Figure 5B] 10 illustrates other exemplary steps in an embodiment of an automated process for determining map transformation between two mobile robots. [Figure 5C] 10 illustrates other exemplary steps in an embodiment of an automated process for determining map transformation between two mobile robots. [Figure 5D] 10 illustrates other exemplary steps in an embodiment of an automated process for determining map transformation between two mobile robots. [Figure 5E] 10 illustrates other exemplary steps in an embodiment of an automated process for determining map transformation between two mobile robots. [Figure 5F] 10 illustrates other exemplary steps in an embodiment of an automated process for determining map transformation between two mobile robots. [Figure 5G] 10 illustrates other exemplary steps in an embodiment of an automated process for determining map transformation between two mobile robots. [Figure 5H] 10 illustrates other exemplary steps in an embodiment of an automated process for determining map transformation between two mobile robots. [Figure 5I] 10 illustrates other exemplary steps in an embodiment of an automated process for determining map transformation between two mobile robots. [Figure 6] 1 is a flowchart of an example method or process for determining map transformations between mobile robots. [Figure 7] 10 illustrates exemplary steps in another embodiment of an automated process for determining map transformation between two mobile robots. DETAILED DESCRIPTION OF THE INVENTION

[0015] This disclosure describes various systems, devices, and methods for determining map transformations between mobile robots. The map transformations may be used, for example, by a master controller and / or individual mobile robots to view the position and / or trajectory information of multiple mobile robots within a common coordinate reference system or common map. The use of a common coordinate reference system or common map may improve interoperability between multiple mobile robots by, for example, enabling better sharing of positions, trajectories, working areas, resources, and interoperability requirements between multiple robots.

[0016] As briefly mentioned above, mobile robots often navigate using a map of their operating environment. In some cases, the map may be pre-calculated or determined substantially in real time by the mobile robot. For example, a mobile robot's map may be determined or generated by the mobile robot using its sensing capabilities. However, the sensing capabilities of different mobile robots may differ. Mobile robots from different manufacturers and models may have different types of sensors. Furthermore, even mobile robots from the same manufacturer and model may have different sensing capabilities due to slight variations or physical differences between individual robots.

[0017] Generally, each mobile robot can determine its own position and trajectory within its own individual map. In addition, each mobile robot can determine the positions of other mobile robots and various obstacles or objects within the working environment based on data obtained from its own sensors. In some cases, a mobile robot may determine the positions of various obstacles and objects within its own map. In some cases, a mobile robot may determine the distance and direction (e.g., linear distance and rotational position) between its current position and an obstacle or object detectable by its own sensors. When each mobile robot operates with reference to its own individual map, it is difficult to share data between two or more mobile robots. For example, a first mobile robot's self-reported position and orientation (within its own individual map) is likely not useful to a second mobile robot. For example, the coordinate systems associated with the first and second mobile robot's individual maps may not be identical. As an example, an (x,y) location in a first robot's individual map may not match the same (x,y) location in a second robot's individual map.

[0018] Therefore, to facilitate the sharing of map-based information (e.g., the positions, trajectories, and paths of mobile robots, objects, or obstacles within the working environment) between two or more mobile robots, it may be desirable to provide all such information in a common reference coordinate system or common map. That is, it may be desirable to determine a transformation that allows all information determined with respect to an individual mobile robot's map to be represented within the map of another mobile robot or within a common reference coordinate system or common map. In this way, mobile robots can receive and utilize information determined or provided by other mobile robots in the working environment, thereby facilitating coordinated movement, avoiding collisions, increasing overall efficiency, etc.

[0019] Some existing methods and systems for determining map transformations require significant manual effort. For example, a set of feature points may be manually identified from each of the individual maps generated by two different mobile robots and then mathematically correlated to determine the transformation between them. However, this process is generally manual, prone to error, and disadvantageously fails to work well when the two individual maps do not contain clearly identifiable features associated with the same physical object. Another example of a method that requires manual effort is to manually move two mobile robots to the same physical location, record their respective position data at each location, and mathematically calculate the transformation between them. This method is also disadvantageous in that it is generally manual and prone to error. Furthermore, it is also disadvantageous in that it is difficult to park the mobile robots at exactly the same physical location with the same orientation (posture). Furthermore, another method for determining map transformations between mobile robots may use sophisticated map merging algorithms. However, this method can involve significant technical sophistication and complexity and may not work well for all types of maps.

[0020] The present disclosure provides additional systems, devices, and methods for determining map transformations between mobile robots that reduce or eliminate one or more of the disadvantages described above and / or provide other advantages and benefits as described herein. In some embodiments, the systems, devices, and methods for determining map transformations between mobile robots described herein can be performed automatically and / or unsupervised, e.g., requiring no or minimal human intervention. For example, a mobile robot or mobile controller may be configured to automatically trigger and implement the systems, devices, and methods when it detects another mobile robot in its operating environment or when it attempts or desires to share information between two mobile robots. In some embodiments, the systems, devices, and methods may be manually initiated, albeit with minimal human intervention. For example, in some cases, a human may provide a command to cause one or more mobile robots to execute the systems, devices, and methods for determining map transformations between mobile robots of the present disclosure.

[0021] As previously described, in some examples, systems, devices, and methods for determining map transformations between different mobile robots may employ a follower robot that autonomously follows a target robot through a series of tasks, such as moving. For example, the series of tasks may include moving the target robot sequentially to multiple goal locations. The follower robot follows the target robot through each of the multiple goal locations. While the follower robot follows the target robot through the multiple goal locations, position and trajectory information of the follower robot may be recorded. Once completed, the collected position and trajectory data may be analyzed and automatically transformed into a common reference coordinate system. This reference coordinate system relates the target robot's map to the follower robot's map.

[0022] For example, a target robot may travel to a goal location and report its location on its own map. A follower robot may observe the target robot at the goal location and determine the target robot's location (relative location) relative to the follower robot's current location. For example, the follower robot may determine the distance and direction to the target robot (at the goal location) relative to its own current location. It is noteworthy that in some cases, the follower robot does not need to know the goal location itself. Using the determined relative location, the follower robot can move to the goal location. For example, based on the determined distance and direction, it can move to the observation location using encoder-based motion. At this location, the follower robot can record its location in its own map. Because the follower robot has moved to the observation location, it is now located at the goal location. Therefore, this goal location is known with respect to the target robot's and follower robot's respective individual maps. This process may be repeated for multiple goal locations, and the resulting data may be used to determine the transformation between the two maps.

[0023] In an alternative embodiment, the target robot may move through multiple goal locations, and the second robot may observe the target robot's location at each goal location using its own sensors. Based on the observed locations (observed locations), the second robot may determine the target robot's location within its own map. These goal location locations determined by the second robot, along with the goal location locations reported by the target robot, may be used to determine the transformation between the two maps. In some embodiments, the above may be achieved without moving the second robot at all, as long as the second robot can observe the target robot at each location. In some cases, the second robot may move or follow the target robot and observe the target robot at each goal location.

[0024] In some embodiments, instead of using multiple discrete goal points, a continuous path of travel may be used. Furthermore, the above process may be repeated for additional mobile robots in the working environment until the position and trajectory information of all mobile robots can be expressed in a common reference frame. This is highly advantageous because using this reference frame, the master control system can efficiently and accurately operate all mobile robots in the working environment, regardless of platform differences.

[0025] Various features and advantages of the systems, apparatus, and methods for determining map transformations between mobile robots described herein will become more apparent through the following description of illustrative examples. These examples are intended to illustrate the principles of the present disclosure, and the present disclosure is not limited to these illustrated examples. Features of the illustrated examples may be modified, combined, deleted, and / or substituted, as would be apparent to one skilled in the art in light of the principles disclosed herein.

[0026] FIG. 1 is a diagram illustrating an exemplary embodiment of a mobile robot 100. FIG. 2 is a schematic diagram of the mobile robot 100. The mobile robot 100 may include a chassis or housing 102 that supports various other components of the robot 100. Some components may be located inside the housing 102, while some components may be positioned to be at least partially exposed from the housing 102 so that they can interact with entities external to the housing 102. The mobile robot 100 may include a drive system 104. The drive system 104 may be configured to move the robot 100. For example, the mobile robot 100 may include one or more drive wheels 106 drivable by at least one motor (not visible in FIG. 1). In some embodiments, two or more drive wheels 106 may be independently driven to move the mobile robot 100 forward, backward, turn, etc. In some embodiments, the mobile robot 100 may be turned by a steering mechanism (e.g., swiveling wheels). In some cases, one or more non-drive wheels 108 may support the mobile robot 100. A variety of other suitable drive systems may be used, such as crawler or leg-type.

[0027] The mobile robot 100 may include one or more environmental sensors 112 that can be used to sense or measure the environment around the robot 100. The environmental sensor 112 may be, for example, a Light Detection and Ranging (LiDAR) system. The environmental sensor 112 may include at least one laser capable of emitting laser pulses over a range of angles. The environmental sensor 112 may include a photodetector capable of receiving light from laser pulses reflected by the environment (e.g., objects) around the mobile robot 100. The received light may be used to determine the location of objects around the mobile robot 100. For example, the direction of emission of the laser pulse and / or the direction of the received light can indicate the direction of the object. The timing (time difference) of emission of the laser pulse and / or reception of the light (e.g., time-of-flight of the light) can indicate the distance from the robot to the object. The housing 102 of the mobile robot 100 may include an opening 114, such as a generally horizontal slit. This allows light (e.g., over a range of angles) to enter and exit the environmental sensors 112 of the mobile robot 100. Various other types of environmental sensors 112 may be used, such as cameras, video analytics systems that analyze footage from cameras mounted on the robot 100 to recognize objects and other environmental features, sonar systems, and / or thermal sensors. The environmental sensors 112 may also be located elsewhere on the housing 102 of the mobile robot 100.

[0028] The mobile robot 100 may include a controller 116 capable of operating various functions of the mobile robot 100. For example, the controller 116 may interpret information from the environmental sensors 112 to recognize objects, determine distance to or location of objects, operate the drive system 104, perform navigation and / or collision avoidance operations, communicate with a robot management system (such as that shown in FIG. 3), or perform various other features and functions of the mobile robot 100. Various functions of the mobile robot 100 disclosed herein may be implemented by the controller 116, even if not specifically mentioned. In some embodiments, the controller 116 may determine or generate a map of the working environment sensed or understood by the environmental sensors 112. Exemplary maps are shown in FIGS. 4A and 4B and described in more detail below. However, for the reasons discussed above, a map generated by one mobile robot 100 will often differ (to varying degrees) from a map generated by another mobile robot 100. For example, one mobile robot 100 may be equipped with different types and configurations of environmental sensors 112.

[0029] The mobile robot 100 may include at least one processor 118. The processor 118 may be a hardware processor. The processor 118 may include circuitry configured to perform operations to implement the various functions and features described herein. In some embodiments, the mobile robot 100 may include multiple processors 118, with different tasks performed by different processors 118. The mobile robot 100 may include memory 120. The memory 120 may be computer-readable memory (e.g., non-transitory computer-readable memory). The memory 120 may include RAM, ROM, non-volatile memory, flash memory, a hard disk, or any other suitable type of memory. In some embodiments, the mobile robot 100 may include multiple memory components. The multiple memory components may store different types of information or instructions for different functions or features. The memory 120 may store instructions executable by the at least one processor 118 to operate the controller 116 and / or perform the various functions and features disclosed herein. In some embodiments, these functions and / or features may be realized by an integrated circuit or other dedicated processor specially configured to perform the functions and features disclosed herein. The controller 116 may, in some cases, include multiple control modules. Different control modules (e.g., different processors 118 and / or different software instruction sets) may perform different tasks or functions.

[0030] The mobile robot 100 may include a communication interface 122 that can be used to transmit information from the robot 100 and / or receive information from a robot management system or other external device. The communication interface 122 may be wireless and may use Wi-Fi, Bluetooth, or other suitable wireless communication protocols. In some embodiments, the communication interface 122 may include a wired connection. For example, the communication interface 122 may include a port or plug. The port or plug may be configured to connect to a corresponding plug or port coupled to an external device, depending on the circumstances, to enable communication between the communication interface 122 and the external device. For example, a USB port may be used as the port or plug in some cases, although various types of ports or other wired connections may also be used. In some cases, a user may couple a laptop, smartphone, or other computing device to the mobile robot 100 via the communication interface to adjust parameters of the mobile robot 100, diagnose problems with the mobile robot 100, update functions of the mobile robot 100, etc. In some embodiments, the communications interface 122 can be used to communicate information about the mobile robot's 100 position and / or trajectory determined with respect to its map to other mobile robots and / or robot management systems (e.g., as shown in FIG. 3 ). Similarly, the communications interface 122 can be configured to receive position, trajectory, and / or other map-based information from other mobile robots in the operating environment. As described herein, the map-based information can be transformed to a reference coordinate system associated with the mobile robot's 100 map or to a universal reference coordinate system to compensate for differences between maps of different mobile robots.

[0031] The mobile robot 100 may include a user interface 124 that can be used to receive input from a user and / or provide output (e.g., information) to a user. The user interface 124 may include one or more buttons 126, switches, dials, or other user input elements, a touchscreen, a display, one or more lights, speakers, a microphone, etc. In some cases, the user may provide input to adjust parameters of the mobile robot 100.

[0032] The mobile robot 100 may include a power source 128. The power source 128 may be a battery. The battery may be rechargeable, and the mobile robot 100 may be configured to dock with a recharging station (e.g., via an electrical interface) that accommodates the battery. The power source 128 may provide power to operate the drive system 104 (e.g., one or more electric motors), various sensors, controllers, and other systems disclosed herein. The power source 128 may provide DC or AC power. Any suitable type of power source 128 may be used.

[0033] The mobile robot 100 may include a navigation system 130. The navigation system 130 may be used to perform path planning for the mobile robot 100. The navigation system 130 may receive a destination point and / or one or more waypoints, such as from the user interface 124 or the communication interface 122. The navigation system 130 may receive environmental information (e.g., the location of objects) from the environmental sensors 112 and use that information to determine trajectory information for navigating the mobile robot 100 (e.g., toward the destination point). The trajectory information may include a path or route from the robot's current location to a target location (e.g., a task location or other destination or waypoint). In some cases, the navigation system 130 may determine intermediate waypoints based on the environmental information. In some embodiments, the navigation system 130 may modify the trajectory information while the mobile robot 100 is moving. For example, if an object moves or if a new object is detected (e.g., by the environmental sensors 112), the navigation system 130 may determine a change in the path or route of the mobile robot 100.

[0034] According to the systems, methods, and apparatus of the present disclosure, information determined, transmitted, and / or received by the navigation system can be transformed into a reference coordinate system associated with the mobile robot 100 or into a universal reference coordinate system to compensate for map differences between different mobile robots.

[0035] FIG. 3 is a schematic diagram of a mobile robot management system 200. The mobile robot management system 200 can manage a fleet of mobile robots 100. While three mobile robots 100 are shown in FIG. 3, any suitable number of robots 100 can be managed by the system 200, such as two, four, eight, twelve, twenty, thirty, forty, fifty, or more, or any value or range between these numbers. The robot management system 200 can manage multiple robots 100 in a factory, office, hospital, retail store, warehouse, or other suitable facility where robots 100 have tasks to perform in various locations. The robot management system 200 may include or use many of the features and / or functions disclosed in the '586 patent. The robot management system 200 may include a controller 216. The controller 216 may assist in determining map transformations between maps of different mobile robots and / or apply the determined map transformations to map-based information exchanged between multiple different mobile robots 100, as described herein. Various functions of the robot management system 200 disclosed herein may be implemented by the controller 216, even if the controller 216 is not specifically described.

[0036] The robot management system 200 may include at least one processor 218. The processor 218 may be a hardware processor. The processor 218 may include circuitry configured to perform operations to implement various functions and features described herein, such as systems and methods for determining map transformations between robots. In some embodiments, the robot management system 200 may include multiple processors 218, and different tasks may be performed by different processors 218. The robot management system 200 may include memory 220. The memory 220 may be computer-readable memory (e.g., non-transitory computer-readable memory). The memory 220 may include RAM, ROM, non-volatile memory, flash memory, a hard disk, or any other suitable type of memory. In some embodiments, the robot management system 200 may include multiple memory components. The multiple memory components may store different types of information or instructions for different functions or features. The memory 220 may store instructions executable by the at least one processor 218 to implement the controller 216 and / or perform various functions and features of the management system 200. In some embodiments, the functions and / or features of the robotic management system 200 may be implemented by integrated circuits or other dedicated processors specially configured to perform the functions and features disclosed herein. In some cases, the controller 216 may include multiple control modules. Different tasks or functions may be performed by different control modules (e.g., different processors 218 and / or different software instruction sets).

[0037] The robot management system 200 may include a communication interface 222. The communication interface 222 can be used to send information from the robot management system 200 to the robot 100 and / or other systems or devices. The communication interface 222 can receive information from the robot 100 and / or other systems or devices. The communication interface 222 may be a wireless communication interface and may use WiFi, Bluetooth, or any other suitable wireless communication protocol. In some embodiments, the communication interface 222 may have a wired connection. For example, the communication interface 222 may include a port or plug. The port or plug may be configured to connect to a corresponding plug or port coupled to an external device, depending on the circumstances, to enable communication between the communication interface 222 and the external device. For example, a USB port may be used as the port or plug, although various types of ports or other wired connections may also be used. In some cases, a user may couple a laptop, smartphone, or other computing device to the robot management system 200 via the communication interface to adjust parameters 234 of the robot management system 200, diagnose or troubleshoot problems, update functionality of the robot management system 200, etc. The robot management system 200 may communicate with the robot 100 and / or other systems or devices via a network 226. The network 226 may be a wireless network, such as a WiFi network. The network 226 may be a shared network that can communicate other types of information in addition to information related to managing the fleet of robots 100. In some embodiments, the network 226 may be a dedicated network that can be used exclusively to operate the fleet of robots. In some embodiments, the communication interface 222 may be used to communicate information regarding the position and / or trajectory of each mobile robot 100 determined with respect to its individual map to other mobile robots.Similarly, the communications interface 222 may be configured to receive position, trajectory, and / or other map-based information from the mobile robot 100 within the operating environment. As described herein, the map-based information may be transformed to a reference coordinate system associated with the map of the mobile robot 100 or to a universal reference coordinate system to compensate for differences between maps of different mobile robots.

[0038] The robot management system 200 can communicate with external systems or devices, such as user devices 300, via a network 226 or in any other suitable manner. The user devices 300 may be user terminals or other computing devices at work stations or other locations within a facility that uses a fleet of robots. For example, the user devices 300 may be computers at factory work stations, office work stations, nurse work stations, hospital rooms, point-of-sale stations, administrator desks or offices, etc. The user devices 300 may also be portable user devices, such as smartphones or tablet computers. The user devices 300 may send tasks to the robot management system 200 to be assigned to the robot 100. In some cases, multiple user devices 300 may be used. One or more of the user devices 300 may be located in the environment where the mobile robot 100 resides, or may be located remotely from the environment where the mobile robot 100 resides (e.g., communicating via the Internet or other wide area network).

[0039] The robotic management system 200 may include a user interface 224 that can be used to receive input from a user and / or provide output (e.g., information) to a user. The user interface 224 may include one or more buttons, switches, dials, or other user input elements, a keyboard, a touchscreen, a display, one or more lights, speakers, a microphone, etc. In some cases, a user can provide input to adjust parameters of the robotic management system 200 via the user interface 224 or via a user device 300.

[0040] The robotic management system 200 may include a power source 228. The power source 228 may be a wired power connection (e.g., configured to plug into an outlet, etc.). In some cases, a battery (e.g., rechargeable) may be used. The power source 228 may provide power for operating the robotic management system 200 as disclosed herein. The power source 228 may provide DC or AC power. Any suitable type of power source 228 may be used.

[0041] 4A and 4B show two example maps 400a, 400b of a working environment determined by two different mobile robots: map 400a is a map of the working environment determined by a first mobile robot operating within the working environment, and map 400b is a map of the working environment determined by a second mobile robot operating within the same working environment.

[0042] A comparison of Figures 4A and 4B reveals many similarities between the map 400a (Figure 4A) determined by the first mobile robot and the map 400b (Figure 4B) determined by the second mobile robot. For example, the general shape and size of the working environments depicted in maps 400a and 400b are similar. However, upon careful examination of maps 400a and 400b, it is clear that some differences exist between the two maps. Areas where differences exist between the two maps are highlighted (by dashed circles) in Figures 4A and 4B.

[0043] Differences between the maps 400a, 400b may arise from a variety of causes. For example, as described above, differences between the maps 400a, 400b may arise from differences between the first and second mobile robots. For example, the first mobile robot may be of a first type (e.g., a first manufacturer and model) and the second mobile robot may be of a second type (e.g., a second manufacturer and model). The first and second mobile robots may then be equipped with different numbers and / or types of environmental sensors (e.g., the environmental sensors 112 described in connection with FIGS. 1 and 2). The differences in the number and / or types of sensors equipped on the first and second mobile robots may cause some or all of the differences between the maps 400a, 400b. Furthermore, even if the first and second mobile robots are of the same type (e.g., the same manufacturer and model), slight variations between the two may result in differences between the maps 400a, 400b.

[0044] Additionally, some or all of the differences between maps 400a, 400b may be due to the current and / or past locations of the first and second mobile robots within the working environment. For example, the first and second mobile robots may generate their respective maps 400a, 400b as they move through the working environment. Maps 400a, 400b are generated based on data obtained by the environmental sensors of the first and second mobile robots. The environmental sensors have a field of view, and only objects within that field of view are recognized and consequently mapped. Thus, some objects present in map 400a (FIG. 4A) but not in map 400b (FIG. 4B) are mapped by the first mobile robot (e.g., when the object is detected within the field of view of the first mobile robot's environmental sensor). However, because the object was not within the field of view of the second mobile robot's environmental sensor, the second mobile robot did not map the object and therefore does not represent it in map 400b. This example illustrates another reason why sharing map-based data between a first and second mobile robot is important: the locations of obstacles mapped by one mobile robot can be shared with other mobile robots that do not yet recognize those obstacles with their own environmental sensors.

[0045] Furthermore, as shown in FIGS. 4A and 4B, maps 400a, 400b may each have their own unique coordinate reference system or coordinate systems 402a, 402b. This may be because the first and second mobile robots determine map-based information within or with respect to their own individual coordinate systems. For various reasons, the coordinate reference systems or coordinate systems 402a, 402b associated with the first and second mobile robots may be set to different locations from each other, as shown in FIGS. 4A and 4B. For example, the coordinate reference system or coordinate systems for each mobile robot may be associated with the location of the mobile robot's dock, the location where the mobile robot was launched, or a location set within software associated with the mobile robot. Alternatively, the locations of the coordinate reference systems or coordinate systems 402a, 402b may be different for other reasons.

[0046] Thus, because the reference coordinate systems or coordinate systems 402a, 402b of the first map 400a and second map 400b associated with the first and second mobile robots are located at different positions, an (x,y) location determined in map 400a does not represent the same physical point as the same (x,y) location determined in map 400b. That is, objects located in the working environment are represented by different (x,y) coordinates in the maps 400a, 400b associated with the two robots.

[0047] This difference makes it difficult to share map-based information between the first and second mobile robots. For example, a location determined with respect to a reference coordinate system or coordinate system 402a in the map 400a of the first mobile robot must be translated or transformed into a coordinate system 402b in the map 400b of the second mobile robot in order to be available to the second mobile robot.

[0048] Although the descriptions of reference coordinate systems and coordinate systems in this specification generally assume an xy coordinate system, this is merely an example, and other types of coordinate systems, including three-dimensional coordinate systems, may also be used.

[0049] 5A-5I illustrate exemplary steps in an embodiment of a process for determining a map transformation between two mobile robots R1 and R2. Advantageously, in some embodiments, this process may be performed in an automated, automatic, and / or unsupervised manner. This process may be used to synchronize map data for different mobile robots. This process may be used to accurately represent the mobile robots' position and trajectory information within a common reference coordinate system. As described in more detail below with reference to FIGS. 5A-5I, this process may involve a second mobile robot R2 (the "follower" robot) autonomously following a first mobile robot (the "target" robot) R1 as the target robot performs a known series of tasks. These tasks may include reaching a series of goal locations. While the follower robot mimics the behavior of the target robot, the follower robot's position and trajectory information is recorded. Once this process is complete, the collected position and trajectory data may be analyzed and automatically transformed into a common reference coordinate system. Using this reference coordinate system, a master control system can efficiently and accurately operate all mobile robots within a working environment, regardless of platform differences. In some embodiments, the above process may be repeated to accommodate more than two types of mobile robots.

[0050] FIG. 5A illustrates two mobile robots, a first mobile robot R1 and a second mobile robot R2, in a working environment. In this example, the first mobile robot R1 and the second mobile robot R2 may have their own individual working environment maps. As previously discussed, the individual maps of the mobile robots may differ in one or more respects. In some cases, the individual maps of the first mobile robot R1 and the second mobile robot R2 may have different coordinate systems. As a result, an (x, y) location in one map may not match the same (x, y) location in the other map. As a result, the mobile robots R1 and R2 cannot effectively share map-based data without transforming between their maps.

[0051] FIG. 5A also illustrates multiple goal points G1-G6 within the working environment. In this example, the goal points include physical points within the working environment through which both mobile robots R1 and R2 will travel as part of the process of determining the map transformation. While six goal points are shown in the illustrated example, other numbers of goal points may be used in other examples. For example, some embodiments of this process may use 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 25, 30, 50, or more goal points. In some cases, using more goal points may improve the accuracy of the determined transformation. However, it has been determined that using 5, 10, or 20 goal points provides a sufficiently accurate transformation with an accuracy of less than 100 mm. The goal points may be arranged in any pattern or shape, for example, along one or more linear or curved paths. In some cases, the goal points may be specific, pre-defined points within the working environment. In some embodiments, the goal points may be determined by the first mobile robot R1 based on various factors, such as the first mobile robot R1's current location, open space in the working environment, obstacles in the working environment, and other mobile robots. The goal points should be spatially separated, but the separation distance may vary. For example, the distance between the goal points may be at least 10 cm, 50 cm, 1 m, 2 m, 2.5 m, 5 m, or more, or may be other distances. In some cases, the goal points may not be known to the second mobile robot R2.

[0052] As shown in FIG. 5B, in a first step, a first mobile robot R1 (also referred to as a target robot) moves to a first goal point G1. The first mobile robot R1 determines the location of the first goal point G1 in a first coordinate system associated with the map of the first mobile robot R1. The determined location (in this example, (x R1 1,y R11)) may be recorded by the first mobile robot R1 and / or communicated to the second mobile robot R2 and / or the robot management system 200 (e.g., as shown in FIG. 3). In FIG. 5B, the location of the first goal point G1 determined by the first mobile robot R1 is represented by (x R1 1,y R1 1) is recorded in the table.

[0053] Continuing with reference to FIG. 5B, with the first mobile robot R1 located at the first goal point G1, the second mobile robot R2 can determine the relative position of the first mobile robot R1 relative to its current location. For example, the second mobile robot R2 can determine the distance and direction (e.g., linear distance and rotational direction (rotation angle)) to the first mobile robot R1. As indicated by the dashed line in FIG. 5A, the second mobile robot R2 can observe the first mobile robot R1 using one or more environmental sensors (e.g., LiDAR or other optical sensors) mounted on the second mobile robot R2 itself. As described in FIG. 5C and subsequent figures, the second mobile robot R2 can use the observed position of the first mobile robot R1 as a means of identifying the first goal point G1.

[0054] As shown in FIG. 5C, as a next step, the first mobile robot R1 (e.g., the target) moves to the second goal point G2. The first mobile robot R1 determines the location of the second goal point G2 in a first coordinate system associated with the map of the first mobile robot R1. The determined location (in this example, (x R1 2,y R1 2)) may be recorded by the first mobile robot R1 and / or communicated to the second mobile robot R2 and the robot management system 200. In FIG. 5C, the position of the second goal point G2 determined by the first mobile robot R1 is represented by (x R1 2,y R1 2) is recorded in the table.

[0055] Once the first mobile robot R1 leaves the first goal point G1, the second mobile robot R2 (e.g., follower) can move to the location where the second mobile robot R2 observed the first mobile robot R1 when it was at the first goal point G1. For example, the second mobile robot R2 can use encoder-based movement to move the distance and direction determined when it previously observed the first mobile robot R1. By moving to the location where the second mobile robot R2 observed the first mobile robot R1 at the first goal point G1, the second mobile robot R2 can position itself at the first goal point G1. This can be achieved even if the second mobile robot R2 does not know the location of the first goal point G1. Notably, the second mobile robot R2 can simply calculate (x R1 1,y R1 The problem is that the second mobile robot R2 cannot move towards the first goal point G1 (the location of the first goal point G1 recorded by the first mobile robot R1) because the recorded data is not provided in the coordinate system of the second mobile robot R2. However, the second mobile robot R2 can move itself to the first goal point G1 by moving to the observed location. Once the second mobile robot R2 reaches the first goal point G1, the second mobile robot R2 can determine the location of the first goal point G1 in the second coordinate system associated with its map. The determined location (in this example, (x R2 1,y R2 1)) may be recorded by the second mobile robot R2 and / or communicated to the first mobile robot R1 or the robot management system 200. In FIG. 5C, the position of the first goal point G1 determined by the second mobile robot R2 is (x R2 1,y R2 1) in the table. At this point, the location of the first goal point G1 is known relative to the coordinate systems of the mobile robots R1 and R2, as shown in the first row of the table in Figure 5C.

[0056] Continuing with reference to FIG. 5C, with the first mobile robot R1 at the second goal point G2, the second mobile robot R2 can determine the position of the first mobile robot R1 (the first mobile robot R1 is at the second goal point G2) relative to the second mobile robot R2's current location (e.g., the distance and direction to the first mobile robot R1). For example, as shown by the dashed line in FIG. 5C, the second mobile robot R2 can observe the first mobile robot R1 using one or more environmental sensors mounted on the first mobile robot R1. As in the previous step, the second mobile robot R2 can use this observed position to move itself to the second goal point G2 in a subsequent step.

[0057] As shown in FIG. 5D, in the next step, the first mobile robot R1 (target) moves to the third goal point G3. The first mobile robot R1 determines the location of the third goal point G3 in the first coordinate system associated with the map of the first mobile robot R1. The determined location (in this example, (x R1 3,y R1 3)) may be recorded by the first mobile robot R1 and / or communicated to the second mobile robot R2 and the robot management system 200. In FIG. 5D, the location of the third goal point G3 determined by the first mobile robot R1 is represented by (x R1 3,y R1 3) is recorded in the table.

[0058] Once the first mobile robot R1 leaves the second goal point G2, the second mobile robot R2 (e.g., follower) can move (e.g., using encoder-based movement) to the position where the first mobile robot R1 was observed when it was at the second goal point G2. By moving to the position where the second mobile robot R2 observed the first mobile robot R1 at the second goal point G2, the second mobile robot R2 can position itself at the second goal point G2. Once the second mobile robot R2 reaches the second goal point G2, the second mobile robot R2 can determine the location of the second goal point G2 within a second coordinate system associated with its own map. The determined position (in this example, (x R2 2,y R2 2)) may be recorded by the second mobile robot R2 and / or communicated to the first mobile robot R1 or the robot management system 200. In FIG. 5D, the position of the second goal point G2 determined by the second mobile robot R2 is (x R2 2,y R2 2) in the table. At this point, the location of the second goal point G2 is known relative to the coordinate systems of the mobile robots R1 and R2, as shown in the second row of the table in Figure 5D.

[0059] Continuing with reference to FIG. 5D, with the first mobile robot R1 at the third goal point G3, the second mobile robot R2 can determine the position of the first mobile robot R1 relative to the second mobile robot R2's current location (the first mobile robot R1 is at the third goal point G3). For example, as shown by the dashed line in FIG. 5D, the second mobile robot R2 can observe the first mobile robot R1 using one or more environmental sensors mounted on the second mobile robot R2. As in the previous step, the second mobile robot R2 can use this observed position to move itself to the third goal point G3 in a subsequent step.

[0060] As shown in FIG. 5E, as a next step, the first mobile robot R1 (target) moves to the fourth goal point G4. The first mobile robot R1 determines the location of the fourth goal point G4 in a first coordinate system associated with the map of the first mobile robot R1. The first mobile robot R1 then calculates the location of the fourth goal point G4 (in this example, (x R1 4,y R1 4) and / or notify the second mobile robot R2 and / or the robot management system 200. In FIG. 5E, the location of the fourth goal point G4 determined by the first mobile robot R1 is (x R1 4,y R1 4) is recorded in the table.

[0061] Once the first mobile robot R1 leaves the third goal point G3, the second mobile robot R2 (e.g., follower) can move (e.g., using encoder-based movement) to the location where the first mobile robot R1 was observed when it was at the third goal point G3. By moving to the location where the second mobile robot R2 observed the first mobile robot R1 at the third goal point G3, the second mobile robot R2 can position itself at the third goal point G3. Once the second mobile robot R2 reaches the third goal point G3, the second mobile robot R2 can determine the location of the third goal point G3 within a second coordinate system associated with its map. The second mobile robot R2 can then use the determined location (in this example, (x R2 3,y R2 3)) and / or notify the first mobile robot R1 or the robot management system 200. In FIG. 5E, the position of the third goal point G3 determined by the second mobile robot R2 is (x R2 3,y R2 3) in the table. At this point, the location of the third goal point G3 is known relative to the coordinate systems of the mobile robots R1 and R2, as shown in the third row of the table in Figure 5E.

[0062] Continuing with reference to FIG. 5E, with the first mobile robot R1 at the fourth goal point G4, the second mobile robot R2 can determine the position of the first mobile robot R1 relative to the second mobile robot R2's current location (the first mobile robot R1 is at the fourth goal point G4). For example, as shown by the dashed line in FIG. 5D, the second mobile robot R2 can observe the first mobile robot R1 using one or more environmental sensors mounted on the second mobile robot R2. Similar to the previous step, the second mobile robot R2 can use this observed position to move itself to the fourth goal point G4 in a subsequent step.

[0063] As shown in FIG. 5F, as a next step, the first mobile robot R1 (e.g., the target) moves to a fifth goal point G5. The first mobile robot R1 determines the location of the fifth goal point G5 in a first coordinate system associated with the map of the first mobile robot R1. The first mobile robot R1 then calculates the location of the fifth goal point G5 (in this example, (x R1 5,y R1 5) and / or notify the second mobile robot R2 and / or the robot management system 200. In FIG. 5F, the location of the fifth goal point G5 determined by the first mobile robot R1 is represented by (x R1 5,y R1 5) is recorded in the table.

[0064] Once the first mobile robot R1 leaves the fourth goal point G4, the second mobile robot R2 (e.g., follower) can move (e.g., by encoder-based movement) to the position where the first mobile robot R1 was observed when it was at the fourth goal point G4. By moving to the position where the second mobile robot R2 observed the first mobile robot R1 at the fourth goal point G4, the second mobile robot R2 can position itself at the fourth goal point G4. Once the second mobile robot R2 reaches the fourth goal point G4, the second mobile robot R2 can determine the location of the fourth goal point G4 within a second coordinate system associated with its map. The second mobile robot R2 can then use the determined position (in this example, (x R2 4,y R2 4)) and / or notify the first mobile robot R1 or the robot management system 200. In FIG. 5F, the position of the fourth goal point G4 determined by the second mobile robot R2 is (x R2 4,y R2 4) in the table. At this point, the location of the fourth goal point G4 is known relative to the coordinate systems of the mobile robots R1 and R2, as shown in the fourth row of the table in Figure 5F.

[0065] Continuing with reference to FIG. 5F, with the first mobile robot R1 at the fifth goal point G5, the second mobile robot R2 can determine the position of the first mobile robot R1 relative to the second mobile robot R2's current location (the first mobile robot R1 is at the fifth goal point G5). For example, as shown by the dashed line in FIG. 5F, the second mobile robot R2 can observe the first mobile robot R1 using one or more environmental sensors mounted on the second mobile robot R2. Similar to the previous step, the second mobile robot R2 can use this observed position to move itself to the fifth goal point G5 in a subsequent step.

[0066] As shown in FIG. 5G, as a next step, the first mobile robot R1 (e.g., the target) moves to the sixth goal point G6. The first mobile robot R1 determines the location of the sixth goal point G6 in a first coordinate system associated with the map of the first mobile robot R1. The first mobile robot R1 then calculates the location of the sixth goal point G6 (in this example, (x R1 6,y R1 6) and / or notify the second mobile robot R2 or the robot management system 200. In FIG. 5G, the location of the sixth goal point G6 determined by the first mobile robot R1 is represented by (x R1 6,y R1 6) is recorded in the table.

[0067] Once the first mobile robot R1 leaves the fifth goal point G5, the second mobile robot R2 (e.g., follower) can move (e.g., by encoder-based movement) to the position where the first mobile robot R1 was observed when the first mobile robot R1 was at the fifth goal point G5. By moving to the position where the second mobile robot R2 observed the first mobile robot R1 at the fifth goal point G5, the second mobile robot R2 can position itself at the fifth goal point G5. Once the second mobile robot R2 reaches the fifth goal point G5, the second mobile robot R2 can determine the location of the fifth goal point G5 within a second coordinate system associated with its map. The second mobile robot R2 can then use the determined position (in this example, (x R2 5,y R2 5)) and / or notify the first mobile robot R1 or the robot management system 200. In FIG. 5G, the location of the fifth goal point G5 determined by the second mobile robot R2 is (x R2 5,y R2 5) in the table. At this point, the location of the fifth goal point G5 is known relative to the coordinate systems of the mobile robots R1 and R2, as shown in the fifth row of the table in Figure 5G.

[0068] Continuing with FIG. 5G, with the first mobile robot R1 at the sixth goal point G6, the second mobile robot R2 can determine the position of the first mobile robot R1 relative to the second mobile robot R2's current location (the first mobile robot R1 is at the sixth goal point G6). For example, as shown by the dashed line in FIG. 5G, the second mobile robot R2 can observe the first mobile robot R1 using one or more environmental sensors mounted on the second mobile robot R2. Similar to the previous step, the second mobile robot R2 can use this observed position to move itself to the sixth goal point G6 in a subsequent step.

[0069] As shown in Figure 5H, in the next step, the first mobile robot R1 (e.g., the target) moves away from the sixth goal point G6. Once the first mobile robot R1 moves away from the sixth goal point G6, the second mobile robot R2 (the follower) can move (e.g., by encoder-based movement) to the position where the first mobile robot R1 was observed when it was at the sixth goal point G6. By moving to the position where the second mobile robot R2 observed the first mobile robot R1 at the sixth goal point G6, the second mobile robot R2 can position itself at the sixth goal point G6. Once the second mobile robot R2 reaches the sixth goal point G6, the second mobile robot R2 can determine the location of the sixth goal point G6 within a second coordinate system associated with its map. The second mobile robot R2 then calculates the location of the sixth goal point G6 from the determined position (in this example, (x R2 6,y R2 6) and / or notify the first mobile robot R1 or the robot management system 200. In FIG. 5H, the position of the sixth goal point G6 determined by the second mobile robot R2 is (x R2 6,y R2 6) in the table. At this point, the location of the sixth goal point G6 is known relative to the coordinate systems of the mobile robots R1 and R2, as shown in the sixth row of the table in Figure 5H.

[0070] As shown in FIG. 5I, after the first mobile robot R1 and the second mobile robot R2 have passed through all of the goal points G1-G6, the location of each goal point G1-G6 has been determined with respect to the coordinate system of the map associated with each robot R1 and R2. Thus, for each goal point G1-G6, a data pair (R1's data, R2's data) is provided. By correlating this data, a transformation between the coordinate systems of the two robots R1 and R2 can be determined. FIG. 5I provides a visual representation of an example of this step. As shown, the data pairs associated with each goal point can be plotted, and a function that best fits the plotted data pair can be determined. In the example shown, least-squares regression is used to fit a linear function to the plotted data. In other examples, other techniques for fitting other functions, including nonlinear functions, to the data may be used. For example, a least-squares estimator (e.g., one that calculates an affine transformation) may be used to determine the transformation. Other techniques that can be used include total least squares, machine learning (e.g., linear regression), etc. Furthermore, nonlinear transformations can be determined using polynomial regression, support vector regression, etc. Once the function is determined, data in one coordinate system (e.g., the coordinate system of the first mobile robot R1) can be converted into the coordinate system of the other mobile robot (e.g., the coordinate system of the second mobile robot R2).

[0071] While the exemplary process shown in Figures 5A-5I involves establishing discrete goal points and having the two mobile robots R1 and R2 stop at the goal points during the process, in other embodiments, the process may be performed using a continuous linear or curved path. For example, the target robot may move along a path and be observed by a follower robot. The follower robot may then follow the same path to generate paired data that can be used to determine transformations.

[0072] 6 is a flowchart illustrating an example process or method 600 for determining map transformations between mobile robots. In the illustrated example, method 600 begins at block 602 with moving a first mobile robot to a goal location. The first mobile robot may be associated with a first map. The first map may be determined or generated by the first mobile robot.

[0073] At block 604, the method includes determining a first position of the first mobile robot at the finish line. The first position may be determined with respect to a first map of the first mobile robot.

[0074] In block 606, the method includes using the second mobile robot to determine an observed position of the first mobile robot at the goal location. For example, the second mobile robot may observe or otherwise determine the position of the first mobile robot at the goal location using one or more environmental sensors. The second mobile robot may be associated with a second map. The second map may be determined or generated by the second mobile robot. The observed position may be determined relative to the current location of the second mobile robot. For example, the second mobile robot may determine the distance and direction to the first mobile robot relative to the current location of the second mobile robot.

[0075] In block 610, the first mobile robot moves from the goal location. In block 612, the second mobile robot moves to the goal location. The method includes determining a second position of the second mobile robot at the goal location. The second position may be determined by the second mobile robot with respect to a second map.

[0076] Blocks 602-610 are repeated for multiple goal points, via decision block 612, until a sufficient number of goal points have been used. In some embodiments, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 25, 30, 50, or more goal points can be used. In some cases, using more goal points can improve the accuracy of the determined transformation. However, it has been determined that using 5, 10, or 20 goal points results in a sufficiently accurate transformation with an accuracy of less than 100 mm.

[0077] Once a sufficient number of goal points have been used, a transformation that correlates the map information of the first and second mobile robots is determined based on the determined first and second locations in block 616. The transformation may be used to correlate the map information in the first map with the map information in the second map, thereby facilitating the sharing of map information between the first and second mobile robots.

[0078] FIG. 7 shows exemplary steps in another embodiment of a process for determining map transformations between two mobile robots R1 and R2. Advantageously, in some embodiments, this process can be performed in an automated, automatic, and / or unsupervised manner. This process may be used to synchronize map data from different mobile robots. This process may be used to accurately represent the mobile robots' position and trajectory information within a shared (or common) reference coordinate system. In this example, a first mobile robot R1 (e.g., a target robot) travels through multiple goal points G1-G6, recording and / or reporting its position relative to its own map at each goal point. A second mobile robot R2 observes the first mobile robot R1 at each goal point (using its own environmental sensors). The second mobile robot R2 or the robot management system 200 can determine the location of each of the multiple goal points based on the observed location of the first mobile robot R1. For example, while the first mobile robot R1 is at each goal point, the second mobile robot R2 can use its environmental sensors to determine the location of the first mobile robot R1 relative to the second mobile robot R2's current location. For example, the distance and direction to the first mobile robot R1 can be determined. Using this information and the second mobile robot R2's current location within its map, the second mobile robot R2 or the robot management system can determine the locations of the goal points G1-G6 on the second mobile robot R2's map.

[0079] In some embodiments, the second mobile robot R2 may not move at all, as long as it can accurately observe the distance and direction to the first mobile robot R1 while the first mobile robot R1 is at each goal point. In some embodiments, the second mobile robot R2 may follow (closely or somewhat loosely) the first mobile robot R1 as it moves through goal points G1-G6.

[0080] In the embodiment shown in FIG. 7, the first mobile robot R1 has traveled through each of the goal points G1-G6 and is currently located at goal point G6. At each goal point, the first mobile robot R1 records and / or reports its location within its map (R1 column in the table). The second mobile robot R2 observes the first mobile robot R1 at each goal point, for example, by determining the position of the first mobile robot R1 relative to its current location. This information can be used to determine the location of each goal point on the second mobile robot R2's map (R2 column in the table). In this way, for each goal point G1-G6, a data pair (R1 data, R2 data) is provided. By correlating this data, the transformation between the coordinate systems of the two mobile robots R1 and R2 can be determined, as described above.

[0081] In some embodiments, the methods, techniques, microprocessors, and / or controllers described herein are implemented by one or more specially designed computing devices. The specially designed computing devices may be hardwired to execute the techniques or may comprise digital electronic devices, such as one or more application-specific integrated circuits (ASICs) or field-programmable gate arrays (FPGAs), persistently programmed to execute the techniques. Alternatively, the specially designed computing devices may comprise one or more general-purpose hardware processors programmed to execute the techniques according to program instructions in firmware, memory, other storage, or a combination thereof. The instructions may be stored in RAM memory, flash memory, ROM memory, EPROM memory, EEPROM memory, registers, a hard disk, a removable disk, a CD-ROM, or any other form of non-transitory computer-readable storage medium. Such specially designed computing devices may combine custom hardwired logic, ASICs, or FPGAs with custom programming to achieve the techniques. The specially designed computing devices may be desktop computer systems, server computer systems, portable computer systems, handheld devices, network devices, or other devices or combinations of devices incorporating hardwired and / or program logic to implement the techniques.

[0082] The microprocessors or controllers described herein may be coordinated by operating system software. In other embodiments, a computing device may be controlled by its own operating system. A conventional operating system provides a variety of functions, such as controlling and scheduling computer processes, providing memory management, file systems, networking, I / O services, and providing user interface functionality such as a graphical user interface ("GUI"), for executing computer processes.

[0083] The microprocessors and / or controllers described herein may implement the techniques described herein using customized hardwired logic, one or more ASICs or FPGAs, firmware, and / or program logic that custom-tailor the microprocessor and / or controller. According to some embodiments, portions of the techniques disclosed herein are performed by the controller in response to execution of one or more sequential instructions contained in a memory. Such instructions may be loaded into the memory from another storage medium, such as a memory device. Execution of the sequences of instructions contained in the memory causes the processor or controller to perform the process steps described herein. In alternative embodiments, hardwired circuitry may be used in place of or in combination with software instructions.

[0084] Furthermore, the various illustrative logic blocks and modules described in connection with the embodiments disclosed herein may be implemented or executed by a machine designed to perform the functions described herein, such as a processor device, a digital signal processor (DSP), an application-specific integrated circuit (ASIC), a field-programmable gate array (FPGA) or other programmable logic device, discrete gate or transistor logic, discrete hardware components, or a combination thereof. The processor device may be a microprocessor, but alternatively, the processor device may be a controller, microcontroller, or state machine, combinations thereof, etc. The processor device may comprise electrical circuitry configured to process computer-executable instructions. In another embodiment, the processor device comprises an FPGA or other programmable device that performs logical operations without processing computer-executable instructions. The processor device may be implemented as a combination of computing devices, such as a combination of a DSP and a microprocessor, multiple microprocessors, one or more microprocessors in combination with a DSP core, or any other such configuration. While described herein primarily with respect to digital technology, a processor unit may comprise primarily analog components. For example, some or all of the technology described herein may be implemented with analog circuitry or mixed analog and digital circuitry.

[0085] Unless the context clearly requires otherwise, throughout this specification and claims, terms such as "comprises," "includes," "includes," and the like are intended to be inclusive, rather than exclusive or exhaustive, meaning "including, but not limited to." Additionally, the terms "coupled" or "connected," as generally used herein, refer to two or more elements, either directly connected or connected via one or more intermediate elements. Furthermore, the terms "herein," "above," "below," and similar terms, when used in this application, refer to this application as a whole, not to specific portions of this application. Where the context permits, words using singular or plural numbers herein can also include the respective plural or singular numbers. The word "or" in reference to a list containing two or more items is intended to encompass any item in the list, all items in the list, and any combination of items in the list. All numerical values ​​provided herein are intended to encompass similar values ​​within the limits of measurement error.

[0086] While the present disclosure includes specific embodiments and examples, those skilled in the art will understand that the scope of the present disclosure extends beyond the specifically disclosed embodiments to other alternative embodiments and / or applications, as well as obvious modifications and equivalents thereof. Moreover, while several variations of the embodiments have been shown and described in detail, other modifications will be readily apparent to those skilled in the art based on this disclosure. It is also intended that various combinations or subcombinations of specific features and aspects of the embodiments be made and still fall within the scope of the present disclosure. It should also be understood that various features and aspects of the disclosed embodiments can be combined with or substituted for one another to form embodiments of various aspects. Any methods disclosed herein need not be performed in the order described. Therefore, it is not intended that the scope of the present disclosure be limited to the specific embodiments described above.

[0087] Conditional expressions such as "can," "could," "might," or "may," unless otherwise specified or understood otherwise by the context in which they are used, are generally intended to indicate that certain features, elements, and / or steps are included in one embodiment, but may not be included in other embodiments. Thus, such conditional expressions are generally not intended to imply that the features, elements, and / or steps are in any way required by one or more embodiments, or that one or more embodiments necessarily include logic for determining whether those features, elements, and / or steps are included or performed in a particular embodiment, with or without user input or prompting. Headings used herein are for the convenience of the reader and are not intended to limit the scope.

[0088] Furthermore, the devices, systems, and methods described herein are susceptible to various modifications and alternative forms, specific examples of which are shown in the drawings and described in detail herein. However, it should be understood that the disclosure is not limited to the particular forms or methods disclosed, but rather includes all modifications, equivalents, and alternatives falling within the spirit and scope of the various embodiments described. Furthermore, disclosure herein of particular features, aspects, methods, properties, qualities, attributes, elements, etc., associated with an example or embodiment can be used in all other examples or embodiments disclosed herein. The methods disclosed herein need not be performed in the order described. While the methods disclosed herein may include specific acts performed by a practitioner, these methods may also include, explicitly or implicitly, the direction of those acts by a third party.

[0089] Additionally, ranges disclosed herein encompass all overlaps, subranges, and combinations thereof. Phrases such as "up to," "at least," "greater than," "less than," and "between" may include the stated numerical value. Numerical values ​​preceded by terms such as "about" or "approximately" are inclusive of the stated numerical value and should be interpreted accordingly (e.g., as precisely as reasonably possible under the circumstances, e.g., ±5%, ±10%, ±15%, etc.). For example, "about 3.5 mm" includes "3.5 mm." Phrases preceded by terms such as "substantially" are inclusive of the stated phrase and should be interpreted accordingly (e.g., as precisely as reasonably possible under the circumstances). For example, "substantially constant" includes "constant."

Claims

1. 1. A method for determining map transformations between mobile robots, comprising: a first mobile robot is moved to each of a plurality of goal points within a working environment, and while the first mobile robot is positioned at each of the plurality of goal points, determining a first location of the first mobile robot within a first map associated with the first mobile robot; and determining an observed position of the first mobile robot relative to a position of the second mobile robot based on data from at least one environmental sensor of the second mobile robot; moving the second mobile robot to each of the observation locations and determining a second location of the second mobile robot within a second map associated with the second mobile robot while the second mobile robot is located at each of the observation locations; determining a transformation between the first map associated with the first mobile robot and the second map associated with the second mobile robot based on the determined first locations and second locations.

2. 10. The method of claim 1, wherein determining the observed position of the first mobile robot relative to the position of the second mobile robot includes determining a distance and a direction from the second mobile robot to the first mobile robot.

3. The method of claim 2 , wherein moving the second mobile robot to each observation location includes moving the second mobile robot according to the determined distance and direction.

4. The method of claim 3 , wherein moving the second mobile robot according to the determined distance and direction comprises encoder-based movement.

5. The method of claim 1 , wherein the second mobile robot sequentially follows the first mobile robot through each of the plurality of goal points.

6. The method of claim 1 , wherein a first coordinate system of the first map is different from a second coordinate system of the second map.

7. receiving position data from the first mobile robot; applying the transformation to the location data to generate transformed location data; The method of claim 1 , further comprising: communicating the transformed position data to the second mobile robot.

8. receiving position data from the second mobile robot; applying the transformation to the location data to generate transformed location data; The method of claim 1 , further comprising: communicating the transformed position data to the first mobile robot.

9. The method of claim 1 , wherein the plurality of finish points comprises a plurality of predetermined points.

10. The method of claim 1 , wherein the plurality of goal points are determined by the first mobile robot based on a current position of the first mobile robot.

11. The method of claim 1 , wherein the transformation is configured to express map-based data from the first mobile robot and the second mobile robot in a common reference coordinate system.

12. 1. A mobile robot management system, comprising: a communication module configured to communicate with at least a first mobile robot and a second mobile robot within the working environment; a processor; a computer-readable memory in communication with the processor; the memory stores instructions executable by the processor; The instructions, when executed by the processor, cause the system to: moving the first mobile robot to each of a plurality of goal points within the working environment, and while the first mobile robot is located at each of the plurality of goal points, determining a first location of the first mobile robot within a first map associated with the first mobile robot; and determining an observed position of the first mobile robot relative to a position of the second mobile robot based on data from at least one environmental sensor of the second mobile robot; moving the second mobile robot to each of the observation locations, and determining a second location of the second mobile robot within a second map associated with the second mobile robot while the second mobile robot is located at each of the observation locations; determining a transformation between the first map associated with the first mobile robot and the second map associated with the second mobile robot based on the determined first locations and the determined second locations.

13. 13. The system of claim 12, wherein determining the observed position of the first mobile robot relative to the position of the second mobile robot includes determining a distance and a direction from the second mobile robot to the first mobile robot.

14. 14. The system of claim 13, wherein moving the second mobile robot to each observation location includes moving the second mobile robot according to the determined distance and direction.

15. The system of claim 14 , wherein moving the second mobile robot according to the determined distance and direction comprises encoder-based movement.

16. The system of claim 12 , wherein the second mobile robot sequentially follows the first mobile robot through each of the plurality of goal points.

17. The system of claim 12 , wherein a first coordinate system of the first map is different from a second coordinate system of the second map.

18. The processor further comprises: receiving position data from the first mobile robot; applying the transformation to the location data to generate transformed location data; The system of claim 12 , further configured to communicate the transformed position data to the second mobile robot.

19. receiving position data from the second mobile robot; applying the transformation to the location data to generate transformed location data; The system of claim 12 , further comprising communicating the transformed position data to the first mobile robot.

20. The system of claim 12 , wherein the plurality of finish points comprises a plurality of predetermined points.

21. The system of claim 12 , wherein the plurality of goal points are determined by the first mobile robot based on a current position of the first mobile robot.

22. The system of claim 12 , wherein the transformation is configured to express map-based data from the first mobile robot and the second mobile robot in a common reference coordinate system.

23. A mobile robot, a drive system configured to move the mobile robot; and at least one environmental sensor; a processor; a computer-readable memory in communication with the processor; the memory stores instructions executable by the processor; The instructions, when executed by the processor, cause the mobile robot to: For each of multiple goal points through which the target mobile robot moves, receiving from the target mobile robot a first location of the target mobile robot within a first map associated with the target mobile robot; determining an observed position of the target mobile robot relative to a current position of the mobile robot based on data from the at least one environmental sensor of the mobile robot; moving the mobile robot to the observation location, and determining a second location of the mobile robot within a second map associated with the mobile robot while the mobile robot is located at the observation location; determining a transformation between the first map associated with the target mobile robot and the second map associated with the mobile robot based on the determined first locations and the determined second locations.

24. 24. The mobile robot of claim 23, wherein the mobile robot is configured to sequentially follow the target mobile robot through each of the plurality of goal locations.

25. 24. The mobile robot of claim 23, wherein the mobile robot is configured to determine an observed position of the target mobile robot relative to the current position of the mobile robot by determining a distance and direction from the mobile robot to the target mobile robot.

26. 26. The mobile robot of claim 25, wherein the mobile robot is configured to travel to each observation location by moving according to the determined distance and direction.

27. 27. The mobile robot of claim 26, wherein the mobile robot is configured to move according to the determined distance and direction using encoder-based movement.

28. 24. The mobile robot of claim 23, wherein a first coordinate system of the first map is different from a second coordinate system of the second map.

29. The mobile robot further comprises: receiving position data from the target mobile robot; 24. The mobile robot of claim 23, configured to apply the transformation to the position data to generate transformed position data.

30. A mobile robot, a drive system configured to move the mobile robot; and at least one environmental sensor; a processor; a computer-readable memory in communication with the processor; the memory stores instructions executable by the processor; The instructions, when executed by the processor, cause the mobile robot to: For each of multiple goal points through which the target mobile robot moves, receiving from the target mobile robot a first location of the target mobile robot within a first map associated with the target mobile robot; determining an observed position of the target mobile robot relative to a current position of the mobile robot based on data from the at least one environmental sensor of the mobile robot; determining a second location of the target mobile robot within a second map associated with the mobile robot based on the observed location; determining a transformation between the first map associated with the target mobile robot and the second map associated with the mobile robot based on the determined first locations and the determined second locations.

31. 31. The mobile robot of claim 30, wherein the mobile robot is configured to sequentially follow the target mobile robot through each of the plurality of goal locations.

32. 31. The mobile robot of claim 30, wherein the mobile robot is configured to determine an observed position of the target mobile robot relative to the current position of the mobile robot by determining a distance and direction from the mobile robot to the target mobile robot.

33. 33. The mobile robot of claim 32, wherein the mobile robot is configured to determine the second position of the target mobile robot relative to the current position of the mobile robot based on the current position of the mobile robot and the determined distance and direction.

34. 31. The mobile robot of claim 30, wherein a first coordinate system of the first map is different from a second coordinate system of the second map.

35. The mobile robot further comprises: receiving position data from the target mobile robot; 31. The mobile robot of claim 30, configured to apply the transformation to the position data to generate transformed position data.

36. 1. A method for determining map transformations between mobile robots, comprising: a first mobile robot is moved to each of a plurality of goal points within a working environment, and while the first mobile robot is positioned at each of the plurality of goal points, determining a first location of the first mobile robot within a first map associated with the first mobile robot; and determining an observed position of the first mobile robot relative to a position of the second mobile robot based on data from at least one environmental sensor of the second mobile robot; determining a second location of the first mobile robot within a second map associated with the second mobile robot based on the observed location; determining a transformation between the first map associated with the first mobile robot and the second map associated with the second mobile robot based on the determined first locations and second locations.

37. 37. The method of claim 36, wherein determining the observed position of the first mobile robot relative to the position of the second mobile robot includes determining a distance and a direction from the second mobile robot to the first mobile robot.

38. 37. The method of claim 36, wherein the second mobile robot sequentially follows the first mobile robot through each of the plurality of goal locations.

39. 37. The method of claim 36, wherein a first coordinate system of the first map is different from a second coordinate system of the second map.

40. receiving position data from the first mobile robot; applying the transformation to the location data to generate transformed location data; 37. The method of claim 36, further comprising communicating the transformed position data to the second mobile robot.

41. receiving position data from the second mobile robot; applying the transformation to the location data to generate transformed location data; 37. The method of claim 36, further comprising communicating the transformed position data to the first mobile robot.

42. 37. The method of claim 36, wherein the plurality of finish points comprises a plurality of predetermined points.

43. 37. The method of claim 36, wherein the plurality of goal points are determined by the first mobile robot based on a current position of the first mobile robot.

44. 37. The method of claim 36, wherein the transformation is configured to express map-based data from the first mobile robot and the second mobile robot in a common reference coordinate system.