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.
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/srcfor source files,core/includefor headers) (See here for an example) - Enable Eigen (Latest supported version is 3.4.0):
mkdir vendorgit submodule add https://gitlab.com/libeigen/eigen.git vendor/eigencd vendor/eigengit checkout 3.4.0- Add the following to the
makefileto 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.
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)
