UseCaseImplementations - NewtonFund/NewTCS GitHub Wiki

These are attempts to encode the use cases (ListOfUseCases) in the current ACS command set.

1 "Simple non-siderial tracking"

  • Zej is putting a worked example in the ICS doc.

2 "Source centred on a specific pixel (x, y)"
  • Doing exactly this is illustrated in use case 21
  • It is not an automated feature of the ACS though. The iteration, decision making and command sequencing is out of scope of the ACS.

3 "Defocus secondary mirror by 1mm"
  • There are no ACS commands required for defocus observations.
  • Focus is out of scope of the ACS
  • Optionally the hardware level controllers are free to send AxisInfo,AxisFocus=xxx messages which might hypothetically impact on the pointing.
 ACS:TrackInit
   TrackRA=6.7524778
   TrackDec=-16.7161111
   TrackEquinox=J2000
   TrackEpoch=2000-01-01T11:58:55.816
   TrackRotFrame=celestial
   TrackRotAngle=0
   TrackFreq=20
   TrackDest=<IP of the NARIT command broker>

ACS starts sending AxisDemand messages 20 times per second.

ACS is expecting to be receiving AxisInfo messages and may enter a fail state if it does not.

Something else (not the ACS) needs to tell the secondary to move

Wait until mirror gets in position

Now I am free to start the exposures


4 "Coordinate multiple telescopes"
  • Out of scope.
  • This interface is designed to be appropriate to a single supervisory system that is driving multiple telescopes simultaneously so it certainly supports the concept but that coordination is entirely outside the ACS scope.

5 "Non-linear, non-siderial tracking"
  • Yes possible. Zej is looking at a worked example to put in the ICD.

6 "Automated mosaic tiling"
  • Out of scope.
  • UI or scheduler function. Not an ACS function.

7 "Named objects"
  • Out of scope.
  • UI function. Not an ACS function.
  • Technically is actually possible to read a catalogue from disk through use of the TrackRead command.

8 "Arbitrary coordinate systems"
  • Out of scope.
  • ACS does support arbitrary equinoxes, (e.g., J2010 as opposed the usual J2000) but only that one limited case of either B or J with an arbitrary equinox year.

9 "Measuring parallax"
  • Out of scope.
  • Scheduler function. Not an ACS function.

10. "Offset the telescope 10 arcsec in X coordinate of my instrument"
 ACS:TrackInit
   TrackRA=6.7524778
   TrackDec=-16.7161111
   TrackEquinox=J2000
   TrackRotFrame=celestial
   TrackRotAngle=0
   TrackFreq=0.2
   TrackDest=<IP of the NARIT command broker>
   TrackUseAG=false

ACS starts sending AxisDemand messages once every five seconds. It is ignoring anything that might be coming from the AG.

ACS is expecting to be receiving AxisInfo messages and may enter a fail state if it does not.

 ACS:InstInfo
   InstName=ULTRASPEC
   InstRotAngle=45.0
   InstRotates=true
 ACS:TrackOffset
   OffsetType=fixed
   OffsetFrame=instrument 
   OffsetX=10000
   OffsetY=0

Something else (not the ACS) needs to start the AG after we arrive at the target

Something else (not the ACS) waits until AG has locked itself

 ACS:AGDatum

Now I am free to start the exposures

  • The offset would not have been applied if TrackInit,TrackUseOff=false. Safer would have been to set it true in the original TrackInit
  • If we have not set the InstInfo explicitly then ACS would have performed the offset according to what instrument was last used.

11 "Offset the telescope 10 arcsec in RA coordinate"
  • Identical to case 10 except OffsetFrame=celestial and no need for InstInfo

12 "Offset the telescope 10 arcsec in azimuth"
  • Identical to case 10 except OffsetFrame=mount and no need for InstInfo

13 "How long until I hit an axis limit?"
  • Not in latest ACS spec. document, but it is coming
  • There will be a list of calculable parameters which a user can poll for, including this.

14 "Should I unwrap a limit when a slew is requested?"
  • Out of scope.
  • Driving to a MOUNT angle is a TCS function, not an ACS function.
  • The following command will automatically favour a wrap position that allows the telescope track 6000sec.
 ACS:TrackInit
   TrackRA=6.7524778
   TrackDec=-16.7161111
   TrackEquinox=J2000
   TrackEpoch=2000-01-01T11:58:55.816
   TrackRotFrame=celestial
   TrackRotAngle=0
   TrackFreq=20
   TrackDest=<IP of the NARIT command broker>
   TrackDuration=6000
  • ACS always goes to the solution closest to wherever it currently is unless that violates TrackDuration when it will go to the closest that fulfils TrackDuration.
  • There is no explicit "force maximum wrap" command, but that can be done from the UI if you really want by first driving the mechanism to its limit and then sending TrackInit.

15 "I have two auto guiders. Can I improve my auto guiding (e.g. by correcting rotator errors?)"
  • No.
  • Any guide error is explicitly assumed to be caused by an AZM,ZD error

16 "Tip-tilt secondary mirror"
  • Not available

17. To acquire an IR only target, I want to use the autoguider to acquire on a nearby visible target and then do an offset to put the IR target at a position on the instrument (not autoguider) focal plane.
  • Zej producing a worked example of this one for the ICD.

18. How do I get out of an axis limit?
  • telescope stopped inside hardware limits and servos can accept demands
    • Send any track of slew command. Motion is not inhibited by being outside software limits. The ACS will not send demands outside limits, but if it is outside limits it can still send a demand that is back inside limits.
  • telescope outside limits so motion inhibited by hardware or controllers
    • Cannot be recovered by ACS.

19. "Acquire pointing model data"
  • Example using TrackWrite is shown in ICD

20. "Recalibrate after earthquake"
  • Outside scope. Any earthquake strong enough to change anything necessitates a re-commissioning process.

21. "Acquire faint target offset by 15,5arcsec from a bright star"
 ACS:TrackCorr
   OffsetType=fixed
   OffsetFrame=celestial 
   OffsetX=0
   OffsetY=0
 ACS:TrackOffset
   OffsetType=fixed
   OffsetFrame= celestial 
   OffsetX=0
   OffsetY=0
 ACS:TrackInit
   TrackRA=6.7524778
   TrackDec=-16.7161111
   TrackEquinox=J2000
   TrackRotFrame=celestial
   TrackRotAngle=0
   TrackFreq=1
   TrackDest=<IP of the NARIT command broker>
   TrackUseCorr=true
   TrackUseOffset=true
   TrackUseAG=false

ACS starts sending AxisDemand messages once per seconds.

ACS is expecting to be receiving AxisInfo messages and may enter a fail state if it does not.

Something else (not the ACS) sets telescope focus

Something else (not the ACS) sets instrument fold mirror

Something else (not the ACS) configures instrument and starts acquisition integration

Something else (not the ACS) inspects the resulting image, finds the reference star, calculates an offset to move the reference star to the reference point of the focal plane. Presumably that is a slit entrance or something, but generally can be any point in the focal plane.

 ACS:TrackCorr
   OffsetType=cumulative
   OffsetFrame=instrument 
   OffsetX=30
   OffsetY=55

Something else (not the ACS) configures instrument and starts acquisition integration. Inspect the resulting image. Either accept the pointing as now correct or iterate TrackCorr,OffsetType=cumulative,OffsetFrame=instrument,OffsetX=,OffsetY= commands until it is.

 ACS:TrackOffset
   OffsetType=fixed
   OffsetFrame=celestial 
   OffsetX=15000
   OffsetY=5000

Something else (not the ACS) configures instrument and starts science integration.

Wait for science exposure to complete

 ACS:TrackCorr
   OffsetType=fixed
   OffsetFrame=instrument 
   OffsetX=0
   OffsetY=0
 ACS:TrackOffset
   OffsetType=fixed
   OffsetFrame=instrument 
   OffsetX=0
   OffsetY=0
  • If those final TrackCorr, TrackOffset were omitted then the 'correction' would still be in force for the next slew. Depending on local conditions this may or may not be what the observer wanted. I don't think either retaining or clearing the correction is always the right answer. What we will do simply needs defining.

22. "Offset 120 arcsec by Y in instrument plane to mosaic frames while maintaining auto guiding"
 ACS:TrackInit
   TrackRA=6.7524778
   TrackDec=-16.7161111
   TrackEquinox=J2000
   TrackRotFrame=celestial
   TrackRotAngle=0
   TrackFreq=1
   TrackDest=<IP of the NARIT command broker>
   TrackUseAG=false

ACS starts sending AxisDemand messages once per seconds.

ACS is expecting to be receiving AxisInfo messages and may enter a fail state if it does not.

Something else (not the ACS) needs to start the AG after we arrive at the target

Something else (not the ACS) waits until AG has locked itself

 ACS:AGDatum

ACS is now tracking and applying guide packets

Something else (not the ACS) sets telescope focus

Something else (not the ACS) sets instrument fold mirror

Something else (not the ACS) configures instrument and starts first integration

 ACS:TrackOffset
   OffsetType=fixed
   OffsetFrame=instrument 
   OffsetX=0
   OffsetY=120000

Something else (not the ACS) configures instrument and starts the second integration

 ACS:TrackControl
   ControlAG=false
  • As well as moving the axes, the 120arcsec offset is applied internally in the ACS to the AG datum so the ACS will not try to drag the telescope back to the original position. However note that the AG itself must be able to cope with the 120sec offset. That is fine for a wide-field full-frame AG but will fail for an AG dependent on a small guide window. There is no communication from the ACS to the AG to tell it that the telescope has been offset however the UI could tell the AG that at the same time as it sent the TrackOffset to the ACS.
⚠️ **GitHub.com Fallback** ⚠️