-
Notifications
You must be signed in to change notification settings - Fork 3.7k
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
[WIP] Improve gimbal support #10667
[WIP] Improve gimbal support #10667
Commits on Jan 15, 2024
-
Configuration menu - View commit details
-
Copy full SHA for 9435c63 - Browse repository at this point
Copy the full SHA 9435c63View commit details -
Configuration menu - View commit details
-
Copy full SHA for 6e43a8e - Browse repository at this point
Copy the full SHA 6e43a8eView commit details -
Configuration menu - View commit details
-
Copy full SHA for 83f983a - Browse repository at this point
Copy the full SHA 83f983aView commit details -
Configuration menu - View commit details
-
Copy full SHA for 0a36146 - Browse repository at this point
Copy the full SHA 0a36146View commit details -
Configuration menu - View commit details
-
Copy full SHA for cdb706a - Browse repository at this point
Copy the full SHA cdb706aView commit details -
Configuration menu - View commit details
-
Copy full SHA for 71aee1e - Browse repository at this point
Copy the full SHA 71aee1eView commit details -
Configuration menu - View commit details
-
Copy full SHA for f18b5ff - Browse repository at this point
Copy the full SHA f18b5ffView commit details -
Configuration menu - View commit details
-
Copy full SHA for e6f6147 - Browse repository at this point
Copy the full SHA e6f6147View commit details -
Configuration menu - View commit details
-
Copy full SHA for da15818 - Browse repository at this point
Copy the full SHA da15818View commit details -
Configuration menu - View commit details
-
Copy full SHA for aa25601 - Browse repository at this point
Copy the full SHA aa25601View commit details -
provisional commit, enable Ardupilot ROI:
Due to how Ardupilot manages cancel ROI, we can not use the standard ROI indicator. Hopefully it will be solved in AP in short
Configuration menu - View commit details
-
Copy full SHA for e71d61b - Browse repository at this point
Copy the full SHA e71d61bView commit details -
Vehicle: implement gimbal control acquisition
Before commanding a gimbal we need to acquire control of it. If someone else is in control, we should ask the user if they really want to take over control or not. For instance the gimbal could be controlled by a companion computer or the autopilot itself as part of a mission and a user might not want to interfere. If no-one else is in control, then we silently acquire control. This control acquisition only works if the gimbal_manager_status message is sent out. We might have to request it at a certain rate. Signed-off-by: Julian Oes <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 89737dc - Browse repository at this point
Copy the full SHA 89737dcView commit details -
Vehicle: don't filter gimbal device messages
I don't think we're supposed to filter messages coming from the gimbal device as they could be sent directly from a gimbal rather than the autopilot. Signed-off-by: Julian Oes <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 57f8a54 - Browse repository at this point
Copy the full SHA 57f8a54View commit details -
Signed-off-by: Julian Oes <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for b37a752 - Browse repository at this point
Copy the full SHA b37a752View commit details -
Vehicle: guard ArduPilot specific commands
This still needs implementation in some way for PX4. Signed-off-by: Julian Oes <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 3a140f2 - Browse repository at this point
Copy the full SHA 3a140f2View commit details -
Add gimbal class to list and manage gimbals
This is just a first skeleton. So far, all it does, is request the gimbal information message. Signed-off-by: Julian Oes <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 944d633 - Browse repository at this point
Copy the full SHA 944d633View commit details -
Gimbal: rename Gimbal class to GimbalController
We don't want to use the term GimbalManager because that gets confusing because the MAVLink protocol also uses the GimbalManager term. Signed-off-by: Julian Oes <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 7907cb6 - Browse repository at this point
Copy the full SHA 7907cb6View commit details -
Gimbal: implement gimbal message requests
We now request and handle - GIMBAL_MANAGER_INFORMATION - GIMBAL_MANAGER_STATUS - GIMBAL_DEVICE_ATTITUDE_STATUS in the GimbalController class. Signed-off-by: Julian Oes <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for c28c263 - Browse repository at this point
Copy the full SHA c28c263View commit details -
libs: update mavlink submodule
I needed the updated gimbal flags. Signed-off-by: Julian Oes <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 43949a9 - Browse repository at this point
Copy the full SHA 43949a9View commit details -
Gimbal: trying to move funcionality to Gimbal class
This is an intermediate work in progress state trying to move the gimbal functionality over to the separate class. What's currently missing is the selection mechanism to chose between multiple gimbals and an API to then command a specific gimbal. Signed-off-by: Julian Oes <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 362f1a0 - Browse repository at this point
Copy the full SHA 362f1a0View commit details -
Configuration menu - View commit details
-
Copy full SHA for 3f79d4b - Browse repository at this point
Copy the full SHA 3f79d4bView commit details -
Configuration menu - View commit details
-
Copy full SHA for a7955a7 - Browse repository at this point
Copy the full SHA a7955a7View commit details -
Configuration menu - View commit details
-
Copy full SHA for f006ac7 - Browse repository at this point
Copy the full SHA f006ac7View commit details -
Gimbal: prevent printing garbage
Signed-off-by: Julian Oes <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for c72dfd8 - Browse repository at this point
Copy the full SHA c72dfd8View commit details -
Gimbal: don't forget to set all flags
The attitude one was missing. Signed-off-by: Julian Oes <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 7c94e70 - Browse repository at this point
Copy the full SHA 7c94e70View commit details -
Gimbal: emit signal when gimbal is discovered
Signed-off-by: Julian Oes <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for dc1c619 - Browse repository at this point
Copy the full SHA dc1c619View commit details -
Gimbal: don't use requestMessage helper
Somehow this caused trouble loading the connection bar. I don't quite appreciate or like the implementation of this helper and decided to just ignore it and send the command directly. Signed-off-by: Julian Oes <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for deabcc8 - Browse repository at this point
Copy the full SHA deabcc8View commit details -
Gimbal: don't continue with nothing
Early return missing return, duh. Signed-off-by: Julian Oes <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 8b8eff3 - Browse repository at this point
Copy the full SHA 8b8eff3View commit details -
Joystick: remove some outdated gimbal stuff
I believe we can add that back in properly soon. Signed-off-by: Julian Oes <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 01b332b - Browse repository at this point
Copy the full SHA 01b332bView commit details -
FlightDisplay: add button for gimbal selection
Work in progress. It doesn't do anything yet. Signed-off-by: Julian Oes <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 6f6369b - Browse repository at this point
Copy the full SHA 6f6369bView commit details -
GimbalController: After 3 attempts to set default rate, request gimba…
…l_manager_status at 0.2 Hz: In case the autopilot doesn't have a default rate for this message
Configuration menu - View commit details
-
Copy full SHA for 2d0a12e - Browse repository at this point
Copy the full SHA 2d0a12eView commit details -
Configuration menu - View commit details
-
Copy full SHA for 15ee0c7 - Browse repository at this point
Copy the full SHA 15ee0c7View commit details -
Configuration menu - View commit details
-
Copy full SHA for f8069ab - Browse repository at this point
Copy the full SHA f8069abView commit details -
GimbalController.h: increase requestStatus retries to 6:
For Ardupilot this wasn't enough sometimes if QGC connects right when vehicle is connected. For some reason the request isn't processed, probably because of some issue with the request messages implementation in Ardupilot, so it should be fixed at the Ardupilot level, but incresing it from 4 to 6 isn't a big deal as it will only happen in the initial handshake, and it allows us to continue working
Configuration menu - View commit details
-
Copy full SHA for 6ea1edb - Browse repository at this point
Copy the full SHA 6ea1edbView commit details -
Gimbal Controller rework, use gimbal_device_id instead of compid, see…
… long notes: Implementation was based on the assumption that all the gimbal managers would have a different compId, which is not always the case. As per mavlink documentation: https://mavlink.io/en/services/gimbal_v2.html Discovery should be based on GCS sending a MAV_CMD_REQUEST_MESSAGE for GIMBAL_MANAGER_INFORMATION and we should instantiate gimbals when we receive response to this message. This commit introduces several modifications toi allow this. This was needed because otherwise the existent implementation would not allow multi gimbal systems with gimbals belonging to the same compid to work correctly
Configuration menu - View commit details
-
Copy full SHA for 0a271e6 - Browse repository at this point
Copy the full SHA 0a271e6View commit details -
Gimbal: properly handle attitude
This includes: - Respecting the flags which determine the yaw frame of reference. - Using the Euler angle conversion ZXY which has a singularity at high roll but not at pitch down which is used much more often. Signed-off-by: Julian Oes <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 5967781 - Browse repository at this point
Copy the full SHA 5967781View commit details -
Configuration menu - View commit details
-
Copy full SHA for ac73c78 - Browse repository at this point
Copy the full SHA ac73c78View commit details -
GimbalController: Provisionally emit vehicle gimbalpitch/yawChanged:
This is needed for UI to detect changes in that vehicle's property. It is returning now gimbal 1 from gimbalController, and maybe the architecture on that regard will change, hence marking this as provisional
Configuration menu - View commit details
-
Copy full SHA for 382b5ad - Browse repository at this point
Copy the full SHA 382b5adView commit details -
Configuration menu - View commit details
-
Copy full SHA for 1a852ae - Browse repository at this point
Copy the full SHA 1a852aeView commit details -
GimbalController: make Gimbal class Q_OBJECT:
This is needed in order to do nicer the frontend, so we can access Q_PROPERTY's from each gimbal to display on the UI. It potentially opens the possibility of calling Q_INVOKABLES on the gimbal itself as well. GimbalController was declared as a friend class of Gimbal, it is the only class that will actually modify values and it makes the code more compact overall
Configuration menu - View commit details
-
Copy full SHA for acceca3 - Browse repository at this point
Copy the full SHA acceca3View commit details -
Configuration menu - View commit details
-
Copy full SHA for f9696b3 - Browse repository at this point
Copy the full SHA f9696b3View commit details -
GimbalController: fix wrong yaw in quat to euler conversion:
For some reason the Eigen based conversion was odd in yaw. It would only represent 0-180, and when passed that, it would go to 0-180 again instead of representing the negative (left) part of it
Configuration menu - View commit details
-
Copy full SHA for 4d5ba39 - Browse repository at this point
Copy the full SHA 4d5ba39View commit details -
Configuration menu - View commit details
-
Copy full SHA for 2b8366c - Browse repository at this point
Copy the full SHA 2b8366cView commit details -
Configuration menu - View commit details
-
Copy full SHA for ae165a5 - Browse repository at this point
Copy the full SHA ae165a5View commit details -
Configuration menu - View commit details
-
Copy full SHA for 20553fb - Browse repository at this point
Copy the full SHA 20553fbView commit details -
GimbalController: move here some gimbal related functionality from ve…
…hicle. Needs rework: it needs to account for adquirecontrol, etc and also some functions are using APM custom commands
Configuration menu - View commit details
-
Copy full SHA for 4a5f517 - Browse repository at this point
Copy the full SHA 4a5f517View commit details -
Configuration menu - View commit details
-
Copy full SHA for 06470a7 - Browse repository at this point
Copy the full SHA 06470a7View commit details -
Configuration menu - View commit details
-
Copy full SHA for 011cc80 - Browse repository at this point
Copy the full SHA 011cc80View commit details -
Configuration menu - View commit details
-
Copy full SHA for 2e93b31 - Browse repository at this point
Copy the full SHA 2e93b31View commit details -
Configuration menu - View commit details
-
Copy full SHA for 648e756 - Browse repository at this point
Copy the full SHA 648e756View commit details -
FlyViewVideoToolStrip.qml: disabled in Video view, disable get from m…
…ap when hidden: In video view there is no point on having this enabled. Also when we hide this panel, we automatically remove the take coords from map feature, it was confusing otherwise
Configuration menu - View commit details
-
Copy full SHA for b572439 - Browse repository at this point
Copy the full SHA b572439View commit details -
FlyViewVideoToolStrip.qml: provisionally add new button to manually r…
…elease gimbal control
Configuration menu - View commit details
-
Copy full SHA for 1cc84b1 - Browse repository at this point
Copy the full SHA 1cc84b1View commit details -
Configuration menu - View commit details
-
Copy full SHA for ec81bac - Browse repository at this point
Copy the full SHA ec81bacView commit details -
GimbalController: Implement adquire gimbal control mechanism:
There is a new signal showAcquireGimbalControlPopup that qml takes to show a popup asking the user if desiring to take control. In gimbal controller, we have a new method _tryGetGimbalControl() which we invoke prior to attempting any kind of gimbal control. This function emits the signal to show the popup if needed, returning false so the actual action isn't sent, and it returns true if the actual action could be sent ( if we are in control or if nobody is, although in the later it will also adquire control )
Configuration menu - View commit details
-
Copy full SHA for 80c9e2e - Browse repository at this point
Copy the full SHA 80c9e2eView commit details -
Configuration menu - View commit details
-
Copy full SHA for 0c6069b - Browse repository at this point
Copy the full SHA 0c6069bView commit details -
Configuration menu - View commit details
-
Copy full SHA for fb68a3f - Browse repository at this point
Copy the full SHA fb68a3fView commit details -
GimbalController.cc: substitute gimbals()[0] by new _activeGimbal:
Moving towards multigimbal support
Configuration menu - View commit details
-
Copy full SHA for 8bbfa2b - Browse repository at this point
Copy the full SHA 8bbfa2bView commit details -
GimbalController.cc: use _activeGimbal->deviceId in Mav commands:
So we no longer use by default gimbal 0
Configuration menu - View commit details
-
Copy full SHA for 0daf8bd - Browse repository at this point
Copy the full SHA 0daf8bdView commit details -
Configuration menu - View commit details
-
Copy full SHA for e81faf9 - Browse repository at this point
Copy the full SHA e81faf9View commit details -
Configuration menu - View commit details
-
Copy full SHA for 6335881 - Browse repository at this point
Copy the full SHA 6335881View commit details -
Configuration menu - View commit details
-
Copy full SHA for f14116f - Browse repository at this point
Copy the full SHA f14116fView commit details -
FlyViewVideoToolStrip.qml: acquire/release button automatic behaviour:
it will show acquire or release depending on if we are or not in control
Configuration menu - View commit details
-
Copy full SHA for c900985 - Browse repository at this point
Copy the full SHA c900985View commit details -
GimbalController.cc: check for null activeGimbal in release and acqui…
…re gimbal control
Configuration menu - View commit details
-
Copy full SHA for b4c58c4 - Browse repository at this point
Copy the full SHA b4c58c4View commit details -
Configuration menu - View commit details
-
Copy full SHA for 19c9825 - Browse repository at this point
Copy the full SHA 19c9825View commit details -
Configuration menu - View commit details
-
Copy full SHA for 1d64f9e - Browse repository at this point
Copy the full SHA 1d64f9eView commit details -
New qml class FakeToolStripHoverButton.qml:
This qml class is meant to be used to aesthetically match the looks of ToolStripHoverButton, but without depending on the whole concept of ToolStripAction, which is handy to work on toolbars with simpler action Complexity
Configuration menu - View commit details
-
Copy full SHA for 3a14bcd - Browse repository at this point
Copy the full SHA 3a14bcdView commit details -
FlyViewVideoToolStrip.qml: Multi-gimbal selector working:
Whenever we have a gimbal active, a button will appear in the gimbal toolbar to select between the available gimbals. This will set the new gimbal as active gimbal, and all the commands will control it instead
Configuration menu - View commit details
-
Copy full SHA for bf8627d - Browse repository at this point
Copy the full SHA bf8627dView commit details -
Configuration menu - View commit details
-
Copy full SHA for 2df8be8 - Browse repository at this point
Copy the full SHA 2df8be8View commit details -
Configuration menu - View commit details
-
Copy full SHA for 98276ce - Browse repository at this point
Copy the full SHA 98276ceView commit details -
Configuration menu - View commit details
-
Copy full SHA for d81f8e5 - Browse repository at this point
Copy the full SHA d81f8e5View commit details -
Configuration menu - View commit details
-
Copy full SHA for 29bb8c6 - Browse repository at this point
Copy the full SHA 29bb8c6View commit details -
Configuration menu - View commit details
-
Copy full SHA for 89f49a5 - Browse repository at this point
Copy the full SHA 89f49a5View commit details -
FlyViewVideoWidgetLayer.qml: new location of gimbalYaw property, no l…
…onger in vehicle
Configuration menu - View commit details
-
Copy full SHA for 9a965e4 - Browse repository at this point
Copy the full SHA 9a965e4View commit details -
Configuration menu - View commit details
-
Copy full SHA for 9eff61a - Browse repository at this point
Copy the full SHA 9eff61aView commit details -
Configuration menu - View commit details
-
Copy full SHA for 2204167 - Browse repository at this point
Copy the full SHA 2204167View commit details -
Configuration menu - View commit details
-
Copy full SHA for f8aa063 - Browse repository at this point
Copy the full SHA f8aa063View commit details -
GimbalController: change order of sendGimbalManagerPitchYaw arguments:
so they are aligned with the name of the function
Configuration menu - View commit details
-
Copy full SHA for 1e81148 - Browse repository at this point
Copy the full SHA 1e81148View commit details -
Configuration menu - View commit details
-
Copy full SHA for 676c933 - Browse repository at this point
Copy the full SHA 676c933View commit details -
Configuration menu - View commit details
-
Copy full SHA for 8fdb1d5 - Browse repository at this point
Copy the full SHA 8fdb1d5View commit details -
Configuration menu - View commit details
-
Copy full SHA for 152d08f - Browse repository at this point
Copy the full SHA 152d08fView commit details -
Configuration menu - View commit details
-
Copy full SHA for 055947d - Browse repository at this point
Copy the full SHA 055947dView commit details -
Configuration menu - View commit details
-
Copy full SHA for d947597 - Browse repository at this point
Copy the full SHA d947597View commit details -
Configuration menu - View commit details
-
Copy full SHA for 2f4735f - Browse repository at this point
Copy the full SHA 2f4735fView commit details -
Signed-off-by: Julian Oes <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for de944da - Browse repository at this point
Copy the full SHA de944daView commit details -
FlightDisplay: remove trailing whitespace
Signed-off-by: Julian Oes <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for f73cfe2 - Browse repository at this point
Copy the full SHA f73cfe2View commit details -
FlightDisplay: remove gimbal yaw lock call
We don't need this separate yaw lock call as the flags are already sent as part of sendGimbalManagerPitchYaw which uses follow mode. This caused problems because it leads to the situation where two consequtive GIMBAL_MANAGER_DO_PITCH_YAW commands are sent, first for the flags, second for the pitch and yaw values. The second one is dropped with a warning because the "same command" is still pending. Signed-off-by: Julian Oes <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 4228b3f - Browse repository at this point
Copy the full SHA 4228b3fView commit details -
gimbal: split relative/absolute yaw angle, cleanup
This is my attempt at getting gimbal relative and absolute control working, using a joystick and by point and click. It cleans up a couple of methods that I believe were not actually used. Signed-off-by: Julian Oes <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for d3d6d8e - Browse repository at this point
Copy the full SHA d3d6d8eView commit details