-
Notifications
You must be signed in to change notification settings - Fork 13
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
ACU Sun Avoidance #559
ACU Sun Avoidance #559
Conversation
Now that #554 is merged, I think a rebase would be good here. (This'll test whether I lose the couple of comments I have pending too...) |
Yup, will do ... also one more commit coming... |
Can be triggered for testing. Needs logging and a bit more safetyizing.
Also ability to temporarily disable the feature.
Also the safe position seek clears faults.
This wasn't causing any trouble other than lots of log messages in influxpublisher.
28b8bdc
to
8844a61
Compare
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.
With the caveat that I don't really have a setup to test this in, this is looking good. One thing I would love to see (though let me know if it's going to hold this up) is some fixed time (i.e. repeatable) examples via some unit tests of the avoidance.py
module.
Other requests are mostly documentation related below.
Thanks -- I think I've dealt with that all. I actually did have slightly better docs, and some tests, but somehow omitted those commits on my initial PR. But I took another pass at it in any case. |
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.
Great, thanks for adding the tests and updating the docs! Two small docs formatting suggestions, but otherwise this is ready to go.
I pushed a commit (330be86) that includes the new dependencies in the build process and documents how to install them as well.
Definitely squash this if you want ... lots of commits, mostly noise ... |
* ACU: sun avoidance * ACU sun: update .sun in the process * ACU sun: working non-blocking state machine to seek safety Can be triggered for testing. Needs logging and a bit more safetyizing. * ACU sun: faster sun map computation * ACU sun: capacity to time-shift the Sun's position, for testing Also ability to temporarily disable the feature. * ACU sun: generate_scan checks traj before starting Also the safe position seek clears faults. * ACU sun: create Task to handle seek_to_sunsafe * ACU sun: consolidate SunTracker code and organize policy * ACU sun: more clean up; catch edge cases * ACU sun: args, more * ACU sun: consistencyize, reterminologize. * ACU sun: one more tweak to escape path computation * ACU sun: monitor_sun session.data + docs * ACU sun: fix direct path bug; remove "escape=True" switch * ACU sun: generate_scan initial seek must be sun-safe too! * ACU: fix bug where empty blocks were pushed to feed This wasn't causing any trouble other than lots of log messages in influxpublisher. * ACU sun: docs and requirements * ACU sun: add tests, cleanup * ACU sunvoidance: more docs cleanup * ACU sun: Add new dependencies to setup.py * ACU sunvoidance: couple more docs fixes --------- Co-authored-by: Brian Koopman <[email protected]>
* ACU: sun avoidance * ACU sun: update .sun in the process * ACU sun: working non-blocking state machine to seek safety Can be triggered for testing. Needs logging and a bit more safetyizing. * ACU sun: faster sun map computation * ACU sun: capacity to time-shift the Sun's position, for testing Also ability to temporarily disable the feature. * ACU sun: generate_scan checks traj before starting Also the safe position seek clears faults. * ACU sun: create Task to handle seek_to_sunsafe * ACU sun: consolidate SunTracker code and organize policy * ACU sun: more clean up; catch edge cases * ACU sun: args, more * ACU sun: consistencyize, reterminologize. * ACU sun: one more tweak to escape path computation * ACU sun: monitor_sun session.data + docs * ACU sun: fix direct path bug; remove "escape=True" switch * ACU sun: generate_scan initial seek must be sun-safe too! * ACU: fix bug where empty blocks were pushed to feed This wasn't causing any trouble other than lots of log messages in influxpublisher. * ACU sun: docs and requirements * ACU sun: add tests, cleanup * ACU sunvoidance: more docs cleanup * ACU sun: Add new dependencies to setup.py * ACU sunvoidance: couple more docs fixes --------- Co-authored-by: Brian Koopman <[email protected]>
Description
The ACU Agent monitors and reports the Sun position. If active_avoidance is enabled, it will reject non-Sun-safe moves, and even slew to safe position if idle and the Sun gets too close. "Too close" is controllable, to some extent, through command line args.
Note this currently the changes from #554.
Motivation and Context
SATPs do not have built-in Sun Avoidance. But we might run this on the LAT too, to have more fine-grained / easily configurable control.
How Has This Been Tested?
I developed this on SATP2, and ran through a number of different situations.
Types of changes
Checklist: