mirror of
https://github.com/paparazzi/paparazzi.git
synced 2026-05-09 22:49:53 +08:00
789437978d
* [swarm] add formation control for rotorcraft Based on Ewoud Smeur (INDI) and Hector Garcia de Marina (Formation control) work. See https://blog.paparazziuav.org/2017/12/02/pilot-a-super-rotorcraft - several UAV can be control from the ground (using a joystick for instance) by sending proper acceleration setpoint to the INDI guidance controller - configuration of the formation is done from a JSON file (2 example files provided) Some extra changes: - update accel from IMU in GPS passthrough INS - add accel setpoint to ABI messages - by to accel setpoint in INDI guidance - send ground reference from natnet2ivy - possibility to have a joystick labeled 'GCS' with input2ivy
162 lines
6.3 KiB
XML
162 lines
6.3 KiB
XML
<?xml version="1.0"?>
|
|
<!DOCTYPE protocol SYSTEM "abi.dtd">
|
|
<protocol>
|
|
|
|
<msg_class name="airborne">
|
|
|
|
<message name="BARO_ABS" id="0">
|
|
<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="distance" type="float" unit="m"/>
|
|
</message>
|
|
|
|
<message name="TEMPERATURE" id="3">
|
|
<field name="temp" type="float" unit="deg Celcius"/>
|
|
</message>
|
|
|
|
<message name="IMU_GYRO_INT32" id="4">
|
|
<field name="stamp" type="uint32_t" unit="us"/>
|
|
<field name="gyro" type="struct Int32Rates *"/>
|
|
</message>
|
|
|
|
<message name="IMU_ACCEL_INT32" id="5">
|
|
<field name="stamp" type="uint32_t" unit="us"/>
|
|
<field name="accel" type="struct Int32Vect3 *"/>
|
|
</message>
|
|
|
|
<message name="IMU_MAG_INT32" 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="BODY_TO_IMU_QUAT" id="8">
|
|
<field name="q_b2i_f" type="struct FloatQuat *"/>
|
|
</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="int16_t">Flow in x direction from the camera (in subpixels)</field>
|
|
<field name="flow_y" type="int16_t">Flow in y direction from the camera (in subpixels)</field>
|
|
<field name="flow_der_x" type="int16_t">The derotated flow calculation in the x direction (in subpixels)</field>
|
|
<field name="flow_der_y" type="int16_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="RPM" id="15">
|
|
<field name="rpm" type="uint16_t *" unit="rpm"/>
|
|
<field name="num_act" type="uint8_t"/>
|
|
</message>
|
|
|
|
<message name="THRUST" id="16">
|
|
<field name="thrust_increment" type="float" 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"/>
|
|
</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>
|
|
|
|
</msg_class>
|
|
|
|
</protocol>
|