DCS Defenders Robotics #15815

Programming

Learning to Program

This site contains the lessons we work through during programming practices, along with sample code.
Programming as a team means trying to write as much "good code" as possible. This video covers a few important computer science principles for writing good code.
This video explains the concept of the DefenderFramework library and how it helps us write complex but maintainable code for our competition robots.
In this video we cover how to avoid code repetition when writing autonomous opmodes for competition.

Programming Tools

FTC recommends that teams write their code using the Android Studio integrated development environment (IDE).
This simple site allows you to quickly run basic Java code.
Before we deploy code to the actual robot, we learn to program using FTC team Beta8397's virtual robot simulator.

References

This official guide from FTC covers the basics of setting up a robot and then programming it using the Java tools built into the Robot Controller.
The FTC also provides this guide, which also covers the very basics of setting up a robot. For this guide, programming examples presume you will be using the Android studio IDE.
While we don't use it when we're learning to code, this text is a great introduction to Java programming concepts—and it's written to include the basics of programming FTC robots.

The Basics

Some of the content in these slides is slightly out-of-date, but it contains a good overview of basic ideas involved in programming FTC robots.
Coach Pratt has led several teams to FTC national championships. His YouTube channel contains a lot of excellent videos explaining basic (and advanced) concepts in robotics programming.
These short YouTube videos, created by FTC, explore how to use various REV robotics components.
This repository contains the code for the FTC Robot Controller app. Version 10 is the official version for DECODE in 2025-2026.

Team Resources

This repository contains our team's version of the FtcRobotController app, including our programming frameworks and opmodes.

Advanced

These tutorials cover topics like object detection, managing electrostatic discharge, etc.
These video tutorials from FTC team #9794 cover both basics and more advanced topics in robot development.
This guide from FTC Team #19376 covers the basics of control theory.
A utility that aids in debugging FTC robots, allowing a web browser to connect to a special "dashboard" view of information from the robot.

Localization

A video from coach Brogan M. Pratt about how robots determine where they are.
A coach Pratt video about the different ways to do localization in FTC.
Details about setting up and accessing the newer API that covers both old and new IMUs.
This specially designed odometry computer, which can be purchased with pre-built odometry pods, simplifies much of the calculation involved in robot localization.
Team X (#23512) from Silicon Valley talk about how they started using goBILDA's Pinpoint system. Also includes an excellent discussion of PID controllers.
Information about building "dead wheel" odometry pods for more precise motion control.

Motion Planning

Pedro Pathing is a newer motion planning library that is growing in popularity among FTC teams.
RoadRunner is a motion planning library that can be used for precision navigation.

Mechanical Systems

A good discussion of the physics and math involved in optimizing a shooting system.

Vision

VisionPortal is the new FTC API for most vision tasks. It includes sensing for AprilTags, as well as the functionality of EasyOpenCV.
The code in this repository, created by the OpenFTC group, provides a simplified way to use the OpenCV computer vision library with FTC robots.
This repository contains a Java application that can be used for testing and debugging OpenCV pipelines.
AprilTags are a two dimensional barcode technology that can be used in image recognition.
A repository that adds the ability to detect AprilTags.

Follow Us

on social media