# Robot Operating System (ROS)

A guide to setting up ROS for use with AutoNav. This guide is current as of spring 2025.

# Prerequisites

### Required Sofware

To use ROS, you need to either dual-boot Ubuntu 24.04 or download Windows Subsystem For Linux (WSL). If you have a Mac, you can get away without dual-booting but it will be difficult. See the guide to using Docker for help.

#### Dual Booting

A good dual-booting guide can be found here. It is important you install Ubuntu 24.04. You do not *need* to use a desktop environment, but if you want to run the simulator it is recommended you pick a desktop installation.

#### WSL

Windows Subsystem-for-Linux (WSL) is a linux kernel running in Windows. It's not quite a virtual machine, and has access to the windows filesystem. It cannot run Linux desktop applications, though you can open some windows from it (for instance you can run a Python script that opens a Pygame or OpenCV or Matplotlib window). WSL is a good choice for Windows users because you can use your Windows VSCode installation and run the simulator without having to download duplicate applications across operating systems.

#### Mac

Follow the Docker container guide to get setup here.

Once you have finished installing all required software, move on to the actual installation guide

# Installation

The full ROS guide can be found [here](https://docs.ros.org/en/jazzy/Installation/Ubuntu-Install-Debs.html). **It is important you install ROS Jazzy Jalisco for AutoNav 2025. Always make sure the documentation pages you read say Jazzy on them.**

If you are only interested in ROS for use with SCR, then you can follow the abbreviated instructions below:

#### Install Guide

Open a terminal (either in WSL or just a regular terminal if you're dual-booting) and run the following commands:

```bash
sudo apt install software-properties-common
sudo add-apt-repository universe
sudo apt update && sudo apt install curl -y
export ROS_APT_SOURCE_VERSION=$(curl -s https://api.github.com/repos/ros-infrastructure/ros-apt-source/releases/latest | grep -F "tag_name" | awk -F\" '{print $4}')
curl -L -o /tmp/ros2-apt-source.deb "https://github.com/ros-infrastructure/ros-apt-source/releases/download/${ROS_APT_SOURCE_VERSION}/ros2-apt-source_${ROS_APT_SOURCE_VERSION}.$(. /etc/os-release && echo $VERSION_CODENAME)_all.deb"
sudo dpkg -i /tmp/ros2-apt-source.deb
sudo apt update
sudo apt upgrade
sudo apt install ros-jazzy-ros-base

```

If you are dual booting you can install `ros-jazzy-desktop` instead for access to the graphical ROS tools.

#### Sourcing

To use ROS commands, you will need to add the following line to your `~/.bashrc` file (if .bashrc doens't exist you can make it):

```bash
source /opt/ros/jazzy/setup.bash

```