https://github.com/tudelft/paparazzi
Raw File
Tip revision: f02df1cc44979fa1befe89be394bb36b437b7e13 authored by Christophe De Wagter on 16 October 2023, 10:26:14 UTC
Link ROVIO
Tip revision: f02df1c
abi.xml
<?xml version="1.0"?>
<!DOCTYPE protocol SYSTEM "abi.dtd">
<protocol>

  <msg_class name="airborne">

    <message name="BARO_ABS" id="0">
      <field name="stamp" type="uint32_t" unit="us"/>
      <field name="pressure" type="float" unit="Pa"/>
    </message>

    <message name="BARO_DIFF" id="1">
      <field name="pressure" type="float" unit="Pa"/>
    </message>

    <message name="AGL" id="2">
      <field name="stamp" type="uint32_t" unit="us"/>
      <field name="distance" type="float" unit="m"/>
    </message>

    <message name="TEMPERATURE" id="3">
      <field name="temp" type="float" unit="deg Celcius"/>
    </message>

    <message name="IMU_GYRO" id="4">
      <field name="stamp" type="uint32_t" unit="us"/>
      <field name="gyro" type="struct Int32Rates *"/>
    </message>

    <message name="IMU_ACCEL" id="5">
      <field name="stamp" type="uint32_t" unit="us"/>
      <field name="accel" type="struct Int32Vect3 *"/>
    </message>

    <message name="IMU_MAG" id="6">
      <field name="stamp" type="uint32_t" unit="us"/>
      <field name="mag" type="struct Int32Vect3 *"/>
    </message>

    <message name="IMU_LOWPASSED" id="7">
      <field name="stamp" type="uint32_t" unit="us"/>
      <field name="gyro" type="struct Int32Rates *"/>
      <field name="accel" type="struct Int32Vect3 *"/>
      <field name="mag" type="struct Int32Vect3 *"/>
    </message>

    <message name="GEO_MAG" id="9">
      <field name="h" type="struct FloatVect3 *" unit="1.0"/>
    </message>

    <message name="GPS" id="10">
      <field name="stamp" type="uint32_t" unit="us"/>
      <field name="gps_s" type="struct GpsState *"/>
    </message>

    <message name="OPTICAL_FLOW" id="11">
      <field name="stamp" type="uint32_t" unit="us"/>
      <field name="flow_x" type="int32_t">Flow in x direction from the camera (in subpixels)</field>
      <field name="flow_y" type="int32_t">Flow in y direction from the camera (in subpixels)</field>
      <field name="flow_der_x" type="int32_t">The derotated flow calculation in the x direction (in subpixels)</field>
      <field name="flow_der_y" type="int32_t">The derotated flow calculation in the y direction (in subpixels)</field>
      <field name="quality" type="float"/>
      <field name="size_divergence" type="float">Divergence as determined with the size method (in 1/seconds) with LK, and Divergence (1/seconds) itself with EF</field>
    </message>

    <message name="VELOCITY_ESTIMATE" id="12">
      <field name="stamp" type="uint32_t" unit="us"/>
      <field name="x" type="float" unit="m/s"/>
      <field name="y" type="float" unit="m/s"/>
      <field name="z" type="float" unit="m/s"/>
      <field name="noise_x" type="float">Set negative noise to disable parameter axis</field>
      <field name="noise_y" type="float"/>
      <field name="noise_z" type="float"/>
    </message>

    <message name="RSSI" id="13">
      <field name="ac_id" type="uint8_t"/>
      <field name="source_strength" type="int8_t" unit="dB"/>
      <field name="rssi" type="int8_t" unit="dB"/>
    </message>

    <message name="AIRSPEED" id="14">
      <field name="eas" type="float" unit="m/s"/>
    </message>

    <message name="ACT_FEEDBACK" id="15">
      <field name="feedback" type="struct act_feedback_t *"/>
      <field name="num_act" type="uint8_t"/>
    </message>

    <message name="THRUST" id="16">
      <field name="thrust_increment_vect" type="struct FloatVect3" unit="m/s^2"/>
    </message>

    <message name="OBSTACLE_DETECTION" id="17">
      <field name="distance" type="float" unit="m"/>
      <field name="elevation" type="float" unit="rad"/>
      <field name="heading" type="float" unit="rad"/>
    </message>

    <message name="POSITION_ESTIMATE" id="18">
      <field name="stamp" type="uint32_t" unit="us"/>
      <field name="x" type="float" unit="m"/>
      <field name="y" type="float" unit="m"/>
      <field name="z" type="float" unit="m"/>
      <field name="noise_x" type="float">Set negative noise to disable parameter axis</field>
      <field name="noise_y" type="float"/>
      <field name="noise_z" type="float"/>
    </message>

    <message name="UWB_COMMUNICATION" id="19">
      <field name="id" type="uint8_t"/>
      <field name="range" type="float" unit="m"/>
      <field name="vx" type="float" unit="m/s"/>
      <field name="vy" type="float" unit="m/s"/>
      <field name="h" type="float" unit="m"/>
      <field name="ax" type="float" unit="m/s^2"/>
      <field name="ay" type="float" unit="m/s^2"/>
      <field name="yawr" type="float" unit="deg/s"/>
    </message>

    <message name="RANGE_FORCEFIELD" id="20">
      <field name="vel_body_x_FF" type="float" unit="m/s"/>
      <field name="vel_body_y_FF" type="float" unit="m/s"/>
      <field name="vel_body_z_FF" type="float" unit="m/s"/>
    </message>

    <message name="JEVOIS_MSG" id="21">
      <!--description>
        Standardized serial messages sent by the Jevois smart camera
        http://jevois.org/doc/UserSerialStyle.html
      </description-->
      <field name="type" type="uint8_t">Standardized message type JEVOIS_MSG_[T1|N1|D1|T2|N2|D2|F2|T3|N3|D3|F3]</field>
      <field name="id" type="char *">Text string describing the reported object</field>
      <field name="nb" type="uint8_t">Number of elements in the coordinates array</field>
      <field name="coord" type="int16_t *">List of coordinates corresponding to 1D, 2D or 3D messages</field>
      <field name="dim" type="uint16_t *">1, 2 or 3D dimension</field>
      <field name="quat" type="struct FloatQuat">Quaternion that relates the object's frame to the camera's frame, if appropriate</field>
      <field name="extra" type="char *">Additional text information</field>
    </message>

    <message name="FOLLOW_TARGET" id="22">
      <field name="id" type="uint32_t">Object ID to track</field>
      <field name="frame" type="uint8_t">
        bitmask to select relative coordinates (0) or global coordinates (1)
        bit 0: bearing
        bit 1: height
        bit 2: distance
      </field>
      <field name="bearing" type="float" unit="rad">Direction of object to track</field>
      <field name="height" type="float" unit="m">Height of object to track</field>
      <field name="distance" type="float" unit="m">Distance of object to track</field>
    </message>

    <message name="ACCEL_SP" id="23">
      <field name="flag" type="uint8_t">0: 2D accel setpoint, 1: 3D accel setpoint</field>
      <field name="accel_sp" type="struct FloatVect3 *" unit="m/s^2"/>
    </message>

    <message name="RELATIVE_LOCALIZATION" id="24">
      <field name="id" type="int32_t"/>
      <field name="x" type="float" unit="m"/>
      <field name="y" type="float" unit="m"/>
      <field name="z" type="float" unit="m"/>
      <field name="vx" type="float" unit="m/s"/>
      <field name="vy" type="float" unit="m/s"/>
      <field name="vz" type="float" unit="m/s"/>
    </message>

    <message name="INCIDENCE" id="25">
      <field name="flag" type="uint8_t">bit 1: AoA is updated, bit 2: sideslip is updated</field>
      <field name="aoa" type="float" unit="rad">Angle of attack</field>
      <field name="sideslip" type="float" unit="rad">Sideslip angle</field>
    </message>

    <message name="MANUAL_SETPOINT" id="26">
      <field name="thrust" type="float">Radio-Control Manual Thrust Setpoint</field>
      <field name="roll"   type="float">Radio-Control Manual Roll Setpoint</field>
      <field name="pitch"  type="float">Radio-Control Manual Pitch Setpoint</field>
      <field name="yaw"    type="float">Radio-Control Manual Yaw Setpoint</field>
    </message>

    <message name="VISUAL_DETECTION" id="27">
      <field name="pixel_x"      type="int16_t">Center pixel X</field>
      <field name="pixel_y"      type="int16_t">Center pixel Y</field>
      <field name="pixel_width"  type="int16_t">Width in pixels</field>
      <field name="pixel_height" type="int16_t">Height in pixels</field>
      <field name="quality"      type="int32_t">Detection quality</field>
      <field name="extra"        type="int16_t">Extra field for options like detector source etc</field>
    </message>

    <message name="JOYSTICK" id="28">
      <!--
           This message can be used to send command inputs from a joystick or equivalent
           either for the control of the airframe or the control of the payload
      -->
      <field name="roll"      type="int16_t">Roll input in pprz_t [-9600;9600]</field>
      <field name="pitch"     type="int16_t">Pitch input in pprz_t [-9600;9600]</field>
      <field name="yaw"       type="int16_t">Yaw input in pprz_t [-9600;9600]</field>
      <field name="throttle"  type="int16_t">Throttle input in pprz_t [0;9600] or [-9600;9600] (for vertical speed control for instance)</field>
    </message>

    <message name="PAYLOAD_DATA" id="29">
      <field name="stamp" type="uint32_t" unit="us">Timestamp in micro-seconds</field>
      <field name="data_type" type="int32_t">A data type id that can be used to identify the data format</field>
      <field name="size" type="uint32_t">Data size or number of element, this may depend on the sender and the type of data</field>
      <field name="data" type="uint8_t *">Pointer to an array of bytes, or any structure depending on the sender and the type of data</field>
    </message>

    <message name="RADIO_CONTROL" id="30">
      <field name="rc" type="struct RadioControl *">Pointer to a radio control structure</field>
    </message>

    <message name="IMU_GYRO_RAW" id="31">
      <field name="stamp" type="uint32_t" unit="us">Registered timestamp of the measurement</field>
      <field name="gyro" type="struct Int32Rates *">Raw gyro samples measured</field>
      <field name="samples" type="uint8_t">Amount of samples</field>
      <field name="rate" type="float" unit="Hz">Sampling rate in Hz of the samples</field>
      <field name="temp" type="float" unit="deg Celcius">Temperature of the sensor</field>
    </message>

    <message name="IMU_ACCEL_RAW" id="32">
      <field name="stamp" type="uint32_t" unit="us">Registered timestamp of the measurement</field>
      <field name="accel" type="struct Int32Vect3 *">Raw accelration samples measured</field>
      <field name="samples" type="uint8_t">Amount of samples</field>
      <field name="rate" type="float" unit="Hz">Sampling rate in Hz of the samples</field>
      <field name="temp" type="float" unit="deg Celcius">Temperature of the sensor</field>
    </message>

    <message name="IMU_MAG_RAW" id="33">
      <field name="stamp" type="uint32_t" unit="us"/>
      <field name="mag" type="struct Int32Vect3 *"/>
    </message>

    <message name="IMU_GYRO_INT" id="34">
      <field name="stamp" type="uint32_t" unit="us"/>
      <field name="delta_gyro" type="struct FloatRates *"/>
      <field name="dt" type="uint16_t" unit="us"/>
    </message>

    <message name="IMU_ACCEL_INT" id="35">
      <field name="stamp" type="uint32_t" unit="us"/>
      <field name="delta_accel" type="struct FloatVect3 *"/>
      <field name="dt" type="uint16_t" unit="us"/>
    </message>

    <message name="VEL_SP" id="36">
      <field name="vel_sp" type="struct FloatVect3 *" unit="m/s"/>
    </message>

  </msg_class>

</protocol>
back to top