HOMAR FTC Library

HOMAR is a library of code we wrote to simplify many common FTC tasks, while still allowing teams to add or use their own code. We’ve also included dozens of samples demonstrating how to use our library Some of HOMAR’s features include:

Drivetrains
— Built-in support for tank, omniwheel, and Mecanum drivetrains
— An innovation we call “extrinsic course control” that makes it easy for a holonomic robot to go in the same direction no matter which way it is facing

Controllers
— Ready-to-use PID controller code (we learned calculus so you don’t have to! :))
— 
Support for sensors (e.g. an integrating gyro) that provide both a value and the derivative of that value over time
— Code for tasks (e.g. rotating a robot) that need some way of determining how close to the target value is close enough (we call this a “finishing algorithm”)

Sensors
— Built-in support for many heading sensors, including the Modern Robotics gyro sensor and the IMU in the REV Expansion Hub
— A helper class that tames the myriad number of ways to refer to angles

Tele-op controls
— An extremely useful button class that makes it very simple to complete a task either when a gamepad button is pushed or released
— A set of toggle classes that allow drivers to use a button to toggle robot functions
— A set of “activators” that simplify the common task of “activating” a servo, continuous rotation servo, or motor

Miscellaneous
— A PID tuner op-mode you can adapt to tune PID controllers for your drivetrains
— A class to hold instances of the hardwareMap and telemetry so you don’t have to keep passing them around during testing
— Simple logging code to write files containing log data (there’s only so much you can fit onto that telemetry screen)

For more information, go to https://stpaulacademy.github.io/HOMAR-FTC-Library.
Our GitHub page is at https://github.com/StPaulAcademy/HOMAR-FTC-Library.