Upon determining calibration parameters for a single-loop controller that minimize a difference between an input to the single-loop controller and a response from the single-loop controller, calibration parameters for a cascade controller are determined based on the determined calibration parameters for the single-loop controller. The cascade controller includes a secondary controller and a primary controller. The calibration parameters for the cascade controller are provided to a second computer in a vehicle.
Legal claims defining the scope of protection, as filed with the USPTO.
. A system, comprising a computer including a processor and a memory, the memory storing instructions executable by the processor to:
. The system of, wherein the instructions further include instructions to select a type of one of the single-loop controller or the cascade controller based on a type of the other of the single-loop controller or the cascade controller, wherein the type of the cascade controller is defined by a type of the primary controller and a type of the secondary controller.
. The system of, wherein the type of the single-loop controller is a proportional-integral-derivative-double integral-double derivative controller, the type of primary controller is one of a proportional-integral-derivative (PID) controller or a proportional-integral (PI) controller, and the type of the secondary controller is a PID controller.
. The system of, wherein the type of the single-loop controller is a proportional-integral-derivative-double derivative controller, the type of the primary controller is one of a PID controller or a PI controller, and the type of the secondary controller is the proportional-derivative (PD) controller.
. The system of, wherein the type of the single-loop controller is a proportional-integral-derivative-double derivative controller, the type of the primary controller is one of a PD controller or a proportional (P) controller, and the type of the secondary controller is the PID controller.
. The system of, wherein the type of the single-loop controller is a proportional-integral-derivative-double integral controller, the type of the primary controller is one of a PID controller or a PI controller, and the type of the secondary controller is a PI controller.
. The system of, wherein the type of the single-loop controller is a PID controller, the type of the primary controller is one of a PID controller or a PI controller, and the type of the secondary controller is a P controller.
. The system of, wherein the type of the single-loop controller is a PID controller, the type of the primary controller is one of a PD controller or a P controller, and the type of the secondary controller is a PI controller.
. The system of, wherein the type of the single-loop controller is a proportional-derivative-double derivative controller, the type of the primary controller is one of a PD controller or a P controller, and the type of the secondary controller is a PD controller.
. The system of, further comprising the second computer including a second processor and a second memory storing instructions such that the second computer is programmed to actuate a vehicle component based on the calibration parameters for the cascade controller.
. The system of, wherein the instructions further include instructions to determine the calibration parameters for the single-loop controller based on one of a) a user input specifying the calibration parameters, or b) simulation data.
. A method, comprising:
. The method of, further comprising selecting a type of one of the single-loop controller or the cascade controller based on a type of the other of the single-loop controller or the cascade controller, wherein the type of the cascade controller is defined by a type of the primary controller and a type of the secondary controller.
. The method of, wherein the type of the single-loop controller is a proportional-integral-derivative-double integral-double derivative controller, the type of primary controller is one of a proportional-integral-derivative (PID) controller or a proportional-integral (PI) controller, and the type of the secondary controller is a PID controller.
. The method of, wherein the type of the single-loop controller is a proportional-integral-derivative-double derivative controller, the type of the primary controller is one of a PID controller or a PI controller, and the type of the secondary controller is the proportional-derivative (PD) controller.
. The method of, wherein the type of the single-loop controller is a proportional-integral-derivative-double derivative controller, the type of the primary controller is one of a PD controller or a proportional (P) controller, and the type of the secondary controller is the PID controller.
. The method of, wherein the type of the single-loop controller is a proportional-integral-derivative-double integral controller, the type of the primary controller is one of a PID controller or a PI controller, and the type of the secondary controller is a PI controller.
. The method of, wherein the type of the single-loop controller is a PID controller, the type of the primary controller is one of a PID controller or a PI controller, and the type of the secondary controller is a P controller.
. The method of, wherein the type of the single-loop controller is a PID controller, the type of the primary controller is one of a PD controller or a P controller, and the type of the secondary controller is a PI controller.
. The system of, wherein the type of the single-loop controller is a proportional-derivative-double derivative controller, the type of the primary controller is one of a PD controller or a P controller, and the type of the secondary controller is a PD controller.
Complete technical specification and implementation details from the patent document.
One or more computers can be programmed to control operation of a machine, e.g., a vehicle. For example, the computer can provide a control input to a controller that is programmed to actuate a machine component to achieve the control input. The controller may control actuation of the machine component based on calibration parameter(s). Actuation of the machine component can be supported by maintaining and/or adjusting calibration parameters, which allows operation of the machine to be carried out as intended.
A cascade controller in a machine, e.g., a vehicle, robot, etc., may be programmed to actuate a machine component to achieve an expected control input for systems including vehicle guidance, robot operation, etc. Vehicle guidance can include operation of vehicles in autonomous or semi-autonomous modes. Robot guidance can include guiding a robot end effector, for example a gripper, to pick up a part and orient the part for assembly.
Vehicle guidance will be described herein as a non-limiting example of using a cascade controller to actuate a machine component, i.e., a vehicle component in the described examples, to achieve an expected control input. A cascade controller may be advantageous, e.g., as opposed to a single-loop controller, in the above systems as disturbances in intermediate or secondary processes, e.g., hitting a pothole, may directly affect the primary process, e.g., actuating a steering component. The cascade controller can limit the effect of the disturbances on the primary process as compared to a single-loop controller. For example, a cascade controller in a vehicle can be programmed to receive an expected control input and to actuate a vehicle component to achieve the expected control input. The cascade controller includes calibration parameters, which can be adjusted to achieve the expected control input. However, adjusting calibration parameters for a cascade controller can be complex and expensive because some of the calibration parameters for the cascade controller are dependent upon other calibration parameters for the cascade controller. That is, adjusting one calibration parameter can have an unexpected effect on the other controller thereby outputting a response that differs, e.g., in an unexpected way, from the expected control input.
Adjusting calibration parameters for a single-loop controller can be less complex and less expensive than adjusting calibration parameters for the cascade controller because the calibration parameters for the single-loop controller are independent of each other. While a particular set of calibration parameters for a cascade controller corresponds to a particular set of calibration parameters for a single-loop controller, a particular set of calibration parameters for the single-loop controller corresponds to a plurality of sets of calibration parameters for the cascade controller. Techniques described herein reduce deviation between an expected control input and a response from a cascade controller by using a relationship between types of cascade controllers and single-loop controllers to determine calibration parameters for the cascade controller based on calibration parameters for a corresponding type of single-loop controller.
A system includes a computer including a processor and a memory, the memory storing instructions executable by the processor to, upon determining calibration parameters for a single-loop controller that minimize a difference between an input to the single-loop controller and a response from the single-loop controller, determine calibration parameters for a cascade controller based on the determined calibration parameters for the single-loop controller. The cascade controller includes a primary controller and a secondary controller. The instructions further include instructions to provide the calibration parameters for the cascade controller to a second computer in a vehicle.
The instructions can further include instructions to select a type of one of the single-loop controller or the cascade controller based on a type of the other of the single-loop controller or the cascade controller. The type of the cascade controller may be defined by a type of the primary controller and a type of the secondary controller.
The type of the single-loop controller may be a proportional-integral-derivative-double integral-double derivative controller. The type of primary controller may be one of a proportional-integral-derivative (PID) controller or a proportional-integral (PI) controller, and the type of the secondary controller may be a PID controller
The type of the single-loop controller may be a proportional-integral-derivative-double derivative controller. The type of the primary controller may be one of a PID controller or a PI controller, and the type of the secondary controller may be the proportional-derivative (PD) controller.
The type of the single-loop controller may be a proportional-integral-derivative-double derivative controller. The type of the primary controller may be one of a PD controller or a proportional (P) controller, and the type of the secondary controller may be the PID controller.
The type of the single-loop controller may be a proportional-integral-derivative-double integral controller. The type of the primary controller may be one of a PID controller or a PI controller, and the type of the secondary controller may be a PI controller
The type of the single-loop controller may be a PID controller. The type of the primary controller may be one of a PID controller or a PI controller, and the type of the secondary controller may be a P controller.
The type of the single-loop controller may be a PID controller. The type of the primary controller may be one of a PD controller or a P controller, and the type of the secondary controller may be a PI controller.
The type of the single-loop controller may be a proportional-derivative-double derivative controller. The type of the primary controller may be one of a PD controller or a P controller, and the type of the secondary controller may be a PD controller.
The system can include the second computer including a second processor and a second memory storing instructions such that the second computer is programmed to actuate a vehicle component based on the calibration parameters for the cascade controller.
The instructions can further include instructions to determine the calibration parameters for the single-loop controller based on one of a) a user input specifying the calibration parameters, or b) simulation data.
A method includes, upon determining calibration parameters for a single-loop controller that minimize a difference between an input to the single-loop controller and a response from the single-loop controller, determining calibration parameters for a cascade controller based on the determined calibration parameters for the single-loop controller. The cascade controller includes a secondary controller and a primary controller. The method further includes providing the calibration parameters for the cascade controller to a second computer in a vehicle.
The method can further include selecting a type of one of the single-loop controller or the cascade controller based on a type of the other of the single-loop controller or the cascade controller. The type of the cascade controller may be defined by a type of the primary controller and a type of the secondary controller.
The type of the single-loop controller may be a proportional-integral-derivative-double integral-double derivative controller. The type of primary controller may be one of a proportional-integral-derivative (PID) controller or a proportional-integral (PI) controller, and the type of the secondary controller may be a PID controller
The type of the single-loop controller may be a proportional-integral-derivative-double derivative controller. The type of the primary controller may be one of a PID controller or a PI controller, and the type of the secondary controller may be the proportional-derivative (PD) controller.
The type of the single-loop controller may be a proportional-integral-derivative-double derivative controller. The type of the primary controller may be one of a PD controller or a proportional (P) controller, and the type of the secondary controller may be the PID controller.
The type of the single-loop controller may be a proportional-integral-derivative-double integral controller. The type of the primary controller may be one of a PID controller or a PI controller, and the type of the secondary controller may be a PI controller
The type of the single-loop controller may be a PID controller. The type of the primary controller may be one of a PID controller or a PI controller, and the type of the secondary controller may be a P controller.
The type of the single-loop controller may be a PID controller. The type of the primary controller may be one of a PD controller or a P controller, and the type of the secondary controller may be a PI controller.
The type of the single-loop controller may be a proportional-derivative-double derivative controller. The type of the primary controller may be one of a PD controller or a P controller, and the type of the secondary controller may be a PD controller.
Further disclosed herein is a computing device programmed to execute any of the above method steps. Yet further disclosed herein is a computer program product, including a computer readable medium storing instructions executable by a computer processor, to execute an of the above method steps.
With reference to, an example control systemincludes a vehicleand a remote computer. A vehicle computerin the vehiclereceives data from sensors. The vehicle computeris programmed to operate the vehicleusing calibration parameters, received from the remote computer, for a cascade controller. To determine the calibration parameters for the cascade controller, the remote computeris programmed to, upon determining calibration parameters for a single-loop controllerthat minimize a difference between an expected control inputto the single-loop controllerand a responsefrom the single-loop controller, determine calibration parameters for the cascade controllerbased on the determined calibration parameters for the single-loop controller. The cascade controllerincludes a primary controllerand a secondary controller(as described further below). The remote computeris further programmed to provide the calibration parameters for the cascade controllerto the vehicle computer, and the cascade controllercan then operate a vehicle component (or components)more efficiently.
Turning now to, the vehicleincludes the vehicle computer, sensors, actuatorsto actuate various vehicle components, and a vehicle communications module. The communications moduleallows the vehicle computerto communicate with a remote computer, and/or other vehicles, e.g., via a messaging or broadcast protocol such as Dedicated Short Range Communications (DSRC), cellular, and/or other protocol that can support vehicle-to-vehicle, vehicle-to infrastructure, vehicle-to-cloud communications, or the like, and/or via a packet network.
The vehicle computerincludes a processor and a memory such as are known. The memory includes one or more forms of computer-readable media, and stores instructions executable by the vehicle computerfor performing various operations, including as disclosed herein. The vehicle computercan further include two or more computing devices operating in concert to carry out vehicle operations including as described herein. Further, the vehicle computercan be a generic computer with a processor and memory as described above, and/or may include an electronic control unit (ECU) or electronic controller or the like for a specific function or set of functions, and/or may include a dedicated electronic circuit including an ASIC that is manufactured for a particular operation, e.g., an ASIC for processing sensor data and/or communicating the sensordata. In another example, the vehicle computermay include an FPGA (Field-Programmable Gate Array) which is an integrated circuit manufactured to be configurable by a user. Typically, a hardware description language such as VHDL (Very High Speed Integrated Circuit Hardware Description Language) is used in electronic design automation to describe digital and mixed-signal systems such as FPGA and ASIC. For example, an ASIC is manufactured based on VHDL programming provided pre-manufacturing, whereas logical components inside an FPGA may be configured based on VHDL programming, e.g., stored in a memory electrically connected to the FPGA circuit. In some examples, a combination of processor(s), ASIC(s), and/or FPGA circuits may be included in the vehicle computer.
The vehicle computermay operate and/or monitor the vehiclein an autonomous mode, a semi-autonomous mode, or a non-autonomous (or manual) mode, i.e., can control and/or monitor operation of the vehicle, including controlling and/or monitoring components. For purposes of this disclosure, an autonomous mode is defined as one in which each of vehiclepropulsion, braking, and steering are controlled by the vehicle computer; in a semi-autonomous mode the vehicle computercontrols one or two of vehiclepropulsion, braking, and steering; in a non-autonomous mode a human operator controls each of vehiclepropulsion, braking, and steering.
The vehicle computermay include programming to operate one or more of vehiclebrakes, propulsion (e.g., control of acceleration in the vehicleby controlling one or more of an internal combustion engine, electric motor, hybrid engine, etc.), steering, transmission, climate control, interior and/or exterior lights, horn, doors, etc., as well as to determine whether and when the vehicle computer, as opposed to a human operator, is to control such operations.
The vehicle computermay include or be communicatively coupled to, e.g., via a vehicle communications network such as a communications bus as described further below, more than one processor, e.g., included in electronic controller units (ECUs) or the like included in the vehiclefor monitoring and/or controlling various vehicle components, e.g., a transmission controller, a brake controller, a steering controller, etc. A controllerin the context of this disclosure is discussed below regarding. The vehicle computeris generally arranged for communications on a vehicle communication network that can include a bus in the vehiclesuch as a controller area network (CAN) or the like, and/or other wired and/or wireless mechanisms.
Via the vehiclenetwork, the vehicle computermay transmit messages to various devices in the vehicleand/or receive messages (e.g., CAN messages) from the various devices, e.g., sensors, actuators, ECUs, etc. Alternatively, or additionally, in cases where the vehicle computeractually comprises a plurality of devices, the vehicle communication network may be used for communications between devices represented as the vehicle computerin this disclosure. Further, as mentioned below, various controllers and/or sensorsmay provide data to the vehicle computervia the vehicle communication network.
Vehiclesensorsmay include a variety of devices such as are known, e.g., Light Detection And Ranging (LIDAR) sensor(s), radar sensors, camera sensors, etc. to provide data to the vehicle computer.
The vehicleactuatorsare implemented via circuits, chips, or other electronic and or mechanical components that can actuate various vehiclesubsystems in accordance with appropriate control signals as is known. The actuatorsmay be used to control components, including braking, acceleration, and steering of a vehicle.
In the context of the present disclosure, a vehicle componentis one or more hardware components adapted to perform a mechanical or electro-mechanical function or operation-such as moving the vehicle, slowing or stopping the vehicle, steering the vehicle, etc. Non-limiting examples of componentsinclude a propulsion component (that includes, e.g., an internal combustion engine and/or an electric motor, etc.), a transmission component, a steering component (e.g., that may include one or more of a steering wheel, a steering rack, etc.), a suspension component (e.g., that may include one or more of a damper, e.g., a shock or a strut, a bushing, a spring, a control arm, a ball joint, a linkage, etc.), a brake component, a park assist component, an adaptive cruise control component, an adaptive steering component, one or more passive restraint systems (e.g., airbags), a movable seat, etc.
In addition, the vehicle computermay be configured for communicating via a vehicle-to-vehicle communications moduleor interface with devices outside of the vehicle, e.g., through a vehicle-to-vehicle (V2V) or vehicle-to-infrastructure (V2X) wireless communications (cellular and/or short-range radio communications, etc.) to another vehicle, and/or to a remote computer(typically via direct radio frequency communications). The communications modulecould include one or more mechanisms, such as a transceiver, by which the computers of vehicles may communicate, including any desired combination of wireless (e.g., cellular, wireless, satellite, microwave, and radio frequency) communication mechanisms and any desired network topology (or topologies when a plurality of communication mechanisms are utilized). Exemplary communications provided via the communications module include cellular, Bluetooth, IEEE 802.11, dedicated short range communications (DSRC), cellular V2X (CV2X), and/or wide area networks (WAN), including the Internet, providing data communication services. For convenience, the label “V2X” is used herein for communications that may be vehicle-to-vehicle (V2V) and/or vehicle-to-infrastructure (V2I), and that may be provided by the communications moduleaccording to any suitable short-range communications mechanism, e.g., DSRC, cellular, or the like.
The networkrepresents one or more mechanisms by which a vehicle computermay communicate with remote computing devices, e.g., the remote computer, another vehicle computer, etc. Accordingly, the networkcan be one or more of various wired or wireless communication mechanisms, including any desired combination of wired (e.g., cable and fiber) and/or wireless (e.g., cellular, wireless, satellite, microwave, and radio frequency) communication mechanisms and any desired network topology (or topologies when multiple communication mechanisms are utilized). Exemplary communication networksinclude wireless communication networks (e.g., using Bluetooth®, Bluetooth® Low Energy (BLE), IEEE 802.11, vehicle-to-vehicle (V2V) such as Dedicated Short Range Communications (DSRC), etc.), local area networks (LAN) and/or wide area networks (WAN), including the Internet, providing data communication services.
The remote computercan be a conventional computing device, i.e., including one or more processors and one or more memories, programmed to provide operations such as disclosed herein. Further, the remote computercan be accessed via the network, e.g., the Internet, a cellular network, and/or or some other wide area network.
The remote computercan include a human-machine interface (HMI). The HMIincludes user input devices such as knobs, buttons, switches, pedals, levers, touchscreens, and/or microphones, etc. The input devices may include sensors to detect user inputs and provide user input data to the remote computer. That is, the remote computermay be programmed to receive user input from the HMI. The user may provide each user input via the HMI, e.g., by selecting a virtual button on a touchscreen display, by providing voice commands, etc. For example, a touchscreen display included in an HMImay include sensors to detect that a user selected a virtual button on the touchscreen display to, e.g., select or deselect an operation, which input can be received in the remote computerand used to determine the selection of the user input.
The HMItypically further includes output devices such as displays (including touchscreen displays), speakers, and/or lights, etc., that output signals or data to the user. The HMIcan send and/or receive messages to/from the remote computer.
The vehicle computercan receive sensordata of the environment around the vehicle. The vehicle computercan be programmed to operate the vehiclebased on the sensordata. For example, the vehicle computercan generate a path along which to operate the vehicle, e.g., to avoid one or more objects around the vehicle.
As used herein, a “path” is a set of points, e.g., that can be specified as coordinates with respect to a vehicle coordinate system and/or geo-coordinates, that the vehicle computeris programmed to determine with a conventional navigation and/or path planning algorithm. A path can be specified according to one or more path polynomials. A path polynomial is a polynomial function of degree three or less that describes the motion of a vehicle on a ground surface. Motion of a vehicle on a roadway is described by a multi-dimensional state vector that includes vehicle location, orientation, speed, and acceleration. Specifically, the vehicle motion vector can include positions in x, y, z, yaw, pitch, roll, yaw rate, pitch rate, roll rate, heading velocity and heading acceleration that can be determined by fitting a polynomial function to successive 2D locations included in the vehicle motion vector with respect to the ground surface, for example.
Further for example, the path polynomial p(x) is a model that predicts the path as a line traced by a polynomial equation. The path polynomial p(x) predicts the path for a predetermined upcoming distance x, by determining a lateral coordinate p, e.g., measured in meters:()= (1)where aan offset, i.e., a lateral distance between the path and a center line of the host vehicleat the upcoming distance x, ais a heading angle of the path, ais the curvature of the path, and ais the curvature rate of the path.
Upon generating the path, the vehicle computercan actuate one or more vehicle componentsto operate the vehiclealong the path. For example, the vehiclecan include one or more cascade controllers(as discussed below regarding). The vehicle computercan be programmed to provide expected control inputs(as discussed below regarding) to respective cascade controller. A cascade controllercan be programmed to actuate a corresponding vehicle component, e.g., a steering component, a propulsion component, a braking component, etc., to achieve the expected control input. The vehicle computercan determine a response(as discussed below regarding) resulting from the expected control input. The vehicle computercan then provide the responseto the remote computer. For example, the vehicle computercan transmit the responseto the remote computer, e.g., via the network.
With reference to, a cascade controllerincludes two controllersarranged in a series such that the output of one controller, i.e., a primary controller, is provided as an input to the other controller, i.e., a secondary controller. As used herein, a “controller” is a computing device including a processor and a memory that can store instructions executable by the processor to control operation of a vehicle componentbased on an expected control input. The two controllersof the cascade controller, in the context of this disclosure, are programmed according to a proportional-integral-derivative (PID) control strategy. A control strategy in the present context includes a mathematical technique to determine an actuation of a vehicle componentto follow an expected control input. The PID control strategy includes proportional (P), integral (I), and derivative (D) calibration parameters. The calibration parameters are numerical values, e.g., integers, that provide corrections for a control function to minimize a difference between an expected control inputand a response.
In a cascade controller, the primary controllerreceives the expected control input, and the secondary controlleroutputs the response. A cascade controllerincludes an inner feedback loopand an outer feedback loop. The outer feedback loopprovides feedback to the primary controller, and the inner feedback loopprovides feedback to the secondary controller. The inner and outer feedback loops,provide feedback to the respective controllersto adjust the respective outputs, which allows the cascade controllerto minimize a difference between the expected control inputand the response.
A type of a controllerindicates the calibration parameters for the controllerthat have a non-zero value. The primary and secondary controllers,may be a same or different type of controller. That is, the primary controllerand the secondary controllermay include same or different non-zero calibration parameters. It is to be understood that while the controllersof a cascade controllermay be of a same type, i.e., have the same non-zero value calibration parameters, the non-zero values of the respective calibrations parameters may be different between the two controllers. Non-limiting examples of types of controllers for a PID control strategy include a P controller, a PI controller, a PD controller, a PID controller, etc.
A control input(or reference input, stimuli, reference value, etc.), in the present context, is a set of data describing physical parameters of the vehicleover time. A physical parameter is a measurement of a physical phenomenon related to vehicleoperation, e.g., a speed, heading (i.e., direction of travel), location, temperature, pressure, etc. A control inputthus includes data describing a change of one or more physical parameters versus time. A control inputmay include any combination of gradual changes, e.g., a curve, and/or a discontinuous or abrupt change, e.g., a step pulse, of a physical parameter. A control inputmay include changes of one or more physical parameters over time, e.g., describing changes of a vehiclespeed over time, describing changes of longitudinal and lateral acceleration of a vehicleover time, etc.
A control inputmay be predetermined and stored in a memory of a vehicle computer, e.g., in form of a table or array. For example, values in a table of possible control inputs, i.e., sets of physical parameters, could be empirically determined for various conditions, e.g., changing lanes on a straight road at a specified speed, braking to a stop on dry pavement starting from a specified speed, just to name two of many possible examples. As another example, a control inputmay be received as an input (including a table, array, etc.) from, e.g., the remote computer, a user input via an HMI in the vehicle, etc.
An expected control inputmay include a plurality of operation points. A number of operation points included in a control inputmay be based on a duration of the control input, e.g., 3 seconds, and a sampling rate, e.g., 100 milliseconds (ms). An “operation point” specifies a value of one or more physical parameter(s) at a specific time. The specific time of each operation point refers to an associated sampling point, i.e., a time at which the value is defined or captured. In one example, each operation point of an expected control inputmay specify changes of respective physical parameters at a given time.shows a graphincluding an example expected control input. Values of expected control inputat times t, trepresent two example operation points of the expected control input. For example, the Y-axis of the graph may illustrate an expected location, speed, acceleration, etc. of the vehicle.
Unknown
May 19, 2026
Browse 5M+ US patents with plain-English claim translations and AI-generated analysis.