Tyler Veness
59c4984ed6
Deprecated internal filter of PID controller ( #746 )
...
This was replaced with an external LinearDigitalFilter.
2017-12-04 20:05:02 -08:00
Peter Johnson
b428d1e4b3
Remove CANSpeedController interface. ( #806 )
...
CANJaguar is no longer supported, and CANTalon no longer uses this interface.
2017-12-04 20:03:07 -08:00
sciencewhiz
52eba45c51
Add missing documentation for squaredInputs for RobotDrive ( #805 )
2017-12-02 22:31:51 -08:00
Peter Johnson
7867e906e9
NidecBrushless: Have disable() call PWM.setDisabled(). ( #763 )
...
This provides a way to stop motor operation even if the DIO is disconnected.
Also change Set() to enable the PWM instead of having the constructor do it.
Provide an explicit Enable() call to re-enable after Disable() is called.
This is different from the other motor controllers (which automatically
re-enable when Set() is called) due to the dual-wiring of this motor
controller.
Motor safety results in disabling the motor only until the next Set() call.
2017-12-01 00:43:11 -08:00
sciencewhiz
cbd08a1e11
Add tests for equivilance of RobotDrive and DifferentialDrive/MecanumDrive ( #732 )
...
Add documentation for how to get same results as RobotDrive and improve
RobotDrive documentation
2017-11-29 21:41:00 -08:00
Thad House
fa0b4428e9
Runs DS enabled loop in process ( #785 )
...
Solves mutex issues, and other issues with the existing teststand
software. And simplifies the unit test structure.
2017-11-28 19:12:05 -08:00
Tyler Veness
26a36779a6
Performed cleanup of Timer's free functions ( #776 )
...
* GetClock() is now officially deprecated since its comment already informally
did so and the function just forwards to Timer::GetFPGATimestamp().
* The declaration of GetPPCTimestamp() is missing a definition and has been
removed.
* std::this_thread::sleep_for() returns immediately when given a negative
duration, so the check for that was removed from Wait().
2017-11-27 21:59:00 -08:00
Tyler Veness
34c44b7ae9
Improved Drive docs and fix implementation bugs ( #774 )
...
I also found some inconsistencies in MecanumDrive and KilloughDrive and fixed
them.
Drive now uses the NED axes convention. Therefore, the positive X axis points
ahead, the positive Y axis points to the right, and the positive Z axis points
down.
Translation in X assumes forward is positive. Translation in Y assumes right is
positive. Rotation rate assumes clockwise is positive. Angles are measured
clockwise from the positive X axis.
Based on the angle origin convention, DrivePolar() for both Mecanum and Killough
needed the normalization removed, sine used to compute the Y component, and
cosine used to compute the X component.
The vector rotation done in DriveCartesian() needs to rotate by a negative angle
instead of positive to undo the robot's rotation. RobotDrive assumed a clockwise
angle and sensors returned counter-clockwise angles, which is why it used a
positive angle for rotation.
2017-11-26 18:36:51 -08:00
sciencewhiz
7a250a1b93
Implement PCM One Shot feature. Fixes artf4731 ( #539 )
2017-11-26 12:55:21 -08:00
Caleb Smith
a338ee8be0
Add PIDController Wrapping ( #601 )
2017-11-25 21:15:33 -08:00
Tyler Veness
a00b2449db
Removed unused includes and replaced Ultrasonic's std::set with std::vector ( #767 )
2017-11-23 20:46:24 -08:00
Tyler Veness
5c659fdcdf
Deprecated PIDController::SetTolerance() ( #764 )
...
PIDController::SetPercentTolerance() behaves identically to it, so removing
SetTolerance() leaves one obvious way to do absolute or percent tolerance.
2017-11-23 01:21:36 -08:00
Thad House
d36d72bd4f
Fixes MotorSafetyHelper locking and race conditions ( #762 )
...
Closes #760
2017-11-23 00:36:57 -08:00
sciencewhiz
614093c0c4
Fix documentation for getMatchTime in Timer class to match DriverStation ( #761 )
2017-11-23 00:19:05 -08:00
Caleb Smith
0431cf97ff
Cleanup PIDController ( #597 )
2017-11-22 18:56:35 -08:00
Tyler Veness
ba879f4663
Cleaned up variable names for std::lock_guard and their associated mutexes ( #759 )
2017-11-22 17:10:21 -08:00
Tyler Veness
96de0b5b11
Variable name fixes ( #758 )
2017-11-22 17:06:57 -08:00
Tyler Veness
85157a56c3
CircularBuffer now uses an idiomatic interface in C++ and Java ( #421 )
2017-11-22 17:04:57 -08:00
Tyler Veness
029246ed28
Replaced extra constructors in LinearDigitalFilter with llvm::ArrayRef<> ( #755 )
...
llvm::ArrayRef<> replaces both the std::initializer_list<> and std::vector<>
constructor overloads.
2017-11-20 21:23:00 -08:00
Peter Johnson
c73dd807e1
ErrorBase: Remove last use of sstream and iostream. ( #750 )
2017-11-19 20:16:42 -08:00
Tyler Veness
11f37683c3
Added constructor to PIDController that takes references instead of pointers ( #745 )
2017-11-19 19:06:00 -08:00
Tyler Veness
5af0c9c101
Replaced const variables with constexpr ( #731 )
2017-11-19 19:04:28 -08:00
Tyler Veness
259461aee9
Added PIDController::GetAvgError() back in ( #749 )
...
It got removed during the LinearDigitalFilter change (#38 ) instead of deprecated
by mistake.
2017-11-19 18:23:48 -08:00
Peter Johnson
d214b36786
Change HAL notifier to polling. ( #627 )
...
This moves the thread code to the WPILib layer, fixing various potential
races and significantly simplifying the HAL implementation.
2017-11-19 17:58:40 -08:00
Tyler Veness
4a07f0380f
PIDController class now uses LinearDigitalFilter for filtering velocity instead of internal queue ( #38 )
2017-11-19 15:58:30 -08:00
Tyler Veness
c663d7cd16
Reflowed comments and removed commented out code ( #735 )
2017-11-16 00:33:51 -08:00
Tyler Veness
14fcf3f2f0
Simplified PIDController integration logic ( #645 )
...
A clamp() helper function was written based on C++17's std::clamp().
2017-11-13 22:28:55 -08:00
Peter Johnson
4d559f3856
Use wpi::mutex instead of std::mutex. ( #730 )
...
This uses a priority-aware mutex on Linux platforms.
Fixes #729 .
2017-11-13 09:51:48 -08:00
Tyler Veness
0c83cad70c
Upgraded clang-format to 5.0 ( #431 )
2017-11-11 22:09:51 -08:00
sciencewhiz
0001047b8b
Add NidecBrushless to WPILib.h ( #724 )
2017-11-11 16:35:43 -08:00
Thad House
7bbd13d914
Adds match specific calls to Java and C++ ( #720 )
...
Uses caching, matching the joystick calls.
2017-11-09 19:59:29 -08:00
Tyler Veness
7efab4c43a
Replaced ternary operators with if statements ( #346 )
...
Instances of the ternary operator were replaced with if statements to make the code base more consistent.
2017-11-08 23:44:03 -08:00
Peter Johnson
f3cd883c5c
Add Nidec Brushless motor. ( #705 )
2017-11-08 23:40:01 -08:00
Tyler Veness
1276489961
Removed uses of deprecated functions ( #709 )
2017-11-08 21:29:29 -08:00
Sam Carlberg
237b2df82f
Add .type metadata to preferences table ( #701 )
...
Allows shuffleboard to automatically discover the type, instead of inflexibly hardcoding it
2017-10-30 21:50:49 -07:00
Tyler Veness
595b1df380
Fixed minimum number of joystick axes ( #696 )
2017-10-29 17:21:50 -07:00
Tyler Veness
21585f70a8
Added functions for detecting button press and release events ( #626 )
...
I also shuffled around the HID interfaces to be more intuitive, deprecated some
Joystick and XboxController member functions, and deprecated the JoystickBase
and GamepadBase classes.
Supersedes #89 .
2017-10-27 21:45:56 -07:00
Tyler Veness
4ab095e9c9
Fix formatting in CameraServer.cpp ( #689 )
...
A PR didn't rerun the formatter before merging.
2017-10-27 11:35:57 -07:00
sciencewhiz
12e96c6f13
Add usage reporting to CameraServer ( #682 )
2017-10-27 00:45:54 -07:00
Tyler Veness
9dc1de1d09
Specified angle units for Vector2d rotate() function. ( #679 )
...
Fixes #676 .
2017-10-21 15:29:39 -07:00
Thad House
434d60592c
Adds HAL_Initialize to ErrorBase constructor, and makes HAL_Initialize properly reentrant ( #668 )
...
Partial fix to #663 , and most likely the best we are going to be able to
get.
2017-10-16 20:00:32 -07:00
Tyler Veness
f4779379c3
Added brace comments ( #670 )
...
Enforced by wpilibsuite/styleguide#80 .
2017-10-16 19:56:08 -07:00
Austin Shalit
877a9eae1f
Add SpeedControllerGroup ( #362 )
2017-10-16 19:54:36 -07:00
Sam Carlberg
f0cc623241
Change metadata format to dotfile, make certain entries metadata ( #666 )
...
Sendable's "Name" is now ".name"
Sendable's "Subsystem" is now ".subsystem"
Command's "name" is now ".name"
Command's "isParented" is now ".isParented"
2017-10-11 20:27:49 -07:00
Jacob Caporuscio
ba3a85d0cc
Changes TalonSRX to PWMTalonSRX in wpilibj and wpilibc. ( #656 )
...
Also brings the java kResourceType list up-to-date with the cpp list.
2017-10-11 12:01:50 -07:00
Tyler Veness
dd66b23845
Remove priority mutex ( #644 )
...
* Removed hal::priority_condition_variable
* Replaced uses of priority mutexes with std::mutex and std::recursive_mutex
This allowed replacing a use of std::condition_variable_any with
std::condition_variable.
* Replaced all uses of std::recursive_mutex with std::mutex equivalents
2017-09-28 23:32:35 -07:00
Tyler Veness
19addb04cf
Split RobotDrive class into a class for each drive type ( #552 )
...
DiffDrive.CurvatureDrive (aka CheesyDrive) and KilloughDrive were also added.
This reorganization paves the way for SwerveDrive.
2017-09-28 23:30:00 -07:00
sciencewhiz
423d8f6860
Add missing usage reporting. ( #639 )
...
Compressor C++/Java
Servo C++
2017-09-19 21:17:27 -07:00
Peter Johnson
0d4fde17e0
Remove GetTable from wpilibc Sendable interface.
...
This allows nearly all m_table member variables to be removed.
2017-09-06 22:29:04 -07:00
Peter Johnson
040a8c6bcc
Update wpilibc to use new NetworkTables package and interfaces.
2017-09-06 22:29:04 -07:00