Managing point portion of controller of automated vehicle
By introducing integral control engine and prospective offset adjustment technology into the PID controller of automated vehicles, the error accumulation and reset problems caused by driver intervention are solved, and the stability and automation of the vehicle when the automatic driving and manual driving are improved. Recovery speed of function.
Patent Information
- Application Number
- CN202380042757.4
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Priority Date
- 2023-05-30
- Filing Date
- 2023-06-02
- Publication Date
- 2025-01-14
AI Technical Summary
The PID controller in an automated vehicle has problems with the accumulation and reset of integral part errors during driver intervention, resulting in unstable vehicle operation, affecting the accuracy and rapid recovery of the autonomous driving function.
By introducing an integral control engine in the controller, the errors during manual interaction with the vehicle are determined and whether to accumulate or reset the value of the integral portion based on the error is determined to optimize the control performance of the vehicle, including adjusting the control using a supplementary lookahead offset output of the device.
It improves the steering stability of the vehicle when the automatic driving and manual driving alternately, reduces the phenomenon of sudden change, accelerates the recovery of automation functions and path adjustment, and improves the overall autonomous driving performance.
Smart Images

Figure CN119317565A_ABST
Abstract
Description
Technical Field
[0001] The present disclosure as a whole relates to managing the operation of a controller (e.g., a proportional, integral, derivative (PID) controller or any other controller that includes an integral control engine) of a vehicle. For example, aspects of the present disclosure relate to managing the "integral" portion (also referred to as the I portion, I portion parameter, or cumulative parameter) of an integral control engine of a controller. Background Art
[0002] An automated vehicle or partially automated vehicle includes one or more automated capabilities that allow the vehicle to autonomously perform one or more functions without requiring a user to interact with or control the vehicle. For example, an automated vehicle or partially automated vehicle may include a control system that can steer the vehicle and avoid accidents while following a determined path to a destination without requiring a user to control the vehicle's steering wheel. One example of a controller that may be used as a control system or part of a control system is a proportional, integral, derivative (PID) controller. Summary of the invention
[0003] Systems and techniques for managing an I-portion (or an I-portion parameter or an accumulated parameter) of an integral control engine of a controller are disclosed. According to at least one example, a method for controlling one or more operations of a vehicle is provided. The method includes: determining a manual interaction with the vehicle; during the manual interaction with the vehicle, determining an error between a setpoint value of a parameter and a current value of the parameter; and determining whether to accumulate a value associated with the error for controlling at least one function of the vehicle based on the determined error.
[0004] In another example, an apparatus for controlling one or more operations of a vehicle is provided, the apparatus comprising at least one memory and at least one processor (e.g., implemented in a circuit) coupled to the at least one memory. The at least one processor is configured to: determine a manual interaction with the vehicle; during the manual interaction with the vehicle, determine an error between a set point value of a parameter and a current value of the parameter; and determine whether to accumulate a value associated with the error for controlling at least one function of the vehicle based on the determined error.
[0005] In another example, a non-transitory computer-readable medium having instructions stored thereon is provided, which instructions, when executed by one or more processors, cause the one or more processors to: determine a manual interaction with a vehicle; during the manual interaction with the vehicle, determine an error between a set point value of a parameter and a current value of the parameter; and determine, based on the determined error, whether to accumulate a value associated with the error for use in controlling at least one function of the vehicle.
[0006] In another example, an apparatus for controlling one or more operations of a vehicle is provided. The apparatus includes: a component for determining a manual interaction with the vehicle; a component for determining an error between a set point value of a parameter and a current value of the parameter during the manual interaction with the vehicle; and a component for determining whether to accumulate a value associated with the error for controlling at least one function of the vehicle based on the determined error.
[0007] According to at least one example, a method for controlling one or more operations of a vehicle is provided. The method includes: receiving input data associated with a manual interaction with the vehicle; determining a supplemental lookahead offset based on the manual interaction when the manual interaction is active; and applying the supplemental lookahead offset to a lookahead offset at an output of a controller configured to control at least one function of the vehicle when the manual interaction is active.
[0008] In another example, an apparatus for controlling one or more operations of a vehicle is provided, the apparatus comprising a controller configured to control at least one function of the vehicle, at least one memory, and at least one processor (e.g., implemented in a circuit) coupled to the at least one memory. The at least one processor is configured to: receive input data associated with manual interaction with the vehicle; when the manual interaction is active, determine a supplemental look-ahead offset based on the manual interaction; and when the manual interaction is active, apply the supplemental look-ahead offset to the look-ahead offset at the output of the controller.
[0009] In another example, a non-transitory computer-readable medium having instructions stored thereon is provided, which instructions, when executed by one or more processors, cause the one or more processors to: receive input data associated with manual interaction with a vehicle; when the manual interaction is active, determine a supplemental look-ahead offset based on the manual interaction; and when the manual interaction is active, apply the supplemental look-ahead offset to a look-ahead offset at an output of a controller configured to control at least one function of the vehicle.
[0010] In another example, an apparatus for controlling one or more operations of a vehicle is provided. The apparatus includes: a component for receiving input data associated with a manual interaction with the vehicle; a component for determining a supplemental look-ahead offset based on the manual interaction when the manual interaction is active; and a component for applying the supplemental look-ahead offset to a look-ahead offset at an output of a controller configured to control at least one function of the vehicle when the manual interaction is active.
[0011] In some aspects, one or more of the above devices are or are part of a vehicle (e.g., a computing device of a vehicle), a robotic device, an extended reality device (e.g., a virtual reality (VR) device, an augmented reality (AR) device, or a mixed reality (MR) device), a mobile device (e.g., a mobile phone or so-called "smartphone" or other mobile device), a wearable device, and / or other device with automation capabilities. In some aspects, the device also includes a display for displaying one or more images, notifications, and / or other displayable data. In some aspects, the device may include one or more sensors, such as one or more sensors that can be used to determine the position and / or posture of the device, the state of the device, and / or for other purposes.
[0012] This summary is not intended to identify key or essential features of the claimed subject matter, nor is it intended to be used in isolation to determine the scope of the claimed subject matter. The subject matter should be understood by reference to appropriate portions of the entire specification of this patent, any or all drawings, and each claim.
[0013] The foregoing and other features and embodiments will become more apparent upon reference to the following description, claims and accompanying drawings. BRIEF DESCRIPTION OF THE DRAWINGS
[0014] The accompanying drawings are presented to aid in describing aspects of the present disclosure and are provided solely for illustration and not limitation of the aspects.
[0015] Figure 1A is a block diagram illustrating an example of a proportional, integral, and derivative (PID) controller according to some examples;
[0016] Figure 1B is a block diagram illustrating an example of a controller having an integral control engine according to some examples;
[0017] Figure 1C is a block diagram illustrating an example of a controller having an integral control engine and a derivative control engine that is decoupled from a local offset feedback data input to the integral control engine according to some examples;
[0018] Figure 2 is a block diagram illustrating example components in an autonomous driving application according to some examples;
[0019] Figure 3 is a diagram illustrating an example of movement of a vehicle according to some examples, wherein an integral control engine of a controller is not frozen based on manual interaction with the vehicle;
[0020] Figure 4 is a diagram illustrating an example of a situation when an integral control engine of a controller is frozen or not frozen according to some examples;
[0021] Figure 5 is a diagram of an integral control engine of a controller that adjusts at specific times and under specific conditions according to some examples;
[0022] Figure 6 is a diagram of an integral control engine of a controller relative to a lateral controller and reset under certain conditions according to some examples;
[0023] Figure 7 is a flow chart illustrating an example of a process for controlling one or more operations of a vehicle according to some examples;
[0024] Figure 8 is a flow chart illustrating another example of a process for controlling one or more operations of a vehicle according to some examples; and
[0025] Fig. 9 is a block diagram illustrating an example of a computing system according to some examples. DETAILED DESCRIPTION
[0026] Some aspects and embodiments of the present disclosure are provided below. Some of these aspects and embodiments can be applied independently, and some of them can be applied in combination, which is obvious to those skilled in the art. In the following description, specific details are set forth for explanation purposes in order to provide a thorough understanding of each embodiment of the application. However, it will be apparent that each embodiment can be put into practice without these specific details. Each drawing and description are not intended to be restrictive.
[0027] The following description provides only exemplary embodiments and is not intended to limit the scope, applicability or configuration of the present disclosure. On the contrary, the subsequent description of the exemplary embodiments will provide an enabling description for implementing the exemplary embodiments to those skilled in the art. It should be understood that various changes may be made to the function and arrangement of elements without departing from the essence and scope of the present application as set forth in the appended claims.
[0028] As previously described, an automated vehicle or partially automated vehicle includes one or more automated capabilities that allow the vehicle to perform one or more automated functions or features (e.g., autonomous driving functions such as traffic assistance for navigating traffic, lane keeping assistance (LKA), lane change assistance, obstacle avoidance, etc.) without requiring a user to interact with or control the vehicle. A controller of an automated vehicle may include an integrator or integrating portion that accumulates errors (also referred to as local offsets) between current settings (e.g., speed, route, etc.) and set points that define desired settings. Various problems may be associated with such an integrating portion of a controller, such as with excessive accumulation of errors and resetting of errors, which will be described in more detail below.
[0029] An example of a controller that can be used as a control system or part of a control system is a proportional, integral, differential (PID) controller. A PID controller may have different options for a particular application. For example, for an automated vehicle, a PID controller may have a set point that includes parameters such as a route or a predetermined path of the vehicle (e.g., including multiple locations associated with the route or predetermined path of the vehicle), the speed of the vehicle, and / or other parameters. In some cases, an automated vehicle may include a longitudinal PID controller and a lateral PID controller or a single PID controller that controls the longitudinal direction and the lateral direction. Feedback on various parameters may be provided to determine whether there is an error (or local offset) relative to a corresponding set point of a specific parameter (e.g., speed, route, etc.), so that the parameter needs to be updated. In some cases, an error value may be provided to each of a proportional (P) control engine, an integral (I) control engine (also referred to as an integrator control engine), and a differential (D) control engine of a PID controller. Each of these control engines may multiply the error value by a gain and perform an operation on the error data. For example, an integral control engine may integrate the error over time and thus accumulate the error, and a differential control engine may determine the differential of the error value. The outputs of the proportional control engine, the integral control engine, and the derivative control engine may be added together and provided to a vehicle control system, which may adjust parameters of the vehicle (eg, speed, path, etc.).
[0030] When using a controller with an integral component (e.g., the I part of a PID controller) that accumulates errors, various problems may occur, as described above. For example, when the vehicle is operating autonomously, the driver can interact with the vehicle by manually steering, changing the speed of the vehicle, or performing another operation or function (referred to as the driver in the loop (DIL)). As described above, the integral part of the controller (e.g., the I part of a PID controller) contains the accumulation of errors relative to the set point over time. When the driver interacts with the system (e.g., the steering wheel of a vehicle communicating with the controller), the controller no longer fully controls the vehicle, resulting in an interruption of the control loop. For example, in some cases, driver intervention may result in an increase or decrease in the error (or local offset), or a change in the sign of the error relative to a set parameter (e.g., speed, path, etc.) of the controller referred to herein as a set point. As used herein, an increase or decrease in an error or local offset refers to an increase or decrease in the absolute error or absolute local offset value relative to a set parameter (or set point). For example, an increase in a positive error value of 10 refers to a value of 11 or greater, while an increase in a negative error value of -10 refers to a value of -11 or less. If the integral portion of the controller continues to accumulate error during driver intervention, the accumulated error will increase and may cause problems with vehicle operation, such as when a change in the sign of the error occurs after the driver intervention. For example, if the integral portion continues to accumulate error during driver intervention at the vehicle steering wheel, the increase in accumulated error (e.g., an increase in the absolute value of the accumulated error) may cause a sharp change (or abrupt change) in steering when an automated function or feature (e.g., traffic assistance, LKA, etc.) takes over again.
[0031] Another problem may arise due to the resetting of the integral portion of the controller. For example, when the driver performs a certain correction (e.g., by steering the vehicle off a set path in order to correct the path), it may be beneficial to start from a previous integral value to allow the automated function to take over quickly. An example of performing such a correction is when the vehicle is driving around a curve in the road. If the integral portion is reset to 0 (corresponding to no error accumulation), it may take time for the error to accumulate to build up the integral portion of the controller, which may prevent the system from properly performing the one or more automated functions.
[0032] Described herein are systems, apparatus, processes (also referred to as methods), and computer-readable media (collectively, "systems and techniques") for providing a controller that includes an integral component (e.g., an integral control engine) for managing control of a vehicle (e.g., lateral control). The controller may include any controller that includes an integral component (e.g., an integral control engine) for managing an integral part (I-part) value to improve vehicle performance. The I-part value is also referred to herein as an I-part parameter or cumulative parameter. The I-part parameter or cumulative parameter is associated with the accumulation of error values of an integral component (e.g., an integral control engine) of the controller. With respect to Figure 1B An example of such a controller with an integral control engine is described.
[0033] The controller may or may not have a proportional component (e.g., a proportional control engine) and / or a derivative component (e.g., a derivative control engine). In some aspects, the controller may include a PID controller (as described above) including an I-part controller for managing an I-part value of an integral control engine to improve control performance of the vehicle. Figure 1A An illustrative example of such a PID controller is discussed. In some aspects, the controller may include an integral control engine that receives an error value (or local offset value) and a separate derivative control engine that does not receive the local offset value but receives a separate value from the vehicle / steering assembly. Figure 1C An example of a controller including such an independent derivative control engine is described.
[0034] In some aspects, the vehicle may include a look-ahead engine that may, independently or in conjunction with a controller, receive a look-ahead offset from the vehicle / steering assembly and compensate for a feed-forward path, such as by calculating an additional or supplemental look-ahead offset (or feed-forward) based on driver input. The look-ahead engine may also be referred to herein as a feed-forward compensation engine. In some cases, manual interaction with or intervention in the vehicle by a driver (e.g., by controlling a steering wheel of the vehicle) may be used as a correction to the look-ahead path (e.g., a point in the look-ahead path), which generates additional data that may be used in the feed-forward path (e.g., when steering torque is applied by the driver). Once the manual intervention is no longer active (e.g., the driver ceases interacting with the vehicle, such as by no longer interacting with or controlling the steering wheel), the additional or supplemental look-ahead offset may be reduced to zero (e.g., gradually reduced to zero) by the system looking ahead to the original path and thereby applying a normal look-ahead offset (e.g., the value of the look-ahead offset before the additional or supplemental look-ahead offset was applied). In Figure 1C An example of a look-ahead engine is also shown in .
[0035] Figure 1Ais a diagram of an example of a PID controller 101 of a control system 100 for an illustrated vehicle. The PID controller 101 is an example of a lateral controller. As shown, the PID controller 101 includes a proportional control engine 104, an integral control engine 106, and a differential control engine 110. As described above, aspects of the present disclosure provide improvements to the integral control engine 106. The PID controller 101 can be one of several different types of controllers, which typically include an integral control engine 106 having an "I part" (integral part). The I part can be a parameter (referred to herein as an accumulated parameter or an I part parameter) that is an added value used by the controller 101 to control the vehicle (e.g., by generating a steering request such as a pinion angle request or a steering torque request to steer the vehicle).
[0036] exist Figure 1A PID controller 101 is generally shown in FIG. 1 , but various other controllers such as those described in FIG. Figure 1B and Figure 1C The PID controller 101 is a modified PID controller with respect to the above discussion, such as Figure 1A , including an I-part controller 108 that manages I-part parameters (or accumulated parameters) according to various aspects described herein. In one illustrative example, for any of the controllers described herein (e.g., Figure 1A The controller 101, the following about Figure 1B The controller 118 described below Figure 1C The value of the part parameter (or cumulative parameter) may be determined as follows:
[0037] iPart t =iPart t-1 +controllerError*iGain
[0038] iPart t is the new (current) value of the iPart parameter. t-1 is the value of the I-part parameter from the previous time step (e.g., the immediately preceding time step or an earlier time step), iGain is an adjustable parameter that can be used to tune the controller, and controllerError is a lateral offset in one example. As described above, the I-part parameter is the integral part of the controller. Using the example formula above, at each time step, the I-part parameter includes a cumulative value obtained from the sum of the previous I-part parameter value and the controllerError*iGain value.
[0039] The PID controller 101 may correct a parameter of the vehicle (e.g., the vehicle's speed, course or predetermined path, or other parameter), such as via lateral control. The following examples focus on speed errors, but the principles also apply to lateral control of the vehicle, where there may be a negative offset (e.g., the vehicle is to the left of the requested path or predetermined path) or a positive offset (e.g., the vehicle is to the right of the requested path or predetermined path).
[0040] Using the example of speed as a parameter, the PID controller 101 can try to match the vehicle's speed y(t) to a setpoint speed r(t). The difference between the setpoint speed r(t) and the vehicle's current speed y(t) determined by the summation component 102 is called the error e(t). When the vehicle speed is below the setpoint r(t), the error e(t) is positive, and when the vehicle speed is above the setpoint r(t), the error e(t) is negative: Error 速度 =Set point 速度 -current 速度 Similarly, using a predetermined path or route for the vehicle, the error e(t) is positive when the vehicle's position is on a first side of the set point r(t) position of the path (e.g., on the right), and the error e(t) is negative when the vehicle's position is on a second side of the set point r(t) position of the path (e.g., on the left).
[0041] The proportional control engine 104 may receive the error 速度 As input, and the error 速度 Multiplying by is called the proportional gain K P The scaling factor (denoted as K P *error 速度 ). For example, the larger the error, the larger the control input to the controller 101 (e.g., in the case of cruise control, the larger the throttle input). In one example, throttling can be considered to be from 0 to 100%. The PID controller 101 can map the throttling amount to 37m / s 2 The vehicle acceleration is such that the 100% throttle value is mapped to 37m / s 2 If the set point speed r(t) is 100 km / h and the vehicle starts from 0 km / h, the current error is 100 km / h. If the driver wants a maximum acceleration with an error of 100 km / h, the controller 101 can set the proportional gain to 1: Throttle = K P *error 速度 =1*100=100%.
[0042] When the speed error decreases to a set point r(t) value (corresponding to an error of zero), the throttle will also be reduced until the system reaches a throttle input of zero. However, the PID controller 101 may not be able to maintain the set point r(t) value in a real world scenario without adjusting the throttle, such as due to friction, air resistance, and / or other factors that may reduce the vehicle speed. Such a scenario may result in a steady-state bias in the PID controller 101.
[0043] In view of the steady-state bias described above, the PID controller 101 may use the integral control engine 106 to maintain a target parameter (e.g., a set point value for a parameter), such as a target speed for the vehicle. For example, the integral control engine 106 may resolve any steady-state deviations in the vehicle system by accumulating or integrating past errors (e.g., various values of a particular parameter such as speed, path, or route, etc.) and storing the resulting accumulated value as a portion I representing an integral of past errors in the parameter (e.g., speed, path, etc.) relative to the set point value. In one illustrative example, the integral control engine 106 may sum all speed error values (or portions of error values) that have been observed at each time step as follows: Total_Error 速度 =Total_Error 速度 +Current_Error 速度 The integral control engine 106 can use the gain K I The scaled total error (e.g., the value of the I-part parameter or the cumulative parameter at a given point in time). The integral control engine 106 may use the scaled error as a control input as follows: I *Total_Error 速度 *dt. Continuing with the above example, the speed of the vehicle may temporarily reach the set point speed and then may drop below the set point speed as the proportional input goes to zero, such as due to air drag or other factors that slow the vehicle. In such an example, if the integral control engine 106 sums the error over time, the error may be positive and continue to grow.
[0044] In some cases, the further the vehicle travels over time, the greater the integrator term_error 速度 becomes larger. If the system chooses K appropriately I, then even when the instantaneous error is zero, the command for controlling the parameter value (e.g., a throttle command to control speed, a steering request such as a pinion angle request or a steering torque request, controlling the path of travel of the vehicle, etc.) will be greater than zero. The PID controller 101 can sum the control terms from the proportional control engine 104, the integral control engine 106, and the derivative control engine 110 (using the summing component 112) to obtain a total parameter value u(t) (e.g., a total throttle input value, a total steering input value such as a pinion angle input value or a steering torque request input value, etc.). The total parameter value u(t) can be output to the vehicle control engine 114. Using the total parameter value u(t) as an input, the vehicle control engine 114 can output a parameter error 116 relative to a set point value (e.g., a speed error, a steering error such as a pinion angle error or a steering torque error), which can be fed back to the summing component 102 to determine the error e(t). Based on the P term and the I term, the parameter can oscillate around the set point value instead of being biased below or above the set point value.
[0045] The derivative control engine 110 may be used to stabilize a parameter (e.g., speed, position on a path, etc.) to prevent overshoot and / or undershoot of the parameter relative to a set point r(t). For example, the derivative control engine 110 may adjust control of a parameter (e.g., throttle used to control speed, steering values such as pinion angle or steering torque, path of the vehicle, etc.) as the vehicle approaches the set point r(t) in order to avoid exceeding the set point r(t). The derivative control engine 110 may adjust control of the parameter based on how quickly the vehicle approaches the set point r(t), which may be expressed as a rate of change of error. Such a rate of change of error may be expressed as: K p *(Current_Error 速度 -Previous_Error 速度 ) / (time 当前 -time 先前 ), which can be simplified as follows (where d represents the change): K p *error 速度 *d / dt. If the error is decreasing (e.g., the absolute value of the error is decreasing), in which case the vehicle is approaching the set point r(t), the derivative term (D term) will be negative. In this case, since the parameter value is given by the sum of all P, I, and D control terms, the derivative control engine 110 can reduce control of the parameter (e.g., reduce total throttle, reduce steering values such as pinion angle, etc.). Using throttle and speed as an illustrative example, the throttle amount can be determined using the following equation: Throttle = (K p *error 速度 +K I *Total error 速度 *dt+K d *error 速度 )d / dt.
[0046] While the previous examples relate to controlling the speed of a vehicle, these principles are applicable to lateral control of a vehicle that manages lateral movement of the vehicle relative to a desired path (as defined by a setpoint r(t)). In this case, error(t) may be associated with a local offset that may be positive (e.g., a +I fractional value) when the vehicle is on a first side of the requested path (e.g., on the right), or negative (e.g., -I fractional) when the vehicle is on a first side of the requested path (e.g., on the left). Figure 1A The integral part (I part) controller 108 shown in FIG. 1 provides improvements on how to handle the I part parameter or error e(t) in various scenarios. In some cases, depending on the input data, the error e(t) or some other value or parameter related to the integral control engine 106 can be reset, frozen at a certain value (in which case the integral control engine 106 will stop accumulating error values), set to zero or calculated to generate an alternative new value, or otherwise controlled. The I part controller 108 can represent a feature built into the integral control engine 106.
[0047] Although the discussion on PID controller 101 Figure 1A , but aspects of the present disclosure relate to any controller having an integral control engine that maintains an I-part parameter or an accumulated parameter. Figure 1B A general controller 118 of a control system 120 of a vehicle is illustrated. Figure 1B The controller 118 includes an integral control engine 106 and an I-part controller 108. Although the controller 118 is shown as including an integral control engine 106, the controller 118 may generally have (or may not have) any other configuration or other engines 117 or components in addition to the integral control engine 106. The other engines 117 may include one or more processing engines (e.g., one or more central processing units (CPUs), one or more digital signal processors (DSPs), one or more graphics processing units (GPUs), one or more neural processing units (BPUs), etc.), one or more memory devices (e.g., one or more read-only memories (ROMs), one or more random access memories (RAMs), one or more cache memories, one or more buffers), and / or other engines. The controller 118 may or may not have a differential control engine or a differential control engine. Specific examples of the controller 118 may include Figure 1A The PID controller described in 101 or Figure 1C Controller 131 shown in FIG.
[0048] Aspects of the present disclosure relate to the use of the I-portion controller 108 of the integral control engine 106. As described herein, the I-portion controller 108 can manage the I-portion parameters (or accumulation parameters) in a variety of different scenarios (e.g., set to zero, freeze or unfreeze, recalculate replacement, ramp down, etc.). For example, Figure 1B As shown, the controller 118 receives the local offset 116 (or error e(t)) from the vehicle control engine 114 and compares the local offset 116 relative to the set point r(t) (e.g., using the summing component 102). The output of the comparison (e.g., of the summing component 102) is provided to the I-part controller 108 of the integral control engine 106. Based on the comparison of the local offset 116 relative to the set point r(t), the I-part controller 108 can determine whether to continue accumulating an I-part parameter or a local offset value of the accumulated parameter (e.g., not freeze), stop accumulating a local offset value (e.g., freeze), reset the I-part parameter, ramp down the value of the I-part parameter, and / or otherwise maintain the I-part parameter.
[0049] Figure 1C Another example of a control system 130 of a vehicle including a controller 131 of an integral control engine (ICE) 106 is shown. Figure 1C In the example of FIG. 1 , instead of receiving the error 116 (shown as output 136 ), the differential control engine (DCE) 110 may receive a lateral acceleration value or other data (shown as output 136 ) from the vehicle control engine 114 . Figure 1A in the case). Figure 1C The error value 116 is provided to a controller 132 that includes at least an integral control engine (ICE) 106 and a proportional control engine (PCE) 104. Figure 1C In the example of FIG. 1 , the output of the derivative control engine 110 may be combined with the output of the integral control engine 106 and the output of the proportional control engine 104 (eg, added or subtracted using a summing component 135 ). Figure 1C The type of controller 131 shown in , in which the derivative control engine 110 is decoupled from the received error e(t), may be considered a PID' controller or a velocity lateral (Vlat) controller.
[0050] In one aspect, Figure 1CAs shown in FIG. 1 , a controller 132 including an integral control engine 106 and a proportional control engine 104 receives an error 116 via a summing component 102. A derivative control engine 110 receives data (e.g., output 136) such as a yaw rate from a vehicle control engine 114. As described above, the output of the derivative control engine 110 may be combined with the output of the controller 132 via a summing component 135. The output of the summing component 135 may include an initial steering request (e.g., a pinion angle request, a steering torque request, etc.). The output of the summing component 135 may be combined with the output of a look-ahead engine (LAE) 140 (which may also be characterized as a feed-forward path compensation engine) via a summing component 142, which receives look-ahead offset data from the vehicle control engine 114 via a look-ahead path 138 (also referred to as a feed-forward path). The output of the summing component 142 may be a final steering request (e.g., a final pinion angle request, a final steering torque request, etc.) provided to the vehicle control engine 114, which may utilize an angle controller to adjust the steering of the vehicle.
[0051] Although Figure 1C Examples include a controller 132 having an integral control engine 106 and a proportional control engine 104 and a differential control engine 110 that is separate or independent from the controller 132, and the controller 131 may include other configurations of the controller that provide its output for a steering request (e.g., a pinion angle request, a steering torque request, etc.) to a summing component 142.
[0052] In some aspects, the look-ahead engine 140 may compensate the look-ahead path 138 by determining or calculating an additional look-ahead offset (or feed-forward) based on driver input as indicated via the vehicle control engine 114. Manual interaction or intervention by the vehicle driver (e.g., based on the driver controlling the steering wheel of the vehicle) may be interpreted by the controller 131 as a correction to the look-ahead path 138 (e.g., a correction to a specific point on the look-ahead path 138), which results in an additional amount of data in the feed-forward (e.g., only when steering torque is applied by the driver). Once the driver stops interacting with the vehicle (e.g., via the steering wheel), the controller 131 may reduce the additional offset to zero (e.g., by gradually reducing the additional offset to zero) by the look-ahead engine 140 looking ahead to the original path and thus having a normal look-ahead offset (e.g., the offset before the additional offset is added by the summing component 142).
[0053] A system having such a look-ahead engine 140 to provide feed-forward compensation may be used as a separate aspect or example of the present disclosure, or may be used in conjunction with any aspect described herein (e.g., aspects related to managing the I-part parameters described herein).
[0054] Figure 22 is a block diagram 200 illustrating components of an automated vehicle's self-driving application. Features 202 (also referred to as functions) represent functions that may be performed by a vehicle, such as traffic assistance for navigating traffic, lane keeping assistance (LKA) for keeping a vehicle in a particular lane, lane change assistance for changing lanes, obstacle avoidance for avoiding obstacles in the vehicle's path, and the like. Outputs from features 202 may include instructions or commands related to the features or functions, such as lateral requests (e.g., requests to change lanes), path requests (e.g., requests to maintain heading in a lane), and the like. Outputs from features 202 may be provided to an advanced driver assistance system (ADAS) 204. ADAS 204 may include multiple components, including a lateral control engine 208 that provides outputs for steering the vehicle along the path provided by feature 202, a driver-in-the-loop (DIL) engine 210, and a lateral acceleration limiting engine 212.
[0055] The lateral control engine 208 can output a steering request (eg, a pinion angle request, a steering torque request, etc.) based on a path requested by one of the lateral features from the features 202. Various aspects of the lateral control engine 208 are provided herein. The lateral control engine 208 can include Figure 1A The controller 101, Figure 1B The controller 118 or Figure 1C As described above, Figure 1C The controller 131 may not be a conventional PID controller because the “D” portion (eg, the derivative control engine 110 ) does not receive the error 116 received by the controller 132 , which includes the proportional control engine 104 and the integral control engine 106 .
[0056] In one aspect, the lateral control engine 208 can use a bicycle model or a single-track model to convert the steering request (e.g., pinion angle request, steering torque request, etc.). In this model, the front wheel and the rear wheel represent the front wheel and the rear wheel of the vehicle, respectively. The bicycle model is a simpler model than the four-wheel model. The feed-forward portion calculates the steering value (e.g., pinion angle, steering torque value, etc.) required to keep the vehicle on the constant curvature path (e.g., as described above with respect to Figure 1CThe in-curve logic of the lateral control engine 208 may provide (e.g., when a road with one or more curves is detected, such as using one or more sensors such as one or more cameras, depth sensors, etc.) a factor that is multiplied by one or more of a proportional value output by a proportional control engine, an integral value (of an I-partial parameter or cumulative parameter) output by an integral control engine, and / or a differential value output by a differential control engine, as previously discussed. In an illustrative aspect, the lateral control engine 208 may be adjusted for vehicles with a specific traffic assistance speed limit (e.g., a speed limit of 135 kph). The adjustment of the lateral control engine 208 may depend on feature-specific behavior.
[0057] As described above, outputs associated with features 202 (e.g., traffic assist, LKA, lane change assist, etc.) can be provided as inputs to the lateral control engine 208, which can include parameters associated with a requested path of travel for the vehicle. The lateral control engine 208 can switch between different adjustment sets. Examples of outputs from the lateral control engine 208 include steering requests (e.g., pinion angle requests, steering torque requests, etc.), steering request rate limits (e.g., pinion angle request rate limits, steering torque request rate limits, etc.), etc., similar to the above description of the lateral control engine 208. Figures 1A to 1C As described. The output of the lateral control engine 208 can be provided to the vehicle control engine 206 (similar to the vehicle control engine 114), which can include a steering torque manager that controls torque associated with the steering of the vehicle. For example, the vehicle control engine 206 can use power steering unit software that can convert steering requests (e.g., pinion angle requests, steering torque requests, etc.) into torque values. In one aspect, the lateral control engine 208 can be developed as an automotive safety integrity level (ASIL) quality management (QM) function.
[0058] The driver-in-the-loop (DIL) engine 210 can ensure smooth interaction between inputs from the driver (e.g., steering wheel inputs from the driver) and actuations (e.g., steering actuations) by the lateral control engine 208 that control the lateral movement of the vehicle. For example, the driver-in-the-loop engine 210 can be a hands-on-steering wheel feature that runs in parallel when a lateral feature (e.g., traffic assist, LKA, etc.) is active. In some cases, the driver-in-the-loop engine 210 may not be active when the driver has his or her hands on the steering wheel but is not actively steering. In the case where the driver has one or both hands on the steering wheel but the steering wheel torque is low enough not to overrule the lateral feature, the driver-in-the-loop engine 210 may not interpret the input as driver intervention and thus allow the feature to remain active. If the driver overrides the lateral feature by manually steering (e.g., the torque is high enough to overrule the lateral feature), the driver-in-the-loop engine 210 may become active or turned on. In this case, the steering wheel may be controlled by the vehicle system, in which case the driver may feel a slight initial resistance in the steering wheel as a warning that the vehicle's controlled steering is against the lateral feature. If the driver manually steers past this resistance, the driver-in-the-loop engine 210 may reduce the steering wheel torque of the lateral feature, allowing the driver to take control of the lateral movement of the vehicle. Such a driver-in-the-loop engine allows the driver to steer without having to fight the lateral feature. As the driver reduces manual steering or stops steering altogether, the lateral steering support of the feature may be gradually increased until the lateral feature fully regains control.
[0059] The adjustments of the driver-in-the-loop engine 210 are feature-dependent to allow feature-specific behavior. The system can determine the identity of the driver (e.g., using artificial intelligence or machine learning) and apply a profile that includes information associated with the specific behavior of the driver. A steering wheel torque value is an example input to the driver-in-the-loop engine 210. An example output of the driver-in-the-loop engine 210 includes a torque limit to communicate the steering torque level allowed for the feature to the vehicle control engine 206. The driver-in-the-loop engine 210 can perform arbitration between the driver-in-the-loop engine 210's own torque limit and one or more torque limits output by the lateral acceleration limiter engine 212 (discussed below). In some cases, bandwidth scaling can be sent by the driver-in-the-loop engine 210 to allow the vehicle control engine 206 to react to the driver-in-the-loop torque limit, resulting in smoother behavior of the controller 118.
[0060] In some cases, the lateral acceleration limiter engine 212 can meet lateral acceleration limit requirements, such as lateral acceleration limit requirements from United Nations (UN) Regulation No. 79 or any other government regulation or private parameter setting. Such regulations involve provisions regarding vehicle approval of steering equipment. UN Regulation No. 79 is an example of a regulation that can be implemented in ADAS204. Other regulations or requirements may also be utilized. The manufacturer of each respective vehicle may define a value for the maximum lateral acceleration limit. Different maximum lateral acceleration limits may be defined for different speed ranges. The lateral acceleration of a particular feature may be limited to a specific range, and the range may be governed by data stored in the lateral acceleration limiter engine 212. In one aspect, when the traffic assistance mode is effective for the vehicle, the lateral acceleration limiter engine 212 may ensure that the lateral acceleration of the vehicle does not exceed the specified maximum lateral acceleration limit by 0.3 m / s 2 .
[0061] In some cases, the lateral acceleration limiter engine 212 can be activated without driver input to the steering control. For example, when the traffic assist mode is inactive, the lateral acceleration limiter engine 212 can also be inactive. Illustrative examples of inputs to the lateral acceleration limiter engine 212 can include the speed of the vehicle, the yaw rate of the vehicle, and the steering torque currently applied by the lateral feature. The lateral acceleration limiter engine 212 can output a torque limit to communicate the steering torque level allowed by the lateral feature to the vehicle control engine 206. In some examples, the lateral acceleration limiter engine 212 can contain a basic torque limit for all lateral control modes. The allowed torque limit can be determined by the driver in the loop engine 210 before the torque limit is output to the vehicle control engine 206.
[0062] The output of ADAS204 can be a steering limit and / or a steering request (e.g., a pinion angle request, a steering torque request, etc.). As an illustrative example of a steering request, the pinion angle refers to the angle of the differential pinion relative to the drive shaft. Setting the pinion angle can be the last step in the driveline alignment. The goal of the pinion angle requirement or other steering requirements is to produce a straight line from the rear of the crankshaft through the transmission, drive shaft, and the pinion of the differential under load. Due to the tendency of the pinion to rise under load, there must be a certain angle when stationary. In this example, the pinion angle is adjusted via the vehicle control engine 206 based on information received from ADAS204.
[0063] As described above, aspects of the present disclosure relate to managing a portion of a controller (e.g., Figure 1A , Figure 1B , Figure 1CThe I-part parameter (or accumulated parameter) of the integral control engine 106 of the I-part controller 108 or other controller). In some cases, when the driver manually interacts with the vehicle (e.g., by interacting with or controlling the steering wheel of the vehicle), the I-part parameter (accumulated parameter) of the integral control engine 106 may stop accumulating the error e(t) value (referred to herein as a frozen I-part parameter). For example, as described above, the integral control engine 106 of the controller 118 includes an accumulation of error e(t) values, which may include local offset values (e.g., lateral offset values) related to the local offset (e.g., lateral offset) of the vehicle over time. When the driver interacts with the vehicle, the lateral feature (e.g., traffic assist, LKA, etc.) is no longer fully under control and the control loop is interrupted. For example, the error e(t) or local offset 116 may change from a positive offset to a negative offset during driver interaction (see, e.g., Figure 3 ), but the I portion value may be frozen during driver interaction and therefore not related to the local offset or error value (e.g., error 116). The I portion parameter may be frozen because if the integral control engine 106 continues to accumulate errors during driver intervention, when the controller (e.g., controller 101, controller 118, or controller 131) takes over control of the vehicle from the driver, the accumulated error will increase and potentially cause an abrupt change in the driver's steering experience.
[0064] In some cases, if the driver manually interacts with or controls the vehicle, which causes a sign change of the I-part parameter to occur, and the I-part is frozen, the I-part parameter may dominate the data used by the controller. In this case, if another sign change of the I-part parameter occurs under automatic control of the vehicle, the steering request (e.g., pinion angle request, steering torque request, etc.) output from the controller may not follow the sign change of the error / local offset, and the steering of the vehicle may not be completely accurate. This problem can be attributed to the freezing of the I-part parameter during the manual interaction of the user with the vehicle, and then the I-part parameter dominates in the controller over time. Various aspects described herein provide techniques for maintaining the I-part parameter or error e(t) accumulated by the integral control engine 106 based on certain events or situations.
[0065] In some examples, when the driver performs a small correction (e.g., a correction that does not change the vehicle path by a large amount, such as when driving around a curve), it may be beneficial to allow the controller (e.g., after the driver interaction) to take over from the previous I-part parameter value (e.g., the previous accumulated error value) to allow a specific lateral feature (e.g., traffic assistance, etc.) to quickly and smoothly resume operation. In such examples, the control system may not reset the value of the integral control engine 106. For example, in the case of resetting the accumulated error of the I-part parameter to zero, the integral control engine 106 may spend a certain period of time to accumulate the I-part parameter value. This period of time may cause a delay in the system response and a corresponding performance loss. Various aspects of the present disclosure are related to determining whether to reset (e.g., reset or not reset) the I-part parameter value (related to the accumulation of errors) to zero and / or take another action, such as freezing the I-part parameter, determining or calculating a new I-part parameter value, and / or other actions.
[0066] Figure 3 A diagram of a scenario 300 is shown in which an integral control engine of a controller system determines not to freeze an I-part parameter value (e.g., the integral control engine continues to accumulate error values) based on manual interaction with a vehicle 302, such as when a driver interacts with or intervenes with the vehicle 302 (e.g., a driver-in-the-loop or DIL) causing automatic control of the vehicle to cease. The vehicle 302 includes a controller 318, which may be active to control movement of the vehicle 302. The controller may include Figure 1A The controller 101, Figure 1B Controller 118, Figure 1C Controller 131 or other controller including an integral control engine with an I-part controller.
[0067] like Figure 3, the vehicle 302 moves at a particular offset from the requested path 304. As described above, due to the freezing of the I-part parameters in the integral control engine 106 under driver intervention when the controller 318 is active, the steering angle (e.g., pinion angle, steering torque angle, etc.) may be "stuck" and not react to a later sign change in the local offset 310. In some aspects, the controller 318 (e.g., the I-part controller 108 of the integral control engine 106) can determine whether to continue to accumulate error values for the I-part parameters (and therefore not freeze the I-part parameters) or whether to freeze the I-part parameters based on whether there is manual interaction with the vehicle 302 and whether the error e(t) is decreasing (e.g., the absolute value of the error e(t) is decreasing). For illustrative purposes, the offset 310 when the vehicle 302 is on the left side of the requested path 304 is represented as a negative offset, and the offset 310 when the vehicle 302 is on the right side of the requested path 304 is represented as a positive offset. In one illustrative example, if the vehicle 302 is moving laterally closer to the requested path 304 (represented as line 306), the local offset 310 (or error) is decreasing (e.g., the absolute value of the local offset 310 is decreasing). For example, a difference between a first value of the error and a first set point value can be determined at a first point, and then the difference can be compared to a difference between a second value of the error at a second point and the second set point value, and if the difference is decreasing (e.g., the difference at the first point is greater than the difference at the second point), the vehicle is moving closer to the requested path. In another illustrative example, if the vehicle 302 is moving laterally away from the requested path 304 (represented as line 308), the local offset 310 (or error) is increasing (e.g., the absolute value of the local offset 310 is increasing). For example, a difference between a first value of the error and a first set point value can be determined at a first point, and then compared to a difference between a second value of the error at a second point and the second set point value, and if the difference is increasing (e.g., the difference at the first point is less than the difference at the second point), the vehicle is moving away from the requested path.
[0068] In one example, a controller 318 (e.g., the I portion controller 108 of the integral control engine 106) may determine that there is manual interaction with the vehicle 302 (e.g., the driver is interfering with or interacting with the steering wheel of the vehicle 302) and Figure 3 The error e(t) or local offset shown in FIG. 1 is decreasing (e.g., the absolute value of the local offset 310 is decreasing, which is Figure 3306). Upon determining manual interaction with the vehicle 302 and the error e(t) is decreasing, the controller 318 (e.g., the integral control engine 106) may determine to continue accumulating error values for the I-part parameter (and therefore not freeze the I-part parameter). In another example, the controller 318 may determine that there is manual interaction with the vehicle 302 (e.g., the driver is interfering with or interacting with the vehicle 302) and that the offset or error is increasing (represented as line 308). Based on determining manual interaction with the vehicle 302 and the increase in the error, the controller 318 may determine to stop the accumulation of error values (and therefore freeze the I-part parameter). In an illustrative example, a first difference between a subsequent first value of the error at a first point and a first set point value may be greater than a second difference between at least one previous second value of the error and a second set point value, and based on this, a determination to stop the accumulation of error values may be made. As another illustrative example, a first difference between a subsequent first value of the error at a first point and a first set point value may be determined to be less than a second difference between at least one previous second value of the error and a second set point value, and based thereon, a determination of a cumulative error value may be made. Freezing of the error value may occur before or after a change in sign of the local offset.
[0069] Figure 4 4 is a diagram illustrating an example of how the sign of the error or local offset changes to a different sign than the sign of the I-part parameter 414 when the vehicle 404 transitions from the scenario 400 to the scenario 410. In the scenario 400, the vehicle 404 moves along the requested path 402 with a small positive offset. The vehicle 404 has a controller 418 that operates to control the movement of the vehicle 404. The controller 418 may include Figure 1A Controller 101, Figure 1B Controller 118, Figure 1C Controller 131 or other controller including an integral control engine with an I-part controller. Note that offset 405 is positive when vehicle 404 is located to the right of requested path 402 and is negative when vehicle 404 is located to the left of requested path 402. In one aspect, the I-part parameter or error value is positive given the position of vehicle 404 in scenario 400. For example, if vehicle 404 were to move to the left of requested path 402 (e.g., as shown in scenario 410), the error or offset would change sign from positive to negative 405 (while the accumulated I-part parameter corresponding to the error value would remain positive).
[0070] In scenario 410, vehicle 404 has moved to the left of requested path 402 along path 412, such that the error or offset has become negative. However, as described above, the I-part value or error value in integral control engine 106 remains positive. In one aspect, controller 418 may determine whether to continue accumulating error or offset values for I-part parameter 414 based on whether there is manual interaction with vehicle 404 and whether the error or local offset changes to a different sign than I-part parameter 414. For example, controller 418 (e.g., I-part controller 108 of integral control engine 106) may continue accumulating error values for I-part parameter 414 in integral control engine 106 (e.g., not freezing I-part parameter 414) based on determining that there is manual interaction with vehicle 404 (e.g., based on driver interfering with or interacting with the steering wheel of vehicle 404) and the error or local offset changes to a different sign than I-part parameter 414 (e.g., from positive (+) to negative (-)). In some cases, the controller 418 may freeze the I-part parameter (and therefore stop accumulating error or offset values) when the error or local offset has the same sign as the I-part parameter. For example, upon determining that there is manual interaction with the vehicle (e.g., the driver interferes with or interacts with the steering wheel of the vehicle) and the error or local offset has the same sign as the I-part parameter, the controller 118 may stop accumulating error or offset values (e.g., until a later event is detected, such as the error or local offset changes to a different sign than the I-part parameter 414, detecting that the driver stops interacting with the vehicle, etc.).
[0071] In some cases, Figure 3 and Figure 4 The examples of may be used independently or in combination. For example, in some cases, when determining whether to continue accumulating error values for the I-part parameters (e.g., not freezing the I-part parameters) or to stop accumulating error values for the I-part parameters (e.g., freezing the I-part parameters), the controller of the vehicle may consider whether the error or offset is decreasing or increasing and whether the error or local offset has changed to a different sign than the I-part parameters.
[0072] Figure 5 is a diagram illustrating an example of a scenario 500 including a vehicle 504 including a controller 518 that directs the vehicle along a requested path 502. The controller 518 may include Figure 1A Controller 101, Figure 1B Controller 118, Figure 1CController 131 or other controller including an integral control engine with an I-part controller. When the driver interacts with the vehicle 504 in the manner shown or under autonomous driving conditions, the vehicle can go from a positive local offset 506 to a negative local offset 506. In this example, the I-part value or error value of the integral control engine 106 is also positive. When the vehicle 504 moves laterally to the left 508, the offset 506 changes from positive (+) to negative (-). Figure 5 As shown, when the path of the vehicle 504 crosses the requested path 502, the controller 518 can start a timer. For example, the timer is started at the transition of the local offset 506 from positive (+) to negative (-) (or in other examples, before or after the transition). The timer can be set to a certain time period (e.g., x seconds such as 2 seconds). In some cases, the controller 518 can maintain 510 the error or offset 506 for a certain period of time and then reduce 512 the error or offset 506 (e.g., at a certain rate or within a period of time) to zero or some other value that can be positive or negative.
[0073] In some aspects, if the error or offset 506 still has a different sign relative to when the driver takes over steering or relative to some other parameter under autonomous driving conditions, a reduction 512 of the error or offset 506 may occur. At the point x seconds after the timer is started, the offset 506 is negative where it was initially positive. However, in scenario 500, the error or offset 506 is maintained as positive 510 (same sign as the I-part parameter) and then reduced 512 as managed by the controller 518, rather than allowing the error or offset 506 to become negative.
[0074] As described above, the error or offset 506 can be reduced at a certain rate. In one aspect, the reduction 512 of the error or offset 506 can be performed based on the magnitude of the I-part parameter (e.g., the magnitude of the cumulative error). For example, if the I-part parameter value is relatively small (e.g., a value of 0.1, 0.2, or other value), the ramp down 512 can have a certain rate (e.g., a rate of 0.25 meters per second (m / s) or some other rate) that can be established by the controller 518. If the I-part is high (e.g., a value of 0.5, 0.6, or other value), the reduction 512 of the error or offset 506 can be established by the controller 518 to a different value. In some cases, the length of the timer (e.g., the "x" value) can be set based on the value of the I-part parameter and whether the I-part parameter is high or low or based on some other data. The above description of the timer can be used to determine the error or offset 506. Figure 3 , Figure 4 and Figure 5 The various aspects discussed may be performed independently or in combination with any of the concepts discussed herein.
[0075] Figure 5Scenario 500 in may occur during both driver interaction and automated driving (eg, the decision to start a timer may be independent of whether manual interaction with the vehicle is occurring).
[0076] In some aspects, a controller (e.g., controller 101, controller 118, controller 131, controller 318, controller 418, controller 518, or other controller with an integral control engine) may implement an intelligent anti-windup method. In such aspects, the I-part parameter (or cumulative parameter) may be limited to a threshold value (referred to as a limit value). For example, the limit value of the I-part parameter may depend on the driver's intervention time, road curvature, steering wheel angle, steering request (e.g., pinion angle request, steering torque request, etc.), steering impulse, local offset, yaw rate, data of the vehicle's surroundings, map data, the vehicle's heading, characteristic steering torque, driver steering torque, lateral acceleration of the vehicle, any combination thereof, and / or one or more of other factors. The controller may limit the I-part parameter based on one or more of these parameters so that it does not exceed the limit value.
[0077] Figure 6 Another scenario 600 is illustrated in which a vehicle 602 has a controller 618 and is traveling along a requested path 604 of the controller 618. The controller 618 may include Figure 1A The controller 101, Figure 1B Controller 118, Figure 1C Controller 131 or other controller including an integral control engine with an I-part controller. As shown in scenario 600, obstacle 606 can be in path 604 of vehicle 602. At a first portion 607 of path 604, driver interaction with vehicle 602 (e.g., with the steering wheel of vehicle 602) causes vehicle 602 to move away from obstacle 606. After the vehicle passes obstacle 606 based on the driver interaction, the driver can stop interacting with the steering wheel (e.g., by letting go or releasing the steering wheel) at a second portion 609 of path 604, at which point controller 618 can return to operating the vehicle to requested path 604.
[0078] In some aspects, the controller 618 may reset the I-part parameter value (or cumulative parameter value) to zero on a straight road (or nearly straight road), for example, rather than freezing the value of the integral control engine 106. In such aspects, on a straight road, the controller 618 may determine not to freeze the value of the integral control engine 106. For example, the driver of the vehicle 602 may want to steer more to the right or left off the requested path 604, such as to go around an obstacle 606. Determining whether to reset, freeze, or not freeze the I-part value may be based at least in part on how straight the road was at the time of the driver intervention, how straight the road was directly in front of the vehicle at the time the driver intervention occurred, based on a lateral acceleration indicating the curvature of the road (e.g., whether the road is straight or curved), any combination thereof, and / or other factors. In one illustrative example, the controller 618 may determine to reset the I-part value of the integral control engine 106 based on the lateral acceleration of the vehicle 602. For example, the controller 618 may determine to reset the I-part value of the integral control engine 106 for a vehicle 602 that is less than a lateral acceleration threshold (e.g., less than or equal to 0.7 m / s 2 or other suitable lateral acceleration threshold) resets the I portion value of the integral control engine 106.
[0079] exist Figure 6 , the path of vehicle 602 based on driver interaction may be represented by line 608. Figure 6 The road shown in the example is shown as a right curve, but Figure 6 The described technique is applicable to any curvature. After a driver interaction (e.g., occurring at the first portion 607 of the deviation path 604), the I-part parameter in the integral control engine 106 can be reset to zero so that the controller 618 can smoothly transition back to the requested path 604 (e.g., via the second portion 609). The portion of the vehicle path 604 that the representative controller 618 takes over is shown as line 610. The advantage of this method is that the controller 618 starts faster from zero in some cases, rather than starting from the wrong sign of the offset value. In the example shown in the scene 600, just before the driver interaction (e.g., at the first portion 607), the controller 618 may have been configured to move the vehicle in another direction different from the driver interaction (e.g., to the left), thus freezing the value in the error direction.
[0080] about Figure 6, an example device may manage autonomous driving of a vehicle. The device may include or may be a controller 618 that includes an integral control engine (e.g., the integral control engine 106). The controller 618 may automatically control the vehicle along the requested path 604. The device may receive data about one or more of the movement of the vehicle 602 and the driver's interaction with the vehicle 602 to avoid obstacles 606, and based on the data and relative to the integral control engine 106 of the controller 618, perform a reset of parameters associated with the integral control engine 106 to zero after the driver interaction. The controller 618 may also receive further data about the straightness of the road associated with the intended path of the controller 618, and further reset the parameters based on whether the road is straight or nearly straight. In one example, the lateral acceleration may be less than a threshold value (e.g., whether the lateral acceleration is less than or equal to 0.7 m / s 2 )Determine whether the road is straight or nearly straight.
[0081] The above article about Figure 6 The discussed aspects may be implemented independently or in conjunction with the concepts discussed herein (such as those described above with respect to Figure 3 , Figure 4 and Figure 5 Any of the concepts described and / or aspects described below) may be performed in combination.
[0082] In some aspects of the present disclosure, Figure 2 The intelligent lateral control algorithm or lateral control engine 208 shown in FIG. 1 can be restored after a driver intervention or reset. The lateral control engine 208 has some values or parameters including the history of offset values. One of these values is a part I parameter of the integral control engine of a controller (e.g., controller 101, controller 118, or other controllers described herein that include an integral control engine). For illustrative purposes, reference will be made to the controller 118, but the aspects described herein also relate to other controllers described herein.
[0083] There are several situations or events after which the controller 118 may determine not to continue using the history and may re-evaluate the situation or event and / or start with more appropriate "alternative" values (also referred to as updated accumulated parameters) for Part I. Such situations or events may include, but are not limited to: (1) initialization of a lateral controller (e.g., controller 118) after a function or feature associated with the vehicle (e.g., traffic assist, lane keeping assist (LKA), etc.) is initiated or resumed; (2) manual interaction with or intervention in the vehicle (e.g., temporary driver intervention through steering or other intervention); (3) manual lane change by the driver while the controller 118 is active; (4) changes in functions or features associated with the vehicle (e.g., changes in controller 118) (e.g., changes between following the center of the lane, trajectory for lane following, trajectory for lane change, trajectory for lane keeping assist, where lane keeping assist is stepped in to assist the controller 118 and trajectory changes, etc.); (5) (e.g., an update to a trajectory corresponding to at least one function or feature associated with the vehicle (e.g., an update to a trajectory within a specific feature such as traffic assistance, LKA, etc.); (6) a change in at least one setting of at least one function or feature associated with the vehicle (e.g., a change made by the driver via a human-machine interface that changes a lateral control setting); (7) a change in the sign associated with an error or local offset (e.g., a lateral offset) relative to a set point value of at least one parameter (e.g., a trajectory along a predetermined path) (e.g., a change in the sign of the error or lateral offset relative to the trajectory); (8) a change in one or more characteristics of the at least one parameter (e.g., a change in one or more relevant characteristics of a predetermined path, such as a bend in the road); any combination thereof and / or other situations or events. These scenarios may be mixed with any other scenarios set forth in this disclosure to make decisions by the controller 118 regarding how to manage the I portion. In the scenarios outlined above, the system may maintain the I portion, reset the I portion, or may perform an operation to recalculate the I portion to generate an "alternative" value that is then continued to be used by the controller 118.
[0084] The replacement value (or updated cumulative parameter) of part I can be calculated based on one or more of the following information or values: (1) a local offset relative to the trajectory (e.g., a lateral offset); (2) a lateral velocity of the vehicle or relative to the trajectory (e.g., an absolute lateral velocity); (3) a lateral acceleration of the vehicle or relative to the trajectory (e.g., an absolute lateral acceleration); (4) a curvature of the lane, trajectory, or current path of travel (e.g., a curvature of the vehicle's trajectory, a curvature of a path on which the vehicle is located or traveling, etc.); (5) a heading relative to the vehicle's trajectory; (6) a heading relative to the vehicle's location or path of travel. The vehicle may be configured to include, but is not limited to, a lane heading; (7) a yaw rate of the vehicle; (8) a longitudinal speed of the vehicle; (9) a steering torque applied by the driver; (10) a steering torque applied by the feature; (11) a steering angle (e.g., a pinion angle or a steering wheel angle); (12) map information about the road; (13) situation or event information (e.g., a driver changing lanes, a driver overtaking an object, a feature change, a trajectory update, and a new initialization); (14) settings of the controller 118 that may or may not be changed by the driver; any combination thereof and / or other information or values. In a typical scenario, the driver takes over steering for a brief period of time, and the controller 118 will employ one or more of the above scenarios, and in one aspect may further utilize any other data disclosed herein to calculate an alternative value for the portion I when the controller 118 takes over control of the vehicle from the driver. For example, the current local offset (e.g., lateral offset) and / or the current lateral speed when the controller 118 is about to take over may be used to calculate an alternative portion I value to be used when the controller 118 takes over again.
[0085] Additionally or alternatively, in some aspects of the present disclosure, the controller 118 may consider conditions related to when the controller will forget or remove history based on various factors. The controller 118 has some variables that contain history. One of these variables is the I portion associated with the integral control engine 106 of the controller 118. There are several situations or events during and after which the history may not be used as is, but rather one or more of the current value or older values should be forgotten or reduced (or ramped down). Examples of such situations or events that may cause the controller 118 to forget the I portion value or the ramp-down I portion value may include, but are not limited to, one or more of the following: (1) manual interaction with or intervention in the vehicle (e.g., temporary driver intervention through steering or other intervention); (2) the driver manually changing lanes; (3) a change in a function or feature associated with the vehicle (e.g., a change in the controller 118) (e.g., a change between following the center of the lane, a trajectory for lane following, a trajectory for lane changing, a trajectory for lane keeping assist, where lane keeping assist is gradually engaged to assist the controller 118 and the trajectory changes, etc.); (4) an update to a trajectory corresponding to at least one function or feature associated with the vehicle (e.g., a trajectory update within a particular feature such as traffic assistance, LKA, etc.); (5) a change in at least one setting of at least one function or feature associated with the vehicle (e.g., a change made by the driver via a human-machine interface that changes the lateral control setting); (6) a change in the sign associated with an error or local offset (e.g., a lateral offset) relative to a set point value of at least one parameter (e.g., a trajectory along a predetermined path) (e.g., a change in the sign of the error or local offset (e.g., a lateral offset) relative to the trajectory); (7) a change in one or more characteristics of the at least one parameter (e.g., a change in one or more relevant characteristics of a predetermined path, such as a curvature of the road); any combination thereof and / or other circumstances or events.
[0086] During and after these situations / events, the value of the I part parameter can be multiplied by a reduction factor (also referred to herein as a forgetting factor) to reduce or ramp down the cumulative value of the I part parameter (e.g., before adding a new value of the I part parameter). The reduction factor (or forgetting factor) can be set to any suitable value, such as zero (which will reset the value) or a value greater than zero (e.g., 0.4, 0.5, 0.6, etc.). In one example, the reduction factor can be a number less than 1, such as 0.7, 0.8, 0.9 or other values. In some cases, using such a reduction factor or forgetting factor can ensure that the history of the variable gradually ramps down. In some aspects, the reduction factor can vary according to the situation or event. For example, the reduction factor can be a variable value that can be set based on a specific situation or event.
[0087] The reduction (or forgetting) factor may control the time period (or how long) the ramping down of the I-part value or accumulation parameter will occur. In some cases, the reduction (or forgetting) factor may depend on various factors, such as one or more of the following: (1) the expiration of a timer since the beginning of the situation or event or the expiration of a timer since the end of the situation or event (e.g., different timer values depending on the event); (2) the end of the situation or event that triggered it; (3) reaching a target (e.g., lateral speed, local offset (e.g., lateral offset), steering angle (e.g., pinion angle, steering torque angle, etc.), or I-part changes sign or value to x% of its initial value, etc.); any combination thereof and / or other factors. In some cases, although the above discussion is about a reduction, decrease, or ramping down of the I-part value, the I-part value may be increased or ramped up based on any factor, situation, or event in this document.
[0088] Figure 7 is a flow chart illustrating an example of a process 700 for controlling one or more operations of a vehicle according to one or more aspects described herein. According to aspects described herein, the process 700 may be performed by a controller of the vehicle (e.g., a lateral controller of the vehicle) such as Figure 1A The controller 101, Figure 1B The controller 118 or Figure 1C Controller 131, Figure 3 Executed by controller 318 or other controllers described herein. In one illustrative example, Figure 1B The controller 118 of the embodiment of the present invention can utilize the I part controller 108 to perform one or more operations of the process 700. In some cases, the operations of the process 700 can be performed by a controller having Fig. 9 The system is implemented based on the architecture of the computing system 900.
[0089] At block 702, process 700 includes determining a manual interaction with a vehicle. In one illustrative example, process 700 may determine that there is a manual interaction with a vehicle based on input associated with an interaction of a driver with a steering wheel of the vehicle.
[0090] At block 704, process 700 includes determining an error between a set point value of a parameter and a current value of the parameter during manual interaction with the vehicle. In one illustrative example, the parameter includes a position associated with a predetermined path of the vehicle.
[0091] At block 706, process 700 includes determining, based on the determined error, whether to accumulate a value associated with the error for use in controlling at least one function of the vehicle. In some examples, the vehicle may include an integral control engine (e.g., Figure 1A The integral control engine 106, Figure 1BThe integral control engine 106, Figure 1C In some cases, process 700 may include outputting at least one configuration request for controlling at least one function of the vehicle based on the accumulation of errors. In one illustrative example, the at least one configuration request includes a steering request for controlling the direction of the vehicle along a predetermined path. In some cases, the steering request includes a pinion angle request, a steering torque request, or other types of steering requests for controlling the direction of vehicle travel. The vehicle control engine (e.g., vehicle control engine 114) can use the steering request to autonomously control the vehicle, such as along a predetermined path in a direction based on the steering request.
[0092] In some cases, the lateral controller may control the vehicle to maintain a path in the middle of the lane. The lateral controller may attempt to keep the vehicle on this path in all conditions including curves. In some cases, it may be desirable to have a different behavior to have an offset relative to the middle of the lane when driving into a curve. In some cases, the vehicle may negotiate a curve in an out-in-out manner.
[0093] In some cases, the lateral controller may detect that the vehicle is traveling in a curve, and in this case the lateral controller may zero the I portion of the PID controller.
[0094] By zeroing the I part of the PID controller, a (relatively) late response of the controller is expected at curve entry. This may result in an increased deviation from the path at the entrance to the curve. Inside the curve, the deviation from the path is reduced by the remaining P and D parts of the controller. There, the vehicle will follow the path closely. At the curve exit, the deviation will increase again due to the (relatively) late response of the controller. This will result in the requested out-in-out approach.
[0095] However, zeroing the I portion may have a negative impact on driving on a straight road, as the controller will not be able to adequately minimize the error. This may result in unwanted oscillations. Therefore, zeroing the I portion may be combined with logic that detects that the vehicle is in a curve by comparing the measured curvature to a certain curvature threshold.
[0096] In some aspects, process 700 may include determining that a first difference between a value associated with the error and a set point value of the parameter is less than a second difference between a previous value associated with the error and the set point value. Process 700 may include determining to accumulate the value associated with the error based on the first difference being less than the second difference. In some cases, process 700 may include determining that a third difference between a subsequent value associated with the error and the set point value of the parameter is greater than a fourth difference between at least one previous value associated with the error and the set point value. Process 700 may include determining to stop accumulating the value associated with the error based on the third difference being greater than the fourth difference.
[0097] In some aspects, process 700 may include determining that a first difference between a value associated with the error and a set point value of the parameter is greater than a second difference between a previous value associated with the error and the set point value. Process 700 may include determining to stop accumulating values associated with the error based on the first difference being greater than the second difference. In some cases, process 700 may include determining that a third difference between a subsequent value associated with the error and the set point value of the parameter is less than a fourth difference between at least one previous value associated with the error and the set point value. Process 700 may include determining to accumulate values associated with the error based on the third difference being less than the fourth difference.
[0098] In some aspects, process 700 may include determining a change in a sign associated with the error relative to a sign associated with an integral control engine configured to accumulate a value associated with the error. Process 700 may include determining to accumulate the value associated with the error based on the change in sign associated with the error. In some cases, the change in sign associated with the error indicates a change in the direction of the vehicle relative to a set point value. In some aspects, process 700 may include determining that a sign of the value associated with the error matches a sign associated with the integral control engine. Process 700 may include determining to stop accumulating the value associated with the error based on the value associated with the error matching a sign associated with the integral control engine.
[0099] In some cases, process 700 may include reducing and accumulating an accumulation parameter associated with a value associated with the error based on a change in a sign associated with the error. In some examples, to reduce the accumulation parameter based on a change in a sign associated with the error, process 700 may include starting a timer based on a change in a sign associated with the error, and reducing the accumulation parameter according to the timer. In some aspects, process 700 may include reducing the accumulation parameter according to a reduction rate. For example, the reduction rate may be based at least in part on the magnitude of the accumulation parameter when the timer is started.
[0100] In some aspects, process 700 may include determining that the sign of the value associated with the error matches the sign associated with an integral control engine that is configured to accumulate the value associated with the error. Process 700 may include determining to stop accumulating the value associated with the error based on the value associated with the error matching the sign associated with the integral control engine. In some cases, the value associated with the error matching the sign associated with the integral control engine indicates that the direction of the vehicle is maintained relative to the set point value. In some examples, process 700 may include determining a change in the sign associated with the error relative to the sign associated with the integral control engine. Process 700 may include determining to accumulate the value associated with the error based on the change in the sign associated with the error.
[0101] In some aspects, an accumulation parameter associated with a value associated with an error is limited and accumulated based on one or more factors as described herein, such as based on intervention time, road curvature, steering wheel angle, steering request, steering pulsation, local offset, yaw rate, data of the vehicle's surroundings, map data, the vehicle's heading, characteristic steering torque, driver steering torque, lateral acceleration, any combination thereof, and / or other factors.
[0102] In some cases, process 700 may include determining whether to reset and accumulate an accumulation parameter associated with a value associated with the error based on the lateral acceleration of the vehicle. In some examples, process 700 may include resetting the accumulation parameter based on the lateral acceleration of the vehicle being less than a threshold lateral acceleration.
[0103] In some aspects, process 700 may include determining an updated accumulation parameter for an integral control engine configured to accumulate a value associated with the error. In some cases, as described herein, process 700 may include determining the updated accumulation parameter based on detecting initialization of a lateral controller after initiation or resumption of a function associated with the vehicle, a manual interaction with the vehicle, a change in a function associated with the vehicle, an update of a trajectory corresponding to at least one function associated with the vehicle, a change in at least one setting of at least one function associated with the vehicle, a change in a sign associated with the error relative to a setpoint value of a parameter, a change in one or more characteristics of a parameter, any combination thereof, and / or other events.
[0104] In some examples, process 700 may include determining updated accumulated parameters based on: a lateral offset relative to the vehicle's trajectory, an absolute lateral speed of the vehicle, a lateral speed relative to the vehicle's trajectory, an absolute lateral acceleration of the vehicle, a lateral acceleration relative to the vehicle's trajectory, a curvature of a lane in which the vehicle is located, a curvature of the vehicle's trajectory, a curvature of a path traveled by the vehicle, a heading relative to the vehicle's trajectory, a heading relative to the lane in which the vehicle is located, a yaw rate of the vehicle, a longitudinal speed of the vehicle, a steering torque applied by a driver of the vehicle, a steering torque applied by a control system, a steering request, a steering wheel angle, map information associated with a road on which the vehicle is located, settings of a controller of the vehicle, information associated with a lane change of the vehicle, information associated with the vehicle overtaking an object on the road, information associated with a change in functionality associated with the vehicle, an update to the vehicle's trajectory, a new initialization of a controller of the vehicle, any combination thereof, and / or other events or information.
[0105] In some aspects, to determine the updated cumulative parameter, process 700 may include reducing the cumulative parameter for the integral control engine based on a reduction factor. In some cases, process 700 may include reducing the cumulative parameter based on the reduction factor based on detecting a manual interaction with the vehicle, a change in a function associated with the vehicle, an update to a trajectory corresponding to at least one function associated with the vehicle, a change in at least one setting of at least one function associated with the vehicle, a change in a sign associated with the error relative to a set point value of the parameter, a change in one or more characteristics of the parameter, and / or other events or information. In some examples, the reduction factor is based on an expiration of time since the event that triggered the reduction of the cumulative parameter or an expiration of time since the event ended and / or other events or information.
[0106] Figure 8 8 is a flow chart illustrating another example of a process 800 for controlling one or more operations of a vehicle according to one or more aspects described herein. According to aspects described herein, the process 700 may be performed by a controller of the vehicle (e.g., a lateral controller of the vehicle) such as Figure 1A Controller 101, Figure 1B The controller 118 or Figure 1C Controller 131, Figure 3 Executed by controller 318 or other controllers described herein. In one illustrative example, Figure 1C The controller 131 may utilize the look-ahead engine (LAE) 140 to perform one or more operations of the process 800 .
[0107] At block 802, process 800 includes receiving input data associated with a manual interaction with a vehicle. In one illustrative example, process 800 may include determining a manual interaction with a vehicle based on input associated with an interaction of a driver with a steering wheel of the vehicle.
[0108] At block 804, process 800 includes determining a supplemental look-ahead offset based on the manual interaction when the manual interaction is active. At block 806, process 800 includes applying the supplemental look-ahead offset to a look-ahead offset at an output of a controller configured to control at least one function of the vehicle when the manual interaction is active. In some aspects, process 800 may include determining the supplemental look-ahead offset using a filter and / or a vehicle model having speed information of the vehicle.
[0109] In some aspects, process 800 may include determining that manual interaction is no longer active and resetting the look-ahead offset to zero based on the manual interaction being no longer active. In some aspects, process 800 may include gradually resetting the look-ahead offset to zero over a period of time. In some cases, process 800 may include resetting the supplemental look-ahead offset to zero over the period of time until the original look-ahead offset value is achieved.
[0110] The controller is configured to control the at least one function of the vehicle based on applying the supplemental look-ahead offset to the look-ahead offset. In some cases, the controller is further configured to control at least one function of the vehicle based on a steering request for controlling the direction of the vehicle along a predetermined path. In some cases, the steering request includes a pinion angle request, a steering torque request, or other types of steering requests for controlling the direction of vehicle travel. The vehicle control engine (e.g., vehicle control engine 114) can use the steering request to autonomously control the vehicle, such as along a predetermined path in a direction based on the steering request.
[0111] Fig. 9 is a diagram illustrating an example of a system for implementing certain aspects of the disclosed technology. In particular, Fig. 9 An example of a computing system 900 is illustrated, which may be any computing device, for example, constituting an internal computing system, a remote computing system, a camera, or any components thereof, wherein the components of the system communicate with each other using a connection 905. The connection 905 may be a physical connection using a bus, or a direct connection into the processor 910, such as in a chipset architecture. The connection 905 may also be a virtual connection, a networked connection, or a logical connection.
[0112] In some aspects, computing system 900 is a distributed system in which the functionality described in the present disclosure may be distributed within a data center, multiple data centers, a peer-to-peer network, etc. In some aspects, one or more of the described system components represent a number of such components that each perform some or all of the functionality for which the component is described. In some aspects, a component may be a physical or virtual device.
[0113] The example system 900 includes at least one processing unit (CPU or processor) 910 and connections 905 that communicatively couple various system components including system memory 915, such as read only memory (ROM) 920 and random access memory (RAM) 925, to the processor 910. The computing system 900 may include a cache 912 of high-speed memory directly connected to the processor 910, in close proximity to the processor, or integrated as part of the processor.
[0114] Processor 910 may include any general purpose processor and hardware services or software services such as services 932, 934, and 936 stored in storage device 930 configured to control processor 910 as well as special purpose processors where software instructions are incorporated into the actual processor design. Processor 910 may essentially be a completely independent computing system containing multiple cores or processors, buses, memory controllers, caches, etc. Multi-core processors may be symmetric or asymmetric.
[0115] To enable user interaction, the computing system 900 includes an input device 945 that can represent any number of input mechanisms, such as a microphone for voice, a touch-sensitive screen for gesture or graphical input, a keyboard, a mouse, motion input, voice, etc. The computing system 900 may also include an output device 935 that can be one or more of a plurality of output mechanisms. In some examples, a multimodal system may enable a user to provide multiple types of input / output to communicate with the computing system 900.
[0116] The computing system 900 may include a communication interface 940, which may generally govern and manage user input and system output. The communication interface may perform or facilitate receiving and / or sending wired or wireless communications using wired and / or wireless transceivers, including using an audio jack / plug, a microphone jack / plug, a Universal Serial Bus (USB) port / plug, an Apple TM Lightning TM Ports / plugs, Ethernet ports / plugs, Fiber optic ports / plugs, Dedicated wired ports / plugs, 3G, 4G, 5G and / or other cellular data network wireless signal delivery, Bluetooth TM Wireless signal transmission, Bluetooth TM Low Energy (BLE) wireless signal transmission, IBEACONTM The communication interface 940 may also include one or more global navigation satellite system (GNSS) receivers or transceivers for determining the location of the computing system 900 based on receiving one or more signals from one or more satellites associated with one or more GNSS systems. GNSS systems include, but are not limited to, the United States' Global Positioning System (GPS), Russia's Global Navigation Satellite System (GLONASS), China's BeiDou Navigation Satellite System (BDS), and Europe's Galileo GNSS. There is no restriction to operating on any particular hardware arrangement, and thus the base features herein may be easily substituted for improved hardware or firmware arrangements as they are developed.
[0117] The storage device 930 may be a non-volatile and / or non-transitory and / or computer-readable memory device and may be a hard disk or other type of computer-readable medium that may store data that can be accessed by a computer, such as a magnetic tape cartridge, a flash memory card, a solid-state memory device, a digital versatile disk, a magnetic cassette, a floppy disk, a flexible disk, a hard disk, a magnetic tape, a magnetic stripe / strip, any other magnetic storage medium, a flash memory, a memristor memory, any other solid-state memory, a compact disk-read only memory (CD-ROM) optical disk, a rewritable compact disk (CD) optical disk, a digital video disk (DVD) optical disk, a Blu-ray disc (BDD) optical disk, a holographic optical disk, another optical medium, a secure digital (SD) card, a micro secure digital (microSD) card, card, a smart card chip, an EMV chip, a subscriber identity module (SIM) card, a mini / micro / nano / pico SIM card, another integrated circuit (IC) chip / card, a random access memory (RAM), a static RAM (SRAM), a dynamic RAM (DRAM), a read-only memory (ROM), a programmable read-only memory (PROM), an erasable programmable read-only memory (EPROM), an electrically erasable programmable read-only memory (EEPROM), a flash EPROM (FLASH EPROM), a cache memory (e.g., a level 1 (L1) cache, a level 2 (L2) cache, a level 3 (L3) cache, a level 4 (L4) cache, a level 5 (L5) cache, or other (L#) cache), a resistive random access memory (RRAM / ReRAM), a phase change memory (PCM), a spin-transfer torque RAM (STT-RAM), another memory chip or box, and / or a combination thereof.
[0118] The storage device 930 may include software services, servers, services, etc., which, when the code defining such software is executed by the processor 910, causes the system to perform functions. In some aspects, hardware services that perform specific functions may include software components stored in a computer-readable medium connected to necessary hardware components (such as the processor 910, the connection 905, the output device 935, etc.) to perform functions. The term "computer-readable medium" includes, but is not limited to, portable or non-portable storage devices, optical storage devices, and various other media capable of storing, containing or carrying instructions and / or data. Computer-readable media may include non-transient media in which data may be stored and does not include carrier waves and / or transient electronic signals that are propagated wirelessly or through wired connections. Examples of non-transient media may include, but are not limited to, disks or tapes, optical storage media (such as compact discs (CDs) or digital versatile discs (DVDs)), flash memory, memory, or memory devices. Computer readable media may store thereon code and / or machine executable instructions, which may represent a procedure, function, subprogram, program, routine, subroutine, module, software package, category, or any combination of instructions, data structures, or program statements. A code segment may be coupled to another code segment or a hardware circuit by passing and / or receiving information, data, independent variables, parameters, or memory contents. Information, independent variables, parameters, data, etc. may be passed, forwarded, or sent via any suitable means, including memory sharing, message receiving and sending, token passing, network sending, etc.
[0119] Specific details are provided in the above description to provide a thorough understanding of the various aspects and examples provided herein, but those skilled in the art will recognize that the application is not limited thereto. Therefore, although the exemplary aspects of the present application have been described in detail herein, it is to be understood that each inventive concept can be implemented and adopted in various other ways, and the appended claims are not intended to be interpreted as including these variations, unless limited by the prior art. The various features and aspects of the above-mentioned applications can be used individually or in combination. In addition, without departing from the broader scope of the specification, the various aspects can be utilized in any number of environments and applications beyond those described herein. Therefore, the specification and the accompanying drawings should be considered as illustrative rather than restrictive. For the purpose of illustration, each method is described in a specific order. It should be appreciated that, in alternative aspects, each method can be performed in an order different from the described order.
[0120] For clarity of explanation, in some instances, the present technology may be presented as including separate functional blocks, which include devices, device components, steps or routines in the method embodied in software or a combination of hardware and software. Additional components other than those components shown in the drawings and / or described herein may be used. For example, circuits, systems, networks, processes and other components may be shown as components in block diagram form to avoid confusing these aspects in unnecessary details. In other instances, known circuits, processes, algorithms, structures and techniques may be shown without unnecessary details to avoid confusing various aspects.
[0121] In addition, it will be appreciated by those skilled in the art that the various exemplary logic blocks, modules, circuits, and algorithmic steps described in conjunction with the aspects disclosed herein can be implemented as electronic hardware, computer software, or a combination of the two. In order to clearly illustrate this interchangeability of hardware and software, various exemplary components, frames, modules, circuits, and steps have been generally described in terms of their functionality. Whether such functionality is implemented as hardware or software depends on the specific application and the design constraints proposed for the entire system. Those skilled in the art can implement the described functionality in different ways for each specific application, but such specific implementation decisions should not be interpreted as causing a departure from the scope of the present disclosure.
[0122] Various aspects may be described above as a process or method, which is depicted as a flow chart, a flow diagram, a data flow diagram, a structure diagram, or a block diagram. Although a flow chart may describe an operation as a sequential process, many of the operations may be performed in parallel or concurrently. In addition, the order of the operations may be rearranged. The process is terminated when the operations of the process are completed, but the process may have additional steps not included in the accompanying drawings. A process may correspond to a method, a function, a procedure, a subroutine, a subprogram, etc. When a process corresponds to a function, the termination of the process may correspond to the function returning to a calling function or a main function.
[0123] The processes and methods according to the above examples can be implemented using stored computer executable instructions or otherwise available computer executable instructions from a computer readable medium. Such instructions may include, for example, instructions and data that configure a general-purpose computer, a special-purpose computer, or a processing device to perform a certain function or group of functions. Portions of the computer resources used may be accessed via a network. Computer executable instructions may be, for example, binary, intermediate format instructions such as assembly language, firmware, source code. Examples of computer readable media that can be used to store instructions, information used, and / or information created during the methods according to the described examples include disks or optical disks, flash memories, USB devices with non-volatile memory, networked storage devices, etc.
[0124] In some aspects, computer readable storage devices, media, and memories may include wired or wireless signals containing bit streams, etc. However, when referred to, non-transitory computer readable storage media specifically excludes media such as power consumption, carrier signals, electromagnetic waves, and signals themselves.
[0125] Those skilled in the art will appreciate that information and signals may be represented using any of a variety of different techniques and methods. For example, data, instructions, commands, information, signals, bits, symbols, and chips that may be mentioned throughout the above description may be represented by voltage, current, electromagnetic waves, magnetic fields or particles, optical fields or particles, or any combination thereof in some cases, depending in part on the specific application, in part on the desired design, in part on the corresponding technology, etc.
[0126] Various illustrative logic blocks, modules, and circuits described in conjunction with the various aspects disclosed herein may be implemented or executed using hardware, software, firmware, middleware, microcode, hardware description language, or any combination thereof, and may be implemented in any of a variety of form factors. When implemented in software, firmware, middleware, or microcode, program code or code segments (e.g., computer program products) for performing necessary tasks may be stored in a computer-readable or machine-readable medium. The processor may perform the necessary tasks. Examples of form factors include: laptops, smartphones, mobile phones, tablet devices, or other small form factor personal computers, personal digital assistants, rack-mounted devices, stand-alone devices, etc. The functions described herein may also be embodied in peripheral devices or add-in cards. By way of further example, such functionality may also be implemented on circuit boards in different chips or different processes executed on a single device.
[0127] The instructions, the media for conveying such instructions, the computing resources for executing them, and other structures for supporting such computing resources are example means for providing the functionality described in this disclosure.
[0128] The technology described herein may also be implemented in electronic hardware, computer software, firmware, or any combination thereof. Such technology may be implemented in any of a variety of devices, such as general-purpose computers, wireless communication devices, or integrated circuit devices with multiple uses, including applications in wireless communication devices, mobile phones, and other devices. Any features described as modules or components may be implemented together in an integrated logic device or separately as discrete but interoperable logic devices. If implemented in software, the technology may be implemented at least in part by a computer-readable data storage medium including a program code, which includes instructions for executing one or more of the above-mentioned methods, algorithms, and / or operations when executed. A computer-readable data storage medium may form part of a computer program product, which may include packaging materials. A computer-readable medium may include a memory or data storage medium, such as a random access memory (RAM) (such as a synchronous dynamic random access memory (SDRAM)), a read-only memory (ROM), a non-volatile random access memory (NVRAM), an electrically erasable programmable read-only memory (EEPROM), a flash memory, a magnetic or optical data storage medium, and the like. Additionally or alternatively, the techniques may be implemented at least in part by a computer-readable communication medium that carries or communicates program code in the form of instructions or data structures and that can be accessed, read, and / or executed by a computer, such as a propagated signal or wave.
[0129] The program code may be executed by a processor, which may include one or more processors, such as one or more digital signal processors (DSPs), general-purpose microprocessors, application-specific integrated circuits (ASICs), field programmable logic arrays (FPGAs), or other equivalent integrated or discrete logic circuits. Such a processor may be configured to perform any of the techniques described in the present disclosure. A general-purpose processor may be a microprocessor; however, in an alternative, the processor may be any conventional processor, controller, microcontroller, or state machine. The processor may also be implemented as a combination of computing devices, such as a combination of a DSP and a microprocessor, multiple microprocessors, one or more microprocessors combined with a DSP core, or any other such configuration. Therefore, the term "processor" as used herein may refer to any of the foregoing structures, any combination of the foregoing structures, or any other structure or device suitable for implementing the techniques described herein.
[0130] One of ordinary skill in the art will appreciate that the less than ("<") and greater than (">") symbols or terms used herein may be replaced by less than or equal to ("≤") and greater than or equal to ("≥") symbols, respectively, without departing from the scope of this specification.
[0131] Where a component is described as being “configured to” perform certain operations, such configuration may be achieved, for example, by designing electronic circuits or other hardware to perform the operations, by programming programmable electronic circuits (e.g., a microprocessor or other suitable electronic circuits) to perform the operations, or any combination thereof.
[0132] The phrases “coupled to” or “communicatively coupled to” refer to any component being physically connected directly or indirectly to another component, and / or any component being in communication with another component directly or indirectly (e.g., connected to the other component via a wired or wireless connection and / or other suitable communication interface).
[0133] Claim language or other language reciting "at least one of" a set and / or "one or more of" a set indicates that one member of the set or multiple members of the set (in any combination) satisfies the claim. For example, claim language reciting "at least one of A and B" or "at least one of A or B" means A, B, or A and B. In another example, claim language reciting "at least one of A, B, and C" or "at least one of A, B, or C" means A, B, C, or A and B, or A and C, or B and C, A and B and C, or any repetition is information or data (e.g., A and A, B and B, C and C, A and A and B, etc.), or any other ordering, repetition, or combination of A, B, and C. The language "at least one of" a set and / or "one or more of" a set does not limit the set to the items listed in the set. For example, claim language stating "at least one of A and B" or "at least one of A or B" may mean A, B, or A and B, and may additionally include items not listed in the set of A and B.
[0134] Claim language or other language reciting "at least one processor configured to," "at least one processor configured to," etc., indicates that one processor or multiple processors (in any combination) may perform the associated operations. For example, claim language reciting "at least one processor configured to: X, Y, and Z" means that a single processor may be used to perform operations X, Y, and Z; or that multiple processors are each tasked with a particular subset of operations X, Y, and Z, such that the multiple processors together perform X, Y, and Z; or that a group of multiple processors work together to perform operations X, Y, and Z. In another example, claim language reciting "at least one processor configured to: X, Y, and Z" may mean that any single processor may perform only at least a subset of operations X, Y, and Z.
[0135] Illustrative aspects of the present disclosure include:
[0136] Aspect 1. A device for controlling one or more operations of a vehicle, the device comprising: at least one memory; and at least one processor, the at least one processor being coupled to the at least one memory, the at least one processor being configured to: determine a manual interaction with the vehicle; during the manual interaction with the vehicle, determine an error between a set point value of a parameter and a current value of the parameter; and based on the determined error, determine whether to accumulate a value associated with the error for controlling at least one function of the vehicle.
[0137] Aspect 2. An apparatus according to aspect 1, wherein the at least one processor is configured to determine the manual interaction with the vehicle based on input associated with an interaction of a driver with a steering wheel of the vehicle.
[0138] Aspect 3. An apparatus according to any one of aspects 1 to 2, wherein the parameter comprises a position associated with a predetermined path of the vehicle.
[0139] Aspect 4. An apparatus according to any one of aspects 1 to 3, wherein the at least one processor is configured to: output at least one configuration request for controlling the at least one function of the vehicle based on the accumulation of the errors.
[0140] Aspect 5. An apparatus according to aspect 4, wherein the at least one configuration request comprises a steering request for controlling the direction of the vehicle along a predetermined path.
[0141] Aspect 6. The apparatus according to any one of aspects 1 to 5, further comprising an integral control engine configured to accumulate the value associated with the error.
[0142] Aspect 7. An apparatus according to any one of Aspects 1 to 6, wherein the at least one processor is configured to: determine that a first difference between a value associated with the error and the set point value of the parameter is less than a second difference between a previous value associated with the error and the set point value; and determine the accumulated value associated with the error based on the first difference being less than the second difference.
[0143] Aspect 8. An apparatus according to Aspect 7, wherein the at least one processor is configured to: determine that a third difference between a subsequent value associated with the error and the set point value of the parameter is greater than a fourth difference between at least one previous value associated with the error and the set point value; and determine to stop accumulating the value associated with the error based on the third difference being greater than the fourth difference.
[0144] Aspect 9. An apparatus according to any one of Aspects 1 to 8, wherein the at least one processor is configured to: determine that a first difference between a value associated with the error and the set point value of the parameter is greater than a second difference between a previous value associated with the error and the set point value; and determine to stop accumulating the value associated with the error based on the first difference being greater than the second difference.
[0145] Aspect 10. An apparatus according to Aspect 9, wherein the at least one processor is configured to: determine that a third difference between a subsequent value associated with the error and the set point value of the parameter is less than a fourth difference between at least one previous value associated with the error and the set point value; and determine the accumulated value associated with the error based on the third difference being less than the fourth difference.
[0146] Aspect 11. An apparatus according to any one of Aspects 1 to 10, wherein the at least one processor is configured to: determine a change in a sign associated with the error relative to a sign associated with an integral control engine, the integral control engine being configured to accumulate the value associated with the error; and determine the accumulated value associated with the error based on the change in the sign associated with the error.
[0147] Aspect 12. An apparatus according to aspect 11, wherein the change in the sign associated with the error indicates a change in the direction of the vehicle relative to the set point value.
[0148] Aspect 13. An apparatus according to any one of Aspects 111 or 12, wherein the at least one processor is configured to: determine that the sign of the value associated with the error matches the sign associated with the integral control engine; and determine to stop accumulating the value associated with the error based on the value associated with the error matching the sign associated with the integral control engine.
[0149] Aspect 14. An apparatus according to any one of Aspects 11 to 13, wherein the at least one processor is configured to: reduce and accumulate an accumulation parameter associated with the value associated with the error based on the change in the sign associated with the error.
[0150] Aspect 15. An apparatus according to Aspect 14, wherein, in order to reduce the accumulation parameter based on the change of the symbol associated with the error, the at least one processor is configured to: start a timer based on the change of the symbol associated with the error; and reduce the accumulation parameter according to the timer.
[0151] Aspect 16. An apparatus according to any one of Aspects 14 or 15, wherein the at least one processor is configured to: reduce the accumulation parameter according to a reduction rate, and the reduction rate is at least partially based on the value of the accumulation parameter when the timer is started.
[0152] Aspect 17. An apparatus according to any one of Aspects 1 to 16, wherein the at least one processor is configured to: determine that the sign of the value associated with the error matches the sign associated with an integral control engine, the integral control engine being configured to accumulate the value associated with the error; and determine to stop accumulating the value associated with the error based on the value associated with the error matching the sign associated with the integral control engine.
[0153] Aspect 18. The apparatus of aspect 17, wherein the value associated with the error matches the sign associated with the integral control engine to indicate maintaining the direction of the vehicle relative to the set point value.
[0154] Aspect 19. An apparatus according to any one of Aspects 17 or 18, wherein the at least one processor is configured to: determine a change in a sign associated with the error relative to the sign associated with the integral control engine; and determine the accumulated value associated with the error based on the change in the sign associated with the error.
[0155] Aspect 20. An apparatus according to any one of Aspects 1 to 19, wherein an accumulated parameter associated with the value associated with the error is limited and accumulated based on at least one of intervention time, road curvature, steering wheel angle, steering request, steering pulsation, local deviation, yaw rate, data of the vehicle's surroundings, map data, the vehicle's heading, characteristic steering torque, driver steering torque or lateral acceleration.
[0156] Aspect 21. An apparatus according to any one of Aspects 1 to 20, wherein the at least one processor is configured to: determine whether to reset and accumulate an accumulation parameter associated with the value associated with the error based on a lateral acceleration of the vehicle.
[0157] Aspect 22. The apparatus according to aspect 21, wherein the at least one processor is configured to: reset the accumulation parameter based on the lateral acceleration of the vehicle being less than a threshold lateral acceleration.
[0158] Aspect 23. An apparatus according to any one of Aspects 1 to 22, wherein the at least one processor is configured to: determine an updated accumulation parameter for an integral control engine, the integral control engine being configured to accumulate the value associated with the error.
[0159] Aspect 24. An apparatus according to Aspect 23, wherein the at least one processor is configured to determine the updated cumulative parameter based on detecting at least one of the following: initialization of a lateral controller after start or resumption of a function associated with the vehicle, the manual interaction with the vehicle, a change in a function associated with the vehicle, an update of a trajectory corresponding to at least one function associated with the vehicle, a change in at least one setting of the at least one function associated with the vehicle, a change in a sign associated with the error relative to the set point value of the parameter, or a change in one or more characteristics of the parameter.
[0160] Aspect 25. An apparatus according to any one of Aspects 23 or 24, wherein the at least one processor is configured to determine the updated cumulative parameter based on at least one of the following: a lateral offset relative to the trajectory of the vehicle, an absolute lateral speed of the vehicle, a lateral speed relative to the trajectory of the vehicle, an absolute lateral acceleration of the vehicle, a lateral acceleration relative to the trajectory of the vehicle, a curvature of a lane in which the vehicle is located, a curvature of the trajectory of the vehicle, a curvature of a path traveled by the vehicle, a heading relative to the trajectory of the vehicle, a heading relative to the lane in which the vehicle is located, a yaw rate of the vehicle, a longitudinal speed of the vehicle, a steering torque applied by a driver of the vehicle, a steering torque applied by a control system, a steering request, a steering wheel angle, map information associated with a road on which the vehicle is located, settings of a controller of the vehicle, information associated with a lane change of the vehicle, information associated with the vehicle overtaking an object on the road, information associated with a change in a function associated with the vehicle, an update of the trajectory of the vehicle, or a new initialization of the controller of the vehicle.
[0161] Aspect 26. An apparatus according to any one of aspects 23 to 25, wherein to determine the updated accumulation parameter, the at least one processor is configured to reduce the accumulation parameter for the integral control engine based on a reduction factor.
[0162] Aspect 27. An apparatus according to Aspect 26, wherein the at least one processor is configured to reduce the accumulated parameter based on the reduction factor based on detecting at least one of the following: the manual interaction with the vehicle, a change in a function associated with the vehicle, an update of a trajectory corresponding to at least one function associated with the vehicle, a change in at least one setting of the at least one function associated with the vehicle, a change in a sign associated with the error relative to the set point value of the parameter, or a change in one or more characteristics of the parameter.
[0163] Aspect 28. An apparatus according to any one of aspects 26 or 27, wherein the reduction factor is based on at least one of the expiration of time since the start of an event triggering the reduction of the accumulation parameter or the expiration of time since the end of the event.
[0164] Aspect 29. A method of controlling one or more operations of a vehicle, the method comprising the operations according to any one of aspects 1 to 28.
[0165] Aspect 30. A non-transitory computer-readable medium having instructions stored thereon, which when executed by one or more processors cause the one or more processors to perform the operations according to any one of aspects 1 to 28.
[0166] Aspect 31. An apparatus for controlling one or more operations of a vehicle, the apparatus comprising one or more components for performing the operations according to any one of aspects 1 to 28.
[0167] Aspect 32. A device for controlling one or more operations of a vehicle, the device comprising: a controller configured to control at least one function of the vehicle, wherein the controller includes a feedforward path compensation engine; at least one memory; and at least one processor coupled to the at least one memory, the at least one processor configured to: receive input data associated with manual interaction with the vehicle; determine a supplemental look-ahead offset based on the manual interaction when the manual interaction is active; and apply the supplemental look-ahead offset to the look-ahead offset at the output of the controller when the manual interaction is active.
[0168] Aspect 33. The apparatus of aspect 32, wherein the at least one processor is configured to: determine that the manual interaction is no longer active; and reset the look-ahead offset to zero based on the manual interaction being no longer active.
[0169] Aspect 34. The apparatus according to aspect 33, wherein the at least one processor is configured to gradually reset the look-ahead offset to zero over a period of time.
[0170] Aspect 35. An apparatus according to any one of aspects 32 to 34, wherein the at least one processor is configured to reset the supplemental look-ahead offset to zero within the time period until an original look-ahead offset value is achieved.
[0171] Aspect 36. An apparatus according to any one of Aspects 32 to 35, wherein the at least one processor is configured to determine the supplemental look-ahead offset using at least one of a filter and a vehicle model having speed information of the vehicle.
[0172] Aspect 37. An apparatus according to any one of Aspects 32 to 36, wherein the at least one processor is configured to determine the manual interaction with the vehicle based on input associated with an interaction of a driver with a steering wheel of the vehicle.
[0173] Aspect 38. An apparatus according to aspect 37, wherein the controller is configured to control the at least one function of the vehicle based on applying the supplemental look-ahead offset to the look-ahead offset.
[0174] Aspect 39. An apparatus according to any one of Aspects 32 to 38, wherein the controller is further configured to control the at least one function of the vehicle based on a steering request for controlling the direction of the vehicle along a predetermined path.
[0175] Aspect 40. An apparatus according to any one of aspects 32 or 39, wherein the reduction factor is based on at least one of the expiration of time since the start of an event triggering the reduction of the accumulation parameter or the expiration of time since the end of the event.
[0176] Aspect 41. A method of controlling one or more operations of a vehicle, the method comprising an operation according to any one of aspects 32 to 40.
[0177] Aspect 42. A non-transitory computer-readable medium having instructions stored thereon, which when executed by one or more processors cause the one or more processors to perform operations according to any one of aspects 32 to 40.
[0178] Aspect 43. An apparatus for controlling one or more operations of a vehicle, the apparatus comprising one or more components for performing the operations according to any one of aspects 32 to 40.
Claims
1. A device for controlling one or more operations of a vehicle, the device comprising: at least one memory; and at least one processor, the at least one processor coupled to the at least one memory, the at least one processor configured to: determining a manual interaction with the vehicle; during said manual interaction with said vehicle, determining an error between a set point value of a parameter and a current value of said parameter; as well as A determination is made based on the determined error whether to accumulate a value associated with the error for use in controlling at least one function of the vehicle. 2 . The apparatus of claim 1 , wherein the at least one processor is configured to determine the manual interaction with the vehicle based on input associated with an interaction of a driver with a steering wheel of the vehicle. 3 . The apparatus of claim 1 , wherein the parameter comprises a location associated with a predetermined path of the vehicle.
4. The apparatus of claim 1 , wherein the at least one processor is configured to: At least one configuration request for controlling the at least one function of the vehicle is output based on the accumulation of the errors. 5 . The apparatus of claim 4 , wherein the at least one configuration request comprises a steering request for controlling a direction of the vehicle along a predetermined path. 6 . The apparatus of claim 1 , further comprising an integral control engine configured to accumulate the value associated with the error.
7. The apparatus of claim 1 , wherein the at least one processor is configured to: determining that a first difference between a value associated with the error and the set point value of the parameter is less than a second difference between a previous value associated with the error and the set point value; and The value associated with the error is determined to be accumulated based on the first difference being less than the second difference.
8. The apparatus of claim 7, wherein the at least one processor is configured to: determining that a third difference between a subsequent value associated with the error and the set point value of the parameter is greater than a fourth difference between at least one previous value associated with the error and the set point value; and A determination to stop accumulating the value associated with the error is made based on the third difference being greater than the fourth difference.
9. The apparatus of claim 1 , wherein the at least one processor is configured to: determining that a first difference between a value associated with the error and the set point value of the parameter is greater than a second difference between a previous value associated with the error and the set point value; and A determination to stop accumulating the value associated with the error is made based on the first difference being greater than the second difference.
10. The apparatus of claim 9, wherein the at least one processor is configured to: determining that a third difference between a subsequent value associated with the error and the set point value of the parameter is less than a fourth difference between at least one previous value associated with the error and the set point value; and The value associated with the error is determined to be accumulated based on the third difference being less than the fourth difference.
11. The apparatus of claim 1 , wherein the at least one processor is configured to: determining a change in a sign associated with the error relative to a sign associated with an integral control engine configured to accumulate the value associated with the error; and The value associated with the error is determined to be accumulated based on the change in the sign associated with the error.
12. The apparatus of claim 11, wherein the change in the sign associated with the error indicates a change in direction of the vehicle relative to the setpoint value.
13. The apparatus of claim 11, wherein the at least one processor is configured to: determining that a sign of a value associated with the error matches the sign associated with the integral control engine; and Determining to cease accumulating the value associated with the error is based on the value associated with the error matching the sign associated with the integral control engine.
14. The apparatus of claim 11, wherein the at least one processor is configured to: An accumulation parameter associated with the value associated with the error is reduced and accumulated based on the change in the sign associated with the error.
15. The apparatus of claim 14, wherein to reduce the accumulation parameter based on the change in the sign associated with the error, the at least one processor is configured to: starting a timer based on the change in the sign associated with the error; and The accumulation parameter is decremented according to the timer.
16. An apparatus for controlling one or more operations of a vehicle, the apparatus comprising: a controller configured to control at least one function of the vehicle; at least one memory; and at least one processor, the at least one processor coupled to the at least one memory, the at least one processor configured to: receiving input data associated with a manual interaction with the vehicle; while the manual interaction is active, determining a supplemental look-ahead offset based on the manual interaction; and Upon the manual interaction, the supplemental look-ahead offset is applied to a look-ahead offset at an output of the controller.
17. The apparatus of claim 16, wherein the at least one processor is configured to: determining that the manual interaction is no longer active; and The look-ahead offset is reset to zero based on the manual interaction being no longer active.
18. The apparatus of claim 16, wherein the at least one processor is configured to gradually reset the look-ahead offset to zero over a period of time.
19. The apparatus of claim 18, wherein the at least one processor is configured to reset the supplemental look-ahead offset to zero within the time period until an original look-ahead offset value is achieved.
20. The apparatus of claim 16, wherein the at least one processor is configured to determine the supplemental look-ahead offset using at least one of a filter and a vehicle model having speed information of the vehicle.
21. The apparatus of claim 16, wherein the at least one processor is configured to determine the manual interaction with the vehicle based on input associated with an interaction of a driver with a steering wheel of the vehicle.
22. The apparatus of claim 16, wherein the controller is configured to control the at least one function of the vehicle based on applying the supplemental look-ahead offset to the look-ahead offset.
23. The apparatus of claim 22, wherein the controller is further configured to control the at least one function of the vehicle based on a steering request for controlling a direction of the vehicle along a predetermined path.
24. A method for controlling one or more operations of a vehicle, the method comprising: determining a manual interaction with the vehicle; during said manual interaction with said vehicle, determining an error between a set point value of a parameter and a current value of said parameter; as well as A determination is made based on the determined error whether to accumulate a value associated with the error for use in controlling at least one function of the vehicle.
25. The method of claim 24, further comprising determining the manual interaction with the vehicle based on input associated with a driver's interaction with a steering wheel of the vehicle.
26. The method of claim 24, wherein the parameter comprises a location associated with a predetermined path of the vehicle.
27. The method of claim 24, further comprising outputting at least one configuration request for controlling the at least one function of the vehicle based on the accumulation of the errors.
28. The method of claim 27, wherein the at least one configuration request comprises a steering request for controlling the direction of the vehicle along a predetermined path.
29. A method for controlling one or more operations of a vehicle, the method comprising: receiving input data associated with a manual interaction with the vehicle; while the manual interaction is active, determining a supplemental look-ahead offset based on the manual interaction; as well as Upon the manual interaction, the supplemental look-ahead offset is applied to a look-ahead offset at an output of a controller configured to control at least one function of the vehicle.
30. The method according to claim 29, further comprising: determining that the manual interaction is no longer active; as well as The look-ahead offset is reset to zero based on the manual interaction being no longer active.