Assistance by towed vehicle

A computer includes a processor and a memory storing instructions executable by the processor to receive data indicating a lane change by a first vehicle that is towing a second vehicle, the data including data indicating a direction that first wheels of the first vehicle are turning while the first vehicle is performing the lane change; and during the lane change, instruct a steering system of the second vehicle to turn second wheels of the second vehicle in a same direction as the first wheels.

BACKGROUND

Recreational vehicles, called RVs, are motor vehicles that include living quarters. RVs are often used for vacationing. A common practice is for RV owners to tow a smaller vehicle such as a pickup truck or sport utility vehicle for use at a vacationing destination.

DETAILED DESCRIPTION

The systems and methods herein provide ways for a towed vehicle to assist a towing vehicle. The towing vehicle, which will be referred to as the first vehicle, can be a large motor vehicle such as an RV (other examples of towing vehicles are possible). As such, the first vehicle may be more difficult to maneuver than smaller vehicles like sedans. The towed vehicle, which will be referred to as the second vehicle, can be a consumer motor vehicle such as sedan, pickup, sport utility vehicle, etc. (again, other examples are possible). As such, the second vehicle is equipped with a propulsion, a brake system, and a steering system. The systems and methods herein describe ways to operate the second vehicle while being towed by the first vehicle in order to assist the first vehicle in maneuvering, e.g., by actuating the propulsion, the brake system, and/or the steering system. For example, when the first vehicle is making a lane change, the second vehicle can actuate its steering system to turn its wheels in the same direction that the wheels of the first vehicle are turning. The lane change is thus completed more swiftly. Advantageously, the second vehicle can provide the types of assistance described herein using hardware that is already typically installed on consumer motor vehicles.

A computer includes a processor and a memory storing instructions executable by the processor to receive data indicating a lane change by a first vehicle that is towing a second vehicle, the data including data indicating a direction that first wheels of the first vehicle are turning while the first vehicle is performing the lane change; and during the lane change, instruct a steering system of the second vehicle to turn second wheels of the second vehicle in a same direction as the first wheels.

The instructions may further include instructions to, during the lane change, refrain from instructing the steering system of the second vehicle to turn the second wheels in response to data indicating that the first vehicle is outside a geofenced area. The geofenced area may be a limited-access road.

The instructions may further include instructions to, during the lane change, refrain from instructing the steering system of the second vehicle to turn the second wheels in response to a speed of the first vehicle being below a threshold speed.

The instructions may further include instructions to, during the lane change, refrain from instructing the steering system of the second vehicle to turn the second wheels in response to failing to receive an input confirming the turning of the second wheels.

Instructing the steering system of the second vehicle to turn the second wheels may include turning the second wheels to a second steering angle based on a first steering angle of the first wheels. The second steering angle may be a gain applied to the first steering angle. The instructions may further include instructions to receive an input setting the gain.

Instructing the steering system of the second vehicle to turn the second wheels may include turning the second wheels to a second steering angle based on a relative angle between the first vehicle and the second vehicle. Instructing the steering system of the second vehicle to turn the second wheels may include applying a feedback loop minimizing a difference between a target angle and the relative angle between the first vehicle and the second vehicle.

The instructions may further include instructions to, in response to a condition, instruct a propulsion of the second vehicle to accelerate the second vehicle. The propulsion may be a second propulsion, and the condition may be at least one of a temperature of a first propulsion of the first vehicle being above a threshold temperature, a fuel level of the first vehicle being below a threshold fuel level, a charge level of the first vehicle being below a threshold charge level, the first vehicle ascending a grade, or the first vehicle passing a third vehicle.

The instructions may further include instructions to, in response to the first vehicle descending a grade, instruct a propulsion of the second vehicle to downshift.

The instructions may further include instructions to, in response to a first brake system of the first vehicle braking, instruct a second brake system of the second vehicle to brake.

The instructions may further include instructions to receive data indicating a parking maneuver by the first vehicle, the data including data indicating the direction that the first wheels are turning while the first vehicle is performing the parking maneuver; and during the parking maneuver, instruct the steering system to turn the second wheels in an opposite direction as the first wheels.

A computer includes a processor and a memory storing instructions executable by the processor to receive data indicating a parking maneuver by a first vehicle that is towing a second vehicle, the data including data indicating a direction that first wheels of the first vehicle are turning while the first vehicle is performing the parking maneuver; during the parking maneuver, lock a third wheel of the second vehicle in response to receiving an input to lock the third wheel; and during the parking maneuver, instruct a steering system of the second vehicle to turn second wheels of the second vehicle in an opposite direction as the first wheels, the second wheels being different than the third wheel.

Instructing the steering system of the second vehicle to turn the second wheels may include turning the second wheels to a second steering angle based on a first steering angle of the first wheels. The second steering angle may be a gain applied to the first steering angle. The instructions may further include instructions to receive an input setting the gain.

A method includes receiving data indicating a lane change by a first vehicle that is towing a second vehicle, the data including data indicating a direction that first wheels of the first vehicle are turning while the first vehicle is performing the lane change; and during the lane change, instruct a steering system of the second vehicle to turn second wheels of the second vehicle in a same direction as the first wheels.

With reference to the Figures, wherein like numerals indicate like parts throughout the several views, a computer110,126,128includes a processor and a memory storing instructions executable by the processor to receive data indicating a lane change by a first vehicle100that is towing a second vehicle102, the data including data indicating a direction that first wheels104of the first vehicle100are turning while the first vehicle100is performing the lane change; and during the lane change, instruct a second steering system136of the second vehicle102to turn second wheels106of the second vehicle102in a same direction as the first wheels104. The computer110,126,128can be a first computer110in the first vehicle100, a second computer128in the second vehicle102, a mobile device126of an operator of the first vehicle100, or a combination of the three.

With reference toFIG.1, the first vehicle100may be any passenger or commercial automobile. In particular, the first vehicle100can be a larger motor vehicle such as a recreational vehicle (as shown inFIG.1), a heavy-duty truck, etc.

The second vehicle102may be any passenger or commercial automobile such as a car, a truck, a sport utility vehicle, a crossover, a van, a minivan, etc.

When the second vehicle102assists the first vehicle100, the first vehicle100is towing the second vehicle102. For example, the first vehicle100and the second vehicle102are connected by a tow hitch108, also referred to as a trailer hitch. The tow hitch108can be any suitable type, e.g., a tow ball. The tow hitch108permits rotation of the second vehicle102relative to the first vehicle100around a vertical axis, e.g., passing through the tow ball, as seen by comparingFIG.1toFIG.6or7. The tow hitch108rigidly connects the first vehicle100and the second vehicle102to the point through which the vertical axis passes.

With reference toFIG.2, the first vehicle100includes the first computer110. The first computer110is a microprocessor-based computing device, e.g., a generic computing device including a processor and a memory, an electronic controller or the like, a field-programmable gate array (FPGA), an application-specific integrated circuit (ASIC), a combination of the foregoing, etc. 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. The first computer110can thus include a processor, a memory, etc. The memory of the first computer110can include media for storing instructions executable by the processor as well as for electronically storing data and/or databases, and/or the first computer110can include structures such as the foregoing by which programming is provided. The first computer110can be multiple computers coupled together within the first vehicle100.

The first computer110may transmit and receive data within the first vehicle100through a first communications network112such as a controller area network (CAN) bus, Ethernet, WiFi, Local Interconnect Network (LIN), onboard diagnostics connector (OBD-II), and/or by any other wired or wireless communications network. The first computer110may be communicatively coupled to a first propulsion114, a first brake system116, a first steering system118, first sensors120, a first transceiver122, a user interface124, and other components via the first communications network112.

The first propulsion114of the first vehicle100can generate energy and translates the energy into motion of the first vehicle100. The first propulsion114may be a conventional vehicle propulsion subsystem, for example, a conventional powertrain including an internal-combustion engine coupled to a transmission that transfers rotational motion to wheels; an electric powertrain including batteries, an electric motor, and a transmission that transfers rotational motion to the wheels; a hybrid powertrain including elements of the conventional powertrain and the electric powertrain; or any other type of propulsion. The first propulsion114can include an electronic control unit (ECU) or the like that is in communication with and receives input from the first computer110and/or a human operator. The human operator may control the first propulsion114via, e.g., an accelerator pedal and/or a gear-shift lever.

The first brake system116is typically a conventional vehicle braking subsystem and resists the motion of the first vehicle100to thereby slow and/or stop the first vehicle100. The first brake system116may include friction brakes such as disc brakes, drum brakes, band brakes, etc.; regenerative brakes; any other suitable type of brakes; or a combination. The first brake system116can include an electronic control unit (ECU) or the like that is in communication with and receives input from the first computer110and/or a human operator. The human operator may control the first brake system116via, e.g., a brake pedal.

The first steering system118is typically a conventional vehicle steering subsystem and controls the turning of the first wheels104. The first steering system118may be a rack-and-pinion system with electric power-assisted steering, a steer-by-wire system, as both are known, or any other suitable system. The first steering system118can include an electronic control unit (ECU) or the like that is in communication with and receives input from the first computer110and/or a human operator. The human operator may control the first steering system118via, e.g., a steering wheel.

The first sensors120may provide data about operation of the first vehicle100, for example, wheel speed, wheel orientation, and engine and transmission data (e.g., temperature, fuel consumption, etc.). The first sensors120may detect the location and/or orientation of the first vehicle100. For example, the first sensors120may include global positioning system (GPS) sensors; accelerometers such as piezo-electric or microelectromechanical systems (MEMS); gyroscopes such as rate, ring laser, or fiber-optic gyroscopes; inertial measurements units (IMU); and magnetometers. The first sensors120may detect the external world, e.g., objects and/or characteristics of surroundings of the first vehicle100, such as other vehicles, road lane markings, traffic lights and/or signs, pedestrians, etc. For example, the first sensors120may include radar sensors, scanning laser range finders, light detection and ranging (LIDAR) devices, and image processing sensors such as cameras.

The first transceiver122may be adapted to transmit signals wirelessly through any suitable wireless communication protocol, such as cellular, Bluetooth®, Bluetooth® Low Energy (BLE), ultra-wideband (UWB), WiFi, IEEE 802.11a/b/g/p, cellular-V2X (CV2X), Dedicated Short-Range Communications (DSRC), other RF (radio frequency) communications, etc. The first transceiver122may be adapted to communicate with a remote server, that is, a server distinct and spaced from the first vehicle100. For example, the remote server may be associated with another vehicle (e.g., V2V communications), an infrastructure component (e.g., V2I communications), an emergency responder, the mobile device126associated with the owner or operator of the first vehicle100, etc. The remote server may be located outside the first vehicle100or, as in the case of the mobile device126, in a passenger cabin of the first vehicle100. The first transceiver122may be one device or may include a separate transmitter and receiver.

The mobile device126is a portable computing device such as a mobile phone, a smartphone, a tablet, etc. The mobile device126is a computing device including a processor and a memory. The mobile device126can be owned and carried by a person who may be the operator or owner of the first vehicle100and/or the second vehicle102.

The user interface124can present information to and/or receive information from the operator of the first vehicle100. The user interface124may be located, e.g., on an instrument panel in a passenger cabin of the first vehicle100, or wherever may be readily seen by the operator. The user interface124may include dials, digital readouts, screens, speakers, and so on for providing information to the operator, e.g., human-machine interface (HMI) elements such as are known. The user interface124may include buttons, knobs, keypads, microphone, and so on for receiving information from the operator.

The second vehicle102includes the second computer128. The second computer128is a microprocessor-based computing device, e.g., a generic computing device including a processor and a memory, an electronic controller or the like, a field-programmable gate array (FPGA), an application-specific integrated circuit (ASIC), a combination of the foregoing, etc. 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. The second computer128can thus include a processor, a memory, etc. The memory of the second computer128can include media for storing instructions executable by the processor as well as for electronically storing data and/or databases, and/or the second computer128can include structures such as the foregoing by which programming is provided. The second computer128can be multiple computers coupled together within the second vehicle102.

The second computer128may transmit and receive data within the second vehicle102through a second communications network130such as a controller area network (CAN) bus, Ethernet, WiFi, Local Interconnect Network (LIN), onboard diagnostics connector (OBD-II), and/or by any other wired or wireless communications network. The second computer128may be communicatively coupled to a second propulsion132, a second brake system134, a second steering system136, second sensors138, a second transceiver140, and other components via the second communications network130.

The second propulsion132of the second vehicle102can generate energy and translate the energy into motion of the second vehicle102. The second propulsion132may be a conventional vehicle propulsion subsystem, for example, a conventional powertrain including an internal-combustion engine coupled to a transmission that transfers rotational motion to wheels; an electric powertrain including batteries, an electric motor, and a transmission that transfers rotational motion to the wheels; a hybrid powertrain including elements of the conventional powertrain and the electric powertrain; or any other type of propulsion. The second propulsion132can include an electronic control unit (ECU) or the like that is in communication with and receives input from the second computer128and/or a human operator. The human operator may control the second propulsion132via, e.g., an accelerator pedal and/or a gear-shift lever.

The second brake system134is typically a conventional vehicle braking subsystem and resists the motion of the second vehicle102to thereby slow and/or stop the second vehicle102. The second brake system134may include friction brakes such as disc brakes, drum brakes, band brakes, etc.; regenerative brakes; any other suitable type of brakes; or a combination. The second brake system134can apply braking force independently to each of the second wheels106(i.e., the turnable front wheels) and third wheels144(i.e., nonturnable rear wheels). The second brake system134can include an electronic control unit (ECU) or the like that is in communication with and receives input from the second computer128and/or a human operator. The human operator may control the second brake system134via, e.g., a brake pedal.

The second steering system136is typically a conventional vehicle steering subsystem and controls the turning of the second wheels106. The second steering system136may be a rack-and-pinion system with electric power-assisted steering, a steer-by-wire system, as both are known, or any other suitable system. The second steering system136can include an electronic control unit (ECU) or the like that is in communication with and receives input from the second computer128and/or a human operator. The human operator may control the second steering system136via, e.g., a steering wheel.

The second sensors138may provide data about operation of the second vehicle102, for example, wheel speed, wheel orientation, and engine and transmission data (e.g., temperature, fuel consumption, etc.). The second sensors138may detect the location and/or orientation of the second vehicle102. For example, the second sensors138may include global positioning system (GPS) sensors; accelerometers such as piezo-electric or microelectromechanical systems (MEMS); gyroscopes such as rate, ring laser, or fiber-optic gyroscopes; inertial measurements units (IMU); and magnetometers. The second sensors138may detect the external world, e.g., objects and/or characteristics of surroundings of the second vehicle102, such as other vehicles, road lane markings, traffic lights and/or signs, pedestrians, etc. For example, the second sensors138may include radar sensors, scanning laser range finders, light detection and ranging (LIDAR) devices, and image processing sensors such as cameras.

The second transceiver140may be adapted to transmit signals wirelessly through any suitable wireless communication protocol, such as cellular, Bluetooth®, Bluetooth® Low Energy (BLE), ultra-wideband (UWB), WiFi, IEEE 802.11a/b/g/p, cellular-V2X (CV2X), Dedicated Short-Range Communications (DSRC), other RF (radio frequency) communications, etc. The second transceiver140may be adapted to communicate with a remote server, that is, a server distinct and spaced from the second vehicle102. For example, the remote server may be associated with another vehicle (e.g., V2V communications), an infrastructure component (e.g., V2I communications), an emergency responder, the mobile device126, etc. The remote server may be located outside the second vehicle102. The second transceiver140may be one device or may include a separate transmitter and receiver.

When the first vehicle100is towing the second vehicle102, the first communications network112and the second communications network130can be communicatively coupled by a communications link142. The communications link142can be a wired or wireless link. For example, the communications link142can be a cord plugged into the CAN networks of the first communications network112and the second communications network130and running along the tow hitch108between the first vehicle100and the second vehicle102. For another example, the first communications network112and the second communications network130can be linked via communications between the first transceiver122and the second transceiver140.

With reference toFIGS.3-7, the computer110,126,128can be programmed to instruct systems of the second vehicle102to assist in the operation of the first vehicle100. For example, the computer110,126,128can be programmed to instruct the second propulsion132to accelerate the second vehicle102and thereby assist in accelerating the first vehicle100, to instruct the second propulsion132to downshift to assist in slowing the first vehicle100, to instruct the second brake system134to brake to assist in slowing the first vehicle100, to instruct the second steering system136to turn the second wheels106in the same direction as the first wheels104to assist the first vehicle100in performing a lane change, and/or to instruct the steering system to turn the second wheels106in the opposite direction as the first wheels104to assist the first vehicle100in performing a parking maneuver, as will each be described in turn. These assist features can occur independently or in tandem, e.g., if the first vehicle100is changing lanes in order to pass a third vehicle, the computer110,126,128can both instruct the second steering system136to turn the second wheels106in the same direction as the first wheels104and instruct the second propulsion132to accelerate. When the first vehicle100is towing the second vehicle102, the second propulsion132is in neutral by default, unless the assist feature involves instructing the second propulsion132to assist the first vehicle100.

With reference toFIG.3, the computer110,126,128can be programmed to, in response to a condition, instruct the second propulsion132to accelerate the second vehicle102. The acceleration provided by the second propulsion132can supplement the acceleration provided by the first propulsion114in situations in which additional acceleration is beneficial, or the acceleration provided by the second propulsion132can permit reduced acceleration by the first propulsion114, thereby conserving the energy and/or lifespan of the first propulsion114.

A condition under which the computer110,126,128instructs the second propulsion132to accelerate can be at least one of a plurality of conditions. A first possible condition is that a temperature of the first propulsion114is above a threshold temperature. The temperature of the first propulsion114can be reported by the first sensors120to the computer110,126,128. The threshold temperature can be chosen to indicate a possibility of damage or degradation of the first propulsion114. Using the second propulsion132can thus avoid such damage or degradation to the first propulsion114.

A second possible condition is that a fuel level of the first vehicle100is below a threshold fuel level (if the first propulsion114includes an internal-combustion engine, e.g., a conventional or hybrid system) or a charge level of the first vehicle100is below a threshold charge level (if the first propulsion114includes high-voltage batteries, e.g., a hybrid or a battery-electric system). The threshold levels can be chosen to leave sufficient energy for the first vehicle100and the second vehicle102to travel to a gas station or charging station. Using the second propulsion132can thus extend the range of the first vehicle100.

A third possible condition is that the first vehicle100is ascending a grade. The computer110,126,128can determine that the first vehicle100is ascending a grade based on, e.g., data received from an IMU of the first sensors120or the second sensors138or map data stored in the memory of the computer110,126,128. Using the second propulsion132can thus provide additional acceleration to maintain a speed while traveling up the grade.

A fourth possible condition is that the first vehicle100is passing a third vehicle. The computer110,126,128can determine that the first vehicle100is passing the third vehicle based on, e.g., data from the first sensors120indicating that the third vehicle is in a lane to the right of the lane of travel of the first vehicle100and is traveling slower than the first vehicle100, data from the first sensors120indicating that a position of the first vehicle100is in a lane designated for passing, etc.

A fifth possible condition is that the operator provided an input requesting that the second propulsion132accelerate, e.g., to the user interface124or the mobile device126.

The operator can provide inputs that affect the assistance provided by the second propulsion132. For example, in response to at least one of the foregoing conditions, the computer110,126,128can output a message to the operator requesting permission for the second propulsion132to accelerate, e.g., via the user interface124or the mobile device126. The computer110,126,128can then wait until the operator provides an input granting permission before instructing the second propulsion132to accelerate.

For another example, the operator can input values for settings controlling the acceleration of the second propulsion132, e.g., a gain or gains. A gain is a multiplier of a parameter resulting in a value used for controlling a system, in this case controlling the acceleration, e.g., the acceleration of the second propulsion132is a product of the gain and a parameter, i.e., a2=GiPi, in which a2is the level of acceleration by the second propulsion132, Giis the gain, Piis the parameter, and i is an index of the condition prompting the second propulsion132to accelerate, e.g., i=1 for the first condition above, i=2 for the second condition above, etc. The parameter can depend on the condition, such as the temperature of the first propulsion114for the first condition, the fuel level or charge level of the first vehicle100for the second condition, a steepness of the grade for the third condition, and an acceleration requested of the first propulsion114, e.g., by the operator pressing an accelerator pedal in the first vehicle100, for the fourth and fifth conditions. The settings can include a different gain for each of the conditions described above. Alternatively, the parameter for all the conditions can be the acceleration level requested of the first propulsion114, and the gain can also be the same for all the conditions.

The computer110,126,128can control the level of acceleration provided by the second propulsion132according to the appropriate gain. The gain(s) can be settings inputted by the operator, as just described. The settable value(s) for the gain(s) can be capped at a maximum value(s) chosen to ensure stability between the first vehicle100and the second vehicle102. The gain(s) can be a default value(s) prestored in the memory in the absence of inputs from the operator. Alternatively, the gain(s) can be a preset value(s) stored in the memory.

The computer110,126,128can instruct the second propulsion132to cease accelerating upon none of the conditions above being true, or upon the condition that triggered the acceleration no longer being true. Alternatively or additionally, the computer110,126,128can instruct the second propulsion132to cease accelerating upon receiving an input from the operator to cease the acceleration. Alternatively or additionally, the computer110,126,128can instruct the second propulsion132to cease accelerating upon the first brake system116braking.

With reference toFIG.4, the computer110,126,128can be programmed to, in response to a condition, instruct the second propulsion132to downshift. Downshifting can serve as engine braking to slow the first vehicle100and the second vehicle102, e.g., in situations in which the first vehicle100and second vehicle102would tend to accelerate such as descending a grade. Downshifting can be limited to when the second propulsion132is providing acceleration assistance, as described above with respect toFIG.3.

The condition under which the computer110,126,128instructs the second propulsion132to downshift can be at least one of a plurality of conditions. A first condition is that the first vehicle100is descending a grade. The computer110,126,128can determine that the first vehicle100is descending a grade based on, e.g., data received from an IMU of the first sensors120or the second sensors138, map data stored in the memory of the computer110,126,128, or determining that the first vehicle100is accelerating while there is no input instructing the first propulsion114to accelerate. Using the second propulsion132can thus provide deceleration to prevent a speed of the first vehicle100from increasing while traveling down the grade. A second condition is that the operator provided an input requesting that the second propulsion132downshift.

The operator can provide inputs that affect the assistance provided by the second propulsion132. For example, in response to the first condition, the computer110,126,128can output a message to the operator requesting permission for the second propulsion132to downshift, e.g., via the user interface124or the mobile device126. The computer110,126,128can then wait until the operator provides an input granting permission before instructing the second propulsion132to downshift.

The computer110,126,128can instruct the second propulsion132to downshift multiple times at predefined intervals as long as the first condition remains true. The predefined intervals can be chosen based on the gear ratios of gears of a transmission of the second propulsion132. The computer110,126,128can instruct the second propulsion132to refrain from downshifting upon the first condition no longer being true. The computer110,126,128can instruct the second propulsion132to downshift multiple times at the predefined intervals after receiving the input to downshift and can instruct the second propulsion132to refrain from downshifting upon receiving an input from the operator to cease downshifting.

With reference toFIG.5, the computer110,126,128is programmed to, in response to a condition, instruct the second brake system134to brake. The braking force provided by the second brake system134can supplement the braking force provided by the first brake system116, thereby more quickly reducing the speed of the first vehicle100and second vehicle102.

The condition under which the computer110,126,128instructs the second brake system134to brake can be at least one of a plurality of conditions, e.g., that the first brake system116is braking, which can be divided into multiple conditions. A first condition can be that the first brake system116is braking at any level of brake force. In other words, the first brake system116and the second brake system134brake together. A second condition can be that the first brake system116is braking at a brake force above a threshold. The threshold can be chosen to indicate braking to stop quickly as opposed to braking to slow without stopping or to stop at a planned point on the roadway. In other words, the second brake system134assists the first brake system116when the operator is attempting to stop the first vehicle100and second vehicle102more quickly.

A third condition can be a temperature of the first brake system116is above a threshold temperature. The temperature of the first brake system116can be reported by the first sensors120to the computer110,126,128. The threshold temperature can be chosen to indicate a possibility of damage or degradation of the first brake system116or to indicate braking to stop quickly as opposed to braking to slow without stopping or to stop at a planned point on the roadway.

The operator can provide inputs that affect the assistance provided by the second brake system134. For example, in response to at least one of the foregoing conditions, the computer110,126,128can output a message to the operator requesting permission for the second brake system134to brake, e.g., via the user interface124or the mobile device126. The computer110,126,128can then wait until the operator provides an input granting permission before instructing the second brake system134to brake.

For another example, the operator can input values for settings controlling the braking force of the second propulsion132, e.g., a gain. In this case, the gain is a multiplier of the braking force of the first brake system116, and the product of the gain and the braking force of the first brake system116is the braking force that the computer110,126,128instructs the second brake system134to apply, i.e., B2=GB1, in which B2is the braking force of the second brake system134, G is the gain, and B1is the braking force of the first brake system116.

The computer110,126,128can control the braking force provided by the second brake system134according to the gain. The gain can be a setting inputted by the operator, as just described. The settable value for the gain can be capped at a maximum value chosen to ensure stability between the first vehicle100and the second vehicle102. The gain can be a default value prestored in the memory in the absence of an input from the operator. Alternatively, the gain can be a preset value stored in the memory.

The computer110,126,128can instruct the second brake system134to cease braking upon the first brake system116ceasing to brake, for the first condition or for both the first and second conditions. Alternatively, for the second condition, the computer110,126,128can instruct the second brake system134to cease braking upon the braking force of the first brake system116dropping below the threshold braking force.

With reference toFIG.6, the computer110,126,128can be programmed to, in response to data indicating a lane change by the first vehicle100, instruct the second steering system136to turn the second wheels106in the same direction as the first wheels104, i.e., as the first steering system118is turning the first wheels104. The movement of the second vehicle102can help the first vehicle100and second vehicle102complete the lane change more quickly by reducing the extent to which the second vehicle102lags behind the first vehicle100in traveling laterally from the old lane of travel to the new lane of travel.

The data indicating the lane change can include data from the first sensors120and/or second sensors138, map data, and/or control data of the first vehicle100. For example, the data can include location data, e.g., from a GPS sensor of the first sensors120, and map data that together indicate that the first vehicle100is on a multilane road and/or is not at an intersection, as well as indicating a lateral position of the first vehicle100within the current lane of travel. The data can include image data from a camera of the first sensors120indicating the locations of lane boundaries relative to the first vehicle100. The data can include data indicating a direction that the first wheels104are turning, e.g., a first steering angle θ1of the first wheels104. The direction that the first wheels104are turning can be indicated by the sign of the first steering angle θ1, e.g., positive for turning left and negative for turning right. The computer110,126,128can determine that the first vehicle100is performing a lane change based on, e.g., the lateral position of the first vehicle100being with a threshold distance of a lane boundary while the first steering angle θ1is above a threshold angle. The threshold distance and threshold angle can be chosen to be outside of typical variation when traveling in a lane without making a lane change.

When the computer110,126,128has determined that the first vehicle100is performing the lane change, instructing the second steering system136to turn the second wheels106can be conditional on one or more conditions being met. In other words, the computer110,126,128is programmed to, in response to the data indicating that the first vehicle100is performing the lane change and at least one of the following conditions being true, instruct the second steering system136to turn the second wheels106in the same direction as the first wheels104. The computer110,126,128is programmed to, in response to data indicating that the first vehicle100is performing the lane change and none of the following conditions being true, refrain from instructing the second steering system136to turn the second wheels106in the same direction as the first wheels104.

A first condition can be data indicating that the first vehicle100is inside a geofenced area. A geofenced area is a geographical area enclosed by preset virtual boundaries. For example, the geofenced area can be one or more limited-access roads. A limited-access road is a road with onramps and offramps rather than intersections, such as an interstate highway. In other words, the computer110,126,128is programmed to, during a lane change, refrain from instructing the second steering system136to turn the second wheels106in response to the data indicating that the first vehicle100is outside the geofenced area.

A second condition can be that a speed of the first vehicle100is above a threshold speed. The threshold speed can be chosen to indicate that the first vehicle100is engaged in highway driving, e.g., 60 miles per hour. In other words, the computer110,126,128is programmed to, during a lane change, refrain from instructing the second steering system136to turn the second wheels106in response to the speed of the first vehicle100being below the threshold speed.

A third condition is that the operator provided an input confirming the turning of the second wheels106. The computer110,126,128can be programmed to, in response to the data indicating the lane change, output a message to the operator requesting permission for the second steering system136to turn the second wheels106, e.g., via the user interface124or the mobile device126. The computer110,126,128can then wait until the operator provides an input confirming permission before instructing the second steering system136to turn the second wheels106. The computer110,126,128is programmed to, during a lane change, refrain from instructing the second steering system136to turn the wheels in response to failing to receive the input confirming the turning of the second wheels106.

The operator can provide inputs that affect the assistance provided by the second steering system136. For example, the operator can input values for settings controlling the turning of the second wheels106, e.g., a gain. In this case, the gain is a multiplier of the first steering angle θ1, and the product of the gain G and the first steering angle θ1is a second steering angle θ2of the second wheels106, i.e., θ2=Gθ1. The computer110,126,128instructs the second steering system136to turn the second wheels106to the second steering angle θ2.

During the lane change, the computer110,126,128can control the second steering angle θ2according to the gain G, e.g., based on the gain G and the first steering angle θ1by applying the gain G to the first steering angle θ1. The gain can be a setting inputted by the operator, as just described. The settable value for the gain can be capped at a maximum value chosen to ensure stability between the first vehicle100and the second vehicle102, e.g., less than 1, i.e., the second steering angle θ2is less than the first steering angle θ1. The gain can be a default value prestored in the memory in the absence of an input from the operator. Alternatively, the gain can be a preset value stored in the memory.

Alternatively, the computer110,126,128can control the second steering angle θ2based on a relative angle φ between the first vehicle100and the second vehicle102, e.g., by applying the gain G to the relative angle φ, i.e., θ2=Gφ. The relative angle φ is an angle in a horizontal plane between a longitudinal direction of the first vehicle100, i.e., a direction of straight-ahead travel by the first vehicle100, and a longitudinal direction of the second vehicle102.

For another example, the computer110,126,128can control the second steering angle θ2based on the relative angle φ between the first vehicle100and the second vehicle102, e.g., by applying a feedback loop minimizing a difference between a target angle φ0and the relative angle φ. The target angle φ0is chosen to push the second vehicle102into a following position, e.g., 0°, i.e., the second vehicle102is straight behind the first vehicle100. The feedback loop can be implemented in any suitable manner, e.g., as a proportional-integral-derivative (PID) controller programmed in the computer110,126,128.

For another example, the computer110,126,128can control the second steering angle θ2based on a combination of the foregoing techniques, e.g., a weighted average of two or three of the techniques, e.g., θ2=wθGθ1+wφGφ+wPIDPID(φ), in which wθ, wφ, and wPIDare weights that sum to 1; and PID( ) is a function representing the output of the feedback loop. The weights wθ, wφ, and wPIDcan be chosen based on testing with operators rating the responsiveness or smoothness of the handling while performing lane changes.

The computer110,126,128can instruct the second steering system136to turn the second wheels106during the lane change and cease turning the wheels, e.g., set the second steering angle θ2to zero, upon determining that the lane change has concluded. The computer110,126,128can determine that the lane change has concluded based on the lateral position of the first vehicle100in the new lane of travel being beyond a threshold lateral position. Alternatively or additionally, the computer110,126,128can determine that the lane change has concluded based on the direction of the first wheels104changing, i.e., the first steering angle θ1decreasing to or below 0°, meaning that the first vehicle100has fully moved into the new lane and is now aligning the trajectory of the first vehicle100with the direction of the new lane.

With reference toFIG.7, the computer110,126,128can be programmed to, in response to data indicating a parking maneuver by the first vehicle100, instruct the second steering system136to turn the second wheels106in an opposite direction as the first wheels104, i.e., as the first steering system118is turning the first wheels104. This can reduce the turning radius of the combination of the first vehicle100and the second vehicle102, which can help the first vehicle100and second vehicle102maneuver into parking locations. Additionally, the computer110,126,128can be programmed to, in response to inputs by the operator during the parking maneuver, instruct the second propulsion132to accelerate the second vehicle102or instruct the second brake system134to lock one of the third wheels144of the second vehicle102. Accelerating the second vehicle102can further tighten the turning radius of the first vehicle100and second vehicle102. Locking the third wheel144(e.g., one of the rear wheels) of the second vehicle102can increase maneuverability by permitting pivoting around the third wheel144.

The data indicating the parking maneuver can include data from the first sensors120and/or second sensors138, map data, and control data of the first vehicle100. For example, the data can include location data, e.g., from a GPS sensor of the first sensors120, and map data that together indicate that the first vehicle100is in a parking lot or other area designated in the map data for parking. The data can be that the first propulsion114is in reverse. The data includes data indicating a direction that the first wheels104are turning, e.g., the first steering angle θ1of the first wheels104. The direction that the first wheels104are turning can be indicated by the sign of the first steering angle θ1, e.g., positive for turning left and negative for turning right. Additionally or alternatively, the data can be an input by the operator indicating that the first vehicle100will perform the parking maneuver, such as a selection of a parking mode within the user interface124or the mobile device126.

When the computer110,126,128has determined that the first vehicle100is performing the parking maneuver (other than by an input from the operator), instructing the second steering system136to turn the second wheels106can be conditional on a confirmation input, i.e., that the operator provided an input confirming the turning of the second wheels106. The computer110,126,128can be programmed to, in response to the data indicating the parking maneuver, output a message to the operator requesting permission for the second steering system136to turn the second wheels106, e.g., via the user interface124or the mobile device126. The computer110,126,128can then wait until the operator provides an input confirming permission before instructing the second steering system136to turn the second wheels106. The computer110,126,128is programmed to, during a parking maneuver, refrain from instructing the second steering system136to turn the wheels in response to failing to receive the input confirming the turning of the second wheels106.

The operator can provide inputs that affect the assistance provided by the second steering system136. For example, the operator can input values for settings controlling the turning of the second wheels106, e.g., a gain. In this case, the gain is a multiplier of the first steering angle θ1, and the product of the gain G and the first steering angle θ1is a second steering angle θ2of the second wheels106, i.e., θ2=−Gθ1. The negative sign indicates that the second steering system136turns the second wheels106the opposite direction as the first steering system118is turning the first wheels104. The computer110,126,128instructs the second steering system136to turn the second wheels106to the second steering angle θ2.

The computer110,126,128can be programmed to, in response to the data indicating the parking maneuver, output a menu to the operator, e.g., via the user interface124or the mobile device126. The menu can include locking one of the third wheels144of the second vehicle102, i.e., one option for the left rear wheel and one option for the right rear wheel, to create a pivot point for the second vehicle102. The computer110,126,128can be programmed to, in response to receiving an input selecting the third wheel144and confirming to lock the selected third wheel144, lock the selected third wheel144of the second vehicle102. The computer110,126,128can lock the third wheel144by instructing the second brake system134to apply the brakes for only the third wheel144. The computer110,126,128can be programmed to output an option to release the locked third wheel144. The computer110,126,128can be programmed to, in response to receiving an input to release the third wheel144, release the locked third wheel144.

The menu can also include instructing the second propulsion132to accelerate the second vehicle102. The computer110,126,128can be programmed to, in response to receiving an input instructing the second propulsion132to accelerate, instruct the second propulsion132to accelerate. The computer110,126,128can be programmed to instruct the second propulsion132to accelerate the second vehicle102to a preset speed chosen to be suitable for parking maneuvers, e.g., 1 or 2 miles per hour. The computer110,126,128can be programmed to output an option to cease accelerating the second vehicle102. The computer110,126,128can be programmed to, in response to receiving an input to cease accelerating the second vehicle102(i.e., selecting the option outputted by the computer110,126,128), instruct the second propulsion132to cease accelerating. Accelerating the second vehicle102during the parking maneuver can tighten the turning radius of the first vehicle100and second vehicle102.

During the parking maneuver, the computer110,126,128can control the second steering angle θ2according to the gain G, e.g., based on the gain G and the first steering angle θ1by applying the gain G to the first steering angle θ1. The gain can be a setting inputted by the operator, as described above. The settable value for the gain can be capped at a maximum value chosen to ensure stability between the first vehicle100and the second vehicle102. The gain can be a default value prestored in the memory in the absence of an input from the operator. Alternatively, the gain can be a preset value stored in the memory.

Alternatively, the computer110,126,128can control the second steering angle θ2based on the relative angle φ between the first vehicle100and the second vehicle102, e.g., by applying the gain G to the relative angle φ, i.e., θ2=−Gφ. The relative angle φ is an angle in a horizontal plane between a longitudinal direction of the first vehicle100, i.e., a direction of straight-ahead travel by the first vehicle100, and a longitudinal direction of the second vehicle102.

For another example, the computer110,126,128can control the second steering angle θ2based on the relative angle φ between the first vehicle100and the second vehicle102, e.g., by applying a feedback loop minimizing a difference between a target angle φ0and the relative angle φ. For example, the target angle φ0can be a function of a speed v of the first vehicle100and the first steering angle, i.e., φ0=f(v, θ1). The target angle φ0can have a decreasing relationship with the speed v and an increasing relationship with the first steering angle θ1. For another example, the target angle φ0can be chosen during the parking maneuver based on a selected location in which to park the first vehicle100and second vehicle102. The computer110,126,128can be programmed to, in response to receiving an input selecting a location, e.g., on a map displayed on the user interface124or the mobile device126, calculate the target angle φ0that would provide a turning radius permitting the first vehicle100and second vehicle102to travel into the selected location. The feedback loop can be implemented in any suitable manner, e.g., as a proportional-integral-derivative (PID) controller programmed in the computer110,126,128.

For another example, the computer110,126,128can control the second steering angle θ2based on a combination of the foregoing techniques, e.g., a weighted average of two or three of the techniques, e.g., θ2=−(wθGθ1+wφGφ+wPIDPID(φ)), in which wθ, wφ, and wPIDare weights that sum to 1; and PID( ) is a function representing the output of the feedback loop. The weights wθ, wφ, and wPIDcan be chosen based on testing with operators rating the responsiveness or smoothness of the handling while performing lane changes.

The computer110,126,128can continue controlling the second steering angle θ2while locking the third wheel144or accelerating the second vehicle102if those options are selected by the operator. The computer110,126,128can instruct the second steering system136to cease turning the wheels, e.g., set the second steering angle θ2to zero, upon determining that the parking maneuver has concluded. The computer110,126,128can determine that the parking maneuver has concluded based on a current location of the first vehicle100being a selected location to park the first vehicle100. The computer110,126,128can determine that the parking maneuver has concluded based on a speed of the first vehicle100exceeding a threshold speed. The threshold speed can be chosen to be greater than typical speeds for parking. The computer110,126,128can determine that the parking maneuver has concluded based on a transmission of the first propulsion114being shifted into park and a brake pedal of the first vehicle100having no input, i.e., being undepressed. The computer110,126,128can determine that the parking maneuver has concluded based on an input by the operator indicating that the parking maneuver has concluded, e.g., exiting the parking mode.

FIG.8is a process flow diagram illustrating an exemplary process800for the second vehicle102to assist the first vehicle100. The memory of the computer110,126,128stores executable instructions for performing the steps of the process800and/or programming can be implemented in structures such as mentioned above. As a general overview of the process800, the computer110,126,128receives settings inputted from the operator and receives data from the first sensors120and second sensors138and control data for systems of the first vehicle100and second vehicle102. If one of the conditions for one of the assist features is satisfied and the operator provides an input confirming to execute the assist feature, the computer110,126,128executes the assist feature until one of the conditions for ending that assist feature is satisfied. If none of the conditions for the assist features are satisfied or if the operator does not confirm to execute the assist feature, the computer110,126,128refrains from executing the assist feature. The process800can continue for as long as the vehicle is on.

The process800begins in a block805, in which the computer110,126,128receives input from the operator with values for settings of the assist features, e.g., values for the different gains corresponding to the different assist features.

Next, in a block810, the computer110,126,128receives data from the first sensor and the second sensor and receives control data for controlling systems of the first vehicle100such as the first propulsion114, first brake system116, and first steering system118.

Next, in a decision block815, the computer110,126,128determines whether any of the conditions for any of the assist features are satisfied, as described above with respect to each assist feature. For example, for the assist feature of actuating the second propulsion132, the computer110,126,128determines whether the temperature of the first propulsion114is above the threshold temperature, or whether the fuel level of the first vehicle100is below the threshold fuel level, etc. For another example, for the lane-change assist feature, the computer110,126,128determines whether it has received data indicating a lane change and whether the first vehicle100is inside the geofenced area or the speed of the first vehicle100is above the threshold speed. If one of the conditions is satisfied, the process800proceeds to a block820. If none of the conditions are satisfied, the process800proceeds to a block840.

In the block820, the computer110,126,128receives inputs for the assist feature for which the condition was satisfied in the decision block815, which will be referred to as the activated assist feature. The computer110,126,128can output a message to the operator requesting permission to perform the activated assist feature, and the input can be confirming or denying the permission. The input can also include a value for the gain corresponding to the activated assist feature.

Next, in a decision block825, the computer110,126,128determines whether the operator has provided permission to execute the activated assist feature. If the operator provided an input confirming permission to execute the activated assist feature in the block820, the process800proceeds to a block830. If the operator provided an input denying permission to execute the activated assist feature or failed to provide an input within a preset time limit, the process800proceeds to the block840.

In the block830, the computer110,126,128executes the activated assist feature, as described with respect to each of the assist features above.

Next, in a decision block835, the computer110,126,128determines whether any of the conditions for ceasing the activated assist feature described above are satisfied. For example, if actuating the second propulsion132is the activated assist feature, the computer110,126,128determines whether the condition satisfied in the decision block815is no longer true, whether the computer110,126,128has received an input from the operator to cease the acceleration, or whether the first brake system116braked. For another example, if the lane-change assist feature is the activated assist feature, the computer110,126,128determines whether the lane change has concluded, as described above. If one of the conditions for ceasing the activated assist feature is satisfied, the process800proceeds to the block840. If none of the conditions for ceasing the activated assist feature are satisfied, the process800proceeds to a decision block845, and possibly from there back to the block810to continue executing the activated assist feature.

In the block840, the computer110,126,128refrains from executing the activated assist feature. After the block840, the process800proceeds to the decision block845.

In the decision block845, the computer110,126,128determines whether the first vehicle100is still on. If so, the process800returns to the block810to continue checking for assist features to execute. If the first vehicle100has been turned off, the process800ends.

In the drawings, the same reference numbers indicate the same elements. Further, some or all of these elements could be changed. With regard to the media, processes, systems, methods, heuristics, etc. described herein, it should be understood that, although the steps of such processes, etc. have been described as occurring according to a certain ordered sequence, such processes could be practiced with the described steps performed in an order other than the order described herein. It further should be understood that certain steps could be performed simultaneously, that other steps could be added, or that certain steps described herein could be omitted.

All terms used in the claims are intended to be given their plain and ordinary meanings as understood by those skilled in the art unless an explicit indication to the contrary in made herein. In particular, use of the singular articles such as “a,” “the,” “said,” etc. should be read to recite one or more of the indicated elements unless a claim recites an explicit limitation to the contrary. Use of “in response to” and “upon determining” indicates a causal relationship, not merely a temporal relationship. The adjectives “first” and “second” are used throughout this document as identifiers and are not intended to signify importance, order, or quantity.