mirror of
https://github.com/MoreTore/openpilot.git
synced 2026-08-05 00:05:59 +08:00
Locationd fixes
This commit is contained in:
@@ -21,6 +21,7 @@ from sympy.utilities.lambdify import lambdify
|
||||
from rednose.helpers.sympy_helpers import euler_rotate
|
||||
|
||||
|
||||
OUTPUT_DECIMATION = 2
|
||||
VISION_DECIMATION = 2
|
||||
SENSOR_DECIMATION = 10
|
||||
|
||||
@@ -61,6 +62,9 @@ class Localizer():
|
||||
self.posenet_speed = 0
|
||||
self.car_speed = 0
|
||||
|
||||
self.converter = coord.LocalCoord.from_ecef(self.kf.x[States.ECEF_POS])
|
||||
self.unix_timestamp_millis = 0
|
||||
|
||||
@staticmethod
|
||||
def msg_from_state(converter, calib_from_device, H, predicted_state, predicted_cov):
|
||||
predicted_std = np.sqrt(np.diagonal(predicted_cov))
|
||||
@@ -271,15 +275,15 @@ class Localizer():
|
||||
self.speed_counter = 0
|
||||
self.cam_counter = 0
|
||||
|
||||
|
||||
def locationd_thread(sm, pm, disabled_logs=[]):
|
||||
if sm is None:
|
||||
socks = ['gpsLocationExternal', 'sensorEvents', 'cameraOdometry', 'liveCalibration', 'carState']
|
||||
sm = messaging.SubMaster(socks)
|
||||
sm = messaging.SubMaster(socks, ignore_alive=['gpsLocationExternal'])
|
||||
if pm is None:
|
||||
pm = messaging.PubMaster(['liveLocationKalman'])
|
||||
|
||||
localizer = Localizer(disabled_logs=disabled_logs)
|
||||
camera_odometry_cnt = 0
|
||||
|
||||
while True:
|
||||
sm.update()
|
||||
@@ -298,15 +302,17 @@ def locationd_thread(sm, pm, disabled_logs=[]):
|
||||
elif sock == "liveCalibration":
|
||||
localizer.handle_live_calib(t, sm[sock])
|
||||
|
||||
if sm.updated['gpsLocationExternal']:
|
||||
t = sm.logMonoTime['gpsLocationExternal']
|
||||
msg = messaging.new_message('liveLocationKalman')
|
||||
msg.logMonoTime = t
|
||||
if sm.updated['cameraOdometry']:
|
||||
camera_odometry_cnt += 1
|
||||
|
||||
msg.liveLocationKalman = localizer.liveLocationMsg(t * 1e-9)
|
||||
msg.liveLocationKalman.inputsOK = sm.all_alive_and_valid()
|
||||
if camera_odometry_cnt % OUTPUT_DECIMATION == 0:
|
||||
t = sm.logMonoTime['cameraOdometry']
|
||||
msg = messaging.new_message('liveLocationKalman')
|
||||
msg.logMonoTime = t
|
||||
|
||||
pm.send('liveLocationKalman', msg)
|
||||
msg.liveLocationKalman = localizer.liveLocationMsg(t * 1e-9)
|
||||
msg.liveLocationKalman.inputsOK = sm.all_alive_and_valid()
|
||||
pm.send('liveLocationKalman', msg)
|
||||
|
||||
|
||||
def main(sm=None, pm=None):
|
||||
|
||||
Reference in New Issue
Block a user