holypipette.devices.manipulator.manipulator module

Generic Manipulator class for manipulators.

To make a new device, one must implement at least: * position * absolute_move

TODO: * Add minimum and maximum for each axis

class holypipette.devices.manipulator.manipulator.Manipulator[source]

Bases: TaskController

absolute_move(x, axis=None)[source]

Moves the device axis to position x.

Parameters:
  • axis (axis number)

  • x (target position in um.)

absolute_move_group(x, axes)[source]

Moves the device group of axes to position x.

Parameters:
  • axes (list of axis numbers)

  • x (target position in um (vector or list).)

delete_state()[source]

Delete any previously saved state. By default, overwrites the saved_state attribute with None.

position(axis=None)[source]

Current position along an axis.

Parameters:

axis (axis number)

Return type:

The current position of the device axis in um.

position_group(axes)[source]

Current position along a group of axes.

Parameters:

axes (list of axis numbers)

Return type:

The current position of the device axis in um (vector).

recover_state()[source]

Recover the state (e.g. the position of the manipulators) after a failure or abort. Has to be overwritten in subclasses.

relative_move(x, axis)[source]

Moves the device axis by relative amount x in um.

Parameters:
  • axis (axis number)

  • x (position shift in um.)

relative_move_group(x, axes)[source]

Moves the device group of axes by relative amount x in um.

Parameters:
  • axes (list of axis numbers)

  • x (position shift in um (vector or list).)

save_state()[source]

Save the current state (e.g. the position of the manipulators) for later recovery in the case of a failure or abort. Has to be overwritten in subclasses. Should save the state to the saved_state variable or overwrite has_saved_state as well.

stop(axis)[source]

Stops current movements.

wait_until_reached(position, axes=None, precision=0.5, timeout=10)[source]

Waits until position is reached within precision, and raises an error if the target is not reached after the time out, unless the manipulator is still moving.

Parameters:
  • position (target position in micrometer)

  • axes (axis number of list of axis numbers)

  • precision (precision in micrometer)

  • timeout (time out in second)

wait_until_still(axes=None)[source]

Waits until motors have stopped.

Parameters:

axes (list of axis numbers)

exception holypipette.devices.manipulator.manipulator.ManipulatorError(message='Device is not calibrated')[source]

Bases: Exception