1 of 111

FTC Kickoff 2025

10435 Circuit Breakers

Getting Started with JAVA Programming

Android Studio setup and Github

2 of 111

QR code for slideshow

3 of 111

Presenters

  1. Samyu Mogallapalli: 4th year of FTC
  2. Kalya Kothavale: 6th year of FTC
  3. Caden Byrnes: 2nd year of FTC
  4. Jovin Jerry: 1st year of FTC
  5. Caleb Purcell: 2nd year of FTC

10435

4 of 111

What you will learn today

  1. How to install Android Studio and Git
  2. How to create a Github account
  3. How to create your first project in Android Studio
  4. How to push your project to Github
  5. How to push your changes to Github
  6. Where to find further information

10435

5 of 111

The main components

  • What is Android Studio
    • Development environment where you edit Java code
  • What is Git
    • Tool that tracks code changes and merges them between Android Studio and Github
  • What is Github
    • Website that hosts code projects and allows easy collaboration among multiple developers using Git

10435

6 of 111

Be aware of

  • These examples are from Windows. There will be some differences on Mac.
  • This is a detailed instruction set. We'll skip through the defaults quickly, so you'll need to look back at this later.
  • We are not even scratching the surface on Git, Github, and Android Studio.
  • Links at the end of this document show you where to find more
  • Inviting team members to your Github for collaboration may be the next thing to learn

7 of 111

Start Here - FTC doc site

https://ftc-docs.firstinspires.org/

“Getting Started” section has links for:

  • Rookie Teams (New Team)
  • Veteran Teams (Returning Team)

Click on the Android Studio Resources in the left column links. Here you will find “Android Studio Tutorial”. The examples for installing are out of date, but other info here should be read.

10435

8 of 111

FTC 10.3 SDK Release

https://github.com/FIRST-Tech-Challenge/FtcRobotController

  • Bookmark this github project.
  • When new releases come out, scroll down and read "Release Information"
  • This is the project you will download and import to get started. Git fork is not discussed here (you should learn later).

9 of 111

Step List (link to slide)

  1. Setting up Android Studio
  2. Creating/Linking a GitHub Account
  3. Downloading and Opening the FTC SDK
  4. Sharing your Project on GitHub

10 of 111

Setting Up Android Studio

STEP 1

11 of 111

Setting Up Android Studio

10435

The search term you should use is “Android Studio”

12 of 111

Or you can enter this to go directly to this page

https://developer.android.com/studio

13 of 111

1.

2.

14 of 111

15 of 111

16 of 111

17 of 111

18 of 111

19 of 111

20 of 111

21 of 111

22 of 111

23 of 111

24 of 111

25 of 111

26 of 111

27 of 111

28 of 111

29 of 111

30 of 111

31 of 111

1.

2.

3.

32 of 111

33 of 111

34 of 111

35 of 111

36 of 111

37 of 111

38 of 111

39 of 111

Creating/Linking a GitHub Account

STEP 2

40 of 111

Switch to Chrome

41 of 111

Github

42 of 111

43 of 111

44 of 111

45 of 111

Start/Switch to Android Studio

46 of 111

47 of 111

48 of 111

49 of 111

50 of 111

51 of 111

52 of 111

53 of 111

54 of 111

55 of 111

Downloading and Opening the FTC SDK

STEP 3

56 of 111

Switch to Chrome

57 of 111

58 of 111

59 of 111

60 of 111

61 of 111

62 of 111

Right Click

63 of 111

Go to Android Studio

64 of 111

65 of 111

66 of 111

67 of 111

Rename to your desired project name

Then click Select Folder

68 of 111

69 of 111

70 of 111

71 of 111

72 of 111

73 of 111

74 of 111

75 of 111

Sharing project on GitHub

STEP 4

76 of 111

1. Click "Terminal"

2. Execute these commands:

git config --global user.name "<your name>"

git config --global user.email "<your email>"

Your name and email do not have to be the same as your GitHub account

3.

77 of 111

78 of 111

79 of 111

80 of 111

81 of 111

82 of 111

1

2

4

4 - This can identify you personally and does not need to be the same as your github account

5

3

83 of 111

Go to Github Website

84 of 111

85 of 111

86 of 111

87 of 111

Finished!

88 of 111

Folders

Code

Device

Run Code

89 of 111

Follow programming tutorial from here

Link to slide with programming resources

90 of 111

Once you have made changes…

91 of 111

How to push your changes to GitHub

92 of 111

93 of 111

94 of 111

95 of 111

96 of 111

97 of 111

98 of 111

99 of 111

100 of 111

TeleOp and Autonomous

10435

101 of 111

Programming Resources

From FTC:

Learning Java (basics, not FTC related)

Learning Github and Git

10435

Java (from teams, coaches, vendors)

Learning Android Studio (non FTC)

102 of 111

Advanced Concepts

  1. Understanding Electrical/Mechanical Timing Delay
  2. PID
  3. Also - PD w/ Feedforward
  4. Odometry / Location Algorithms
  5. Pathing / Splines / Interpolation of Movement
  6. Road Runner
  7. Pathfinder II
  8. FTC Dashboard
  9. Vision/Recognition
  10. Color
  11. Shape/Object Recognition
  12. Distance/Angle

10435

103 of 111

Understanding Electrical/Mechanical Timing Delay

Electrical and Mechanical Timing Delay is a problem that affects every moving part in an FTC robot. These delays must be dealt with when coding your FTC robot, in order for your robot to perform or function precisely.

Two types of mechanical delay are caused by

  • Momentum (overshooting your target after turning off a motor for instance)
  • The normal time to reach position (Set servo to 90 degrees which is instant in code, but servo takes maybe 2 tenths of a second to get there).

Electrical delays are caused by (this is oversimplified)

  • Code cycle time. Code doesn’t run instantly 1) Your Java code, 2) The SDK code, 3) Android code, and 4) other libraries.
  • Embedded code that controls and reads devices
  • The type/speed of connection that the device uses (i.e. analog/digital)

10435

104 of 111

PID

PID, or Proportional Integral Derivative, is a control loop system where changes are continuously made based on the feedback it receives.

P - Present error- Start at 100% and gradually decrease the speed until there is no error in the system and you have reached the desired output.

I - Past error- Will increase/decrease the speed until it reaches zero error.

D - Prediction of future error- Measures how fast the error is growing or shrinking and increasing or decreasing the speed to compensate.

Why you need it: PID is helpful in correcting errors and controlling the speed of your robot, especially in sudden changes like acceleration at a fast pace.

10435

105 of 111

Odometry and Location Algorithms

Odometry refers to the use of rotational readings from wheels to figure out the robot’s change in position and heading. This is usually done by reading the rotational values of two or three omni wheels (usually deadwheels) and performing calculations using a code library on the readings to determine the change in location.

Why do you need it:

If the code can know where the robot is on the field and control precisely where it will go, you can write amazing Autonomous routines and even some driver-assist functions in Tele-Op

See links at end for pathing (how to tell your robot where to go)

10435

106 of 111

Vision/Recognition

Vision on an FTC robot can have many applications. Every one of those applications starts with a camera.

Vision plays an important role in nearly every FTC Season.

  • Center Stage - Detecting April Tags on backboard
  • Freight Frenzy - Detecting location of team shipping element
  • Ultimate Goal - Determining how many rings are in the stack
  • Skystone - Locating “Skystones” (a differently marked block)

Teams have also used vision to determine and control the robot’s location and angle relative to a target. Check out team 14481 Don’t Blink following a ring with Vuforia: https://www.youtube.com/watch?v=_Hxn4fzfN7k

10435

107 of 111

Advanced Programming Resources

Understanding PID

Odometry - needs updates

PID Programming

Vision - needs updates

10435

108 of 111

How these Concepts Relate to Build

Concept Application:

PID- Wheels and Motors

Odometry- General Chassis

Vision/Recognition- Camera

Electrical/Mechanical Timing Delay-

Full Robot

10435

109 of 111

How to Integrate Team Roles into Planning

  • Meetings must be planned with certain members of your team in order to work efficiently and successfully.
  • Programmers will need to run a lot of testing, and trial and error with the robot.
  • Builder(s) should be present while programmers are testing their code, this allows to fix the robot on the spot.
  • Start making prototypes early on and split your robot into smaller, more specific parts
    • Individually tested alone by the programmer

10435

110 of 111

QR code for slideshow

111 of 111

Thank you for listening!

10435 Circuit Breakers