User Tools


Getting Started

The purpose of this page is to get new CS developers up and going for robosub. If you have any questions, feel free to ask them on the software slack channel!

OS

The sub itself runs Linux Mint 17.3. As such, we recommend using the same operating system, although any distro based on Ubuntu 14.04 should work. We do not support developing on Windows. We do have limited support for Ubuntu 16.04 (xenial), but right now 14.04 (trusty) is the officially supported version. We only recommend using xenial if you're having issues on your computer with trusty.

Virtual Machine

If you don't feel comfortable installing linux on your machine yet, you can get started quickly with a virtual machine. However, we highly recommend members to install linux on their machine, the virtual machine works very poorly. You can download our robosub virtualbox disk image here. It's a 2.7GB compressed download, after extracting with 7zip it's around 11GB. This already has the robosub code repository downloaded and all dependencies installed, so you can skip some steps. To run the virtual machine image, you'll first need to download Virtualbox. Note however that you cannot run the simulator within a virtual machine, gazebo7 crashes.

Languages

We use primarily C++ for the software on the sub, with a little bit of Python2 (note: not Python3) for the AI. Below are a few links for tutorials for these languages, these are just a few I quickly found to get you started, feel free to search around for other tutorials.

Getting Prerequisite Software

This will setup your computer with our custom robosub package repository, the ROS package repository, and the Gazebo package repository. When you install our robosub/robosub-simulator package, all other dependencies will automatically be downloaded. If you experience any issues, please contact the IT slack channel. Depending on your operating system, follow the instructions on one of these pages:

Deprecated: ROS Indigo (for Ubuntu 14.04 trusty or Linux Mint 17)
ROS Kinetic (for Ubuntu 16.04 xenial or Linux Mint 18)

Getting our Code

Follow these steps for getting the robosub code on your computer. First, make sure you have ssh authentication setup with github. You only need to do this once on each computer. To check if you already have keys made for your computer, run:

$ ls ~/.ssh/id_rsa*

If you don't see id_rsa and id_rsa.pub files, you can create new keys by running:

$ ssh-keygen

Just hit enter through all of the prompts. Don't type in a password, the entire point of this is to eliminate the need to use a password with github! Now, copy the contents of id_rsa.pub and paste the contents in a new key here. To test if this worked, run:

$ ssh git@github.com

If everything is set up correctly, you should expect to see a message like:

PTY allocation request failed on channel 1
Hi user! You've successfully authenticated, but GitHub does not provide shell access.
Connection to github.com closed.

Finally, we need to setup our ROS workspace with the robosub code.

source ~/.bashrc
mkdir -p ~/ros/src
cd ~/ros/src
catkin_init_workspace
git clone git@github.com:PalouseRobosub/robosub.git
git clone git@github.com:PalouseRobosub/robosub_simulator.git
git clone git@github.com:PalouseRobosub/robosub_msgs.git
cd ~/ros
catkin_make
echo "source ~/ros/devel/setup.bash" >> ~/.bashrc
source ~/.bashrc

After this initial run of catkin_make, you should be able to use rsmake to compile the software.

Now What?

If you were able to successfully compile the software at the end, congrats! Next steps are to learn how to use git, and take a look at the software workflow. After this, head over to the github issues page and see if a task looks interesting!