Skip to content

Releases: AkshobyaRaoSWE/clockwork-lib

v1.6.0 — motion profiles, flywheel control, point moves

Choose a tag to compare

@AkshobyaRaoSWE AkshobyaRaoSWE released this 10 Jul 14:09

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.hpp signedForwardDistance — the forward-progress projection driveDistance uses, pulled out and unit-tested; driveDistance now 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 clockwork

Docs: https://akshobyaraoswe.github.io/clockwork-lib/ · Full changelog: CHANGELOG.md

v1.5.0 — pneumatics, button toggle, joystick curve

Choose a tag to compare

@AkshobyaRaoSWE AkshobyaRaoSWE released this 09 Jul 14:13

Added

  • clockwork::Pneumatics — wraps an ADI solenoid piston (clamp, wings, tilt) with extend(), retract(), set(), toggle(), and a remembered extended() 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 clockwork

Docs: https://akshobyaraoswe.github.io/clockwork-lib/ · Full changelog: CHANGELOG.md

v1.4.0 — auton selector, slew limiter, host tests

Choose a tag to compare

@AkshobyaRaoSWE AkshobyaRaoSWE released this 08 Jul 23:41

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, and run() the choice in autonomous(). 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 with make test or test/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 clockwork

Full changelog: CHANGELOG.md

v1.3.0 — PIDController, anti-jam, tunable driveKp

Choose a tag to compare

@AkshobyaRaoSWE AkshobyaRaoSWE released this 07 Jul 14:54

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::driveDistance gains a tunable driveKp parameter (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 PIDController and antiJam.

Install

pros c add-depot clockwork https://raw.githubusercontent.com/AkshobyaRaoSWE/clockwork-lib/main/depot.json
pros c apply clockwork

Full changelog: CHANGELOG.md

clockwork 1.2.0

Choose a tag to compare

@AkshobyaRaoSWE AkshobyaRaoSWE released this 05 Jul 06:02

Adds wall-align, relative turn, and intake brake/anti-jam helpers.

New

  • Motion::turnBy(degrees, timeoutMs, maxSpeed) — relative turn via the chassis angular PID
  • Motion::driveUntilStalled(power, timeoutMs, headingKp) — drive until stalled (odometry-based); returns whether it stalled
  • Roller::hold() — brake-hold in place
  • Roller::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

Choose a tag to compare

@AkshobyaRaoSWE AkshobyaRaoSWE released this 05 Jul 05:35

Adds motion + intake helpers.

New

  • Motion::driveDistance — relative straight drive with proportional slowdown and heading hold
  • Motion::driveTimed — open-loop timed drive holding heading
  • Roller — 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

Choose a tag to compare

@AkshobyaRaoSWE AkshobyaRaoSWE released this 05 Jul 05:27

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.