This is the host repository for the custom VEX libraries used by the RIT VEXU team
Automatically updated documentation is available at here. There is also a downloadable reference manual.

Getting Started
If you just want to start a project with Core, make a fork of the Fork Template and follow it's instructions.
To setup core for an existing project:
- Create a new vex project (using the VSCode extension or other methods)
- Initialize a git repository for the project
- Execute git subtree add --prefix=core https://github.com/RIT-VEX-U/Core.git main
- Update the vex Makefile (or any other build system) to know about the core files (core/src for source files, core/include for headers) (See here for an example)
- Enable Eigen (Latest supported version is 3.4.0):
- mkdir vendor
- git submodule add https://gitlab.com/libeigen/eigen.git vendor/eigen
- cd vendor/eigen
- git checkout 3.4.0
- Add the following to the makefile to give Core access to the library: INC += -Ivendor/eigen (See here for an example)
If you only wish to use a single version of Core, you can simply clone core/ into your project and add the core source and header files to your makefile.
Features
Here is the current feature list this repo provides:
Subsystems (See Wiki/Subsystems):
- Tank drivetrain (user control / autonomous)
- Mecanum drivetrain (user control / autonomous)
- Odometry
- Tank (Differential)
- N-Pod
- Flywheel
- Lift
- Custom encoders
Utilities (See Wiki/Utilites):
- PID controller
- FeedForward controller
- Trapezoidal motion profile controller
- Pure Pursuit
- Generic auto program builder
- Auto program UI selector
- Mathematical classes (Vector2D, Moving Average)