System and method for adaptive motor control for autonomous mobile robots
Patent Information
- Application Number
- CN202510585558.9
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Priority Date
- 2025-03-12
- Filing Date
- 2025-05-08
- Publication Date
- 2026-09-15
Smart Images

Figure CN122747653A_ABST
Abstract
Description
[0001] Foreword
[0002] The information provided in this section is for the purpose of presenting the general context of this disclosure. The work of the currently attributed inventors, to the extent described in this section, and aspects of the description that might not otherwise be considered prior art at the time of filing, are neither expressly nor implicitly acknowledged as prior art to this disclosure. Technical Field
[0003] This disclosure generally relates to systems and methods for adaptive motor control of autonomous mobile robots (AMRs) for varying payloads. AMRs are complex machines designed to navigate and perform tasks in a variety of environments without human intervention. These robots utilize a combination of sensors, cameras, and advanced algorithms to perceive their surroundings, make decisions, and move efficiently. AMRs are commonly used in industries such as manufacturing, warehousing, healthcare, and logistics, where they improve productivity by automating repetitive tasks, transporting goods, and assisting with inventory management. Background Technology
[0004] Current AMR systems typically incorporate payload unit sensors positioned at the robot's corners. These sensors are crucial for detecting and measuring the weight of the payload, ensuring stability and safety during transport. However, implementing payload unit sensors can be complex due to the need for precise calibration and integration with the robot's control system. Furthermore, AMRs are generally expected to handle a wide range of payloads, from zero (0) to 1500 pounds, requiring adaptable sensor systems to maintain performance and reliability across different applications. Therefore, providing lightweight sensors while compensating for varying payloads could allow for improved AMR performance. Summary of the Invention
[0005] One aspect of this disclosure provides a computer-implemented method for adaptive motor control of an autonomous mobile robot (AMR) for varying payloads. When executed on data processing hardware, the method causes the data processing hardware to perform operations including real-time detection that a vehicle transporting products is at a nominal speed. In response to detecting that the vehicle is at a nominal speed, the operations further include receiving propulsion data from the vehicle's propulsion system, predicting an estimate of the payload of the products transported by the vehicle using a payload estimation model based on the propulsion data, and determining whether the payload estimate meets an estimation threshold. When the payload estimate exceeds the estimation threshold, the operations further include dynamically adjusting the controller gain of the propulsion system to optimize the propulsion system for the payload estimate.
[0006] Implementations of this disclosure may include one or more of the following optional features. In some implementations, the propulsion data includes one or more of current, velocity, or torque. In some examples, the payload estimation model is pre-trained during offline training. In these examples, the offline training process may pre-train the payload estimation model to predict the payload given input propulsion data.
[0007] In some embodiments, the operation further includes receiving the center of gravity of the vehicle transporting the product. In these embodiments, dynamically adjusting the controller gain of the propulsion system to optimize the propulsion system for payload estimation may also include adapting the propulsion system to constraints based on the center of gravity of the vehicle transporting the product. Constraints of the propulsion system may include one or more of acceleration, deceleration, or maximum speed. In some examples, the operation further includes adjusting the controller gain of the propulsion system using a nominal gain when the payload estimate does not exceed an estimated threshold. In some embodiments, real-time detection of the vehicle transporting the product at a nominal speed includes measuring propulsion data when the propulsion system starts or accelerates.
[0008] Another aspect of this disclosure provides a system for adaptive motor control of an AMR (Autonomous Mobile Regulator) with varying payload, the system including data processing hardware and memory hardware in communication with the data processing hardware. The memory hardware stores instructions that, when executed by the data processing hardware, cause the data processing hardware to perform operations including real-time detection that the vehicle transporting the product is at a nominal speed. In response to detecting that the vehicle is at a nominal speed, the operations further include receiving propulsion data from the vehicle's propulsion system, predicting an estimate of the payload of the product transported by the vehicle using a payload estimation model based on the propulsion data, and determining whether the payload estimate meets an estimation threshold. When the payload estimate exceeds the estimation threshold, the operations further include dynamically adjusting the controller gain of the propulsion system to optimize the propulsion system for the payload estimate.
[0009] This aspect may include one or more of the following optional features. In some implementations, the propulsion data includes one or more of current, velocity, or torque. In some examples, the payload estimation model is pre-trained during offline training. In these examples, the offline training process may pre-train the payload estimation model to predict the payload given input propulsion data.
[0010] In some embodiments, the operation further includes receiving the center of gravity of the vehicle transporting the product. In these embodiments, dynamically adjusting the controller gain of the propulsion system to optimize the propulsion system for payload estimation may also include adapting the propulsion system to constraints based on the center of gravity of the vehicle transporting the product. Constraints of the propulsion system may include one or more of acceleration, deceleration, or maximum speed. In some examples, the operation further includes adjusting the controller gain of the propulsion system using a nominal gain when the payload estimate does not exceed an estimated threshold. In some embodiments, real-time detection of the vehicle transporting the product at a nominal speed includes measuring propulsion data when the propulsion system starts or accelerates.
[0011] Another aspect of this disclosure provides a computer-implemented method for adaptive motor control of an AMR for varying payload, which, when executed on data processing hardware, causes the data processing hardware to perform operations including real-time detection that the propulsion system of the transport product is at a nominal speed. In response to detecting that the propulsion system is at a nominal speed, the operations further include predicting a payload estimate of the product using a payload estimation model, and dynamically adjusting the controller gain of the propulsion system to optimize the propulsion system for the product when the payload estimate exceeds an estimation threshold.
[0012] This aspect may include one or more of the following optional features. In some implementations, dynamically adjusting the controller gain of the propulsion system to optimize the propulsion system for the product also includes adjusting the constraints of the propulsion system based on the product's center of gravity.
[0013] Details of one or more embodiments of this disclosure are set forth in the accompanying drawings and the following description. Other aspects, features, and advantages will be apparent from the specification, drawings, and claims. Attached Figure Description
[0014] The accompanying drawings described herein are for illustrative purposes only for the selected configurations and are not intended to limit the scope of this disclosure.
[0015] Figure 1 This is a schematic diagram of an example system for adaptive motor control of an autonomous mobile robot (AMR) used to change payload.
[0016] Figure 2 yes Figure 1 A schematic diagram of an example component of the system.
[0017] Figure 3A and Figure 3B This is a schematic diagram of an AMR that transports varying payloads.
[0018] Figure 4 This is a flowchart illustrating an example arrangement of an adaptive motor control method for an AMR used to change the payload.
[0019] Figure 5 This is another flowchart illustrating an example of the operational layout of an adaptive motor control method for an AMR used to change the payload.
[0020] Throughout the accompanying drawings, corresponding reference numerals indicate the corresponding parts. Detailed Implementation
[0021] The exemplary configuration will now be described more fully with reference to the accompanying drawings. Exemplary configurations are provided so that this disclosure will be thorough and will fully communicate the scope of this disclosure to those skilled in the art. Specific details, such as examples of specific components, apparatus, and methods, are set forth to provide a thorough understanding of the configurations of this disclosure. It will be apparent to those skilled in the art that specific details are not required, that the exemplary configurations may be implemented in many different forms, and that the specific details and exemplary configurations should not be construed as limiting the scope of this disclosure.
[0022] The terminology used herein is for the purpose of describing particular exemplary configurations only and is not intended to be restrictive. As used herein, the singular articles “a,” “an,” and “the” may be intended to include plural forms as well, unless the context clearly indicates otherwise. The terms “comprises,” “comprising,” “including,” and “having” are inclusive and therefore specify the presence of features, steps, operations, elements, and / or components, but do not exclude the presence or addition of one or more other features, steps, operations, elements, components, and / or groups thereof. Unless specifically identified as an order of execution, the method steps, processes, and operations described herein should not be construed as requiring them to be performed in the particular order discussed or shown. Additional or alternative steps may be employed.
[0023] When an element or layer is referred to as being “on,” “joined to,” “connected to,” “attached to,” or “linked to” another element or layer, it may be directly on, joined to, connected to, attached to, or linked to the other element or layer, or there may be intermediate elements or layers present. Conversely, when an element is referred to as being “directly on,” “directly joined to,” “directly connected to,” “directly attached to,” or “directly linked to” another element or layer, there may be no intermediate elements or layers present. Other terms used to describe relationships between elements should be interpreted in a similar manner (e.g., “between” vs. “directly between,” “adjacent” vs. “directly adjacent,” etc.). As used herein, the term “and / or” includes any and all combinations of one or more of the associated listed items.
[0024] The terms “first,” “second,” “third,” etc., may be used herein to describe various elements, components, regions, layers, and / or parts. These elements, components, regions, layers, and / or parts should not be limited by these terms. These terms may be used only to distinguish one element, component, region, layer, or part from another. Unless the context clearly indicates otherwise, terms such as “first,” “second,” and other numerical terms do not imply order or sequence. Therefore, without departing from the teachings of the example configuration, the first element, component, region, layer, or part discussed below may be referred to as the second element, component, region, layer, or part.
[0025] In this application, including the following definitions, the term "module" may be replaced by the term "circuit". The term "module" may refer to, be part of, or include: application-specific integrated circuits (ASICs); digital, analog, or mixed-signal analog / digital discrete circuits; digital, analog, or mixed-signal analog / digital integrated circuits; combinational logic circuits; field-programmable gate arrays (FPGAs); processors (shared, dedicated, or grouped) that execute code; memories (shared, dedicated, or grouped) that store code executed by the processor; other suitable hardware components that provide the described functionality; or combinations of some or all of the foregoing, such as in a system-on-a-chip.
[0026] The term "code" as used above can include software, firmware, and / or microcode, and can refer to programs, routines, functions, classes, and / or objects. The term "shared processor" covers a single processor that executes some or all of the code from multiple modules. The term "group processor" covers a processor that, in combination with additional processors, executes some or all of the code from one or more modules. The term "shared memory" covers a single memory that stores some or all of the code from multiple modules. The term "group memory" covers memory that, in combination with additional memory, stores some or all of the code from one or more modules. The term "memory" can be a subset of the term "computer-readable medium." The term "computer-readable medium" does not include transient electrical and electromagnetic signals propagating through the medium, and therefore can be considered tangible and non-transitory memory. Non-limiting examples of non-transitory memory include tangible computer-readable media, which include non-volatile memory, magnetic memory, and optical memory.
[0027] The apparatus and methods described in this application can be implemented, in part or in whole, by one or more computer programs executed by one or more processors. The computer program includes processor-executable instructions stored on at least one non-transitory tangible computer-readable medium. The computer program may also include and / or depend on stored data.
[0028] A software application (i.e., a software resource) can refer to computer software that enables a computing device to perform tasks. In some examples, a software application may be referred to as an "application," "app," or "program." Example applications include, but are not limited to, system diagnostic applications, system management applications, system maintenance applications, word processing applications, spreadsheet applications, messaging applications, media streaming applications, social networking applications, and game applications.
[0029] Non-transitory memory can be a physical device used to temporarily or permanently store programs (e.g., instruction sequences) or data (e.g., program state information) for use by a computing device. Non-transitory memory can be volatile and / or non-volatile addressable semiconductor memory. Examples of non-volatile memory include, but are not limited to, flash memory and read-only memory (ROM) / programmable read-only memory (PROM) / erasable programmable read-only memory (EPROM) / electrically erasable programmable read-only memory (EEPROM) (e.g., commonly used in firmware, such as boot programs). Examples of volatile memory include, but are not limited to, random access memory (RAM), dynamic random access memory (DRAM), static random access memory (SRAM), phase-change memory (PCM), and magnetic disks or magnetic tapes.
[0030] These computer programs (also referred to as programs, software, software applications, or code) include machine instructions for a programmable processor and can be implemented using high-level procedural and / or object-oriented programming languages and / or assembly / machine languages. As used herein, the terms “machine-readable medium” and “computer-readable medium” refer to any computer program product, non-transitory computer-readable medium, apparatus, and / or device (e.g., disk, optical disk, memory, programmable logic device (PLD)) used to provide machine instructions and / or data to a programmable processor, including machine-readable media that receive machine instructions as machine-readable signals. The term “machine-readable signal” refers to any signal used to provide machine instructions and / or data to a programmable processor.
[0031] Various implementations of the systems and techniques described herein can be implemented in digital electronic and / or optical circuits, integrated circuits, specially designed ASICs (Application-Specific Integrated Circuits), computer hardware, firmware, software, and / or combinations thereof. These various implementations can include implementations in one or more computer programs executable and / or interpretable on a programmable system, which includes at least one programmable processor, which may be dedicated or general-purpose, coupled to receive data and instructions from a storage system, at least one input device, and at least one output device, and to transmit data and instructions to the storage system, at least one input device, and at least one output device.
[0032] The processes and logic described in this specification can be executed by one or more programmable processors (also known as data processing hardware) that execute one or more computer programs to perform functions by manipulating input data and generating output. The processes and logic can also be executed by special-purpose logic circuitry, such as FPGAs (Field-Programmable Gate Arrays) or ASICs (Application-Specific Integrated Circuits). Processors suitable for executing computer programs include, for example, both general-purpose microprocessors and special-purpose microprocessors, as well as any one or more processors of any kind of digital computer. Typically, the processor receives instructions and data from read-only memory or random access memory, or both. The basic elements of a computer are a processor for executing instructions and one or more memory devices for storing instructions and data. Typically, a computer will also include one or more mass storage devices (e.g., magnetic disks, magneto-optical disks, or optical disks) for storing data, or operatively coupled to receive data from or transfer data to one or more mass storage devices, or both. However, a computer does not need to have such devices. Computer-readable media suitable for storing computer program instructions and data include all forms of non-volatile memory, media, and memory devices, including, for example, semiconductor memory devices such as EPROM, EEPROM, and flash memory devices; magnetic disks, such as internal hard disks or removable disks; magneto-optical disks; and CD-ROM and DVD-ROM disks. Processors and memory may be supplemented by or incorporated into dedicated logic circuitry.
[0033] To provide interaction with a user, one or more aspects of this disclosure can be implemented on a computer having a display device for displaying information to the user, such as a CRT (cathode ray tube), LCD (liquid crystal display) monitor, or touchscreen, and optionally a keyboard and pointing device, such as a mouse or trackball, through which the user can provide input to the computer. Other types of devices can also be used to provide interaction with the user; for example, feedback provided to the user can be any form of sensory feedback, such as visual feedback, auditory feedback, or tactile feedback; and input from the user can be received in any form, including acoustic, voice, or tactile input. Furthermore, the computer can interact with the user by sending documents to and receiving documents from the device used by the user; for example, by sending a webpage to a web browser on the user's client device in response to a request received from a web browser.
[0034] refer to Figure 1In some embodiments, system 100 includes a vehicle 10 that transports product 20 and communicates with a remote system 60 via a network 40 (e.g., wired or wireless communication). In the example shown, vehicle 10 is implemented as an autonomous mobile robot (AMR); however, it should be understood that vehicle 10 can be implemented as any other propulsion system, such as, but not limited to, motor vehicles, motorcycles, trucks, off-road vehicles, farm equipment, trains, airplanes, etc. Vehicle 10 and / or remote system 60 implement an adaptive motor control system 200, which is configured to dynamically adjust the control gain 232 of vehicle 10 based on the real-time output of propulsion system 16 of vehicle 10 to accommodate the varying payload of product 20 transported by vehicle 10. As used herein, controller gain 232 optimizes propulsion system 16 to ensure smooth operation of vehicle 10 even with large payload variations and to maintain the stability of vehicle 10 and / or product 20. As described in more detail below, instead of relying on load cell sensors that are traditionally mounted at the corners of vehicle 10 and are typically expensive and complex to implement, the adaptive motor control system 200 relies on existing propulsion data 22 measured by the propulsion system 16 of vehicle 10 as the moving payload changes (e.g., ranging from zero (0) to 1500 lbs). It is noteworthy that these conventional propulsion systems further rely on a fixed control gain, which requires additional calibration as the payload changes, while the adaptive motor control system 200 performs real-time adaptation to the control gain of the propulsion system 16, thereby allowing vehicle 10 to change its parameters and constraints during operation.
[0035] like Figure 1 As shown, vehicle 10 includes data processing hardware 12 and memory hardware 14 storing instructions that, when executed on data processing hardware 12, cause data processing hardware 14 to perform operations. Vehicle 10 also includes a propulsion system 16 configured to move vehicle 10. Propulsion system 16 can capture / measure propulsion data 22 of vehicle 10 as vehicle 10 moves. For example, propulsion data 22 may include one or more of the current of propulsion system 16, the speed of propulsion system 16, or the torque of propulsion system 16. Although the adaptive motor control system 200 is shown as executing on vehicle 10 and / or remote system 60, the adaptive motor control system 200 may be implemented on other computing devices (e.g., computing devices communicating with vehicle 10), such as, but not limited to, smartphones, tablets, smart displays, desktop / laptop computers, smartwatches, smart appliances, or smart glasses / headsets.
[0036] Network 40 may include a wireless local area network (WLAN) that facilitates communication and interoperability between vehicle 10 and remote systems 60 within the vehicle 10's environment. Therefore, network 40 may include wireless fidelity. (e.g., IEEE 802.11), low-rate wireless personal area networks (e.g., IEEE 802.15.4), global microwave access interoperability 3G, 4G, Long Term Evolution 5G, Digital Subscriber Line (DSL) Near Field Communication (NFC) or any other wireless standard or Ethernet (e.g., IEEE 802.3). System 100 may additionally include one or more access points (APs) (not shown) configured to facilitate wireless communication between vehicle 10 and remote system 60.
[0037] The remote system 60 (e.g., a server, cloud computing environment) also includes data processing hardware 62 and memory hardware 64 storing instructions that, when executed on the data processing hardware 62, cause the data processing hardware 62 to perform operations. In some examples, the execution of the adaptive motor control system 200 is shared across the vehicle 10 and the remote system 60. Figure 1 and Figure 2 As shown, the adaptive motor control system 200 executes a payload estimation model 210, an adaptive model 220, and an adaptive controller model 230. As the vehicle 10 moves, the adaptive motor control system 200 can continuously receive propulsion data 22 measured by the propulsion system 16 and detect whether the vehicle 10 is at a nominal speed. As used herein, nominal speed can refer to the start-up or acceleration of the propulsion system 16. When the adaptive motor control system 200 detects in real time that the vehicle 10 is at a nominal speed, it can provide the propulsion data 22 as input to the payload estimation model 210. The payload estimation model 210 is configured to receive the propulsion data 22 from the propulsion system 16 and predict an estimated payload 212 of the product 20 transported by the vehicle 10 based on the propulsion data 22. In some cases, the payload estimation model 210 uses two (2) seconds of propulsion data 22 (e.g., acceleration) to estimate the payload 212 using least-squares regression.
[0038] The payload estimation model 210 can be pre-trained during offline training. For example, the payload estimation model 210 can be pre-trained using collected propulsion data paired with various known payloads. Figure 1 The process is executed on a remote system 60. Here, the offline training process can train the payload estimation model 210 to predict the payload 212 given inputs of propulsion data 22. In some cases, the payload estimation model 210 includes an end-to-end (E2E) neural network trained to predict the payload 212 based on a given set of inputs of propulsion data 22. In other cases, the payload estimation model 210 includes a lookup table derived from the relationship between known payload 212 and the corresponding propulsion data 22.
[0039] Continue to refer to Figure 1 and Figure 2 The adaptive model 220 receives the estimated payload 212 predicted by the payload estimation model 210 as input and determines whether the estimated payload 212 meets an estimated threshold that requires adjustment of the controller gain 232 of the propulsion system 16. Here, the estimated threshold can be based on a confidence level that the estimated payload 212 requires adjustment of the controller gain 232 of the propulsion system 16. For example, the adaptive model 220 can determine an estimated confidence level 222 of the estimated payload 212 (e.g., the variance or standard deviation of the payload estimate 212), and when the estimated confidence level 222 is higher than the estimated threshold, it can indicate that the controller gain 232 should be adjusted (i.e., by the adaptive controller model 230) to account for the estimated payload 212 of the product 20. Conversely, when the adaptive model 220 determines that the estimated confidence level 222 of the estimated payload 212 does not exceed the estimated threshold, the adaptive model 220 can prompt the adaptive motor controller model 230 to adjust the controller gain 232 using the nominal gain 224.
[0040] In other embodiments, the adaptation model 220 may use the convergence rate to determine whether the estimated payload 212 meets the estimation threshold. Here, when the adaptation model 220 determines that the estimated payload 212 converges within an acceptable time frame (e.g., one (1) to two (2) seconds), it may use the adjusted controller gain 232 of the propulsion system. Conversely, when the adaptation model 220 determines that the estimated payload 212 has not converged within an acceptable time frame, the adaptation model 220 may prompt the adaptive motor controller model 230 to adjust the controller gain 232 using the nominal gain 224. In other embodiments, the adaptation model 220 may monitor fluctuations in the continuously estimated payload 212 to determine whether the payload estimate 212 exceeds the estimation threshold. In these embodiments, when the payload estimate 212 fluctuates significantly from the previous payload estimate 212, the adaptive model 220 may trigger the adaptive motor controller to dynamically adjust the controller gain 232. When the payload estimate 212 indicates a steady state of product 20 (i.e., product 20 and the corresponding payload have not changed), the adaptation model 220 can prompt the adaptive motor controller model 230 to use the nominal gain 224 to adjust the controller gain 232.
[0041] The adaptive motor controller model 230 receives a payload estimate 212 and an estimate confidence level 222 determined by the adaptive model 220 as inputs, and adjusts the gain of the propulsion system 16 based on the payload estimate and the estimate confidence level 222. Here, the gain may include the proportional gain (p-gain) and integral gain (i-gain) of the proportional-integral-derivative (PID) controller of the propulsion system 16. In other words, based on the estimate confidence level 222 determined by the adaptive model 220 (i.e., the estimate confidence level 222 exceeds an estimate threshold), the adaptive motor controller 230 dynamically adjusts the controller gain 232 to optimize the propulsion system 16 of the vehicle 10 for the estimated payload 212. However, when the estimate confidence level 222 does not exceed the estimate threshold, the adaptive motor controller 230 may use the nominal gain 224 of the propulsion system 16 to adjust the gain. Here, the nominal gain 224 may include pre-calibrated gain scheduling for different payloads stored in the memory hardware (14, 64) of the system 100. In some cases, the adaptive motor controller 230 includes an end-to-end (E2E) neural network trained to generate an optimized gain for the propulsion system 16 based on a given estimated payload 212. In other examples, the adaptive motor controller 230 includes a pre-calibrated lookup table derived from the relationship between the scheduling gain 232 and the estimated payload 212 for optimizing the gain given the estimated payload 212.
[0042] refer to Figures 2 to 3B The adaptive motor controller 230 may also receive the center of gravity 24 of the vehicle 10 transporting the product 20 as input. Intuitively, the product 20 can be placed anywhere on the vehicle 10, and the density of the product 20 may not be uniform. Therefore, the center of gravity 24 of the vehicle 10 may vary based on a particular product 20 and its placement on the vehicle 10. Optionally, the center of gravity 24 may be measured by a load sensor of the vehicle 10. In other embodiments, the center of gravity 24 may be derived from propulsion data 22 measured within a given time window sufficient to estimate the center of gravity 24 of the vehicle 10. In these cases where the adaptive motor controller 230 receives the center of gravity 24, the adaptive motor controller 230 may dynamically adjust the controller gain 232 of the propulsion system 16 to optimize the propulsion system 16 for the payload estimate 212 by adjusting the constraints 234 of the propulsion system 16 based on the center of gravity 24. The constraints 234 of the propulsion system 16 may include one or more of the acceleration, deceleration, or maximum speed of the propulsion system 16.
[0043] like Figure 3A As shown, the center of gravity 24a is depicted as the propulsion system 16 travels along trajectory V. xWhen moving vehicle 10, it is adjacent to the left front of vehicle 10. Given this specific center of gravity 24a, the adaptive motor controller 230 can adjust the constraints 234 of the propulsion system 16 by reducing the deceleration limit and maximum speed. (See also: Special Reference) Figure 3B The center of gravity 24b is now shown as when the propulsion system 16 causes the vehicle 10 to move along trajectory V. x When moving, it is adjacent to the right rear of vehicle 10. Here, when the adaptive motor controller 230 receives this center of gravity 24b, it can adjust the constraints 234 of propulsion system 16 by reducing the acceleration limit and maximum speed.
[0044] Figure 4 A flowchart illustrating an example arrangement of the operation of an adaptive motor control method 400 for changing the payload of an autonomous mobile robot (AMR) is provided. See also... Figures 1 to 3B To describe method 400. Data processing hardware (e.g., Figure 1 Data processing hardware 12, 62) can execute data stored in memory hardware (e.g., Figure 1 The instructions on the memory hardware (14, 64) are arranged in an example configuration to perform the operations of method 400. At operation 402, method 400 includes real-time detection that the vehicle 10 transporting the product 20 is at a nominal speed.
[0045] In response to detecting that vehicle 10 is at a nominal speed, operations 404-410 are performed. At operation 404, method 400 includes receiving propulsion data 22 from propulsion system 16 of vehicle 10. Based on propulsion data 22, at operation 406, method 400 further includes predicting a payload estimate 212 of the product 20 transported by vehicle 10 using payload estimation model 210. Method 400 further includes determining at operation 408 whether the payload estimate 212 meets an estimation threshold. When the payload estimate 212 exceeds the estimation threshold, method 400 further includes dynamically adjusting the controller gain 232 of propulsion system 16 at operation 410 to optimize propulsion system 16 for payload estimate 212.
[0046] Figure 5 A flowchart illustrating an example arrangement of the operation of a method 500 for adaptive motor control of an AMR to change the payload is provided. See also... Figures 1 to 3B To describe method 500. Data processing hardware (e.g., Figure 1 Data processing hardware 12, 62) can execute data stored in memory hardware (e.g., Figure 1 The instructions on the memory hardware (14, 64) are arranged in an example configuration to perform the operations of method 500. At operation 502, method 500 includes real-time detection of the propulsion system 16 of the transport product 20 at a nominal speed.
[0047] In response to detecting that the propulsion system 16 is at a nominal speed, operations 504 and 506 are performed. At operation 504, method 500 further includes predicting a payload estimate 212 for product 20 using payload estimation model 210. When the payload estimate 212 exceeds an estimation threshold, method 500 further includes dynamically adjusting the controller gain 232 of the propulsion system 16 at operation 506 to optimize the propulsion system 16 for product 20.
[0048] Many embodiments have been described. However, it should be understood that various modifications can be made without departing from the spirit and scope of this disclosure. Therefore, other embodiments are within the scope of the appended claims.
[0049] The foregoing description has been provided for purposes of illustration and description. It is not intended to be exhaustive or limiting of this disclosure. Elements or features of a particular configuration are generally not limited to that particular configuration, but are interchangeable where applicable and can be used in selected configurations, even if not specifically shown or described. They can also be varied in many ways. Such variations should not be considered as departing from this disclosure, and all such modifications are intended to be included within the scope of this disclosure.
Claims
1. A computer-implemented method executed on data processing hardware, the method causing the data processing hardware to perform operations, the operations including: Real-time monitoring of vehicles transporting products to ensure they are at their nominal speed; In response to detecting that the vehicle is at the nominal speed: Receive propulsion data from the vehicle's propulsion system; Based on the propulsion data, a payload estimation model is used to predict the estimated payload of the products transported by the vehicle. Determine whether the estimated payload meets the estimation threshold; and When the payload estimate exceeds the estimation threshold, the controller gain of the propulsion system is dynamically adjusted to optimize the propulsion system for the payload estimate.
2. The method of claim 1, wherein the propulsion data comprises one or more of the following: Current; Speed; or Torque.
3. The method according to claim 1, wherein the payload estimation model is pre-trained during offline training.
4. The method of claim 1, wherein the offline training process pre-trains the payload estimation model to predict the payload given input propulsion data.
5. The method of claim 1, wherein the operation further comprises receiving the center of gravity of the vehicle transporting the product.
6. The method of claim 5, wherein dynamically adjusting the controller gain of the propulsion system to optimize the propulsion system for the payload estimation further comprises adapting the constraints of the propulsion system based on the center of gravity of the vehicle transporting the product.
7. The method of claim 6, wherein the constraints of the propulsion system include one or more of the following: Acceleration; Decelerate; or Maximum speed.
8. The method of claim 1, wherein the operation further comprises, when the payload estimate does not exceed the estimated threshold, using nominal gain to adjust the controller gain of the propulsion system.
9. The method of claim 1, wherein the propulsion data is measured in real time when the vehicle transporting the product is at the nominal speed, including one of the start-up or acceleration of the propulsion system.
10. A system comprising: Data processing hardware; and Memory hardware communicating with the data processing hardware, the memory hardware storing instructions that, when executed on the data processing hardware, cause the data processing hardware to perform operations, the operations including: Real-time monitoring of vehicles transporting products to ensure they are at their nominal speed; In response to detecting that the vehicle is at the nominal speed: Receive propulsion data from the vehicle's propulsion system; Based on the propulsion data, a payload estimation model is used to predict the estimated payload of the products transported by the vehicle. Determine whether the payload estimate meets the estimation threshold; and When the payload estimate exceeds the estimation threshold, the controller gain of the propulsion system is dynamically adjusted to optimize the propulsion system for the payload estimate.