-
Notifications
You must be signed in to change notification settings - Fork 1.1k
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
Mavlink additions #1422
Mavlink additions #1422
Conversation
makes it possible to change waypoints when using the rotorcraft firmware
- makes it possible to get and change the flight plan blocks alternative implementation to #1407
Btw, to use the mavlink module with UDP, this should do the trick:
|
sending lat/lon as float is actually a bad idea, but it seems that most GCSs don't understand the MISSION_ITEM_INT or LOCAL_FRAME_ENU
- don't use timer callbacks as they are called from system context - remove duplicate waypoints from mission manager - waypoint protocol: - start waypoint write/update transaction upon receiving MISSION_COUNT message - request waypoints Seems to work fine with e.g. QGroundControl now
Updated to integrate the missionlib of @LodewijkSikkel and fixed/improved:
Updating waypoints seems to work fine with e.g. QGroundControl now. Question: do you want/need to allow updates of single waypoints via the app? |
You also need a working version of this define:
(This particular one does not seem to compile). command-line>:0:11: error: too many decimal points in number |
I think the type is currently only parsed for sections, not the firmware... also we should probably not require the UDPx_HOST to be a string (and use STRINGIFY in the code). But for now you can specify the host as we have done before:
|
@flixr This update looks very nice. Thank you for all this work. Unfortunately it does not work with the paparazzi app (the only mavlink app that can call paparazzi-flightplan-blocks). Debugging this is very hard as this is the code of 3 other people. Any idea what order of messages could be different than with the other branch? |
Yes, It finally works!
|
The paparazzi AC_ID is sent as system_id in mavlink... the app should not assume this is 1. Any comments on the questions raised above? |
This is a bug that should have been fixed in de GCS app. The student that is working on it should look into it. On 16 Nov 2015, at 13:50, Felix Ruess <notifications@github.commailto:notifications@github.com> wrote: The paparazzi AC_ID is sent as system_id in mavlink... the app should not assume this is 1. Any comments on the questions raised above? — |
Open questions:
|
|
Of course changing the added paparazzi specific mavlink messages means updating it everywhere... that is exactly why I would rather like to do it now than later...
I guess it would work that if you receive a |
if a MISSION_ITEM is sent from the GCS without a MISSION_COUNT first, then simply directly update that waypoint and answer with MISSION_ACK
if frame is GLOBAL_INT
So we merge this as is and make another PR for updating the SCRIPT messages? |
Yes, I will try to find manpower to update the app a.s.a.p., but please We can start a new pull request with your protocol update suggestions
|
Mavlink additions - fix sending of some mavlink messages (MAVLinkSendMessage() was missing) - send GPS_STATUS and VFR_HUD and SYSTEM_TIME - waypoint protocol: - parse MISSION_ITEM_INT message to update single waypoints - only for rotorcraft (since it used the waypoint interface, see #981) - start waypoint write/update transaction upon receiving MISSION_COUNT message (with requesting of waypoints) - send ack only after all waypoints are transferred - add the Paparazzi specific SCRIPT_ITEM messages Updating waypoints seems to work fine with e.g. QGroundControl now.
Add extra functionality of #1407 to current mavlink module.
Looks to me like this now added the same functionality as #1407 with two minor differences:
no time-outs on the mission or script protocol, don't see how they would be relevant anyway since you can only change existing waypoints/blocksMISSION_ITEM message is sending waypoint inonly for fixedwingMAV_FRAME_LOCAL_ENU
instead ofMAV_FRAME_GLOBAL
This should keep all the already existing functionality that #1407 doesn't have:
One thing I was wondering about: why add a len field to the SCRIPT_ITEM message? It seems to be totally superfluous to me...
@dewagter @LodewijkSikkel what do you guys think? And plz test with your setup...