A Simple SLAM Solution.
With both PROS and VEXCode support
To start off with WhoopLib, head to: https://CorniiDog.github.io/WhoopLib/
- Visual odometry / pose estimation
- Wheel odometry / pose estimation (inspired by JAR-Template)
- Fusion odometry (visual + wheel) with rolling average filter
WhoopController
with auto-configuration for Split Arcade, Tank, Left Stick Arcade, and Right Stick Arcade- Path generation: Dubins curves (thanks to Andrew Walker) and Pure Pursuit
- Point-to-point navigation (move between Point A and Point B)
- High-level motion primitives: precise turning (by degrees / to face coordinates), forward/reverse movement with historical position memory for resilience
- General PID controller with anti-windup (
kR
, aka "retracted windup") - Slew rate limiter for motor movements
- Motor voltage-to-speed linearization
TwoDPose
class simplifying linear algebra, modeled with similarities to Roblox’s CFrames- Units system (
_in
,_v
,_mm
, etc.) - Simplified MicroSD card file system
- Autonomous selector with optional persistent saving via MicroSD
- Comprehensive and continuously updated documentation for a low floor and high ceiling
- 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, student-led project and is not endorsed by or affiliated with Texas A&M University.
Important
The Python/Jetson backend is experimental. There is no automatic ML data transfer to V5; users must implement their own integration. Odometry fusion depends on the factory calibration quality of the T265, which can vary over time and between units.
- E-Bots πLons: Odometry Documentation
- JAR-Template: Odometry Inspiration
- Librealsense: Depth Capturing
- Andrew Walker: Path Generation with Dubins-Curves
- LearnCpp: Resource for learning C++
Distributed under the MIT License.