BinghamtonRover / BurtOS-2

Base station/rover computer apps and libraries for the Binghamton University Rover Team
3 stars 0 forks source link

BurtOS-2

BurtOS encompasses the base station and rover computer applications deployed to operate the Binghamton University Rover Team's Mars rover. This 2.0 version was started in the 2022 competition year and will replace the legacy RoverSystem software. The decision to redevelop the software was reached after evaluating weaknesses and scalability issues in the legacy software. We intend BurtOS 2.0 to be highly modular to rapidly adapt to rover hardware changes.

Contents

Components

BurtOS 2 is a new project and thus this section reflects our design goals.

Base Station

Target name: basestation
The base station is used to drive the rover and monitor onboard sensors. The base station GUI will offer modular windows for monitoring the rover. The base station uses GLFW and NanoGUI for graphics rendering and input processing.

Subsystem

Target name: subsystem
The subsystem program runs on an onboard Raspberry Pi. It receives commands from the base station and controls hardware on the rover.

Video/Perception

Not updated for BurtOS-2. The video/perception computer program streams video from rover cameras to the base station.

Building

All libraries and applications in BurtOS 2.0 allow cross-platform development. However, we primarily support Ubuntu-based operating systems for deployment. The subsystem apps use libraries only present on Linux and/or Raspberry Pi OS, but these features are automatically disabled when unavailable on the system.

BurtOS 2 uses CMake, which generates makefiles for many build systems, compilers, and IDEs. Be sure to use CMake 3.16 or newer. Check whether CMake is installed and meets the version requirement with this terminal command: cmake --version.

If you intend on building the base station, run git submodule update --init --recursive from the repository root. Follow the build instructions for your platform.

Ubuntu

While you are not locked to a specific toolchain, the process suggested below will get you started. The dependencies, however, are not optional.

Suggested Toolchain

Building

Windows

Only two options are supported for building on Windows: WSL and MSYS2 MinGW. If you choose WSL, follow the Ubuntu instructions. See MSYS2 MinGW instructions below.

MSYS2 MinGW

The Ubuntu section provides more context for each command, so read over that section, too. Both procedures are similar, but with different package managers (pacman vs APT) and different package names.

macOS

Must have Xcode, otherwise a compile error will occur as some of Xcode's command line tools are necessary.