Module/collective tracking control

From PaparazziUAV
Revision as of 04:04, 29 October 2019 by Noether (talk | contribs)
Jump to navigation Jump to search

Introduction

This module/algorithm allows a team of aircraft (they can fly at different speeds) to track a (possibly moving) target. In particular, the centroid of the team converges to the target as it is shown in the following screenshots

Ctc mission.png

Custom messages

The module needs all-to-all communication (including the target). The following messages need to be included in your messages.xml.

These messages go in the telemetry section of messages.xml. The CTC_CONTROL message is just for telemetry porpuses.

    <message name="CTC" id="37">
      <field name="table" type="int16[]"/>
    </message>

    <message name="CTC_INFO_FROM_TARGET" id="40">
      <field name="px" type="float"/>
      <field name="py" type="float"/>
      <field name="vx" type="float"/>
      <field name="vy" type="float"/>
    </message>

    <message name="CTC_CONTROL" id="211">
        <field name="v_centroid_x" type="float" unit="m"/>
	<field name="v_centroid_y" type="float" unit="m"/>
	<field name="target_vx" type="float" unit="m/s"/>
	<field name="target_vy" type="float" unit="m/s"/>
	<field name="target_px" type="float" unit="m"/>
	<field name="target_py" type="float" unit="m"/>
	<field name="ref_px" type="float" unit="m"/>
	<field name="ref_py" type="float" unit="m"/>
    </message>

    <message name="CTC_INFO_TO_NEI" id="255">
        <field name="vx" type="float"/>
        <field name="vy" type="float"/>
        <field name="px" type="float"/>
        <field name="py" type="float"/>
    </message>

These messages go in the datalink section of messages.xml. They are necessary to init the algorithm from the ground control station.

    <message name="CTC_REG_TABLE" id="160" link="forwarded">
        <field name="ac_id" type="uint8"/>
        <field name="nei_id" type="uint8"/>
    </message>

    <message name="CTC_CLEAN_TABLE" id="161" link="forwarded">
        <field name="ac_id" type="uint8"/>
    </message>

Python Simulation

One can run a Python simulation in ./paparazzi/sw/ground_segment/python/collective_tracking_control/ctc_simulation.py