bapsf_motion.motion_builder

The motion builder (i.e. MotionBuilder) has three fundamental roles for in the framework for probe drive motion:

  1. It defines the physical motion space at probe drive will move in. This includes any excluded regions where a probe drive is not allowed to be, for example a region where a target was position in the LaPD chamber.

  2. Building and generating the motion list that would be used for a data run.

  3. Generating motion trajectories to avoid obstacles in the motion space.

Note, the motion builder does not move the probe drive, it only defines and calculates where a probe drive is allowed to be in the motion space.

The MotionBuilder class hase four fundamental building blocks:

  1. The motion space which defines the \(N\)-D space the probe is supposed to move in. For example, this would be the physical space of the LaPD.

  2. The mask, which is a high resolution boolean array over the motion space indicating where a probe is allowed or not allowed to move to.

  3. The motion layers (sometimes also referred to as point layers), which defines an array of points where the probe ought to move to during a data run. A single motion layer can be defined or multiple layers can be defined to construct more complex point layers. The available layers are summarized below.

  4. The motion exclusions (sometimes also referred to as exclusion layers), which defines regions in the motion space where a probe can not be moved to. A single exclusion layer can be defined or multiple layers can be defined to construct more complex exclusion layers. The available exclusions are summarized below.

The MotionBuilder manages all these fundamental building blocks within a xarray DataSet. The final motion list is generated by MotionBuilder by combining all the fundamental building blocks.

About Point Layers

Note

Discuss the mechanics of a motion layer class. How it creates the DataArray. What the DataArray looks like. How it interacts with the motion list DataSet.

Available Layers

GridCNSizeLayer(ds, center, npoints, size[, ...])

Class for defining a regularly spaced grid.

GridCNStepLayer(ds, center, npoints, step_size)

Class for defining a regularly spaced grid.

GridLayer(ds, limits[, npoints, skip_ds_add])

Class for defining a regularly spaced grid.

Creating a New Layer Type

About Exclusion Layers

Note

Discuss the mechanics of an exclusion layer class. How it creates the DataArray. What the DataArray looks like. How it interacts with the motion list DataSet.

Available Exclusions

CircularExclusion(ds, *, radius[, center, ...])

Class for defining circular exclusion layers in a 2D motion space.

DividerExclusion(ds, *, mb[, exclude, ...])

Class for defining a divider exclusion layer in a 2D motion space.

LaPDXYExclusion(ds, *[, diameter, ...])

Class for defining the :term`LaPD` exclusion layer in a XY motion space.

Shadow2DExclusion(ds, *, source_point[, ...])

Class for defining an exclusion layer that shadows existing exclusion layers in the motion builder.

Creating a New Exclusion Type

API

Module containing functionality for creating and reading motion lists.

Sub-Packages & Modules

core

Module containing the definition of MotionBuilder.

exclusions

Module that contains all the functionality focused around motion exclusions.

item

Module containing the definition of MBItem.

layers

Module that contains all the functionality focused around motion layers

Classes

MBItem(ds, base_name, name_pattern)

A base class for any motion builder class that will interact with the xarray Dataset containing the motion builder configuration.

MotionBuilder(space[, layers, exclusions, ...])

A class that manages all the functionality around probe drive motion in the motion space.

Inheritance diagram of bapsf_motion.motion_builder.item.MBItem, bapsf_motion.motion_builder.core.MotionBuilder