-
Notifications
You must be signed in to change notification settings - Fork 49
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Tracking error fixes #549
Tracking error fixes #549
Conversation
* Fixing direction depending on where pier is pointed. * Reset Dec correction panoptes#349
* Default guide rate (tracking adjustment speed) increased * Move tracking correction logic into mount class * Cleanup code * Add basic test
Codecov Report
@@ Coverage Diff @@
## develop #549 +/- ##
===========================================
+ Coverage 70.31% 70.46% +0.14%
===========================================
Files 64 64
Lines 5484 5498 +14
Branches 762 762
===========================================
+ Hits 3856 3874 +18
- Misses 1417 1421 +4
+ Partials 211 203 -8
Continue to review full report at Codecov.
|
u.arcsec), d_dec.to( | ||
u.arcsec), mag.to( | ||
u.arcsec)) | ||
d_ra.to(u.arcsec), |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I read this as just a formatting change, right?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Correct. It was just annoying me too much as I was trying to understand it.
pocs/observatory.py
Outdated
@@ -342,23 +342,49 @@ def update_tracking(self): | |||
if self.current_offset_info is not None: | |||
self.logger.debug("Updating the tracking") | |||
|
|||
# Get the pier side of pointing image |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Could you add some more comments? I'm certainly ignorant about what is happening here, and the lack of problem description in the PR isn't helping.
@@ -72,8 +72,8 @@ def __init__(self, location, commands=None, *args, **kwargs | |||
self._state = 'Parked' | |||
|
|||
self.sidereal_rate = ((360 * u.degree).to(u.arcsec) / (86164 * u.second)) | |||
self.ra_guide_rate = 0.5 # Sidereal | |||
self.dec_guide_rate = 0.5 # Sidereal | |||
self.ra_guide_rate = 0.9 # Sidereal |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Does guide rate mean the speed with which we make adjustments to the position between images?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is documented somewhere but the fact that I don't know where and that you have a question here makes that irrelevant.
I want to turn these into properties of the class, which would be more consistent with all these other values and would allow for an easier docstring. - #552
Args: | ||
offset_info (`OffsetError`): A named tuple describing the offset | ||
error. See `pocs.images.OffsetError`. | ||
pointing_ha (float): The Hour Angle (HA) of the mount at the |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is the point here that the mount will do a meridian flip to go from 89 degrees to 91 degrees (90 being pointing to the meridian)? And thus the HA will tell us if we started observing with the cameras on the left or right side of the pier?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I added some more info in the docstring.
pointing_ha | ||
) | ||
|
||
try: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is it worth putting in a limit, where we don't make a correction if the error is sufficiently low?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It happens back in get_tracking_correction
where it checks for anything under 50 ms. Nothing goes into the returned dict so the correct_tracking
method then just skips that whole axis.
The 50 ms was determined empirically by me where I noticed when it was shorter than about 40ms it would just happen too quickly and then the system would get stuck waiting. It's also less than 1 pix of movement.
I'll make a note in the docstring to get_tracking_correction
about how the values are clipped for min max.
This fixes an error with the direction of the declination tracking adjustment. Also moves the logic into the mount itself.