Commit Graph

1211 Commits

Author SHA1 Message Date
Tyler Veness
2a0f79b90f [wpilib] Add X and Y component getters to Pose2d and Transform2d (#2563)
pose.Translation().X() and pose.Translation.Y() are common operations,
so shortening them to pose.X() and pose.Y() would be convenient.

Java uses the getX() convention so that is used instead of X() for Java.
2020-07-02 18:09:36 -07:00
Tyler Veness
e50dbe0c43 [wpilib] Add Gyro::GetRotation2d() (#2555) 2020-06-29 19:10:07 -07:00
Peter Johnson
ce3bc91946 [sim] Move Sim classes from HAL to wpilibc/j (#2549)
Also move some things in HAL for consistency.

WAS:
C++:
- C APIs: #include "mockdata/AccelerometerData.h"
- User side class: #include "simulation/AccelerometerSim.h"
Java:
- JNI APIs: hal.sim.mockdata.AccelerometerData (and a few classes in hal.sim)
- User side classes: hal.sim.AccelerometerSim

IS:
C++:
- C APIs: #include "hal/simulation/AccelerometerData.h"
- C++ class: #include "frc/simulation/AccelerometerSim.h"
Java:
- JNI APIs: hal.simulation.AccelerometerData
- User side class: wpilibj.simulation.AccelerometerSim
2020-06-27 22:11:24 -07:00
Prateek Machiraju
762347f005 [wpilibj] Throw separate exception for constraint misbehavior (#2510)
The most common mistake users (including contributors to WPILib) seem to make while creating new constraints is ignoring some sort of edge case that causes the calculated minimum acceleration to be greater than the calculated maximum acceleration.

This specialized exception, with its detailed error message, should make it easier and quicker for said users to debug and fix bugs within their constraints.

Co-authored-by: Tyler Veness <calcmogul@gmail.com>
2020-06-08 10:38:47 -07:00
Prateek Machiraju
6be1b95241 [wpilibj] Trajectory: Add zero-arg constructor (#2513)
C++ already has this.
2020-05-29 09:18:42 -07:00
Starlight220
1b395fa21d [wpilib] Implement Trajectory.equals() (#2517) 2020-05-27 20:43:32 -07:00
Starlight220
27f9a21a2c [wpilib] Moved Watchdog output to reportWarning() (#2413) 2020-05-20 20:57:06 -07:00
Claudius Tewari
cf7088a462 [wpilibj] RamseteController: Fix units typo in javadocs (#2515) 2020-05-20 20:55:08 -07:00
Thad House
0b9316d94a [build] Revert workaround for azure windows library loading issue (#2481) (#2499) 2020-05-01 08:56:18 -07:00
Starlight220
4b77b0773e [wpilibj] SensorUtil: change exception type (#2490)
Use IllegalArgumentException instead of IndexOutOfBoundsException.
2020-04-23 21:27:48 -07:00
Prateek Machiraju
a3a8472b82 [wpilib] Trajectory: Add MaxVelocity and Region constraints (#2466)
Co-Authored-By: Tyler Veness <calcmogul@gmail.com>
2020-04-12 10:39:43 -07:00
Peter Johnson
212182d991 [wpilibj] Remove getSimObject (#2479)
This approach to getting the simulation object doesn't work in C++ and
creates coupling that doesn't need to be present.
2020-04-12 10:37:27 -07:00
Thad House
c82b8546bc [build] Work around azure windows library loading issue (#2481)
Temporary fix until actions/virtual-environments#707 is deployed.
2020-04-12 10:36:25 -07:00
Peter Johnson
b46b5df16a [wpilibc] Output Tracer to DriverStation by default (#2469)
This matches the Java behavior.

Also optimizes Java to only create a StringBuffer and call
DriverStation.reportWarning if there is data to output.
2020-04-05 23:09:21 -07:00
Prateek Machiraju
cb51029335 [wpilib] Add Color.fromHSV() static helper (#2461)
Keep AddressableLEDBuffer.setHSV() implementation separate in Java
for performance reasons.
2020-04-05 23:08:52 -07:00
Peter Johnson
576d427f03 [wpilib] SpeedControllerGroup: Add vector-taking constructor (#2194)
This allows the list to be constructed dynamically.

Co-authored-by: Thad House <thadhouse1@gmail.com>
2020-04-03 08:39:57 -07:00
Prateek Machiraju
a308dd4471 [wpilib] Fix SplineHelper quintic spline generation bug (#2429) 2020-04-01 20:31:29 -07:00
Prateek Machiraju
8f33d21bc2 [wpilib] Add init methods to Preferences (#2443) 2020-04-01 20:26:49 -07:00
Starlight220
c14b87b228 [wpilibj] Refactor Tracer functionality out of Watchdog class (#2452) 2020-04-01 20:09:40 -07:00
Peter Johnson
184fae4ba5 DutyCycleEncoder: Set ownsDutyCycle for channel constructor (#2436)
Also close dutyCycle before closing digitalInput.
2020-03-21 10:36:31 -07:00
Prateek Machiraju
35b236651e Timer.start(): Match C++ behavior in Java (#2434) 2020-03-20 21:54:46 -07:00
Peter Johnson
c926770550 DutyCycleEncoder: Close created DigitalInput (#2435) 2020-03-20 21:47:32 -07:00
Joshua Shannon
272eaf184f DutyCycleEncoder: Fix simulation support (#2387)
The DutyCycleEncoder class initializes AnalogTrigger, which is not supported in simulation.

To avoid this, do not use AnalogTrigger (or Counter) in simulation mode.

Fixes #2367

Co-authored-by: Peter Johnson <johnson.peter@gmail.com>
2020-03-20 14:32:52 -07:00
Starlight220
56fbb1fc33 Make Ultrasonic.setAuto() static (#2419)
Ultrasonic.setAuto() has static behavior and is static in C++. Tweak docs to be clear about this.
Fixes #2417
2020-03-19 23:25:21 -07:00
Kiefer
33f6bf947e DriverStation (Java): Make getStickButton functions public (#2424)
getStickButtonPressed and getStickButtonReleased were public in C++ but not Java.
2020-03-19 23:23:33 -07:00
Tyler Veness
4228d3609e Fix Watchdog epoch prints being off by three orders of magnitude (#2414)
This was caused by m_epochs storing the timestamps as nanoseconds while
the epoch printing code expects microseconds. Adding a duration cast
fixes this.

Java stores the epoch timestamps in a double as microseconds, so it
doesn't exhibit this bug. The comments were updated to make this more
obvious.

Fixes #2392.
2020-03-15 19:56:08 -07:00
Prateek Machiraju
510936a2a0 Improve Button API documentation in GenericHID (#2421) 2020-03-15 19:54:23 -07:00
Oblarg
a732606e55 Geometry classes: remove explicit serializers/deserializers (#2312)
Jackson can do this with much less code overhead.
2020-03-14 22:15:15 -07:00
Tyler Veness
84e300739c Fix ProfiledPIDController profile direction for continuous input (#2279)
Previously, it could take the long way around. This recomputes the
profile goal with the shortest error, thus taking the shortest path.

Also removed the setpoint clamping from PIDController::SetSetpoint()
because it's unnecessary to make PIDController behave correctly for
a modular arithmetic input, and it breaks the setpoint calculation in
ProfiledPIDController otherwise.

Fixes #2277.
2020-03-14 22:13:57 -07:00
Oblarg
8edf9282c3 Timer: synchronize on lock object (#2352) 2020-03-14 22:13:04 -07:00
Peter Johnson
5a1acaaefc Update copyright dates for #2121 (#2415) 2020-03-14 22:11:36 -07:00
Joshua Shannon
4fd7c210d8 Shuffleboard: Fixed mix up of title and type parameters (#2121) 2020-03-14 22:06:57 -07:00
sciencewhiz
a26a7d217d Remove references to percent tolerance (#2380)
Co-authored-by: Tyler Veness <calcmogul@gmail.com>
2020-03-14 22:04:47 -07:00
Tyler Veness
3be83784cd Add Transform2d::Inverse() (#2407)
This is useful for undoing transformations. One application my FRC team
found was converting perspective n-point data from a "camera to target"
coordinate frame transformation to a "target to camera" coordinate frame
transformation.
2020-03-14 22:01:52 -07:00
Thad House
05a26b7279 Fix missing Field2d package (#2386) 2020-02-21 20:50:53 -08:00
Dustin Spicuzza
761f79385a Add SimulationInit and SimulationPeriodic functions (#2377)
Fixes #2375
2020-02-18 23:05:16 -08:00
sciencewhiz
30ccd13b69 Add methods for getting color of an LED (#2366)
Also fix rounding in Color.
2020-02-18 20:40:03 -08:00
Thad House
60c09ea51f Fix notifier race happening with very fast notifiers (#2370)
What would happen is the Stop() call would happen between the notifier loop being triggered and calling UpdateAlarm(). This would cause the Update to overwrite the stop.
2020-02-18 20:38:05 -08:00
Oblarg
65eab93527 Fix DifferentialDriveVoltageConstraint for tight turns w/ zero velocity (#2341) 2020-02-15 12:36:16 -08:00
sciencewhiz
e93b64f58d Add note that only a single instance of ADXRS450 is supported (#2349) 2020-02-08 10:24:18 -08:00
Oblarg
f0a18f31e7 Timer: add hasElapsed, advanceIfElapsed (#2322)
The current hasPeriodPassed() function is confusing.  In preparation for deprecating it,
add new advanceIfElapsed() function with same functionality and hasElapsed() function
which only checks that the time period has elapsed and does not advance the timer.

Also fix a couple of incorrect usages of hasPeriodPassed().
2020-02-08 10:23:29 -08:00
Vasista Vovveti
29c82527a5 Fix typo in ADXL sim double creation (#2332)
Sets m_simY to the virtual Y acceleration.
2020-02-04 20:15:25 -08:00
Peter Johnson
c165dc5e50 Simulation GUI: Add 2D field view (#2261)
The field image and robot image can be loaded or just a wireframe used.
The robot can be moved and rotated with a mouse click + drag.
The robot position is settable in robot code via the Field2d class.
2020-02-01 21:30:23 -08:00
Declan Freeman-Gleason
ff5d3e5b36 RamseteController: Add setEnabled method (#2313) 2020-01-27 21:53:00 -08:00
Thad House
068465146b Fix null check order in SendableRegistry (#2314) 2020-01-27 19:43:31 -08:00
Prateek Machiraju
558c020cca Fix duplicated state when using quintic splines (#2307)
Generating a trajectory using quintic splines caused a duplicated state at all knot points.
2020-01-24 23:10:28 -08:00
Peter Johnson
d0cf4e8882 Change sim Filesystem.getDeployDirectory() to src/main/deploy (#2293) 2020-01-19 16:34:45 -08:00
sciencewhiz
02fb850761 Add new speed controllers to shuffleboard docs (#2288)
Also fix java links in C++ docs and a few typos.
2020-01-19 14:26:44 -08:00
Tyler Veness
2eb5c54476 TrapezoidProfile: Fix aliasing of m_initial to result in calculate() (#2284)
Fixes #2283.
2020-01-17 20:17:21 -08:00
Austin Shalit
60d48fec57 Fix Java static colors having zero values (#2269)
Also add test for this.
2020-01-13 12:21:44 -08:00