* init dec
* Update sunnypilot/selfdrive/controls/lib/dynamic_experimental_controller.py
Co-authored-by: sourcery-ai[bot] <58596630+sourcery-ai[bot]@users.noreply.github.com>
* Update sunnypilot/selfdrive/controls/lib/dynamic_experimental_controller.py
Co-authored-by: sourcery-ai[bot] <58596630+sourcery-ai[bot]@users.noreply.github.com>
* fix static test
* ff
* fix static test
* unitee testt
* Refactor test_dynamic_controller and fix formatting issues
Added a new import for STOP_AND_GO_FRAME and corrected a float initialization for v_ego in MockCarState. Also fixed indentation in the test_standstill_detection method for consistency.
* Refactor test indentation for dynamic controller tests
Adjust indentation and formatting in test_dynamic_controller.py to ensure consistency and readability. This change does not alter functionality but improves the maintainability of the test code.
* Migrated to pytest using claude
* Integrate radar parameter into dynamic controller's pytest tests
Added a `has_radar` parameter to the test functions in the dynamic controller's pytest file. This allows each function to run both with and without radar inputs, thus enhancing the coverage of our test cases.
* Disabling unittest file to allow checks on the pipeline to succeed.
Pending to remove this, but leaving it to validate the move to pytest is okay before merging
* Replace unittest with pytest for dynamic controller tests
Migrated dynamic controller tests from unittest to pytest for improved readability and maintainability. Refactored mock setup using pytest fixtures and monkeypatching while preserving test coverage.
* new line...
* Refactor and modularize DynamicExperimentalController logic
Moved DynamicExperimentalController logic and helper functions to a dedicated module for better readability and maintainability. Simplified longitudinal planner logic by introducing reusable methods to manage MPC mode and longitudinal plan publishing. Adjusted file structure for dynamic controller-related components and updated relevant imports.
* Add missing import for messaging in helpers.py
The `messaging` module was added to resolve potential issues with undefined references. This change ensures all required imports are present, improving the reliability and maintainability of the code.
* Format
* Formatting
* rebase fix
* Refactor MpcSource definition and update references.
Moved MpcSource enum into LongitudinalPlanSP for better encapsulation. Updated references in helpers.py to use the new path. This change improves code organization and maintains functionality.
* Format
* Refactor DEC into a dedicated longitudinal planner class
Move Dynamic Experimental Control (DEC) logic to a new `DecLongitudinalPlanner` class for better modularity and maintainability. This simplifies the `LongitudinalPlanner` by delegating DEC-specific behavior and consolidates related methods into a single file. Additionally, redundant code was removed to improve readability and reduce complexity.
* **Refactor DEC module structure for better organization**
Moved DEC-related files from `dec` to `lib` for improved clarity and consistency within the project structure. Updated all relevant import paths to reflect the new locations. Ensured functionality remains unaffected with these changes.
* static test
* static
* had moved to car_state
* cleanup
* some more
* static method
* move around
* more cleanup
* stuff
* into their own
* rename
* check live param
* sync with stock
* type hint
* unused
* smoother trans
* window time
* fix type hint
* pass sm.frame from plannerd
* more fixes
* more
* more explicit
* fix test
* Revert "fix test"
This reverts commit 635b15f2bc.
* Revert "pass sm.frame from plannerd"
This reverts commit a8deaa69b8.
* use internal frame
* update name
* never used
* this is why it was never using DEC
* more logs
* slight cleanup
* remove to fail test
* update name
* more
* rename
* move around
* explicit type hints
* move to constants py
* Revert "explicit type hints"
This reverts commit c205497b
* more
* don't set to exp mode initial if DEC is active
* use walrus for None
* Revert "use walrus for None"
This reverts commit 5f2396d490.
* fix wrong typing and variable name
* use walrus (needs cleanup)
* fix tests
* revert smooht lead for now
* dec: how good is FirstOrderFilter?
* Update dec.py
* dec: faster ?
* Revert "dec: faster ?"
This reverts commit 40259cd22a.
* Revert "Update dec.py"
This reverts commit 3f29ccbd99.
* Revert "dec: how good is FirstOrderFilter?"
This reverts commit 01e06df542.
* Update slow-down logic and constants for improved behavior
Adjust the slowdown scaling factor and anomaly handling to refine behavior without abrupt resets. Modify constants to increase window size and adjust probabilities and distances for smoother adaptation. Update version to reflect the new changes.
* Fix lead detection fallback for weighted average check.
Add a fallback value of -1 when computing the weighted average to prevent errors caused by invalid or None values. This ensures robust lead detection and avoids potential crashes or undefined behavior.
* visuals for DEC
* try this
* add opacity
* should be active and dimmer
* even dimmer
* Update dec.py
* Update constants.py
* use another method for drawing
* migrate to sp only
* fix
* init
---------
Co-authored-by: rav4kumar <meetkumardesai@gmail.com>
Co-authored-by: Kumar <36933347+rav4kumar@users.noreply.github.com>
Co-authored-by: sourcery-ai[bot] <58596630+sourcery-ai[bot]@users.noreply.github.com>
Co-authored-by: DevTekVE <devtekve@gmail.com>
* Misc fixes
* don't check allow_throttle slowdown for e2e
* Removed unused variable
* believe this clip is still necessary
* Update process replay refs
---------
Co-authored-by: Bruce Wayne <harald.the.engineer@gmail.com>
* long planner: use vehicle model w/ avg steer offset for limit accel in turns
* remove unused CP in limit_accel_in_turns
* revert use of vehicle model, keeping angle offset in limit accel in turns
* only the offset fix, check valid, and fix process replay
* update refs (valid two frames later)
---------
Co-authored-by: Shane Smiskol <shane@smiskol.com>
* Deprecate controlsState state fields
* sim works
* update refs
* one more
* these too
* update sim
old-commit-hash: 3924ac587b735d1e735af4cb77faf6ccf053f656
* Move vCruise to card
* cleanup drive_helpers
* works in sim
* update refs
* update that
* too slow :(
old-commit-hash: 2f3256ed8baa3d7a5c4d1befe9148dbfecb37246
* move most of /car
* move some car tests
move some car tests
* fix selfdrive/car/tests
* fix selfdrive/controls tests
* fix the rest of the selfdrive tests
* bump opendbc
* fix all tests
* few more non-test references
* remove opcar and move docs to car
fix these debugging scripts
fix docs
* bump opendbc and panda
forgot panda
old-commit-hash: e735a7f379
* Simplify long control
* Seperate
* Rename
* Try new api for toyota
* rm v_pid everywhere
* No speed in reset
* 0 is better default
* unassigned variable
* Update other cars
* Update gm
* SIMPLIFY
* simplify more
* fix API boundry
* Fix stopping bug
* Small fixes
* Update ref
old-commit-hash: bc303df6a0
* start at param
* start by sending personality
* change to personality
* POC: button changes personality
* what's wrong with this?
* fix
* not really possible but fuzzy test catches this
* there's always a typo
* dang, we're dropping messages
* clean up
* no comment
* bump
* rename
* not all cars yet
* works but at what cost
* clean up
* inside settings
* write param so we save the distance button changes
* setChecked activates buttonToggled and already writes param!
* don't need this, we update from longitudinalPlan on changes
* some clean up
* more
* ui
* allow some time for ui to receive and write param
* plannerd: only track changes in case no ui
* Revert "plannerd: only track changes in case no ui"
This reverts commit 2b081aa6ceb92c67a621b74592b2292756d29871.
* write in plannerd as well, I assume this is atomic?
* don't write when setting checked (only user clicks)
* better nane
* more
* Update selfdrive/controls/lib/longitudinal_planner.py
Co-authored-by: Cameron Clough <cameronjclough@gmail.com>
* doesn't write param now
* ParamWatcher is nice
* no debug
* Update translations
* fix
* odd drain sock proc replay behavior
* vanish
* Revert "odd drain sock proc replay behavior"
This reverts commit 29b70b39413e1852bb512155af6b6a94a5bd9454.
* add GM
* only if OP long
* move personality to controlsState, since eventually it won't be exclusive to long planner
more
bump
* diff without translations
* fix
* put nonblocking
* CS should start at up to date personality always (no ui flicker)
* update toggle on cereal message change
* fix
* fix that
* ubmp
* mypy doesn't know this is an int :(
* update translations
* fix the tests
* revert ui
* not here
* migrate controlsState
* Revert "migrate controlsState" - i see no reason we need to test with
any specific personality
This reverts commit 6063508f2df1a5623f113cda34dcd59a1f4b2ac9.
* Update ref_commit
---------
Co-authored-by: Cameron Clough <cameronjclough@gmail.com>
old-commit-hash: 29e55f99a5
* WIP try modeld all in python
* fix plan
* add lane lines stds
* fix lane lines prob
* add lead prob
* add meta
* simplify plan parsing
* add hard brake pred
* add confidence
* fix desire state and desire pred
* check this file for now
* rm prints
* rm debug
* add todos
* add plan_t_idxs
* same as cpp
* removed cython
* add wfd width - rm cpp code
* add new files rm old files
* get metadata at compile time
* forgot this file
* now uses more CPU
* not used
* update readme
* lint
* copy this too
* simplify disengage probs
* update model replay ref commit
* update again
* confidence: remove if statemens
* use publish_state.enqueue
* Revert "use publish_state.enqueue"
This reverts commit d8807c8348338a1f773a8de00fd796abb8181404.
* confidence: better shape defs
* use ModelConstants class
* fix confidence
* Parser
* slightly more power too
* no inline ifs :(
* confidence: just use if statements
old-commit-hash: cad17b1255
* first draft copy, needs updates
* gate behind exp mode
* can be one line
* this is no longer true
* toggle isn't just e2e long now, rename
* don't enable/disable
* kinda works!
* remove old giant qstring
* comment clean up
* similar breakpoint
* more clean up
* fixup onroad
* preserve planner behavior, and we don't need to look at confirmed param if we're onroad
* update translations
* vanish translations
* use scene for op long
* lowercase!
* updated copy
* need to check longitudinal here now too
* clean up!
* here is better
* used
* no nav emoji
* don't check param if not valid
* revert this
revert this
* ed
old-commit-hash: f973d605b2
* calibrate speed in the lateral planner
* make speed err helper fn
* check if trans has values
* clip the vel_err
* update refs
old-commit-hash: a599890fed
* 10s lat
* Full length MPC
* redfine N
* Leave controls the same for now
* Updates
* use long plan in lat plan
* interp plan
* simplergit add selfdrive/controls/plannerd.py selfdrive/controls/
* expand to 10s
* revert this
* fix linter
* vizualize
* fix long test
* typo
* cleanup
* compiles
* unused
* unused
* bump cereal
* bump cereal
* use model if no uiplanm
* update replay
* update ref commit
* bump cereal to master
old-commit-hash: eb8bdc0026
* test with forceDecel
* test all combos
* fix
* fix
* fix
* ...
* remove print
* clean up
* just set cruise to 0
* update ref commit
Co-authored-by: Bruce Wayne <harald.the.engineer@gmail.com>
old-commit-hash: b45dda2d0a