Releases: amarcolini/joos
Releases · amarcolini/joos
0.4.9
Changes
- Navigation module is now multiplatform!
- GUI is now rewritten for the web!
- New feedforward classes to better separate it from feedback
- New
AngleSensor
class - New annotations + delegates for
CommandOpMode
to make things cleaner - Overhauled drive classes
- Fixed bug where
CommandOpMode
was initializing commands too early - New experimental GVF following algorithms
- New
PositionPath
andPositionPathBuilder
MotorGroup
is now also aList<Motor>
for more utility methods- Simplified
Motor
- New quality of life features for
GamepadEx
andMultipleGamepad
- Controller-independent buttons
- button concactenation + nicer button selectors
- Trajectories are now serializable to JSON
- Removed
Angle.defaultUnits
- Added faster, state-of-the-art path projection algorithms
- Fixed many bugs with JoosConfig annotation and its siblings
- Much improved swerve kinematics and overall support
- Angular acceleration constraints now implemented correctly
- Fixed bug where
ParallelCommand
s couldn't run more than once - Updated all dependencies (including FTC Dashboard)
0.4.8
Changes
- Migration to kotlin build script
- Addition of dokka documentation
CommandInterface
is now implemented only byCommandOpMode
andRobot
CommandScheduler
's methods are now static for ease of accessRobotOpMode
has been removed and merged intoCommandOpMode
usingregisterRobot
Component
has more convenience constructorsTrajectoryConstraints
and subclasses moved tocom.amarcolini.joos.trajectory.constraints
Note: The GUI has not changed, so the artifacts for this release have been omitted. The artifacts from the previous release will work fine.
0.4.7
Changes
- Public vars with private setters are no longer put on FTC Dashboard (kotlin)
Command
decorators are now more memory efficient- Added
RepeatCommand
for repeating commands - Added
TimeCommand
for time-based commands - Removed
initialize
fromRobotOpMode
and replaced it with a constructor reference constructor parameter - Added item providers to
SuperTelemetry
, similar to the default OpMode telemetry - More quality-of-life methods and constructors for
Motor
andMotor.Encoder
DiffSwerveDrive
now also hassetWeightedDrivePower
- Added
Standard2WheelLocalizer
andStandard3WheelLocalizer
for dead wheel odometry - Redid GUI rendering system, fixing jittering issues when dragging waypoints
- Better separated
FeedforwardCoefficients
andPIDFController
- Moved
Kinematics.calculateMotorFeedforward
toFeedforwardCoefficients
- Minor bug fixes
0.4.6-alpha
Changes
- The annotation module is fixed and now also makes sure it can access fields/properties
CommandScheduler
is now a singleton! This allows for a lot of helpful features:Robot
no longer needs an OpMode as a constructor parameterCommandInterface
allows easy access toCommandScheduler
- Telemetries and gamepads get automatically registered
- New
CommandOpMode
in case you don't like usingRobot
s - Fixes to
SuperTelemetry
Motor
distancePerRev
separated intogearRatio
anddistancePerOutputRev,
allowing forsetTargetAngle
andgoToAngle
- New
Motor.Kind
for easy construction Servo
range set to 300 degrees by default because all the goBILDA servos have that range- command module now requires minSdkVersion of 24
0.4.5-alpha
Changes
- Annotation processor now supports scanning kotlin types through ksp, which should now be used instead of kapt (#14).
- Kotlin types are now scanned when creating config variables, so kotlin properties will show up on FTC Dashboard
JoosConfig
can now also be placed on individual fields / properties as well as on companion objects- GUI importing is now improved - Gradle will automatically retrieve platform-specific dependencies
Imu
fix?
0.4.4-alpha
Changes
- New annotations:
JoosConfig
andWithConfig
, and an annotation processor to go with them!
To install the annotation processor, add it to the annotationProcessor configuration:
dependencies {
annotationProcessor 'com.github.amarcolini.joos.command:annotation:0.4.4-alpha'
}
Or if using kotlin, install kapt and add it to the kapt configuration:
dependencies {
kapt 'com.github.amarcolini.joos.command:annotation:0.4.4-alpha'
}
- GUI robot size is now changeable
- Fixed GUI bug with
strafeLeft
andstrafeRight
Angle
,Pose2d
, andVector2d
are now mutable (so they can be altered on dashboard)
0.4.3-alpha
Changes
- The GUI is now distributed with jlink and platform-specific classifiers
MotorGroup
now has a rotation property and its motors are now public
0.4.2-alpha
Changes
- Differential swerve module directionality optimized (thanks @omagarwal25)
Angle
methods now avoid extra conversions when possible- Fixed bug where updating
DiffSwerveDrive
before setting any drive power/signal threw an error
0.4.1-alpha
Changes
SwerveKinematics
andDiffSwerveKinematics
now minimize module rotation in favor of direction switching (#9)- Minor quality of life improvements for trajectory builders
0.4.0-alpha
Changes
- New
Angle
class! Code that used to look like this:
new TrajectoryBuilder(new Pose2d(), Math.toRadians(0.0), new GenericConstraints())
.splineTo(new Vector2d(30, 30), Math.toRadians(0.0))
.turn(Math.toRadians(90))
.splineToSplineHeading(new Pose2d(40, -20, Math.toRadians(45)), Math.toRadians(30))
.build();
now looks like this:
new TrajectoryBuilder(new Pose2d(), 0.0, new GenericConstraints())
.splineTo(new Vector2d(30, 30), 0.0)
.turn(90)
.splineToSplineHeading(new Pose2d(40, -20, 45), 30)
.build();
- Servo speed can now be changed
- All DriveComponents now have an exposed motor group for easy access to motor properties
- Differential swerve drive support out-of-the-box! (#4)
DashboardUtil
has been removed and merged intoSuperTelemetry
SuperTelemetry
now graphs items on their own line in FTC Dashboard (#7 and #8)Motor
now has 2 new properties:rotation
andmaxDistanceVelocity
RobotOpMode
now haspreInit
andpreStart
instead of justinit
so that it is possible to schedule commands that run in the run loop (#5)- Did someone say DRAGGABLE TANGENTS AND HEADING? Cause the GUI has it now
CommandScheduler.reset()
should now be thread-safe (#9)- Minor logo changes