The MPMCA consists of several modules (recognizable in the code as a separate namespace) that each have their own function within the framework:

  • Pipeline. The Pipeline provides functionality to integrate the predictor and controller together, and integrate the cueing algorithm with the outside world.
  • Control. All functionality related to the Model Predictive Controller used to calculate the set of inputs to optimally track the reference output signals.
  • Prediction. All functionality related to calculating a prediction of the future (inertial or pose) reference output signals, based on the current state of the simulation.
  • Messages. Standardized interfaces for communication of specific information between elements in the Pipeline.
  • Utilities. Several utility classes used throughout the Pipeline, providing functionality such as a configuration file reader, UDP senders and receivers, etc.
  • Visualization. All functionality related to visualizing the behavior of the MPMCA using the Foxglove Studio data visualizer.