LightLib
PROS library for VEX V5: EKF/MCL localization, RAMSETE path following, high-level chassis API
Loading...
Searching...
No Matches
ramsete.hpp File Reference

RAMSETE / Pure Pursuit trajectory follower public API. More...

#include <functional>
#include <vector>
#include "LightLib/drive/trajectory.hpp"

Go to the source code of this file.

Classes

struct  light::PathEvent
 Mid-path action fired once when the trajectory passes its resolved time. More...
 
struct  light::RamseteConfig
 RAMSETE controller and chassis-geometry config. More...
 
struct  light::DriveFF
 Per-wheel feedforward + simple velocity-loop gains. More...
 

Namespaces

namespace  light
 Initialize once via init(); poll getPose/setPose from any task.
 

Enumerations

enum class  light::Follower { light::RAMSETE , light::PURE_PURSUIT }
 Path-following controller selector. More...
 

Functions

void light::ramsete_configure (RamseteConfig rc, DriveFF ff, TrajConstraints defaultCons)
 Configure the RAMSETE follower.
 
bool light::followTrajectory (const Trajectory &traj, int timeoutMs=-1, float poseErrBailIn=8.0f, Follower follower=Follower::PURE_PURSUIT)
 Follow a pre-generated Trajectory.
 
bool light::followTrajectory (const std::vector< Waypoint > &wps, const TrajConstraints &cons, bool reversed=false, int timeoutMs=-1, float poseErrBailIn=8.0f, Follower follower=Follower::PURE_PURSUIT)
 Generate and follow a trajectory from waypoints.
 
bool light::followTrajectory (const std::vector< Waypoint > &wps, const TrajConstraints &cons, std::vector< PathEvent > events, bool reversed=false, int timeoutMs=-1, float poseErrBailIn=8.0f, Follower follower=Follower::PURE_PURSUIT)
 Generate-and-follow variant with mid-path event triggers.
 
bool light::followTrajectory (const std::vector< Waypoint > &wps, bool reversed=false, int timeoutMs=-1, float poseErrBailIn=8.0f, Follower follower=Follower::PURE_PURSUIT)
 Generate and follow a trajectory from waypoints, using the default TrajConstraints registered via ramsete_configure().
 
bool light::followTrajectory (const std::vector< Waypoint > &wps, std::vector< PathEvent > events, bool reversed=false, int timeoutMs=-1, float poseErrBailIn=8.0f, Follower follower=Follower::PURE_PURSUIT)
 Same as above, with mid-path events.
 
bool light::runJerryioPath (const char *csv, bool reversed=false, int timeoutMs=-1, float poseErrBailIn=8.0f, Follower follower=Follower::PURE_PURSUIT)
 Run a waypoint CSV (path.jerryio.com export or hand-written).
 
bool light::runJerryioPath (const char *csv, std::vector< PathEvent > events, bool reversed=false, int timeoutMs=-1, float poseErrBailIn=8.0f, Follower follower=Follower::PURE_PURSUIT)
 Variant with mid-path event triggers.
 
bool light::runJerryioPathFromSD (const char *filePath, bool reversed=false, int timeoutMs=-1, float poseErrBailIn=8.0f, Follower follower=Follower::PURE_PURSUIT)
 Read the CSV from the V5 SD card (e.g.
 
bool light::runJerryioPathFromSD (const char *filePath, std::vector< PathEvent > events, bool reversed=false, int timeoutMs=-1, float poseErrBailIn=8.0f, Follower follower=Follower::PURE_PURSUIT)
 SD-card variant with mid-path event triggers.
 
Characterization routines

Each is meant to be run as its own selectable auton.

void light::characterize_kV_kA_kS (float maxVoltage=10.0f, float rampVps=0.25f)
 Identify kV / kA / kS by ramping voltage and recording velocity.
 
float light::characterize_track_width (int rotations=10)
 Identify the effective track width by spinning in place.
 
float light::characterize_a_lat_max ()
 Identify the maximum sustainable lateral acceleration.
 
void light::characterize_friction (float maxVoltage=10.0f, float stepV=0.5f)
 Friction-FF auto-ID for non-trajectory PIDs.
 

Detailed Description

RAMSETE / Pure Pursuit trajectory follower public API.

The follower owns the motor groups exclusively for the duration of the motion and pauses EZ-Template's drive PID task.

Definition in file ramsete.hpp.