diff --git a/clearpilot_devqueue_amain.txt b/clearpilot_devqueue_amain.txt index 342a7f2..408d082 100644 --- a/clearpilot_devqueue_amain.txt +++ b/clearpilot_devqueue_amain.txt @@ -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 + diff --git a/clearpilot_settings.txt b/clearpilot_settings.txt index e16c3c2..551d099 100644 --- a/clearpilot_settings.txt +++ b/clearpilot_settings.txt @@ -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 \ No newline at end of file diff --git a/selfdrive/car/hyundai/carstate.py b/selfdrive/car/hyundai/carstate.py index 208b75c..9131e1b 100644 --- a/selfdrive/car/hyundai/carstate.py +++ b/selfdrive/car/hyundai/carstate.py @@ -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 diff --git a/selfdrive/car/hyundai/hyundaicanfd.py b/selfdrive/car/hyundai/hyundaicanfd.py index 6c3bed0..5557988 100644 --- a/selfdrive/car/hyundai/hyundaicanfd.py +++ b/selfdrive/car/hyundai/hyundaicanfd.py @@ -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 = { } diff --git a/selfdrive/clearpilot/theme/clearpilot/images/hot.png b/selfdrive/clearpilot/theme/clearpilot/images/hot.png new file mode 100644 index 0000000..394db39 Binary files /dev/null and b/selfdrive/clearpilot/theme/clearpilot/images/hot.png differ diff --git a/selfdrive/clearpilot/theme/clearpilot/images/hot.png~ b/selfdrive/clearpilot/theme/clearpilot/images/hot.png~ new file mode 100644 index 0000000..0da094c Binary files /dev/null and b/selfdrive/clearpilot/theme/clearpilot/images/hot.png~ differ diff --git a/selfdrive/frogpilot/frogpilot_process.py b/selfdrive/frogpilot/frogpilot_process.py index c3018bf..c6b4dfb 100644 --- a/selfdrive/frogpilot/frogpilot_process.py +++ b/selfdrive/frogpilot/frogpilot_process.py @@ -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() diff --git a/selfdrive/manager/process_config.py b/selfdrive/manager/process_config.py index 37e92a2..c050ca2 100644 --- a/selfdrive/manager/process_config.py +++ b/selfdrive/manager/process_config.py @@ -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), ] diff --git a/selfdrive/monitoring/driver_monitor.py b/selfdrive/monitoring/driver_monitor.py index 44edafa..bf8e974 100644 --- a/selfdrive/monitoring/driver_monitor.py +++ b/selfdrive/monitoring/driver_monitor.py @@ -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 diff --git a/selfdrive/ui/ui.h b/selfdrive/ui/ui.h index 2ddb448..97564e5 100644 --- a/selfdrive/ui/ui.h +++ b/selfdrive/ui/ui.h @@ -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