Skip to content
CrocoDocs
Starter GuideProgrammingEngineeringDesignPortfolio
Documentation

Introduction

IntroductionBIOBUZZ game overview

Getting started

Getting startedBlocksOnBot JavaAndroid StudioYour first OpModeJava basicsMotors and servosNonblocking codeDebugging robot code

Control systems

Control systemsJoystick mappingField-centric mecanum drivePID controlFeedforwardFlywheel velocity controlSystem identificationMotion profilingKalman filterLow-pass filter

Autonomous

AutonomousTimed and encoder movementOdometryLocalization troubleshootingMotion planningReliable autonomous sequencesPure PursuitSensor fusionAuto to TeleOp handoff

Season topics

Season topicsProjectile mathematicsTurret aimingShooting on the move

Code practices

Code practicesNaming conventionsCode organizationLoop timing and bulk readsFormattingComments and documentationTeam collaboration

Libraries

LibrariesNextFTCFTCLibSolversLibPedro PathingRoad RunnerFTC DashboardMercurial v2Mercurial v1PanelsSloth

Community software

Community softwareBlaze FTCOpenLoopHive Vision

Sensors and vision

Vision overviewVision basicsLimelight 3A
Starter Guide
Engineering
Design
Portfolio
Appearance

Getting started

Choose an FTC programming tool and find the official setup guides

Programming tools

recommends beginning with , including for students who have programmed before. It is a quick way to learn the Control System and test simple . When you are ready to write text, choose OnBot or Android Studio.

ToolBest starting pointWhere code is edited
BlocksNew programmers and visual learnersBrowser connected to the
OnBot JavaTeams learning text-based JavaBrowser connected to the Robot Controller
Android StudioTeams needing a full IDE, Git, or external librariesAndroid Studio project on a computer

These are FTC programming tools. Android Studio is an IDE; Java and Blocks are programming languages/tools. Kotlin is possible in Android Studio with the required project setup, but it is not one of the three standard programming tools in FIRST's current comparison guide.

Robot workflow

Each program is an OpMode that runs on the Robot Controller after a team selects it on the . Before writing code, configure the 's and in the Robot Controller app. Use the same device names in the program as in the hardware configuration.

Start with one motor or , then add gamepad input and sensor feedback. Test with the robot safely supported and keep motor power limited while bringing up new code.

Setup guides

  • Blocks — create an OpMode using visual blocks in a browser.
  • OnBot Java — edit and build Java OpModes in a browser.
  • Android Studio — work in the official FTC Android Studio project.

Programming lessons

After setup, work through Your first OpMode, Java basics, Motors and servos, and Nonblocking code. Keep Debugging robot code open while testing. The limit-switch and IMU lessons introduce sensors before camera processing.

Sources

  • Choose a programming tool
  • FTC programming resources
  • FTC SDK repository
  • Current FTC SDK releases
  • Alan G. Smith: Learn Java for FTC — a longer course. Check the SDK version when using its older examples.

BIOBUZZ game overview

Match timing, scoring, field setup, and the rules that shape a BIOBUZZ robot

Blocks

Create FTC OpModes with the browser-based visual programming tool

On this page

Programming toolsRobot workflowSetup guidesProgramming lessonsSources