parent
							
								
									81ebf6b142
								
							
						
					
					
						commit
						f054ff0b08
					
				
				 9 changed files with 90 additions and 34 deletions
			
			
		| @ -1,36 +1,73 @@ | ||||
| openpilot Safety | ||||
| ====== | ||||
| 
 | ||||
| openpilot is an Adaptive Cruise Control and Lane Keeping Assist System. Like | ||||
| other ACC and LKAS systems, openpilot requires the driver to be alert and to pay | ||||
| attention at all times. We repeat, **driver alertness is necessary, but not | ||||
| openpilot is an Adaptive Cruise Control (ACC) and Lane Keeping Assist (LKA) system.  | ||||
| Like other ACC and LKA systems, openpilot requires the driver to be alert and to  | ||||
| pay attention at all times. We repeat, **driver alertness is necessary, but not  | ||||
| sufficient, for openpilot to be used safely**. | ||||
| 
 | ||||
| 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. | ||||
| 
 | ||||
| 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 | ||||
|    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 | ||||
|    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. | ||||
|   - Honda CAN uses both a counter and a checksum to ensure integrity and prevent | ||||
|     replay of the same message. | ||||
| Honda/Acura | ||||
| ------ | ||||
| 
 | ||||
|   - While the system is engaged, gas, brake and steer limits are subject to the same limits used by | ||||
|     the stock system. | ||||
| 
 | ||||
|   - 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 | ||||
|     braking, although the board and the software clip it to 1/4th of the max. | ||||
|     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, | ||||
|     the controller cannot jerk the wheel. | ||||
| 
 | ||||
|   - Steering is controlled by the 0xE4 CAN message. The Electronic Power Steering (EPS)  | ||||
|     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
 | ||||
| oid sha256:f6f985c451e36d05b11e35ba61e229e28d49bcfac8874146bb500f6b0736e409 | ||||
| oid sha256:f01adf6d07d2ca818d2df6a79b1c10a4806dd6a1a525438950329ff0c2791437 | ||||
| size 194874 | ||||
|  | ||||
					Loading…
					
					
				
		Reference in new issue