The present disclosure relates to systems and methods for controlling autonomous mobile robots in a manufacturing environment.
The statements in this section merely provide background information related to the present disclosure and may not constitute prior art.
A manufacturing environment can include one or more mobile robots that perform various automated tasks, such as moving materials and tools within the manufacturing environment. The mobile robots may autonomously travel along a defined path to various locations within the manufacturing environment to perform the various automated tasks. However, the defined paths of the mobile robots may intersect at a given time, thereby causing the robots to dynamically generate new routes and therefore inhibiting the efficiency of the automated tasks performed by the mobile robots. These issues with the use of mobile robots in a manufacturing environment, among other issues with mobile robots, are addressed by the present disclosure.
This section provides a general summary of the disclosure and is not a comprehensive disclosure of its full scope or all of its features.
The present disclosure provides a method for defining a route of a first autonomous mobile robot (AMR) from among a plurality of AMRs in a manufacturing environment. The method includes identifying a set of intermediate grids of a grid map of the manufacturing environment based on a location of the first AMR and a destination grid of the grid map, where the set of intermediate grids and the destination grid indicate a traversable region of the manufacturing environment and has a predefined size, and the method includes appending temporal information to the set of intermediate grids based on a mobility characteristic of the first AMR, where the temporal information of the set of intermediate grids indicates a time of arrival for each intermediate grid from among the set of intermediate grids. The method includes generating a first reservation based on the set of intermediate grids and the temporal information of the set of intermediate grids, determining a state of the first reservation based on priority information associated with the plurality of AMRs and one or more additional reservations associated with the one or more additional AMRs from among the plurality of AMRs, and assigning the first reservation to the first AMR in response to the first reservation being in an available state.
In one form, the set of intermediate grids are identified based on a continuous path planning routine and a spatial buffer associated with the first AMR. In one form, the mobility characteristic is based on a velocity of the first AMR, a payload mass of the first AMR, or a combination thereof. In one form, the temporal information is further based on a communication offset time associated with the first AMR. In one form, the priority information is based on a payload type of the plurality of AMRs, a physical characteristic of the plurality of AMRs, or a combination thereof.
In one form, the method further includes determining the state of the first reservation is in an unavailable state in response to the one or more additional reservations including the set of intermediate grids. In one form, the method further includes determining the state of the first reservation is in an unavailable state in response to the temporal information of the set of intermediate grids of the first reservation corresponding to additional temporal information of the set of intermediate grids of the one or more additional reservations. In one form, the method further includes determining the state of the first reservation based on first priority information associated with the first AMR and additional priority information associated with the one or more additional AMRs, where the state of the first reservation is in the unavailable state in response to the first priority information indicating the first AMR has a lower priority than the one or more additional AMRs. In one form, the method further includes determining the state of the first reservation is in the available state in response to the one or more additional reservations not including the set of intermediate grids. In one form, the method further includes determining the state of the first reservation is in the available state in response to the one or more additional reservations including the set of intermediate grids and the temporal information of the set of intermediate grids of the first reservation not corresponding to additional temporal information of the set of intermediate grids of the one or more additional reservations. In one form, the method further includes determining the state of the first reservation based on first priority information associated with the first AMR and additional priority information associated with the one or more additional AMRs and determining the state of the first reservation is in the available state in response to the first priority information indicating the first AMR has a higher priority than the one or more additional AMRs. In one form, the method further includes removing an intermediate grid from the set of intermediate grids of the first reservation in response to the first reservation being in an unavailable state.
The present disclosure provides a system for defining a route of a first autonomous mobile robot (AMR) from among a plurality of AMRs in a manufacturing environment. The system includes a processor and a nontransitory computer-readable medium including instructions that are executable by the processor. The instructions include identifying a set of intermediate grids of a grid map of the manufacturing environment based on a location of the first AMR and a destination grid of the grid map, where the set of intermediate grids and the destination grid indicate a traversable region of the manufacturing environment and has a predefined size. The instructions include appending temporal information to the set of intermediate grids based on a mobility characteristic of the first AMR, where the temporal information of the set of intermediate grids indicates a time of arrival for each intermediate grid from among the set of intermediate grids, and where the mobility characteristic of the first AMR is based on a velocity of the first AMR, a payload mass of the first AMR, or a combination thereof. The instructions include generating a first reservation based on the set of intermediate grids and the temporal information of the set of intermediate grids and determining a state of the first reservation based on priority information associated with the plurality of AMRs and one or more additional reservations associated with the one or more additional AMRs from among the plurality of AMRs, where the priority information is based on a payload type of the plurality of AMRs, a physical characteristic of the plurality of AMRs, or a combination thereof. The instructions include assigning the first reservation to the first AMR in response to the first reservation being in an available state.
In one form, the instructions include determining the state of the first reservation is in an unavailable state in response to the one or more additional reservations including the set of intermediate grids. In one form, the instructions include determining the state of the first reservation is in an unavailable state in response to the temporal information of the set of intermediate grids of the first reservation corresponding to additional temporal information of the set of intermediate grids of the one or more additional reservations. In one form, the instructions include determining the state of the first reservation based on first priority information associated with the first AMR and additional priority information associated with the one or more additional AMRs, where the state of the first reservation is in the unavailable state in response to the first priority information indicating the first AMR has a lower priority than the one or more additional AMRs. In one form, the instructions include determining the state of the first reservation is in the available state in response to the one or more additional reservations not including the set of intermediate grids. In one form, the instructions include determining the state of the first reservation is in the available state in response to the one or more additional reservations including the set of intermediate grids and the temporal information of the set of intermediate grids of the first reservation not corresponding to additional temporal information of the set of intermediate grids of the one or more additional reservations. In one form, the instructions include determining the state of the first reservation based on first priority information associated with the first AMR and additional priority information associated with the one or more additional AMRs and determining the state of the first reservation is in the available state in response to the first priority information indicating the first AMR has a higher priority than the one or more additional AMRs. In one form, the instructions include removing an intermediate grid from the set of intermediate grids of the first reservation in response to the first reservation being in an unavailable state.
Further areas of applicability will become apparent from the description provided herein. It should be understood that the description and specific examples are intended for purposes of illustration only and are not intended to limit the scope of the present disclosure.
In order that the disclosure may be well understood, there will now be described various forms thereof, given by way of example, reference being made to the accompanying drawings, in which:
The drawings described herein are for illustration purposes only and are not intended to limit the scope of the present disclosure in any way.
The following description is merely exemplary in nature and is not intended to limit the present disclosure, application, or uses. It should be understood that throughout the drawings, corresponding reference numerals indicate like or corresponding parts and features.
The present disclosure provides a reservation management system that controls the movement of a plurality of autonomous mobile robots of the manufacturing environment. Specifically, the reservation management system reserves a defined path for each of the autonomous mobile robots based on various parameters, such as continuous path planning routine, temporal information associated with various discretized locations of the defined path, and priority information associated with the autonomous mobile robots. Accordingly, the reservation management system enables autonomous mobile robots having different communication protocols, payloads, and mobility characteristics to autonomously navigate within the manufacturing environment such that path and temporal conflicts are inhibited.
Referring to
In one form, the AMRs 10 are mobile robots that are partially or fully autonomous and are configured to autonomously move to various locations of the manufacturing environment 5 based on a reservation received from the RMS 30. To autonomously move itself, an AMR control module 14 is configured to control various movement systems of the AMR 10 (e.g., propulsion systems, steering systems, and/or brake systems) via actuators and based on one or more autonomous navigation sensors of the AMR 10 (e.g., a global navigation satellite system (GNSS) sensor, an imaging sensor, a local position sensor, among others). Furthermore, the AMR control module 14 is configured to operate the actuators to control the motion of one or more robotic links (e.g., robotic arms) attached thereto and thereby perform one or more automated tasks defined by a task module 12. The one or more automated tasks may refer to one or more motions the AMR 10 performs to achieve a desired result (e.g., removing a part from a bin, loading a workpiece into a fixture, transporting a payload from one location to another, among others).
In one form, the AMRs 10 include a mobility characteristic module 16, a physical characteristic module 18, and a payload characteristic module 20. In one form, the mobility characteristic module 16 is configured to broadcast a mobility characteristic of the AMRs 10 to the RMS 30. As used herein, “mobility characteristic” refers to any quantitative or qualitive mobility property of the AMR 10. Example mobility characteristics of the AMR 10 include, but are not limited to, a velocity (e.g., a current velocity or a maximum operating velocity), a payload mass (e.g., the impact of a given payload mass value with respect to the AMR velocity), and/or an AMR type (e.g., a walking AMR, a rolling AMR, a flying AMR, among other AMR types).
In one form, the physical characteristic module 18 is configured to broadcast a physical characteristic of the AMRs 10 to the RMS 30. As used herein, “physical characteristic” refers to any quantitative or qualitive physical property of the AMR 10. Example physical characteristics of the AMR 10 include, but are not limited to, a size, weight, and/or dimensions of the AMR 10. In one form, the payload characteristic module 20 is configured to broadcast a payload characteristic of the AMRs 10 to the RMS 30. As used herein, “payload characteristic” refers to any quantitative or qualitive property of the payload of the AMR 10. Example payload characteristics, but are not limited to, a payload type, size, weight, and/or dimensions of the payload of the AMR 10.
To perform the functionality described herein, the AMRs 10 may include one or more processor circuits that are configured to execute machine-readable instructions stored in one or more nontransitory computer-readable mediums, such as a random-access memory (RAM) circuit and/or read-only memory (ROM) circuit. The AMRs 10 may also include other components for performing the operations described herein, such as movement drivers and systems, transceivers, routers, and/or input/output interface hardware.
In one form, the RMS 30 includes a grid map 32, a grid identification module 34, a temporal information module 36, a reservation generation module 38, and a state module 40. In one form, the grid map 32 is a map of the manufacturing environment 5 that includes a plurality of grids defined by a plurality of intersecting horizontal and vertical lines. In one form, each grid represents a traversable region of the manufacturing environment 5 (e.g., a two-dimensional (2D) or three-dimensional (3D) region) and has a predefined size. In one form, each grid of the grid map 32 has the same size and shape, but it should be understood that the grids may have varying sizes and/or shapes in other forms.
In one form, the grid identification module 34 is configured to identify a location of the AMRs 10 and a destination grid of the grid map 32 associated with each AMR 10. As an example and as shown in
In one form, the grid identification module 34 is configured to identify a set of intermediate grids of the grid map 32 based on a location of the AMRs 10 and the destination grid. In one form, the grid identification module 34 identifies the set of intermediate grids by using known path planning routines, such as a continuous path planning routine (e.g., a theta-star path planning routine, an a-star path planning routine, among others) or a discontinuous path planning routine.
In one form, the grid identification module 34 is configured to identify the set of intermediate grids based on a spatial buffer associated with the AMR 10. As used herein, “spatial buffer” refers to an area or region surrounding the AMR 10 in which the AMR 10 utilizes when performing an automated task and/or autonomously traversing the manufacturing environment 5 to satisfy various predefined performance and safety constraints. As an example, based on the size of the AMR 10, the spatial buffer of the AMRs 10 may cause the grid identification module 34 to identify one or more adjacent grids of the AMR 10 relative to a given grid when the AMR 10 is traversing through the given grid.
As an example and as shown in
In one form, the temporal information module 36 is configured to append temporal information to the set of intermediate grids. In one form, the temporal information indicates, for each intermediate grid, a time of arrival of the AMR 10, a communication offset time associated with the AMR 10, or a combination thereof. As used herein, “communication offset time” refers to a communication delay between the AMRs 10 and the RMS 30 resulting from, for example, processing speeds of the AMR 10 and the RMS 30, delays associated with a given communication protocol, noise pollution of the manufacturing environment 5, among other factors that may cause a communication delay between the AMRs 10 and the RMS 30.
In one form, the temporal information module 36 is configured to append the temporal information to the set of intermediate grids based on the mobility characteristic as determined by the mobility characteristic module 16 (e.g., the velocity of the AMR 10, the payload mass of the AMR 10, and/or the type of AMR 10). As an example and as shown in table 200 of
In one form, the reservation generation module 38 is configured to generate a reservation for each of the AMRs 10 based on the set of intermediate grids and the temporal information associated with the set of intermediate grids.
In one form, the state module 40 is configured to determine a state of the reservation of each of the AMRs 10. In one form, the state module 40 determines whether the reservation is in an available state or an unavailable state based on a comparison between the intermediate grids of a plurality of reservations, the temporal information of the plurality of reservations, the priority information of the AMRs 10, or a combination thereof. In one form, state module 40 determines the priority information based on a predefined control hierarchy and at least one of a payload type of the AMRs 10 as determined by the payload characteristic module 20 and a physical characteristic of the plurality of AMRs 10 as determined by the physical characteristic module 18.
In one form, a first reservation associated with the AMR 10-1 is in the unavailable state when one or more of the intermediate grids are also included as part of another reservation associated with another AMR 10. In another form, the first reservation associated with the AMR 10-1 is in the unavailable state when one or more of the intermediate grids are included as part of another reservation associated with another AMR 10 and have corresponding temporal information (i.e., the temporal information of the one or more shared intermediate grids have overlapping time ranges). In one form, the first reservation associated with the AMR 10-1 is in the unavailable state when one or more of the intermediate grids are included as part of a second reservation associated with the AMR 10-2, the one or more shared intermediate grids have corresponding temporal information, and the AMR 10-1 has a lower priority than the AMR 10-2 (e.g., the payload type of the AMR 10-2 has a type associated with a high priority value as determined by the predefined control hierarchy).
In one form, the first reservation associated with the AMR 10-1 is in the available state when the intermediate grids are not included as part of another reservation associated with one or more additional AMRs 10. In one form, the first reservation associated with the AMR 10-1 is in the available state when one or more of the intermediate grids are included as part of another reservation and do not have corresponding temporal information (i.e., the temporal information of the one or more shared intermediate grids do not have overlapping time ranges). In one form, the first reservation associated with the AMR 10-1 is in the available state when one or more of the intermediate grids are also included as part of a second reservation associated with the AMR 10-2, the one or more of the intermediate grids have corresponding temporal information, and the AMR 10-1 has a higher priority than the AMR 10-2 as determined by the predefined control hierarchy.
As an example and as shown in the table 200 of
In one form, when the state module 40 determines that a reservation associated with an AMR is in the unavailable state, the state module 40 is configured to iteratively perform a corrective action to the reservation until it is in the available state. In one form, the corrective action includes instructing the grid identification module 34 to remove an intermediate grid from the set of intermediate grids and to add new grids to the set of intermediate grids based on the continuous path planning routine and/or instructing the temporal information module 36 to modify the temporal information of one or more grids from among the set of intermediate grids. In one form, the state module 40 is configured to perform the corrective action in response to the AMR 10 having a deviation in an expected or predetermined mobility characteristic that causes the arrival or departure time at one of the intermediate grids to deviate from the corresponding temporal information.
As an example and as shown in table 202 of
As another example and as shown in
Referring to
While routine 400 illustrates a routine for defining the path and temporal information of the AMR 10 prior to autonomously traveling to the destination grid, it should be understood that the routine 400 may be continuously performed while the AMR 10 autonomously travels to the destination grid to account for dynamic changes in the manufacturing environment 5. As an example, the RMS 30 and the AMR 10 may continuously perform the routine 400 to dynamically accommodate one or more unexpected obstacles provided at the intermediate grids of the reservation, an unexpected increase or decrease of the velocity of the AMR 10, or a combination thereof.
Unless otherwise expressly indicated herein, all numerical values indicating mechanical/thermal properties, compositional percentages, dimensions and/or tolerances, or other characteristics are to be understood as modified by the word “about” or “approximately” in describing the scope of the present disclosure. This modification is desired for various reasons including industrial practice, material, manufacturing, and assembly tolerances, and testing capability.
As used herein, the phrase at least one of A, B, and C should be construed to mean a logical (A OR B OR C), using a non-exclusive logical OR, and should not be construed to mean “at least one of A, at least one of B, and at least one of C.”
In this application, the term “controller” and/or “module” may refer to, be part of, or include: an Application Specific Integrated Circuit (ASIC); a digital, analog, or mixed analog/digital discrete circuit; a digital, analog, or mixed analog/digital integrated circuit; a combinational logic circuit; a field programmable gate array (FPGA); a processor circuit (shared, dedicated, or group) that executes code; a memory circuit (shared, dedicated, or group) that stores code executed by the processor circuit; other suitable hardware components that provide the described functionality; or a combination of some or all of the above, such as in a system-on-chip.
The term memory is a subset of the term computer-readable medium. The term computer-readable medium, as used herein, does not encompass transitory electrical or electromagnetic signals propagating through a medium (such as on a carrier wave); the term computer-readable medium may therefore be considered tangible and non-transitory. Non-limiting examples of a non-transitory, tangible computer-readable medium are nonvolatile memory circuits (such as a flash memory circuit, an erasable programmable read-only memory circuit, or a mask read-only circuit), volatile memory circuits (such as a static random access memory circuit or a dynamic random access memory circuit), magnetic storage media (such as an analog or digital magnetic tape or a hard disk drive), and optical storage media (such as a CD, a DVD, or a Blu-ray Disc).
The apparatuses and methods described in this application may be partially or fully implemented by a special purpose computer created by configuring a general-purpose computer to execute one or more particular functions embodied in computer programs. The functional blocks, flowchart components, and other elements described above serve as software specifications, which can be translated into the computer programs by the routine work of a skilled technician or programmer.
The description of the disclosure is merely exemplary in nature and, thus, variations that do not depart from the substance of the disclosure are intended to be within the scope of the disclosure. Such variations are not to be regarded as a departure from the spirit and scope of the disclosure.