Skip to content

About

Code repository for the Silly Servos Robotics Team #24213 at Highland Park High School

Resources

Stars

1 star

Watchers

0 watching

Forks

Repository files navigation

Silly Servos 2026-2027

Code repository for the Silly Servos Robotics Team #24213 at Highland Park High School
2026-2027 FTC BIOBUZZ
Highland Park Robotics logo

Using GitHub

What is GitHub?

Imagine GitHub as a digital workspace where you and others can collaborate on building things together. Think of it like a shared online notebook for writing code.

What can you do with GitHub?

On GitHub you can:

  • Store your code: Keep your code organized and safe in the cloud.
  • Track changes: See who made what changes to your code and when.
  • Collaborate with others: Work on coding projects with other people.
  • Learn from others: Explore and learn from code written by others.

Key terms:

  • Repository: This is like a folder where you store your code files.
  • Commit: This is a snapshot of your code at a specific point in time.
  • Branch: This is a copy of your code where you can make changes without affecting the original.
  • Pull request: This is a way to suggest changes to someone else's code.

Think of it like writing a book:

  • The repository is the book itself.
  • Each chapter is a branch.
  • Saving your progress is a commit.
  • Asking a friend to review your chapter is a pull request.

Setting up your Computer For Development


If You Have a Mac, Windows, or GNU/Linux Computer:

We use GitHub as our central code repository for the robot. This allows multiple team members to collaborate efficiently on the code. While GitHub can be used for basic editing, we primarily utilize an Integrated Development Environment (IDE) for code development. An IDE is a specialized software application that provides advanced features for writing, testing, and debugging code. Our team uses Android Studio, an IDE specifically designed for Java development, to create and refine our robot's software. Since Android Studio is a desktop application, it runs directly on your local computer and needs to be downloaded. To connect GitHub (on the web) to your IDE (locally on your computer), you will need to download GitHub Desktop. The GitHub desktop GUI is the easiest way to connect to GitHub. You can also use Git in the command line, but our team uses GitHub Desktop since it is easier for beginners.

Downloading GitHub Desktop & Creating a GitHub Account

You will need to create a GitHub account to contribute to this repository. Navigate to GitHub.com and create a free account. Next, download GitHub Desktop and sign in to your newly created account. If you are using a Linux machine, you need to install it from your preferred package manager (but if you are a Linux user you probably don't need to read this guide). You now have GitHub all set up!

Cloning the GitHub Repository

To edit the code repository in Android Studio, you need to have your own local copy of it. This is called "cloning" a repository. In GitHub Desktop, click on the upper left-hand corner where it says "Current Repository". Click on the "Add" button and select "Clone Repository..." from the dropdown menu. Select this repository from the list, or click the green "Code" button on GitHub and copy the repository URL into the "URL" tab. Below that, choose a local path. This is where you will access the code files from your computer. Choose somewhere you will remember, such as your desktop. Click the "Clone" button and you should be done!

Installing Android Studio and Opening the Cloned Repository

You will now need to download Android Studio. Once it is installed, open the app and click on File>Open. You can then select the path of the cloned repository (from the previous step). The repository is now editable in Android Studio!

Editing the Code

You can edit the code in Android Studio. More information on the code structure can be found farther down on this page. Once you edit the code, you will need to push it to GitHub to publish your changes. If you haven't already, save your code in Android Studio with command+s (Mac) or ctrl+s (Windows & GNU/Linux). Navigate to GitHub Desktop and write a short summary of your change. Then, click Commit to <branch-name> to add your changes to your local branch, and click Push origin to upload them to GitHub. Finally, open a pull request and follow the workflow described below (don’t push directly to main unless it’s an approved emergency hotfix).


What This Repo Contains

This project uses a minimal TeamCode structure:

  • config/HardwareNames.java: all RC hardware map names
  • config/RobotConstants.java: tunable values for drive and autonomous behavior
  • pedroPathing/PedroMecanumDrive.java: wrapper around Pedro follower setup and mecanum control
  • opmodes/teleop/TemplateTeleOp.java: driver control template
  • opmodes/auto/TemplateAuto.java: autonomous template

The goal is to keep the base code easy to read.

How The Robot Code Works

1) Hardware naming

HardwareNames is the single source of truth for drivetrain configuration names.

2) Tuning values

RobotConstants contains configurable values used by opmodes:

  • drive speed limits
  • teleop field-centric toggle
  • simple autonomous forward speed/duration

3) Pedro mecanum drive wrapper

PedroMecanumDrive builds and owns the Pedro Follower.

It provides a small API used by opmodes:

  • start teleop drive
  • set drive powers (forward, strafe, turn)
  • update follower each loop
  • stop drivetrain safely
  • read robot pose for telemetry

4) Opmodes

  • TemplateTeleOp:
    • reads gamepad1 sticks
    • sends powers to Pedro drive
    • updates and reports pose telemetry
  • TemplateAuto:
    • sets a starting pose
    • runs a simple timed forward movement
    • stops drive at the end

Team Workflow

Daily flow

  1. Pull latest main.
  2. Create a feature branch from main.
  3. Implement and test in small increments.
  4. Open a PR early, then iterate.
  5. Merge after review and validation.

Branch strategy

  • main: always stable and competition-ready.
  • Short-lived branches for active work.

Branch naming:

  • feat/<short-description>
  • fix/<short-description>
  • chore/<short-description>
  • docs/<short-description>
  • refactor/<short-description>
  • test/<short-description>

Examples:

  • feat/add-spline-auto
  • fix/teleop-turn-scaling
  • chore/update-gradle-wrapper

Commit Message Guidelines

Use Conventional Commit style:

<type>: <short imperative summary>

Common types used in this repo:

  • feat: new robot capability or behavior
  • fix: bug fix or behavior correction
  • chore: maintenance, tooling, cleanup with no behavior change
  • docs: README/comments/process docs
  • refactor: code structure improvement without behavior change
  • test: test additions or updates
  • perf: performance improvement
  • build: build system or dependency updates
  • ci: CI workflow changes

Good examples:

  • feat: add field-centric toggle in teleop
  • fix: clamp turn power for stable strafing
  • chore: remove unused template files
  • docs: add branch and PR process to root README

Pull Request Guidelines

PR title format

Match Conventional Commit format:

  • feat: add red-side preload auto skeleton
  • fix: correct starting pose heading

PR checklist

Before requesting review:

  1. Branch is up to date with main.
  2. Code is focused on one logical change.
  3. Opmode behavior is tested on bot or simulator workflow.
  4. Hardware names/constants changes are documented in PR description.
  5. No unrelated file changes included.

Review expectations

  • At least one teammate review for normal changes.
  • Author resolves feedback and re-requests review.

Merge policy

  • PR must pass required checks/review before merge.
  • Do not push directly to main except emergency hotfixes.
  • Always push to dev since that branch will later be merged with main.

Quick Start For New Members

  1. Clone repo and open in Android Studio.
  2. Connect FTC SDK/Android environment.
  3. Ask Jacob for further instructions.

About

Code repository for the Silly Servos Robotics Team #24213 at Highland Park High School

Resources

Stars

1 star

Watchers

0 watching

Forks

Contributors

Languages