This commit is contained in:
Your Name
2024-05-08 23:06:12 -05:00
parent f8e3d83cda
commit 013dae2443
10 changed files with 132 additions and 55 deletions

View File

@@ -1,5 +1,38 @@
- Test if activation fix works for op long, submit to frog maintain
- no lateral on turn signal - only enforce if model curvature > 10 degrees, hands on wheel, or wheel override (maybe curve not necessary?)
- disable all turn signal output commands - they are causing issues
- test "create_acc_cancel" on canfd on cc engaged on boot
- work on /data/userspace/qtwaylandbuild/qt5 and see if we can get it to include webview
- try extract boot image, maybe we can replace the boot logo
- Test and fix activation on button + brakes - Test and fix activation on button + brakes
- Create clearpilot process. manages behaviors.
- experiment with reduced jerk values
- if thermal warning on dash, do ghost on a beach with sun image until cooled down
- test toggle stop all canbus output
- make functions
--- get_curvature
--- get_wheel_angle
--- get_distance_to_left_lane
--- get_distance_to_right_lane
--- distance traveled for lane change
behaviors:
- lane change wrong way reenable lateral
- blinker signal wheel angle minor enable lateral
- wheel angle sharp only engage lateral if over lane edge unless hands not on wheel
- debug mode activated bu lkas
- If possible, debug what happened to frogpilot process on may 4th - If possible, debug what happened to frogpilot process on may 4th
- See where disk free is going with NCDU and add smarter log rotation - See where disk free is going with NCDU and add smarter log rotation
- Maybe this has logs where it could show what happened to frogpilot process? - Maybe this has logs where it could show what happened to frogpilot process?
@@ -14,6 +47,9 @@
- set up dash cam recordings - set up dash cam recordings
- disable dash cam and record in real logger mode if debug mode is entered - disable dash cam and record in real logger mode if debug mode is entered
- Integrate here maps api for traffic data
- maybe even speed limit data? and location data?
- write a debug function for python that cats data to a screen terminal and optionally a log file - write a debug function for python that cats data to a screen terminal and optionally a log file
- if cruise already engaged when boot, just enable lateral - if cruise already engaged when boot, just enable lateral
- reengage lateral if changing lanes and changing the wrong way - reengage lateral if changing lanes and changing the wrong way
@@ -28,3 +64,7 @@
- change disk used on sidebar to disk free / percent used - change disk used on sidebar to disk free / percent used
- show distance to lead on dash - show distance to lead on dash
- warn if lead is going more than 30 under my speed or 20 if auto mode is off - warn if lead is going more than 30 under my speed or 20 if auto mode is off
- mark os version different than release, forcing a os reinstall
- no prompt on os reinstall

View File

@@ -12,31 +12,49 @@ Today:
- Can I get a web ui running? - Can I get a web ui running?
Settings Design: Settings Design:
Main: Main: Basic curated settings:
- Enable openpilot
- Enable dashcam
- Driving assist when cruise control not engaged
- Reduce speed on curves
- Hold speed for auto speed limit
- Speed limit offset
- Lane change assist on / off (off = pause on lane change)
- LKAS button behavior
- Reset all other settings to defaults
- Require steering wheel Always / At Night / Never
Driving: Driving:
- Openpilot - On (D), off (all stock) - Openpilot - On (D), off (all stock)
- Lane Change Assist: None (D), Nudge, Nudgeless - Lane Change Assist: None, No lateral, Nudge, Nudgeless
- Always On Lat: OP, Stock, Off. OP: Pause below X mph - Op Long / Button Spam Long / Stock Long
- Always On Lat: OP, Stock, Off. OP: Pause below X mph, OP: Except when wheel not turning
- Auto Stock Lat: Cruise Off + Wheel, Off - Auto Stock Lat: Cruise Off + Wheel, Off
- Reduce speed on curves: On (D) / Off - Reduce speed on curves: On (D) / Off
- (V2) Hold speed on lane change: On / Off - (V2) Hold speed on lane change: On / Off
- Resume from stop on cruise: On (D) / Off
- Auto Speed Offsets - (make display green when speed matches mph) - Auto Speed Offsets - (make display green when speed matches mph)
- Resume from stop on cruise: On (D) / Off
- Increase Speed with lead when Auto - Increase Speed with lead when Auto
- Speed up / down - toggle match speed to limit - Speed up / down - toggle match speed to limit
Controls: - LKAS button behavior tap / hold
- (V2) LKAS button: - screen on / off
- Standard behavior is tap for screen on / off. - cycle info screens
- Options: - extended info overlay on/off
- Tap: for on / off, on / wireframe / off, on / weather / off, op lat, stock lat, no lat, match speed, toggle auto speed
- Hold: Same ^
- Info buttons:
- (Depends on what i can input / output on info bus)
Display: Display:
- Display - On, On when engaged, Wireframe with passenger, Off with passenger, Off - Display - On, On when engaged, Wireframe with passenger, Off with passenger, Off
- Engagement indicator: Border, small label, icon - Engagement indicator: Border, small label, icon
- Parked: Weather, trip stats / map, static image, off - Parked: Weather, trip stats / map, static image, off
- Boot Icon: Comma, clearpilot, pacman, car make, custom, off - Boot Icon: Comma, clearpilot, pacman, car make, custom, off'
- Info in overlay or large status bar
- Info screens (enable in transit, stopped):
- Colors for lines on display
--- Settings: Hold time (time to reset), default screen
--- Weather (hourly forecast, radar)
--- World map
--- Drive info (curvature, speed, speed to lead, etc)
--- System info (temp, space, system load, connectivity)
--- Debug info (data read from canbus, button states)
--- Generic logo
--- Screen off
Safety & Alerts: Safety & Alerts:
- Attention Monitor: Strict, (D) Relaxed Daytime / No Lead / Low Traffic, Relaxed (Privledged), Off (Privledged) - Attention Monitor: Strict, (D) Relaxed Daytime / No Lead / Low Traffic, Relaxed (Privledged), Off (Privledged)
- ATN: Strict on unrecognized driver - ATN: Strict on unrecognized driver
@@ -49,26 +67,67 @@ Safety & Alerts:
- Lead Departure Warning - Lead Departure Warning
- Over Speed Warning - Over Speed Warning
- Weather alerts - Weather alerts
- Enable / Disable UI elements
--- MPH
--- Location
--- GPS, Wifi connectivity on
--- GPS, Wifi connectivity off
--- Experimental MPH
--- Distance to lead
--- Speed for lead
--- Current speed limit
Car: Car:
- Auto set climate - Auto set climate
- Auto close sunroof / windows - Auto close sunroof / windows
- Auto open sunroof shield night / close day - Auto open sunroof shield night / close day
- Auto set "SMART" - Auto set "SMART"
- Auto set UI MPH - Auto set UI MPH
Recording:
- Record routes
- Record dashcam
- Show dashcam recording blinking
- Record passenger camera (requires blinking)
- Record passenger audio (requires mic, requires notice)
- Serve on wifi
- Upload on wifi
System: System:
- (V2) Enable OpenPilot - Always, on recognized driver, off - (V2) Enable OpenPilot - Always, on recognized driver, off
- (V2) Register recognized driver (requires a bt dongle) - (V2) Register recognized driver (requires a bt dongle)
- (V2) Settings lockout pin - (V2) Settings lockout pin
- (V2) Dash Cam - Off, retention days, upload endpoint, record gps
- (V2) Metered Wifi Network - (V2) Metered Wifi Network
- (V2) High BW Wifi Network - (V2) High BW Wifi Network
- (V2) Hotspot (select secondary wifi) - (V2) Hotspot (select secondary wifi)
- Clearpilot base (set a url / access token for server control)
--- Provides:
--- Settings backup / restore
--- Settings lockout
--- File overrides (beat the monitor)
--- Current location / image
--- Dashcam recordings
--- Route history
--- SSH tunnel
--- Debugger console
- Wifi Settings - Wifi Settings
- SSH Access -- No bandwidth limit networks
-- Bandwidth limited networks
-- Hotspot device / network (requires external dongle)
- Bluetooth setting (requires external dongle)
-- Pair a keypad
-- Emulate a device for tasker automations
- SSH Access (get rid of the github model)
- Device Shutdown Timer
- Override temp warnings
Tools:
- Reset calibration
- Update software
- Switch branches
- Reboot clearpilot
- Reset clearpilot
- Uninstall clearpilot
- Canbus tools - Canbus tools
- Record Canbus - Record Canbus
- Show I/O State (overrides driving UI while engaged) - Show I/O State (overrides driving UI while engaged)
- Test Output - Test Output
- Reset calibration - Test OP Canbus functionality (blinkers, disengage, etc)
- Reset device Advanced:
- Device Shutdown Timer - Selected frogpilot settings

View File

@@ -285,6 +285,8 @@ class CarState(CarStateBase):
# test if this blocks trying to engage while pressin brakes # test if this blocks trying to engage while pressin brakes
if self.main_buttons[-1] != 0 and ret.brakePressed and self.main_enabled == False: if self.main_buttons[-1] != 0 and ret.brakePressed and self.main_enabled == False:
self.main_buttons[-1] = 0 self.main_buttons[-1] = 0
# Suprisingly this works. Test with op long and submit.
# But enable always on lateral if self.main_enabled = false # But enable always on lateral if self.main_enabled = false
# I think this may require an override variable? # I think this may require an override variable?
# It looks like always on lat is only set when cruise control is enabled # It looks like always on lat is only set when cruise control is enabled

View File

@@ -169,9 +169,10 @@ def create_acc_control(packer, CAN, enabled, accel_last, accel, stopping, gas_ov
return packer.make_can_msg("SCC_CONTROL", CAN.ECAN, values) return packer.make_can_msg("SCC_CONTROL", CAN.ECAN, values)
# Disabled blinker messages
def create_spas_messages(packer, CAN, frame, left_blink, right_blink): def create_spas_messages(packer, CAN, frame, left_blink, right_blink):
ret = [] ret = []
return ret
values = { values = {
} }

Binary file not shown.

After

Width:  |  Height:  |  Size: 35 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

View File

@@ -65,9 +65,6 @@ def frogpilot_thread():
CP = None CP = None
automatic_updates = params.get_bool("AutomaticUpdates")
first_run = True
model_list_empty = params.get("AvailableModelsNames", encoding='utf-8') is None
time_validated = system_time_valid() time_validated = system_time_valid()
pm = messaging.PubMaster(['frogpilotPlan']) pm = messaging.PubMaster(['frogpilotPlan'])
@@ -93,37 +90,15 @@ def frogpilot_thread():
sm['liveLocationKalman'], sm['modelV2'], sm['radarState']) sm['liveLocationKalman'], sm['modelV2'], sm['radarState'])
frogpilot_planner.publish(sm, pm) frogpilot_planner.publish(sm, pm)
if params_memory.get("ModelToDownload", encoding='utf-8') is not None and github_pinged():
download_model()
if params_memory.get_bool("FrogPilotTogglesUpdated"):
automatic_updates = params.get_bool("AutomaticUpdates")
if not params.get_bool("ModelSelector"):
params.put("Model", DEFAULT_MODEL)
params.put("ModelName", DEFAULT_MODEL_NAME)
if started:
frogpilot_planner.update_frogpilot_params()
else:
frogpilot_functions.backup_toggles()
if not time_validated: if not time_validated:
time_validated = system_time_valid() time_validated = system_time_valid()
if not time_validated: if not time_validated:
continue continue
if datetime.datetime.now().second == 0 or first_run or model_list_empty or params_memory.get_bool("ManualUpdateInitiated"):
if not started or model_list_empty:
time_checks(automatic_updates, deviceState, params)
model_list_empty = params.get("AvailableModelsNames", encoding='utf-8') is None
theme_manager.update_holiday()
first_run = False
time.sleep(DT_MDL) time.sleep(DT_MDL)
def main(): def main():
frogpilot_thread() frogpilot_thread()

View File

@@ -100,7 +100,7 @@ procs = [
# FrogPilot processes # FrogPilot processes
PythonProcess("fleet_manager", "selfdrive.frogpilot.fleetmanager.fleet_manager", always_run), PythonProcess("fleet_manager", "selfdrive.frogpilot.fleetmanager.fleet_manager", always_run),
# PythonProcess("frogpilot_process", "selfdrive.frogpilot.frogpilot_process", always_run), PythonProcess("frogpilot_process", "selfdrive.frogpilot.frogpilot_process", always_run),
PythonProcess("mapd", "selfdrive.frogpilot.navigation.mapd", always_run), PythonProcess("mapd", "selfdrive.frogpilot.navigation.mapd", always_run),
] ]

View File

@@ -30,12 +30,12 @@ class DRIVER_MONITOR_SETTINGS():
# Goals: # Goals:
# - Temp only if daytime and privledged # - Temp only if daytime and privledged
# - Continuously lower speed if in crit state # - Continuously lower speed if in crit state
self._AWARENESS_TIME = 50. # passive wheeltouch total timeout self._AWARENESS_TIME = 30. # passive wheeltouch total timeout
self._AWARENESS_PRE_TIME_TILL_TERMINAL = 30. self._AWARENESS_PRE_TIME_TILL_TERMINAL = 20.
self._AWARENESS_PROMPT_TIME_TILL_TERMINAL = 10. self._AWARENESS_PROMPT_TIME_TILL_TERMINAL = 14.
self._DISTRACTED_TIME = 50. # active monitoring total timeout self._DISTRACTED_TIME = 30. # active monitoring total timeout
self._DISTRACTED_PRE_TIME_TILL_TERMINAL = 30. self._DISTRACTED_PRE_TIME_TILL_TERMINAL = 24.
self._DISTRACTED_PROMPT_TIME_TILL_TERMINAL = 10. self._DISTRACTED_PROMPT_TIME_TILL_TERMINAL = 14.
self._FACE_THRESHOLD = 0.7 self._FACE_THRESHOLD = 0.7
self._EYE_THRESHOLD = 0.65 self._EYE_THRESHOLD = 0.65

View File

@@ -36,7 +36,7 @@ typedef enum UIStatus {
const float CENTER_LANE_ALPHA = 0.75; const float CENTER_LANE_ALPHA = 0.75;
const float OTHER_LANE_ALPHA = 0.75; const float OTHER_LANE_ALPHA = 0.75;
const int CENTER_LANE_WIDTH = 75; const int CENTER_LANE_WIDTH = 70;
const int OTHER_LANE_WIDTH = 16; const int OTHER_LANE_WIDTH = 16;
// Clearpilot custom colors // Clearpilot custom colors
@@ -44,7 +44,7 @@ const QColor bg_colors [] = {
[STATUS_DISENGAGED] = QColor(0x17, 0x33, 0x49, 0xc8), [STATUS_DISENGAGED] = QColor(0x17, 0x33, 0x49, 0xc8),
[STATUS_OVERRIDE] = QColor(94, 112, 255, 0xd1), // When you nudge the steering wheel while engaged [STATUS_OVERRIDE] = QColor(94, 112, 255, 0xd1), // When you nudge the steering wheel while engaged
[STATUS_ENGAGED] = QColor(94, 112, 255, 0xd1), // Bright Blue [STATUS_ENGAGED] = QColor(94, 112, 255, 0xd1), // Bright Blue
[STATUS_ALWAYS_ON_LATERAL_ACTIVE] = QColor(143, 204, 235, 0xd1), // Lighter Blue [STATUS_ALWAYS_ON_LATERAL_ACTIVE] = QColor(0, 0, 255, 0xd1), // True Blue
[STATUS_TRAFFIC_MODE_ACTIVE] = QColor(0xc9, 0x22, 0x31, 0xd1), // ? unused? [STATUS_TRAFFIC_MODE_ACTIVE] = QColor(0xc9, 0x22, 0x31, 0xd1), // ? unused?
[STATUS_EXPERIMENTAL_ACTIVE] = QColor(201, 41, 204, 0xd1), // Magenta [STATUS_EXPERIMENTAL_ACTIVE] = QColor(201, 41, 204, 0xd1), // Magenta
[CENTER_LANE_COLOR] = QColor(150, 150, 150, 0xd1), // Gray [CENTER_LANE_COLOR] = QColor(150, 150, 150, 0xd1), // Gray