appa

Open-source C++ chassis movement library for VEX robots. Odometry, PID control, pure pursuit, and boomerang navigation with a composable options API.

Appa is a C++ library for autonomous robot control on VEX robots using the PROS framework. It abstracts odometry, PID control, and path following into a clean API so teams can focus on strategy rather than low-level motion code.

What it does

The library handles localization and movement for a differential drive chassis. Tracking runs asynchronously in the background using either two encoder wheels + IMU, or three encoder wheels. On top of that, it exposes movement commands:

Options system

Movement parameters (speed, acceleration, PID gains, exit tolerances) are configured through composable options objects rather than long argument lists. Presets can be defined once and combined inline:

chassis.move(24, FAST | PRECISE);
chassis.turn(90, SLOW);

Extensibility

Custom localization and tracking systems can be dropped in by subclassing the abstract Localization and Tracker base classes—only a get() method returning pose deltas is required.

Install

pros c add-depot appa https://appa.odom.tech/appa.json