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
- 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
- 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?
@@ -14,6 +47,9 @@
- set up dash cam recordings
- 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
- if cruise already engaged when boot, just enable lateral
- reengage lateral if changing lanes and changing the wrong way
@@ -28,3 +64,7 @@
- change disk used on sidebar to disk free / percent used
- show distance to lead on dash
- 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?
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:
- Openpilot - On (D), off (all stock)
- Lane Change Assist: None (D), Nudge, Nudgeless
- Always On Lat: OP, Stock, Off. OP: Pause below X mph
- Lane Change Assist: None, No lateral, Nudge, Nudgeless
- 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
- Reduce speed on curves: On (D) / 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)
- Resume from stop on cruise: On (D) / Off
- Increase Speed with lead when Auto
- Speed up / down - toggle match speed to limit
Controls:
- (V2) LKAS button:
- Standard behavior is tap for screen on / off.
- Options:
- 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)
- LKAS button behavior tap / hold
- screen on / off
- cycle info screens
- extended info overlay on/off
Display:
- Display - On, On when engaged, Wireframe with passenger, Off with passenger, Off
- Engagement indicator: Border, small label, icon
- 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:
- Attention Monitor: Strict, (D) Relaxed Daytime / No Lead / Low Traffic, Relaxed (Privledged), Off (Privledged)
- ATN: Strict on unrecognized driver
@@ -49,26 +67,67 @@ Safety & Alerts:
- Lead Departure Warning
- Over Speed Warning
- 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:
- Auto set climate
- Auto close sunroof / windows
- Auto open sunroof shield night / close day
- Auto set "SMART"
- 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:
- (V2) Enable OpenPilot - Always, on recognized driver, off
- (V2) Register recognized driver (requires a bt dongle)
- (V2) Settings lockout pin
- (V2) Dash Cam - Off, retention days, upload endpoint, record gps
- (V2) Metered Wifi Network
- (V2) High BW Wifi Network
- (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
- 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
- Record Canbus
- Show I/O State (overrides driving UI while engaged)
- Test Output
- Reset calibration
- Reset device
- Device Shutdown Timer
- Test OP Canbus functionality (blinkers, disengage, etc)
Advanced:
- Selected frogpilot settings

View File

@@ -285,6 +285,8 @@ class CarState(CarStateBase):
# test if this blocks trying to engage while pressin brakes
if self.main_buttons[-1] != 0 and ret.brakePressed and self.main_enabled == False:
self.main_buttons[-1] = 0
# Suprisingly this works. Test with op long and submit.
# But enable always on lateral if self.main_enabled = false
# I think this may require an override variable?
# 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)
# Disabled blinker messages
def create_spas_messages(packer, CAN, frame, left_blink, right_blink):
ret = []
return ret
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
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()
pm = messaging.PubMaster(['frogpilotPlan'])
@@ -93,37 +90,15 @@ def frogpilot_thread():
sm['liveLocationKalman'], sm['modelV2'], sm['radarState'])
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:
time_validated = system_time_valid()
if not time_validated:
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)
def main():
frogpilot_thread()

View File

@@ -100,7 +100,7 @@ procs = [
# FrogPilot processes
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),
]

View File

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

View File

@@ -36,7 +36,7 @@ typedef enum UIStatus {
const float CENTER_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;
// Clearpilot custom colors
@@ -44,7 +44,7 @@ const QColor bg_colors [] = {
[STATUS_DISENGAGED] = QColor(0x17, 0x33, 0x49, 0xc8),
[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_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_EXPERIMENTAL_ACTIVE] = QColor(201, 41, 204, 0xd1), // Magenta
[CENTER_LANE_COLOR] = QColor(150, 150, 150, 0xd1), // Gray