Odyssey is a high-performance autonomous path-following library built for FIRST Tech Challenge (FTC) competition robots. It models robot trajectories as chained cubic Bézier curves, computes arc-length-parameterized velocity profiles that respect acceleration, braking, and centripetal limits, and drives a mecanum chassis with translational + heading PID plus kS/kV/kA feedforward — all in a small, dependency-light Java library you drop straight into yourDocumentation Index
Fetch the complete documentation index at: https://mintlify.com/saquer916/odyssey/llms.txt
Use this file to discover all available pages before exploring further.
TeamCode module.
Introduction
Learn what Odyssey is, how it’s architected, and when to use it in your FTC season code.
Quickstart
Build and follow your first Bézier path in under five minutes with a working OpMode example.
Core Concepts
Understand Bézier curves, arc-length parameterization, velocity profiles, and heading interpolation.
API Reference
Complete method signatures, parameters, and return types for every public class in Odyssey.
What Odyssey Does
Odyssey solves the three hard problems of FTC autonomous driving:- Smooth, time-optimal paths — cubic Bézier curves parameterized by arc length so the robot moves at a consistent rate along the actual curve, not the parameter axis.
- Physics-aware velocity planning — a trapezoidal profile that simultaneously enforces max velocity, max acceleration, max braking deceleration, and a per-point centripetal acceleration limit so the robot never skids on tight corners.
- Accurate following — a
Followerthat combines a drive feedforward (kS + kV + kA) with PID corrections for lateral offset and heading error, outputting aDriveSignalyourMecanumDriveconverts directly to motor powers.
Add odyssey-core to your project
Copy the
odyssey-core module into your Android Studio FTC project and add it as a dependency in your TeamCode/build.gradle.Define your path
Chain one or more
BezierCurve objects into a Path, choosing a HeadingInterpolator for each segment.Build a VelocityProfile
Construct a
VelocityProfile from your path and kinematic limits — Odyssey pre-computes the optimal speed at every centimeter of travel.Key Features
Arc-Length Parameterization
Gauss–Legendre integration and Brent root-finding give you true distance-to-parameter inversion with 1 × 10⁻⁹ tolerance.
Curvature-Aware Speed Limiting
The velocity profile automatically slows at corners so centripetal acceleration never exceeds your configured limit.
Four Heading Interpolators
Choose Constant, Linear, Tangent, or FaceTarget heading control per curve segment.
Pluggable Localizer Interface
Swap in any odometry source — a GoBILDA Pinpoint implementation is included out of the box.
kS/kV/kA Feedforward
Voltage-compensated feedforward on all four mecanum wheels eliminates battery-sag drift across a match.
JavaFX Path Editor
Drag control points over an FTC field image to design and visualize paths before deploying to the robot.
