Onboarding
General Resources
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.
Our team website - Feel free to browse and learn more about the team.
Hardware Overview - The important sensors, computers, and controllers that work together to create an ASV
Software Overview - High-Level overview of how the software works
Software Workflow - How we code and track our progress as a team.
Set up your Environment
If any of these instructions and resources do not work, are outdated, or are difficult to follow let Grace know so we can update them!
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:
Use a virtual machine - Recommended. Most of us use VirtualBox.
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.
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.
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.
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.
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++.
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:
ROS Basics in 5 Days (C++) - If you are going to do any of these, do this one.
Linux for Robotics - recommended if you are new to Linux
Last updated