This repository holds the software stack for the Monash-Connected-Autonomous-Vehicle's IGVC 2024 entry, the ESDA (Electric Self Driving Automobile).
Some of the hardware used such as sensors require some configuration and setup prior to use as detailed below
Install the swift console from the (Swiftnav Resource Library)[https://www.swiftnav.com/resource-library?filters=no&title=Swift+Console&search=Swift+Console&product=Swift+Console&category=Installer&release=Latest] and then run dpkg -i /<path_to_deb>
or alternatively run the following command (note the version ad url may have updated since the writing of these instructions)
wget https://www.swiftnav.com/resource-files/Swift%20Console/v4.0.19/Installer/swift-console_v4.0.19_linux.deb
sudo dpkg -i ./swift-console_v4.0.19_linux.deb
Power the piksi multi and connect it using a USB to serial cable with the serial end connected to the piksi's RS2321 port and additionally connect the GPS antenna.
Open the Swiftnav console and configure the device to send all SBP message types by providing the default entry under the setting shown below (i.e. a blank entry for uart0 and 1) and saving this configuration.

Refer to the (Velodyne LiDAR User Manual)[https://velodynelidar.com/wp-content/uploads/2019/12/63-9243-Rev-E-VLP-16-User-Manual.pdf] and/or (YouTube setup guide)[https://www.youtube.com/watch?v=Pa-q5elS_nE] on further instructions on configuring the LiDAR
The sim requires gazebo ros packages installed. Rrun sudo apt update; sudo apt install ros-humble-gazebo-ros-pkgs
to do this
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 building
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
cd ../../../
Install the swiftnav driver updated libserialport 0.1.2 dependency:
- Go to the libserialport 0.1.2 release
- Download
libserialport-0.1.2.tar.gz
- Extract the archive:
tar -xzf libserialport-0.1.2.tar.gz
cd libserialport-0.1.2
- Install the package (NOTE: will be installed under /usr/local/lib , additional install details on the offficial page if required):
./configure
make
sudo make install
sudo ldconfig
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 💻 🔣 |
Samuel Tri 💻 |
Andrew Joseph Ng |
This project follows the all-contributors specification. Contributions of any kind welcome!