IP Library Granted Patent US 12,342,751
Granted Patent B1
US 12,342,751 · App. 17/542,237 · Granted Jul 1, 2025

Adaptive controller

Inventor: Sina Aghli (Broomfield, CO)
Assignee: Scythe Robotics, Inc.
A01D34/008B60W50/0098B60W60/0025G05D1/0223G05D1/0276A01D34/66A01D2101/00B60W2050/0022B60W2520/10B60W2520/12B60W2530/10B60W2556/45B60W2720/10B60W2720/12
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,342,751
App. No.
17/542,237
Granted
Jul 1, 2025
Kind
B1
Abstract

Techniques and architectures for controlling movement of a system along a desired path in an efficient manner are discussed herein. For example, an autonomous lawn mower can be configured to determine a target state for the autonomous lawn mower indicating a target position, orientation, linear velocity, rotational velocity, etc. The autonomous lawn mower can determine a difference between a current state of the autonomous lawn mower and the target state. Based on the difference, the autonomous lawn mower can determine an amount of force/torque and control the autonomous lawn mower to move based on the amount of force/torque, which can cause the autonomous lawn mower to realign with a target state.

Claims (75)

1. An autonomous lawn mower comprising:

a planner configured to generate target data indicating a target state for the autonomous lawn mower;

a kinematics component configured to:

receive the target data from the planner;

receive first state data indicating a current state of the autonomous lawn mower, the current state including at least one of a current position, a current orientation, a current speed, or a current rotational rate;

determine a difference between the current state of the autonomous lawn mower and the target state;

determine that the difference is less than a threshold amount of difference; and

based at least in part on the determination that the difference is less than the threshold amount of difference, generate compensation data indicating one or more of a compensation speed or a compensation rotational rate;

a dynamic component configured to:

receive the compensation data from the kinematics component;

receive second state data; and

based at least in part on the compensation data and the second state data, determine a control signal for controlling movement of the autonomous lawn mower to reach the target state; and

a drive unit configured to control movement of the autonomous lawn mower based at least in part on the control signal.

2. The autonomous lawn mower of claim 1 , wherein the autonomous lawn mower further comprises a state estimation component configured to update the first state data based at least in part on the control signal.

3. The autonomous lawn mower of claim 1 , wherein the dynamic component is configured to determine the control signal based at least in part on a difference of the compensation data and the second state data.

4. The autonomous lawn mower of claim 1 , wherein the second state data indicates the current speed and the current rotational rate.

5. The autonomous lawn mower of claim 1 , wherein the dynamic component is configured to determine the control signal by:

determining a derivative of a desired state vector, the desired state vector being based at least in part on the compensation data;

multiplying a state matrix and a dynamic parameter to obtain a first product, the state matrix being based at least in part on the second state data;

multiplying a gain matrix and a first difference of a current state vector and the desired state vector to obtain a second product, the current state vector being based at least in part on the second state data;

subtracting the first product and the second product from the derivative of the desired state vector to obtain a second difference;

multiplying an inverse of a dynamic parameter function and the second difference to obtain a third product; and

determining an amount of torque based at least in part on the third product;

wherein the control signal indicates the amount of torque.

6. The autonomous lawn mower of claim 1 , wherein that the planner is configured to:

determine that the current position of the autonomous lawn mower is more than a threshold distance from the target state; and

generate new target data based at least in part on the determination that the current position of the autonomous lawn mower is greater than or equal to the threshold distance from the target state.

7. The autonomous lawn mower of claim 1 , further comprising:

a dynamic parameter component configured to determine a dynamic parameter related to at least one of a mass associated with the autonomous lawn mower or inertia of the autonomous lawn mower;

wherein the dynamic component is configured to determine the control signal based at least in part on the dynamic parameter.

8. A method comprising:

receiving a target state for an autonomous lawn mower;

determining a first difference between a first current state of the autonomous lawn mower and the target state, the first current state including at least one of a current position, a current orientation, a current speed, or a current rotational rate;

determining that the first difference is less than a threshold amount of difference;

determining, as compensation data and based at least in part on the determination that the first difference is less than the threshold amount of difference, one or more of a compensation speed or compensation rotational rate;

determining a second difference between a second current state and the compensation data;

determining, based at least in part on the second difference, an amount of torque; and

controlling the autonomous lawn mower in accordance with the amount of torque.

9. The method of claim 8 , further comprising:

determining an estimated state of the autonomous lawn mower based at least in part on the amount of torque; and

determining a subsequent amount of torque to apply based at least in part on the estimated state of the autonomous lawn mower.

10. The method of claim 8 , wherein the determining the amount of torque includes:

determining a derivative of a desired state vector;

multiplying a state matrix and a dynamic parameter to obtain a first product, the state matrix being based at least in part on the second current state;

multiplying a gain matrix and a first difference of a current state vector and the desired state vector to obtain a second product, the current state vector being based at least in part on the second current state;

subtracting the first product and the second product from the derivative of the desired state vector to obtain a second difference;

multiplying an inverse of a dynamic parameter function and the second difference obtained from the subtracting to obtain a third product; and

determining the amount of torque based at least in part on the third product.

11. The method of claim 10 , wherein the dynamic parameter is based on at least one of a mass associated with the autonomous lawn mower or inertia of the autonomous lawn mower.

12. The method of claim 8 , wherein the second current state indicates the current speed and the current rotational rate.

13. A system comprising:

processing circuitry; and

memory communicatively coupled to the processing circuitry and storing executable instructions that, when executed by the processing circuitry, cause the processing circuitry to perform operations comprising:

receiving target data for an autonomous lawn mower, the target data indicating one or more target states;

determining a first difference between a first current state of the autonomous lawn mower and the one or more target states, the first current state including at least one of a current position, a current orientation, a current speed, or a current rotational rate;

based at least in part on the first difference, determining whether to recalculate the target data or provide compensation data to cause the autonomous lawn mower to realign with the one or more target states;

in response to determining to recalculate the target data:

determining new target data for the autonomous lawn mower; and

controlling the autonomous lawn mower based at least in part on the new target data; and

in response to determining to provide compensation data to cause the autonomous lawn mower to realign with the one or more target states:

determining, as the compensation data and based at least in part on the first difference, one or more of a compensation speed or compensation rotational rate;

determining a second difference between a second current state and the compensation data;

determining, based at least in part on the second difference, an amount of force; and

controlling a drive unit of the autonomous lawn mower based at least in part on the amount of force.

14. The system of claim 13 , wherein the operations further comprise:

determining an estimated state of the autonomous lawn mower based at least in part on the amount of force;

determining a subsequent amount of force based at least in part on the estimated state of the autonomous lawn mower; and

controlling the drive unit based at least in part on the subsequent amount of force.

15. The system of claim 13 , wherein the second current state includes the current speed and the current rotational rate.

16. The system of claim 13 , wherein the operations further comprise:

determining, while the autonomous lawn mower is operating, a dynamic parameter related to at least one of a mass associated with the autonomous lawn mower or inertia of the autonomous lawn mower;

wherein determining the amount of force is based at least in part on the dynamic parameter.

17. The system of claim 13 , wherein the one or more target states indicate a target position.

18. The system of claim 13 , wherein the determining the amount of force is based at least in part on a rate of change of a desired state and an output of a dynamic parameter function determined based at least in part on the first current state.

19. The system of claim 13 , wherein the one or more target states indicate at least one of a target position, a target orientation, a target linear velocity, or a target rotational velocity.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 24, 2026
From: SCYTHE ROBOTICS, INC.
To: ASI LANDSCAPING, LLC
Reel/Frame 074465/0194 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 10, 2022
From: AGHLI, SINA
To: SCYTHE ROBOTICS, INC.
Reel/Frame 058604/0185 →
Continuity (1)
Provisional Application 63285914 · Dec 3, 2021
References Cited (8)
US 20170188510A1 · Einecke · 2017 [cited by examiner]
US 20200275605A1 · Chen · 2020 [cited by examiner]
US 20200363796A1 · Muro · 2020 [cited by examiner]
US 20210046923A1 · Olson · 2021 [cited by examiner]
US 20220039313A1 · Morrison et al. · 2022 [cited by applicant]
US 20220091613A1 · Alban et al. · 2022 [cited by applicant]
US 20220111737A1 · Yang · 2022 [cited by examiner]
Yutaka Kanayama, Yoshihiko Kimura, Fumio Miyazaki, and Tetsuo Noguchi. A stable tracking control method for an autonomous mobile robot. In Proceedings., IEEE International Conference on Robotics and Automation, pp. 384-… [cited by applicant]