Engineering Log - wccarobotics/ftc-decode GitHub Wiki

3/12/2026

  • We realized that pedropathing was inacurate because we had long loops like 160ms
  • We optimized down to around 13ms for loop times
    • we started doing bulk reads
    • We made it so that we had a que for I2C calls as those don't get bulk read. only one call per loop
  • sturdified the intake frame to avoid a issue where the intake and moter would get disconnected
    • Googly eyes! (MOST INMPORTANT!!!)

3/10/2026

  • Added 3 indicator lights to robot. They indicate alliance color if no artifacts are detected, and if an artifact is detected they indicate what color it is. So far we have the color detection working for the left and right lights, but not the center light which needs to be based on the forward color sensors.
  • We are trying to improve auto accuracy. Robot seemed to be overshooting on movement. We added holdEnd to the paths, so now it overshoots and then moves back. We tuned the forward / reverse PID well, but it looks like we need to revisit the lateral movement PID.
  • Also changed position for initial spike mark loading so it's closer to the first artifact, so we don't spend as much time moving forward at 25% power. We were running out of time in auto, now it looks like we may be under time.

3/1/2026

  • Competed in Adventist Robotics FTC Carolina Scrimmage.
  • Came in 2nd place (out of 8) in qualification matches, and placed first place in playoffs!
  • Tried to get auto aim working with limelight, didn't seem to work, seemingly because pedro pathing doesn't want to spin in place.

Notes for things to do or remember from scrimmage:

  • Intake gear came loose once during match, preventing intake from running
  • Inspection - uninstall robot program from driver hub and fix control hub name
  • Make robot more tolerant for bad starting position - use limelight to fix localization
  • Fix aim and figure out how to rotate in place with Pedro pathing
  • Faster robot sign switching
  • Turn off flywheel automatically when no artifacts are loaded - avoid penalty for flywheel running at end of match.
  • Auto - don’t intake if we already control 3 artifacts - avoid penalties for launching outside of launch area or controlling too many artifacts
  • Make intake command to avoid repeating complicated intake logic for intaking artifacts from spike marks
  • Another battery charger would be nice
  • Add far auto, and maybe move only autos
  • Patterns for auto
  • Auto park for teleop
  • Adjust controls for fine adjustments (especially for parking)

2/28/2026

  • Added LaunchAllCommand and updated auto to try to score 9 artifacts
  • Added guide to right launcher to more reliably feed and launch artifact

2/25/2026

  • Still couldn't figure out MegaTag2 with Limelight

TODO list (as much as possible before scrimmage):

  • Switch to shorter bar holding camera to make sure bot doesn't go outside 18"
  • Switch to super speed servos
    • Program super speed servos
  • Add new color sensors
    • Auto-intake programming with new color sensors
  • Add status lights
    • Programming for status lights
  • Add guide to keep artifacts in the right position in feeder so that feeder is more reliable
  • Remember current position between auto and teleop
  • Save selection of alliance
    • Save selection of auto program
  • Far auto program
  • 6 or 9 artifact auto
  • Auto pattern matching
  • Auto-adjust flywheel speed based on distance (or zone)
  • Prevent robot from hitting gate

2/24/2026

2/22/2026

  • Added code to automatically switch diverter when a ball is intaken

2/21/2026

  • Added mechanism for Limelight camera and getting current pose from it

2/19/2026

  • Got very basic auto working for the first time
    • Backs up off of goal and shoots 1 shot
    • Had trouble because we got the sign on the angle confused again (-135 instead of 135)
  • Added 2 color sensors to robot to detect presence of artifacts ready to be launched
  • End of launcher ramp kept getting pushed down below "grip bar" below intake, which stopped launch feeding from working
    • Added 2 zip ties to each side to help hold it in place
  • Improved auto so it can shoot 3 balls

2/12/2026

  • Added limelight
  • ramp sometimes gets stuck under rubber bar
  • Lucas suggested programming teleop so that the robot wouldn't let you drive into opponent's gate
  • Ran tests of launcher accuracy / consistency. Launched artifacts at whiteboard from 5 feet away, made marks where they hit. Did this for left and right launchers, for single ball in chute pushed by diverter, as well as for the first of two balls loaded. Shot 15 balls for each of the four scenarios. Measured offsets from 39 inches (goal height), wrote on board, and took pictures to record.

2/5/2026

  • Got basic Pedro Pathing configuration working and successfully ran localization test
  • Pedro pathing coordinate system:
    • Red home (opposite from red goal) is 0,0.
    • Back of field: y =~ 131
    • Heading pointing from left to right side of field is 0
    • Counterclockwise rotation is positive
  • basic Pedro pathing tuning(automatic tuning only)
  • started implementing Pedro pathing
  • fixed left launcher
    • bad zip tie placement ws the problem
  • started work on auto aim

2/4/2026

  • Lesly added plate to stop diverter on left of robot. It wasn't getting stuck but it could get pushed too far back by balls from the intake
  • Auto-aim was not working well, probably due to us not understanding or not having a well defined coordinate system
  • Working on getting Pedro Pathing working

1/29/2026

  • Robot weight: 25.2 pounds
  • Lesly added plate to stop diverter getting stuck on right of robot

before 1/25/26

  • Why RI3D?
    • Mechanum and intake
  • Finished robot in three days.
  • Improvements made while building
    • sturdified intake support bars
    • added ball splitter in middle
  • few issues
    • diverter gets stuck
    • left launcher doesn't launch right
    • balls sometimes escape and get into wrong spot
    • robot is very hungry and eats too many balls sometimes
      • Could we run feeders backwards to stop artifacts from going too far?
    • Feeders sometimes don't make contact with artifacts
    • Diverter can get pushed too far back on left side
  • future features
    • Limelight
    • autopark/aim
    • ball detector
    • bumpers / wheel protectors

12/4/25

  • filmed video
  • re-enforced angle ramp so it's supported on both side

11/23-30/25

  • added auto aim

11/19/2025

  • Right at the limit for the launch area 3800rpm with around 30 degrees is around what works.
  • Finished adding pinpoint odometry and started testing and adding code for it

11/17/2025

  • Programmed controls for adjustable launch angle servo

11/13/2025

  • Recorded "What is FTC?" video

11/11/2025 - 11/12/2025

  • Adding servo for adjustable launch angle

11/10/25

  • added variable launch speed
  • when shooting high doesn't really go forward
  • launch angle should be adjusted
  • at around 1000 rpm you can cycle balls

11/7/2025

  • Chain link broke

11/6/2025

  • Finished wiring starter bot
  • Loaded starter code onto bot
    • One drive motor was wired backwards, resulting in incorrect control
    • Feeder servers ran backwards, fixed in code
  • Tested robot and scoring
  • Launcher could score but was not entirely consistent
  • Screws kept loosening - We need Locktite!