The XMP software architecture is composed of separate modular
objects that can be associated in a variety of ways to create
custom systems. For example, a gantry or robot using more
than one motor for a physical axis may be configured to allow
the application to treat the axis as a single entity, simplifying
the geometry. This flexibility does not come without a price,
however, since configuration of complex systems involves a
fairly large number of parameters. To overcome the need to
configure simple "standard" systems, the XMP is pre-configured
with a factory default configuration which can be used for
most simple systems.
To understand how to create a custom XMP configuration,
you must understand the component objects involved. Custom
configurations are created using four types of objects: Motors,
Filters, Axes, and Motion Supervisors (called Motion objects).
To simplify implementation of the XMP architecture, we assumed
that the association of Motors, Filters, and Axis would be
more or less static (created during initialization), while
association of Axes with Motion Supervisors would be more
dynamic (created or modified during runtime).