Commit Graph

48 Commits

Author SHA1 Message Date
Shane Smiskol
7556233cca Reapply "move car.capnp to opendbc (#33722)" (#33728)
* Reapply "move car.capnp to opendbc" (#33725)

This reverts commit 9d52a5b485.

* why can't i repro?!

* Revert "why can't i repro?!"

This reverts commit 0435d218f790faf7b7aaed27d05ab9ee67b087e6.

* does this cause card to try and read it?

* better place

* wtf

* Reapply "why can't i repro?!"

This reverts commit d24fd5a0abf454f47d5591e3b39039fdc4d0251c.

* also here
2024-10-03 22:47:03 -07:00
Shane Smiskol
9d52a5b485 Revert "move car.capnp to opendbc" (#33725)
Revert "move car.capnp to opendbc (#33722)"

This reverts commit 8149f7cb11.
2024-10-03 16:57:45 -07:00
Shane Smiskol
8149f7cb11 move car.capnp to opendbc (#33722)
* move car.capnp to opendbc

* bump

* do card

* fix some more tests

* rm helpers

* format fp

* more

* whoops

* bump

* bump to master
2024-10-03 16:40:24 -07:00
YassineYousfi
48bd5b9f6b modeld: clip vego (#33699) 2024-10-01 21:33:46 -07:00
Harald Schäfer
e442425c9d MLSIM trained model V0 (#33676)
* squash f7343ba0-3f7d-4776-9819-2219b8d2d667/270

* fix broken ref

* Model replay ref commit
2024-10-01 02:58:20 -07:00
Bruce Wayne
d4e257213d Modeld: cannot run without wide img 2024-09-30 00:05:28 -07:00
Shane Smiskol
4f019b5f60 move selfdrive/car to opendbc (#32630)
* 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
2024-08-17 00:54:51 -07:00
Shane Smiskol
95224db413 selfdrive/car: ban cereal and capnp (#33208)
* 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
old-commit-hash: 6a15c42143
2024-08-16 15:13:00 -07:00
Adeeb Shihadeh
fc469e5f80 Revert "Remove setproctitle (#32716)" (#33195)
* Revert "Remove `setproctitle` (#32716)"

This reverts commit 9020d1931f4cd72f8162e4402278bdf76e3746f2.

* uv lock

* old name
old-commit-hash: 29b58d4f2f
2024-08-05 16:42:22 -07:00
Dean Lee
45c3992e43 CarParams: set no traversal limit (#32929)
* 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>
old-commit-hash: 12d729a0a0
2024-07-08 13:50:31 -07:00
Kacper Rączy
102188c245 drivingModelData: new model packet for qlogs (#32821)
* 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>
old-commit-hash: 2059f986df
2024-06-28 19:27:58 -07:00
Adeeb Shihadeh
9cfdd6200d Remove setproctitle (#32716)
* 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>
old-commit-hash: 83ac80c6c8
2024-06-11 21:57:32 -07:00
Adeeb Shihadeh
e920e57530 Revert "Custom setproctitle (#32667)"
This reverts commit 1f45e163559baa2a6127d5a5e8deb7067e32f813.

old-commit-hash: 5b51f03967
2024-06-10 19:55:41 -07:00
schlimeszn
afea57ae2a 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>
old-commit-hash: 3365ed5eff
2024-06-10 18:59:01 -07:00
Harald Schäfer
f870a968e9 Split cereal into cereal/msgq (#32631)
* squash

* fix doc

* compile device

* compile device

* Update ref

* add msgq to precommit exclusions

* No service ports

* fix compile

* address comments

* More comments

* Delete logger

* Update opendbc

* Linting

* bump msgq
old-commit-hash: e71ec4e8d7
2024-06-06 14:31:56 -07:00
Adeeb Shihadeh
7a3e454d27 move sentry/stats to system/ (#32490)
* move sentry/stats to system/

* fix
old-commit-hash: da6fd75125
2024-05-20 22:39:25 -07:00
Adeeb Shihadeh
3358745103 ruff: enable UP
old-commit-hash: b2e4c64cf8
2024-05-20 17:43:54 -07:00
Adeeb Shihadeh
cca041d5a2 modeld: less spammy with no cams
old-commit-hash: 34912b29c1
2024-04-09 13:45:45 -07:00
YassineYousfi
9691393bde WD40 model (#32141)
* 2eedcd90-b7db-46cb-86be-740f48ded7ab/700

* cleanup some constants

* update model replay ref
old-commit-hash: 6c3a33a6d8
2024-04-09 11:19:43 -07:00
YassineYousfi
75a69e12b3 disable navigate on openpilot (#32106)
* 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
old-commit-hash: 754dd45ffa
2024-04-09 10:40:38 -07:00
Adeeb Shihadeh
da31ce154a refactor camera transformations (#31818)
* refactor camera transormations

* update users

* more stuff

* more fix

* swap

* tici

* lil shorter
old-commit-hash: e3589e4b5c
2024-03-10 16:56:50 -07:00
Adeeb Shihadeh
f60cbbb04b modeld: prep for camera transform refactor (#31820)
* modeld: prep for camera transform refactor

* update refs

* add pub

* do setup
old-commit-hash: 7436aa8b05
2024-03-10 16:39:40 -07:00
Cameron Clough
9bd90112d0 use pyupgrade to update to new typing syntax (#31580)
* add pyupgrade hook

* run pyupgrade (pre-commit run -a)

* ruff --fix

* Revert "add pyupgrade hook"

This reverts commit 56ec18bb6b8602a0b612f3803d96cdad14b52066.

* revert changes to third_party/

* manual type fixes

* explicit Optional wrapping capnp objects
old-commit-hash: 995250ae49
2024-02-24 16:41:23 -08:00
Adeeb Shihadeh
5b8eb7f9c7 modeld: add extra log for startup time debugging
old-commit-hash: 675eeb9d16
2024-02-19 22:33:30 -08:00
Harald Schäfer
48bd8c2aaa Modeld: cleanup unused variables (#31516)
Modeld: cleanup used variables
old-commit-hash: d371fb042c
2024-02-19 17:07:15 -08:00
Adeeb Shihadeh
1afe1fed8a more modeld logging (#31510)
old-commit-hash: 86184b76d5
2024-02-19 10:46:04 -08:00
Adeeb Shihadeh
9ca2d61313 modeld: fix and cleanup getting carParams (#31488)
old-commit-hash: 5a441ec0c4
2024-02-15 22:20:00 -08:00
Harald Schäfer
f9d5fc7dd9 Los Angeles Model 2 (#31135)
* 7045fb53-6739-4338-8426-20cbd4ad7832/600

* Update constants

* Update parse

* Typos

* Update ref

* 26057144-130f-48e1-8a98-00fae53ae7db/700

* Update ref
old-commit-hash: f55e6a3b81
2024-01-24 15:26:22 -08:00
Harald Schäfer
215b346dc0 Los Angeles Model (#31037)
* 1c888f5b-c213-4c1c-9eba-c587afd047fc/700

* Move to action

* Updates

* Add steer delay

* Update curvature grep

* clip speed

* No car params for now

* Add delay back

* Update

* fix lint

* fix lint

* update model regf
old-commit-hash: 0067cf3eb1
2024-01-22 00:58:06 -08:00
Bruce Wayne
4a03691a20 Revert "Refactor modeld (#31099)"
This reverts commit 7fc3acd8ac1c7139953bb96c827050120af6543b.

old-commit-hash: 3b01733900
2024-01-21 17:29:32 -08:00
Harald Schäfer
34bdee83e0 Refactor modeld (#31099)
* First commit

* Allow

* Just camerastream helper
old-commit-hash: 599325718e
2024-01-21 17:10:40 -08:00
Harald Schäfer
66dbadb029 Delete lat planner (#31089)
* Initial commit

* Fixup

* typo

* ignore lateral plan

* Update cereal

* Remove lateralPlan

* Fix release build

* Fix release build

* give car params

* Add carParams to include_all_types

* Write car param in powerdraw test

* add demo mode

* Update model regf

* proc replay ref commit

* Try

* Move enum definition

* Update cereal

* typo

* Write car param for modeld test

* Update ref

* Update model ref again

---------

Co-authored-by: Kacper Rączy <gfw.kra@gmail.com>
old-commit-hash: e6c97c3846
2024-01-21 12:09:48 -08:00
Adeeb Shihadeh
59eb2988de swaglog.py goes in common/ (#30631)
* swaglog.py goes in common/

* all of these go in release

* we'll even include the pyx
old-commit-hash: 35f819c823
2023-12-06 17:27:51 -08:00
YassineYousfi
91751770a8 (New) Lemon Pie Model 🍋 (#30209)
* 6f6e3749-1b7c-42e8-a33b-03929b7fc476/700

* oops deleted too much

* 1b4308b7-a659-4ebd-b4c6-c81c1c3890f8/700

* 1be192f3-f407-4217-9757-78b9ad92750a/700

* remove some todos

* more cleanup in lat planner

* vego > min_speed

* regen and update process replay refs

* update model replay ref

* update model replay ref commit again

* Revert "update model replay ref commit again"

This reverts commit 922cb796b8dfe264b0cce7a18206bb898b18bcb3.

* update again

* bump cereal
old-commit-hash: 4c2bd853e4
2023-11-02 14:01:00 -07:00
mitchellgoffpc
e911cab412 Added sentry hooks for modeld
old-commit-hash: eecdaf9950
2023-10-25 21:37:54 -07:00
YassineYousfi
8ea8f8710c modeld: send_raw_pred under a flag (#30298)
* modeld: SEND_RAW_PRED under a flag

* not twice
old-commit-hash: b7cc6983c3
2023-10-20 13:53:22 -07:00
YassineYousfi
d18f185115 modeld: parsing and publishing in python (#30273)
* 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
2023-10-19 14:23:51 -07:00
Kacper Rączy
5d0e7e9373 modeld: don't attempt to connect extra vipc client if its not available (#30154)
Do not connect extra client if it's not available
old-commit-hash: 5cb9291de8
2023-10-03 15:54:21 -07:00
Adeeb Shihadeh
03c4bdc0be Revert "modeld: remove extra cloudlog.bind, manager does this"
This reverts commit d99afd438be153166affb99ce366c537d977ba47.

old-commit-hash: 362c0bf2ca
2023-09-21 20:13:13 -07:00
Adeeb Shihadeh
f0a8853060 modeld: remove extra cloudlog.bind, manager does this
old-commit-hash: 754af893e9
2023-09-21 20:06:46 -07:00
Mitchell Goff
65fc9f14b3 Update model input names to match onnx inputs (#29855)
Updated model input names to match onnx inputs
old-commit-hash: 2d69f3d63e
2023-09-08 16:06:16 -07:00
Mitchell Goff
cd7d73eaf8 Added ModelRunner helpers in modeld/runners/__init__.py (#29737)
* Added ModelRunner helper class

* import Runtime in __init__.py
old-commit-hash: d5a55136a1
2023-08-31 14:19:20 -07:00
mitchellgoffpc
aca5580900 Move Runtime into runmodel_pyx
old-commit-hash: f91e955a86
2023-08-31 13:51:50 -07:00
mitchellgoffpc
e9c82290c0 Remove unnecessary hardware check in modeld
old-commit-hash: 857f747467
2023-08-31 13:51:49 -07:00
Mitchell Goff
fa770f1ccc Combine update_calibration/get_warp_matrix (#29719)
old-commit-hash: 151ac4bf76
2023-08-30 15:16:29 -07:00
Mitchell Goff
54988e457f Move update_calibration to modeld.py (#29688)
* Move update_calibration to modeld.py

* Updated ref commit
old-commit-hash: 1eb60516cb
2023-08-30 14:12:52 -07:00
Mitchell Goff
c4ae1fae5a Added USE_THNEED environment variable and removed build flag (#29645)
old-commit-hash: d998fd88a8
2023-08-29 14:07:57 -07:00
Mitchell Goff
a3fbbb26ac Rewrite modeld in python (#29230)
* Added modeld.py (WIP)

* No more VisionIpcBufExtra

* Started work on cython bindings for runmodel

* Got ONNXModel cython bindings mostly working, added ModelFrame bindings

* Got modeld main loop running without model eval

* Move everything into ModelState

* Doesn't crash!

* Moved ModelState into modeld.py

* Added driving_pyx

* Added cython bindings for message generation

* Moved CLContext definition to visionipc.pxd

* *facepalm*

* Move cl_pyx into commonmodel_pyx

* Split out ONNXModel into a subclass of RunModel

* Added snpemodel/thneedmodel bindings

* Removed modeld.cc

* Fixed scons for macOS

* Fixed sconscript

* Added flag for thneedmodel

* paths are now relative to openpilot root dir

* Set cl kernel paths in SConscript

* Set LD_PRELOAD=libthneed.so to fix ioctl interception

* Run from root dir

* A few more fixes

* A few more minor fixes

* Use C update_calibration for now to exactly match refs

* Add nav_instructions input

* Link driving_pyx.pyx with transformations

* Checked python FirstOrderFilter against C++ FirstOrderFilter

* Set process name to fix test_onroad

* Revert changes to onnxmodel.cc

* Fixed bad onnx_runner.py path in onnxmodel.cc

* Import all constants from driving.h

* logging -> cloudlog

* pylint import-error suppressions no longer needed?

* Loop in SConscript

* Added parens

* Bump modeld cpu usage in test_onroad

* Get rid of use_nav

* use config_realtime_process

* error message from ioctl sniffer was messing up pyenv

* cast distance_idx to int

* Removed cloudlog.infos in model.run

* Fixed rebase conflicts

* Clean up driving.pxd/pyx

* Fixed linter error
old-commit-hash: 72a3c987c0
2023-08-25 14:36:26 -07:00