GCS Software


The GCS subsystem is the control software for the LBT off-axis autoguiding and wavefront sensing hardware (AGW). The GCS supports two different types of AGW hardware units. One type of AGW is produced at the Astrophysikalisches Institut Potsdam (AIP), which is used in the LUCI instruments and PEPSI. The other type is built by the astronomy department of Ohio State University and is used by the MODS instruments. Both AGW units comprise a guide camera as well as a camera with a Shack-Hartman sensor. Accordingly, GCS consists of two major modules, i.e. the off-axis autoguider and the wavefront sensing system. The autoguiding task of the GCS consists of controlling the AGW and providing the TCS with the information on the position of the guide star.

This task requires:

  1. to position the guide probe in the field assigned for autoguiding
  2. to select a suitable star for autoguiding
  3. to collect images of the guide star
  4. to measure the position of the guide star (aka. centroiding) with respect to a reference position in these images
  5. to provide the centroiding information (including an error estimate, FWHMs, stellar flux, and background flux) to the TCS.

The other main task is to provide the TCS with information on the measured wavefront of the guide star. It is implied that autoguiding and wavefront sensing are performed with the same star and that wavefront sensor and guide camera use the same positioning unit in the focal area of the telescope. This task requires:

  1. to position the guide probe in the field assigned for autoguiding
  2. to select a suitable star for wavefront sensing (and autoguiding)
  3. to collect images of the wavefront sensing star
  4. to measure the position of the star in the sub-images produced by the Shack-Hartmann lense array
  5. to calculate wavefront distortion information (i.e., Zernike polynomial coefficients)
  6. to provide this wavefront information to the TCS

As an integral part of the TCS, the GCS meets all general architectural requirements of a TCS subsystem. It uses the internal information interchange infrastructure and adheres to the design standards established for the TCS. But the GCS communicates not only with other TCS subsystems (like PCS). It also directs the guide probe hardware of the AGW unit, and drives the process of image exposure and acquisition for the guiding and wavefront sensing camera systems.

From JMH:
The GCS uses the external program sextractor (a.k.a. Source Extractor) to measure the positions of the guide stars. It does some tricky gaussian matching algorithm. I've tested it against IRAF and simple center-of-gravity algorithms, and it gets the correct answer. The x,y positions are recorded in the tcslog (grep for "GS centroiding analysis").

The accuracy with which you can measure the position of a star image depends on many factors: brightness (brighter is better until you saturate) read noise (lower noise is better) pixel sampling (smaller is better until more read noise kicks in) FWHM (smaller images are better)

When the seeing gets worse you lose twice because there is more natural image motion, and because the FWHM is larger and the centroid is less accurate. For typical guide stars in typical seeing, the centroiding accuracy is something smaller than 1/20 arcsec.

Notes about AGw filter behavior through GCS

How to Build / Install

GCS is part of the TCS infrastructure. It's on GitHub at https://github.com/LBTO/tcs/blob/master/gcs.

GCS requires an OA control and a MODS motion control library for the APIs it uses to control the guide probe hardware.

How to Use

Running GCS Command Line Tools

Operating the AzCams

Operating the AGw Stages

Testing GCS

  1. export TCSPATH=/data/tcs
    export PATH="$TCSPATH/tcs/bin:${PATH}"
  2. Have to run MCSPU to test with PCS/GCS
  3. Build it first:
    1. export from repository mcspu/trunk For 64-bit, copy from =tcs@tcs-test:/home/tcs/mcspu=
    2. cd mcspu/mcsDisplay; ./YouNeedSymbolicLinks
    3. run the script from your TCS directory to set up mcspu to use your TCS run-from-here.sh
    4. cd ..; gmake simulator
  4. Run it, when the TCS servers are up (needs the rpcserver )
    1. gotemp will start the underlying software and the GUI
    2. in the GUI, type pos to get the mount display, this will be useful to watch for on/off source
      1. after the TCS servers are up, in the mount display, type azhold and then elhold
      2. in another MCSPU GUI (mcsDisplay), type rot d to get the MODS (direct gregorian) rotator display
      3. in the rotator display, type rready ldg (watch for ready state on the GUI)
      4. in the rotator display, type rhold ldg (watch for the hold state on the GUI)
    3. stop in the GUI stops the GUI only
    4. stopall in the GUI stops the GUI and the MCSPU server
  5. By default, telemetry is enabled for all subsystems, this will cause a lot of data on your test system; to disable change the configuration parameter for each subsystem, or for all subsystems:
    1. to change for all subsystems, modify collectTelemetry to false in the file tcs/etc/tcs.conf
    2. to change a single subsystem, for example PCS, modify the pcs/etc/pcs.conf file, setting PCSTelemetry to false
  6. By default, in Tucson (the testing locale), the configuration is set to not talk to the AzCam and AGWs: noAzCam and noAGW can stay in the true state for most of your testing of GCS.
  7. If you don't want to conflict with other folks running in Tucson, change the PMC configuration for testing:cellIP to the bogus IP It will complain a lot about not connecting, but the subsystem will be available for presets and you're not using it anyway.
  8. TCS logging goes to SYSLOG local6. It has to be configured on your machine where that goes. Otherwise, the logging is in /var/log/messages
  9. Use the TCSGUI to bring up the servers and the system. The subsystems are listed in the correct order for bringing them up. Bring up the servers, then all the subsystems except you don't need DDS/ECS/ENV/AOS.
    If you build the TCS with BUILD="XXX", you can get a build name other than developer
  10. In PSF, set the simulator to Yes and the Secondary Mirror to Rigid
  11. Set up a stars.dat file with a target and guide star. Something like:
    21:59:00 00:00:00 RADEC 2000.0 J2000 0.0 0.0 0.0 U 0.0 B_V .63 
    21:59:00 00:00:05 RADEC 2000.0 J2000 0.0 0.0 0.0 U 0.0 B_V .63
  12. use the infra-red client program to run the presets through:
    irc register 'directGregorian left' MODS irc setstars stars.dat irc presettel 0.0 position guide left 
  13. You might see complaints on the preset about swing arm configuration being wrong, but these are just warnings.
    When looking at the logs, keep in mind that GCS sends absolute coordinates to PCS (whereas LBC sends offsets).

  1. To run non-sidereal, you have to build the NSIGUI from the irtc repository
    1. export from repository svn export https://svn.lbto.org/repos/irtc/trunk/ irtc
    2. cd irtc; gmake , now you have an NSIGUI executable in this directory
  2. Get ephemeris file using the NSIGUI
    1. Select a target that is up now (PCS checks if below horizon, so you cannot just select any target), a couple sites to help with this are: JPL's Small Bodies and Your Sky
    2. If you select something that is big, it may have multiple entries in the returned results and you have to clarify - it may complain: Multiple matches found for ...
      Look at the log by clicking View Log to see which of the objects you want
    3. It will create a file named object_YYYY-Mon-DD.txt as your ephemeris file in the dir pointed to by EPHEM_DIR in the TCS configuration
    4. Modify your stars.dat file used for preset to change the guide star (second entry in the file) to be somewhat close to your ephemeris file for time now
  3. To run a non-sidereal preset
    1. Select the Set in the IIF Non-sidereal Override Control section of the NSIGUI, each time you send a preset
    2. Run the same commands as before ( register, setstars, presettel)

Issue Trak Status

Open GCS Issue Traks

IT Detail Status
7045 GCS died stuck in centroiding, killed the thread which crashed GCS (like IT 4831?)
6991 dynamic WFS exposure time stuck turbo problem
6898 Offset warning causes AO loop not to resume Several issues with this one - IIF should probably block on the resumeGuiding call
6541 GCS hotspot drifted off CCD Four failures during the night, MODS1 and MODS2 - PWRFLR and bad returns from getxy ; see also MODS IT 5395
Need a way to retry after failed moveProbeOnHS ??
6128 Put StartAcquire and StartWFS buttons on the GCSGUI feature request opened by MD
5723 Problems with fake guide star presets IT notes should be updated - shouldn't ref 5621
5609 when handling exceptions the GCS should do more than just report feature request cleanup issue; should also handle azcam errors instead of ignoring (IT 4409)
5573 Sign of the rotation angle for the pupil shift calculation documentation issue - sign is different from DM's IDL for MODS so should understand why and document it
5518 Possible mishandling of offset while AO loop is closed guide star drifts when AO loop is closed; assigned to DM
5452 Software limits not being applied correctly in oacontrol for AGW2 assigned to CB to update the soft limit values; he says it's not been done yet
5186 intensity jumps in pepsi guide images issue with Magellan controllers? assigned to JMH
5041 Could GCS S-H wavefront sensing work on fainter stars? feature request GUI updates to make the various guide and wfs parameters adjustable (integration time, detection thresholds, binning etc.) - there is no other gui IT for these
5018 Star far off of hotspot after rotational offset ME is supposed to take transform data but TS says it should be ok - should it just be closed?
4781 GCS error message messages were changed to not be misleading, but MD thinks GCS shouldn't care and should just send corrections and let PCS complain if it needs to; don't think she changed it though, so it's still open
4686 GCS guiding timed out waiting for image monitor
This is the catch all IT for AzCam errors and error handling - make sure updates address all the closed ITs: 4409, 4374, 5531, 5660, 5747, 6993
4627 Acquiring readGuideCam multiple images takes much longer than expected azcam issue with simultaneous guide and wfs imaging? TG had said there was a partial fix ready, what would that be?
4549 GCS guider images: Reported FWHM problem? and Hot Pixels feature request hot pixel map
4401 Guide star displaced from hotspot crossing meridian  
3488 GCSGUI Improvements - Take 2 feature request from RP; GS mag/flux on GUI
3487 GCSGUI: Improve autoranging on GCSGUI image display feature request
3309 Implementation of Multiple Guide Star Selection feature request nothing implemented in GCS yet except what's been there forever but is unused currently; GCS has to select star and then tell PCS which one
3275 Implement co-addition (WFS) for bright guide stars feature request
3268 Improve exposure time scaling feature request
3267 Implement co-addition for bright guide stars feature request
3264 Dynamic selection of conv file based on FWHM feature request resolution of 3269 says dyn conv selection is not necessary - check with JMH
1484 WCS on GCS acquisition images feature request MD has this working specifically for MODS, code is not in yet for LUCI

Software Notes

  • GCSUpdates - notes on updates to be done, being worked, etc.

-- %USERSIG{TarasGolota - 2015-03-27}%
Topic revision: r6 - 14 Sep 2018, PetrKubanek
This site is powered by FoswikiCopyright © by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding Foswiki? Send feedback