Skip to main content

Crate antaeus

Crate antaeus 

Source
Expand description

§Antaeus

Antaeus is a versatile robotics framework built on top of Vexide. It provides a comprehensive set of tools for VEX V5 robot programming, including:

  • Drivetrain Control: Support for differential drivetrains with tank, arcade, and reverse control schemes.
  • Motion Control: PID-based movement systems, localization, and path following using the Candidate-Based Pursuit algorithm.
  • Display Graphics: An embedded-graphics compatible driver for the V5 Brain display, with TUI rendering support
  • Operator Control: Utilities for mapping controller buttons to motors and ADI devices.
  • Logging: A file-based logger for debugging and telemetry.

§Structure

  • peripherals: Peripheral Access and Enhancements
  • motion: Autonomous motion algorithms including PID, localization, and pursuit.
  • graphics: V5 Brain display graphics using embedded-graphics and ratatui.
  • logger: File-based logging.
  • utils: Error-handling, units, geometry, etc.

§Example

// Most minimalist Antaeus usage example
use antaeus::{
    peripherals::drivetrain::{Drivable, differential::StandardDifferential},
    prelude::{Length, differential::DifferentialConfig},
};
use vexide::prelude::*;

#[vexide::main]
async fn main(peripherals: Peripherals) {
    let mut drivetrain = StandardDifferential::new(
        [
            Motor::new(peripherals.port_1, Gearset::Green, Direction::Forward),
            Motor::new(peripherals.port_2, Gearset::Green, Direction::Forward),
        ],
        [
            Motor::new(peripherals.port_3, Gearset::Green, Direction::Reverse),
            Motor::new(peripherals.port_4, Gearset::Green, Direction::Reverse),
        ],
        DifferentialConfig::new(
            Length::from_inches(12.0),
            Length::from_inches(3.25),
            1.0, // Direct Drive
            1.0,
        ),
    );

    let controller = peripherals.primary_controller;
    loop {
        let _ = drivetrain.tank(&controller);
    }
}

Modules§

graphics
Graphics and Display Related Modules
logger
File-based logger implementation for the V5 Brain.
motion
Autonomous motion control algorithms.
peripherals
Peripheral Control
prelude
Prelude for Wildcard Imports
utils
Utility functions and types.

Functions§

make_cloneable
Makes an object cloneable by wrapping it in Rc and RefCell
to_mutex
Turns an object into a mutex (only use for actual threads, not async)