From bbd8088b6645b9be63af24cd9f676c5e1df6dd5d Mon Sep 17 00:00:00 2001 From: Pavel Kirienko Date: Sun, 6 Apr 2014 00:26:21 +0400 Subject: [PATCH] Added some equipment messages --- .../256.PerformAutomaticSelfTest.uavcan | 13 ++++++++++++ .../257.PerformAutomaticCalibration.uavcan | 13 ++++++++++++ .../uavcan/equipment/CoarseOrientation.uavcan | 20 +++++++++++++++++++ dsdl/uavcan/equipment/ahrs/256.Ahrs.uavcan | 17 ++++++++++++++++ .../equipment/ahrs/257.Magnetometer.uavcan | 6 ++++++ .../equipment/airdata/280.Airspeed.uavcan | 6 ++++++ .../airdata/281.AltitudeAndClimbRate.uavcan | 12 +++++++++++ .../airdata/282.AngleOfAttack.uavcan | 10 ++++++++++ .../equipment/airdata/283.Sideslip.uavcan | 7 +++++++ .../airdata/284.StaticAirData.uavcan | 11 ++++++++++ dsdl/uavcan/equipment/gnss/300.Fix.uavcan | 19 ++++++++++++++++++ .../equipment/gnss/301.RtcmStream.uavcan | 5 +++++ dsdl/uavcan/equipment/gnss/302.Aux.uavcan | 12 +++++++++++ 13 files changed, 151 insertions(+) create mode 100644 dsdl/uavcan/equipment/256.PerformAutomaticSelfTest.uavcan create mode 100644 dsdl/uavcan/equipment/257.PerformAutomaticCalibration.uavcan create mode 100644 dsdl/uavcan/equipment/CoarseOrientation.uavcan create mode 100644 dsdl/uavcan/equipment/ahrs/256.Ahrs.uavcan create mode 100644 dsdl/uavcan/equipment/ahrs/257.Magnetometer.uavcan create mode 100644 dsdl/uavcan/equipment/airdata/280.Airspeed.uavcan create mode 100644 dsdl/uavcan/equipment/airdata/281.AltitudeAndClimbRate.uavcan create mode 100644 dsdl/uavcan/equipment/airdata/282.AngleOfAttack.uavcan create mode 100644 dsdl/uavcan/equipment/airdata/283.Sideslip.uavcan create mode 100644 dsdl/uavcan/equipment/airdata/284.StaticAirData.uavcan create mode 100644 dsdl/uavcan/equipment/gnss/300.Fix.uavcan create mode 100644 dsdl/uavcan/equipment/gnss/301.RtcmStream.uavcan create mode 100644 dsdl/uavcan/equipment/gnss/302.Aux.uavcan diff --git a/dsdl/uavcan/equipment/256.PerformAutomaticSelfTest.uavcan b/dsdl/uavcan/equipment/256.PerformAutomaticSelfTest.uavcan new file mode 100644 index 0000000000..8b358f8660 --- /dev/null +++ b/dsdl/uavcan/equipment/256.PerformAutomaticSelfTest.uavcan @@ -0,0 +1,13 @@ +# +# Fast automatic self test request. +# E.g. Before flight, the flight computer should call this service on every node that provides it. +# Such nodes should be detected with the service std.protocol.GetDataTypeInfo. +# If at least one node fails, the start should be aborted. +# + +--- + +# Amount of extra time the node needs to finish the procedure. +uint16 delay_msec + +bool ok diff --git a/dsdl/uavcan/equipment/257.PerformAutomaticCalibration.uavcan b/dsdl/uavcan/equipment/257.PerformAutomaticCalibration.uavcan new file mode 100644 index 0000000000..e47b5e56fc --- /dev/null +++ b/dsdl/uavcan/equipment/257.PerformAutomaticCalibration.uavcan @@ -0,0 +1,13 @@ +# +# Fast automatic calibration request. +# E.g. Before flight, the flight computer should call this service on every node that provides it. +# Such nodes should be detected with the service std.protocol.GetDataTypeInfo. +# If at least one node fails, the start should be aborted. +# + +--- + +# Amount of extra time the node needs to finish the procedure. +uint16 delay_msec + +bool ok diff --git a/dsdl/uavcan/equipment/CoarseOrientation.uavcan b/dsdl/uavcan/equipment/CoarseOrientation.uavcan new file mode 100644 index 0000000000..53a69d80b0 --- /dev/null +++ b/dsdl/uavcan/equipment/CoarseOrientation.uavcan @@ -0,0 +1,20 @@ +# +# Nested type. +# Coarse, low-resolution 3D orientation represented as fixed axes in 16 bit. +# +# Roll, pitch, yaw angles in radians should be multiplied by +# ANGLE_MULTIPLIER in order to convert them to the coarse representation. +# +# ANGLE_MULTIPLIER = NORM / PI +# +# Where NORM is 12, because it: +# - Fits the maximum range of the signed 5 bit integer +# - Allows to represent the following angles without precision loss: +# 0, 15, 30, 45, 60, 75, 90, 105, 120, 135, 150, 165, 180, and negatives +# + +float32 ANGLE_MULTIPLIER = 4.7746482927568605 + +int5[3] fixed_axis_roll_pitch_yaw + +bool defined # False if the orientation is actually not defined diff --git a/dsdl/uavcan/equipment/ahrs/256.Ahrs.uavcan b/dsdl/uavcan/equipment/ahrs/256.Ahrs.uavcan new file mode 100644 index 0000000000..6a211468bb --- /dev/null +++ b/dsdl/uavcan/equipment/ahrs/256.Ahrs.uavcan @@ -0,0 +1,17 @@ +# +# Inertial data and orientation in body frame. +# + +uavcan.Timestamp timestamp + +# Normalized quaternion +float16[4] orientation_xyzw +float16[<=9] orientation_covariance + +# rad/sec +float16[3] angular_velocity +float16[<=9] angular_velocity_covariance + +# m/s^2 +float16[3] linear_acceleration +float16[<=9] linear_acceleration_covariance diff --git a/dsdl/uavcan/equipment/ahrs/257.Magnetometer.uavcan b/dsdl/uavcan/equipment/ahrs/257.Magnetometer.uavcan new file mode 100644 index 0000000000..f4eb3bdd2e --- /dev/null +++ b/dsdl/uavcan/equipment/ahrs/257.Magnetometer.uavcan @@ -0,0 +1,6 @@ +# +# Magnetic field readings in body frame. +# + +float16[3] magnetic_field +float16[<=9] magnetic_field_covariance diff --git a/dsdl/uavcan/equipment/airdata/280.Airspeed.uavcan b/dsdl/uavcan/equipment/airdata/280.Airspeed.uavcan new file mode 100644 index 0000000000..781c0911c1 --- /dev/null +++ b/dsdl/uavcan/equipment/airdata/280.Airspeed.uavcan @@ -0,0 +1,6 @@ +# +# True airspeed. +# + +float16 true_airspeed +float16 true_airspeed_variance diff --git a/dsdl/uavcan/equipment/airdata/281.AltitudeAndClimbRate.uavcan b/dsdl/uavcan/equipment/airdata/281.AltitudeAndClimbRate.uavcan new file mode 100644 index 0000000000..8e7404728c --- /dev/null +++ b/dsdl/uavcan/equipment/airdata/281.AltitudeAndClimbRate.uavcan @@ -0,0 +1,12 @@ +# +# Pressure altitude and barometric climb rate. +# Barometer nodes should publish this message. +# + +uavcan.Timestamp timestamp + +float32 pressure_altitude +float16 pressure_altitude_variance + +float16 climb_rate +float16 climb_rate_variance diff --git a/dsdl/uavcan/equipment/airdata/282.AngleOfAttack.uavcan b/dsdl/uavcan/equipment/airdata/282.AngleOfAttack.uavcan new file mode 100644 index 0000000000..d892bb88f5 --- /dev/null +++ b/dsdl/uavcan/equipment/airdata/282.AngleOfAttack.uavcan @@ -0,0 +1,10 @@ +# +# Angle of attack. +# + +uint8 ID_LEFT = 254 +uint8 ID_RIGHT = 255 +uint8 id + +float16 aoa +float16 aoa_variance diff --git a/dsdl/uavcan/equipment/airdata/283.Sideslip.uavcan b/dsdl/uavcan/equipment/airdata/283.Sideslip.uavcan new file mode 100644 index 0000000000..776c047056 --- /dev/null +++ b/dsdl/uavcan/equipment/airdata/283.Sideslip.uavcan @@ -0,0 +1,7 @@ +# +# Body sideslip in radians. +# Yaw right: +, yaw left: - +# + +float16 sideslip_angle +float16 sideslip_angle_variance diff --git a/dsdl/uavcan/equipment/airdata/284.StaticAirData.uavcan b/dsdl/uavcan/equipment/airdata/284.StaticAirData.uavcan new file mode 100644 index 0000000000..7a97249dcf --- /dev/null +++ b/dsdl/uavcan/equipment/airdata/284.StaticAirData.uavcan @@ -0,0 +1,11 @@ +# +# Static air data for barometric altitude and altitude rate measurements. +# + +uavcan.Timestamp timestamp + +float16 static_pressure +float16 static_pressure_variance + +float16 static_temperature +float16 static_temperature_variance diff --git a/dsdl/uavcan/equipment/gnss/300.Fix.uavcan b/dsdl/uavcan/equipment/gnss/300.Fix.uavcan new file mode 100644 index 0000000000..b51fbbc75e --- /dev/null +++ b/dsdl/uavcan/equipment/gnss/300.Fix.uavcan @@ -0,0 +1,19 @@ +# +# GNSS nav solution with uncertainty. +# Lat and lon are represented in integer degrees * 1e7, so 1 LSB = 1e-7 deg (approx. 11 mm per LSB on equator). +# Alt is above ellipsoid, represented as meters * 1e2, so 1 LSB = 1e-2 meters (10 mm). +# Velocity is in NED frame (north-east-down) in meters per second. +# + +uavcan.Timestamp timestamp + +int32 lon_1e7 +int32 lat_1e7 +int24 alt_1e2 + +float16[3] ned_velocity + +uint4 sats_used + +float16[<=9] position_covariance # m^2 +float16[<=9] velocity_covariance # (m/s)^2 diff --git a/dsdl/uavcan/equipment/gnss/301.RtcmStream.uavcan b/dsdl/uavcan/equipment/gnss/301.RtcmStream.uavcan new file mode 100644 index 0000000000..c934cb775d --- /dev/null +++ b/dsdl/uavcan/equipment/gnss/301.RtcmStream.uavcan @@ -0,0 +1,5 @@ +# +# GNSS RTCM SC-104 protocol raw stream container. +# + +uint8[<=250] data diff --git a/dsdl/uavcan/equipment/gnss/302.Aux.uavcan b/dsdl/uavcan/equipment/gnss/302.Aux.uavcan new file mode 100644 index 0000000000..ed0bddcf96 --- /dev/null +++ b/dsdl/uavcan/equipment/gnss/302.Aux.uavcan @@ -0,0 +1,12 @@ +# +# GNSS low priority auxiliary info; should be published at low frequency or not published at all. +# + +uint4 sats_visible +uint4 sats_used + +float16 gdop +float16 pdop +float16 hdop +float16 vdop +float16 tdop