Commit Graph

72 Commits

Author SHA1 Message Date
Justin Newberry
3b91610c0b Precommit: ensure executable bit is set (#29784)
* precommit ensure executable

* exclude tinygrad

* bump submodules

* exclude tinygrad globally
old-commit-hash: 4e69937d0d
2023-09-05 16:33:26 -07:00
Adeeb Shihadeh
952ca664fa Update Python packages and pre-commit hooks (#29739)
* Update Python packages and pre-commit hooks

* fix linter

---------

Co-authored-by: adeebshihadeh <adeebshihadeh@users.noreply.github.com>
old-commit-hash: 9719b22761
2023-08-31 15:00:13 -07:00
Kacper Rączy
b580f19448 scons: fix multithreaded builds (#29716)
* common_python export

* Single scons call

* transformations_python
old-commit-hash: d138a358eb
2023-08-31 00:01:03 +02:00
Kacper Rączy
48d933970b mpc_lib: fix dependencies (#29621)
* Remove common dependency of lateral mpc

* Replace cereal dir dependency with cereal lib in long mpc

* Add missing files to generated sources

* Typo fix

* messaging_python dep
old-commit-hash: 517499294a
2023-08-25 16:51:57 -07:00
Dean Lee
7b4400f2c6 scons: remove missing MPC headers (#29485)
* remove invalid files

* Update selfdrive/controls/lib/lateral_mpc_lib/SConscript

Co-authored-by: Shane Smiskol <shane@smiskol.com>

* Apply suggestions from code review

---------

Co-authored-by: Shane Smiskol <shane@smiskol.com>
old-commit-hash: 55cca6ed26
2023-08-23 15:43:27 -07:00
Adeeb Shihadeh
16ec56398c add openpilot prefix to imports (#29498)
* add openpilot prefix to imports

* more

* more

* fix docs

* fix linter

* bump submodules

* fix patched tests

* update dynamic imports

* debug

* Revert "debug"

This reverts commit db5e13b9911cc74438bee123bc3430da6c31b24b.

* fix pm test
old-commit-hash: a9626f95b6
2023-08-20 20:49:55 -07:00
Adeeb Shihadeh
51634f52dc replace custom clock helpers with time module (#29499)
* replace custom clock stuff wtih time module

* fix double

* fix release

* bump cereal

* update type

* fix one more
old-commit-hash: d61f86d339
2023-08-20 18:50:58 -07:00
Justin Newberry
d487c0501f Ruff: enable most of bugbear (#29320)
* added mutable default args

* most of the Bs

* add comment about lrucache
old-commit-hash: 62c1e65924
2023-08-11 15:33:49 -07:00
Justin Newberry
3ee0786de3 CI: Pylint to ruff (#29294)
* pylint to riff

* pylint to riff

* pylint to riff

* revert more

* undo exclude removal

* exclude tinygrad

* set line length

* pylint exclusions to ruff

* same excludes as old linter

* fix tools QA

* remove unrequired check

* revert linting third_party

* ignore e402
old-commit-hash: 7fdd9fc37c
2023-08-09 13:26:54 -07:00
Justin Newberry
7b677910df Linter: Fix >160 line length test (#29287)
* test

* fix line length

* fix line length

* fix file size

* revert poetry

* cleanup for PR
old-commit-hash: cf64b27168
2023-08-08 17:13:35 -07:00
Kacper Rączy
edc31db6df aarch64: ubuntu build support (#29171)
* Add support for aarch64 pc linux

* Add new libyuv path to release files

* Add libyuv's x86_64 lib dir

* Move left-over platform specific dirs from files_common

* Remove libyuv/lib directory (duplicate)

* Fix mpc Sconscripts

* Remove acados lib path from mpc sources

* Fix typo

* Add watch3 exec on aarch64
old-commit-hash: c640429406
2023-08-01 16:18:46 -07:00
Lee Jong Mun
de51cfd9e5 controls: use common car interface acceleration limits (#29184)
* Duplicate Accel param

using interfaces accel param

* revert brand accel value

* import error

* sort

---------

Co-authored-by: Shane Smiskol <shane@smiskol.com>
old-commit-hash: a61df2bdde
2023-07-31 22:56:47 -07:00
Maxime Desroches
06125f1309 Test scons multithreaded random build (#29082)
* random build

* name

* 2 pass

* clean after

* fail on this

* fix deps

* format

* var

* try without lfs
old-commit-hash: 97eec45d42
2023-07-21 21:57:27 -07:00
Harald Schäfer
8a48732784 radard: no clustering (#29010)
* First commit

* cleanup

* Update ref

* Doesnt deserve two files

* cleanup radard
old-commit-hash: ca699e3989
2023-07-19 20:31:40 -07:00
eFini
05181ed6b1 long_mpc: clean up get_T_FOLLOW() usage (#29033)
old-commit-hash: 7a5dbe6132
2023-07-19 02:07:01 -07:00
Harald Schäfer
075dc34240 Test and fix cruise speed all personalities (#28658)
* Fix cruise speed in non-standard mode

* Test all personalities

* Test only critical speeds

* 35ms max
old-commit-hash: ae3681f2bb
2023-06-23 17:14:41 -07:00
Harald Schäfer
36aa81cdc3 Driving Personality setting (also changes follow distance) (#24742)
* Skeleton

* Adjustable follow parameter

* fix rebase

* long planner

* typo

* Add ui toggle

* Fix icon

* Improve text

* Better toggle position

* Im a UX engineer now

* add param reader

* CHange jerk to have same crash test performance

* Try reading param

* Unused comment

* translate ui text

* std stoi

* Parametrized buttons

* Empty strings are ints

* Move to generic

* Update translations

* Fix translation diffs

* Release notes

* update refs

* tweaks

* Misc fixes

* No param is standard
old-commit-hash: 205c900742
2023-06-05 22:17:41 -07:00
Harald Schäfer
73561f01e0 Expand lateral MPC to 10s (#27343)
* 10s lat

* Full length MPC

* redfine N

* Leave controls the same for now

* Updates

* use long plan in lat plan

* interp plan

* add new interp

* simplergit add selfdrive/controls/plannerd.py selfdrive/controls/

* expand to 10s

* revert this

* fix linter

* Update sconscripts

* fix test

* fix test

* fix test

* Revert "Update sconscripts"

This reverts commit 6e23c69dcebd5ed003e37e01921f6af7c31de0db.

* Dont import drive helpers

* better compile deps

* fix compile

* comment

* update replay

* Update plannerd time
old-commit-hash: 04fe6c4ec7
2023-02-17 15:28:26 -08:00
Shane Smiskol
f941060caa Longitudinal tests: test forceDecel (#26765)
* test with forceDecel

* test all combos

* fix

* fix

* fix

* ...

* remove print

* clean up

* just set cruise to 0

* update ref commit

Co-authored-by: Bruce Wayne <harald.the.engineer@gmail.com>
old-commit-hash: b45dda2d0a
2023-01-10 14:46:43 -08:00
Adeeb Shihadeh
b3e47c691b move all third party stuff into third_party/ (#26853)
* mv fastcluster

* move msm_kgsl.h

* camerad include

* update path

* mv pyextra

* fix tici build

* add acados_template to release build

Co-authored-by: Comma Device <device@comma.ai>
old-commit-hash: cd8e03d53e
2022-12-31 21:00:50 -08:00
YassineYousfi
7d5a2309a7 long_mpc: fix e2e source condition (#26546)
* fix long_mpc source param

* rm print

* add back space for formatting
old-commit-hash: ded66e6307
2022-11-21 15:25:23 -08:00
Harald Schäfer
dfd47a5f4d Add force decel to e2e long (#26448)
* add force decel to e2e

* Update longitudinal_planner.py
old-commit-hash: f23296bc87
2022-11-11 10:46:03 -05:00
Harald Schäfer
f10cccb318 FCW: less false positives (#26366)
* Less FP for FCW

* enable fcw for e2e long
old-commit-hash: 253e5d7f9d
2022-11-06 12:17:07 -08:00
HaraldSchafer
742310271b Long control: add a_change cost in e2e mode (#26237)
Add e2e cost
old-commit-hash: dcde942d9f
2022-10-25 16:53:24 -07:00
HaraldSchafer
a8ec6f4cfd Rocket Launcher Model (#25963)
* 1456d261-d232-4654-8885-4d9fde883894/440 6b7d7cec-ead8-40f3-86cc-86d52c9b03fe/300

* compute only 9 tokens: 1456d261-d232-4654-8885-4d9fde883894/440 6b7d7cec-ead8-40f3-86cc-86d52c9b03fe/300

* tinygrad: cleanup gather

* 1456d261-d232-4654-8885-4d9fde883894/440 6b7d7cec-ead8-40f3-86cc-86d52c9b03fe/700

* empty commit for tests

* bump tinygrad

* dont use tinygrad matmul for now

* bump tinygrad

* 1456d261-d232-4654-8885-4d9fde883894/440 e63ab895-2222-4abd-a9a5-af86bb70e260/700

* float16 1456d261-d232-4654-8885-4d9fde883894/440 e63ab895-2222-4abd-a9a5-af86bb70e260/700

* increase steer rate cost

* Revert "increase steer rate cost"

This reverts commit 74ce9ab9be7ef17ecfec931f96851b12f37f2336.

* fork tinygrad

* empty commit for tests

* basics

* Kinda works

* new lat

* new tuning

* Move LATMPCN so scons compiles

* Update long weights

* Add tinygrad optim

* Update model ref

* update weights

* Update ref

* Try

* Error message for field ignore

* update model regf

* ref commit

* Fix onnx test

Co-authored-by: Yassine Yousfi <yyousfi1@binghamton.edu>
old-commit-hash: cb0b7375b7
2022-10-05 21:43:38 -07:00
HaraldSchafer
f25d434a01 Planner cleanup (#25969)
old-commit-hash: e5d2c3ce7a
2022-10-04 21:19:04 -07:00
Lee Jong Mun
f6700cb7ba remove blank whitespace (#25921)
old-commit-hash: 7df0e3efcf
2022-09-29 13:52:41 -07:00
HaraldSchafer
10bc36ae58 Minor ACC fixes (#25911)
* Change cruise accel limits

* Long tuning script looks good

* Cap cruise slowdown aggression in e2e mode

* Revert atau change

* Cleanup

* Update ref

* fix ref
old-commit-hash: 1007df874f
2022-09-28 13:27:07 -07:00
HaraldSchafer
0b87a4ddb1 More conservative lead policy in e2e long mode (#25684)
* Add params for lead and danger

* fix long params

* E2e passes simple maneuver tests

* Make tests run with e2e long mode

* Slightly more error allowed in e2e mode

* FCW back and populate long source field

* Fix planner name

* FCW still doesnt work

* Slightly less aggressive

* Doesn't need to simulate from stop
old-commit-hash: 7899fb79c1
2022-09-06 21:52:34 -07:00
HaraldSchafer
0cccf195f3 Add e2e long toggle (#25638)
* Add toggle

* Misc fixes

* Update translations

* pre alpha not great
old-commit-hash: faff2b8950
2022-09-02 00:24:53 -07:00
HaraldSchafer
4b8547c7a4 Support e2e long in longitudinal planner (#25636)
* refactor

* Add planer modes to support offline, acc, and blended

* add acceleration

* Fix index

* Update model ref

* Read in model outputs

* Add model msg

* Add e2e logic

* Add source
old-commit-hash: e1b7a37a1f
2022-09-01 15:40:25 -07:00
HaraldSchafer
c4dcf67acc Long e2e planner: better xva weights (#24893)
better long xva weights
old-commit-hash: 2c877ce490
2022-06-17 10:35:24 -07:00
Adeeb Shihadeh
3c48bc47b7 Move a bunch of stuff to system/ part 3 (#24829)
* move swaglog.py

* timezoned

* logmessaged

* version.py

* fix linter
old-commit-hash: 0fce5d9045
2022-06-11 23:19:27 -07:00
Vivek Aithal
8823b9e4a5 longitudinal_mpc: Compute forward distance from velocity (#24328)
* add vel integ as x in e2e long mpc

* add comment
old-commit-hash: 1a9f5d29d4
2022-04-25 20:15:04 -07:00
Adeeb Shihadeh
5a9644261f remove comma two support (#24248)
* remove comma two support

* cleanup release files

* little more

* more libs

* no more gralloc

* add snpe back
old-commit-hash: 5c48e7bc86
2022-04-18 17:55:23 -07:00
Jonathan Frey
059dbf57e7 longitudinal MPC: use reset() function instead of recreating the solver in (#24091)
* scons: add acados_template as dependency for lat and long mpc

* long MPC: use acados reset instead of recreating the solver

* long MPC: print timings and reset commented

* update acados x86_64

* update acados include folder

* update acados Python interface

* update acados reference commit to latest acados/master

* update x86 libs

* update comma two

* update acados again with commit 8ea8827fafb1b23b4c7da1c4cf650de1cbd73584

* update comma two

* update comma three

* update x86

Co-authored-by: Adeeb Shihadeh <adeebshihadeh@gmail.com>
Co-authored-by: Comma Device <device@comma.ai>
old-commit-hash: a9bac5acf8
2022-04-01 15:39:41 -07:00
Adeeb Shihadeh
479ac5753c longitudinal MPC: add MAX_T in T_IDXS_LST (#23960)
* longitudinal MPC: add MAX_T in T_IDXS_LST

* update refs

Co-authored-by: KexianShen <shenkexian@gmail.com>
old-commit-hash: f1aab78d08
2022-03-13 21:45:23 -07:00
Jonathan Frey
3bd71500bd Upstreamed and update acados (#23927)
* change acados version to finalized PR https://github.com/acados/acados/pull/791

* acados: update include and x86_64 build

* acados: update pyextra

* adapt mpc files to updated acados

* acados buid: clear acados_template and include dir before updating

* update acados again

* acados MPC: only generate solver, building is done via scons

* update acados to latest acados/master

* c3 libs

* c2 libs

* acados scons files: add acados build script as a dependency

* acados scons files: add libacados.so and ocp_nlp_interface.h, build script not in files_common

* update acados

* adapts long & lat MPC file

* update acados reference commit to acados/master

Co-authored-by: Comma Device <device@comma.ai>
old-commit-hash: d653dd843a
2022-03-11 11:49:27 +01:00
Jonathan Frey
0d5d9a43d3 Longitudinal MPC set qp tolerance to 1e-3 (#23899)
* initialize solverExecutionTime longitudinal_planner

* test_onroad: improve timing evaluation

* longitudinal MPC: set qp_tol to 1e-3

* update ref

Co-authored-by: Harald Schafer <harald.the.engineer@gmail.com>
old-commit-hash: ab371f888a
2022-03-02 21:38:40 -08:00
Jonathan Frey
aa549592f7 remove trivial terminal constraint and associated CasADi generated functions (#23898)
* remove trivial terminal constraint and associated CasADi generated functions

* Update refs

Co-authored-by: Harald Schafer <harald.the.engineer@gmail.com>
old-commit-hash: 1801baba68
2022-03-02 20:53:21 -08:00
Jonathan Frey
baab5d7a7b Cython acados and minor (#23835)
* acados_ocp_solver_pyx.pyx: implement get_stats for timings and ints

* long_mpc: use acados timers

* acados_ocp_solver_pyx.pyx: fix dynamics_get

* acados_ocp_solver_pyx.pyx: get statistics

* use acados_ocp_solver_pyx.pyx from commaai/cython2 branch

* acados_ocp_solver_pyx.pyx: implement store_iterate

* acados_ocp_solver_pyx.pyx: implement get_residuals

* acados_ocp_solver_pyx.pyx: fix set() for empty fields

* acados_ocp_solver_pyx.pyx: load_iterate

* cython acados: add print_statistics

* test_following_distance: fix typo

* test_longitudinal: unique names for test maneuvers

* longitudinal MPC: comments for evaluation

* longitudinal MPC: add comments to eval acados residuals

* long_mpc: use qp_solver_cond_N = 1

* long MPC: comments, simplify set_cur_state

* update acados version in build script

* longitudinal mpc: weigh a_change in 1 place only

* update ref

* Update ref

Co-authored-by: Harald Schafer <harald.the.engineer@gmail.com>
old-commit-hash: d09dffb7cd
2022-02-25 14:16:44 -08:00
Willem Melching
dc16307917 longitudinal planner: disable change cost when stopped. not engaged or gas pressed (#23639)
* disable change cost completely on standstill and gas press

* cleanup

* set accel to zero

* clean up logic around standstill

* update ref
old-commit-hash: 428d412c1f
2022-02-21 16:14:41 +01:00
Willem Melching
dce057d29f Log MPC solver time (#23566)
* add solve time to plan output

* add to process replay ignore list

* print in CI
old-commit-hash: f76328b426
2022-01-18 14:51:03 +01:00
Shane Smiskol
b500034b8d LongitudinalMpc: Remove class accel_limit_arr (#23295)
* remove class accel_limit_arr

remove class accel_limit_arr

* make it static

* only set static parameters once

* just use existing function

style

* Update selfdrive/controls/lib/longitudinal_mpc_lib/long_mpc.py

* Update selfdrive/controls/lib/longitudinal_mpc_lib/long_mpc.py

Co-authored-by: Willem Melching <willem.melching@gmail.com>
old-commit-hash: 9cb0ebe37d
2022-01-04 16:00:29 +01:00
Shane Smiskol
d5bf8e0e65 LongitudinalMpc: minor clean up (#23296)
* correct order

* formatting

* Revert "formatting"

This reverts commit 481c390f400179f5d0d8f9b5a3066cb68e484d0c.

* use np.zeros

* typos and formatting

* typo

* typo
old-commit-hash: 5387806400
2021-12-28 12:05:52 +01:00
Ewout ter Hoeven
f206ebd054 Pyupgrade 3.6: Update syntax with Python 3.6+ features (#23305)
Updated Python code with Python 3.6+ features:
- utf-8 encoding is now the default (PEP 3120)
- Replace list comprehensions by Generator Expressions (PEP 289)
- Replace yield loop by yield from (PEP 380)
- Remove the (object) subclass when defining a class
- Replace the IOError alias by OSError (PEP 3151)
- Define sets with curly braces {} instead of set()
- Remove "r" parameter from open function, which is default

Co-Authored-By: Adeeb Shihadeh <8762862+adeebshihadeh@users.noreply.github.com>
Co-Authored-By: GregorKikelj <96022003+GregorKikelj@users.noreply.github.com>

Co-authored-by: Adeeb Shihadeh <8762862+adeebshihadeh@users.noreply.github.com>
Co-authored-by: GregorKikelj <96022003+GregorKikelj@users.noreply.github.com>
old-commit-hash: 332f568a82
2021-12-24 11:18:39 -08:00
George Hotz
6bac4f1c4a build for mac (#23048)
old-commit-hash: 16dd7ce1fe
2021-12-18 22:00:09 -08:00
Ewout ter Hoeven
a962365292 Convert format strings strings to f-strings (#23241)
* Convert all text strings to f-strings

Reformats all the text from the old "%-formatted" and .format(...) format to the newer f-string format, as defined in PEP 498. This requires Python 3.6+.

Flynt 0.69 was used to reformat the strings. 120 f-strings were created in 51 files.

F-strings are in general more readable, concise and performant. See also: https://www.python.org/dev/peps/pep-0498/#rationale

* revert pyextra changes

* revert ublox.py

Co-authored-by: Willem Melching <willem.melching@gmail.com>
old-commit-hash: 55390d273f
2021-12-16 14:58:17 +01:00
HaraldSchafer
00749bd3cd XVA long policy: prev_a becomes numpy anyway (#23175)
old-commit-hash: c41a0cae4b
2021-12-08 16:06:09 -08:00
Harald Schafer
3ee06e92ed Long mpc: fix xva policy for sim
old-commit-hash: 7e20fe7ca2
2021-12-08 15:42:30 -08:00