common_future.xml 25.2 KB
Newer Older
1

LM's avatar
LM committed
2 3 4 5 6 7 8 9 10 11 12 13 14
     <messages>
          
          <message id="2" name="SYSTEM_TIME">
               <description>The system time is the time of the master clock, typically the computer clock of the main onboard computer.</description>
               <field type="uint64_t" name="time_usec">Timestamp of the master clock in microseconds since UNIX epoch.</field>
               <field type="uint32_t" name="time_boot_ms">Timestamp of the component clock since boot time in milliseconds.</field>
          </message>
          <!-- FIXME to be removed / merged with SYSTEM_TIME -->
          <message id="3" name="SYSTEM_TIME_UTC">
               <description>UTC date and time from GPS module</description>
               <field type="uint32_t" name="utc_date">GPS UTC date ddmmyy</field>
               <field type="uint32_t" name="utc_time">GPS UTC time hhmmss</field>
          </message>
15

LM's avatar
LM committed
16 17 18 19 20 21 22 23 24
          <message id="27" name="GPS_STATUS">
               <description>The positioning status, as reported by GPS. This message is intended to display status information about each satellite visible to the receiver. See message GLOBAL_POSITION for the global position estimate. This message can contain information for up to 20 satellites.</description>
               <field type="uint8_t" name="satellites_visible">Number of satellites visible</field>
               <field type="uint8_t[20]" name="satellite_prn">Global satellite ID</field>
               <field type="uint8_t[20]" name="satellite_used">0: Satellite not used, 1: used for localization</field>
               <field type="uint8_t[20]" name="satellite_elevation">Elevation (0: right on top of receiver, 90: on the horizon) of satellite</field>
               <field type="uint8_t[20]" name="satellite_azimuth">Direction of satellite, 0: 0 deg, 255: 360 deg.</field>
               <field type="uint8_t[20]" name="satellite_snr">Signal to noise ratio of satellite</field>
          </message>
25

LM's avatar
LM committed
26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154
          <message id="39" name="STORED_MISSION_COMMAND">
               <description>Message encoding a waypoint. This message is emitted to announce
                the presence of a waypoint and to set a waypoint on the system. The waypoint can be either in x, y, z meters (type: LOCAL) or x:lat, y:lon, z:altitude. Local frame is Z-down, right handed, global frame is Z-up, right handed
            </description>
               <field type="uint8_t" name="target_system">System ID</field>
               <field type="uint8_t" name="target_component">Component ID</field>
               <field type="uint16_t" name="seq">Sequence</field>
               <field type="uint8_t" name="frame">The coordinate system of the waypoint. see MAV_FRAME in mavlink_types.h</field>
               <field type="uint8_t" name="command">The scheduled action for the waypoint. see MAV_COMMAND in common.xml MAVLink specs</field>
               <field type="uint8_t" name="current">false:0, true:1</field>
               <field type="uint8_t" name="autocontinue">autocontinue to next wp</field>
               <field type="float" name="param1">PARAM1 / For NAV command waypoints: Radius in which the waypoint is accepted as reached, in meters</field>
               <field type="float" name="param2">PARAM2 / For NAV command waypoints: Time that the MAV should stay inside the PARAM1 radius before advancing, in milliseconds</field>
               <field type="float" name="param3">PARAM3 / For LOITER command waypoints: Orbit to circle around the waypoint, in meters. If positive the orbit direction should be clockwise, if negative the orbit direction should be counter-clockwise.</field>
               <field type="float" name="param4">PARAM4 / For NAV and LOITER command waypoints: Yaw orientation in degrees, [0..360] 0 = NORTH</field>
               <field type="float" name="x">PARAM5 / local: x position, global: latitude</field>
               <field type="float" name="y">PARAM6 / y position: global: longitude</field>
               <field type="float" name="z">PARAM7 / z position: global: altitude</field>
          </message>
          <message id="40" name="MISSION_COMMAND_REQUEST">
               <description>Request the information of the waypoint with the sequence number seq. The response of the system to this message should be a WAYPOINT message.</description>
               <field type="uint8_t" name="target_system">System ID</field>
               <field type="uint8_t" name="target_component">Component ID</field>
               <field type="uint16_t" name="seq">Sequence</field>
          </message>
          <message id="41" name="MISSION_COMMAND_SET_CURRENT">
               <description>Set the waypoint with sequence number seq as current waypoint. This means that the MAV will continue to this waypoint on the shortest path (not following the waypoints in-between).</description>
               <field type="uint8_t" name="target_system">System ID</field>
               <field type="uint8_t" name="target_component">Component ID</field>
               <field type="uint16_t" name="seq">Sequence</field>
          </message>
          <message id="42" name="MISSION_COMMAND_CURRENT">
               <description>Message that announces the sequence number of the current active waypoint. The MAV will fly towards this waypoint.</description>
               <field type="uint16_t" name="seq">Sequence</field>
          </message>
          <message id="43" name="MISSION_REQUEST_LIST">
               <description>Request the overall list of waypoints from the system/component.</description>
               <field type="uint8_t" name="target_system">System ID</field>
               <field type="uint8_t" name="target_component">Component ID</field>
          </message>
          <message id="44" name="MISSION_COMMAND_COUNT">
               <description>This message is emitted as response to WAYPOINT_REQUEST_LIST by the MAV. The GCS can then request the individual waypoints based on the knowledge of the total number of waypoints.</description>
               <field type="uint8_t" name="target_system">System ID</field>
               <field type="uint8_t" name="target_component">Component ID</field>
               <field type="uint16_t" name="count">Number of Waypoints in the Sequence</field>
          </message>
          <message id="45" name="MISSION_COMMAND_CLEAR_ALL">
               <description>Delete all waypoints at once.</description>
               <field type="uint8_t" name="target_system">System ID</field>
               <field type="uint8_t" name="target_component">Component ID</field>
          </message>
          <message id="46" name="MISSION_COMMAND_REACHED">
               <description>A certain waypoint has been reached. The system will either hold this position (or circle on the orbit) or (if the autocontinue on the WP was set) continue to the next waypoint.</description>
               <field type="uint16_t" name="seq">Sequence</field>
          </message>
          <message id="47" name="MISSION_COMMAND_ACK">
               <description>Ack message during waypoint handling. The type field states if this message is a positive ack (type=0) or if an error happened (type=non-zero).</description>
               <field type="uint8_t" name="target_system">System ID</field>
               <field type="uint8_t" name="target_component">Component ID</field>
               <field type="uint8_t" name="type">0: OK, 1: Error</field>
          </message>
          <message id="62" name="NAV_CONTROLLER_OUTPUT">
               <description>Outputs of the APM navigation controller. The primary use of this message is to check the response and signs
                of the controller before actual flight and to assist with tuning controller parameters 
            </description>
               <field type="float" name="nav_roll">Current desired roll in degrees</field>
               <field type="float" name="nav_pitch">Current desired pitch in degrees</field>
               <field type="int16_t" name="nav_bearing">Current desired heading in degrees</field>
               <field type="int16_t" name="target_bearing">Bearing to current waypoint/target in degrees</field>
               <field type="uint16_t" name="wp_dist">Distance to active waypoint in meters</field>
               <field type="float" name="alt_error">Current altitude error in meters</field>
               <field type="float" name="aspd_error">Current airspeed error in meters/second</field>
               <field type="float" name="xtrack_error">Current crosstrack error on x-y plane in meters</field>
          </message>
          <message id="63" name="POSITION_TARGET">
               <description>The goal position of the system. This position is the input to any navigation or path planning algorithm and does NOT represent the current controller setpoint.</description>
               <field type="float" name="x">x position</field>
               <field type="float" name="y">y position</field>
               <field type="float" name="z">z position</field>
               <field type="float" name="yaw">yaw orientation in radians, 0 = NORTH</field>
          </message>
          <message id="64" name="STATE_CORRECTION">
               <description>Corrects the systems state by adding an error correction term to the position and velocity, and by rotating the attitude by a correction angle.</description>
               <field type="float" name="xErr">x position error</field>
               <field type="float" name="yErr">y position error</field>
               <field type="float" name="zErr">z position error</field>
               <field type="float" name="rollErr">roll error (radians)</field>
               <field type="float" name="pitchErr">pitch error (radians)</field>
               <field type="float" name="yawErr">yaw error (radians)</field>
               <field type="float" name="vxErr">x velocity</field>
               <field type="float" name="vyErr">y velocity</field>
               <field type="float" name="vzErr">z velocity</field>
          </message>
          <message id="66" name="REQUEST_DATA_STREAM">
               <field type="uint8_t" name="target_system">The target requested to send the message stream.</field>
               <field type="uint8_t" name="target_component">The target requested to send the message stream.</field>
               <field type="uint8_t" name="req_stream_id">The ID of the requested data stream</field>
               <field type="uint16_t" name="req_message_rate">The requested interval between two messages of this type</field>
               <field type="uint8_t" name="start_stop">1 to start sending, 0 to stop sending.</field>
          </message>
          <message id="67" name="DATA_STREAM">
               <field type="uint8_t" name="stream_id">The ID of the requested data stream</field>
               <field type="uint16_t" name="message_rate">The requested interval between two messages of this type</field>
               <field type="uint8_t" name="on_off">1 stream is enabled, 0 stream is stopped.</field>
          </message>
          <message id="69" name="MANUAL_CONTROL">
               <field type="uint8_t" name="target">The system to be controlled</field>
               <field type="float" name="roll">roll</field>
               <field type="float" name="pitch">pitch</field>
               <field type="float" name="yaw">yaw</field>
               <field type="float" name="thrust">thrust</field>
               <field type="uint8_t" name="roll_manual">roll control enabled auto:0, manual:1</field>
               <field type="uint8_t" name="pitch_manual">pitch auto:0, manual:1</field>
               <field type="uint8_t" name="yaw_manual">yaw auto:0, manual:1</field>
               <field type="uint8_t" name="thrust_manual">thrust auto:0, manual:1</field>
          </message>
          <message id="70" name="RC_CHANNELS_OVERRIDE">
               <description>The RAW values of the RC channels sent to the MAV to override info received from the RC radio. A value of -1 means no change to that channel. A value of 0 means control of that channel should be released back to the RC radio. The standard PPM modulation is as follows: 1000 microseconds: 0%, 2000 microseconds: 100%. Individual receivers/transmitters might violate this specification.</description>
               <field type="uint8_t" name="target_system">System ID</field>
               <field type="uint8_t" name="target_component">Component ID</field>
               <field type="uint16_t" name="chan1_raw">RC channel 1 value, in microseconds</field>
               <field type="uint16_t" name="chan2_raw">RC channel 2 value, in microseconds</field>
               <field type="uint16_t" name="chan3_raw">RC channel 3 value, in microseconds</field>
               <field type="uint16_t" name="chan4_raw">RC channel 4 value, in microseconds</field>
               <field type="uint16_t" name="chan5_raw">RC channel 5 value, in microseconds</field>
               <field type="uint16_t" name="chan6_raw">RC channel 6 value, in microseconds</field>
               <field type="uint16_t" name="chan7_raw">RC channel 7 value, in microseconds</field>
               <field type="uint16_t" name="chan8_raw">RC channel 8 value, in microseconds</field>
          </message>
155
                    <message id="74" name="VFR_HUD">
LM's avatar
LM committed
156 157 158 159 160 161 162
               <description>Metrics typically displayed on a HUD for fixed wing aircraft</description>
               <field type="float" name="airspeed">Current airspeed in m/s</field>
               <field type="float" name="groundspeed">Current ground speed in m/s</field>
               <field type="int16_t" name="heading">Current heading in degrees, in compass units (0..360, 0=north)</field>
               <field type="uint16_t" name="throttle">Current throttle setting in integer percent, 0 to 100</field>
               <field type="float" name="alt">Current altitude (MSL), in meters</field>
               <field type="float" name="climb">Current climb rate in meters/second</field>
163
          </message>          
LM's avatar
LM committed
164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297
          <!--
          <message id="80" name="MISSION_ITEM">
          	   <description>One mission element following the MAV_CMD enumeration</description>
          	   <field type="uint8_t" name="target_system">System ID</field>
               <field type="uint8_t" name="target_component">Component ID</field>
               <field type="uint16_t" name="id">ID</field>
               <field type="uint16_t" name="id">Total count (size of total mission)</field>
               <field type="uint8_t" name="frame">The coordinate system of the waypoint. see MAV_FRAME in mavlink_types.h</field>
               <field type="uint8_t" name="command">The scheduled action for the waypoint. see MAV_COMMAND in common.xml MAVLink specs</field>
               <field type="uint8_t" name="current">false:0, true:1</field>
               <field type="uint8_t" name="autocontinue">autocontinue to next wp</field>
               <field type="float" name="param1">PARAM1 / For NAV command waypoints: Radius in which the waypoint is accepted as reached, in meters</field>
               <field type="float" name="param2">PARAM2 / For NAV command waypoints: Time that the MAV should stay inside the PARAM1 radius before advancing, in milliseconds</field>
               <field type="float" name="param3">PARAM3 / For LOITER command waypoints: Orbit to circle around the waypoint, in meters. If positive the orbit direction should be clockwise, if negative the orbit direction should be counter-clockwise.</field>
               <field type="float" name="param4">PARAM4 / For NAV and LOITER command waypoints: Yaw orientation in degrees, [0..360] 0 = NORTH</field>
               <field type="float" name="x">PARAM5 / local: x position, global: latitude</field>
               <field type="float" name="y">PARAM6 / y position: global: longitude</field>
               <field type="float" name="z">PARAM7 / z position: global: altitude</field>
          </message>
          <message id="81" name="MISSION_ACK">
               <description>ACK / NACK for one mission element or a whole mission</description>
          	   <field type="uint8_t" name="target_system">System ID</field>
               <field type="uint8_t" name="target_component">Component ID</field>
               <field type="uint8_t" name="mission_status"></field>
               <field type="uint16_t" name="begin_item"></field>
               <field type="uint16_t" name="end_item"></field>
               <field type="uint8_t" name="packet_seq"></field>
          </message>
          <message id="82" name="MISSION_REQUEST">
               <description>One mission element following the MAV_CMD enumeration</description>
          	   <field type="uint8_t" name="target_system">System ID</field>
               <field type="uint8_t" name="target_component">Component ID</field>
               <field type="uint8_t" name="mission_command">Command id: 0: read whole mission, 1: read mission from begin to end, 2: write mission items from begin to end, 3: clear mission.</field>
               <field type="uint16_t" name="begin_item"></field>
               <field type="uint16_t" name="end_item"></field>
          </message> -->
                    <message id="90" name="HIL_STATE">
            <description>Sent from simulation to autopilot. This packet is useful for high throughput
                applications such as hardware in the loop simulations.
            </description>
            <field type="uint64_t" name="time_us">Timestamp (microseconds since UNIX epoch or microseconds since system boot)</field>
            <field type="float" name="roll">Roll angle (rad)</field>
            <field type="float" name="pitch">Pitch angle (rad)</field>
            <field type="float" name="yaw">Yaw angle (rad)</field>
            <field type="float" name="rollspeed">Roll angular speed (rad/s)</field>
            <field type="float" name="pitchspeed">Pitch angular speed (rad/s)</field>
            <field type="float" name="yawspeed">Yaw angular speed (rad/s)</field>
            <field type="int32_t" name="lat">Latitude, expressed as * 1E7</field>
            <field type="int32_t" name="lon">Longitude, expressed as * 1E7</field>
            <field type="int32_t" name="alt">Altitude in meters, expressed as * 1000 (millimeters)</field>
            <field type="int16_t" name="vx">Ground X Speed (Latitude), expressed as m/s * 100</field>
            <field type="int16_t" name="vy">Ground Y Speed (Longitude), expressed as m/s * 100</field>
            <field type="int16_t" name="vz">Ground Z Speed (Altitude), expressed as m/s * 100</field>
            <field type="int16_t" name="xacc">X acceleration (mg)</field>
            <field type="int16_t" name="yacc">Y acceleration (mg)</field>
            <field type="int16_t" name="zacc">Z acceleration (mg)</field>
        </message>
        <message id="91" name="HIL_CONTROLS">
            <description>Sent from autopilot to simulation. Hardware in the loop control outputs</description>
            <field name="time_us" type="uint64_t">Timestamp (microseconds since UNIX epoch or microseconds since system boot)</field>
            <field name="roll_ailerons" type="float">Control output -1 .. 1</field>
            <field name="pitch_elevator" type="float">Control output -1 .. 1</field>
            <field name="yaw_rudder" type="float">Control output -1 .. 1</field>
            <field name="throttle" type="float">Throttle 0 .. 1</field>
            <field name="aux1" type="float">Aux 1, -1 .. 1</field>
            <field name="aux2" type="float">Aux 2, -1 .. 1</field>
            <field name="aux3" type="float">Aux 3, -1 .. 1</field>
            <field name="aux4" type="float">Aux 4, -1 .. 1</field>
            <field name="mode" type="uint8_t">System mode (MAV_MODE)</field>
            <field name="nav_mode" type="uint8_t">Navigation mode (MAV_NAV_MODE)</field>
        </message>
        <message id="92" name="HIL_RC_INPUTS_RAW">
               <description>Sent from simulation to autopilot. The RAW values of the RC channels received. The standard PPM modulation is as follows: 1000 microseconds: 0%, 2000 microseconds: 100%. Individual receivers/transmitters might violate this specification.</description>
               <field type="uint64_t" name="time_us">Timestamp (microseconds since UNIX epoch or microseconds since system boot)</field>
               <field type="uint16_t" name="chan1_raw">RC channel 1 value, in microseconds</field>
               <field type="uint16_t" name="chan2_raw">RC channel 2 value, in microseconds</field>
               <field type="uint16_t" name="chan3_raw">RC channel 3 value, in microseconds</field>
               <field type="uint16_t" name="chan4_raw">RC channel 4 value, in microseconds</field>
               <field type="uint16_t" name="chan5_raw">RC channel 5 value, in microseconds</field>
               <field type="uint16_t" name="chan6_raw">RC channel 6 value, in microseconds</field>
               <field type="uint16_t" name="chan7_raw">RC channel 7 value, in microseconds</field>
               <field type="uint16_t" name="chan8_raw">RC channel 8 value, in microseconds</field>
               <field type="uint16_t" name="chan9_raw">RC channel 9 value, in microseconds</field>
               <field type="uint16_t" name="chan10_raw">RC channel 10 value, in microseconds</field>
               <field type="uint16_t" name="chan11_raw">RC channel 11 value, in microseconds</field>
               <field type="uint16_t" name="chan12_raw">RC channel 12 value, in microseconds</field>
               <field type="uint8_t" name="rssi">Receive signal strength indicator, 0: 0%, 255: 100%</field>
          </message>
          <message id="100" name="OPTICAL_FLOW">
               <description>Optical flow from a flow sensor (e.g. optical mouse sensor)</description>
               <field type="uint64_t" name="time">Timestamp (UNIX)</field>
               <field type="uint8_t" name="sensor_id">Sensor ID</field>
               <field type="int16_t" name="flow_x">Flow in pixels in x-sensor direction</field>
               <field type="int16_t" name="flow_y">Flow in pixels in y-sensor direction</field>
               <field type="uint8_t" name="quality">Optical flow quality / confidence. 0: bad, 255: maximum quality</field>
               <field type="float" name="ground_distance">Ground distance in meters</field>
          </message>
          <!-- MESSAGE IDs 150 - 240: Space for custom messages in individual projectname_messages.xml files -->
          <message id="250" name="MEMORY_VECT">
               <description>Send raw controller memory. The use of this message is discouraged for normal packets, but a quite efficient way for testing new messages and getting experimental debug output.</description>
               <field type="uint16_t" name="address">Starting address of the debug variables</field>
               <field type="uint8_t" name="ver">Version code of the type variable. 0=unknown, type ignored and assumed int16_t. 1=as below</field>
               <field type="uint8_t" name="type">Type code of the memory variables. for ver = 1: 0=16 x int16_t, 1=16 x uint16_t, 2=16 x Q15, 3=16 x 1Q14</field>
               <field type="int8_t[32]" name="value">Memory contents at specified address</field>
          </message>
          <message id="251" name="DEBUG_VECT">
               <field type="char[10]" name="name">Name</field>
               <field type="uint64_t" name="usec">Timestamp</field>
               <field type="float" name="x">x</field>
               <field type="float" name="y">y</field>
               <field type="float" name="z">z</field>
          </message>
          <message id="252" name="NAMED_VALUE_FLOAT">
               <description>Send a key-value pair as float. The use of this message is discouraged for normal packets, but a quite efficient way for testing new messages and getting experimental debug output.</description>
               <field type="char[10]" name="name">Name of the debug variable</field>
               <field type="float" name="value">Floating point value</field>
          </message>
          <message id="253" name="NAMED_VALUE_INT">
               <description>Send a key-value pair as integer. The use of this message is discouraged for normal packets, but a quite efficient way for testing new messages and getting experimental debug output.</description>
               <field type="char[10]" name="name">Name of the debug variable</field>
               <field type="int32_t" name="value">Signed integer value</field>
          </message>
          <message id="254" name="STATUSTEXT">
               <description>Status text message. These messages are printed in yellow in the COMM console of QGroundControl. WARNING: They consume quite some bandwidth, so use only for important status and error messages. If implemented wisely, these messages are buffered on the MCU and sent only at a limited rate (e.g. 10 Hz).</description>
               <field type="uint8_t" name="severity">Severity of status, 0 = info message, 255 = critical fault</field>
               <field type="char[50]" name="text">Status text message, without null termination character</field>
          </message>
          <message id="255" name="DEBUG">
               <description>Send a debug value. The index is used to discriminate between values. These values show up in the plot of QGroundControl as DEBUG N.</description>
               <field type="uint8_t" name="ind">index of debug variable</field>
               <field type="float" name="value">DEBUG value</field>
          </message>
     </messages>
</mavlink>