UTRAHACKS

Inspiration

This challenge draws inspiration from the Winter Olympics biathlon, a sport defined by the balance between sustained motion and moments of precision. The event’s demands—speed, accuracy, and adaptability—closely parallel the challenges of autonomous robotics.

Our objective was to explore how these principles translate into robotic systems, emphasizing software structure and autonomy as the primary drivers of reliable behavior rather than ad-hoc mechanical tuning.


What It Does

The robot autonomously navigates a Winter-Olympics–style course by coordinating perception, decision logic, and actuation. Its behavior is decomposed into discrete functional stages executed sequentially through software.

Core capabilities include:

  • Object Interaction
    Retrieving a cube from the starting area and depositing it into a designated blue zone, enabling access to subsequent course elements.

  • Navigation
    Traversing one of two possible routes:

    • Red Path — a constrained obstacle course requiring frequent heading corrections
    • Green Path — straight and curved ramps demanding consistent speed and incline handling
  • Target Alignment and Actuation
    Using color-based perception to align with a target region and launch a ball with controlled timing.

  • Behavior Selection
    Adapting navigation and targeting behavior based on the selected path, with configurations updated via software changes rather than hardware rewiring.


How We Built It

The robot was constructed entirely from components provided in the hacker kit, with a design philosophy centered around clear separation between hardware interfaces and behavioral logic.

Key Components

Control & Software Architecture

  • Arduino Uno R4 Minima as the central controller
  • A modular C++ codebase structured around clear abstraction boundaries
  • Separation of concerns across:
    • low-level hardware drivers (motors, sensors)
    • mid-level perception and calibration modules
    • high-level behavioral routines representing course segments
  • Function-based behavior modules, enabling individual tasks (navigation, targeting, object handling) to be developed, tested, and iterated independently
  • Enforced code consistency using clang-format to eliminate style ambiguity
  • Comprehensive inline documentation, with API-level comments generated using Doxygen to support maintainability and parallel development

Actuation

  • Differential drivetrain with two DC motors, controlled by an L298N motor driver
  • Two servo motors controlling articulated mechanisms for object manipulation and ball launching

Perception

  • Ultrasonic sensor for distance-based obstacle detection
  • Color sensor for navigation cues
  • Two IR sensors for line following and course alignment

Power & Structure

  • Powered by a 9 V battery
  • Mounted on a laser-cut base with securely fastened motor mounts and structural supports

Challenges We Ran Into

  • Environmental Variability
    Lighting conditions on the demo course significantly affected sensor reliability, particularly for color detection. Calibration and thresholding were therefore handled in software to allow rapid tuning without mechanical changes, and the sensor's frequency sensitivity was adjusted to 20%.

  • Time Constraints
    Completing the full course within a strict 5-minute limit required careful coordination between sensor polling rates, actuation delays, and execution order.


Accomplishments We’re Proud Of

  • Strategic Scoring Execution
    Successfully completing high-value maneuvers, including:

    • Launching a ball into the region between the blue zone and the wall (5 points)
    • Navigating the curved ramp section in practice (4 points)
  • Software Reliability
    A structured and modular codebase reduced integration errors and enabled rapid debugging under time pressure.

  • Autonomous Operation
    Sensor-driven behavior allowed the robot to complete the course with minimal resets or unnecessary reuploads, avoiding penalties and improving robustness.


What’s Next for *Vertically Inclined*

  • Algorithmic Refinement
    Improving robustness through refined sensor processing and tighter timing control. Optimize our line-tracking s.t sensor-based data have greater influence over our hard-coded methods

  • Sustainability Considerations
    Exploring reduced material usage and reusable components while preserving extensible software architecture for future iterations. Many of the bugs and inconsistencies were due to poor batteries and their inability to recharge. We'd like to extend this beyond the hardware constraints of the single 9V Alkaline to rechargable, or perhaps two in series in attempt to overclock the motors, as we did confirm it was a safe possibility.

Built With

Share this project:

Updates