Files
StarPilot/third_party/acados/build.sh
T
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: d09dffb7cd99aefb7e3c251265f2cfd9ae9e72f8
2022-02-25 14:16:44 -08:00

76 lines
2.0 KiB
Bash
Executable File

#!/usr/bin/bash -e
DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" >/dev/null && pwd)"
ARCHNAME="x86_64"
BLAS_TARGET="X64_AUTOMATIC"
if [ -f /TICI ]; then
ARCHNAME="larch64"
BLAS_TARGET="ARMV8A_ARM_CORTEX_A57"
elif [ -f /EON ]; then
ARCHNAME="aarch64"
BLAS_TARGET="ARMV8A_ARM_CORTEX_A57"
fi
if [ ! -d acados_repo/ ]; then
#git clone https://github.com/acados/acados.git $DIR/acados
git clone https://github.com/commaai/acados.git $DIR/acados_repo
fi
cd acados_repo
git fetch
git checkout 92b85c61f7358a1b08b7cd30aeb9d32ad15942e8
git submodule update --recursive --init
# build
mkdir -p build
cd build
cmake -DACADOS_WITH_QPOASES=ON -UBLASFEO_TARGET -DBLASFEO_TARGET=$BLAS_TARGET ..
make -j4 install
INSTALL_DIR="$DIR/$ARCHNAME"
rm -rf $INSTALL_DIR
mkdir -p $INSTALL_DIR
rm $DIR/acados_repo/lib/*.json
cp -r $DIR/acados_repo/include $DIR
cp -r $DIR/acados_repo/lib $INSTALL_DIR
cp -r $DIR/acados_repo/interfaces/acados_template/acados_template $DIR/../../pyextra
#pip3 install -e $DIR/acados/interfaces/acados_template
# hack to workaround no rpath on android
if [ -f /EON ]; then
pushd $INSTALL_DIR/lib
for lib in $(ls .); do
if ! readlink $lib; then
patchelf --set-soname $PWD/$lib $lib
if [ "$lib" = "libacados.so" ]; then
for nlib in "libhpipm.so" "libblasfeo.so" "libqpOASES_e.so.3.1"; do
patchelf --replace-needed $nlib $PWD/$nlib $lib
done
fi
if [ "$lib" = "libhpipm.so" ]; then
patchelf --replace-needed libblasfeo.so $PWD/libblasfeo.so $lib
fi
# pad extra byte to workaround bionic linker bug
# https://android.googlesource.com/platform/bionic/+/93ce35434ca5af43a7449e289959543f0a2426fa%5E%21/#F0
dd if=/dev/zero bs=1 count=1 >> $lib
fi
done
popd
cd $DIR
git checkout $INSTALL_DIR/t_renderer
fi
# build tera
# build with commaai/termux-packages for NEOS
if [ ! -f /EON ]; then
cd $DIR/acados_repo/interfaces/acados_template/tera_renderer/
cargo build --verbose --release
cp target/release/t_renderer $INSTALL_DIR/
fi