It is a closed loop system. Images are acquired from the camera at fast frame rates of about 655 FPS. Image shift (in pixel units) is calculated of every frame with respect to a reference frame. A feedback or correction is given to an actuator which brings back the image at the reference position.
- FirstLightImaging C-Blue One Camera
- Piezojena Actuator
- NI USB 6351 DAQ Board
- The camera works in a callback mode.
- Once we recieve a frame, either we periodically change the reference frame.
- or we use the frame to calculate the image shift.
- Before we do 2 or 3, we preprocess the frame.
- The image we recieve from camera is of the size 768 x 768, we bin it to 256 x 256.
- Bias correction happens in camera itself, we only do flat correction.
- The camera has feature to perform flat correction also, but
- our actuator is placed in converging beam. Thus we need separate
- reference frames per actuator position. But if the system is upgraded to
- use the actuator in collimated beam, camera flats can be used.
- We multiply the image with a 2D hamming window, to reduce the intensity at the edges.
- We store the FFT of the reference image in a global variable.
- FFT of the current frame is performed and multiplied with the conjugate
- of the FFT of the reference frame (thus performing convolution).
- The inverse FFT is performed and the a subpixel interpolation is performed
- on the resultant correlated image to retrieve the image shifts.
- The imahe shifts are passed through a PID controller and correction to the
- actuator is calculated. A notification is sent to another thread which wakes up
- and applies voltages to the actuator. To make sure the actuator works in nominal
- voltage ranges, periodically, a the offset voltage from the base voltage of the
- actuator is offloaded to the telescope control system.
- A live view is also added (in a separate thread), which displays every 16th frame (40 FPS).
- FFTW3
- FLI SDK
- NI DAQMX
- CMAKE
- OPENCV
- CLION