Skip to content

Message definitions

Marco A. Gutiérrez edited this page Sep 14, 2022 · 5 revisions

These are the definitions of the messages used for the communication with the LRAUV through topics or services, please have a look at the API for more details on that. It uses the Gazebo Messages library, so please refer to the documentation for more details on the message passing system.

lrauv_gazebo_plugins.msgs

DVLBeamState

Name Type Default Notes
id int32 Beam ID
velocity DVLKinematicEstimate Beam velocity estimate.
range DVLRangeEstimate Beam range estimate.
rssi double Beam signal strength indicator.
nsd double Measured background noise spectral density.
locked bool Whether beam is locked or not.

DVLKinematicEstimate

Name Type Default Notes
reference ReferenceType Estimate frame of reference (incl. conventions). ReferenceType is an enum with the values: DVL_REFERENCE_UNSPECIFIED, DVL_REFERENCE_EARTH, DVL_REFERENCE_SHIP and DVL_REFERENCE_BEAM.
mean gz.msgs.Vector3d Estimate mean.
covariance repeated double Estimate covariance matrix. A 3 x 3 row-major matrix using a flat contiguous layout.

DVLRangeEstimate

Name Type Default Notes
mean double Estimate mean.
variance double Estimate variance.

DVLTrackingTarget

Name Type Default Notes
type TargetType Type of target used for tracking, can any value from: DVL_TARGET_UNSPECIFIED, DVL_TARGET_BOTTOM or DVL_TARGET_WATER_MASS
range DVLRangeEstimate Target range (or distance).
position DVLKinematicEstimate Target position estimate.

DVLVelocityTracking

Name Type Default Notes
header gz.msgs.Header Message header.
type DVLType Type of DVL. Possible values: DVL_TYPE_UNSPECIFIED, DVL_TYPE_PISTON or DVL_TYPE_PHASED_ARRAY.
target DVLTrackingTarget Locked on target.
velocity DVLKinematicEstimate Estimated velocity.
beams repeated DVLBeamState Tracking beams' state.
status int32 Vendor-specific status (e.g. bitmask, error code)

LRAUVAcousticMessage

Name Type Default Notes
to uint32
from uint32
type MessageType MessageType is an enum. It can be of a value RangeRequest RangeResponse or Other.
data bytes

LRAUVCommand

Name Type Default Notes
header gz.msgs.Header Optional header data.
propOmega_ float Angular velocity in rad/s that the controller believes the propeller is currently at. Positive values rotate the propeller clockwise when looking from the back, and propel the vehicle forward.
rudderAngle_ float Angle in radians that the controller believes the rudder is currently at. Higher values have the vertical fins rotated more clockwise when looking from the top (i.e. to starboard).
elevatorAngle_ float Angle in radians that the controller believes the elevator is currently at. Higher values have the horizontal fins rotated more counter-clockwise when looking from starboard, which tilts the nose downward when moving forward.
massPosition_ float Position in meters where the controller believes the mass shifter's joint is in. Positive values have the battery forward, tilting the nose downward.
buoyancyPosition_ float Volume in cubic meters that the controller believes the VBS currently has. Volumes higher than the neutral volume push the vehicle upward.
dropWeightState_ bool Indicator "dropweight OK". 1 = in place, 0 = dropped
propOmegaAction_ float Target angular velocity in rad/s for the propeller. Positive values rotate the propeller clockwise when looking from the back, and propel the vehicle forward.
rudderAngleAction_ float Target angle in radians for rudder joint. Higher values rotate the vertical fins clockwise when looking from the top (i.e. to starboard).
elevatorAngleAction_ float Target angle in radians for the elevator joint. Higher values rotate vertical fins more counter-clockwise when looking from starboard, which tilts the nose downward when moving forward.
massPositionAction_ float Target in meters position for the battery's joint. Positive values move the battery forward, tilting the nose downward.
buoyancyAction_ float Target volume in cubic meters for the VBS (Variable Buoyancy System). Volumes higher than the neutral volume make the vehicle float.
density_ float Not used
dt_ float Not used
time_ float Not used

LRAUVInit

Name Type Default Notes
header gz.msgs.Header Optional header data.
id_ gz.msgs.StringMsg Unique ID identifying vehicle.
initLat_ double Initial latitude in degrees.
initLon_ double Initial longitude in degrees.
initZ_ double Initial depth in meters.
initPitch_ float Initial pitch in radians with respect to the NED world frame (i.e. rotation about the East vector).
initRoll_ float Initial roll in radians with respect to the NED world frame (i.e. rotation about the North vector).
initHeading_ float Initial heading in radians with respect to the NED world frame i.e. rotation about the Down vector).
acommsAddress_ uint32 Unique acoustic comms modem ID

LRAUVInternalComms

Name Type Default Notes
header gz.msgs.Header Optional header data.
position gz.msgs.Vector3d
to uint32
from uint32
type MessageType MessageType is an enum. It can be of a value RangeRequest RangeResponse or Other
data bytes

LRAUVRangeBearingRequest

Name Type Default Notes
to uint32
from uint32

lrauv_range_bearing_response

LRAUVRangeBearingResponse

Name Type Default Notes
req_id uint32 Request ID. Each request ID must be unique.
bearing gz.msgs.Vector3d Bearing in terms of (r, elevation, azimuth). This is based on ground truth and not calculated using time-of-flight
range double Time-Of-Flight reading. This is good for studying errors arising due to movement. But at high dt this may be prone to error.

LRAUVState

Name Type Default Notes
header gz.msgs.Header Optional header data. Stamped with simulation time.
errorPad_ int32 Not populated.
utmZone_ int32 Not populated.
northernHemi_ int32 Not populated.
propOmega_ float Current angular velocity in rad/s of the propeller. Positive values rotate the propeller clockwise when looking from the back, and propel the vehicle forward.
propThrust_ float Not populated.
propTorque_ float Not populated.
rudderAngle_ float Angle in radians that the rudder joint is currently at. Higher values have the vertical fins rotated more clockwise when looking from the top (i.e. to starboard).
elevatorAngle_ float Angle in radians that the elevator joint is currently at. Higher values have the horizontal fins rotated more counter-clockwise when looking from starboard, which tilts the nose downward when moving forward.
massPosition_ float Position in meters of the battery's joint. Positive values have the battery forward, tilting the nose downward.
buoyancyPosition_ float Volume in cubic meters of the VBS. Volumes higher than the neutral volume push the vehicle upwards.
depth_ float Vertical position of the vehicle with respect to sea level. Higher values are deeper, negative values are above water. Unit: meters.
rph_ gz.msgs.Vector3d Duplicate of posRPH_
speed_ float Magnitude of vehicle's linear velocity in the world frame in m/s. It's always positive.
latitudeDeg_ double Latitude in degrees.
longitudeDeg_ double Longitude in degrees.
netBuoy_ float Net buoyancy forces in newtons applied to the vehicle. Currently not populated.
force_ gz.msgs.Vector3d Not populated
pos_ gz.msgs.Vector3d Vehicle's position in meters in "world frame" (see above).
posRPH_ gz.msgs.Vector3d Vehicle's orientation in radians in "world frame" (see above).
posDot_ gz.msgs.Vector3d Vehicle's instantaneous linear velocity in m/s in "world frame"
rateUVW_ gz.msgs.Vector3d Vehicle's instantaneous linear velocity in m/s in "vehicle frame" (see above).
ratePQR_ gz.msgs.Vector3d Vehicle's instantaneous angular velocity in rad/s in "vehicle frame" (see above).
northCurrent_ float Northward sea water velocity collected from current sensor in m/s.
eastCurrent_ float Eastward sea water velocity collected from current sensor in m/s.
vertCurrent_ float Not populated.
magneticVariation_ float Not populated.
soundSpeed_ float Not populated.
temperature_ float Data collected from temperature sensor in celsius.
salinity_ float Data collected from salinity sensor in PSU.
density_ float Density of the surrounding water in kg / m ^ 3
values_ repeated float Size 4. 0: Data collected from Chlorophyll sensor in ug / L. 1: Pressure calculated from current depth and latitude in Pa.
batteryVoltage_ double Voltage of the battery.
batteryCurrent_ double Current supplied by the battery in A.
batteryCharge_ double Current charge in the battery in Ah.
batteryPercentage_ double Percentage of battery remaining.