Add marine plugins - #420
Open
gisleandre wants to merge 29 commits into
Open
Conversation
With the MAVSDK auto-generation we can't properly use an enum as bitflags as the enum is used as an enum only and the actual values are ignored. Therefore, let's just use boolean flags instead.
This way we don't need to internally fetch the latest values.
This is based on the MAVLink WIND_COV message.
Collaborator
|
Thanks. Looks like this would be pending the outcome of mavlink/mavlink#2556. |
FWIW that PR adds the dialect as a dialect to the mavlink repo - not as a managed definitions such as those in common.xml. For my information, what's MAVSDK approach for supporting non-standard definitions? |
Collaborator
|
MAVSDK will try to support what is out there, e.g. have a few quirks for PX4 and ArduPilot in order to be compatible, but MAVSDK likely won't add support for non-standard dialects for new/future messages. |
|
Makes sense. I assume though someone can add their own MAVSDK external plugins in their own repo should they wish? |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Marine plugins: autonomy, payload, and subsea telemetry
Adds proto definitions for maritime/subsea vehicles (USVs and UUVs). Four new
plugins plus additions to the existing telemetry plugins.
New plugins
Autonomy / Autonomy Server
Control and monitoring of an onboard autonomy system. The client side queries
AutonomyStatus(state machine: idle / executing / paused / suspended /completed / stopped / recovering) and issues
AutonomyDemandtransitions(start, stop, pause, suspend, resume, go-to-recovery). The server side sets
state, streams incoming demands so the autonomy system can accept, deny, or
temporarily reject them, and reports per-component health for the subsystems
typically present on a subsea vehicle (ATR, SAS, MBES, FLS, camera, acoustic
comms, mission).
Payload / Payload Server
Registration and control of vehicle payloads. Payloads are enumerated with an
ID, name, and type (camera, LiDAR, winch, acoustic modem, SAS, MBES, FLS, plus
five generic slots), and each exposes a powered / armed / active state along
with a health flag. Clients list payloads, read status, and request state
changes; servers add and remove payloads and publish their status.
Telemetry additions
WaterCurrent and DopplerVelocityLog (DVL)
New messages with subscribe, set-rate, and publish calls in both plugins. Water
current covers raw and estimated current in NED plus sensor distance; DVL
covers bottom-lock, per-beam seabed altitude, and vehicle velocity in NED.
Wind
Adds
timestamp_us(new field number, wire-compatible), the missingSetRateWind, and the message plusPublishWindon the server side, whichpreviously had no way to publish wind.