Skip to content

Architecture

Alec edited this page Jun 24, 2024 · 2 revisions

[Continued]

Framework Architecture

The proposed Framework provides services, libraries, and constructs.

Libraries

The Framework provides libraries such as motion control libraries (open-loop, closed-loop). Teams can customize the open source libraries.

Virtual Device

The "Virtual Device" is a key construct of the Framework. A Virtual Device:

  • is bound to zero or more Platform I/O ports
  • can have exclusive or shared access to the Platform I/O port
  • can be bound to other Virtual Devices
  • can run on any Platform of the MRC-Network that has the prerequisite ports
  • can run team code

Any number of Virtual Devices can be instantiated on a Platform subject to availability of resources.

Virtual Devices are portable. A virtual device can be moved to another Platform of the MRC-Network for horizontal scaling and/or load balancing.

Stock Devices

The Framework provides stock Virtual Devices such as:

  • EncoderPort, bound to:
    • DIO + DIO
  • MotorController, bound to:
    • PWM + DIO, or
    • PWM + DIO + EncoderPort, or
    • PWM + PWM [...]

Custom Devices

Teams can customize the stock devices or create custom devices such as:

  • Localization, bound to:
    • EncoderPort(x3), or
    • EncoderPort(x2) + IMU
  • OmniController, bound to:
    • MotorController(x4), or
    • MotorController(x4) + Localization
  • ObjectTracker, bound to:
    • MIPI Camera, or
    • USB Camera
  • Actuator, bound to:
    • MotorController + DIO + DIO, or
    • MotorController + ADC [...]

MRC App

The MRC App hosts the OpModes. The App communicates with the Competition Controller or the Driver Station.

[Back]

Clone this wiki locally