Installation

Currently Rumarino autonomy stack runs with ROS2 and a linux machine. The reason we have not ported the software to Windows mainly because Stonefish is not yet ported to Windows. We dont have current plans to make it work in Windows yet.

Prerequisites:

  • Linux ( Ubuntu or Fedora)

  • ROS2 ( Jazzy )

Optional Dependencies: - CUDA - ZED SDK - Docker

Build From Source:

  1. Clone the repository

git clone --recursive https://github.com/Rumarino-Team/autonomy-stack.git
cd ./autonomy-stack
  1. Install necessary packages

sudo apt update
sudo apt install -y python3 python3-pip python3-venv build-essential curl
sudo apt install -y libclang-dev llvm-dev clang
sudo apt install -y software-properties-common
sudo add-apt-repository universe
sudo apt update
sudo apt install -y curl gnupg lsb-release
sudo curl -sSL https://raw.githubusercontent.com/ros/rosdistro/master/ros.key -o /usr/share/keyrings/ros-archive-keyring.gpg

# Install ROS 2 and dependencies
sudo apt update
sudo apt install -y \
  ros-jazzy-desktop \
  ros-jazzy-vision-msgs \
  ros-jazzy-sensor-msgs \
  ros-jazzy-geometry-msgs \
  ros-jazzy-rviz2 \
  ros-jazzy-usb-cam \
  libfreetype6-dev \
  libsdl2-dev \
  libglm-dev \
  libeigen3-dev \
  libogre-1.12-dev \
  libopencv-dev \
  libssl-dev \
  libboost-all-dev \
  libepoxy-dev \
  libtinyxml2-dev \
  ros-jazzy-pangolin \
  socat \
  pkg-config
  1. Install the simulator

cd ./vendor/stonefish
mkdir -p build
cd build
cmake ..
make -j16
sudo make install
  1. Build the ROS packages

source /opt/ros/jazzy/setup.bash
colcon build \
  --packages-select interfaces bringup mission_executor bridge_stonefish Stonefish stonefish_ros2 detection_mocker joy sdl2_vendor
source install/setup.bash

Note

We cover different ways to run the Visual Odometry and Perception modules as well as different hardware options. Those are not covered here because they are optional depending on what you want to implement.

For now, this installation lets you run the simulation basic missions.

Run the simulator with this command:

# proteus, prequalify mission
ros2 launch bringup stonefish.launch.py \
  mission_name:=prequalify \
  auv_name:=proteus \
  env_file_name:=proteus_env.scn \
  headless:=false