This repository holds the software stack for the Monash-Connected-Autonomous-Vehicle's IGVC 2024 entry, the ESDA (Electric Self Driving Automobile).
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
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
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
Thanks goes to these wonderful people (emoji key):
Anthony Oon 💻 🤔 📆 💬 🎨 |
Dylan Gonzales 🎨 🤔 🧑🏫 💬 |
William Tioe 💻 |
Jiawei 💻 |
Baaset 💻 🎨 🤔 📖 |
Akul Saigal 📆 |
Christina Prakash 📆 |
Jason Angus 💻 🔣 |
This project follows the all-contributors specification. Contributions of any kind welcome!