Skip to content
This repository has been archived by the owner on Nov 3, 2021. It is now read-only.

Latest commit

 

History

History
51 lines (36 loc) · 1.9 KB

overview_pseudomotor.rst

File metadata and controls

51 lines (36 loc) · 1.9 KB

sardana.pool

Pseudo motor overview

The pseudo motor interface acts like an abstraction layer for a motor or a set of motors allowing the user to control the experiment by means of an interface which is more meaningful to him(her).

One of the most basic examples is the control of a slit. The slit has two blades with one motor each. Usually the user doesn't want to control the experiment by directly handling these two motor positions since they have little meaning from the experiments perspective. Instead, it would be more useful for the user to control the experiment by means of changing the gap and offset values. In the ~sardana.pool.poolcontrollers.Slit controller, pseudo motors gap and offset will provide the necessary interface for controlling the experiments gap and offset values respectively.

An animation representing a system of slits composed from horizontal blades (left and right) an vertical blades (top and bottom).

An animation1 representing a system of slits composed from horizontal blades (left and right) an vertical blades (top and bottom).

In order to translate the motor positions into the pseudo motor positions and vice versa, calculations have to be performed. The device pool provides ~sardana.pool.controller.PseudoMotorController class that can be overwritten to provide new calculations.

The pseudo motor position gets updated automatically every time one of its motors position gets updated e.g. when the motion is in progress.

The pseudo motor object is also exposed as a Tango device.

sardana-pseudomotor-api

the pseudo motor API

~sardana.tango.pool.PseudoMotor.PseudoMotor

the pseudo motor tango device API

Footnotes


  1. We would like to thank Dominique Heinis for sharing his expertise in blender.