Skip to content

Commit

Permalink
Squashed 'cereal/' changes from eba4349..3bf5936a
Browse files Browse the repository at this point in the history
3bf5936a Added bmw safety enum
6511990 log focus state
8efe413 qlog radarState
eeb3d56 Add liveLocationKalman to qlogs
128b3f9 add networkStrength to thermal (commaai#36)
2e5cbfc Create and init message in one line with `new_message` in messaging  (commaai#35)
4589107 not everyone likes gpstime
17363e9 support for end of log sentinel (commaai#34)
f6e9345 val valid is confusing
bb2cc75 fix duplicate ordinals
0c38fc9 Add blindspot cereal values (commaai#26)
bd9a877 pulse desire and e2e
20c7fd6 Add subaru pre-Global safety mode
522ff85 Merge pull request commaai#31 from commaai/good_location_packet
ab07f22 deprecate
b03c2c5 already exists
166418c0 improvements
97373f9 or rigor in american
365abba rigour
25eaf9d add espDisabled to carState (commaai#30)
bb13121 add honda ecus (commaai#29)

git-subtree-dir: cereal
git-subtree-split: 3bf5936a70b5a10350b581d600600dc19375a233
  • Loading branch information
dzid26 committed Jan 2, 2022
1 parent 1d7d11f commit b3ff72a
Show file tree
Hide file tree
Showing 5 changed files with 101 additions and 10 deletions.
3 changes: 1 addition & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -35,8 +35,7 @@ while 1:

# in publisher
pm = messaging.PubMaster(['sensorEvents'])
dat = messaging.new_message()
dat.init('sensorEvents', 1)
dat = messaging.new_message('sensorEvents', size=1)
dat.sensorEvents[0] = {"gyro": {"v": [0.1, -0.1, 0.1]}}
pm.send('sensorEvents', dat)
```
19 changes: 18 additions & 1 deletion car.capnp
Original file line number Diff line number Diff line change
Expand Up @@ -127,6 +127,7 @@ struct CarState {
steeringRateLimited @29 :Bool; # if the torque is limited by the rate limiter
stockAeb @30 :Bool;
stockFcw @31 :Bool;
espDisabled @32 :Bool;

# cruise state
cruiseState @10 :CruiseState;
Expand All @@ -150,6 +151,10 @@ struct CarState {

# which packets this state came from
canMonoTimes @12: List(UInt64);

# blindspot sensors
leftBlindspot @33 :Bool; # Is there something blocking the left lane change
rightBlindspot @34 :Bool; # Is there something blocking the right lane change

struct WheelSpeeds {
# optional wheel speeds
Expand Down Expand Up @@ -431,7 +436,7 @@ struct CarParams {
chrysler @9;
tesla @10;
subaru @11;
gmPassive @12;
bmw @12;
mazda @13;
nissan @14;
volkswagen @15;
Expand All @@ -441,6 +446,7 @@ struct CarParams {
noOutput @19; # like silent but without silent CAN TXs
hondaBoschHarness @20;
volkswagenPq @21;
subaruLegacy @22; # pre-Global platform
}

enum SteerControlType {
Expand Down Expand Up @@ -468,10 +474,21 @@ struct CarParams {
fwdCamera @3;
engine @4;
unknown @5;
transmission @8; # Transmission Control Module
srs @9; # airbag
gateway @10; # can gateway
hud @11; # heads up display
combinationMeter @12; # instrument cluster

# Toyota only
dsu @6;
apgs @7;

# Honda only
vsa @13; # Vehicle Stability Assist
programmedFuelInjection @14;
electricBrakeBooster @15;
shiftByWire @16;
}

enum FingerprintSource {
Expand Down
73 changes: 72 additions & 1 deletion log.capnp
Original file line number Diff line number Diff line change
Expand Up @@ -127,6 +127,8 @@ struct FrameData {
lensTruePos @14 :Float32;
image @6 :Data;
gainFrac @15 :Float32;
focusVal @16 :List(Int16);
focusConf @17 :List(UInt8);

frameType @7 :FrameType;
timestampSof @8 :UInt64;
Expand Down Expand Up @@ -281,6 +283,7 @@ struct ThermalData {
usbOnline @12 :Bool;
networkType @22 :NetworkType;
offroadPowerUsage @23 :UInt32; # Power usage since going offroad in uWh
networkStrength @24 :NetworkStrength;

fanSpeed @10 :UInt16;
started @11 :Bool;
Expand Down Expand Up @@ -308,6 +311,14 @@ struct ThermalData {
cell4G @4;
cell5G @5;
}

enum NetworkStrength {
unknown @0;
poor @1;
moderate @2;
good @3;
great @4;
}
}

struct HealthData {
Expand Down Expand Up @@ -626,9 +637,11 @@ struct ModelData {
brakeDisengageProb @2 :Float32;
gasDisengageProb @3 :Float32;
steerOverrideProb @4 :Float32;
desireState @5 :List(Float32);
}

struct LongitudinalData {
distances @2 :List(Float32);
speeds @0 :List(Float32);
accelerations @1 :List(Float32);
}
Expand Down Expand Up @@ -790,6 +803,52 @@ struct PathPlan {
}
}

struct LiveLocationKalman {

# More info on reference frames:
# https://github.com/commaai/openpilot/tree/master/common/transformations

positionECEF @0 : Measurement;
positionGeodetic @1 : Measurement;
velocityECEF @2 : Measurement;
velocityNED @3 : Measurement;
velocityDevice @4 : Measurement;
accelerationDevice @5: Measurement;


# These angles are all eulers and roll, pitch, yaw
# orientationECEF transforms to rot matrix: ecef_from_device
orientationECEF @6 : Measurement;
orientationNED @7 : Measurement;
angularVelocityDevice @8 : Measurement;

# orientationNEDCalibrated transforms to rot matrix: NED_from_calibrated
orientationNEDCalibrated @9 : Measurement;

# Calibrated frame is simply device frame
# aligned with the vehicle
velocityCalibrated @10 : Measurement;
accelerationCalibrated @11 : Measurement;
angularVelocityCalibrated @12 : Measurement;

gpsWeek @13 :Int32;
gpsTimeOfWeek @14 :Float64;
status @15 :Status;
unixTimestampMillis @16 :Int64;

enum Status {
uninitialized @0;
uncalibrated @1;
valid @2;
}

struct Measurement {
value @0 : List(Float64);
std @1 : List(Float64);
valid @2 : Bool;
}
}

struct LiveLocationData {
status @0 :UInt8;

Expand Down Expand Up @@ -1877,6 +1936,16 @@ struct KalmanOdometry {
rotStd @3 :List(Float32); # std rad/s in device frame
}

struct Sentinel {
enum SentinelType {
endOfSegment @0;
endOfRoute @1;
startOfSegment @2;
startOfRoute @3;
}
type @0 :SentinelType;
}

struct Event {
# in nanoseconds?
logMonoTime @0 :UInt64;
Expand Down Expand Up @@ -1933,7 +2002,7 @@ struct Event {
gpsLocationExternal @48 :GpsLocationData;
location @49 :LiveLocationData;
uiNavigationEvent @50 :UiNavigationEvent;
liveLocationKalman @51 :LiveLocationData;
liveLocationKalmanDEPRECATED @51 :LiveLocationData;
testJoystick @52 :Joystick;
orbOdometry @53 :OrbOdometry;
orbFeatures @54 :OrbFeatures;
Expand All @@ -1953,5 +2022,7 @@ struct Event {
carParams @69: Car.CarParams;
frontFrame @70: FrameData;
dMonitoringState @71: DMonitoringState;
liveLocationKalman @72 :LiveLocationKalman;
sentinel @73 :Sentinel;
}
}
12 changes: 8 additions & 4 deletions messaging/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -19,10 +19,15 @@

context = Context()

def new_message():
def new_message(service=None, size=None):
dat = log.Event.new_message()
dat.logMonoTime = int(sec_since_boot() * 1e9)
dat.valid = True
if service is not None:
if size is None:
dat.init(service)
else:
dat.init(service, size)
return dat

def pub_sock(endpoint):
Expand Down Expand Up @@ -148,12 +153,11 @@ def __init__(self, services, ignore_alive=None, addr="127.0.0.1"):
self.sock[s] = sub_sock(s, poller=self.poller, addr=addr, conflate=True)
self.freq[s] = service_list[s].frequency

data = new_message()
try:
data.init(s)
data = new_message(s)
except capnp.lib.capnp.KjException:
# lists
data.init(s, 0)
data = new_message(s, 0)

self.data[s] = getattr(data, s)
self.logMonoTime[s] = 0
Expand Down
4 changes: 2 additions & 2 deletions service_list.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ controlsState: [8007, true, 100., 100]
model: [8009, true, 20., 5]
features: [8010, true, 0.]
health: [8011, true, 2., 1]
radarState: [8012, true, 20.]
radarState: [8012, true, 20., 5]
#liveUI: [8014, true, 0.]
encodeIdx: [8015, true, 20.]
liveTracks: [8016, true, 20.]
Expand Down Expand Up @@ -57,7 +57,7 @@ orbslamCorrection: [8050, true, 0.]
liveLocationCorrected: [8051, true, 0.]
orbObservation: [8052, true, 0.]
applanixLocation: [8053, true, 0.]
liveLocationKalman: [8054, true, 0.]
liveLocationKalman: [8054, true, 0., 1]
uiNavigationEvent: [8055, true, 0.]
orbOdometry: [8057, true, 0.]
orbFeatures: [8058, false, 0.]
Expand Down

0 comments on commit b3ff72a

Please sign in to comment.