![]() |
cacao
Release 0.1.03-dev
Compute And Control For Adaptive Optics
|
Start aolconf with loop number and loop name (you can ommit these arguments when launching the script again):
The loop name (testsim
in the above example) will both allocate a name for the loop and execute an optional custom setup script. The software package comes with a few such pre-made custom scripts for specific systems / examples. When the -N
option is specified, the custom setup script ./setup/setup_<name>
is ran. The script may make some of the steps described below optional.
You can check the current loop number and name settings with:
The script can also launch a pre-written CPU/OS configuration script named ./aocscripts/cpuconfig_<LOOPNAME>
:
There are four options for setting up the DM:
Before choosing an option, select if the DM to be controlled is MODAL
or ZONAL
. A zonal DM is one where the DM pixel locations map to physical actuator locations on the DM, allowing spatial filtering when creating control modes. With a zonal DM, each pixel of the DM map corresponds to a wavefront control mode, and spatial filtering functions are turned off.
Options [C] and [D] are MODAL
options, as the DM does not represent physical spatial actuators. These options build a virtual DM which controls another DM.
S
command in Top Menu
screen). You should see its x and y size in the two lines below. If not, the DM does not exist yet (see next section).nolink
in Top Menu
screen). This command automactically sets up the following symbolic links:M
in Top Menu
screen). The dm performs the symbolic links to the DM channels.S
command in Top Menu
screen).dmxs
and dmys
commands.Top Menu
screen)initDM
command in the Top Menu
. You may need to run the stopDM
command first.nolink
in Top Menu
screen). This command automactically sets up the following symbolic links:M
in Top Menu
screen). The dm performs the symbolic links to the DM channels.In this mode, the AO loop controls a virtual DM. The virtual actuators are correspond to modes controlling the zero point offset of another loop. In this section, I assume that loopA is the main loop (directly controls a physical DM) and that loopB is the virtual loop (this is the loop we are setting up).
DMmodeZ
in Top Menu
screen)S
command in Top Menu
screen). This is the DM index for loopB.dmolink
in Top Menu
screen).Top Menu
screen)initDM
command in the Top Menu
.M
in Top Menu
screen). The dm performs the symbolic links to the DM channels.In this mode, the AO loop controls a virtual DM. The virtual actuators correspond to modes controlling another DM stream. In this section, I assume that loop A is the main loop (directly controls a physical DM) and that loop B is the virtual (higher level) loop.
S
) for loop Bdmxs
in Top menu
)dmys
in Top menu
)initDM
)M
in Top Menu
screen). The dm performs the symbolic links to the DM channels.Commands to the loop B DM should now propagate to modal commands to loop A.
It is possible to add a zero point offset to mode D. Every write to the loop B's modal DM then generate both a write to loop A's DM (described above) and a write to the reference of a wavefront sensor (presumably loop A's wavefront sensor). This optional feature is refered to as a CPU-based WFS zero point offset.
To enable this feature, add between steps 4 and 5:
You can (Re-)Start DM comb to re-initialize arrays and links ('stopDM' and 'initDM' commands in Top Menu
screen). The initDM
command will
wfs
to Loop Configuration
screen). Select the WFS shared memory stream.An aosetup
script may be used to perform all these operations. Inspect the content of directory aosetup
to see such scripts. You may use or modify as needed. If you use a aosetup
script, execute it from the working directory, and then start aolconf: