Monash-Connected-Autonomous-Vehicle / ESDA

Software stack for MCAVs annual IGVC entry
0 stars 0 forks source link

ESDA

This repository holds the software stack for the Monash-Connected-Autonomous-Vehicle's IGVC 2024 entry, the ESDA (Electric Self Driving Automobile).

Setup and launch

Dependencies

Ensure ROS2 Humble Hawksbill is installed

This repository also uses various third party drivers to run for example SDKs for the zed camera & piksi multi. Run the following commands to install these (or refer to their respective ROS2 driver repositories for further instructions):

Install vcstool to help set up the ros2 workspace when cloning and buildings

sudo apt-get update
sudo apt install python3-vcstool

Run the following in any directory for swiftnav driver deps

git clone https://github.com/swift-nav/libsbp.git
cd libsbp
git checkout v4.11.0
cd c
git submodule update --init --recursive
mkdir build
cd build
cmake DCMAKE_CXX_STANDARD=17 -DCMAKE_CXX_STANDARD_REQUIRED=ON -DCMAKE_CXX_EXTENSIONS=OFF ../ 
make
sudo make install

sudo apt-get update
sudo apt-get install libserialport-dev
cd ../../../

Run the following to install zed driver dependencies

# install zed_sdk
wget -O zed_sdk https://download.stereolabs.com/zedsdk/4.1/cu121/ubuntu22
chmod +x zed_sdk
./zed_sdk

# base installer for cuda toolkit
wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/x86_64/cuda-ubuntu2204.pin
sudo mv cuda-ubuntu2204.pin /etc/apt/preferences.d/cuda-repository-pin-600
wget https://developer.download.nvidia.com/compute/cuda/12.4.1/local_installers/cuda-repo-ubuntu2204-12-4-local_12.4.1-550.54.15-1_amd64.deb
sudo dpkg -i cuda-repo-ubuntu2204-12-4-local_12.4.1-550.54.15-1_amd64.deb
sudo cp /var/cuda-repo-ubuntu2204-12-4-local/cuda-*-keyring.gpg /usr/share/keyrings/
sudo apt-get update
sudo apt-get -y install cuda-toolkit-12-4

# install driver
sudo apt-get install -y nvidia-driver-550-open
sudo apt-get install -y cuda-drivers-550

Building and sourcing

Run the following commands to create, build and source the workspace once all other dependencies have been met

mkdir esda_ws;
cd esda_ws;
git clone https://github.com/Monash-Connected-Autonomous-Vehicle/ESDA.git;

# import dependencies that cannot be rosdep installed or apt installed
vcs import ESDA < ESDA/esda.repos; 

# zed-ros2-wrapper utilizes a submodule that must be initialised
cd ESDA/zed-ros-2-wrapper;
git submodule update --init;
cd ../../

# install remaining dependencies, build and source
sudo apt-get update; 
rosdep install --from-path ESDA --ignore-src -yr;
colcon build;
source install/setup.bash

Launching

The following can be used to launch the ESDA (once implemented)

ros2 launch esda_launch esda_launch.py

Or launch the sim ros2 launch esda_sim launch_sim.launch.py

Note that as of now, until a working URDF is implemented, the following static transforms should be run

ros2 run tf2_ros static_transform_publisher 2 3 1 0 0 0 swiftnav-gnss base_link

ros2 run tf2_ros static_transform_publisher 0 0 0 0 0 0 base_link base_footprint

Contributors ✨

Thanks goes to these wonderful people (emoji key):

Anthony Oon
Anthony Oon

💻 🤔 📆 💬 🎨
Dylan Gonzales
Dylan Gonzales

🎨 🤔 🧑‍🏫 💬
William Tioe
William Tioe

💻
Jiawei
Jiawei

💻
Baaset
Baaset

💻 🎨 🤔 📖
Akul Saigal
Akul Saigal

📆
Christina Prakash
Christina Prakash

📆
Jason Angus
Jason Angus

💻 🔣

This project follows the all-contributors specification. Contributions of any kind welcome!