@@ -68,8 +68,11 @@ def addMeasurement(type, t, v):
68
68
69
69
startTime = None
70
70
timeOffset = 0
71
+ latestGyroTime = None
71
72
gnssConverter = GnssConverter ()
72
73
74
+ framesMissingNextGyroTime = []
75
+
73
76
with open (jsonlFile ) as f :
74
77
nSkipped = 0
75
78
for line in f .readlines ():
@@ -113,8 +116,15 @@ def addMeasurement(type, t, v):
113
116
if measurementType in ["accelerometer" , "gyroscope" , "magnetometer" ]:
114
117
v = [sensor ["values" ][i ] for i in range (3 )]
115
118
addMeasurement (measurementType , t , v )
119
+ if measurementType == "gyroscope" :
120
+ latestGyroTime = t
121
+ for f in framesMissingNextGyroTime :
122
+ gyroTimeDeltas ["next" ] = abs (latestGyroTime - gyroTimeDeltas ["t" ])
123
+ framesMissingNextGyroTime .clear ()
124
+
116
125
elif barometer is not None :
117
126
addMeasurement ("barometer" , t , barometer ["pressureHectopascals" ])
127
+
118
128
elif gnss is not None :
119
129
gnssData = data ["gnss" ]
120
130
if len (gnssData ["t" ]) > 0 :
@@ -124,18 +134,27 @@ def addMeasurement(type, t, v):
124
134
enu = gnssConverter .enu (gnss ["latitude" ], gnss ["longitude" ], gnss ["altitude" ])
125
135
gnssData ["position" ].append ([enu [c ] for c in "xyz" ])
126
136
gnssData ["altitude" ].append (gnss ["altitude" ])
137
+
127
138
elif frames is not None :
128
139
for f in frames :
129
140
if f .get ("missingBitmap" , False ): continue
130
141
cameras = data ['cameras' ]
131
142
ind = f ["cameraInd" ]
132
143
if cameras .get (ind ) is None :
133
- cameras [ind ] = {"td" : [], "t" : [], "features" : []}
144
+ cameras [ind ] = {"td" : [], "t" : [], "features" : [], "gyroTimeDeltas" : [] }
134
145
else :
135
146
diff = t - cameras [ind ]["t" ][- 1 ]
136
147
cameras [ind ]["td" ].append (diff )
137
148
if "features" in f : cameras [ind ]["features" ].append (0 if not f ["features" ] else len (f ["features" ]))
138
149
cameras [ind ]["t" ].append (t )
150
+ gyroTimeDeltas = {
151
+ "prev" : abs (latestGyroTime - t ) if latestGyroTime != None else None ,
152
+ "next" : None ,
153
+ "t" : t
154
+ }
155
+ cameras [ind ]["gyroTimeDeltas" ].append (gyroTimeDeltas )
156
+ framesMissingNextGyroTime .append (gyroTimeDeltas )
157
+
139
158
elif metrics is not None and 'cpu' in metrics :
140
159
addMeasurement ("cpu" , t , metrics ['cpu' ].get ('systemTotalUsagePercent' , 0 ))
141
160
usedProcessNames = {} # Track duplicate process names
@@ -148,6 +167,7 @@ def addMeasurement(type, t, v):
148
167
processData = data ['cpu' ]["processes" ].setdefault (uniqueName , {"v" : [], "t" : []})
149
168
processData ['v' ].append (process ['usagePercent' ])
150
169
processData ['t' ].append (t )
170
+
151
171
elif vioOutput is not None :
152
172
vio = data ["vio" ]
153
173
if len (vio ["t" ]) > 0 :
0 commit comments