OkapiLib Versions Save

A PROS library for programming VEX robots.

v4.0.4

3 years ago

Features

  • Minimize turns to 180 degrees (#441).
  • Add strafe and strafeVector to XDriveModel (#443).
  • Add common math functions for units (#445).

Bug Fixes

  • Fix Pathfinder when used directly in C++ projects (#436).

v4.0.3

4 years ago

Features

  • Add OdomChassisController::getOdometry (#420).
  • Add {set/get}Gains methods to AsyncPosPIDController and AsyncVelPIDController (#424, #425).

Bug Fixes

  • Fix uninitialized member in Controller (#422).
  • Make ChassisScales constructor parameter tpr a double to prevent loss in precision (#423).

v4.0.2

4 years ago

Bug Fixes

  • Fix ADIUltrasonic documentation (#414).
  • Classes with internal tasks (like ChassisControllerPID) will stop the subsystem they control when their internal task exits (#412).

Features

  • Add AsyncPositionController::setMaxVelocity(std::int32_t) (#415).

v4.0.1

4 years ago

Bug Fixes

  • Add ChassisController::setMaxVelocity so users don't try to set it on the underlying ChassisModel directly (which does not always work) (#409).

v4.0.0

4 years ago

Features

  • Odometry (#213).
  • Saving and loading Pathfinder paths to files on the SD card (#358).
  • ChassisControllerFactory replaced with ChassisControllerBuilder (#279).
  • AsyncControllerFactory replaced with AsyncMotionProfileControllerBuilder, AsyncPosControllerBuilder, and AsyncVelControllerBuilder (#281).
  • AsyncMotionProfileController can follow paths backwards without mirroring them (#290).
  • Support HDrive configurations (#394).
  • Lazy logging using lambdas and guarded log calls.
  • ChassisControllerPID voltage mode (#338).
  • ChassisControllerPID::setGains and ChassisControllerPID::getGains to update gains at runtime (#346).
  • Per-path profile limits (#353).
  • Change motion profile dt to 10 milliseconds (#362).
  • Add AbstractMotor::getPositionError and AbstractMotor::getVelocityError (#364).
  • Log warnings to catch common mistakes.
  • Documentation using Doxygen (#375).
  • Maintain Motor reversing in the motor (without vexOS calls).
  • Update kernel to v3.2.0 (#384).
  • Add ChassisController::isSettled (#386).
  • Rename non-units moveDistance and turnAngle overloads to moveRaw and turnRaw to avoid confusion (#395).

Bug Fixes

  • Use task notification changes in the kernel to handle killing internal tasks when the parent task is killed (#249, #321, #349).
  • Fix IterativeVelPIDController::controllerSet (#291).
  • Fix Motor instances overriding the gearset passed to a ChassisController (#296).
  • Fix IterativePosPIDController derivative term (#298).
  • Fix ADI update rate number (#304).
  • Reset middle sensor in ThreeEncoderSkidSteerModel (#306).
  • Fix ChassisControllerPID using the same Rate instance in multiple places (#332).
  • Fix IterativePosPIDController::setGains (#333).
  • Delete move constructors and move assignment operators for classes which contain internal tasks (#348).
  • Fix partner controller overwriting master controller's internal buttonArray (#357).
  • Fix segfault when removing an AsyncMotionProfileController or AsyncLinearMotionProfileController path while it was running (#360).
  • Fix unsafe frees in AsyncMotionProfileController and AsyncLinearMotionProfileController destructors (#377).
  • Remove Vision export (#405).

Thanks to @theol0403, @juliaschatz, @vexcat, @acetousk, @aDotInTheVoid for their contributions to this release.

v4.0.0-RC9

4 years ago

Features

  • Support for h-drives
  • Support for three encoder x-drives
  • Odometry checks the tick diffs it gets are within +-1000 and skips a cycle if they are not
  • Add ClosedLoopController::getProcessValue()

Bug Fixes

  • In three encoder models, the middle wheel distance can be zero
  • Separate ChassisModel and Odometry ChassisScales
  • More warnings about invalid builder configurations
  • Errors for Odometry not getting enough members in the tick diff data structure
  • Wait for the Odometry task to start running in DefaultOdomChassisController
  • Remove confusing method AbstractRate::delay(int). Use delayUntil instead.
  • Fix ChassisControllerBuilder sometimes computing TPR incorrectly
  • Fix incorrect Odometry movements when using ADI encoders and ChassisControllerIntegrated

Other Notes

  • Renamed moveDistance(double) to moveRaw(double), etc. to make the double vs. unitful method distinctions clearer

v4.0.0-RC8

4 years ago

v4.0.0-RC7

4 years ago

Features

  • Enabled warning level logging by default (instead of no logging)

v4.0.0-RC6

4 years ago

Bug Fixes

  • ThreeEncoderOdometry uses the middleWheelDistance correctly now (if you had to double it, then change it back to the real measurement)
  • Fix default logger initialization order

Features

  • ChassisControllerBuilder got a withClosedLoopControllerTimeUtil method to simplify using custom SettledUtil parameters
  • Builders that start internal tasks now have parentedToCurrentTask/notParentedToCurrentTask methods to control whether they will register a deletion notification from the current task to the internal task(s)
  • Added ConfigurableTimeUtilFactory

v4.0.0-RC5

4 years ago

Bug Fixes

  • The ChassisControllerBuilder can be used in global scope again
  • All builders can be used in initialize() again