Based on @jpearman 's quote from Inertial sensor and going straight - #12 by jpearman
I’ve begun porting the WPILib ( https://github.com/wpilibsuite/allwpilib ) to V5. While I don’t have direct experience with FRC/FTC, my impression is that their programming community is much more open and collaborative than VRC’s, and would like to see that ethos come to this community.
The reason I chose to port WPILib is that it’s extremely well thought out, has high code quality, and provides a robust feature-set. I’m particularly taken by their Mission Statement in regards to
raising the floor, not lowering the ceiling ( Contribution Guidelines — FIRST Robotics Competition documentation )
I have departed from WPILib’s implementation of units-of-measure, favoring the approach taken by OkapiLib, leading to a number of small changes in implementation but not functionality.
In the coming weeks, I intend to investigate the feasibility of porting their “Command-Based” programming model to this port, among other features: Command-Based Programming — FIRST Robotics Competition documentation
Current features ported include:
- LVGL inclusion
- Example Autonomous selector
- Unit of Measure (from OkapiLib)
- Tracking Wheel Odometry (2 wheel with Inertial, 3 wheel)
- Sensor Fusion Odometry (Tracking wheels + GPS Sensor)
- Waypoint following
The library is available here: https://github.com/VexWPILib/vpi
I’ve provided a handful of example projects:
- Example Auton Selector: https://github.com/VexWPILib/exampleAutonSelector
- Example Physical Characteristics Tuning: https://github.com/VexWPILib/PhysicalDriveTuner
- Example PID Tuning: https://github.com/VexWPILib/PIDTuner
I would suggest users start from one of the example projects rather than jimmy with the makefiles, since the example projects already have the makefiles set up properly.
I’ve physically tested some basic elements on a differential drive train. I’ve not tested any of the Mecanum (which works on X-Drives) code yet.
This is also an ask of this community to help support this project, either through feedback or code contributions.