tudoroancea / ihm2

Display of my skills in optimal control for autonomous race cars
MIT License
3 stars 0 forks source link
autonomous-car autonomous-racing foxglove model-predictive-control nonlinear-optimization optimal-control racecar-simulator ros2 vehicle-modeling

IHM2

This repository showcases a summary of the skills and knowledge I acquired between 2021 and 2022 at the EPFL Racing Team. This student led initiative designs and builds each year a new electric autonomous racecar taking part in the Formula Student competitions. I was in charge of the control of the autonomous racing car Ariane.

It features:

No part of this code (except for some external dependencies) was used at any point by the EPFL Racing Team. Everything was entirely developed after my departure for the sole purpose to display my skills and knowledge in vehicle modelling, control and software development.

Workspace setup

  1. install miniforge3:
cd $HOME
curl -L -O "https://github.com/conda-forge/miniforge/releases/latest/download/Miniforge3-$(uname)-$(uname -m).sh"
bash Miniforge3-$(uname)-$(uname -m).sh
  1. clone this repository wherever you want:
git clone https://github.com/tudoroancea/ihm2 --filter=blob:none
cd ihm2
  1. create a conda env
mamba env create -f env.yml
  1. install acados
mamba activate ihm2
cd $HOME/miniforge3/envs/ihm2/src
git clone https://github.com/acados/acados.git --recurse-submodules --filter=blob:none
cd acados
mkdir build && cd build
cmake -DACADOS_WITH_OPENMP=ON ..
make install -j6
echo "export ACADOS_SOURCE_DIR=\$HOME/miniforge3/envs/ihm2/src/acados" >> ~/miniforge3/envs/ihm2/setup.sh
echo "export LD_LIBRARY_PATH=\$LD_LIBRARY_PATH:\$ACADOS_SOURCE_DIR/lib" >> ~/miniforge3/envs/ihm2/setup.sh
echo "export DYLD_LIBRARY_PATH=\$DYLD_LIBRARY_PATH:\$ACADOS_SOURCE_DIR/lib" >> ~/miniforge3/envs/ihm2/setup.sh
mamba deactivate
mamba activate ihm2
pip3 install -e $ACADOS_SOURCE_DIR/interfaces/acados_template
  1. build workspace (first cd back to the dir where you cloned this repo):
chmod +x scripts/*.sh
./scripts/build.sh

Foxglove Studio

You can download the latest version of Foxglove Studio from here. To visualize data, you can then import the created layout in templates/ihm2_foxglove.json and run the following command to run the foxglove bridge:

ros2 launch foxglove_ros_bridge foxglove_ros_bridge_launch.xml

References & credits