Releases: AkshobyaRaoSWE/clockwork-lib
Releases · AkshobyaRaoSWE/clockwork-lib
Release list
v1.6.0 — motion profiles, flywheel control, point moves
Added
clockwork::TrapezoidalProfile— a speed-up / cruise / slow-down motion profile. Give it a distance, top speed, and acceleration; get target velocity and position at any time. Triangle fallback when the distance is too short, plus reverse support.clockwork::FlywheelController— feedforward + P velocity control for a flywheel. Clamped to one direction, recovers after a shot drags the speed down.Motion::turnToHeading(heading, ...)— turn to an absolute field heading on the tuned turn PID.Motion::moveToPoint(x, y, ...)— blocking drive to a field point via lemlib's motion profiling, with an optional backwards mode.geometry.hppsignedForwardDistance— the forward-progress projectiondriveDistanceuses, pulled out and unit-tested;driveDistancenow calls it.
Stress tested
- Host suite expanded to a real stress pass: integral windup limits, output clamps under extreme input, convergence from both directions, the slew limiter never overshooting a jumping target, curve bounds and deadband edges, the geometry conventions, and every profile/flywheel invariant. 747 checks, all green (
make test).
Install
pros c add-depot clockwork https://raw.githubusercontent.com/AkshobyaRaoSWE/clockwork-lib/main/depot.json
pros c apply clockworkDocs: https://akshobyaraoswe.github.io/clockwork-lib/ · Full changelog: CHANGELOG.md
v1.5.0 — pneumatics, button toggle, joystick curve
Added
clockwork::Pneumatics— wraps an ADI solenoid piston (clamp, wings, tilt) withextend(),retract(),set(),toggle(), and a rememberedextended()state.clockwork::Toggle— latches a boolean on the released-to-pressed edge of a button, so one press toggles once. Pairs with Pneumatics for one-button clamps and speed modes.clockwork::joystickCurve(input, curve, deadband)— exponential joystick shaping with a deadband, for fine low-speed driver control that still hits full power at the ends.- Host tests now cover Toggle and joystickCurve. 29 checks, all green (
make test).
Changed
- Rewrote the header comments across the whole library in a plainer, more human voice. No API or behavior change.
Install
pros c add-depot clockwork https://raw.githubusercontent.com/AkshobyaRaoSWE/clockwork-lib/main/depot.json
pros c apply clockworkDocs: https://akshobyaraoswe.github.io/clockwork-lib/ · Full changelog: CHANGELOG.md
v1.4.0 — auton selector, slew limiter, host tests
Added
clockwork::AutonSelector— a controller-driven autonomous selector. Register routines by name, scroll them with the D-pad before the match, see the pick on the controller and brain screens, andrun()the choice inautonomous(). Core PROS only (no liblvgl / LLEMU).clockwork::SlewRateLimiter— ramps a value toward a target by a fixed step per call. Smooths driver throttle (no wheelies or brownouts) or eases a flywheel up to speed.- Host test suite — the pure-logic classes (
PIDController,SlewRateLimiter) now have tests you run on your computer withmake testortest/run.sh. No PROS install, no V5 brain. 15 checks, all green.
Docs
- New sections on the docs website and in the README for the selector, the slew limiter, and testing.
Install
pros c add-depot clockwork https://raw.githubusercontent.com/AkshobyaRaoSWE/clockwork-lib/main/depot.json
pros c apply clockworkFull changelog: CHANGELOG.md
v1.3.0 — PIDController, anti-jam, tunable driveKp
Added
clockwork::PIDController— standalone reusable PID for any subsystem lemlib doesn't drive (arm, lift, flywheel, wall-align). Anti-windup (integral cap + zero-cross reset), output clamp,settled()helper.Roller::antiJam(...)— non-blocking auto-reverse when the intake jams, then resumes the previous command. Works in opcontrol and autonomous.Motion::driveDistancegains a tunabledriveKpparameter (default 8.0), previously a hidden internal constant.
Fixed
- Straight-drive heading correction now clamps the turn term, so a large transient heading error can no longer make
arcade()steal throttle and pivot in place instead of driving through.
Docs
- README now ships a full plain-English Understanding gains (kP / kI / kD) guide with a symptom→fix table, plus reference + examples for
PIDControllerandantiJam.
Install
pros c add-depot clockwork https://raw.githubusercontent.com/AkshobyaRaoSWE/clockwork-lib/main/depot.json
pros c apply clockworkFull changelog: CHANGELOG.md
clockwork 1.2.0
Adds wall-align, relative turn, and intake brake/anti-jam helpers.
New
Motion::turnBy(degrees, timeoutMs, maxSpeed)— relative turn via the chassis angular PIDMotion::driveUntilStalled(power, timeoutMs, headingKp)— drive until stalled (odometry-based); returns whether it stalledRoller::hold()— brake-hold in placeRoller::stalled(velThreshold)— query stall for anti-jam
Docs: detailed README, CHANGELOG, EXAMPLES, CONTRIBUTING, issue/PR templates.
Install
pros c add-depot clockwork https://raw.githubusercontent.com/AkshobyaRaoSWE/clockwork-lib/main/depot.json
pros c apply clockwork
clockwork 1.1.0
Adds motion + intake helpers.
New
Motion::driveDistance— relative straight drive with proportional slowdown and heading holdMotion::driveTimed— open-loop timed drive holding headingRoller— motor-group wrapper:in/out/stop/spin/pulse
Install
pros c add-depot clockwork https://raw.githubusercontent.com/AkshobyaRaoSWE/clockwork-lib/main/depot.json
pros c apply clockwork
clockwork 1.0.0
First release. PROS motion library on top of LemLib.
Install
pros c add-depot clockwork https://raw.githubusercontent.com/AkshobyaRaoSWE/clockwork-lib/main/depot.json
pros c apply clockwork
Adds clockwork::Motion::driveFullThenSlow — two-phase straight drive (full speed then decelerate to a slower speed) with P heading hold.