-
Notifications
You must be signed in to change notification settings - Fork 13.3k
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
Navigator Mission: Improve mission resume #21710
Conversation
9f0cbc4
to
369d735
Compare
@sfuhrer LGTM. I hard a hard time understanding how the mission item is set when resuming the survey without calling |
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.
Added comments in the code
18a5d9d
to
680898e
Compare
@sfuhrer Flash overflow :-( |
680898e
to
c1b61ef
Compare
v4_test indeed is at 100.00%..in an effort to bring it slightly down I've removed some rather unnecessary params and made some other param descriptions more compact, let's see if that's enough. |
c1b61ef
to
25370a4
Compare
…erate function Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
25370a4
to
63e1d42
Compare
Replaces #21643. I've tried to clean up the logic a bit and make it less entangled.
Solved Problem
Survey mission contain, beside the position items, contain items for gimbal config, camera mode config, and camera trigger. When the execution of a mission is stopped, we want also to stop the camera from taking pictures and move the gimbal back to neutral. Upon resuming the mission though, we have to re-configure gimbal and camera and start the triggering once back on the mission path.
Solution
Store (cache) all gimbal/camera/trigger mission items and replay them on resuming the mission. In detail:
on_inactivation()
store the currently active index as_inactivation_index
on_activation()
, store all gimbal/camera/trigger items up to the currently active index and reset the mission to the previous. Also set flag (_align_heading_necessary
) that a yaw alignment is required upon reaching this waypoint (we want to only start triggering once yaw is correctly aligned with next WP).on_active()
_align_heading_necessary
is set and mission item is reached, update current item with yaw field and force it to accept that one before starting the trigger.Further:
Changelog Entry
For release notes:
Alternatives
It would be nice to not resume the mission from the previous mission item but from the actual lat/lon position where the mission was interrupted.
Test coverage
SITL tested.