Refactor guider, adjust UI, convert to 0-1.0 control parameter, use...
Refactor guider, adjust UI, convert to 0-1.0 control parameter, use calibration, add calibration test.
This is a significant refactor of the internal guider. Of course, there's more to do, but...
- Moved the older star detection algorithms out of gmath.cpp and into the new files guidealgorithms.h,cpp (the newer ones were already elsewhere in guidestars.cpp and starcorrespondence.cpp and using stellarsolver).
- Moved most of the calibration code out of internalguider.cpp and into the new calibrationprocess.h,cpp.
- Added a new calibration unit test in Tests/internalguide/testcalibrationprocess.cpp
- Minor additional adjustments to the guider UI following up on the previous MR. Notable is exposing the parameter for maximum-number-of-pixels that the calibration could move in each axis.
- The standard control algorithm now uses calibration information when computing pulses. The control gain parameter for RA and (a separate one for DEC) now go from 0 to 1.0. It multiplies the error and the calibrated arcsec_per_ms_pulse. (Similar adjustments were made to the optional integral_gain.)
proportionalResponse = arcsecDrift * proportionalGain * arcsecPerMsPulse
- I changed the name of the control gain parameter (also called Proportional Gain) to the industry standard name of "Aggressiveness".
- I made the GPG control gain, and GPG min move parameters use the main guider versions of these parameters, and removed the UI for those in the GPG section.
- Changed the guider's min-pulse and max-pulse (both in milliseconds) parameters to "Min error" and "Max response", both with units of arc-seconds instead of milliseconds of pulse. Hopefully more intuitive to users.
- Added/edited several tooltips in menus.
- Allow an aggressiveness > 1 (up to 2.0) though in the menu and tooltip it recommends < 1.0. User request.
3 users have tested this without issue. From my perspective it's ready to merge.
Edited by Hy Murveit