Core functionality and API of Road Runner.

All Types

com.acmerobotics.roadrunner.profile.AccelerationConstraint
com.acmerobotics.roadrunner.util.Angle

Various utilities for working with angles.

com.acmerobotics.roadrunner.trajectory.constraints.AngularVelocityConstraint

Constraint limiting angular velocity.

com.acmerobotics.roadrunner.trajectory.BaseTrajectoryBuilder

Easy-to-use builder for creating Trajectory instances.

com.acmerobotics.roadrunner.path.heading.ConstantInterpolator

Constant heading interpolator used for arbitrary holonomic translations.

com.acmerobotics.roadrunner.trajectory.DisplacementMarker

Trajectory marker that is triggered when the specified displacement passes.

com.acmerobotics.roadrunner.trajectory.DisplacementProducer
(extensions in package com.acmerobotics.roadrunner.geometry)
kotlin.Double
(extensions in package com.acmerobotics.roadrunner.util)
kotlin.Double
com.acmerobotics.roadrunner.util.DoubleProgression

A progression of values of type Double.

com.acmerobotics.roadrunner.drive.Drive

Abstraction for generic robot drive motion and localization. Robot poses are specified in a coordinate system with positive x pointing forward, positive y pointing left, and positive heading measured counter-clockwise from the x-axis.

com.acmerobotics.roadrunner.drive.DriveSignal

Signal indicating the commanded kinematic state of a drive.

com.acmerobotics.roadrunner.path.EmptyPathSegmentException

Exception thrown when empty path segments are requested.

com.acmerobotics.roadrunner.util.GuidingVectorField

Guiding vector field for effective path following described in section III, eq. (9) of 1610.04391.pdf. Implementation note: 2D parametric curves are used to describe paths instead of implicit curves of the form f(x,y) = 0 as described in the paper (which dramatically affects the cross track error calculation).

com.acmerobotics.roadrunner.followers.GVFFollower

State-of-the-art path follower based on the GuidingVectorField.

com.acmerobotics.roadrunner.path.heading.HeadingInterpolator

Interpolator for specifying the heading for holonomic paths.

com.acmerobotics.roadrunner.followers.HolonomicPIDVAFollower

Traditional PID controller with feedforward velocity and acceleration components to follow a trajectory. More specifically, the feedback is applied to the components of the robot's pose (x position, y position, and heading) to determine the velocity correction. The feedforward components are instead applied at the wheel level.

com.acmerobotics.roadrunner.kinematics.Kinematics

A collection of methods for various kinematics-related tasks.

com.acmerobotics.roadrunner.path.heading.LinearInterpolator

Linear heading interpolator for time-optimal transitions between poses.

com.acmerobotics.roadrunner.path.LineSegment

Parametric representation of a line.

com.acmerobotics.roadrunner.localization.Localizer

Generic interface for estimating robot pose over time.

com.acmerobotics.roadrunner.trajectory.MarkerCallback
com.acmerobotics.roadrunner.util.MathUtil

Various math utilities.

com.acmerobotics.roadrunner.drive.MecanumDrive

This class provides the basic functionality of a mecanum drive using MecanumKinematics.

com.acmerobotics.roadrunner.kinematics.MecanumKinematics

Mecanum drive kinematic equations. All wheel positions and velocities are given starting with front left and proceeding counter-clockwise (i.e., front left, rear left, rear right, front right). Robot poses are specified in a coordinate system with positive x pointing forward, positive y pointing left, and positive heading measured counter-clockwise from the x-axis.

com.acmerobotics.roadrunner.trajectory.constraints.MecanumVelocityConstraint

Mecanum-specific drive constraints that also limit maximum wheel velocities.

com.acmerobotics.roadrunner.trajectory.constraints.MinAccelerationConstraint

Composite constraint representing the minimum of its constituent acceleration constraints.

com.acmerobotics.roadrunner.trajectory.constraints.MinVelocityConstraint

Composite constraint representing the minimum of its constituent velocity constraints.

com.acmerobotics.roadrunner.profile.MotionProfile

Trapezoidal motion profile composed of motion segments.

com.acmerobotics.roadrunner.profile.MotionProfileBuilder

Easy-to-use builder for creating motion profiles.

com.acmerobotics.roadrunner.profile.MotionProfileGenerator

Motion profile generator with arbitrary start and end motion states and either dynamic constraints or jerk limiting.

com.acmerobotics.roadrunner.profile.MotionSegment

Segment of a motion profile with constant acceleration.

com.acmerobotics.roadrunner.profile.MotionState

Kinematic state of a motion profile at any given time.

com.acmerobotics.roadrunner.util.NanoClock

Clock interface with nanosecond precision and no guarantee about its origin (that is, this is only suited for measuring relative/elapsed time).

com.acmerobotics.roadrunner.path.ParametricCurve

Parametric curve with two components (x and y). These curves are reparameterized from an internal parameter (t) to the arc length parameter (s).

com.acmerobotics.roadrunner.path.Path

Path composed of a list of parametric curves and heading interpolators.

com.acmerobotics.roadrunner.path.PathBuilder

Easy-to-use builder for creating Path instances.

com.acmerobotics.roadrunner.path.PathBuilderException

Exception thrown by PathBuilder.

com.acmerobotics.roadrunner.path.PathContinuityViolationException

Exception thrown when PathBuilder methods are chained illegally. This commonly arises when switching from non-tangent interpolation back to tangent interpolation and when splicing paths.

com.acmerobotics.roadrunner.followers.PathFollower

Generic Path follower for time-independent pose reference tracking.

com.acmerobotics.roadrunner.path.PathSegment

Path segment composed of a parametric curve and heading interpolator.

com.acmerobotics.roadrunner.control.PIDCoefficients

Proportional, integral, and derivative (PID) gains used by PIDFController.

com.acmerobotics.roadrunner.control.PIDFController

PID controller with various feedforward components.

com.acmerobotics.roadrunner.geometry.Pose2d

Class for representing 2D robot poses (x, y, and heading) and their derivatives.

com.acmerobotics.roadrunner.trajectory.constraints.ProfileAccelerationConstraint

Constraint limiting profile acceleration.

com.acmerobotics.roadrunner.path.QuinticPolynomial

Quintic polynomial interpolated according to the provided derivatives.

com.acmerobotics.roadrunner.path.QuinticSpline

Combination of two quintic polynomials into a 2D quintic spline. See this short paper for some motivation and implementation details.

com.acmerobotics.roadrunner.followers.RamseteFollower

Time-varying, non-linear feedback controller for nonholonomic drives. See equation 5.12 of Ramsete01.pdf.

com.acmerobotics.roadrunner.trajectory.SimpleTrajectoryBuilder

Builder for trajectories with static constraints.

com.acmerobotics.roadrunner.trajectory.SpatialMarker

Trajectory marker that is triggered when the trajectory passes the specified point.

com.acmerobotics.roadrunner.path.heading.SplineInterpolator

Spline heading interpolator for transitioning smoothly between headings without violating continuity (and hence allowing for integration into longer profiles).

com.acmerobotics.roadrunner.drive.SwerveDrive

This class provides the basic functionality of a swerve drive using SwerveKinematics.

com.acmerobotics.roadrunner.kinematics.SwerveKinematics

Swerve drive kinematic equations. All wheel positions and velocities are given starting with front left and proceeding counter-clockwise (i.e., front left, rear left, rear right, front right). Robot poses are specified in a coordinate system with positive x pointing forward, positive y pointing left, and positive heading measured counter-clockwise from the x-axis.

com.acmerobotics.roadrunner.trajectory.constraints.SwerveVelocityConstraint

Mecanum-specific drive constraints that also limit maximum wheel velocities.

com.acmerobotics.roadrunner.path.heading.TangentInterpolator

Tangent (system) interpolator for tank/differential and other nonholonomic drives.

com.acmerobotics.roadrunner.drive.TankDrive

This class provides the basic functionality of a tank/differential drive using TankKinematics.

com.acmerobotics.roadrunner.kinematics.TankKinematics

Tank drive kinematic equations based upon the unicycle model. All wheel positions and velocities are given in (left, right) tuples. Robot poses are specified in a coordinate system with positive x pointing forward, positive y pointing left, and positive heading measured counter-clockwise from the x-axis.

com.acmerobotics.roadrunner.followers.TankPIDVAFollower

Traditional PID controller with feedforward velocity and acceleration components to follow a trajectory. More specifically, one feedback loop controls the path displacement (that is, x in the robot reference frame), and another feedback loop to minimize cross track (lateral) error via heading correction (overall, very similar to HolonomicPIDVAFollower except adjusted for the nonholonomic constraint). Feedforward is applied at the wheel level.

com.acmerobotics.roadrunner.trajectory.constraints.TankVelocityConstraint

Tank-specific drive constraints that also limit maximum wheel velocities.

com.acmerobotics.roadrunner.trajectory.TemporalMarker

Trajectory marker that is triggered when the specified time passes.

com.acmerobotics.roadrunner.localization.ThreeTrackingWheelLocalizer

Localizer based on three unpowered tracking omni wheels.

com.acmerobotics.roadrunner.trajectory.TimeProducer
com.acmerobotics.roadrunner.trajectory.Trajectory

Trajectory backed by a Path and a MotionProfile.

com.acmerobotics.roadrunner.trajectory.constraints.TrajectoryAccelerationConstraint
com.acmerobotics.roadrunner.trajectory.TrajectoryBuilder

Builder for trajectories with dynamic constraints.

com.acmerobotics.roadrunner.trajectory.config.TrajectoryConfig

Configuration describing a basic trajectory (a simpler frontend alternative to BaseTrajectoryBuilder).

com.acmerobotics.roadrunner.trajectory.config.TrajectoryConfigManager

Class containing methods for saving (loading) trajectory configurations to (from) YAML files.

com.acmerobotics.roadrunner.followers.TrajectoryFollower

Generic Trajectory follower for time-based pose reference tracking.

com.acmerobotics.roadrunner.trajectory.TrajectoryGenerator

Trajectory generator for creating trajectories with dynamic and static constraints from paths.

com.acmerobotics.roadrunner.trajectory.config.TrajectoryGroupConfig

Configuration describing constraints and other robot-specific parameters that are shared by a group of trajectories.

com.acmerobotics.roadrunner.trajectory.TrajectoryMarker

Trajectory marker that is triggered when the specified time passes.

com.acmerobotics.roadrunner.trajectory.constraints.TrajectoryVelocityConstraint
com.acmerobotics.roadrunner.trajectory.constraints.TranslationalVelocityConstraint

Constraint limiting translational velocity.

com.acmerobotics.roadrunner.localization.TwoTrackingWheelLocalizer

Localizer based on two unpowered tracking omni wheels and an orientation sensor.

com.acmerobotics.roadrunner.trajectory.constraints.UnsatisfiableConstraint

Exception thrown when no velocity or acceleration combination exists that satisfies the constraint.

com.acmerobotics.roadrunner.geometry.Vector2d

Class for representing 2D vectors (x and y).

com.acmerobotics.roadrunner.profile.VelocityConstraint
com.acmerobotics.roadrunner.path.heading.WiggleInterpolator

Heading interpolator that wraps another interpolator and adds sinusoidal oscillations ("wiggles") while preserving continuity. More specifically, the wiggle function is composed of a sine wave with a quintic spline on either end.