The present disclosure relates generally to steerable lawn maintenance vehicles, and more particularly to assisted steering systems for lawnmowers and other vehicles for use in lawn maintenance.
Lawn maintenance is frequently carried out by powered vehicles that ride over a surface and perform lawn maintenance to or above that surface. For example, lawnmowers can include push mowers, riding mowers, and autonomous mowers, all of which ride on an underlying ground surface and cut grass emanating from the ground surface. Lawnmowers can be retrofit with various accessories that allow for additional lawn maintenance operations. For instance, lawnmowers can be retrofit with leaf collection systems, leaf blowing systems, edgers, misting and dispersion systems for casting various substances over the lawn or nearby objects, etc.
Forces acting on the lawnmowers can create undesirable effects. For example, when traversing a slope, the lawnmower will often tend to turn downhill as a result of gravitational force acting on the lawnmower. Similarly, when traversing a bumpy ground surface, one or more wheels of the lawnmower can become bumped and turned by undulations in the ground surface. Both of these instances can cause the lawnmower to veer from a desired path, e.g., as input by a riding operator via one or more lap bars, joysticks, steering wheels or the like.
Accordingly, improved assisted steering systems are desired in the art. In particular, assisted steering systems which provide easy, efficient steering correction would be advantageous.
In accordance with the present disclosure various aspects and embodiments will be set forth in part in the following description.
In accordance with one embodiment, a lawnmower is provided. The lawnmower includes a wheel; a motor operably coupled to drive the wheel; a user input configured to receive a steering control input from a user; and a controller configured to operate in a steering assist mode where the controller: receives information from the user input, the information including a position of the user input; compares the position of the user input to a gain profile saved in a memory of the controller; determines a scale factor from the gain profile based on the comparison; generates a command instruction to control a speed of the motor based on the position of the user input and the determined scale factor; and transmits the command instruction to the motor to affect a speed of the motor, wherein the gain profile has a first scale factor associated with a first position of the user input and a second scale factor associated with a second position of the user input, and wherein the first scale factor is different than the second scale factor.
In accordance with another embodiment, a steering assist system for a lawnmower is provided. The steering assist system includes an inertial measurement unit (IMU); and a controller configured to operate in a steering assist mode where the controller: receives information from a user input, the information including a position of the user input; receives, from the IMU, a measured angular velocity of the lawnmower; calculates a deviation between the measured angular velocity and an expected angular velocity based on the position of the user input; compares the position of the user input to a gain profile saved in a memory of the controller; determines a scale factor from the gain profile based on the comparison; generates a command instruction to control a speed of a motor of the lawnmower based on the position of the user input, the determined scale factor, and the calculated deviation; and transmits the command instruction to the motor to affect a speed of the motor, wherein the gain profile has a first scale factor associated with a first position of the user input and a second scale factor associated with a second position of the user input, and wherein the first scale factor is different than the second scale factor.
In accordance with another embodiment, non-transitory computer-readable medium storing instructions which, when executed, cause performance of a method of adjusting a direction of travel of a lawnmower using a steering assist system is provided. The method includes determining, by a controller of the lawnmower, an expected angular velocity of the lawnmower based on a position of a user input, the user input configured to receive a turn input from a user; measuring, by an inertial measurement unit (IMU) of the lawnmower, an actual angular velocity of the lawnmower; calculating, by the controller, an deviation between the expected angular velocity and the actual angular velocity; comparing, by the controller, the position of the user input to a gain profile saved in a memory of the controller; determining, by the controller, a scale factor from the gain profile based on the comparison, wherein the gain profile has a first scale factor associated with a first position of the user input and a second scale factor associated with a second position of the user input, and wherein the first scale factor is different than the second scale factor; applying, by the controller, the determined scale factor to the calculated deviation; determining, by the controller, a command instruction based on the calculated deviation in view of the applied determined scale factor; and transmitting the command instruction to a motor of the lawnmower to affect a speed of the motor.
These and other features, aspects and advantages of the present invention will become better understood with reference to the following description and appended claims. The accompanying drawings, which are incorporated in and constitute a part of this specification, illustrate embodiments of the technology and, together with the description, serve to explain the principles of the technology.
The detailed description that follows makes reference to the appended figures, in which:
Reference now will be made in detail to embodiments of the present invention, one or more examples of which are illustrated in the drawings. The word “exemplary” is used herein to mean “serving as an example, instance, or illustration.” Any implementation described herein as “exemplary” is not necessarily to be construed as preferred or advantageous over other implementations. Moreover, each example is provided by way of explanation, rather than limitation of, the technology. In fact, it will be apparent to those skilled in the art that modifications and variations can be made in the present technology without departing from the scope or spirit of the claimed technology. For instance, features illustrated or described as part of one embodiment can be used with another embodiment to yield a still further embodiment. Thus, it is intended that the present disclosure covers such modifications and variations as come within the scope of the appended claims and their equivalents. The detailed description uses numerical and letter designations to refer to features in the drawings. Like or similar designations in the drawings and description have been used to refer to like or similar parts of the disclosure.
As used herein, the terms “first”, “second”, and “third” may be used interchangeably to distinguish one component from another and are not intended to signify location or importance of the individual components. The singular forms “a,” “an,” and “the” include plural references unless the context clearly dictates otherwise. The terms “coupled,” “fixed,” “attached to,” and the like refer to both direct coupling, fixing, or attaching, as well as indirect coupling, fixing, or attaching through one or more intermediate components or features, unless otherwise specified herein. As used herein, the terms “comprises,” “comprising” “includes,” “Including” or any other variation thereof, are intended to cover a non-exclusive inclusion. For example, a process, method, article, or apparatus that comprises a list of features is not necessarily limited only to those features but may include other features not expressly listed or inherent to such process, method, article, or apparatus. Further, unless expressly stated to the contrary, “or” refers to an inclusive- or and not to an exclusive- or. For example, a condition A or B is satisfied by any one of the following: A is true (or present) and B is false (or not present), A is false (or not present) and B is true (or present), and both A and B are true (or present).
Terms of approximation, such as “about,” “generally,” “approximately,” or “substantially,” include values within ten percent greater or less than the stated value. When used in the context of an angle or direction, such terms include within ten degrees greater or less than the stated angle or direction. For example, “generally vertical” includes directions within ten degrees of vertical in any direction, e.g., clockwise or counter-clockwise.
Lawnmowers and other lawn maintenance tools, such as tractors, powered wheelbarrows, skid steers, and the like can receive user inputs indicative of a desired direction of travel and convert the received user inputs into control signals that control motors to affect the desired direction of the travel. For example, a lawnmower can include left and right lap bars. As a user (e.g., a rider) adjusts the lap bars relative to one another, a control system of the lawnmower can adjust the control signals to the motors to turn the lawnmower.
The lawnmower can include a motion tracking element such as an inertial measurement unit (IMU) that detects and/or records information associated with motion of the lawnmower. By way of example, the IMU can detect various forces exerted on the lawnmower, including, e.g., direction of movement, moving forces, moving magnetic orientation, acceleration, and gyroscopic movement.
In general, lawnmowers, lawn maintenance tools, systems, and methods described herein can provide assisted steering control for a smooth driver experience while also allowing for precise manual steering control, particularly for quick and tight turns. In an embodiment, a lawnmower can include a control system having a processor and a memory storing instructions which, when executed by the processor, causes the lawnmower to implement assisted steering control in which a rate of active steering adjustment (i.e., an amount of adjustment actively implemented by the control system to affect steering output of the lawnmower) is affected. The rate of active steering adjustment may vary based on one or more parameters, such as an amount of steering input received from a user at a user input of the lawnmower, a speed of the lawnmower over the underlying ground surface, a motor speed (e.g., as measured in revolutions per minute (RPM)), etc.
In some implementations, the amount of active steering adjustment implemented by the control system may be relatively high when the lawnmower (and more particularly, the control system of the lawnmower) is expecting to travel straight, e.g., in response to receiving a user input that only minimally adjusts a direction of the lawnmower relative to a straight trajectory, but directional information, e.g., received from the IMU, indicates that the lawnmower is traveling in a non-straight trajectory. Conversely, the amount of active steering adjustment implemented by the control system may be relatively low when the lawnmower is expecting to turn, e.g., in response to receiving a user input indicative of a quick or tight turn. In such a manner, the control system can decrease jerking and wavering of the lawnmower when the control system of the lawnmower expects to travel in a straight, or relatively straight, trajectory while also allowing the lawnmower to quickly and precisely response to user inputs indicative of relatively tight turns.
The control system can include a lookup table or other instructions which include information associated with one or more gain profiles. Each gain profile can correspond to a different handling feel of the lawnmower. For example, implementing a first example gain profile can result in relatively unaffected steering control (i.e., steering control similar to a one-to-one steering control profile where the lawnmower moves in a one-to-one ratio relative to the user input) while implementing a second example gain profile can result in a relatively high amount of corrective steering control. Implementing the second example gain profile can thus result in the control system of the lawnmower providing a greater degree of corrective action.
In some implementations, the lawnmower may only operate using a single gain profile. In other implementations, the lawnmower may have a selector which allows a user (e.g., a rider) to switch between a plurality of different gain profiles. In some instances, the lawnmower can remain in the selected operating state (i.e., maintain the selected gain profile) until the user switches to a different one of the plurality of gain profiles. In other instances, the lawnmower can default to a preferred operating state (i.e., a particular gain profile) upon occurrence of a triggering event. By way of example, the triggering event can include starting the lawnmower from an OFF state or turning the lawnmower to the OFF state. Upon occurrence of the triggering event, the lawnmower can assume the preferred operating state. In some instances, the user can adjust the operating state (i.e., the selected gain profile) while the lawnmower is in use (e.g., while the lawnmower is actively moving). In other instances, the operating state of the lawnmower may be adjusted by the user only when the lawnmower is in a certain state, such as when the lawnmower is not actively moving.
As the lawnmower traverses over a ground surface, several forces may simultaneously act on the lawnmower, all of which tend to result in the lawnmower deviating from a desired path, as expected in view of feedback received from the user inputs. For example, when traversing a slope (such as a hill) in a direction perpendicular to the slope, gravitational force tends to cause the lawnmower to turn downhill. As a result, the operator often has to turn the lawnmower uphill to maintain a straight line across the slope. Similarly, when traversing rugged or bumpy terrain, the wheels of the lawnmower may become affected (e.g., turned) by the ground surface, causing the lawnmower to turn. For example, if the lawnmower traverses a depression in the ground surface such that one or more wheels are effectively traversing a slope of the depression in a direction perpendicular to the slope, the lawnmower may have a tendency to turn in a direction relative to an intended direction of travel. Conversely, if the lawnmower traverses a ridge in the ground surface at an angle between 15° and 75°, the lawnmower may have a tendency to turn in a direction relative to an intended direction of travel. The forces described above are merely exemplary of the types of forces acting on the lawnmower. In some instances, the lawnmower may simultaneously encounter a plurality of different forces which tend to result in the mower deviating from the desired path.
The control system can at least partially counteract the effect of the force(s) by applying corrective steering to the lawnmower to offset the effects of the force(s) on the lawnmower's direction of travel. As described above, the relative amount (degree) of counteraction applied by the control system to adjust the trajectory of the lawnmower may vary depending on one or more parameters, such as the amount of steering input received from a user at a user input. Where the amount of steering input received at the user input is nominal (e.g., less than 2% of a possible (maximum) user input), the control system may apply a maximum amount of counteraction to offset the effect of the force(s). Where the amount of input received at the user input is relatively large (e.g., greater than 10% of the possible (maximum) user input), the control system may apply a reduced amount of counteraction to offset the effect of the force(s). In this regard, the lawnmower may track in a straight, or substantially straight, line despite force(s) acting on the lawnmower while also allowing the user to quickly adjust an orientation of the lawnmower by providing steering inputs at the user input without incurring counteractive forces that tend to prevent the adjustment.
Referring now to the drawings,
The lawnmower 100 can further include a cutting deck 108 supported by the frame 102. The cutting deck 108 can house one or more cutting implements (not illustrated), such as blade(s), that are rotatably driven by a motor (not illustrated). The cutting deck 108 can include a discharge chute 110 for directing debris from the cutting deck 108 during operation of the cutting implements. The cutting deck 108 can be coupled to the frame 102 through a suspension 112 that allows the cutting deck 108 to move relative to the frame 102.
A seat 114 is coupled to the frame 102 and provides an area for a user to reside while operating the lawnmower 100. The seat 114 is in the vicinity of one or more user inputs that allow the user to control operation of the lawnmower 100. The depicted user inputs include a left lap bar 116 and a right lap bar 118. The left and right lap bars 116 and 118 are each rotatable about a pivot axis to allow the user to input steering commands to the lawnmower 100. The user can push and pull on the left and right lap bars 116 and 118, causing the lap bars 116 and 118 to displace about the pivot axis. The further forward the left and right lap bars 116 and 118 are pushed, the faster the lawnmower 100 travels. By pushing the right lap bar 118 further forward than the left lap bar 116, i.e., generating relative displacement between the left and right lap bars 116 and 118, a control system of the lawnmower 100 can determine that the user wants the lawnmower 100 to turn one direction (e.g., left). By pushing the left lap bar 116 further than the right lap bar 118, the control system can determine that the user wants the lawnmower 100 to turn in the opposite direction (e.g., right). The relative difference in displacement between the left and right lap bars 116 and 118 can provide input as to how quickly the user wants the lawnmower 100 to turn. When the user wants to turn quickly, the relative displacement between the left and right lap bars 116 and 118 is relatively large (i.e., one of the lap bars 116 or 118 is displaced significantly further than the other lap bar 116 or 118). When the user wants to turn relatively slowly, the relative displacement between the left and right lap bars 116 and 118 is small. In other embodiments, the user input(s) can include an accelerator, a steering wheel, a joystick, another steering implement, or any combination thereof.
The control system 120 generally includes a first sensor 122 that detects a position of the left lap bar 116 and a second sensor 124 that detects a position of the right lap bar 118. By way of non-limiting example, the first and second sensors 122 and 124 can each include a rotational encoder (e.g., an absolute encoder or a relative encoder) that senses relative displacement of the left or right lap bar 116 or 118. The first and second sensors 122 and 124 can each generate a signal indicative of the relative position of the left and right lap bars 116 and 118, respectively, and transmit the signal to a controller 125. In embodiments including a single user input (or, more particularly, a single steering input, such as a steering wheel), the first and second sensors 122 and 124 can be replaced by a single sensor that detects the position of the single user input.
The controller 125 can include one or more processors 126. The processor(s) 126 can be any suitable processing device (e.g., a control circuitry, a processor core, a microprocessor, an application specific integrated circuit, a field programmable gate array, a controller, a microcontroller, etc.) and can be one processor or a plurality of processors that are operatively connected. The processor(s) 126 can be coupled to memory 128. The memory 128 can include one or more non-transitory computer-readable storage media, such as RAM, ROM, EEPROM, EPROM, one or more memory devices, flash memory devices, etc., and combinations thereof. The memory 128 can store information that can be accessed by the processor(s) 126. For instance, the memory 128 (e.g., one or more non-transitory computer-readable storage mediums, memory devices) can include computer-readable instructions 130 that can be executed by the processor(s) 126. The instructions 130 can be software, firmware, or both written in any suitable programming language or can be implemented in firmware or hardware. Additionally, or alternatively, the instructions 130 can be executed in logically and/or virtually separate threads on processor(s) 126. For example, the memory 128 can store instructions 130 that when executed by the processor(s) 126 cause the processor(s) 126 to perform operations such as any of the operations and functions as described herein.
The controller 125 can communicate with one or more motor controllers, such as a first motor controller 132 in communication with a first motor 134 and a second motor controller 136 in communication with a second motor 138. The first motor 134 may be associated with a first powered wheel 104A of the lawnmower 100 and the second motor 138 may be associated with a second powered wheel 104A of the lawnmower 100. The first and second motors 134 and 138 can receive power form a power source of the lawnmower 100, such as an onboard battery (e.g., a rechargeable battery). The motor controllers 132 and 136 can modulate a signal, such as current or voltage, supplied to the motors 134 and 138, e.g., using proportional-integral-derivative (PID) control logic, in response to information received at the controller 125 from the first and second sensors 122 and 124. By modulating the signal to the motors 134 and 138, the motor controllers 132 and 136 can control a direction of the lawnmower 100 and how quickly the lawnmower 100 turns. It should be understood that other arrangements and configurations for the control system 120 are possible without deviating from the scope of the disclosure. For example, in some implementations, the one or both of the motor controllers 132 or 136 can be integrated into the controller 125. In other implementations, the controller 125 can include separate controllers each associated with a different one of the motor controllers 132 and 136. In some instances, the motor controllers 132 and 136 can have a hierarchical arrangement relative to each other such that, e.g., the first motor controller 132 is disposed upstream of the second motor controller 136 and provides instructions to the second motor controller 136.
In an embodiment, the control system 120 further includes a motion tracking element such as an inertial measurement unit (IMU) 131. The IMU 131 can detect and/or record various forces exerted on the lawnmower 100, including, e.g., direction of movement, moving forces, moving magnetic orientation, acceleration, and gyroscopic movement. In an embodiment, the IMU 131 can include a gyroscope arrangement that detects gyroscopic movement of the lawnmower 100 in three axis (e.g., X-, Y-, and Z-axis). The IMU 131 can include an accelerometer that detects rate of acceleration or deceleration in the three axis (e.g., the X-, Y-, and Z-axis). In some implementations, the IMU 131 can be part of the controller 125. For example, the IMU 131 can be integrated with a printed circuit board (PCB) of the controller 125. In some instances, the IMU 131 can include more than one IMU to improve accuracy and eliminate error over time.
The IMU 131 can be communicatively coupled to the controller 125. The controller 125 can receive data from the IMU 131 and process the data when generating commands for operating the lawnmower 100. In an embodiment, the controller 125 can implement modifications to commands for operating the lawnmower 100 in response to the processed data from the IMU 131.
In some instances, the IMU 131 may undergo calibration prior to use. By way of non-limiting example, calibration can be performed by moving the IMU 131 in a preset motion pattern, such as a “
The control system 120 can control movement of the lawnmower 100 over the underlying ground surface in response to user input, e.g., received at the left and right lap bars 116 and 118. For example, information associated with the positions of the left and right lap bars 116 and 118 detected by the first and second sensors 122 and 124 can be communicated to the controller 125 which can generate command instructions for the motor controllers 132 and 136 to operate the motors 134 and 138 accordingly. The motors 134 and 138 can drive the powered wheels 104A to affect a desired movement pattern (e.g., a turn).
In some implementations, the control system 120 can be adjustable between different control schemes. For example, the lawnmower 100 can include a selector (e.g., a digital selector, a mechanical selector, an electrical selector, or any combination thereof) that permits the user to switch between the different controls schemes. In an embodiment, each control scheme can operate by employing a different gain protocol. As described below, different gain protocols can result in different performance characteristics of the lawnmower 100, as experienced by the user (e.g., rider). For instance, a first gain protocol can result in one-to-one steering control of the lawnmower 100 while a second gain protocol can result in variable steering control of the lawnmower 100.
In an embodiment, the control system 120 can affect steering of the lawnmower 100 using a one-to-one (1:1) steering control profile. When operating with one-to-one steering control profile, movement of the lawnmower 100, and more particularly turning performance of the lawnmower 100, is directly proportional to input(s) received at the user inputs, e.g., the left and right lap bars 116 and 118. For example, when implementing one-to-one steering control, a 50% displacement of the left lap bar 116 results in approximately half the effect as compared to a 100% displacement of the left lap bar 116. Similarly, a 10% displacement of the right lap bar 118 results in approximately one Tenth ( 1/10th) the effect as compared to a 100% displacement of the right lap bar 118. Thus, turning performance is scaled on a one-to-one basis.
In other embodiments, the control system 120 can control the lawnmower 100 to operate using a variable steering control profile. Variable steering control can refer to a condition whereby the control system 120 implements control logic to variably control movement of the lawnmower 100 other than on a one-to-one basis in response to input(s) received at the user inputs, e.g., the left and right lap bars 116 and 118. To affect variable steering control, the control system 120 can implement a gain profile to adjust the control instructions provided from the controller 125 to the motor controllers 132 and 136 based on the detected information received at the first and second sensors 122 and 124.
The relative amount of gain implemented by the control system 120 at any given time can be determined in response to the input received at the user input(s) (e.g., the first and second lap bars 116 and 118) and a corresponding scale factor α provided by the gain profile based on the received input. Tables 1 and 2 provide example gain profiles that are depicted graphically in
The gain profiles in Tables 1 and 2 provide example scale factors α used to adjust steering of the lawnmower 100 in accordance with an example embodiment based on the amount of turning input received at the user input, e.g., the left and right lap bars 116 and 118. The amount of input shown in Tables 1 and 2 is measured as a percentage of maximum possible turning capability of the lawnmower 100. For example, if the lawnmower 100 is capable of turning at a maximum rate of 90° per second, a 50% input results in the lawnmower 100 turning at a rate of 450 per second. Similarly, if the lawnmower 100 is capable of executing a 180° turn in 2 seconds, a 50% input results in the lawnmower 100 turning 180° in 4 seconds. It should be understood that in some implementations the maximum rate of turn or turning capability of the lawnmower may be determined at least in part by a relative speed of the lawnmower. For example, the lawnmower may be able to turn at a first turn rate (i.e., a first angular velocity) when the lawnmower is traveling at a first speed and a second rate (i.e., a second angular velocity) when the lawnmower is traveling at a second speed, where the first and second turning rates are different from each other. The scale factors α may be implemented in view of the turn rate at the speed of travel. Thus, a certain turning input may be affected differently when the lawnmower is travelling at the first speed as compared to when the lawnmower is travelling at the second speed.
Yet other types of gain profiles are possible. For example, as shown in
The scale factor α is used by the controller 125 to adjust the actual turning performance of the lawnmower 100 as compared to an expected one-to-one turning characteristic. Equation (1) shows one example methodology for implementing scale factor α from a stored gain profile to adjust steering:
where ωexpected is a measure of angular velocity of the lawnmower 100 that is expected to be detected by the IMU 131 in view of user inputs, e.g., at the left and right lap bars 116 and 118, ωmeasured is the actual measured angular velocity of the lawnmower 100 as detected by the IMU 131, a is the scale factor, and ωcorrected is a corrected angular velocity that, when implemented, accounts for inconsistencies between the measured and expected angular velocities of the lawnmower 100 in view of the scale factor α.
Expected angular velocity (ωexpected) may be determined in view of feedback provided at the user inputs. For example, where the left and right lap bars 116 and 118 are equally positioned relative to one another (i.e., there is no relatively displacement between the left and right lap bars 116 and 118), the controller 125 can determine that an expected angular velocity of the lawnmower 100 relative to a current heading should be equal to 0.0 radians/second (rad/s) (i.e., the lawnmower 100 is not turning). In instances where the IMU 131 measures an actual measured velocity that differs from the expected angular velocity of 0.0 rad/s (indicative of the lawnmower undergoing angular displacement relative to a current heading), the controller 125 can adjust control signals provided to the first and second motor controllers 132 and 136 in view of Equation (1) and the active gain profile. Use of the active gain profile can require querying a lookup table or other instructions which include information associated with one or more gain profiles to determine the appropriate scale factor α. Since the expected angular velocity of the lawnmower is nominal (0.0 rad/s), the scale factor may be relatively large. The adjusted control signals can cause the first and second motor controllers 132 and 136 to control the motors 134 and 138 such that the lawnmower 100 maintains the current heading with an actual measured angular velocity of 0.0 rad/s. Effectively, the adjusted signal may cause the lawnmower 100 to turn in a manner to correct for the unexpected deviation detected by the IMU 131.
By way of another example, where the left and right lap bars 116 and 118 are displaced relative to one another such that the turn input is 50% of the turning capability of the lawnmower 100, the controller 125 can determine an expected angular velocity of the lawnmower 100, such as for example, 0.75 rad/s. In instances where the IMU 131 measures an actual measured velocity that different from the expected angular velocity of 0.75 rad/s (indicative of the lawnmower undergoing angular displacement different than desired), the controller 125 can adjust control signals provided to the first and second motor controllers 132 and 136 in view of Equation (1) and the active gain profile. Use of the active gain profile can require querying a lookup table or other instructions which include information associated with one or more gain profiles to determine the appropriate scale factor α. Since the expected angular velocity of the lawnmower is large (0.75 rad/s), the scale factor may be relatively small. Unlike with the first example where the expected angular velocity is 0.0 rad/s, here, where the expected angular velocity is 0.75 rad/s and the scale factor α is relatively small, the adjusted signal may not cause the lawnmower 100 to significantly correct for the unexpected deviation detected by the IMU 131.
By applying scale factor α to steering control, the control system 120 can provide several improved behavioral characteristics that increase operational precision of the lawnmower 100. Referring to
While
Further aspects of the invention are provided by one or more of the following embodiments:
Embodiment 1. A lawnmower comprising: a wheel; a motor operably coupled to drive the wheel; a user input configured to receive a steering control input from a user; and a controller configured to operate in a steering assist mode where the controller: receives information from the user input, the information including a position of the user input; compares the position of the user input to a gain profile saved in a memory of the controller; determines a scale factor from the gain profile based on the comparison; generates a command instruction to control a speed of the motor based on the position of the user input and the determined scale factor; and transmits the command instruction to the motor to affect a speed of the motor, wherein the gain profile has a first scale factor associated with a first position of the user input and a second scale factor associated with a second position of the user input, and wherein the first scale factor is different than the second scale factor.
Embodiment 2. The lawnmower of any one or more of the embodiments, wherein the first position of the user input corresponds to a first turn input, wherein the second position of the user input corresponds to a second turn input, wherein the second turn input is greater than the first turn input, and wherein the scale factor at the second position of the user input is less than the scale factor at the first position of the user input.
Embodiment 3. The lawnmower of any one or more of the embodiments, wherein the gain profile includes a plurality of scale factors each associated with a different position of the user input.
Embodiment 4. The lawnmower of any one or more of the embodiments, wherein generating the command instruction to control the speed of the motor comprises: determining an expected angular velocity of the lawnmower based on the position of the user input; measuring an actual angular velocity of the lawnmower; calculating a deviation between the expected angular velocity and the actual angular velocity; applying the determined scale factor to the calculated deviation; and determining the command instruction based on the calculated deviation in view of the applied determined scale factor.
Embodiment 5. The lawnmower of any one or more of the embodiments, wherein measuring the actual angular velocity of the lawnmower is performed by an inertial measurement unit (IMU) disposed on the lawnmower and coupled to the controller.
Embodiment 6. The lawnmower of any one or more of the embodiments, wherein the gain profile is selectable from a plurality of different gain profiles stored on a memory of the controller.
Embodiment 7. The lawnmower of any one or more of the embodiments, wherein the user input comprises a lap bar, a steering wheel, a joystick, an accelerator, or any combination thereof.
Embodiment 8. The lawnmower of any one or more of the embodiments, wherein the lawnmower further comprises a motor controller disposed in electrical communication between the controller and the motor, and wherein transmitting the command instruction to the motor comprises: transmitting, from the controller, the command instruction to the motor controller, and transmitting, from the motor controller, a command signal to the motor to affect the speed of the motor.
Embodiment 9. A steering assist system for a lawnmower, the steering assist system comprising: an inertial measurement unit (IMU); and a controller configured to operate in a steering assist mode where the controller: receives information from a user input, the information including a position of the user input; receives, from the IMU, a measured angular velocity of the lawnmower; calculates a deviation between the measured angular velocity and an expected angular velocity based on the position of the user input; compares the position of the user input to a gain profile saved in a memory of the controller; determines a scale factor from the gain profile based on the comparison; generates a command instruction to control a speed of a motor of the lawnmower based on the position of the user input, the determined scale factor, and the calculated deviation; and transmits the command instruction to the motor to affect a speed of the motor, wherein the gain profile has a first scale factor associated with a first position of the user input and a second scale factor associated with a second position of the user input, and wherein the first scale factor is different than the second scale factor.
Embodiment 10. The steering assist system of any one or more of the embodiments, wherein transmitting the command instruction to the motor comprises: transmitting, from the controller, the command instruction to a motor controller, and transmitting, from the motor controller, a command signal to the motor to affect the speed of the motor.
Embodiment 11. The steering assist system of any one or more of the embodiments, wherein the first position of the user input corresponds to a first turn input, wherein the second position of the user input corresponds to a second turn input, wherein the second turn input is greater than the first turn input, and wherein the scale factor at the second position of the user input is less than the scale factor at the first position of the user input.
Embodiment 12. The lawnmower of any one or more of the embodiments, wherein the gain profile includes a plurality of scale factors each associated with a different position of the user input.
Embodiment 13. The lawnmower of any one or more of the embodiments, wherein the gain profile is selectable from a plurality of different gain profiles stored on a memory of the controller.
Embodiment 14. The lawnmower of any one or more of the embodiments, wherein the user input comprises a left lap bar and a right lap bar, wherein a position of the left lap bar is detected by a first sensor, wherein a position of the right lap bar is detected by a second sensor, and wherein the first and second sensors are in communication with the controller.
Embodiment 15. A non-transitory computer-readable medium storing instructions which, when executed, cause performance of a method of adjusting a direction of travel of a lawnmower using a steering assist system, the method comprising: determining, by a controller of the lawnmower, an expected angular velocity of the lawnmower based on a position of a user input, the user input configured to receive a turn input from a user; measuring, by an inertial measurement unit (IMU) of the lawnmower, an actual angular velocity of the lawnmower; calculating, by the controller, an deviation between the expected angular velocity and the actual angular velocity; comparing, by the controller, the position of the user input to a gain profile saved in a memory of the controller; determining, by the controller, a scale factor from the gain profile based on the comparison, wherein the gain profile has a first scale factor associated with a first position of the user input and a second scale factor associated with a second position of the user input, and wherein the first scale factor is different than the second scale factor; applying, by the controller, the determined scale factor to the calculated deviation; determining, by the controller, a command instruction based on the calculated deviation in view of the applied determined scale factor; and transmitting the command instruction to a motor of the lawnmower to affect a speed of the motor.
Embodiment 16. The non-transitory computer-readable medium of any one or more of the embodiments, wherein transmitting the command instruction to the motor comprises: transmitting, from the controller, the command instruction to a motor controller, and transmitting, from the motor controller, a command signal to the motor to affect the speed of the motor.
Embodiment 17. The non-transitory computer-readable medium of any one or more of the embodiments, wherein the first position of the user input corresponds to a first turn input, wherein the second position of the user input corresponds to a second turn input, wherein the second turn input is greater than the first turn input, and wherein the scale factor at the second position of the user input is less than the scale factor at the first position of the user input.
Embodiment 18. The non-transitory computer-readable medium of c any one or more of the embodiments, wherein the gain profile includes a plurality of scale factors each associated with a different position of the user input.
Embodiment 19. The non-transitory computer-readable medium of any one or more of the embodiments, further comprising selecting, by the user, the gain profile from a plurality of gain profiles saved on the memory.
Embodiment 20. The non-transitory computer-readable medium of any one or more of the embodiments, further comprising activating, by the user, the steering assist system.
The patentable scope of the invention is defined by the claims, and may include other examples that occur to those skilled in the art. Such other examples are intended to be within the scope of the claims if they include structural elements that do not differ from the literal language of the claims, or if they include equivalent structural elements with insubstantial differences from the literal language of the claims.
The present application claims priority to U.S. Provisional Patent Application Ser. No. 63/617,187 filed on Jan. 3, 2024, the disclosure of which is incorporated by reference herein in its entirety.
Number | Date | Country | |
---|---|---|---|
63617187 | Jan 2024 | US |