-
Notifications
You must be signed in to change notification settings - Fork 1.8k
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
MAV_CMD_MISSION_START - more explicit about takeoff #1699
base: master
Are you sure you want to change the base?
Conversation
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 assume that's all correct but what you're documenting is not really a property of MAV_CMD_MISSION_START but in general of mission. You can also start missions by switching to mission mode.
@julianoes That true. But if this is true it does no harm to put it here. Or perhaps to put it in "Mission MicroService" docs and link to that. Either way, this is a good test of what people think is reasonable expectation on starting a mission. |
My plan is to add a Mission Execution section (and possibly mission validation) in the mission microservice doc about here. @julianoes Can you answer/confirm any of the below? Who else might know? My plan is to get as much info as I can, then test on PX4, then confirm with ArduPilot that they have matching implementation. Upshot, no stress if you can't answer anything - but anything you know will save me time. To do this I need to understand:
Some thoughts/and those same questions below.
|
I'll try to answer for PX4 based on what I know without code inspection.
For PX4 it currently happens after upload. However, it should happen on upload instead. The problem with the former is that after an upload, the existing mission is deleted, so then you are left with the new mission which might potentially not be feasible, and so you're left without a mission. In the case of fixedwing, you actually require a mission to do a safe landing, so this is a potential problem. However, the problem with checking on upload is that you might not have all information yet. For instance, the geofence might not have been uploaded yet by that time. Or you don't know where your home position is if you are planning this beforehand/offline. For that case you still need a check right before taking off.
I'm not 100% sure. There are points to be made for "on disarm" or on "re-upload", or "reboot".
I think it is and it should be.
In my mind "paused" means we switched to Hold/Loiter. "Finished" means the last item has been set as "reached". At that point I would also expect the mode to switch to either RTL or Hold/Loiter based on the fact whether the last mission item was an RTL command, or whether a failsafe triggered after the mission.
I don't know if this "current" is respected or just ignored. My hunch is that it is ignored but it's something to verify.
|
Thanks very much! I'll have a think about this. FWIW Another case requiring that you check mission validity before execution is after changing airframe. |
Changing airframe needs a reboot with PX4, so at that point you re-read and re-validate the mission anyway. |
This issue has been automatically marked as stale because it has not had recent activity. Thank you for your contributions. |
MAV_CMD_MISSION_START description was just "start a mission", with start and end points.
This PR adds information about what should happen in the edge cases. Specifically, what if you get the command when you're not flying and the selected start point is in the air. What happens if the first command is to takeoff and you're already flying.
It reflects what ArduPilot and PX4 actually do. However if a flight stack wanted to just reject a mission if it was landed and the selected start point was not a takeoff, that would be OK too under the new wording.
@sfuhrer FYI