Commit Graph

62 Commits

Author SHA1 Message Date
Kacper Rączy
c640429406 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
2023-08-01 16:18:46 -07:00
Lee Jong Mun
a61df2bdde 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>
2023-07-31 22:56:47 -07:00
Maxime Desroches
97eec45d42 Test scons multithreaded random build (#29082)
* random build

* name

* 2 pass

* clean after

* fail on this

* fix deps

* format

* var

* try without lfs
2023-07-21 21:57:27 -07:00
Harald Schäfer
ca699e3989 radard: no clustering (#29010)
* First commit

* cleanup

* Update ref

* Doesnt deserve two files

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

* Test all personalities

* Test only critical speeds

* 35ms max
2023-06-23 17:14:41 -07:00
Harald Schäfer
205c900742 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
2023-06-05 22:17:41 -07:00
Harald Schäfer
04fe6c4ec7 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
2023-02-17 15:28:26 -08:00
Shane Smiskol
b45dda2d0a 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>
2023-01-10 14:46:43 -08:00
Adeeb Shihadeh
cd8e03d53e 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>
2022-12-31 21:00:50 -08:00
YassineYousfi
ded66e6307 long_mpc: fix e2e source condition (#26546)
* fix long_mpc source param

* rm print

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

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

* enable fcw for e2e long
2022-11-06 12:17:07 -08:00
HaraldSchafer
dcde942d9f Long control: add a_change cost in e2e mode (#26237)
Add e2e cost
2022-10-25 16:53:24 -07:00
HaraldSchafer
cb0b7375b7 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>
2022-10-05 21:43:38 -07:00
HaraldSchafer
e5d2c3ce7a Planner cleanup (#25969) 2022-10-04 21:19:04 -07:00
Lee Jong Mun
7df0e3efcf remove blank whitespace (#25921) 2022-09-29 13:52:41 -07:00
HaraldSchafer
1007df874f 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
2022-09-28 13:27:07 -07:00
HaraldSchafer
7899fb79c1 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
2022-09-06 21:52:34 -07:00
HaraldSchafer
faff2b8950 Add e2e long toggle (#25638)
* Add toggle

* Misc fixes

* Update translations

* pre alpha not great
2022-09-02 00:24:53 -07:00
HaraldSchafer
e1b7a37a1f 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
2022-09-01 15:40:25 -07:00
HaraldSchafer
2c877ce490 Long e2e planner: better xva weights (#24893)
better long xva weights
2022-06-17 10:35:24 -07:00
Adeeb Shihadeh
0fce5d9045 Move a bunch of stuff to system/ part 3 (#24829)
* move swaglog.py

* timezoned

* logmessaged

* version.py

* fix linter
2022-06-11 23:19:27 -07:00
Vivek Aithal
1a9f5d29d4 longitudinal_mpc: Compute forward distance from velocity (#24328)
* add vel integ as x in e2e long mpc

* add comment
2022-04-25 20:15:04 -07:00
Adeeb Shihadeh
5c48e7bc86 remove comma two support (#24248)
* remove comma two support

* cleanup release files

* little more

* more libs

* no more gralloc

* add snpe back
2022-04-18 17:55:23 -07:00
Jonathan Frey
a9bac5acf8 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>
2022-04-01 15:39:41 -07:00
Adeeb Shihadeh
f1aab78d08 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>
2022-03-13 21:45:23 -07:00
Jonathan Frey
d653dd843a 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>
2022-03-11 11:49:27 +01:00
Jonathan Frey
ab371f888a 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>
2022-03-02 21:38:40 -08:00
Jonathan Frey
1801baba68 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>
2022-03-02 20:53:21 -08:00
Jonathan Frey
d09dffb7cd 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>
2022-02-25 14:16:44 -08:00
Willem Melching
428d412c1f 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
2022-02-21 16:14:41 +01:00
Willem Melching
f76328b426 Log MPC solver time (#23566)
* add solve time to plan output

* add to process replay ignore list

* print in CI
2022-01-18 14:51:03 +01:00
Shane Smiskol
9cb0ebe37d 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>
2022-01-04 16:00:29 +01:00
Shane Smiskol
5387806400 LongitudinalMpc: minor clean up (#23296)
* correct order

* formatting

* Revert "formatting"

This reverts commit 481c390f400179f5d0d8f9b5a3066cb68e484d0c.

* use np.zeros

* typos and formatting

* typo

* typo
2021-12-28 12:05:52 +01:00
Ewout ter Hoeven
332f568a82 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>
2021-12-24 11:18:39 -08:00
George Hotz
16dd7ce1fe build for mac (#23048) 2021-12-18 22:00:09 -08:00
Ewout ter Hoeven
55390d273f 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>
2021-12-16 14:58:17 +01:00
HaraldSchafer
c41a0cae4b XVA long policy: prev_a becomes numpy anyway (#23175) 2021-12-08 16:06:09 -08:00
Harald Schafer
7e20fe7ca2 Long mpc: fix xva policy for sim 2021-12-08 15:42:30 -08:00
HaraldSchafer
77a99e7d6d long planner: no reset when starting (#23149)
* long planner: no reset when starting

* let go to 2m/s

* update ref
2021-12-06 23:10:16 -08:00
Harald Schafer
9afc95474d add a change cost 2021-12-06 16:17:11 -08:00
HaraldSchafer
0dcdf9c30f Long policy: strictly squared stopped equivalence function (#23118)
* new ref

* never let lead stopped equivalence go down

* no overbraking

* stricter again

* cleanup

* updated refs
2021-12-03 16:12:30 -08:00
HaraldSchafer
5b0e10ea33 Reaction buffer on follow distance (#23112)
* Reaction time buffer

* new ref
2021-12-02 23:56:02 -08:00
HaraldSchafer
46fd5892bf Human inspired follow distance (#22937)
* Add cost for creep

* more reasonable cost

* seems better than before

* science tune

* more chill

* closer follow

* stopping takes some leeway

* better cruise

* needed to be cumsum all along

* jerk not even needed

* matches better

* 6 is too much

* add back

* a little extra buffer is good for badly tuned cars

* new refs

* refs again
2021-12-02 14:42:13 -08:00
HaraldSchafer
68015f75ed Set accel trajectory to a_ego when not engaged (#23100)
* Set accel trajectory to a_ego when not engaged

* update ref
2021-12-01 23:12:11 -08:00
HaraldSchafer
b3b45c8d29 Add cost to long plan change for smoother lag comp (#22923)
* add plan changing cost

* fix compile

* set weights

* try this cost

* horizon problem

* looks pretty good

* update refs

* update refs

* smoother plan changes
2021-11-16 17:57:55 -08:00
Joost Wooning
89d0a52d16 cython wrapper for acados (#22784)
* cython wrapper for acados

* fix building

* sconscript cleanup

* no cython numpy

* cleanup

* upgrade build script

* try without slices

* new acados commit

* c3 update acados libs

* c2 libs

* make faster

* undo profiling

* fix build

* somewhat faster

* tryout cost_set_slice

* Revert "tryout cost_set_slice"

This reverts commit d358d93a133270e4edab9e7c07ffb6f577c52bd6.

* cleanup

* undo t_renderer change

Co-authored-by: Comma Device <device@comma.ai>
2021-11-12 17:09:08 +01:00
HaraldSchafer
35d6ed1014 ACADOS: partial condensing (#22830)
* partial condense

* new refs

* new ref

* newerest refs
2021-11-09 19:29:55 -08:00
HaraldSchafer
7868baeac9 e2e long planner: use position, speed and accel (#22688)
* a little bit more moderate

* cleaner
2021-10-25 14:03:41 -07:00