Onboarding

General Resources

Feel free to update this document with any other resources you find helpful!

  1. 2023 Competition Handbook - Read section 2.4 (pages 12-19). This outlines the tasks from 2023. Tasks 1-4 will likely remain the same for 2024, which is what we are starting with.

  2. Our team website - Feel free to browse and learn more about the team.

  3. Hardware Overview - The important sensors, computers, and controllers that work together to create an ASV

  4. Software Overview - High-Level overview of how the software works

  5. Software Workflow - How we code and track our progress as a team.

Set up your Environment

Git

If you are new to Git, here are some resources to get started:

Setup Instructions

Ubuntu 18.04

This is the operating system on our boat's computer. To limit dependency and versioning issues, we are all developing with Ubuntu 18.04. You have several options to get Ubuntu 18.04:

  1. Use a virtual machine - Recommended. Most of us use VirtualBox.

  2. Dual Boot - Some of us have had success with this, and some of us haven't. Instructions will depend on whether you are currently running Windows, Mac, or a Linux distribution.

  3. Install Ubuntu 18.04 only - may have the least amount of problems with this, but Ubuntu 18.04 is nearing end of life, so it is only recommended if you have a separate computer just for ROS development.

ROS Melodic

ROS stands for Robotic Operating System. All of our software is based on this framework. Melodic is the version that runs on Ubuntu 18.04.

Installation Instructions

NOTE: In the end of installation instructions (in section 1.6.1), the guide asks you to run rosdep update, however it won't actually update dependencies as needed since ROS Melodic has reached its EOL (end-of-life). You will have to use rosdep update --include-eol-distrosinstead to get updates for Melodic.

Gazebo 11

Gazebo is a physics simulator for ROS. This provides a visual representation of the boat and helps us test our code. The default version of Gazebo for Melodic is version 9, but we are using version 11. See Installing Gazebo 11.

C++ Resources

We write most of our code in C++, so if that's new to you or you are looking for a refresher, take a look at these resources.

  1. Beginning C++ Online Programming Course - Contact Grace for shared account credentials. See section 2 for setup, sections 4-6 and 8-9 if you are new to programming, and sections 7, 10-13, and 17 for more C++ specifics. Don't feel like you need to go through every section; do as much or as little as you want.

  2. C++ for Robotics - A Construct course. Contact Grace for shared account credentials.

Style Guides

We follow the ROS C++ Style Guide and ROS Naming Conventions. If something is not covered, refer to the Google C++ Style Guide. For documentation guidelines see ROS Documentation Style Guide.

ROS Resouces

ROS stands for Robotic Operating System. All of our software is based on this framework. ROS can be used with Python and C++, but most of our codebase is written in C++.

  1. The Construct - ROS courses. Don't feel the need to do all the exercises; do as much or as little as you want. Even just reading through the notes will be helpful. Recommended courses are listed below:

    1. ROS Basics in 5 Days (C++) - If you are going to do any of these, do this one.

    2. Linux for Robotics - recommended if you are new to Linux

Last updated