continued with omny documentation
This commit is contained in:
@@ -1,8 +1,9 @@
|
||||
(user.ptychography.flomni)=
|
||||
# flOMNI
|
||||
|
||||
flOMNI is an instrument for tomographic measurements via X-ray ptychography.
|
||||
flOMNI is an instrument for tomographic measurements via X-ray ptychography. The sample environment is at atmospheric pressure and room temperature (or higher).
|
||||
An early version of the setup is described [here](https://www.dora.lib4ri.ch/psi/islandora/object/psi:12560). Nano positioning is based on closed loop control to a position signal obtained from dedicated [laser interferometry](https://www.dora.lib4ri.ch/psi/islandora/object/psi:7524). For fast scanning a combined motion of the sample (slow axis) and beam defining fresnel zone plate (fast axis) is used. The method is described [here](https://www.dora.lib4ri.ch/psi/islandora/object/psi:21021). The setup is equipped with a [heater](https://www.dora.lib4ri.ch/psi/islandora/object/psi:45302), that can be used to apply hot gas streams to the sample.
|
||||
Samples are to be mounted on [OMNY pins](https://www.dora.lib4ri.ch/psi/islandora/object/psi:4528).
|
||||
|
||||
## How to flOMNI
|
||||
|
||||
@@ -54,24 +55,25 @@ If you see your sample already at the approximately correct height, you can skip
|
||||
1. `flomni.rt_feedback_disable()` disable the closed loop operation to allow movement of coarse stages
|
||||
1. `umvr(dev.fsamy, 0.01)`, attention: unit <mm>, move the sample stage relative up (positive) or down (negative) until the sample is approximately vertically centered in xray eye screen
|
||||
1. `flomni.xrayeye_update_frame()` will update the current image on the xray eye screen
|
||||
1. `flomni.xrayeye_alignment_start()` start the coarse alignment of the sample by measuring the sample position at 0, 45, 90, 135, 180 degrees. Then use the matlab routine `SPEC_ptycho_align.m` to fit this data.
|
||||
1. `flomni.xrayeye_alignment_start()` start the coarse alignment of the sample by measuring (clicking in the X-ray eye software) the sample position at 0, 45, 90, 135, 180 degrees. Then use the matlab routine `SPEC_ptycho_align.m` to fit this data.
|
||||
1. `flomni.read_alignment_offset()` read the generated alignment data.
|
||||
|
||||
#### Fine alignment
|
||||
|
||||
After the xrayeyealign a fine alignment needs to be performed using ptychography.
|
||||
After the xrayeyealign, a fine alignment needs to be performed using ptychography.
|
||||
_To bypass the fine alignment: `feye_out`_
|
||||
|
||||
|
||||
1. `flomni.tomo_parameters()` Adjust the ptychographic scan parameters for performing an alignment scan. Typically FOVX = FOVX(Xrayeye)+30 mu, shell step = beamsize/2.5, number of projections and tomo mode are ignored in the alignment scans.
|
||||
1. `flomni.tomo_parameters()` Adjust the ptychographic scan parameters for performing an alignment scan. Typically FOVX = FOVX(Xrayeye)+20 mu, shell step = beamsize/2.5, number of projections and tomo mode are ignored in the alignment scans.
|
||||
1. `flomni.tomo_alignment_scan()` perform the alignment scan. When the first scan is running, switch to a matlab session and run `SPEC_ptycho_align` again. Click left and right. The third click can define the height of the scan, but is not needed and ignored by default. The widest horizontal field of view will be printed at the end of the matlab session.
|
||||
1. `flomni.read_alignment_offset()` Load alignment parameters calculated in matlab.
|
||||
|
||||
### Tomographic Measurement
|
||||
|
||||
Now that the sample is aligned, the tomographic measurement can be performed.
|
||||
1. `flomni.tomo_parameters()` Adjust the scan parameters for the tomographic scan. This includes the parameters for ptychographic scans of projections plus the strategy for angular sampling. The vertical shift adjusts the field of view from the vertical click up (positive) or down (negative). After adjusting the numbers, type again `flomni.tomo_parameters()` and verify that they are correct.
|
||||
1. `flomni.tomo_scan_projection(angle)` perform a ptychographic scan at the rotation angle <angle>. Launch the tomographic measurement by `flomni.tomo_scan()`. Before changing sample, verify that all subtomograms were completely acquired using the `tomo_recons matlab` script.
|
||||
1. `flomni.tomo_parameters()` adjust the scan parameters for the tomographic scan. This includes the parameters for ptychographic scans of projections plus the strategy for angular sampling. The vertical shift adjusts the field of view, up (positive) or down (negative). After adjusting the numbers, type again `flomni.tomo_parameters()` and verify that they are correct.
|
||||
1. `flomni.tomo_scan_projection(angle)` perform a ptychographic scan at the rotation angle <angle>. Launch the tomographic measurement by `flomni.tomo_scan()`.
|
||||
1. Before changing sample, verify that all subtomograms were completely acquired using the `tomo_recons matlab` script.
|
||||
|
||||
#### If something went wrong…
|
||||
|
||||
@@ -88,12 +90,10 @@ Depending on the tomo mode following parameters can be given to the `flomni.tomo
|
||||
| Golden ratio tomography (sorted in bunches) | projection_number=None |
|
||||
| Equally spaced with golden starting angle | projection_number=None |
|
||||
|
||||
## How to setup flOMNI
|
||||
## How to setup flOMNI (software)
|
||||
|
||||
This part of the manual is intended for beamline staff and expert users
|
||||
|
||||
### how to start the realtime feedback loop and bec with flOMNI
|
||||
|
||||
The nano-positioning is controlled by a feedback loop running on a real-time linux based computer. With all related hardware connected, this loop has to be started manually.
|
||||
|
||||
1. Login to the computer by `ssh control@mpc2680`. The password is "engine".
|
||||
|
||||
@@ -1,8 +1,84 @@
|
||||
(user.ptychography.omny)=
|
||||
# OMNY
|
||||
|
||||
OMNY is a microscope setup for 3D mesurements via ptychographic X-ray computed tomography. The sample enviroment is in ultra-high vacuum and at a sample temperature of 90 K. The instrument is equipped with a load-lock system and allows loading and unloading of samples under cryogenic conditions. The setup is described in detail [here](https://www.dora.lib4ri.ch/psi/islandora/object/psi:4776). Samples have to be mounted on [OMNY pins](https://www.dora.lib4ri.ch/psi/islandora/object/psi:4528).
|
||||
|
||||
## HowTo OMNY
|
||||
|
||||
This manual is intended for beamline staff and expert users
|
||||
… a step-by-step guide for _beamline staff and expert users_.
|
||||
|
||||
### Change to a new sample
|
||||
|
||||
1. `omny.otransfer_get_sample(0)` remove current sample from sample stage. Watch gripper action and be ready to ctrl+c in case something is wrong.
|
||||
_If in doubt check that the correct sample shutte is in the active position by calling `omny.otransfer_storage()`. The slot can be selected by `omny.otransfer_park_slot(slot)`._
|
||||
1. `omny.otransfer_put_sample(position)` put the sample to the selected shuttle
|
||||
1. `omny.otransfer_get_sample(position) ` get the new sample from a shuttle
|
||||
1. `omny.otransfer_put_sample(0)`, mount the sample in the sample stage
|
||||
|
||||
### Alignment of samples
|
||||
|
||||
#### Coarse alignment
|
||||
|
||||
After mounting a new sample, the Xray eye will automatically be at the correct position to collect X-ray data. It can also be manually moved to the correct position by `omny.oeye_xray_in()`.
|
||||
|
||||
1. `omny.xrayeye_update_frame()` obtain a new frame that will be displayed on the Windows computer, OMNY software. If you see your sample already at the approximately correct height, you can skip step 2. Otherwise adjust the height:
|
||||
1. `umvr(dev.osamy, 0.01)`, attention: unit <mm>, move the sample stage relative up (positive) or down (negative) until the sample is approximately vertically centered in xray eye screen. After a move get a new frame by `omny.xrayeye_update_frame()`.
|
||||
1. `omny.xrayeye_alignment_start()` start the coarse alignment of the sample by measuring (clicking in the X-ray eye software) the sample position at 0, 45, 90, 135, 180 degrees. Then use the matlab routine `SPEC_ptycho_align.m` to fit this data.
|
||||
1. `omny.read_alignment_offset()` read the generated alignment data.
|
||||
|
||||
#### Fine alignment
|
||||
|
||||
After the xrayeyealign, a fine alignment needs to be performed using ptychography.
|
||||
_To bypass the fine alignment skip steps_.
|
||||
|
||||
1. `omny.tomo_parameters()` adjust the ptychographic scan parameters for performing an alignment scan. Typically FOVX = FOVX(Xrayeye)+20 mu, shell step = beamsize/2.5, number of projections and tomo mode are ignored in the alignment scans.
|
||||
1. `omny.optics_in()` move the Fresnel zone plate and order sorting aperture into position for ptychographic measurements.
|
||||
1. `omny.oeye_out` move the X-ray eye out of the beam path.
|
||||
1. `omny.tomo_alignment_scan()` perform the alignment scan. When the first scan is running, switch to a matlab session and run `SPEC_ptycho_align` again. Click left and right. The third click can define the height of the scan, but is not needed and ignored by default. The widest horizontal field of view will be printed at the end of the matlab session.
|
||||
1. `omny.read_alignment_offset()` Load alignment parameters calculated in matlab.
|
||||
|
||||
### Tomographic Measurement
|
||||
|
||||
Now that the sample is aligned, the tomographic measurement can be performed.
|
||||
1. `omny.tomo_parameters()` adjust the scan parameters for the tomographic scan. This includes the parameters for ptychographic scans of projections plus the strategy for angular sampling. The vertical shift adjusts the field of view, up (positive) or down (negative). After adjusting the numbers, type again `omny.tomo_parameters()` and verify that they are correct.
|
||||
1. `omny.tomo_scan_projection(angle)` perform a ptychographic scan at the rotation angle <angle>, e.g. at zero degrees. When happy with the scan parameters launch the tomographic measurement by `omny.tomo_scan()`.
|
||||
1. Before changing to the next sample sample, verify that all subtomograms were completely acquired using the `tomo_recons matlab` script.
|
||||
|
||||
#### If something went wrong…
|
||||
Special cases:
|
||||
If something got stuck and no errors
|
||||
umv otransy 0
|
||||
_otransfer_gripper_to_park_z
|
||||
If the gripper fails (vertical movement)
|
||||
ctrl+C if it is stuck
|
||||
try moving up and down a bit (umvr otransy .5), potentially requires a ctrl+C again if stuck
|
||||
umv otransy -1.5
|
||||
_otransfer_gripper_to_park_z
|
||||
if this happened after a sample was mounted the storage might not be updated
|
||||
to do this manually
|
||||
GRIPPER
|
||||
otransfer_modify_samples 0 110 0/1
|
||||
SAMPLE STAGE 0 0 0/1
|
||||
otransfer_modify_samples
|
||||
For closing the shield at the parking station
|
||||
_otransfer_shield_close(1)
|
||||
|
||||
|
||||
|
||||
Oeye out in xray in
|
||||
|
||||
### Sample storage and transfer
|
||||
|
||||
#### Managing sample storage
|
||||
|
||||
#### Sample transfer
|
||||
|
||||
|
||||
## How to setup OMNY (software)
|
||||
|
||||
This part of the manual describes the software structure in more detail.
|
||||
|
||||
### how to start the realtime feedback loop and bec with flOMNI
|
||||
|
||||
Start the bec server and client as documented elsewhere
|
||||
|
||||
@@ -299,55 +375,3 @@ If the start angle is not specified, it will be computed depending on the subtom
|
||||
|
||||
|
||||
|
||||
Typical work-flow for a measurement with OMNY
|
||||
|
||||
Remove current sample from sample stage
|
||||
Watch gripper action and be ready to ctrl+c in case something goes wrong
|
||||
omny.otransfer_get_sample(0)
|
||||
check that otransfer_park_slot is set (active parking pos in the correct parking station)
|
||||
omny.otransfer_storage()
|
||||
(if not) omny.otransfer_park_slot(slot)
|
||||
Put the sample to a shuttle
|
||||
omny.otransfer_put_sample(position)
|
||||
Get the new sample from a shuttle
|
||||
omny.otransfer_get_sample(position)
|
||||
Mount the sample in the sample stage
|
||||
omny.otransfer_put_sample(0)
|
||||
To see a frame on the X-ray eye
|
||||
xrayeyeupdateframe
|
||||
umvr osamy xxx and xrayeyeupdateframe
|
||||
xrayeyealign
|
||||
matlab run SPEC_ptycho_align
|
||||
tomo_parameters
|
||||
ooptics_in
|
||||
oeye_out
|
||||
tomo_scan 0 0
|
||||
matlab run SPEC_ptycho_align
|
||||
tomo_scan 0 1
|
||||
tomo_parameters
|
||||
tomo_scan_projection
|
||||
tomo_parameters
|
||||
tomo_parameters_checked
|
||||
tomo_scan
|
||||
Special cases:
|
||||
If something got stuck and no errors
|
||||
umv otransy 0
|
||||
_otransfer_gripper_to_park_z
|
||||
If the gripper fails (vertical movement)
|
||||
ctrl+C if it is stuck
|
||||
try moving up and down a bit (umvr otransy .5), potentially requires a ctrl+C again if stuck
|
||||
umv otransy -1.5
|
||||
_otransfer_gripper_to_park_z
|
||||
if this happened after a sample was mounted the storage might not be updated
|
||||
to do this manually
|
||||
GRIPPER
|
||||
otransfer_modify_samples 0 110 0/1
|
||||
SAMPLE STAGE 0 0 0/1
|
||||
otransfer_modify_samples
|
||||
For closing the shield at the parking station
|
||||
_otransfer_shield_close(1)
|
||||
|
||||
|
||||
|
||||
Oeye out in xray in
|
||||
|
||||
|
||||
Reference in New Issue
Block a user