Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 10 additions & 0 deletions src/config/sidebarConfig.ts
Original file line number Diff line number Diff line change
Expand Up @@ -162,6 +162,16 @@ export const sidebarSections: Record<string, SidebarSection[]> = {
},
],
},
{
label: 'Stage 1C: Control and Telemetry',
collapsed: true,
items: [
{
label: 'Stage 1C Introduction',
slug: 'learning-course/stage1/stage1c/stage-overview',
},
],
},
],
},
],
Expand Down
36 changes: 36 additions & 0 deletions src/content/docs/learning-course/stage1/stage1c/stage-overview.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
---
title: Stage 1C Overview
description: An overview of Stage 1A
prev: ../stage-overview
next: false
---

import YouTube from '../../../../../components/YouTube.astro';

If you've watched matches from any recent FRC game, you'll notice that robots typically have to line up quite precisely with a field element to score.
Take this example from Purdue University's Robot in 3 Days (Ri3D) team showcasing their autoalign program:

<YouTube url="https://www.youtube.com/watch?v=MV6SQ46Dijs" />

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I like what you're getting at here, but I wonder if this is the right framing. We're more making a robot turn in place here, not aligning to a target - even if those are pretty similar operations in practice. Also in the sense that this is showing a swerve bot while they're actually programming a tank bot.

Drive + turn in place autos aren't really a think you see in the program these days, in the age of swerve, but that's kinda what we're building towards in this stage.

@Adrianamm @roboteer5291 thoughts?


In 2026, robots had to line up with the hub to successfully shoot fuel.
In 2025, robots had to line up with hangers on the reef to place coral.
To execute these tasks, teams run automatic positioning programs rather than burdening the driver with such precise movements.
In Stage 1C, you will learn fundamental concepts pertaining to "control theory:" a field of research dedicated to guiding real-world systems (such as robots) to do the things we want.
Control theory guides the motion of each and every mechanism you will program in FRC.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm honestly kinda opposed to talking about the term "control theory" explicitly at all - or maybe bring it up later. Seems a little more academic than what we want to focus on here. Not an awful strongly held opinion though


## Key Concepts

In FRC, different mechanisms can be thought of as "systems."
Mechanisms have "states" such as position, angle, velocity, and acceleration.
A PID (Proportional, Integral, Derivative) controller takes a desired state of a system, called a "setpoint," and guides a system's actual state towards this setpoint.
The output of your mechanism's control algorithm is called "control effort," and, in FRC, control effort will almost always be measured in Volts.
You can track the states, setpoints, and control efforts of your robots through logging in NetworkTables, a system for sending data between the robot and the driver station.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

A little concerned we're going a bit too into the weeds here and throwing around a lot of controls jargon - states, setpoint, control effort, etc. I think opening up with all these words might be a bit too intimidating? All we really want out of this stage is to be able to write commands using a P controller to turn in place, and composing that with commands (might be out of scope for how we originally planned 1c, but I think it's good to have some command compositions as an exercise). We'll be going more into control in Stage 2 when we're doing elevator stuff, which may be a better place for some of this content.


## Stage 1C Goals

By the end of Stage 1C, you'll program a feature which enables your kitbot's drivetrain to automatically and smoothly turn in place to any given angle such that your kitbot can aim towards the hub on its own.
You will also be able to read data from your kitbot via logging in NetworkTables.

This stage will cover the following topics:

- WIP