|
|
|
@ -1,4 +1,4 @@ |
|
|
|
|
from collections import defaultdict |
|
|
|
|
from collections import defaultdict, namedtuple |
|
|
|
|
from dataclasses import dataclass |
|
|
|
|
from enum import Enum, IntFlag |
|
|
|
|
from typing import Dict, List, Union |
|
|
|
@ -12,6 +12,7 @@ from selfdrive.car.fw_query_definitions import FwQueryConfig, Request, StdQuerie |
|
|
|
|
Ecu = car.CarParams.Ecu |
|
|
|
|
MIN_ACC_SPEED = 19. * CV.MPH_TO_MS |
|
|
|
|
PEDAL_TRANSITION = 10. * CV.MPH_TO_MS |
|
|
|
|
AngleRateLimit = namedtuple('AngleRateLimit', ['speed_points', 'max_angle_diff_points']) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class CarControllerParams: |
|
|
|
@ -23,7 +24,11 @@ class CarControllerParams: |
|
|
|
|
|
|
|
|
|
# stock LTA is 0 to 0.05 going straight |
|
|
|
|
# and 0.1 to 0.4 when turning (max seen is 0.6303) |
|
|
|
|
ANGLE_RATE_MAX = 2.0 |
|
|
|
|
|
|
|
|
|
ANGLE_RATE_LIMIT_UP = AngleRateLimit(speed_points=[0., 5., 15.], max_angle_diff_points=[5., .8, .15]) |
|
|
|
|
ANGLE_RATE_LIMIT_DOWN = AngleRateLimit(speed_points=[0., 5., 15.], max_angle_diff_points=[5., 3.5, 0.4]) |
|
|
|
|
|
|
|
|
|
# ANGLE_RATE_MAX = 2.0 |
|
|
|
|
# needs to be within +-3 degrees of current angle to avoid windup |
|
|
|
|
ANGLE_DELTA_MAX = 3.0 |
|
|
|
|
|
|
|
|
|