SEP Multi-Star Internal Guider
This is an alternative approach for the internal guider. It can be selected in the internal guider options, as an alternative to: Smart, SEP, Fast, ... SEP Multi-Star
There are no changes to the guide control algorithm--I may get to that someday. SEP Multi-Star uses the existing internal guider control algorithm.
The changes soley concern
- Guide-star selection,
- Guide-star detection,
- Drift estimation (i.e. how much the guide-stars have moved from sample to sample), and
- Calibration. When the system is first enabled, it needs to find a guide star (for calibration). SEP star detection is called, and up to 100 candidate stars are found and they are sorted by flux and HFR. A combination of the two is used to select a guide star (there is also a not-too-close-to-the-edge constraint). This is in my experience more robust than the current scheme which uses peak pixel values. I may move to SNR, but that's similar to what I'm currently using.
When a guide star is selected, the positions of the (~10) other "best stars" (relative to the guide star (call guide-star neighbors) are remembered. For example, the system might note that there's another star at (+200,-50) and another at (+721,-403) ... all relative to the guide star. It uses this geometry to later find the guide star. That is, when searching for the guide star, it looks for the star that has other stars in the proper relative positions, as previously recorded. This should be much more robust when there are "multiple stars in the reticle" which can often happen.
Drift during guiding (used as input to the guide control algorithm) is computed by looking at the movement of the guide star, as well as the movements of the neighbor stars. Hopefully this kind of multi-star guiding can reduce the amount of seeing noise in the guiding algorithm, as the seeing noise may cancel out to some degree.
For the most part, if SEP Multi-Star is not selected, there are no changes to the existing system. However, I made some minor changes to calibration that apply to all internal guider schemes. I thought it made sense to leave it in for all schemes, but I can modify to just be in place for this new scheme.
- There are now a few backlash removal steps between RA and DEC calibration,
- The dither rate calibration (which is unused in the internal guider, but used by the guide logging) is now only calulated on the outward RA and DEC runs, similar to what PHD2 does. This avoids some backlash from the turnaround.
There are also some formatting changes caused by the Artistic Style beautifier, which I now use, as recommended by Jasem.
I have tested this extensively with my mount & telescope & cameras. Have used it for a month or more as frequently as I can. It seems to me to be an improvement, but I now need testers with different setups (e.g. longer OTAs, different types of guide OTAs, I use an OAG on a refractor) and so on. Thus I'd like to add this to KStars as an experimental feature and solicit feedback from adventurous users on the forum.
As this is a large review, in terms of number of files touched, I will try to make it easier to understand what has happened--it's not as bad as it looks ;)
The following are added/modified for two new classes, and is the bulk of the review. If you do a review, please focus your energy here.
- guide/internalguide/starcorrespondence.h,cpp
- guide/internalguide/guidestars.h,cpp
- kstars/CMakeLists.txt
The following are added/modified for tests for the new files/classes: It is a lot of lines, but it's a basic unit test for the above. Thanks to Eric for helping me get this setup.
- Tests/internalguide/teststarcorrespondence.cpp
- Tests/internalguide/teststarcorrespondence.cpp
- Tests/internalguide/CMakeLists.txt
- Tests/CMakeLists.txt
Small changes to UI elements/options:
- kstars/ekos/guide/opsguide.ui
- kstars/kstars.kcfg
Minor changes. Calls to the GuideStars class, some of the calibration change (see below), and formatting.
- kstars/ekos/guide/internalguide/gmath.cpp
- kstars/ekos/guide/internalguide/gmath.h
New backlash removal steps in calibration, plus calls to guidestars.
- kstars/ekos/guide/internalguide/internalguider.cpp
- kstars/ekos/guide/internalguide/internalguider.h
1-line change re exposure for selecting the guide star, and some formatting changes.
- kstars/ekos/guide/guide.cpp
Modifications to the SEP interface to allow control of some parameters and export of new information re sky background.
- kstars/fitsviewer/fitssepdetector.cpp
- kstars/fitsviewer/fitssepdetector.h
- kstars/fitsviewer/fitsstardetector.h
Note, for future integration with Rob's work, that the changes to SEP are small, local to the fits files and one method in guidestars.cpp, and should not affect any other KStars code. I will work with Rob to make sure his changes can integrate smoothly with this.