This is a draft of what we think we want new programmers to know to get started with FTC.
Kevin?
- How to install it
- How to configure it with the right SDK
- How to connect to the bot
- How to deploy/diagnose stuff
Malcolm, Adhitya, or RyanTi
Raw FTC functions:
- Motors (Encoders and no encoders)
- Servos
- Sensors
- Bump
- Distance
- Color
- IMU
- Controllers
RyanTa
Controls & motors:
- Tank drive (2 motors)
- Show a few different ways to control the tank:
- Two Sticks (Easiest: wire the Y value to the motor power from each stick)
- Triggers with a reverse button
- Stick + trigger (stick is 'steer' trigger is 'gas')
- Add 4 motor Tank drive
(Bonus piece is Mecanum/XDrive: for later - lots of math!)
RyanTi
Drive to wall (bump) Drive to wall (distance) Drive to stripe Drive to corner (IMU!)
Roy
Continuous Rotation Servos Positional Servos How to program servos Knock over an object beside the bot as an example?
Stringing your tasks together:
- Detect something
- Drive somewhere
- Do something
Bonus: PID Drive! (Kevin & RyanTi both want to work on this)
(Just a thing about naming, yeah?)
I don't know if we want to go into this too much here. It's definitely helpful, but I'd rather we spent time on TechnoLib/FTCLib instead...
It's just a fancy sensor!
OpenCV
- Camera preview
- Bitmaps
- Matrices
- Color space conversion
- "Watching" Regions
Don't try to use OpenCV types in static fields/methods! (Java has Static Initialization Order Fiasco, too!!!) It can cause your robot to crash during startup, before anything even seems to have run!
- Making your auto easier
- Subsystems
- Commands
- Decisions
- Logging
- other stuff...
Any other libraries worth calling out here?
- Commit is kinda like "Save"
- Push is "Share"
- Pull is "accept shared stuff"
- Merge vs. Rebase -> I'm sorry, ask your mentor to help, cuz this is messy and overly complicated. Git truly is the VHS of source control systems...