This project is under active development!
This page contains resources for many topics regarding programming in FTC. They are separated by category, use the navigation panel on the left to find what you need!
The resources below each cover a wide range of topics.
Official programming information from FTC.
Official rules from Game Manual 1, which outlines the rules regarding robot software in section 7.3.5.
Official repository for the FTC Robot Controller app. Teams using Android Studio should fork this repo for development.
Programming information and tutorials from GM0
Information on various programming topics, which are split into separate repositories. Click the Wiki tab in each repo for the information.
FTC has 3 main programming tools for teams: Blocks, OnBot Java, and Android Studio. Resources for each have been separated below.
Blocks is a visual programming interface that runs in a web browser. It is targetted towards rookies who prefer to create code visually.
OnBot Java is a text-based programming interface that runs in a web browser. It is targetted towards rookies who prefer to create code using Java.
Android Studio is an integrated development environment (IDE) that runs on a computer. It is targetted towards those who prefer to create code using Java, and benefit from the advanced features offered by a professional IDE.
Resources for various core components of the Control System have been separated below.
Telemetry is used to send information from the Robot Controller to the Driver Station.
Information from GM0 about telemtry.
Gamepads are controllers that plug into the Driver Station, and are typically used to control the robot during TeleOp.
Information from GM0 about gamepads.
Motors are electromechanical devices that spin when powered. They’re typically used to drive wheels or move actuators.
Servos are electromechanical devices that spin when powered. In contrast to motors, they usually have positional feedback control built-in, and are typically used for smaller actuators.
Sensors are devices that measure physical properties of an environment. Resources for various sensor types have been separated below.
Information from GM0 about encoders.
Inertial measurement units (IMU) are sensors that measure motion. They typically (but not always) include an accelerometer, gyroscope, and magnetometer. The Control Hubs (and older Expansion Hubs) have IMUs built-in
Official information from FTC about IMUs.
Cameras may be attached to robots for more advanced sensing capabilities. General vision resources are linked below, followed by resources for specific vision tools.
The 2023-2024 season has a lot of changes to vision! It appears that Vuforia has been removed, and is effectively replaced by EasyOpenCV and AprilTags. The resources below all contain current information, but other resources you find may be outdated or incorrect!
Official information from FTC about vision.
Presentation by Dryw Wade on vision processing with the latest updates for the CENTERSTAGE season.
OpenCV is a software library used for processing images.
An implementation of OpenCV for FTC created by OpenFTC. It’s included in the official SDK (v8.2 and later), so there’s no need to install it separately. The ReadMe file contains links to documentation on how to use it.
TensorFlow is a software library that uses machine learning to identify objects and patterns in images.
Cameras usually include various controls, such as gain and exposure. The resources below include information on how to use these controls.
Official information from FTC about camera controls.
The resources below are for various topics that don’t fit into any of the above categories.
GitHub is a website for storing and managing projects using Git, an industry standard version control tool.
Dashboards are applications that can be used to monitor and control robots from a computer.
A dashboard created by ACME Robotics. Major features include: dynamically changing variables; exporting telemetry to CSV files; plotting telemtry values on graphs; plotting robot location on field graphics; camera streaming; limited OpMode controls and gamepad support.
Odometry, Control Theory, and Motion Planning
Odometry is using sensor data to estimate the location of a robot. Control theory is using motors and other actuators to control the location of a robot. Motion planning is generating a path for a robot to follow. These 3 concepts are often used together to navigate a robot through the field.
Information from GM0 about odometry.
Information from GM0 about control theory.
Information from CTRL ALT FTC about control theory.
A control theory textbook written by Tyler Veness. “Graduate-level control theory for high schoolers”. The title says FRC, but it’s still very relevant for FTC.
A software library created by ACME Robotics for FTC teams that implements odometry, control theory, and motion planning all in one package. It is typically used for navigation around the field during autonomous.
The Rev Control/Expansion Hubs contains several power monitoring features, such as battery voltage and current consumption. The resources below provide information on how to use these features.
Information from Westside Robotics about power monitoring with the Rev Control/Expansion Hubs.