TrickFire Robotics

Getting Started

Set up a development environment for the Viator rover software.

This is the software for Viator, Trickfire Robotics' rover for the University Rover Challenge, built on ROS 2 Humble.

Prerequisites

Development happens inside a Docker container so every contributor gets the same ROS 2 Humble environment, regardless of host OS.

Set up the dev container

  1. Clone the repo (with submodules):

    Terminal
    $ git clone --recurse-submodules https://github.com/TrickfireRobotics/viator.git
  2. Open the folder in VS Code and choose Reopen in Container when prompted (or run Dev Containers: Reopen in Container from the command palette). This uses .devcontainer/docker-compose.yml to build .devcontainer/Dockerfile (which installs ROS 2 Humble, the CAN/motor tooling, and the myactuator_rmd library) and starts it as a container named viator, so it's easy to find with docker ps.

Build and launch

All common actions are exposed as make targets from the repo root — see Launching the Rover for the full workflow. The short version, from inside the container:

Terminal
$ make build   # colcon build --symlink-install
$ make launch  # ros2 launch viator_launch robot.launch.py

Not using the dev container?

make container / make connect build and attach to a standalone trickfirerobot Docker container instead of a VS Code dev container — useful when running directly on the rover's onboard computer. See Launching the Rover for details.

Formatting and linting

Python is formatted/linted with Ruff and type-checked with mypy; shell scripts are formatted with shfmt. Install the recommended VS Code extensions when prompted, or run everything manually:

Terminal
$ make format

Run make hooks once after cloning to install the pre-commit hooks that enforce this automatically at commit time.

Where to go next

  • Architecture — what each ROS package does and how they fit together.
  • Launching the Rover — the full build → CAN setup → launch workflow, including deploying to the onboard Orin.

On this page