Motion control with Katsu on the UASAL Gromit Polarimeter
written by Jaren N. Ashcraft
In order to perform some of the polarimetry routines in katsu we require a rotating retarder of some kind. It is extremely convenient (bordering on necessary) to have computer-controlled rotation stages for high accuracy and repeatability. In the pursuit of open-source instrumentation, as well as software, the UA Space Astrophysics Laboratory created the Gromit Polarimeter to showcase efforts in dual-rotating-retarder
Mueller polarimetry.
Gromit currently uses the Agilis series Piezo Rotation Stages, which operate using a serial communication protocol, which are shown in this instruction manual.
To provide users with a more Pythonic interface than sending bytestrings to the controllers, we created the AgilisRotationStage class in katsu.motion, whose methods wrap these bytestrings. They are initialized by specifying the channel, axis, and port the device is on.
from katsu.motion import AgilisRotationStage
stage1 = AgilisRotationStage(channel=1, axis=1, port='COM1')
In lieu of providing a demo in the katsu documentation, we direct you to the Gromit Polarimeter Repository to learn how the Agilis rotation stage interface is used to set up and calibrate a dual rotating retarder Mueller polarimeter. Specifically, the following jupyter notebooks:
The construction of the AgilisRotationStage class is such that it inherits from a BaseRotationStage base class. The hope is that as katsu grows we will be able to add support for a greater number of rotation stages for a unified platform for polarimeter control and operation.