port clearpilot gpsd; decouple self-driving from GPS
Adds the AT-command-based GPS daemon for the Quectel EC25 modem (the device has no u-blox chip and qcomgpsd's diag interface hangs on this hardware). Trimmed from broken's version: dropped cloudlog calls and the IsDaylight / ScreenDisplayMode auto-switching (those belong to the display-modes feature, port later). Used solely for system clock initialization, on-screen UI speed, and per-segment dashcam GPS metadata. Self-driving must NOT consume gpsLocation — feeding it to locationd's kalman filter screws up the math. Patch locationd to skip GPS: - locationd_thread() no longer subscribes to gpsLocation/gpsLocationExternal - handle_msg's GPS branches commented (dead code without subscription) - the "save LastGPSPosition once a minute when gpsOK" block commented (dead because gpsOK is now permanently false) Result: liveLocationKalman.gpsOK = false for all self-driving consumers (controlsd, paramsd, torqued, frogpilot_planner). They already handle that case. Other liveLocationKalman fields still publish from the camera-odometry + IMU + calibration kalman state. system/clearpilot/__init__.py added so system.clearpilot.gpsd is a valid Python module.
This commit is contained in:
@@ -82,6 +82,10 @@ procs = [
|
||||
PythonProcess("deleter", "system.loggerd.deleter", always_run),
|
||||
PythonProcess("dmonitoringd", "selfdrive.monitoring.dmonitoringd", driverview, enabled=(not PC or WEBCAM)),
|
||||
# PythonProcess("qcomgpsd", "system.qcomgpsd.qcomgpsd", qcomgps, enabled=TICI), # Fixme
|
||||
# CLEARPILOT: replacement for qcomgpsd (whose diag interface is broken on this device).
|
||||
# Uses Quectel modem AT commands via mmcli. Self-driving does NOT consume this; locationd
|
||||
# is patched to skip gpsLocation. Used only for system clock + UI speed + dashcam metadata.
|
||||
PythonProcess("gpsd", "system.clearpilot.gpsd", qcomgps, enabled=TICI),
|
||||
# PythonProcess("ugpsd", "system.ugpsd", only_onroad, enabled=TICI),
|
||||
#PythonProcess("navd", "selfdrive.navd.navd", only_onroad),
|
||||
PythonProcess("pandad", "selfdrive.boardd.pandad", always_run),
|
||||
|
||||
Reference in New Issue
Block a user