parent
							
								
									81ebf6b142
								
							
						
					
					
						commit
						f054ff0b08
					
				
				 9 changed files with 90 additions and 34 deletions
			
			
		| @ -1,36 +1,73 @@ | |||||||
| openpilot Safety | openpilot Safety | ||||||
| ====== | ====== | ||||||
| 
 | 
 | ||||||
| openpilot is an Adaptive Cruise Control and Lane Keeping Assist System. Like | openpilot is an Adaptive Cruise Control (ACC) and Lane Keeping Assist (LKA) system.  | ||||||
| other ACC and LKAS systems, openpilot requires the driver to be alert and to pay | Like other ACC and LKA systems, openpilot requires the driver to be alert and to  | ||||||
| attention at all times. We repeat, **driver alertness is necessary, but not | pay attention at all times. We repeat, **driver alertness is necessary, but not  | ||||||
| sufficient, for openpilot to be used safely**. | sufficient, for openpilot to be used safely**. | ||||||
| 
 | 
 | ||||||
| Even with an attentive driver, we must make further efforts for the system to be | Even with an attentive driver, we must make further efforts for the system to be | ||||||
| safe. We have designed openpilot with two other safety considerations. | safe. We have designed openpilot with two other safety considerations. | ||||||
| 
 | 
 | ||||||
| 1. The vehicle must always be controllable by the driver. | 1. The driver must always be capable to immediately retake manual control of the vehicle,  | ||||||
|  |    by stepping on either pedal or by pressing the cancel button. | ||||||
| 2. The vehicle must not alter its trajectory too quickly for the driver to safely | 2. The vehicle must not alter its trajectory too quickly for the driver to safely | ||||||
|    react. |    react. This means that while the system is engaged, the actuators are constrained | ||||||
|  |    to operate within reasonable limits. | ||||||
| 
 | 
 | ||||||
| To address these, we came up with two safety principles. | Following are details of the car specific safety implementations: | ||||||
| 
 | 
 | ||||||
| 1. Enforced disengagements. Step on either pedal or press the cancel button to | Honda/Acura | ||||||
|    retake manual control of the car immediately. | ------ | ||||||
|   - These are hard enforced by the board, and soft enforced by the software. The | 
 | ||||||
|     green led on the board signifies if the board is allowing control messages. |   - While the system is engaged, gas, brake and steer limits are subject to the same limits used by | ||||||
|   - Honda CAN uses both a counter and a checksum to ensure integrity and prevent |     the stock system. | ||||||
|     replay of the same message. | 
 | ||||||
|  |   - Without an interceptor, the gas is controlled by the Powertrain Control Module (PCM).  | ||||||
|  |     The PCM limits acceleration to what is reasonable for a cruise control system.  With an | ||||||
|  |     interceptor, the gas is clipped to 60%. | ||||||
| 
 | 
 | ||||||
| 2. Actuation limits. While the system is engaged, the actuators are constrained |  | ||||||
|    to operate within reasonable limits; the same limits used by the stock system on |  | ||||||
|    the Honda. |  | ||||||
|   - Without an interceptor, the gas is controlled by the PCM. The PCM limits |  | ||||||
|     acceleration to what is reasonable for a cruise control system.  With an |  | ||||||
|     interceptor, the gas is clipped to 60% in longcontrol.py |  | ||||||
|   - The brake is controlled by the 0x1FA CAN message. This message allows full |   - The brake is controlled by the 0x1FA CAN message. This message allows full | ||||||
|     braking, although the board and the software clip it to 1/4th of the max. |     braking, although the board and the software clip it to 1/4th of the max. | ||||||
|     This is around .3g of braking. |     This is around .3g of braking. | ||||||
|   - Steering is controlled by the 0xE4 CAN message. The EPS controller in the | 
 | ||||||
|     car limits the torque to a very small amount, so regardless of the message, |   - Steering is controlled by the 0xE4 CAN message. The Electronic Power Steering (EPS)  | ||||||
|     the controller cannot jerk the wheel. |     controller in the car limits the torque to a very small amount, so regardless of the  | ||||||
|  |     message, the controller cannot jerk the wheel. | ||||||
|  | 
 | ||||||
|  |   - Brake and gas pedal pressed signals are contained in the 0x17C CAN message. A rising edge of | ||||||
|  |     either signal triggers a disengagement, which is enforced by the board and in software. The | ||||||
|  |     green led on the board signifies if the board is allowing control messages. | ||||||
|  | 
 | ||||||
|  |   - Honda CAN uses both a counter and a checksum to ensure integrity and prevent | ||||||
|  |     replay of the same message. | ||||||
|  | 
 | ||||||
|  | Toyota | ||||||
|  | ------ | ||||||
|  | 
 | ||||||
|  |   - While the system is engaged, gas, brake and steer limits are subject to the same limits used by | ||||||
|  |     the stock system. | ||||||
|  | 
 | ||||||
|  |   - With the stock Driving Support Unit (DSU) enabled, the acceleration is controlled  | ||||||
|  |     by the stock system and is subject to the stock adaptive cruise control limits. Without the | ||||||
|  |     stock DSU connected, the acceleration command is controlled by the 0x343 CAN message and its | ||||||
|  |     value is limited by the board and the software to between .3g of deceleration and .15g of | ||||||
|  |     acceleration. The acceleration command is ignored by the Engine Control Module (ECM) while the | ||||||
|  |     cruise control system is disengaged. | ||||||
|  | 
 | ||||||
|  |   - Steering torque is controlled through the 0x2E4 CAN message and it's limited by the board and in | ||||||
|  |     software to a value of -1500 and 1500. In addition, the vehicle EPS unit will not respond to | ||||||
|  |     commands outside these limits.  A steering torque rate limit is enforced by the board and in | ||||||
|  |     software so that the commanded steering torque must rise from 0 to max value no faster than | ||||||
|  |     1.5s. Commanded steering torque is limited by the board and in software to be no more than 500 | ||||||
|  |     units above the actual EPS generated motor torque to ensure limited differences between | ||||||
|  |     commanded and actual torques. | ||||||
|  | 
 | ||||||
|  |   - Brake and gas pedal pressed signals are contained in the 0x224 and 0x1D2 CAN messages, | ||||||
|  |     respectively. A rising edge of either signal triggers a disengagement, which is enforced by the | ||||||
|  |     board and in software. Additionally, the cruise control system disengages on the rising edge of | ||||||
|  |     the brake pedal pressed signal. | ||||||
|  | 
 | ||||||
|  |   - The cruise control system state is contained in the 0x1D2 message. No control messages are | ||||||
|  |     allowed if the cruise control system is not active. This is enforced by the software and the | ||||||
|  |     board. The green led on the board signifies if the board is allowing control messages. | ||||||
|  | |||||||
| @ -1,3 +1,3 @@ | |||||||
| version https://git-lfs.github.com/spec/v1
 | version https://git-lfs.github.com/spec/v1
 | ||||||
| oid sha256:f6f985c451e36d05b11e35ba61e229e28d49bcfac8874146bb500f6b0736e409 | oid sha256:f01adf6d07d2ca818d2df6a79b1c10a4806dd6a1a525438950329ff0c2791437 | ||||||
| size 194874 | size 194874 | ||||||
|  | |||||||
					Loading…
					
					
				
		Reference in new issue