Peter Johnson
96348e835a
Fix C++ SendableRegistry::AddChild() ( #2207 )
...
Add a Sendable* overload so pointers to sendable objects work appropriately.
Otherwise an AddLW(this) in a child (which is a Sendable*) could be a
different pointer than a void* to the same object.
For example:
AnalogInput constructor calls AddLW(this)
AnalogPotentiometer constructor calls AddChild(analog input pointer)
Also add handling for the child object moving (if it's Sendable).
2019-12-29 23:37:14 -06:00
Oblarg
c7a1dfc0bc
Add SlewRateLimiter class ( #2192 )
...
This is extremely useful for implementing various "ramping" functions
(such as voltage ramps, setpoint ramps, etc). Usage is straightforward;
it behaves like all of our other filter classes. C++ version is unit-safe.
2019-12-29 13:36:28 -06:00
Peter Johnson
7b952d599d
Add usage reporting for many new things ( #2184 )
...
- new CommandScheduler
- kinematics and odometry classes
- new PIDController
- ProfiledPIDController
- TrapezoidProfile (reported in Constraints class)
Also update instances.txt to match latest NI version.
One side effect is that a couple of classes are no longer constexpr.
2019-12-25 00:42:14 -06:00
Thad House
bdc1cab013
Add support for configuring SPI Auto Stall Config ( #2193 )
2019-12-24 12:52:58 -06:00
Prateek Machiraju
3259cffc63
Add transform methods to Trajectory ( #2187 )
2019-12-23 13:16:30 -06:00
sciencewhiz
1ce24a7a2f
Add 2020 speed controllers ( #2188 )
...
Add CTRE TalonFX (PWMTalonFX)
Add Playing with Fusion Venom (PWMVenom)
2019-12-22 13:51:43 -06:00
Prateek Machiraju
635882a9f7
Add getter for initial pose in Trajectory ( #2180 )
2019-12-21 06:57:39 -08:00
Peter Johnson
e20d96ea4e
Use __has_include for WPILib.h ( #2164 )
...
Now that commands and cameraserver libraries are no longer direct dependencies,
it's necessary to check for their presence.
2019-12-07 21:39:58 -08:00
Tyler Veness
5c6b8a0f45
Replace std::is_pod_v with std::is_standard_layout_v ( #2159 )
...
The former is deprecated in C++20.
2019-12-07 13:34:52 -08:00
Thad House
67d2fed685
Add DutyCycleEncoder channel constructor ( #2158 )
...
Avoids extra boilerplate at user level.
2019-12-06 20:58:04 -08:00
Oblarg
f7a93713fa
Fix up templated TrapezoidProfile classes ( #2151 )
...
* Fix two-phase name lookup bug
* Fix param in ProfiledPIDCommand constructor overload
* Fix ProfiledPIDCommand/Controller
2019-12-04 20:40:37 -08:00
Matt
6c8f6cf479
Fix bug in cubic and quintic hermetic spline generation ( #2139 )
...
Add documentation for spline derivatives and explicitly zero matrices.
2019-12-01 21:29:52 -08:00
Oblarg
9a515c80f8
Template C++ LinearFilter to work with unit types ( #2142 )
2019-11-30 23:12:02 -08:00
Prateek Machiraju
5b73c17f25
Remove encoder velocities methods in DifferentialDriveOdometry ( #2147 )
...
It doesn't make sense to continue to provide a less accurate method of performing odometry
when a more accurate method using distances exists.
This also removes the need to pass DifferentialDriveKinematics to the constructor.
2019-11-30 23:10:29 -08:00
Prateek Machiraju
2622c6c291
Add default values for b and zeta in RamseteController ( #2145 )
...
Values b=2.0 and zeta=0.7 have been well-tested to produce desirable results.
2019-11-29 21:16:01 -08:00
Austin Shalit
f66ae59992
Add HSV helpers to AddressableLED ( #2135 )
...
Also change the setLED() method to setRGB() for consistency and clarity.
Add rainbow example to demonstrate HSV usage.
2019-11-29 15:16:57 -08:00
Oblarg
5e97c81d80
Add MedianFilter class for moving-window median ( #2136 )
...
This kind of filter is extremely useful for signals that are susceptible to sudden
outliers - ultrasonics, 1-D LIDAR, and results from vision processing are all
good use-cases.
This also modifies the existing ultrasonic examples accordingly.
2019-11-29 15:13:40 -08:00
Tyler Veness
f79b7a058a
Remove unnecessary constructor arg for LinearFilter's circular buffers ( #2140 )
...
They are initialized in LinearFilter's constructor, so the default is
never used.
2019-11-28 23:27:20 -08:00
Peter Johnson
39be812b2e
Fix C++ ArmFeedforward ( #2120 )
2019-11-22 06:31:32 -08:00
Oblarg
21e957ee42
Add DifferentialDrive voltage constraint ( #2075 )
2019-11-21 21:43:02 -08:00
Modelmat
3df44c874d
Remove Rotation2d.h wpi/math include ( #2117 )
2019-11-21 19:54:29 -08:00
CTT
a58dbec8aa
Add holonomic follower examples ( #2052 )
2019-11-21 19:52:56 -08:00
Tyler Veness
ffa4b907c0
Fix C++ floating point literal formatting ( #2114 )
...
Found formatting errors with this regex
"([^a-z0-9\.]\.[0-9]|[^a-z0-9\.][0-9]\.[^a-z0-9\.])" and ignored false
positives.
Fixes #2112 .
2019-11-20 21:48:15 -08:00
Oblarg
fa85fbfc1c
Template C++ TrapezoidProfile and ProfiledPIDController on units ( #2109 )
2019-11-20 20:11:46 -08:00
Thad House
5443fdabc1
Directly construct PWM port from HAL, avoid wpilib PWM object ( #2106 )
2019-11-20 14:48:14 -08:00
Austin Shalit
c0e36df9d8
Standardize on PWMVictorSPX in examples ( #2104 )
2019-11-19 21:48:22 -08:00
Prateek Machiraju
45201d15fc
Add encoder distance overload to DifferentialDriveOdometry ( #2096 )
...
Also force encoders to be reset to zero on pose reset.
2019-11-19 09:56:34 -08:00
Tyler Veness
845aba33fe
Make feedforward classes constexpr ( #2103 )
...
ArmFeedforward::Calculate() can't be made constexpr because std::cos()
and thus units::math::cos() is not constexpr.
Fixes #2101 .
2019-11-19 06:47:59 -08:00
Thad House
500c43fb84
Add examples for DMA, DutyCycle, DutyCycleEncoder and AddressableLED ( #2100 )
2019-11-18 22:12:17 -08:00
Thad House
8ed2059074
Add AddressableLED ( #2092 )
2019-11-17 16:39:38 -08:00
Prateek Machiraju
841ef91c0f
Use gyro angle instead of robot angle for odometry ( #2081 )
...
The odometry classes previously took in the robot angle as an argument, meaning that users had to take care of offsetting the gyro themselves to accurately report the robot angle. This change will make it so that users will not have to worry about resetting gyros and adding offsets themselves, as this will be handled by the odometry classes.
2019-11-15 17:34:10 -08:00
Thad House
82b2170feb
Add DMA support to HAL and WPILibC ( #2080 )
2019-11-14 22:52:34 -08:00
Thad House
8280b7e3af
Add DutyCycleEncoder and AnalogEncoder ( #2040 )
2019-11-14 22:51:33 -08:00
Thad House
3cce61b89f
Add SmartDashboard::GetEntry function in C++ ( #2064 )
...
Existed in Java already.
2019-11-12 17:11:32 -08:00
CTT
565e1f3e79
Fix spelling in MecanumDriveOdometry docs ( #2072 )
2019-11-11 23:25:09 -08:00
Peter Johnson
3e049e02f0
Add name to HAL Notifier
2019-11-11 22:03:29 -08:00
Oblarg
7dc7c71b58
Add feedforward components ( #2045 )
...
Add helper classes for computing feedforwards with parameters supplied by the characterization tool.
2019-11-09 20:16:42 -08:00
sciencewhiz
94843adb8f
Standardize documentation of Speed Controllers bounds ( #2043 )
...
Some were in constructor docs, some in init function docs, and some
inline in code. Move them all to class docs.
2019-11-09 09:14:53 -08:00
Thad House
9bcff37b93
Add HAL specific version of wpi_setError ( #2055 )
...
Cleans up error writing, and allows fewer headers to be included in many of the wpilibc cpp files.
This removes all usages of the hal/HAL.h header.
2019-11-08 22:53:20 -08:00
Thad House
ff39a96cee
Make DigitalOutput a DigitalSource ( #2054 )
...
It's perfectly safe to use as a DigitalSource, and can enable some cool tricks.
2019-11-07 20:03:43 -08:00
Peter Johnson
7508aada93
Add ability to end startCompetition() main loop ( #2032 )
...
This is useful for both cleanly exiting from simulation and for unit testing
at a framework level.
This change required removing move constructor/assignment from IterativeRobot.
2019-11-05 21:33:09 -08:00
carbotaniuman
ed30d5d40e
Add JSON support for Trajectories ( #2025 )
2019-11-02 11:35:03 -07:00
Thad House
1d695a1660
Add FPGA Duty Cycle support ( #1987 )
2019-11-01 23:41:30 -07:00
Thad House
509819d83f
Split the two command implementations into separate libraries ( #2012 )
...
This will allow us at the user code side to determine to include old commands, new commands or both.
2019-11-01 21:58:54 -07:00
Oblarg
9ebd23d61e
Add setVoltage method to SpeedController ( #1997 )
...
Add a voltage-compensated setVoltage method to SpeedController, which is sorely needed to help teams use feedforward-based controls effectively. Also uses correct units on the cpp side.
Also update relevant examples.
2019-11-01 09:32:40 -07:00
Peter Johnson
0be6b64756
Use constexpr for DifferentialDriveKinematics
2019-10-28 09:19:41 -07:00
Thad House
936627bd94
wpilibc: Remove direct CameraServer dependency ( #1989 )
...
This makes linking easier, particularly for third party vendors and other language wrappers.
2019-10-27 08:37:30 -07:00
Prateek Machiraju
8e333c0aad
Use FPGA Time instead of wall clock time for odometry ( #1996 )
2019-10-27 07:57:35 -07:00
Oblarg
79f8c5644a
Add TrapezoidProfileCommand ( #1962 )
2019-10-26 09:58:13 -07:00
Prateek Machiraju
9440edf2b5
Refactor TrajectoryGenerator ( #1972 )
2019-10-26 09:39:47 -07:00