Fix Version/s: None
Sprint:TSSW Sprint - Nov 07 - Nov 21
Team:Telescope and Site
The low-level MT rotator controller reports the TRACK enabled substate command as finished before the rotator is actually in the right state to receive TRACK_VEL_CMD commands.
Also please consider increasing the time limit between then the rotator goes to "tracking" enabled substate, and when the first tracking command arrives.
Once a tracking command arrives, it is important to keep sending them. But until the first tracking command arrives, the system is not moving, and so I would argue is not doing anything risky. We can afford to allow the client to wait a few seconds.
I mention this because I tried to work around this bug by adding a 0.5 second delay after sending TRACK enabled substate command, and before sending the first TRACK_VEL_CMD. That caused the system to fault. I ended up using a 0.1 second delay, but it feels to me like the window of allowed sleep times for working around this bug is too small.
I suggest an initial delay (before the first tracking command arrives) of 5 second, preferably configurable. This delay is not important for safety because the rotator is not moving.
Tracking commands may come as slowly as 10 Hz, so I suggest the maximum delay between tracking tracking commands be 0.5 seconds – though again, being configurable is useful. I hope the rotator extrapolates the last tracking command if the next one does not arrive in time (until the timer expires and the rotator faults and halts).
For the "rotator extrapolation" part, this will need to modify the MATLAB trajectory libraries by Tekniker.
Please help to review the PRs:
Your comment about the trajectory libraries surprises me a bit, because the TMA azimuth, elevation, and camera cable wrap are all willing to extrapolate the last position. But that's a different ticket and perhaps not needed.
Russell Owen, the delay time was requested to be hard-coded to be 0.25 second (5 lost tracking commands) at
DM-25245. What is the time do you want now? Another option is to put it into the configuration file. Which way do you prefer?