Cuttlefish is an FTC utility library designed to make both the robot programming process, and the resulting code, simpler, faster and better. It is split up into two modules: Cuttlefish and CuttlefishFTCBridge. The Cuttlefish module contains general robotics features such as a deadwheel odometry localizer and a modular scheduling system. The CuttlefishFTCBridge module acts as a bridge between the main Cuttlefish library and the FTC SDK.
If you are using Cuttlefish for FTC please make sure to state that you are using Cuttlefish by 14496 roboctopi in your engineering notebook.
The github for Cuttlefish and Cuttlefish can be found here:
Cuttlefish is an FTC oriented library designed to make both the robot programming process, and the resulting code, simpler, faster and better. It contains a variety of features including deadwheel odometry, waypoint based navigation, and queue based task scheduling system. Cuttlefish is designed to be modular and extendable so that you can easily use it to augment rather than replace your own code.
Throughout our FTC journey, we have noticed certain shortcomings in the stock rev robotics device system. First, the config system can be extremely inconvenient to use as the config must be changed in the app and cannot be adjusted directly in code, in addition to several other issues. Next, there are often performance issues when using lots of sensors as each one has to poll the hub individually. Finally, there is a lot of functionality available through the LynxCommand API that is not exposed by the built-in device classes that can be extremely useful. In order to combat these issues, we have created our own device system as an alternative to the stock device system that accesses features directly through LynxCommands. This replaces classes like
DcMotor with custom classes like