A comprehensive WPILibJ-based Java library built for FRC teams. Excalib provides pre-built mechanisms, custom swerve drive implementations, and advanced control tools to accelerate your robot development and allow you to focus on strategy and creativity.
This repository contains the source code and releases for ExcaLib, a Java-based library built on top of WPILib to streamline robot development for FRC teams.
ExcaLib is designed to:
- Accelerate development with prebuilt, plug-and-play mechanisms
- Enable teams to focus on robot behavior and strategy, not boilerplate
- Encourage best practices in code structure, testing, and reusability
- Provide high-level control abstractions (PID, motion profiling, trapezoids, feedforward, state-space, and more)
- Seamlessly integrate with WPILib's command-based architecture
📖 Full docs are available at:
excalib.excaliburfrc.com/docs
Note
ExcaLib is designed to complement WPILib, not replace it. We recommend familiarizing yourself with WPILib concepts before diving into ExcaLib to better understand the foundations.
- ✨ Custom Swerve DriveBase & Kinematics
- 🔁 Reusable Mechanism Templates
- 🎯 Control Systems (PID, Motion Profiling, Trapezoid Profiles, etc.)
- 🧠 Utilities for SmartDashboard, Command-based structures, and telemetry
- 🔌 Easily pluggable into WPILib Command-based Robot structure
ExcaLib is available as a WPILib vendor dependency. To install:
- Open your robot project in your code editor.
- Open the WPILib Command Palette (
Ctrl+Shift+P
or click the WPILib icon) - Select
Manage Vendor Libraries
- Select
Install new libraries (online)
- Paste the following JSON URL when prompted:
https://raw.githubusercontent.com/ExcaliburFRC/ExcaLib/pre-release/ExcaLib.json
Important
For further guidance, refer to the WPILib Vendor Library Docs.
You MUST install the Monologue
library alongside ExcaLib.
Monologue enables annotation-based telemetry and logging, which is used extensively throughout ExcaLib.
Need help? Reach us via:
The README provided by @I-No-oNe