The most advanced SLAM solution in VEX.
With both PROS and VEXCode support
To start off with WhoopLib, head to: https://CorniiDog.github.io/WhoopLib/
WhoopLib Zero - Learn C++ From Zero
- Visual Odometry/Pose Estimation
- Wheel Odometry/Pose Estimation, inspired by JAR-Template
- Communication between V5 Brain and Jetson Nano
- Fusion Odometry between Visual Odometry and Wheel Odometry
- Rolling Average Filter for Fusion Odometry
- WhoopController Class with auto-configuration for Split Arcade, Tank, Left Stick Arcade, and Right Stick Arcade
- Dubins-Curves Path Creation, thanks to Andrew Walker
- Pure Pursuit Algorithm
- Moving between Point A and Point B
- General PID, modified from JAR-Template
- Turning by degrees, Turning to degrees, Turning to Face x and y Coordinates
- Moving Forward and Reverse Functions, alongside Remembering Previous Movement Positions for Improved Resilience
- Generated Paths with Waypoints to Navigate around the VEX Robotics Field in One Fell Swoop
- Well-Rounded and Continuously Updated Documentation for a Low Floor yet High Ceiling
- Slew for Motor Movements
- Motor Voltage to Speed Linearization
- TwoDPose Class which Handles and Simplifies Linear Algebra Mathematics, Following Similarities to Roblox's CFrames for Ease of Use
- Simplified MicroSD Card File System
- Autonomous Selector, optionally to permanently save options using MicroSD Card
- Units system
_in
,_v
,_mm
, etc. - Slew rate
- PID Integral anti-windup constant kR (also known as "Retracted Windup")
- Object Detection and Gridded Permanence system
- Detecting other robots that impede the path of the robot, and drive around
- Implementation of a Jetson Orion Nano instead of the End-Of-Line (EOL) Jetson Nano
- Implementation of a better SLAM solution instead of relying on the EOL Realsense T265 Camera
- Capability to Use Different Devices like Oak-D, etc. for Visual Odometry
- Capability to Use Lidar
- Virtual Highway system
Important
WhoopLib is an independent project created by me, Connor White, and is not affiliated with Aggie Robotics or Texas A&M University.
Important
"WhoopLib Python" and the Vision Tesseract is in its very early stages, and therefore does not actively transfer ML object data to the V5 robot. At the moment, it is up to the end user to figure the Python back-end for the Jetson Nano. The back-end is displayed in a folder on the desktop. Additionally, odometry fusion highly depends on the T265 factory-calibrated quality, which can vary both by product and over time. Additionally, sending odometry data to the T265 is up to the end user to figure out how to implement, but is not required.
- E-Bots πLons: Odometry Documentation
- JAR-Template: Odometry Inspiration
- Librealsense: Depth Capturing
- VEX Robotics
- Andrew Walker: Path Generation with Dubins-Curves
- LearnCpp: Resource for learning C++
Distributed under the MIT License.