Changes to the C structs (see https://github.com/lsst-ts/ts_rotator_controller/pull/9):
ddsTelemetryStreamStructure_t is the only C struct used for TCP/IP communications that changed. The changes are as follows:
- Delete status_word_drive1. Note: this was not output in any SAL message and not used in the CSC.
- Delete actual_torque_axisA and actual_torque_axisB. Same note as previous.
- Add double RateCmd and double AccCmd after PositionCmd.
- Add double Flags_noNewTrackCmdError after Flags_trackingLost.
- Add double ChA_RateFb and double ChB_RateFb after Rotator_Position_deg.
The other thing that is wanted is a combined actual velocity computed from ChA_RateFb and ChB_RateFb. It is not completely obvious how to compute this, but based on Te-Wei Tsai's graphs in DM-25994 (especially the last graph) it looks like some filtering to reduce noise would be helpful. The measured velocity is oddly different than the demand velocity at low speeds, with a weird jump. I fear we may be stuck with that since at some level we have to trust the encoders (though I believe the encoders are on the two linear actuators, so there is some math in the low-level controller to convert those readings to rotation). I wonder if that jump might indicate hysteresis in the connection between the linear actuators and the rotator.
One other small change I made was to fix the spelling of SAFETY in an enum in the Rotator and Hexapod XML and the corresponding enums in ts_idl. The old misspelled names also work, for now. I filed DM-26367 to get rid of the misspelled versions later.
Changes to the C structs (see https://github.com/lsst-ts/ts_rotator_controller/pull/9):
ddsTelemetryStreamStructure_t is the only C struct used for TCP/IP communications that changed. The changes are as follows:
The other thing that is wanted is a combined actual velocity computed from ChA_RateFb and ChB_RateFb. It is not completely obvious how to compute this, but based on Te-Wei Tsai's graphs in
DM-25994(especially the last graph) it looks like some filtering to reduce noise would be helpful. The measured velocity is oddly different than the demand velocity at low speeds, with a weird jump. I fear we may be stuck with that since at some level we have to trust the encoders (though I believe the encoders are on the two linear actuators, so there is some math in the low-level controller to convert those readings to rotation). I wonder if that jump might indicate hysteresis in the connection between the linear actuators and the rotator.One other small change I made was to fix the spelling of SAFETY in an enum in the Rotator and Hexapod XML and the corresponding enums in ts_idl. The old misspelled names also work, for now. I filed
DM-26367to get rid of the misspelled versions later.