For all angles the tilt measurements were measured with the laser autocollimator described in the `DesignFiles/Autocollimator` directory. Instruction to build are in the `DesignFiles` folder.

All data collected were saved in HDF5 format. An HDF5 file works like a python dictionary, containing nested groups of datasets. The data can be viewed using [HDFVIEW](https://www.hdfgroup.org/downloads/hdfview/) or packages such as [H5PY in Python](http://docs.h5py.org/en/stable/index.html).

All data described below are analysed in a Jupyter notebook in the `Analysis`.

# Angle calibration

The laser autocollimator returns the position of the laser spot on the camera sensor in pixels, this was converted to tilt by measuring a ThorLabs [KMS/M Compact Kinematic Mirror Mount](https://www.thorlabs.com/newgrouppage9.cfm?objectgroup_id=52) as the knobs were rotated (15mrad per rotation).

During the calibration process the position of the reflected laser beam was constantly monitored by the camera sensor using the `tilt.py` code script inside folder `Experiment`. This data was saved inside HDF5 files inside folder `Raw_data`. These data files have names starting with the data and time the file was created and ending in `tilt.hdf5`. 


Each HDF5 file contains a subgroup called `data000`. This subgroup containing sequentially numbered datasets of 100 readings. The three columns for this data set are time in seconds, spot *x*-position in pixels, and spot *y*-position in pixels.

As the mirror was manually rotated readings were recorded by hand from the terminal output. The output gives mean x and y data, and the standard deviation of x and y data that correspond to these 100 reading groups. The HDF5 files can be used to verify suspected transcription errors. The transcribe results are in `tilt_labbook.txt`.

All adjustments were one sixth of a turn, achieved by rotating an Allen key into a mechanical stop. Separate calibration runs tilt around the x-axis and z-axis (as defined in the paper).


# Angular deflection of the stage under applied torque

To measure the tilt of the moving platform as torque is applied about the x axis, a device with a lever arm and a built in mirror was bolted to the moving platform.

The lever arm has trays at 0 mm, +/-25 mm and +/- 50 mm from the centre of the stage. Torque was applied to the stage by placing 10 g, 20 g and 50 g masses in these trays.

The data was collected by hand using the same method as described for the angular calibration. Again HDF5 files can be used to verify suspected transcription errors.



# Parasitic tilt

We measured how much the stage tilts as it is moved in x,y, and z. This was done by performing a raster scan in x and y for different values of z.

Motion of the stage was monitored by counting the number of steps moved by the stage.
Parasitic tilt of the stage was monitored by tracking the angle of a mirror mounted to the moving stage using the laser autocollimator described above.

The experiment code script used to perform the experiment is `tilt_raster.py` file inside folder `Experiment`. 

The data collected is saved in `tilt_raster3D.hdf5` file inside folder `Raw_data`. 

All data for this experiment is in the group `raster000` subgroup `standard_raster000`.

Data for each position in the raster is in a new (sequentially numbered) subsubgroup. This contains two datasets:

* `Stage position` containing the x,y,z coordinates of the stage in steps
* `cam_position` containing the 3 values. The firs is the time in seconds, the second two are x and y pixel readout of the autocollimator (which should be calibrated as described above)



