← Back to projectsSchool team · Team engineering

BEST Robotics

Leading the coding team, with hardware on the other side of every command.

My role: coding team leadershipPython · Driver control · Autonomous features
My contribution

Manual and autonomous control.

I led our coding team in building manual and autonomous features for our BEST Robotics robot. I wrote Python controls for multiple driving modes, a forklift and deployable claw, and a controller designed to compensate for stick drift. Our autonomous code uses camera-based AprilTag navigation and motor encoders.

Our 2026 BEST Robotics robot under construction, with a plywood chassis, upright supports, motors and wiring
Our 2026 BEST Robotics robot under construction, photographed October 29. The plywood structure, motors and wiring are part of the shared team build.
A control problem

Changing modes should have a clear boundary.

When a driver changes modes, the code first stops the drive motors and holds the forklift motor. Switching driving styles also sends a stop command before updating the display.

def toggle_mode():
    global mode
    global display_screen

    # flipping command
    if mode == "manual":
        mode = "auto"
    else:
        mode = "manual"

    drive (0,0) # stop motors when switching modes
    forklift_motor.stop(HOLD) # stop forklift motor when switching modes
    display_screen = "main"
    update_display()
Excerpt from Froyo's toggle_mode function.
Read the robot code ↗
Working with teammates

Redesigning the forklift after practice.

After a rough practice day, I worked on a three-person committee to redesign our forklift approach for better speed and reliability.

Development status

Controls are in place; autonomy is developing.

Manual control
The code implements three driving styles, speed selection and stop commands during mode changes.
Vision
The camera detects AprilTags and displays their identifiers and image positions.
Autonomous work
The autonomous code combines AprilTag navigation and encoder movement. I'm developing the route logic and validating repeatable movement on the assembled robot.
Next validation
Calibrate the encoders, then check mode transitions and repeatable route behavior on the assembled robot.