* personality-alerts
* Update events.py
* Update car.capnp
* no AudibleAlert
* shorter
* no VisualAlert
* one liner
* smaller
* normal
* what am I doing wrong?
* it works, but is it messy?
* arg all
* lil more
* update that
---------
Co-authored-by: Adeeb Shihadeh <adeebshihadeh@gmail.com>
* GPS helpers
* Use GPS socket in timed
* Use helper in controlsd
* Use updated and logMonoTime
* Helper type annot
* Not updated
* Increase time threashold
* 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
* ban cereal and msgq
* common too
* do toyota/values.py
* do all fingerprints
* example without builder
* this still works, but no type checking anymore
* stash
* wtf, how does this work
* okay actually not bad
* safe
* epic!
* stash data_structures.py
* some clean up
* hell yeah
* clean up old file
* add to delete
* delete
This reverts commit 90239b7797ace31ee647a2fdbd67e0c3faa98dcf.
* switch more CarParams stuff over
remove unused
* fix car tests by removing cereal! mypy forgets about dataclass if we wrap it :(
* fix this too
* fix this too
* remove more cereal and add some good hyundai tests
* bunch more typing
* override default with 20hz radar
* temp capnp converter helper
* more lateralTuning
* small union replicator is better than what i was trying, and fixes mypy dynamic typing issues
* can keep all this the same now!
* type ret: CarParams, add more missing structs, revert lateralTuning changes (smaller diff!)
* revert more
* get first enum automatically, but ofc mypy doesn't pick up the new metaclass so can't use :(
would have been `CarParams.NetworkLocation()`
* Revert "get first enum automatically, but ofc mypy doesn't pick up the new metaclass so can't use :("
This reverts commit bb28b228becba932052d2fc5a4389784027435b1.
* remove cereal from car_helpers (TODO: caching)
* remove a bunch of temp lines
* use dataclass_transform!
* remove some car.CarParams from the interfaces
* remove rest of car.CarParams from the interfaces
* same which() API
* sort
* from cereal/cache from fingerprinting!
* more typing
* dataclass to capnp helper for CarParams, cached it since it's kinda slow
* (partial) fix process replay fingerprintig for new API
* latcontrollers take capnp
* forgot this
* fix test_models
* fix unit tests
* not here
* VehicleModel and controller still takes capnp CP since they get it from Params()
* fix modeld test
* more fix
* need to namespace to structs, since CarState is both class and struct
* this was never in the base class?!
* clean that up again
* fix import error
fix import error
* cmts and more structs
* remove some more cereal from toyota + convert CarState to capnp
* bruh this was wrong
* replace more cereal
* EventName is one of the last things...
* replace a bunch more cereal.car
* missing imports
* more
* can fix this typing now
* proper toyota+others CS typing!
* mypy can detect return type of CS.update() now
* fix redeclaration of cruise_buttons type
* mypy is only complaining about events now
* temp fix
* add carControl struct
* replace CarControl
i hope there's no circular imports in hyundai's CC
* fine now
* lol this was wrong too
* fix crash
* include my failed attempts at recursively converting to dataclass (doesn't implicitly convert types/recursively :( )
but attrs does, maybe will switch in the future
* clean up
* try out attr.s for its converter (doesn't work recursively yet, but interesting!)
* Revert "try out attr.s for its converter (doesn't work recursively yet, but interesting!)"
This reverts commit ff2434f7bbd45a4d4bfb21f7d6712d1f1c3bcde9.
* test processes doesn't fail anymore (on toyota)!
* fix honda crash
* stash
* Revert "stash"
This reverts commit c1762af4e776790e4ad1322ad4ce0610157346e0.
* remove a bunch more cereal!
* LET'S GOOO
* fix these tests
* and these
* and that
* stash, something is wrong with hyundai enable
* Revert "stash, something is wrong with hyundai enable"
This reverts commit 39cf327def258e2959fe23cd7a550a858f6d8f03.
* forgot these
* remove cereal from fw_versions
* Revert "remove cereal from fw_versions"
This reverts commit 232b37cd409b55d04b1afc90d4a80c49e710eb56.
* remove rest of the cereal exceptions!
* fix that
* add typing to radard since I didn't realize RI.update() switched from cereal to structs
* and here too!
* add TODO for slots
* needed CS to be capnp, fix comparisons, and type hint car_specific so it's easier to catch type issues (capnp isn't detected by mypy :( )
* remove the struct converter
* save ~4-5% CPU at 100hz, we don't modify after so no need to deepcopy
btw pickle.loads(pickle.dumps()) is faster by ~1% CPU
* deepcopy -> copy: we can technically make a reference, but copy is almost free and less error-prone
saves ~1% CPU
* add non-copying asdict function
* should save ~3% CPU (still 4% above baseline)
* fix that, no dict support
* ~27% decrease in time for 20k iterations on 3X (3.37857 -> 2.4821s)
* give a better name
* fix
* dont support none, capitalize
* sheesh, this called type() on every field
* remove CS.events, clean up
* bump card %
* this was a bug on master!
* add a which enum
* default to pid
* revert
* update refs
* not needed, but consistent
* just Ecu
* don't need to do this in this pr
* clean up
* no cast
* consistent typing
* rm
* fix
* can do this if we're desperate for the last few %
* Revert "can do this if we're desperate for the last few %"
This reverts commit 18e11ac7883a0a56583750b1cc5a2b13011e7299.
* type this
* don't need to convert carControl
* i guess don't support set either
* fix CP type hint
* simplify that
* add opcar
* fix references
* actually better to split this so opendbc will test docs conventions, and openpilot will test diffing
* not exe
* clean up
* use CP
* no car control, consistent _update function signatures
* eh it's fine to name it whatever
* clean up
* oops
* !!
* now we can delete this!
* nobody does anymore
* chrysler down
* honda and ford
* we can pass the class for this
* do the rest
* clean that up
* remove EventName
* fix CI
* move smallest bodies to top
* rm todo
* eps_timer_soft_disable_alert is too ingrained in carcontroller
* re-did everything w/ no diff (except just passing cereal instead of class)
* start
* hmm API doesn't seem great
* better
* rm line
* sendcan -> can_send callable for best static type coverage, list -> tuple msg
TODO: logcan
* more sendcan -> can_send references
* remove pandad's capnp from selfdrive/car
* fix and remove cereal from test_can_fingerprint
* test_fw_fingerprint: remove pandad, less cereal
* comment done too
* better comment
* fix test_models test
* niceeee it works
* move to can_definitions
* can't come up with a better name :(
* I think we can remove SimpleNamespace soon
* fix test_can_fingerprint.py
* maintain previous behavior
* Revert "maintain previous behavior"
This reverts commit f848fd32132391692c6191a305bb38f74091ec91.
* can test comment
* no need for get_one_can now!
* big clean up: no SimpleNamespace
* now self explanatory!
* not needed
* use empty can again since this is now real
* cmt
* content of can packet won't affect can fingerprint time
* remove get_one_can
* fix comment
* actually we still want to be able to send empty can (xx fingerprint func does this if it runs out of msgs)
* fix process replay
* add this
* add this
* nice ...
* 120
* remove
* no remote
* 0
* this
* no submodules
* like this
* try this
* validate
* like this
* split
* pass files
* no par
* check exist
* no build
* fix
* 24.04
* default
* test failure
* continue
* actually fail
* clean
* import
* fix
* line
* mypy
* clean
* simpler
* final
* better
* final clean
* not true
* ban all of common & copy numpy_fast
* add numpy_fast
* these are okay
* and ban controls
* better name
* Conversions
* do utils, kalman
* clean up
* sorting
* don't forget
* ban params too with a callback
* all sorts of messed up
* use cloudlog
* consistent order
* order
* better type hint
* format
* this is a bit nicer
* hmm
* fix PLR1704
* no carvin
* fix process replay
* car logger
* try this
* fix double printing!
* clean up
* need to import where we actually use it (card won't be in submodule)
* NullHandler does not forward everything properly, need propagate=False to stop root logger from printing
* card is staying
* set up
* forward
* all
* right sz
* what is this
* Revert "what is this"
This reverts commit 3ff771926f109452a055dfb61cee06b34e498164.
* ok
* big
* update intrs
* fl
* more specifuc
* fish
* revert
* revert
---------
Co-authored-by: Comma Device <device@comma.ai>
* use new opendbc api
* export pandad_python
* merge master
* merge master
* bump opendbc
* bump opendbc
* improve func
* keep interface unchanged
* fix test_car_interfaces
* bump opendbc
* bump opendbc
* fix test_models
* the interface now has to convert from can capnp to list, so we should include this time
* goes from ~210 to ~240 mean ms real time
* remoe busTime
* lowercase sendcan
* consistent msgtype
* bump
* bump
* not used in lat_mpc
* space
* bump to master
---------
Co-authored-by: Shane Smiskol <shane@smiskol.com>
* Use livePose instead of llk
* Update process replay sockets
* Fix import
* Fix calib
* Fix field name
* Dont store device_from_calib
* Update ref commit
* use zstd in test_onroad
* debug
* now leans towards 0.4 instead of 0.5
* 5x runs
* better
* more
* Update selfdrive/test/test_onroad.py
* revert Jenkinsfile
* and this
* zstd uploader
* fix that
* fix name of function
* comment
* log failed
* fix comma_api_source for routes with both bz2 and zst rlogs
* TODO
* 10-14 achieves almost no benefit on qlogs in a few cases, but takes 2x the time
* these aren't written out
* regen: specify any list of sources
ooh this is pretty nice
* regen and process replay
* damn, actually we don't need all this (cool tho)
Revert "regen: specify any list of sources"
This reverts commit ceb0b4abed9ad463a9fe98d9b98a05875a52806f.
* just let it auto resolve
* fix athenad/uploader tests
* zst here too
* TODOs
* yes
* Revert "TODOs"
This reverts commit 8c7da1dbd0340c72290b5eb5563b642080ddc131.
* Revert "zst here too"
This reverts commit 23b0023ddfd22c8090be7a7caa09e7026a12aa5c.
* Revert "just let it auto resolve"
This reverts commit f296d62424227ad05facc62abc18a6f81b474e84.
* Revert "regen and process replay"
This reverts commit 0768330e96974a42616d229d159780619d049cd0.
* revert readme
* not in save_log either
* lfg
* Revert "lfg"
This reverts commit 3718559c6c4de7d1f0c80dc9f1a1d335fe679a89.
* espActive: `IMMEDIATE_DISABLE` -> `SOFT_DISABLE`
* only stock long
* just soft disable for now
---------
Co-authored-by: Shane Smiskol <shane@smiskol.com>
* Reapply "selfdrive/car: ban imports from external modules" (#32993)
This reverts commit 35a4a773f1.
* controls will just use controls
* also these
* ignore
* improved PlotJuggler layout for lat accel controller
* help estimate steerActuatorDelay
* update Actuator Performance, add Vehicle Dynamics
* disable Y limits on actuator performance because sunny
* apply delay estimation feedback from harald
* gc extra custom series that PJ copied in
* label wordsmithing
* formatting
* function signatures didn't match
* function signatures didn't match
* filtered and raw mean something totally different when it comes to params
filtered and raw mean something totally different when it comes to params
* cmt
* probably better for organization
* add todo
* STASH
* revert some stuff
* clean up
* oof
* how about this
* here
* rename
* revert
* revert this too
* can do this
* ugh inside TorqueBuckets it implicitly limits steer torque to 50%!!!!!!!!
* fix
* move up
* bfg
* filter repo is the new shit
* down to 27M
* move big files to lfs; remove external and phonelibs
* wip - rebase devel; don't delete external and phonelibs anymore
* wip - rebase devel hacks
* wip - rebase devel updates
* wip - rebase updates; lfs updates
* cleaned unused scripts
* wip - lfs fixes
* bfg with rebase with correct dates
* bfg script with cherry-pick method
* latest git-filter-repo analysis
* latest git-filter-repo 'before' analysis
* new lfs import
* latest git-filter-repo analysis
* lfs update; renamed rebase repos
* renamed scripts
* different tmp folders for rewrite scripts; lfs update
* gitattributes after lfs import
* tag-commit-map file with old tags pointing to old commits
* new tags
* final touches
* squash setup commits; cherry-pick validation; reverted to commaai remote
* removed rebase version
* 0.9.7 tag in tag-commit-map
* removed unused openpilot-release-archive
* fixed archive of old history because of 2 GB limit
* archive of old history push master first
* fix tags being deleted
* cleaning and more logs
* rewrite other branches with master history
* Former-commit-id
* updates to previous commits
* cleanup
---------
Co-authored-by: Adeeb Shihadeh <adeebshihadeh@gmail.com>
Co-authored-by: Maxime Desroches <desroches.maxime@gmail.com>
* update ci weekly report summary
* don't add skipped jobs to report
* uncomment job condition
* use jinja template
* add run number to failure links
* add run number to failure links
* Log for run #<num>
* use list
---------
Co-authored-by: Maxime Desroches <desroches.maxime@gmail.com>
* Chrysler Pacifica: combine 2017 and 2018 hybrids
torque params are not accurate for either (might be ~1.5 for both checking a few dongles)
* remove duplicate fingerprints
* combine docs lines
fix
* Increase traversal_limit_in_words to Fix Traversal Limit Errors
* just use log_from_bytes
* come on pycharm
* no free lunch
---------
Co-authored-by: Shane Smiskol <shane@smiskol.com>
* add PR comment with screenshots on ui changes
* fix pr comment if statements
* use default shallow checkout
* use commaai's ci-artifacts
* use my ci-artifacts
* use tj-actions/changed-files
* clean up
* use comma repos
* make ci-artifacts branch openpilot/pr-#
* remove redundent path
* Mini model v2 prototype
* Apply suggestions
* Add meta
* Support for new packet in model
* Support in process replay
* Meta
* Add it to services
* Update model replay
* Add drivingModelData in model_replay
* Update ref
* MAX_FRAMES*3
* No modelv2, but drivingModelData at 2hz
* Polypath
* Dont use keyword
* Update model ref commit
* xyz coeff
* Fix field name
* Update ref commit
* Min qlog size 0.6
---------
Co-authored-by: Comma Device <device@comma.ai>
* count rlogs
* minimization changes
* cache to avoid duplicate checks
* no real point in checking qlogs to just show the warning
---------
Co-authored-by: Shane Smiskol <shane@smiskol.com>
* Rebase ES support
* Update already existing
* Update translations
* Retry
* Updated to new
* Completed
* Fixed clipping words offroad
* Fix up mistakes
* Shortening minute
* Fix long GitHub message
* noble build
* workflow
* symlink
* map only for noble
* sym
* add qt to cppcheck
* cppcheck noreturn in non void funct
* get kaitai header
* kaitai header
* syntax
* try new pyopencl
* try this version
* install lsb-core manually
* support old 20.04 lsb-core
* try arm
* try latest pyopencl
* revert
* use pocl icd
* no lock
* no arm pyopencl
* new intel opencl runtime
* pin filelock
* undo
* glsl version
* new version
* build test
* remove test
* new metadrive
* remove glsl restrictions
* <optional>
* Update .github/workflows/tools_tests.yaml
Co-authored-by: Adeeb Shihadeh <adeebshihadeh@gmail.com>
* cache
* new cache
---------
Co-authored-by: Adeeb Shihadeh <adeebshihadeh@gmail.com>
* internal source list files like azure api
* messy but works
* no limit
* simpler
* clean up
* clean up
* clean up
* that's obvious
* better
* we need to unfortunately return a url, so best to take a naive approach for now
* todo
* fix
* clean up
* 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
* staging api
* other stuff
* ugh this should really not be duplicated, we already check the max segnum in Route class
* better error message!!
* more better
* clean up
* clean up
* breaks again
* Custom setproctitle (#32667)
* add custom setproctitle
* add test
* Update poetry.lock
* fix lint
* support only Linux
* test only Linux
* final lint
* Update test_setproctitle.py
* Update setproctitle.py
* convert to threadnames
* delete proctitles
* Check str len and use PR_GET_NAME
* fix poetry.lock
* lint fix
* Update common/threadname.py
---------
Co-authored-by: reddyn12 <nikhilr.ssm@gmail.com>
Co-authored-by: Adeeb Shihadeh <adeebshihadeh@gmail.com>
* revert that for now
* use last 15
* fix
* use name
* update those
* and modeld
* rm
---------
Co-authored-by: schlimeszn <138847413+schlimeszn@users.noreply.github.com>
Co-authored-by: reddyn12 <nikhilr.ssm@gmail.com>
Co-authored-by: Comma Device <device@comma.ai>
* Loading torque data only once and reusing it across function calls.
* apply review
* still check only one entry
* fix that
---------
Co-authored-by: Shane Smiskol <shane@smiskol.com>
* Tweak carspecs for 2023 (and now also 24) ioniq 6 to reflect public info instead of cloning ioniq 5 specs
* Regenerated car docs
* revert specs *for now*
---------
Co-authored-by: Riley Williams <riley@rileyww.dev>
Co-authored-by: Riley Williams <riley@rileyw.dev>
Co-authored-by: Shane Smiskol <shane@smiskol.com>
* pytest: discover everything in openpilot/
* ignore process replay
* remove --ignore=openpilot/
* ignore directories in root
* remove skip in selfdrive/test/process_replay
* use openpilot directory
* set openpilot directory for test_translations
* omit generated config.py files
* run ci
* cd into openpilot for test_translation
* &&
* remove rm main_test_en command
* remove echo
* increase shm-size to 2G
* remove rm
* test only cpp_files that are test_*.cc~
* add process_replay test skip
* use addopts in pyproject to ignore test_processes
* try --rootdir for pytest
* cleanups / add rootdir in PYTEST env
* add rm create_test_translations
* revert poetry.lock
* simplify
* no regen!
---------
Co-authored-by: Adeeb Shihadeh <adeebshihadeh@gmail.com>
* revert me
* Revert "revert me"
This reverts commit 17d815ddfc9a18f7fb9f39f89ec8b4481389b339.
* duh we have timed!
* clean up
* use clocks
* re-initialize map on SSL handshake failure (time)
* this is fine, takes some time to init
* fix
* log errors like map renderer
* more clean up
full message is "loading style failed: SSL handshake failed"
* MOAR
* we still can't swap the token live
* mbgl has its own retries that never work, don't reinit multiple times at once
* simpler
* more
* whoops
* this works
* fix from merge
* rm
* fix cmt
* only an issue calling the function inside itself
* only pick ecus from brand
* use superset of all requests
* much better
* clean up
* clean up
* try 150
* ?
* ???
* faster debug
* wtf
* no clue
* run push!
* this shouldn't catch it
* clean up
* rm
* finish failure on crossing any line
* update
* standardize queue messages
* update control_command_gen
* fix
* fix logic
* update closing type
* update test
* update logic
* update test
* add out of lane to local
* ci arrive_dest
* pytest integration
* update ci_config
* fix ruff
* move test termination to time
* better
* better order
* curve_len
* add buffer
* cleanup
* cleanup
* cleanup
* cleanup
* out_of_lane
* cleanup
* merge tests
* run 90s
* change test name
* local out of lane detect
* out_of_lane
* static anal
* cleanup
* test_duration
* change setup_class -> setup_create_bridge
* no print state during test
* new out_of_lane detect
* cleanup print in common.py
* fix
* fix
* check distance vs time
* cleanup
* cleanup increase check time
* minimum bridge test time
* wording
* cleanup
* debug: disable FW cache
* Ford: detect missing TJA/LCA config and disable LKAS
* set dashcamOnly
* revert
* clean up
* clean up
* some CAN FD do not have 0x01 block for PSCM
* bump cereal (fork)
* remove confusing comment
* add flags/event
* remove duplicate from events
* copy can be next pr
* dashcamOnly if no config comes back either (this shouldn't happen)
* flipped
* can do this
* Revert "can do this"
This reverts commit c3d311b2ffb7bbc346c7f702ac5c1934bc495c65.
* Revert "flipped"
This reverts commit 75c01fb4c5f7fdc9222ea13b8901f76b5b419c99.
* Revert "dashcamOnly if no config comes back either (this shouldn't happen)"
This reverts commit f82624a0eb28bf683660f86b3ddfd44717a6915f.
---------
Co-authored-by: Shane Smiskol <shane@smiskol.com>
* format card
* standalone process
* no class member CS, there's no point
also can be confusing; what else could be using this?
* rename CoS
* Update selfdrive/controls/controlsd.py
* never works first time :D
* canRcvTimeout is bool
* hack
* add cpu
* see what testing closet comes up with
* first
* some clean up
* support passable CI, fix test models
* fix startup alert
* process replay changes
* test_fuzzy
* gate carOutput valid on carControl valid
* we should publish after we update carOutput
* controlsd was using actuatorsOutput from 2 frames ago for torque, not the most up to date
* check all checks for carControl in case controlsd dies
* log more timestamps
* more generic latency logger; needs some clean up
latency_logger.py was difficult to understand and modify
* card polls on can and carControl to get latest carControl possible
* temp try to send earlier
* add log
* remove latencylogger
* no mpld3!
* old loop
* detect first event
* normal send
* revert "card polls on can and carControl to get latest carControl possible"
how it was is best
* sheesh! update should be first
* first timestamp
* temp comment ( timestamp is slow :( )
* more final ordering, and make polling on/off test repeatable
* Received can
* new plot timestamps
* clean up
* no poll
* add controllers (draft)
* Revert "add controllers (draft)"
This reverts commit e2c3f01b2fadcff74347bac90c8a5cc1ef4e27b3.
* fix that
* conventions
* just use CS
* consider controlsd state machine in card: not fully done
* hmm it's just becoming controlsd
* rm debugging
* Revert "hmm it's just becoming controlsd"
This reverts commit 534a357ee95bec4ed070667186af55d59421bbc7.
* Revert "just use CS"
This reverts commit 9fa7406f30c86200f20457f7b9ff95e731201bf9.
* add vCruise
* migrate car state
* Revert "migrate car state"
This reverts commit 4ae86ca163c6920070f410f608f7644ab632850b.
* Revert "add vCruise"
This reverts commit af247a8da41c3626ada4231b98042da1a1ae4633.
* simple state machine in card (doesn't work as is)
* Revert "simple state machine in card (doesn't work as is)"
This reverts commit b4af8a9b0a2e17fdfc89d344c64678ef51305c24.
* poll carState without conflate
* bump
* remove state transition
* fix
* update refs
* ignore cumLagMs and don't ignore valid
* fix controls mismatch; controlsd used to set alt exp
* controlsd_config_callback not needed for card
* revert ref temp
* update refs
* no poll
* not builder!
* test fix
* need to migrate initialized
* CC will be a reader
* more as_reader!
* fix None
* init after publish like before - no real difference
* controlsd clean up
* remove redundant check and check passive for init
* stash
* flip
* migrate missing carOutput for controlsd
* Update ref_commit
* bump cereal
* comment
* no class params
* no class
* Revert "no class"
This reverts commit 5499b83c2dcb5462070626f8523e3aec6f4c209d.
* add todo
* regen and update refs
* fix
* update refs
* and fix that
* should be controlsstate
* remove controlsState migration
CoS.initialized isn't needed yet
* fix
* flip!
* bump
* fix that
* update refs
* fix
* if canValid goes false, controlsd would still send
* bump
* rm diff
* need to be very careful with initializing
* update refs
* regen
* regen
* update
* undo
* update refs
* fix
* real fix
* test
* test2
* test3
* stash
* Revert "stash"
This reverts commit bf6765f526b48426f49a4b29c4042097f57fc4b0.
* rk.lagging can not be trusted. BODY segment has radarFault while modelV2 is not valid, causing radarState to not be valid
* order
* update refs again
* we never logged carOutput!
* bump
* add back checks
* standardize queue messages
* update control_command_gen
* fix
* fix logic
* update closing type
* qmessagetype -> enum
* update type hint
* old close() makes more sense
* cleanup
* fix
* revert that
* revert that
* better name
* actually this is better
* Revert "card: move all car events (#32427)"
This reverts commit 8f46028bd4.
* keep the event here
* oops
* Revert "oops"
This reverts commit ea99a2768fbeb7a6123dd755585157b530e7a2a1.
* Revert "keep the event here"
This reverts commit ec089b4e1afdf09b2e6b184de8f23584ef931601.
* this star doesn't make sense
* only docs for now
* flip
* fix spotty test_time_to_onroad.py
* better
fix
fix
fix
fix
* already there -_-
* we can fp again
* card: create pedal pressed event (#32393)
* move pedalPressed to card
* rm
* needs to be a builder
* move these
* clean up
* reader later
* Update ref_commit
* moved to card
* Adding demo version for acceleration only
* Adding, plot any event
* Adding dynamic blueprint creation and menu to choose what to plot
* Adding, pool of processes for faster data visualization
* Adding, install rerun if not present
* Adding. thumbnail support
* Refactoring, minor cleanup
* -Use rerun pre-release
-Remove json as a middle format
-Replace recursion with stack-based approach
* Refactoring, using services from cereal instead of hardcoding them
* Use of lr.run_across_segments instead of pool,
Use of python dict instead of capnp objs - better performance
Use LogReader syntax
* Enable logging of liveTracks, pandaStates
* Use of plotjuggler user experience
* Fixing bug in log_msg function
* cleanup
---------
Co-authored-by: savojovic <jovo.savic00@gmail.com>
Co-authored-by: savojovic <74861870+savojovic@users.noreply.github.com>
* move stateless, common car events to car interface
* try to reduce process replay diff a bit
* Revert "try to reduce process replay diff a bit"
This reverts commit b12798deabea67c5a636d6e70e80a3c21c7225ff.
* update refs
* VW: Steer to zero, for large values of zero
* ah, the joy of floating point
* comment, style
* actually fix floating point issue
* follow PlatformConfig refactor
* this check is not useful after PlatformConfig
* don't really need that
* work around docs assert
* little better
* one comment
* update refs
---------
Co-authored-by: Shane Smiskol <shane@smiskol.com>
* Ford: use platform codes to fuzzy fingerprint
TODO: write scripts/tests (print platform codes and version ranges etc.)
May close#31052
* get_platform_codes: fix return type
* add print_platform_codes.py script
* print_platform_codes: sort versions
* match_fw_to_car_fuzzy: use set comprehension, and fix typo
* Ford: add missing Mach-E fw
From the route 83a4e056c7072678/2023-11-13--16-51-33 (which is already
in selfdrive/car/tests/routes.py, added in #30691).
* add ford_fuzzy_fingerprint.ipynb notebook
* get_platform_codes: use regex to parse firmware
* test_ford: test_platform_codes_fuzzy_fw
* test_ford: use get_platform_codes in test_fw_versions
* match_fw_to_car_fuzzy: improve comments
* test_ford: add test_platform_codes_spot_check
* test_ford: add test_match_fw_fuzzy
* remove comment from notebook
* TestFordFW: remove engine ECU FW
* update print_platform_codes.py
* remove part number (unecessary)
* platform codes can just use platform hint and model year - software revision not useful
* fuzzy FP on the platform hint and model year hint range
* fix platform codes test
* update notebook
* add notebook
* explain model year hint better
* test part numbers again
* cleanup notebooks
* remove notebook
* cleanup match_fw_to_car_fuzzy and add comments
* update comment
* .
* Revert "remove notebook"
This reverts commit 5d4ca202f2a23601d5c829204119f36a58f2b451.
* add notebook back
* remove PSCM from PLATFORM_CODE_ECUS
ABS and IPMA are the best for uniquely matching, and the radar is always required
* Revert "remove PSCM from PLATFORM_CODE_ECUS"
This reverts commit b7baeac19c18b5aa0c31da52f12054f4bae6e1ff.
* fix from merge
* more fixes
revert
* FW_RE -> FW_PATTERN
* this can actually be set
* conventions
* just add
* convention
* refactor matcher, this brings it more in line with Hyundai. IMPORTANT NOTE:
NOTE THAT WE remove the separation for the different platform code model year hint ranges, I don't see that being a problem
* better/smaller test
* add test to catch overlapping platform codes
* remove nb
* not now
---------
Co-authored-by: Shane Smiskol <shane@smiskol.com>
* useless
* Revert "useless"
This reverts commit 28f0bb9e9794d60eefba8063b47d8ca113308008.
* this forever hangs you disconnect (or 2 hours)
* same timeout as the global websocket
* Revert "same timeout as the global websocket"
This reverts commit 0bd0cb8a38a3e17960c1fae205311d86a9cf8feb.
* setting the timeout affects the entire websocket and disconnects, not just recv timeout
* fix that
* fix test
* ignore modelV2 and longitudinalPlan on the body to avoid fcw alerts
* move joystick_mode up because ignore depends on it
* revert and ignore fcw itself instead
* Update action that pulls in deprecated version of Node.js
Missed an action that still pulls in a deprecated version of
Node.js, so correct that now.
* Fix another action that pulls in deprecated Node.js
Found another action that needs updating
* it's something
* backup
* 16:10
* cleanup
* this is fine
* close
* remove some junk
* no heck
* disos
* real 10
* for some reason this is flipped
* 20hz
* no return
* ae
* tear
* need curve laster
* correct real gains
* fix time
* cleanup
* why the scam
* disable for now
* 0.7
* hdr
* that doesnt work
* what
* hugeoof
* clean up
* cleanup
* fix regs
* welp cant
* is this corrent
* it is sq
* remove
* back
* stg10bit
* back2ten
* Revert "remove"
This reverts commit 18712ab7e103c12621c929cd0f772ecb9b348247.
* 20hz and swb
* correct height
* 10bit
* ui hack for now
* slight
* perfect
* blk64
* ccm
* fix page faults
* template
* set 4x
* is this fine
* try
* this seems to work
* Revert "this seems to work"
This reverts commit d3c9023d3f14bd9394fed2d6276dba777ed0e606.
* needs to be static
* close
* 64 is optimal
* 2
* take
* not 1
* offset
* whats going on
* i have no idea
* less resistence
* box defs
* no
* reduce blur artifacts
* simplify
* fix
* fake short is too much for bright
* can be subzero
* should not use lsvc
* no wasted bit
* cont no slow
* no less than 10bit
* it is based
* wrong
* right
* quart
* shift
* raise noise floor
* 4.5/4.7
* same ballpark
* int is fine
* shane owes me m4a4
* Revert "shane owes me m4a4"
This reverts commit b4283fee18efebedae628a6cfd926ff1416dcfe5.
* back
* Revert "4.5/4.7"
This reverts commit e38f96e90cb5370bd378f6b66def9e7e3ed0ce5d.
* default
* oof
* clean up
* simpilfy
* from sensorinfo
* no div
* better name
* not the wrong one
* not anymore relevant
* too
* not call it debayer
* cl headers
* arg is 2nd
* gone is is_bggr
* define
* no is hdr
* rgb_tmp
* p1
* clean up
* 4
* cant for
* fix somewhre else
* const
* ap
* rects
* just set staruc
* nnew tmp
* hmm
---------
Co-authored-by: Comma Device <device@comma.ai>
* it's something
* backup
* 16:10
* cleanup
* this is fine
* close
* remove some junk
* no heck
* disos
* real 10
* for some reason this is flipped
* 20hz
* no return
* ae
* tear
* need curve laster
* correct real gains
* fix time
* cleanup
* why the scam
* disable for now
* 0.7
* hdr
* that doesnt work
* what
* hugeoof
* clean up
* cleanup
* fix regs
* welp cant
* is this corrent
* it is sq
* remove
* back
* stg10bit
* back2ten
* Revert "remove"
This reverts commit 18712ab7e103c12621c929cd0f772ecb9b348247.
* 20hz and swb
* correct height
* 10bit
* ui hack for now
* slight
* perfect
* blk64
* ccm
* fix page faults
* template
* set 4x
* is this fine
* try
* this seems to work
* Revert "this seems to work"
This reverts commit d3c9023d3f14bd9394fed2d6276dba777ed0e606.
* needs to be static
* close
* 64 is optimal
* 2
* take
* not 1
* offset
* whats going on
* i have no idea
* less resistence
* box defs
* no
* reduce blur artifacts
* simplify
* fix
* fake short is too much for bright
* can be subzero
* should not use lsvc
* no wasted bit
* cont no slow
* no less than 10bit
* it is based
* wrong
* right
* quart
* shift
* raise noise floor
* 4.5/4.7
* same ballpark
* int is fine
* shane owes me m4a4
* Revert "shane owes me m4a4"
This reverts commit b4283fee18efebedae628a6cfd926ff1416dcfe5.
* back
* Revert "4.5/4.7"
This reverts commit e38f96e90cb5370bd378f6b66def9e7e3ed0ce5d.
* default
* oof
* clean up
* simpilfy
* from sensorinfo
* no div
* better name
* not the wrong one
* not anymore relevant
* too
* not call it debayer
* cl headers
* arg is 2nd
* gone is is_bggr
* define
* no is hdr
* rgb_tmp
* p1
* clean up
* 4
* cant for
* fix somewhre else
* const
* ap
* rects
* just set staruc
* nnew tmp
* pull it for now
* 12
* common rect
* Revert "not anymore relevant"
This reverts commit 1d574673a16cc31b7a255609e07775c3579eef15.
* Revert "too"
This reverts commit c2d4dcc52a859fe799362f9fcc2ffda99b264e50.
* Revert "Revert "too""
This reverts commit 0abbabe1fde51592f1619058638b4ac6a6dee4b3.
* no tol is fine
* rename
* sensor id
* unsgin
* flag
* some linalg
* cast
* should be h ref
* cap
---------
Co-authored-by: Comma Device <device@comma.ai>
* less scripts
* better
* fixes
* naming
* revert
* cleanup
* lets test it
* fix that one
* and rm
* don't run this
* fix
* not here
* revert testing
* fix docs
* default here too
* t
---------
Co-authored-by: Comma Device <device@comma.ai>
* add from 320098ff6c5e4730/2023-04-13--17-47-46
* from a3af9bb0ea9298f4/2024-04-07--10-35-20
* Revert "from a3af9bb0ea9298f4/2024-04-07--10-35-20"
This reverts commit 1bbfa8805891d072986e741296ff2248ab249f23.
* add from 5d8793699017d179/2024-04-16--16-21-14
Honda HR-V 2023 EX-L Mexico plant, US market
* this is that unknown response
* and this is the unknown addr from the og user
* clean up
* consistent order
* update pattern
* Fingerprints: KIA Niro HEV South Korea model
* Update selfdrive/car/hyundai/fingerprints.py
---------
Co-authored-by: Shane Smiskol <shane@smiskol.com>
* Ford: add Ranger 2024 (CAN FD, dashcam only)
* force fingerprint
* debug
* add FW (using debug_fw_fingerprinting_offline)
* add test route
* Revert "debug"
This reverts commit 9d128cb1bbb28fb0cb8da6725c291ebe285e7467.
* Revert "force fingerprint"
This reverts commit 421d92172f354b4713a1371bec9dc9b1bbb6318f.
* update package and finalise steer ratio
"Adaptive Cruise Control with Lane Centering" is part of the Raptor
Standard Equipment Group (i.e. only on the Raptor trim). However,
looking at As-Built/VIN data for Raptor LARIATs show that although Ford
does not advertise it they do come with Lane Centering (the configurator
only says they have ACC with Stop and Go).
ACC with Stop and Go can also be added to the lower XLT trim as part of
the Technology Package, but it is unclear at this point whether that
includes Lane Centering.
The 2021 Ranger had a 17.0 steer ratio. The As-Built data suggests
17/18. PlotJuggler shows the liveParameters.steerRatio between 16.5-17.5
on two short drives.
---------
Co-authored-by: Shane Smiskol <shane@smiskol.com>
* add function signature and behavior comment
* add test
* move chassis codes to platform config!
* add a shared chassis code test
* function
* test matching
* this commit isn't complete yet
* Revert "this commit isn't complete yet"
This reverts commit ae77d5cd54e1f43d390fb70c4da38a95ac34f8da.
* need to check WMI
* TODO: test WMI
* test wmi
* radar FW sanity check
* fix test
* fixes from merge
fixes from merge
* whoops
* fix static analysis!
* do match_fw_to_car
match_fw_to_car takes vin
* makes sense to keep it one function, and we can return exact or fuzzy!
* clean up
* kinda pointless
* fix more tests
* back to function being only fuzzy
* revert test_fw_fingerprint
* revert test_fw_fingerprint
* simplify
* clean up/fixes
* rename test
* less duplicatey WMI descriptions
* fix
* convert to enum
* I am confident about these WMIs
* these are also good
* we support 5N AUS/NZ and NAR (North American) AX Tiguans
fixes
* Tiguan also Mexico
* only one user for caddy
* got from the test route
* check that the gateway type matches the platform (each platform has 1 or 2 types)
* ~gateway~ -> exact FW match
* remove re
* ensure WMIs are set
* actually no reason to delete
* move comment up to the platform config
* proper wmis typing
* spacing
* flip
* add Tiguan NAR (North American Region)
* cars in AUS/NZ (2019+) have first generation chassis code :/
jyoung states true first generation cars should CAN error
* too complex
* Revert "too complex"
This reverts commit 7614bfd466f26cf9b3ebf267f5a2c06d97527496.
* no logging is fine
* EPS is non-essential for exact matching
* fix: returns int instead of bool in cmp function
* fix: usb_serial will not be equal
* refactor: stop using cmp function and instead use tuple of keys
* publish agnos
* test it
* more logging and fix
* remove this for a quick test
* time logging
* revert that
* space
* Revert "test it"
This reverts commit 3b80d97f7d436bc5b2cc29caf6bff1671f7f3f71.
* bump timeout
* build agnos
* include path
* cleanup
* rm this
* test it
* all agnos partitions are AB
* fix that
* correct
* build agnos first
* better temp dir
* revert the order
* try it on pc
* test it
* upload and fix
* build
* pass in environemnt variable
* not in jenkins
* publish in ci
* overwrite
* publish in ci
* fix
* test it
* Revert "test it"
This reverts commit b3de51dc693df79b980d7dffc18bcc3c88d83375.
* use right token
* cleanup after uploading
---------
Co-authored-by: Comma Device <device@comma.ai>
* 2eedcd90-b7db-46cb-86be-740f48ded7ab/700
* noop ciao
* here too
* mapsd too
* update translations
* disable mapsd test from test onroad
* disable mapRenderState test from timings
* lint
* fix exp mode toggle panel
* update tr
* french done
* dont build mapd
* only no nav
* just comment
* deprecate nav fields
* rm not comment
* dont deprecate too much
* remove from services
* merge cereal
* Adding foxglove support, demo version
* Adding image/thumbnail support
* Adding foxglove map support
* Adding foxglove map support
* Updating title in jsonschemas according to rlog attribute names
* Remove shemas folder, add dynamic schema creation
* Update identation to 2 spaces, code refactored
* Fix, jsonToSchema() recursion returns 0 when an empty arr found
* Update, empty arrays data type set to dummy value of type string
* Enable logs download
* Adding foxglove install functionality
* Adding, transform json lists into json obj
* Adding, pip install mcap library
* format it
* Refactoring msg adding to mcap writer by utilizing pool of worker processes
Disabling compression
---------
Co-authored-by: Justin Newberry <justin@comma.ai>
* tar archive instead
* fix
* move this here
* migrate these
* fix this
* update readme
* fix that
* try to build nightly
* Revert "try to build nightly"
This reverts commit 4ea680cb6a1f985c0490168724c99bcb45af9899.
* caexclude is no longer required
* finish up
* sorted
* need this
* and that
* context mnager
* path based
* cabana(DBCFile): VAL_ allow empty description
Even though this doesn't make much sense, we should still be able to
parse it.
* cabana(DBCFile): allow escaped quotemarks in signal comment
* also message comments
* escape/unescape quotes
* test empty val desc
* test generating DBC with escaped quotes in comment
* seperate test case
* fix trailing space
* remove empty val
* trailing whitespace again
* including old data and forks
* CAR.HYUNDAI_SANTA_FE_HEV_2022
* CAR.HYUNDAI_IONIQ
* CAR.HYUNDAI_CUSTIN_1ST_GEN
* CAR.KIA_NIRO_PHEV
* CAR.HYUNDAI_IONIQ_HEV_2022
* CAR.GENESIS_G80
* CAR.KIA_SORENTO
* fix formatting!
* migrate plotjuggler platform for dbc
* test with can
* temp
* Revert "temp"
This reverts commit 9d740bf3bddc8a7833ca8c293a6fb4b692a30bb8.
Revert "test with can"
This reverts commit d6cf2304895d00f83e737f3f749089ce9c5f836e.
* fix test
* mark MULTI as logging
* rm whitelists
* rm MULTI
* major clean up :D
* faster refs :D
* wow this was a broken test (can fd can be without aux, and this allowed eps)
* expected
* only for camera (needs test change)
* Revert "only for camera (needs test change)"
This reverts commit 6156bcd674f856e9a6476277d2b14b14b659f597.
* better msg
* yes we do
* rm from ed882557605319f9
* rm from 310cf131d28b30d8
* rm from e6dd11f4969e1f74
* rm from 145908dabb729ad9
* rm from b938870bef07f799
* rm from b0af2fff166d80fe
* unknown about these, but safe to do this
* rm from 077309a26bf98013
* rm from 01d4ba35f8288743
* rm from b5374bdeea21f5ce
* rm from 979eb0f6c3682a58
* rm from eb5a50f9e98f50b9
* rm from 786fc028c014be71
* rm from 3f77febac29e35d5
* these also unknown, but should be safe
* format!
* test all ecus
* rm from e8421f268ea89d79
* rm from 9d4fa1c83653b90b
* rm from 3f77febac29e35d5
* rm from 979eb0f6c3682a58
* rm from 077309a26bf98013
* rm from ef8d357a38dc4cf2
* these are probably fine
* rm from 54f0bbcb6527012e
* rm from 051378e6086bc3ef
* rm from 561e5f3991916e4b
* rm from 3fd9853538e1bca9
* rm from c8f86b163152d2c5
* rm from 40725113b3e20872
* rm from 3c8bfd637f561f13
* rm from 129db7c75bce8445
* format and test radar
* eps!
* rm from ed882557605319f9
* rm from ffce4a1d578827ee
* rm from 700d37ccd12315cf
* can't find, but probably same
* rm from 15755effe9d073b1
* rm from 5b7caafa7ec1a5cf
* rm from ec07911a91f863f3
* rm from 7627c16a16a6f69b
* rm from 007d5e4ad9f86d13
* rm from 06a3b9e474ce581d
* rm from 22203eb8892a6f28
* rm from ff973b941a69366f
* rm from 3ea622c3c0ec3055
* rm from https://github.com/commaai/openpilot/pull/23517
* rm from b0e1cdf87262c7ad
* old format FW version
* rm from 54f0bbcb6527012e & 4cbcc16b655c1591
* test abs
* format
* only including master data since eps and other ecus were only added in last 60 days
* CAR.HYUNDAI_SANTA_FE_2022
* CAR.GENESIS_G70
* CAR.KIA_K5_2021
* CAR.HYUNDAI_SONATA_HYBRID
* CAR.HYUNDAI_ELANTRA_2021
* CAR.HYUNDAI_ELANTRA_HEV_2021
* CAR.HYUNDAI_SANTA_FE
* CAR.KIA_STINGER
* CAR.KIA_NIRO_PHEV_2022
* slightly more data
* data from forks now
* CAR.GENESIS_G70_2020
* CAR.KIA_NIRO_HEV_2021
* CAR.KIA_FORTE
* CAR.HYUNDAI_IONIQ_PHEV
* CAR.HYUNDAI_KONA_EV_2022
* CAR.KIA_STINGER_2022
* HYUNDAI_KONA_EV
* CAR.KIA_OPTIMA_H_G4_FL
* clean up
* Ford: handle metric cruise speed (v2)
**Description**
I found a signal which appears to match the IPC "Show km/h" setting.
Requires https://github.com/commaai/opendbc/pull/1010.
**Verification**
- [ ] Test in car and confirm that toggling the "Show km/h" setting does
not result in the cruise speed shown in openpilot being incorrect.
- [ ] Test in a non-English (metric) car.
* not present on Q4
* fix freq
* test
* Revert "test"
This reverts commit 5e3a9f6df126d51685157de1e52bd6695db40fac.
* Update ref_commit
---------
Co-authored-by: Shane Smiskol <shane@smiskol.com>
* casync in jenkins
* rename some stuff, add a readme
* slightly better names
* clean
* more cleanup
* cleaner
* release3 staging too
* always rm the signed version
* cleanups
* in build dir
* better name
* simpler
* more
* divider
* built
* build
* and contains
* add channel description
* and git branches
* and build required
* move this up
* these are terms
* updates
* 3/3x
* bullets
* wording
* version metadata
* git type
* more channel -> release
* more build
* just release
* more channel to release
* also fix jenkins
* use build_metadata
* fix normailzed
* also normalized
* and here
* use build_metadata
* dont commit that
* don't touch the git stuff
* branch
* don't need that
* or that
* improved names
* build_metadata
* use this instead
* fix
* build
* test nightly build again
* fix
* fixes
* Revert "test nightly build again"
This reverts commit be5e7aa7089bfc0947c9b2b484d0277c109ee089.
* 4 more platforms
* only the first is missing srs?!
* vsa didn't respond on these 8 routes
* acura is good!
* do CRV Hybrid
* CRV is already done
* new line
* Revert "new line"
This reverts commit 411c92c77b695d3df716f84b6f302fa0f791d555.
* with brand name
* migrate
* Fix
* fixes
* more
* passes
* fix
* fix the doc
* collects
* these too
* more stuff
* body exception :/
* more
* hardcode i guess
* update ref
* toyota
* more toyota
* and here
* final!
* fix notebooks and ccs
* move this here
* get platform_str from the enum name
* fix tests
* add migration table
* remove impossible todo
* Add link to PR in MIGRATION table
Co-authored-by: Adeeb Shihadeh <adeebshihadeh@gmail.com>
* Remove useless brand name comments and rename RAM_1500 to RAM_1500_5TH_GEN
* rename RAM_HD to RAM_HD_5TH_GEN
* rename references to RAM_HD and RAM_1500
* change "mock" to "MOCK" and rename torque data of Nissan Leaf 2018 IC
* remove MOCK from fingerprints.py
* change hard-coded car model in test_can_fingerprint.py/test_timing
* migration
* update ref
* space
* prius
---------
Co-authored-by: Adeeb Shihadeh <adeebshihadeh@gmail.com>
Co-authored-by: justin newberry <justin@comma.ai>
Co-authored-by: Justin Newberry <jnewberry0502@gmail.com>
* K8 has hybrid descriptor (GL3H), AND we detect hybrid now
* don't know if Carnival's hybrid variant has them, but it's not out yet, and we detect hybrid
fixes: ec32d6aa1c7735d1/2024-03-15--16-41-46
* cmt
* 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
---------
Co-authored-by: Cameron Clough <cameronjclough@gmail.com>
* 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>
* doesn't work
* Revert "doesn't work"
This reverts commit 7a3587b60b65ed0525a9d658e676465ca8ecbef9.
* always add to can parser
* not sure if this is clean
* minimal diff version, but more lines!
* Update fingerprints.py for new skoda kodiaq
* Update fingerprints.py to add 2 more ecu's found in the carFw array that had hyundai as brand
* Update fingerprints.py
* Update fingerprints.py 2022 Ford F-150 PowerBoost (fwdCamera)
* update MY
* also likely works for hybrid
* fix that
---------
Co-authored-by: Shane Smiskol <shane@smiskol.com>
* Ford: show longitudinal personality in IPC
Adjust the time gap to 2, 3 or 4 bars for openpilot long.
TODO: set AccTGap_D_Dsply when value changes so that the popup appears
with the new time gap
Depends on #31760.
* ACC UI: show time gap popup when distance changes
* Revert "ACC UI: show time gap popup when distance changes"
This reverts commit c4e8e10970078a534d5714ddced92d540e9e3c0c.
* ACC UI: send on distance bars change
* don't need this check - just send on first frame
* add autoconnect to WifiManager::connect
* set wifi/hidden to true
* typo
* add condition to only set connection[wireless][hidden] to true when connecting to a hidden network
* default false value for is_hidden
* 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
* revert longplan
* revert this
* Fix check
* more appropriate up here
* consistenet
* Update selfdrive/car/toyota/carstate.py
* Update ref_commit
* it's something
* backup
* 16:10
* cleanup
* this is fine
* close
* remove some junk
* no heck
* disos
* real 10
* for some reason this is flipped
* 20hz
* no return
* ae
* tear
* need curve laster
* correct real gains
* fix time
* cleanup
* why the scam
* disable for now
* 0.7
* hdr
* that doesnt work
* what
* hugeoof
* clean up
* cleanup
* fix regs
* welp cant
* is this corrent
* it is sq
* remove
* back
* add base comment
* clean up
* make orders clear
* not abcd
---------
Co-authored-by: Comma Device <device@comma.ai>
* wip
* wip
* wip
* wip
* wip
* wip
* wip
* proc
* release
* fix
* this should move here
* e2e update test
* that too
* fix
* fix
* fix running in docker
* don't think GHA will work
* also test switching branches
* it's a test
* lets not delete that yet
* fix
* fix2
* fix
* fix
* tests too
* fix
* cleanup / init
* test agnos update
* test agnos
* move this back up
* no diff
* fix :(
* test_sort_by_time
* this isn't required
* not slow, and just compare sorted
* messy
* works
* clean up
* clean up
* not here
* clean up
* clean up
* clean up
* makes network call
---------
Co-authored-by: Justin Newberry <justin@comma.ai>
* press the button
* 33hz/2
* fix tests
* PCM_CRUISE_SM is a UI message: it goes to 0 when not displayed, and is much lower rate
* only change when enabled so we don't hide the welcome message on cruise main button
* unbump
* then you can get into a weird state
* stuff
* for unplugged DSU we can still read PCM distance, but not buttons
* skip
* skip
* Toyota TSS-P: parse distance button from SDSU
* it's 1000hz wtf... da99509bd910288a/2024-03-04--13-51-30
* add events for SDSU
* need to check for CAN filter
* clena up
* check
* whoops
---------
Co-authored-by: Shane Smiskol <shane@smiskol.com>
Ford: parse ACC gap toggle button
Use the ACC gap toggle button signal from the SCCM. There are two other
signals for "increase" and "decrease" gap buttons, but no supported car
has these buttons.
* Run bot on 0e13ee2b821302f4
* remove IONIQ CAN fingerprints and move to Niro PHEV (part numbers match!)
* remove dups
* best guess is Hyundai C (IONIQ is also)
* e2e update test
* that too
* fix
* fix
* fix running in docker
* don't think GHA will work
* also test switching branches
* it's a test
* lets not delete that yet
* comment
* space
* fingerprinting
* wip
* bug
* fix another bug
* fix rebase
* clean up raven
* forgot to save
* one more rename
* one more rename
* radar fixes
* AP1 also has bosch radar
* put back dashcamOnly
* small fixes
* raven flag
* fix bug
* fix raven flag
* bump opendbc
* fix radar trigger for non-raven
* fix tests?
* bump panda
* more test fixes
* tesla fingerprinting is a bit slower now
* fix tests
* bump opendbc
* bump submodules to master
---------
Co-authored-by: Comma Device <device@comma.ai>
* Enable the distance button to switch personalities for Toyota/Lexus
* Default to the "standard" personality for now
* only parsing first
* only parse
* no personality in card
* safe
* comment
---------
Co-authored-by: Shane Smiskol <shane@smiskol.com>
* Revert "Revert "Hyundai Azera: allow fingerprinting without comma power" (#31…"
This reverts commit 1ffc58a69a.
* we should get EPS
* add EPS to non-logging can 0 query
* VW: Early EPS faults are temporary, round deux
* a bit cleaner
* Revert "a bit cleaner"
This reverts commit e836f92394eba0ace8d9cc87b5aa5080d6332d17.
* a little better
* clarity
* consolidate
* cleanup
* subclass bosch and nidec
* end with comma
* one line
* remove unused flags
* as a test see what happens if we exceeed CP.flags
* Revert "as a test see what happens if we exceeed CP.flags"
This reverts commit f57a346df5e6f3c6ab19875b843633c0571d16e3.
* Update ref_commit
* increase
* huh
* Revert "huh"
This reverts commit 1a652cbed06a7c814711db6f2bc6b3146d3aec04.
* no huge fp dicts
* ugh
* try 300
* test
* at least increase a bit
* part 1. Toyota platform config
* more
* everything works now
* no more DBC
* janky but that saves a lot of car lines
* need to init inside values or else it won't be reliable
* no return
* fixes
* minor update
* common flags, no dbc grouping
* some clean up
* some clean up
* rename
* copied wrong :(
* another
* copied specs for easiest ones first
* second easiest
* fix erroneous commas
* more clean up
* do the rest
* bug
* the refactor is so error prone
* huh?!
* static
* fix stiffness factor
* detect unsupported DSU
* Revert "detect unsupported DSU"
This reverts commit 9b72de6c8ef282ce20f6472970874a960761884b.
* fix DBC diff
* test carparams
* test sets
* scratch
* catches this
* Revert "scratch"
This reverts commit de08daa9fb8cc0368c5847b669e87b1b2e577616.
* Revert "test sets"
This reverts commit 62402f9b021cdf16a27fd9fb0883d81169711cbd.
* Revert "test carparams"
This reverts commit b02971659c2a8268d0ac8fdff02231dc36b5a197.
* Update ref_commit
* fuck me!
* that kinda makes things pretty nice
* move it down
* and move this comment
* Wip
* more flags :/
* add the debug shit
* add
* lets not break this yet
* MORE flags git add .git add .git add .git add .!
* B
* add mando
* update ref
* possibly better?
* we can use flags here
* formatting
* formatting
* move up
* canfd subclass
* this is more clear
* spacing
* static!
---------
Co-authored-by: Shane Smiskol <shane@smiskol.com>
* flags
* update ref
* use the flags directly
* use post_init (don't freeze)
* we can maintain frozen with custom class
* not preglobal
* move to common
* cleanup
* Update comma cable requirement for Ford CANFD
* Adding Long_Cable to part list
* Moving cable info into doc_definitions under CarHarness
* Updating parts for ford_q4
* Updating Q3 info
* Updated MachE with USBC coupler
* fix typo
* updating docs/cars.md
* Add 3X angled no cable
* Adding in nocable device package
* Add missing )
Co-authored-by: Cameron Clough <cameronjclough@gmail.com>
* Generating new Docs.MD
* Added threex_nocable for MachE
* Swap MachE to regular mount no cable
* confirmed with Comma Operations all boxes include 1.5ft cable regardless of 9.5ft selection
* Updating CarInfo
* Update USB_Coupler for Q4 Harness
* Remove cable from import
* removed ]
* Disagree with the inconsistency but OK
Co-authored-by: Shane Smiskol <shane@smiskol.com>
* Update selfdrive/car/ford/values.py
---------
Co-authored-by: sheaduncan <sduncan@Yeti-PC>
Co-authored-by: Cameron Clough <cameronjclough@gmail.com>
Co-authored-by: Shane Smiskol <shane@smiskol.com>
* auto PR comments
* little more
* test
* update action
* cleanup
* ensure it only runs once
* comment that part out
---------
Co-authored-by: Adeeb Shihadeh <adeebshihadeh@gmail.com>
* Do Accord
* add comment
* good test
* this catches the accord/accordh issue!
* as expected, only if both radar&camera have in common FW does the test fail
* cmt
* clean up
* better
* Use HondaFlags
* detect alt brake
* for test
* hypothesis isn't installed
* test failure
* works
* Revert " works"
This reverts commit bfc0d808abe548630e6507431f13b01e8a1316cb.
* Revert "test failure"
This reverts commit 10ab6eb63ccd411740751b742f31fd610397fe8e.
* Revert "hypothesis isn't installed"
This reverts commit d474cc3f0ed7e84fe8bd24f452b3315fd2b8d47c.
* Revert "for test"
This reverts commit 98e039f4fc0189ccb57c1dae6b344209ef15eb1c.
* this is important too
* clean up
* merge accord fingerprints, test
* remove duplicates
* accordh doesn't have these
* rm
* no unknown
* start over, merge platforms
* add cmt
* note non-essential ecus
* add non essential obd ecus
* combine FW
* format fingerprints (remove dups)
* migrate test models segs
* cmt
* Update ref_commit
* clean up
* Ford: move to PlatformConfig
* Align Aviator model years with Explorer
* Add CarSpecs to PlatformConfig
---------
Co-authored-by: justin <justin@comma.ai>
* subaru platform config
* forester wrong dbc
* spacing
* subaru car specs
* someday!
* more red diff
* all brands can be done like this
* but this should be done first and thats subaru specific
* that seems very low but we shouldn't change it here
* as long as it subclasses str its fine
* well that sucked
* cleanup and follow refactor
* diff reduction
* oops
* fix
* force fingerprint
* Revert "force fingerprint"
This reverts commit 600fbcd7d559703601a06c8876a640de417e5b6c.
* space
* Fix specs
* this one too
---------
Co-authored-by: Justin Newberry <justin@comma.ai>
* subaru platform config
* forester wrong dbc
* spacing
* subaru car specs
* someday!
* more red diff
* all brands can be done like this
* but this should be done first and thats subaru specific
* that seems very low but we shouldn't change it here
* as long as it subclasses str its fine
* fix
* URLFile: default value test
* cleanup
* fix env
* improvements
* fix GET response
* only delete cache dir if it exists
* env pop
Co-authored-by: Adeeb Shihadeh <adeebshihadeh@gmail.com>
---------
Co-authored-by: Adeeb Shihadeh <adeebshihadeh@gmail.com>
* check end_event while uploading, throw abort exception if we need to shut down/restart
* fix
* draft test
stash
* Revert - there's no easy way to know if it breaks early in upload loop
or not yet
This reverts commit ad893687e196ebb31d276a114c19e9af963ed02a.
* todo for now
* these pass in 0.5s since server sends ping on connect
* comments
* unused
* fix
* fix these too
* check end_event while uploading, throw abort exception if we need to shut down/restart
* Revert "check end_event while uploading, throw abort exception if we need to shut down/restart"
This reverts commit f0b822fca98cd8e2b3d4d6d5ede6b512d3ed3ec0.
* more tol for lte connection
* card v1
* fix car events
* fix proc replay
* lets keep that the same
* no extra space here
* move can recv timeouts to card
* organize imports
* organize imports
* slightly bump cpu
* not a card!
* log params when calculable
* better
* Update ref_commit
* this is redundant
* this is only used in one place, confusing which to use so remove
* better
* Adding pre-commit hook for cython static analysis
* Adding changes to cython files to pass static analysis
* Revert "Adding changes to cython files to pass static analysis"
This reverts commit 9a0eb733199abd9eef1eac3d024ef2760348d67c.
* Adding ignore rule for indentation of 4 spaces (E111)
* Fixes for cython-lint static analysis
* Revert "Fixes for cython-lint static analysis"
This reverts commit 972741735b2bdc73460d65a4d7ea167dfc0f4644.
* Adding two new rules into ignore list (2 new lines after difinition of class)
* Adding fixes for cython static analysis
* Do Accord
* add comment
* good test
* this catches the accord/accordh issue!
* as expected, only if both radar&camera have in common FW does the test fail
* cmt
* clean up
* better
* Use HondaFlags
* detect alt brake
* for test
* hypothesis isn't installed
* test failure
* works
* Revert " works"
This reverts commit bfc0d808abe548630e6507431f13b01e8a1316cb.
* Revert "test failure"
This reverts commit 10ab6eb63ccd411740751b742f31fd610397fe8e.
* Revert "hypothesis isn't installed"
This reverts commit d474cc3f0ed7e84fe8bd24f452b3315fd2b8d47c.
* Revert "for test"
This reverts commit 98e039f4fc0189ccb57c1dae6b344209ef15eb1c.
* this is important too
* clean up
* more clean up
* Update ref_commit
* more explicit
* fix it
* use non capturing group
* only needed for regex101
* make test_logreader.py executable
* fix
* stash
* passes test
* none
* type anotate
* test
* fix
* nice for syntax highlighting
* type annotate SegmentRange
* proper formatting
* oops
* numpy?
format test too
* draft
* fixed
* clean up
* rm
* more
* clean up
* clean up
* rm
* not here
* revert
* more examples
* how is it so fast?!
* 500
* is there a hypothesis cache?
all
* Revert "is there a hypothesis cache?"
This reverts commit e628ba73d5b639e36f95df0ab9049697b34a58b8.
* same as jenkins
* Update carstate.py
* 42 is safe
* mirai
* we hit this after 30 mins: Exceeded message traversal limit. See capnp::ReaderOptions.
* too easy to write this bug, no need to be generic yet
* Update ref_commit
* Honda Civic Bosch: remove OBD-reliant ECUs from fingerprinting
* eligible to fingerprint with these responses now
* same for CRV bosch
* add back all FW to test fingerprinting diff on data
* set these ECUs as non essential instead
* comment
* compare old fingerprinting with non essential fingerprinting
* clean up
* cmt
* wait for valid
* reuuse that
* assert warmup
* Wip
* fix that
* reset
* none
* timeout
* maxlen
* consecutive
* proc
* fix
* local
* same as before
* mean
* fixes
* SA
* this is the real warmup time
* this is the real warmup time
* Cleanup
* Cleanup
* monotonic + len
* reduce duplication
* fix
* fix
---------
Co-authored-by: Comma Device <device@comma.ai>
* Initial pass
* Add physical measurements for LEXUS_LC_2024
* Add new test route for TOYOTA.LEXUS_LC_TSS2
* Add new public-OK test route for TOYOTA.LEXUS_LC_TSS2
* update docs
* | not /
---------
Co-authored-by: Justin Newberry <justin@comma.ai>
* We never had any bus 0 logging queries for CAN!
* should be logging
* try all, and try on can fd as well
* update refs
* oof forgot about hda2 can fd where pt is bus 1
* sheesh
* fix the timing
* fix ref
* We never had any bus 0 logging queries for CAN!
* should be logging
* try all, and try on can fd as well
* update refs
* oof forgot about hda2 can fd where pt is bus 1
* sheesh
* fix the timing
* not here
* revert
* this just simply measured the total time of all the brands with aux queries (1.25s)
* clean up
* Add 2021 Kia Niro Plug-in Hybrid
* Added CAR.KIA_NIRO_PHEV_2021
* Added CAR.KIA_NIRO_PHEV_2021
Created new block and moved 2022 model to it as well, with correct mass and steerRatio values.
* Added 2021 Kia Niro PHEV
* Added 2021 Kia Niro PHEV
For now, using 2020 Niro EV torque data
* Update values.py
Add '21 Kia Niro PHEV to HYBRID_CAR for gas signal and DBC info
* Test route for 2021 Kia Niro PHEV
* Add public test route for 2021 Kia Niro PHEV
* Fixed typo in test route for 2021 Kia Niro PHEV
* Move '21 Kia Niro PHEV car info under '22
...and remove other mention of '21 as distinct car
* Added '21 Kia Niro PHEV fingerprint under '22
...and removed separate car definition
* Removed '21 Kia Niro PHEV as separate car, now under '22
* Removed '21 Kia Niro PHEV, now under '22 fingerprint
* Removed test route for '21 Kia Niro PHEV
* Update values.py
Missed removing one more reference to '21 Kiro Niro PHEV, consolidating under '22.
* Update selfdrive/car/hyundai/interface.py
* Update selfdrive/car/hyundai/fingerprints.py
* Apply suggestions from code review
---------
Co-authored-by: Shane Smiskol <shane@smiskol.com>
* Lazy imports in webrtcd
* Lazy imports in web.py
* Type hints
* Remove FrameReaderVideoStreamTrack
* leave the aiohttp.web import
* Leave the client session
* main leftover
* not pytest?
* copy what build release does
* test controls step with CI and lat/long controllers, car controller.update, etc
* clean up
* not needed
* not here
* here
* better cmt
* fix test_fuzzy
* see what's failing
* need conftest for OPENPILOT_PREFIX to work!
* up
* clean up
* test
* fix
* params put is slow
* stash
* Revert "stash"
This reverts commit 22cc9f814c0699f7046970763663205907f2890b.
* stash
bad
* just freaking merge
* sort
* rm
* simplify git remote is comma check
* cast to str
* eliminate default and always return string
* add type annotation for cache decorator
* fix up default handling
* bump
* from https://github.com/commaai/openpilot/pull/27929
* get VIN on bolt!
* might as well try on other gms
* remove vin
* ugh gm is going to be slow
* fix
* should really fix this
* revert
* happy?1
* fix unit test
* bump
* functional addressing must be an OBD gateway feature, this does nothing
* fix vin response
* fix addr!
* finally fix fw_versions bugs since boardd IsOnroad refactor
* for
* only bus 0
* clean up
* Update selfdrive/car/gm/values.py
* ChatGPT re-write
* filter out did
* todo
* oof
* preview: what multiple DIDs per ECU would look like in the future
* Revert "preview: what multiple DIDs per ECU would look like in the future"
This reverts commit 88f0d8611e638de644adc5feabade848c03d59e4.
* function to get all ecus
* we can remove this!
* can also do this!
* and this one too :o
* consistency
* yay
* clean up
* bump
* from https://github.com/commaai/openpilot/pull/27929
* get VIN on bolt!
* might as well try on other gms
* remove vin
* ugh gm is going to be slow
* fix
* should really fix this
* revert
* happy?1
* fix unit test
* bump
* functional addressing must be an OBD gateway feature, this does nothing
* fix vin response
* fix addr!
* finally fix fw_versions bugs since boardd IsOnroad refactor
* for
* only bus 0
* clean up
* Update selfdrive/car/gm/values.py
* ChatGPT re-write
* filter out did
* todo
* oof
* preview: what multiple DIDs per ECU would look like in the future
* Revert "preview: what multiple DIDs per ECU would look like in the future"
This reverts commit 88f0d8611e638de644adc5feabade848c03d59e4.
* function to get all ecus
* we can remove this!
* can also do this!
* and this one too :o
* consistency
* yay
* add tests
* revert GM stuff
* another PR
* reads better
* revert rest of gm
* use that
* interesting
* these are exactly the same (with ordering differences)
* Revert "these are exactly the same (with ordering differences)"
This reverts commit a9e918dc351d24f1b7c8a05c7ec402e057a0e09a.
* flip
* bump
* gm vin
* that's not right
* only check relevant buses
* instead try queries for each bus first
* clean up
* use default retry in function
* all
* add instructions to my fork
* add braziliam TAOS fingerprint
* Revert "add instructions to my fork"
This reverts commit 46fbee3ebe7ecbb211d855e63b2d4c8919c31b63.
* add instructions to my fork
* add paypall.png to gitignore
* Revert "add instructions to my fork"
This reverts commit a6a6f93533add212e321e8472a78a8a69bf932f4.
* translate
* revert this
* why?
---------
Co-authored-by: Comma Device <device@comma.ai>
// Comment to add to the PR if no template has been used
const NO_TEMPLATE_MESSAGE =
"It looks like you didn't use one of the Pull Request templates. Please check [the contributing docs](https://github.com/commaai/openpilot/blob/master/docs/CONTRIBUTING.md). \
Also make sure that you didn't modify any of the checkboxes or headings within the template.";
<td>{% if jobs[key]["failures"]|length > 0 %}<details>{% for failure in jobs[key]["failures"] %}<a href="{{ failure['link'] }}">Log for run #{{ failure['run_number'] }}</a><br>{% endfor %}</details>{% else %}{% endif %}</td>
stale-pr-message:'This PR has had no activity for ${{ env.DAYS_BEFORE_PR_STALE }} days. It will be automatically closed in ${{ env.DAYS_BEFORE_PR_CLOSE }} days if there is no activity.'
close-pr-message:'This PR has been automatically closed due to inactivity. Feel free to re-open once activity resumes.'
stale-pr-label:stale
delete-branch:${{ github.event.pull_request.head.repo.full_name == 'commaai/openpilot' }}# only delete branches on the main repo
exempt-pr-labels:"ignore stale,needs testing,car port"# if wip or it needs testing from the community, don't mark as stale
exempt-pr-labels:"ignore stale,needs testing,car port,car"# if wip or it needs testing from the community, don't mark as stale
[](https://comma.ai/shop/comma-3x)
<div align="center" style="text-align: center;">
What is openpilot?
------
<h1>openpilot</h1>
[openpilot](http://github.com/commaai/openpilot) is an open source driver assistance system. Currently, openpilot performs the functions of Adaptive Cruise Control (ACC), Automated Lane Centering (ALC), Forward Collision Warning (FCW), and Lane Departure Warning (LDW) for a growing variety of [supported car makes, models, and model years](docs/CARS.md). In addition, while openpilot is engaged, a camera-based Driver Monitoring (DM) feature alerts distracted and asleep drivers. See more about [the vehicle integration](docs/INTEGRATION.md) and [limitations](docs/LIMITATIONS.md).
<p>
<b>openpilot is an operating system for robotics.</b>
<br>
Currently, it upgrades the driver assistance system in 275+ supported cars.
@@ -19,7 +44,7 @@ To start using openpilot in a car
To use openpilot in a car, you need four things:
1.**Supported Device:** a comma 3/3X, available at [comma.ai/shop](https://comma.ai/shop/comma-3x).
2.**Software:** The setup procedure for the comma 3/3X allows users to enter a URL for custom software. Use the URL `openpilot.comma.ai` to install the release version.
3.**Supported Car:** Ensure that you have one of [the 250+ supported cars](docs/CARS.md).
3.**Supported Car:** Ensure that you have one of [the 275+ supported cars](docs/CARS.md).
4.**Car Harness:** You will also need a [car harness](https://comma.ai/shop/car-harness) to connect your comma 3/3X to your car.
We have detailed instructions for [how to install the harness and device in a car](https://comma.ai/setup). Note that it's possible to run openpilot on [other hardware](https://blog.comma.ai/self-driving-car-for-free/), although it's not plug-and-play.
@@ -36,7 +61,7 @@ openpilot is developed by [comma](https://comma.ai/) and by users like you. We w
* Code documentation lives at https://docs.comma.ai
* Information about running openpilot lives on the [community wiki](https://github.com/commaai/openpilot/wiki)
Want to get paid to work on openpilot? [comma is hiring](https://comma.ai/jobs#open-positions) and offers lots of [bounties](docs/BOUNTIES.md) for external contributors.
Want to get paid to work on openpilot? [comma is hiring](https://comma.ai/jobs#open-positions) and offers lots of [bounties](https://comma.ai/bounties) for external contributors.
Safety and Testing
----
@@ -49,18 +74,6 @@ Safety and Testing
* panda has additional hardware-in-the-loop [tests](https://github.com/commaai/panda/blob/master/Jenkinsfile).
* We run the latest openpilot in a testing closet containing 10 comma devices continuously replaying routes.
User Data and comma Account
------
By default, openpilot uploads the driving data to our servers. You can also access your data through [comma connect](https://connect.comma.ai/). We use your data to train better models and improve openpilot for everyone.
openpilot is open source software: the user is free to disable data collection if they wish to do so.
openpilot logs the road-facing cameras, CAN, GPS, IMU, magnetometer, thermal sensors, crashes, and operating system logs.
The driver-facing camera is only logged if you explicitly opt-in in settings. The microphone is not recorded.
By using openpilot, you agree to [our Privacy Policy](https://comma.ai/privacy). You understand that use of this software or its related services will generate certain types of user data, which may be logged and stored at the sole discretion of comma. By accepting this agreement, you grant an irrevocable, perpetual, worldwide right to comma for the use of this data.
Licensing
------
@@ -72,9 +85,14 @@ Any user of this software shall indemnify and hold harmless Comma.ai, Inc. and i
YOU ARE RESPONSIBLE FOR COMPLYING WITH LOCAL LAWS AND REGULATIONS.
By default, openpilot uploads the driving data to our servers. You can also access your data through [comma connect](https://connect.comma.ai/). We use your data to train better models and improve openpilot for everyone.
openpilot is open source software: the user is free to disable data collection if they wish to do so.
openpilot logs the road-facing cameras, CAN, GPS, IMU, magnetometer, thermal sensors, crashes, and operating system logs.
The driver-facing camera is only logged if you explicitly opt-in in settings. The microphone is not recorded.
By using openpilot, you agree to [our Privacy Policy](https://comma.ai/privacy). You understand that use of this software or its related services will generate certain types of user data, which may be logged and stored at the sole discretion of comma. By accepting this agreement, you grant an irrevocable, perpetual, worldwide right to comma for the use of this data.
cereal is the messaging system for openpilot. It uses [msgq](https://github.com/commaai/msgq) as a pub/sub backend, and [Cap'n proto](https://capnproto.org/capnp-tool.html) for serialization of the structs.
## Messaging Spec
You'll find the message types in [log.capnp](log.capnp). It uses [Cap'n proto](https://capnproto.org/capnp-tool.html) and defines one struct called `Event`.
All `Events` have a `logMonoTime` and a `valid`. Then a big union defines the packet type.
### Best Practices
- **All fields must describe quantities in SI units**, unless otherwise specified in the field name.
- In the context of the message they are in, field names should be completely unambiguous.
- All values should be easy to plot and be human-readable with minimal parsing.
### Maintaining backwards-compatibility
When making changes to the messaging spec you want to maintain backwards-compatibility, such that old logs can
be parsed with a new version of cereal. Adding structs and adding members to structs is generally safe, most other
things are not. Read more details [here](https://capnproto.org/language.html).
### Custom forks
Forks of [openpilot](https://github.com/commaai/openpilot) might want to add things to the messaging
spec, however this could conflict with future changes made in mainline cereal/openpilot. Rebasing against mainline openpilot
then means breaking backwards-compatibility with all old logs of your fork. So we added reserved events in
[custom.capnp](custom.capnp) that we will leave empty in mainline cereal/openpilot. **If you only modify those, you can ensure your
fork will remain backwards-compatible with all versions of mainline openpilot and your fork.**
* once you open a PR, the bounty is locked to you until you stop working on it
* open a ticket at [comma.ai/support](https://comma.ai/support/shop-order) with links to your PRs to claim
* get an extra 20% if you redeem your bounty in [comma shop](https://comma.ai/shop) credit (including refunds on previous orders)
New bounties can be proposed in the [**#contributing**](https://discord.com/channels/469524606043160576/1183173332531687454) channel in Discord.
## Issue bounties
We've tagged bounty-eligible issues across openpilot and the rest of our repos; check out all the open ones [here](https://github.com/orgs/commaai/projects/26/views/1). These bounties roughly work out like this:
* **$100** - a few hours of work for an experienced openpilot developer; a good intro for someone new to openpilot
* **$300** - a day of work for an experienced openpilot developer
* **$500** - a few days of work for an experienced openpilot developer
* **$1k+** - a week or two of work (could be less for the right person)
## Car bounties
The car bounties only apply to cars that have a path to ship in openpilot release, which excludes unsupportable cars (e.g. Fords with a steering lockout) or cars that require extra hardware (Honda Accord with serial steering).
#### Brand or platform port - $2000
Example PR: [commaai/openpilot#23331](https://github.com/commaai/openpilot/pull/23331)
This is for adding support for an entirely new brand or a substantially new ADAS platform within a brand (e.g. the Volkswagen PQ platform).
#### Model port - $250
Example PR: [commaai/openpilot#30245](https://github.com/commaai/openpilot/pull/30245)
This is for porting a new car model that runs on a platform openpilot already supports.
In the average case, this is a few hours of work for an experienced software developer.
This bounty also covers getting openpilot supported on a previously unsupported trim of an already supported car, e.g. the Chevy Bolt without ACC.
#### Reverse Engineering a new Actuation Message - $300
This is for cars that are already supported, and it has three components:
* reverse a new steering, adaptive cruise, or AEB message
* merge the DBC definitions to [opendbc](http://github.com/commaai/opendbc)
* merge the openpilot code to use it and post a demo route
The control doesn't have to be perfect, but it should generally do what it's supposed to do.
### Specific Cars
#### Rivian R1T or R1S - $3000
Get a Rivian driving with openpilot.
Requires a merged port with lateral control and at least a POC of longitudinal control.
#### Toyota SecOc - $5000
We're contributing $5k to the [community-organized bounty](https://github.com/commaai/openpilot/discussions/19932).
#### Chevy Bolt with SuperCruise - $2500
The Bolt is already supported on the trim with standard ACC. Get openpilot working on the trim with SuperCruise. It must be a normal install: no extra pandas or other hardware, no ECU reflashes, etc. The full bounty is for a port with lateral and longitudinal control. $1500 of the bounty can be claimed with a lateral-only port.
A supported vehicle is one that just works when you install a comma device. All supported cars provide a better experience than any stock system. Supported vehicles reference the US market unless otherwise specified.
|Volkswagen|Touran 2016-23|Adaptive Cruise Control (ACC) & Lane Assist|openpilot available[<sup>1,12</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|<details><summary>Parts</summary><sub>- 1 USB-C coupler<br>- 1 VW J533 connector<br>- 1 comma 3X<br>- 1 harness box<br>- 1 long OBD-C cable<br>- 1 mount<br>- 1 right angle OBD-C cable (1.5 ft)<br><a href="https://comma.ai/shop/comma-3x.html?make=Volkswagen&model=Touran 2016-23">Buy Here</a></sub></details>||
### Footnotes
<sup>1</sup>openpilot Longitudinal Control (Alpha) is available behind a toggle; the toggle is only available in non-release branches such as `devel` or `master-ci`. <br />
<sup>2</sup>By default, this car will use the stock Adaptive Cruise Control (ACC) for longitudinal control. If the Driver Support Unit (DSU) is disconnected, openpilot ACC will replace stock ACC. <b><i>NOTE: disconnecting the DSU disables Automatic Emergency Braking (AEB).</i></b> <br />
<sup>3</sup>Refers only to the Focus Mk4 (C519) available in Europe/China/Taiwan/Australasia, not the Focus Mk3 (C346) in North and South America/Southeast Asia. <br />
<sup>4</sup>Requires a <a href="https://github.com/commaai/openpilot/wiki/GM#hardware" target="_blank">community built ASCM harness</a>. <b><i>NOTE: disconnecting the ASCM disables Automatic Emergency Braking (AEB).</i></b> <br />
<sup>5</sup>2019 Honda Civic 1.6L Diesel Sedan does not have ALC below 12mph. <br />
<sup>6</sup>Requires a <a href="https://comma.ai/shop/can-fd-panda-kit" target="_blank">CAN FD panda kit</a> if not using comma 3X for this <a href="https://en.wikipedia.org/wiki/CAN_FD" target="_blank">CAN FD car</a>. <br />
<sup>7</sup>In the non-US market, openpilot requires the car to come equipped with EyeSight with Lane Keep Assistance. <br />
<sup>8</sup>Enabling longitudinal control (alpha) will disable all EyeSight functionality, including AEB, LDW, and RAB. <br />
<sup>9</sup>openpilot operates above 28mph for Camry 4CYL L, 4CYL LE and 4CYL SE which don't have Full-Speed Range Dynamic Radar Cruise Control. <br />
<sup>10</sup>Not including the China market Kamiq, which is based on the (currently) unsupported PQ34 platform. <br />
<sup>11</sup>Refers only to the MQB-based European B8 Passat, not the NMS Passat in the USA/China/Mideast markets. <br />
<sup>12</sup>Some Škoda vehicles are equipped with heated windshields, which are known to block GPS signal needed for some comma 3X functionality. <br />
<sup>13</sup>Only available for vehicles using a gateway (J533) harness. At this time, vehicles using a camera harness are limited to using stock ACC. <br />
<sup>14</sup>Model-years 2022 and beyond may have a combined CAN gateway and BCM, which is supported by openpilot in software, but doesn't yet have a harness available from the comma store. <br />
<sup>4</sup>2019 Honda Civic 1.6L Diesel Sedan does not have ALC below 12mph. <br />
<sup>5</sup>Requires a <a href="https://comma.ai/shop/can-fd-panda-kit" target="_blank">CAN FD panda kit</a> if not using comma 3X for this <a href="https://en.wikipedia.org/wiki/CAN_FD" target="_blank">CAN FD car</a>. <br />
<sup>6</sup>In the non-US market, openpilot requires the car to come equipped with EyeSight with Lane Keep Assistance. <br />
<sup>7</sup>Enabling longitudinal control (alpha) will disable all EyeSight functionality, including AEB, LDW, and RAB. <br />
<sup>8</sup>openpilot operates above 28mph for Camry 4CYL L, 4CYL LE and 4CYL SE which don't have Full-Speed Range Dynamic Radar Cruise Control. <br />
<sup>9</sup>Not including the China market Kamiq, which is based on the (currently) unsupported PQ34 platform. <br />
<sup>10</sup>Refers only to the MQB-based European B8 Passat, not the NMS Passat in the USA/China/Mideast markets. <br />
<sup>11</sup>Some Škoda vehicles are equipped with heated windshields, which are known to block GPS signal needed for some comma 3X functionality. <br />
<sup>12</sup>Only available for vehicles using a gateway (J533) harness. At this time, vehicles using a camera harness are limited to using stock ACC. <br />
<sup>13</sup>Model-years 2022 and beyond may have a combined CAN gateway and BCM, which is supported by openpilot in software, but doesn't yet have a harness available from the comma store. <br />
## Community Maintained Cars
Although they're not upstream, the community has openpilot running on other makes and models. See the 'Community Supported Models' section of each make [on our wiki](https://wiki.comma.ai/).
@@ -339,7 +350,9 @@ openpilot does not yet support these Toyota models due to a new message authenti
Our software is open source so you can solve your own problems without needing help from others. And if you solve a problem and are so kind, you can upstream it for the rest of the world to use. Check out our [post about externalization](https://blog.comma.ai/a-2020-theme-externalization/). Development activity is coordinated through our GitHub Issues, [GitHub Discussions](https://github.com/commaai/openpilot/discussions), and [Discord](https://discord.comma.ai).
Our software is open source so you can solve your own problems without needing help from others. And if you solve a problem and are so kind, you can upstream it for the rest of the world to use. Check out our [post about externalization](https://blog.comma.ai/a-2020-theme-externalization/).
Development is coordinated through [Discord](https://discord.comma.ai) and GitHub.
### Getting Started
@@ -11,7 +13,8 @@ Our software is open source so you can solve your own problems without needing h
## What contributions are we looking for?
**openpilot's priorities are [safety](SAFETY.md), stability, quality, and features, in that order.** openpilot is part of comma's mission to *solve self-driving cars while delivering shippable intermediaries*, and **all** development is towards that goal.
**openpilot's priorities are [safety](SAFETY.md), stability, quality, and features, in that order.**
openpilot is part of comma's mission to *solve self-driving cars while delivering shippable intermediaries*, and all development is towards that goal.
### What gets merged?
@@ -27,24 +30,21 @@ All of these are examples of good PRs:
### What doesn't get merged?
* **arbitrary style changes**: code is art, and it's up to the author to make it beautiful
* **style changes**: code is art, and it's up to the author to make it beautiful
* **500+ line PRs**: clean it up, break it up into smaller PRs, or both
* **PRs without a clear goal**: every PR must have a singular and clear goal
* **UI design changes**: we do not have a good review process for this yet
* **UI design**: we do not have a good review process for this yet
* **New features**: We believe openpilot is mostly feature-complete, and the rest is a matter of refinement and fixing bugs. As a result of this, most feature PRs will be immediately closed, however the beauty of open source is that forks can and do offer features that upstream openpilot doesn't.
* **Negative expected value**: This a class of PRs that makes an improvement, but the risk or validation costs more than the improvement. The risk can be mitigated by first getting a failing test merged.
### First contribution
Check out any [good first issue](https://github.com/commaai/openpilot/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22) to get started.
### What do I need to contribute?
A lot of openpilot work requires only a PC, and some requires a comma device.
Most car-related contributions require access to that car, plus a comma device installed in the car.
[Bounties](https://comma.ai/bounties) are the best place to get started.
There's lot of bounties that don't require a comma 3/3X or a car.
## Pull Requests
Pull requests should be against the master branch. If you're unsure about a contribution, feel free to open a discussion, issue, or draft PR to discuss the problem you're trying to solve.
Pull requests should be against the master branch.
A good pull request has all of the following:
* a clearly stated purpose
@@ -62,4 +62,4 @@ A good pull request has all of the following:
* Consider opting into driver camera uploads to improve the driver monitoring model.
* Connect your device to Wi-Fi regularly, so that we can pull data for training better driving models.
* Run the `nightly` branch and report issues. This branch is like `master` but it's built just like a release.
* Annotate images in the [comma10k dateset](https://github.com/commaai/comma10k).
* Annotate images in the [comma10k dataset](https://github.com/commaai/comma10k).
Some files were not shown because too many files have changed in this diff
Show More
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.