From e42c1e7c0ceb62220a9d9b75b1a6be027137832b Mon Sep 17 00:00:00 2001 From: Vehicle Researcher Date: Tue, 30 Jul 2019 02:25:26 +0000 Subject: [PATCH] Squashed 'cereal/' changes from 4ea03bacb..748002c19 748002c19 angle calib desc 27db4a74e add camera rpy angle msg a71c4fa7f deprecate old dm model output 6c6ab965f remove hwType from ThermalData. Decided to have health at higher freq instead. This will make last 24H of collected data unreadable. Sorry. f27249ea9 Add fields for LQR lateral control 654860c8b add decelForModel 995b558d4 add longitudinal plan source 222f2de17 add eye stuff eebf268ea hasGps is a better name than hasGpsAntenna 12da45fda Blackpanda (#4) git-subtree-dir: cereal git-subtree-split: 748002c1900700a3df93edf26071510225038ee6 old-commit-hash: 4808de10d620f81423e2fa2758c0c2ea1d247fc2 --- car.capnp | 16 ++++++++++++++++ log.capnp | 24 +++++++++++++++++++++--- 2 files changed, 37 insertions(+), 3 deletions(-) diff --git a/car.capnp b/car.capnp index fd781f9b14..e6c9df5dd0 100644 --- a/car.capnp +++ b/car.capnp @@ -324,6 +324,7 @@ struct CarParams { lateralTuning :union { pid @26 :LateralPIDTuning; indi @27 :LateralINDITuning; + lqr @40 :LateralLQRTuning; } steerLimitAlert @28 :Bool; @@ -339,6 +340,7 @@ struct CarParams { steerActuatorDelay @36 :Float32; # Steering wheel actuator delay in seconds openpilotLongitudinalControl @37 :Bool; # is openpilot doing the longitudinal control? carVin @38 :Text; # VIN number queried during fingerprinting + isPandaBlack @39: Bool; struct LateralPIDTuning { kpBP @0 :List(Float32); @@ -365,6 +367,20 @@ struct CarParams { actuatorEffectiveness @3 :Float32; } + struct LateralLQRTuning { + scale @0 :Float32; + ki @1 :Float32; + dcGain @2 :Float32; + + # State space system + a @3 :List(Float32); + b @4 :List(Float32); + c @5 :List(Float32); + + k @6 :List(Float32); # LQR gain + l @7 :List(Float32); # Kalman gain + } + enum SafetyModel { # does NOT match board setting diff --git a/log.capnp b/log.capnp index 3dbbc516d3..5f76cbd742 100644 --- a/log.capnp +++ b/log.capnp @@ -301,7 +301,7 @@ struct HealthData { controlsAllowed @3 :Bool; gasInterceptorDetected @4 :Bool; startedSignalDetectedDeprecated @5 :Bool; - isGreyPanda @6 :Bool; + hasGps @6 :Bool; canSendErrs @7 :UInt32; canFwdErrs @8 :UInt32; gmlanSendErrs @9 :UInt32; @@ -373,6 +373,8 @@ struct LiveCalibrationData { # view_frame_from_road_frame # ui's is inversed needs new extrinsicMatrix @4 :List(Float32); + # the direction of travel vector in device frame + rpyCalib @7 :List(Float32); } struct LiveTracks { @@ -448,9 +450,12 @@ struct ControlsState @0x97ff69c53601abf1 { vCurvature @46 :Float32; decelForTurn @47 :Bool; + decelForModel @54 :Bool; + lateralControlState :union { indiState @52 :LateralINDIState; pidState @53 :LateralPIDState; + lqrState @55 :LateralLQRState; } enum OpenpilotState @0xdbe58b96d2d1ac61 { @@ -505,6 +510,13 @@ struct ControlsState @0x97ff69c53601abf1 { saturated @8 :Bool; } + struct LateralLQRState { + active @0 :Bool; + steerAngle @1 :Float32; + i @2 :Float32; + output @3 :Float32; + } + } struct LiveEventData { @@ -660,6 +672,7 @@ struct Plan { mpc1 @1; mpc2 @2; mpc3 @3; + model @4; } } @@ -1661,8 +1674,13 @@ struct OrbKeyFrame { struct DriverMonitoring { frameId @0 :UInt32; - descriptor @1 :List(Float32); - std @2 :Float32; + descriptorDEPRECATED @1 :List(Float32); + stdDEPRECATED @2 :Float32; + faceOrientation @3 :List(Float32); + facePosition @4 :List(Float32); + faceProb @5 :Float32; + leftEyeProb @6 :Float32; + rightEyeProb @7 :Float32; } struct Boot {