Rebuild acado and add scons command to regenerate mpc (#19685)

* rebuild acado and add scons command to regenerate mpc

* update scons help
pull/19687/head
Willem Melching 4 years ago committed by GitHub
parent 61cf81502e
commit 7c43a60bda
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 10
      .gitattributes
  2. 4
      SConstruct
  3. 3
      phonelibs/acado/aarch64/lib/libacado_casadi.a
  4. 3
      phonelibs/acado/aarch64/lib/libacado_csparse.a
  5. 3
      phonelibs/acado/aarch64/lib/libacado_qpoases.a
  6. 3
      phonelibs/acado/aarch64/lib/libacado_toolkit.a
  7. 1
      phonelibs/acado/aarch64/lib/libacado_toolkit_s.so
  8. 3
      phonelibs/acado/aarch64/lib/libacado_toolkit_s.so.1.2.2beta
  9. 29
      phonelibs/acado/build.sh
  10. 16
      phonelibs/acado/build.txt
  11. 2
      phonelibs/acado/include/acado/code_generation/templates/templates.hpp
  12. 3
      phonelibs/acado/x64/lib/libacado_casadi.a
  13. 3
      phonelibs/acado/x64/lib/libacado_csparse.a
  14. 3
      phonelibs/acado/x64/lib/libacado_qpoases.a
  15. 3
      phonelibs/acado/x64/lib/libacado_toolkit.a
  16. 1
      phonelibs/acado/x64/lib/libacado_toolkit_s.so
  17. 1
      phonelibs/acado/x64/lib/libacado_toolkit_s.so.1
  18. 3
      phonelibs/acado/x64/lib/libacado_toolkit_s.so.1.2.2beta
  19. 0
      phonelibs/acado/x86_64/lib/libacado_toolkit_s.so.1
  20. 3
      phonelibs/acado/x86_64/lib/libacado_toolkit_s.so.1.2.2beta
  21. 37
      selfdrive/controls/lib/lateral_mpc/SConscript
  22. 38
      selfdrive/controls/lib/longitudinal_mpc/SConscript

10
.gitattributes vendored

@ -7,11 +7,11 @@
*.ipynb filter=nbstripout -diff
external/ffmpeg/bin/ffmpeg_cuda filter=lfs diff=lfs merge=lfs -text
models/segnet.keras filter=lfs diff=lfs merge=lfs -text
phonelibs/acado/x64/lib/libacado_toolkit.a filter=lfs diff=lfs merge=lfs -text
phonelibs/acado/x64/lib/libacado_toolkit_s.so.1.2.2beta filter=lfs diff=lfs merge=lfs -text
phonelibs/acado/x64/lib/libacado_casadi.a filter=lfs diff=lfs merge=lfs -text
phonelibs/acado/x64/lib/libacado_csparse.a filter=lfs diff=lfs merge=lfs -text
phonelibs/acado/x64/lib/libacado_qpoases.a filter=lfs diff=lfs merge=lfs -text
phonelibs/acado/x86_64/lib/libacado_toolkit.a filter=lfs diff=lfs merge=lfs -text
phonelibs/acado/x86_64/lib/libacado_toolkit_s.so.1.2.2beta filter=lfs diff=lfs merge=lfs -text
phonelibs/acado/x86_64/lib/libacado_casadi.a filter=lfs diff=lfs merge=lfs -text
phonelibs/acado/x86_64/lib/libacado_csparse.a filter=lfs diff=lfs merge=lfs -text
phonelibs/acado/x86_64/lib/libacado_qpoases.a filter=lfs diff=lfs merge=lfs -text
phonelibs/acado/aarch64/lib/libacado_toolkit.a filter=lfs diff=lfs merge=lfs -text
phonelibs/acado/aarch64/lib/libacado_toolkit_s.so.1.2.2beta filter=lfs diff=lfs merge=lfs -text
phonelibs/acado/aarch64/lib/libacado_casadi.a filter=lfs diff=lfs merge=lfs -text

@ -25,6 +25,10 @@ AddOption('--compile_db',
action='store_true',
help='build clang compilation database')
AddOption('--mpc-generate',
action='store_true',
help='regenerates the mpc sources')
real_arch = arch = subprocess.check_output(["uname", "-m"], encoding='utf8').rstrip()
if platform.system() == "Darwin":
arch = "Darwin"

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:02c9bdd43a4c5692c16cb437ab000e74efc908d4dcefb39144f7a0eb0e5b67ab
size 33782

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:9a6bd05cc21d157f8705575df0ef69d02974375bc800edd353d504635ca090bd
size 92090

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:be4f11bcff1de30751fbf8fb014d0e14d7334c17fac3dfd4cb2f445391a08946
size 634068

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:80a5b92a8162edd22507d2d9e9abf794ebd4aa4b5affa398443a01f6ab71fde3
size 23341704

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:b21d9a8c8b68715062830ed91420bad10622ae157f8daecca98adb7082c7de43
size 8813880

@ -0,0 +1,29 @@
#!/usr/bin/env sh
set -e
rm -rf acado
git clone https://github.com/acado/acado.git
cd acado
git reset --hard 5adb8cbcff5a5464706a48eaf073218ac87c9044
# Clang 8 fixes
git apply ../01.patch
sed -i '100d' cmake/CompilerOptions.cmake
sed -i '100d' cmake/CompilerOptions.cmake
mkdir build
cd build
cmake -DACADO_WITH_EXAMPLES=OFF -DACADO_BUILD_STATIC=ON -DCMAKE_INSTALL_PREFIX="$HOME/openpilot/phonelibs/acado" ..
make -j$(nproc)
make install
cd ..
cd ..
rm -r x86_64
mkdir x86_64
mv lib x86_64/lib
cp acado/build/lib/* x86_64/lib/
rm -rf acado
rm -r share

@ -1,16 +0,0 @@
git clone https://github.com/acado/acado.git
cd acado
git reset --hard 5adb8cbcff5a5464706a48eaf073218ac87c9044
# Clang 8 fixes
# git apply 01.patch
# sed -i '100d' cmake/CompilerOptions.cmake
# sed -i '100d' cmake/CompilerOptions.cmake
mkdir build
cd build
cmake -DACADO_WITH_EXAMPLES=OFF -DACADO_BUILD_STATIC=ON -DCMAKE_INSTALL_PREFIX="$HOME/one/phonelibs/acado" ..
make -j4
make install

@ -1,7 +1,7 @@
#ifndef ACADO_TOOLKIT_TEMPLATES_HPP
#define ACADO_TOOLKIT_TEMPLATES_HPP
#define TEMPLATE_PATHS "/home/batman/tmpbld/acado/acado/code_generation/templates;/home/batman/one/phonelibs/acado/include/acado/code_generation/templates;/data/data/com.termux/files/home/one/phonelibs/acado/include/acado/code_generation/templates"
#define TEMPLATE_PATHS "/home/batman/openpilot/phonelibs/acado/acado/acado/code_generation/templates;/home/batman/openpilot/phonelibs/acado/include/acado/code_generation/templates"
#define INTEGRATOR_MEX_TEMPLATE "integrator_mex.c.in"
#define RHS_MEX_TEMPLATE "rhs_mex.c.in"

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:9b4709c7fd3a4e6bdddfaee0d4482087ba1ea1a90c71d4a16652f1b363e010e8
size 49744

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:ebe06e3c6876190aae26d48b1dfbfb5a50d1887e5d6e6482669e48caabc1a80e
size 141978

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:4cf01f68ba2dca1054334af49c77b443267b33551efe188f3176ac176b93fd7e
size 754948

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:469251cfd2abb76655132f3de1da86f91fe1f581701fe1780cb1c77074d7fa3b
size 26405540

@ -1 +0,0 @@
libacado_toolkit_s.so.1.2.2beta

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:72239a2333dadef2e351e0a627c68e43fef7d8d6c9ea674f07b6c81d91f4db5e
size 10249488

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:178937c40ec3326eab01c62f3239a885cbfb1308af65436d831dd4fa6a7d619e
size 10304768

@ -7,23 +7,40 @@ cpp_path = [
"#phonelibs/qpoases/INCLUDE/EXTRAS",
"#phonelibs/qpoases/SRC/",
"#phonelibs/qpoases",
"lib_mpc_export"
"lib_mpc_export",
]
generated_c = [
'lib_mpc_export/acado_auxiliary_functions.c',
'lib_mpc_export/acado_qpoases_interface.cpp',
'lib_mpc_export/acado_integrator.c',
'lib_mpc_export/acado_solver.c',
]
mpc_files = [
"lateral_mpc.c",
Glob("lib_mpc_export/*.c"),
Glob("lib_mpc_export/*.cpp"),
generated_h = [
'lib_mpc_export/acado_common.h',
'lib_mpc_export/acado_auxiliary_functions.h',
'lib_mpc_export/acado_qpoases_interface.hpp',
]
interface_dir = Dir('lib_mpc_export')
SConscript(['#phonelibs/qpoases/SConscript'], variant_dir='lib_qp', exports=['interface_dir'])
if GetOption('mpc_generate'):
generator_cpp = File('generator.cpp')
acado_libs = [File(f"#phonelibs/acado/{arch}/lib/libacado_toolkit.a"),
File(f"#phonelibs/acado/{arch}/lib/libacado_casadi.a"),
File(f"#phonelibs/acado/{arch}/lib/libacado_csparse.a")]
generator = env.Program('generator', generator_cpp, LIBS=acado_libs, CPPPATH=cpp_path,
CCFLAGS=env['CCFLAGS'] + ["-Wno-deprecated", "-Wno-overloaded-shift-op-parentheses"])
cmd = f"cd {Dir('.').get_abspath()} && {generator[0].get_abspath()}"
env.Command(generated_c + generated_h, generator, cmd)
mpc_files = ["lateral_mpc.c"] + generated_c
env.SharedLibrary('mpc', mpc_files, LIBS=['m', 'qpoases'], LIBPATH=['lib_qp'], CPPPATH=cpp_path)
# if arch != "aarch64":
# acado_libs = [File("#phonelibs/acado/x64/lib/libacado_toolkit.a"),
# File("#phonelibs/acado/x64/lib/libacado_casadi.a"),
# File("#phonelibs/acado/x64/lib/libacado_csparse.a")]
# env.Program('generator', 'generator.cpp', LIBS=acado_libs, CPPPATH=cpp_path)

@ -8,25 +8,41 @@ cpp_path = [
"#phonelibs/qpoases/INCLUDE/EXTRAS",
"#phonelibs/qpoases/SRC/",
"#phonelibs/qpoases",
"lib_mpc_export"
"lib_mpc_export",
]
generated_c = [
'lib_mpc_export/acado_auxiliary_functions.c',
'lib_mpc_export/acado_qpoases_interface.cpp',
'lib_mpc_export/acado_integrator.c',
'lib_mpc_export/acado_solver.c',
]
mpc_files = [
"longitudinal_mpc.c",
Glob("lib_mpc_export/*.c"),
Glob("lib_mpc_export/*.cpp"),
generated_h = [
'lib_mpc_export/acado_common.h',
'lib_mpc_export/acado_auxiliary_functions.h',
'lib_mpc_export/acado_qpoases_interface.hpp',
]
interface_dir = Dir('lib_mpc_export')
SConscript(['#phonelibs/qpoases/SConscript'], variant_dir='lib_qp', exports=['interface_dir'])
if GetOption('mpc_generate'):
generator_cpp = File('generator.cpp')
acado_libs = [File(f"#phonelibs/acado/{arch}/lib/libacado_toolkit.a"),
File(f"#phonelibs/acado/{arch}/lib/libacado_casadi.a"),
File(f"#phonelibs/acado/{arch}/lib/libacado_csparse.a")]
generator = env.Program('generator', generator_cpp, LIBS=acado_libs, CPPPATH=cpp_path,
CCFLAGS=env['CCFLAGS'] + ["-Wno-deprecated", "-Wno-overloaded-shift-op-parentheses"])
cmd = f"cd {Dir('.').get_abspath()} && {generator[0].get_abspath()}"
env.Command(generated_c + generated_h, generator, cmd)
mpc_files = ["longitudinal_mpc.c"] + generated_c
env.SharedLibrary('mpc1', mpc_files, LIBS=['m', 'qpoases'], LIBPATH=['lib_qp'], CPPPATH=cpp_path)
env.SharedLibrary('mpc2', mpc_files, LIBS=['m', 'qpoases'], LIBPATH=['lib_qp'], CPPPATH=cpp_path)
# if arch != "aarch64":
# acado_libs = [File("#phonelibs/acado/x64/lib/libacado_toolkit.a"),
# File("#phonelibs/acado/x64/lib/libacado_casadi.a"),
# File("#phonelibs/acado/x64/lib/libacado_csparse.a")]
# env.Program('generator', 'generator.cpp', LIBS=acado_libs, CPPPATH=cpp_path)

Loading…
Cancel
Save