Difference between revisions of "MultiUAV"

From PaparazziUAV
Jump to navigation Jump to search
(source lang to xml)
 
(10 intermediate revisions by 4 users not shown)
Line 16: Line 16:
* alt_setpoint is bounded by (ground_alt + security_height)
* alt_setpoint is bounded by (ground_alt + security_height)
The control of the TCAS will be active until the conflict is solved, no longer exist or a timeout occurs.
The control of the TCAS will be active until the conflict is solved, no longer exist or a timeout occurs.
On top of this, the resolution is sent to the conflicting UAV (relayed by the ground). In case of conflict on the first resolution (ex: the 2 UAVs are climbing), one of them will decide to change its decision.
[[File:tcas_nego.png]]


=== Activate TCAS service ===
=== Activate TCAS service ===


The traffic_info service must be activated with the TCAS:
The ¨traffic_info¨ service must be activated with a specific TCAS compile flag; '''TRAFFIC_INFO'''  This service is activated by default for fixed wing aircraft and is not implemented yet on rotorcraft.
 
The TCAS is activated by loading the appropriate module in the '''modules''' section (see [[Modules]] page):
 
<source lang="xml">
  <load name="tcas.xml"/>
</source>


  ap.CFLAGS += -DTRAFFIC_INFO -DTCAS
Note that:
  ap.srcs += traffic_info.c tcas.c


The TCAS system is operational only in AUTO2 and in altitude mode. The system is inhibited under the security height.
* The TCAS system is operational '''only''' in '''AUTO2''' and in '''altitude mode'''.  
* The system is '''inhibited under the security height'''.


=== Configuration ===
=== Configuration ===


Add a Configuration block like this in all your airframe configuration XML document
<source lang="xml">
   <section name="TCAS" prefix="TCAS_">
   <section name="TCAS" prefix="TCAS_">
     <define name="TAU_TA" value="10." unit="s"/> <!-- traffic advisory -->
     <define name="TAU_TA" value="10." unit="s"/> <!-- traffic advisory -->
     <define name="TAU_RA" value="6." unit="s"/> <!-- resolution advisory -->
     <define name="TAU_RA" value="6." unit="s"/> <!-- resolution advisory -->
     <define name="ALIM" value="15." unit="m"/> <!-- altitude limit -->
     <define name="ALIM" value="15." unit="m"/> <!-- altitude limit -->
    <define name="DMOD" value="10." unit="m"/> <!-- distance modification -->
     <define name="DT_MAX" value="2000" unit="ms"/> <!-- lost comm or timeout -->
     <define name="DT_MAX" value="2000" unit="ms"/> <!-- lost comm or timeout -->
   </section>
   </section>
</source>
Explanation of parameters:


* '''TAU_TA''': traffic advisory in second. A warning message is send to the ground and displayed in the alert page of the GCS if the estimated time before a collision is below TAU_TA. Default = 2*CARROT.
* '''TAU_TA''': traffic advisory in second. A warning message is send to the ground and displayed in the alert page of the GCS if the estimated time before a collision is below TAU_TA. Default = 2*CARROT.
* '''TAU_RA''': resolution advisory in second. A warning message is send to the ground (+ display in GCS) and the system takes control over the altitude setpoint of the vertical loop if the estimated time before a collision is below TAU_RA. Default = CARROT.
* '''TAU_RA''': resolution advisory in second. A warning message is send to the ground (+ display in GCS) and the system takes control over the altitude setpoint of the vertical loop if the estimated time before a collision is below TAU_RA. Default = CARROT.
* '''ALIM''': altitude limit in meters. The minimum vertical separation between two aircraft. Default = 10.
* '''ALIM''': altitude limit in meters. The minimum vertical separation between two aircraft. Default = 10.
* '''DMOD''': distance modification in meters. The distance below which RA are triggered (avoid to have two aircraft getting really close because their relative speed is too small to trigger alarms). Default = 10.
* '''DT_MAX''': lost comm or timeout in ms. Timeout to interrupt a TA or an RA if data are not received. Default = 1500.
* '''DT_MAX''': lost comm or timeout in ms. Timeout to interrupt a TA or an RA if data are not received. Default = 1500.


== Formation Flight ==
[[Image:Multi_uav_gcs.png|thumb|400px|Trajectories of 2 UAVs using the TCAS system]]
A basic formation flight control can be activated by load the appropriate module
<source lang="xml">
  <load name="formation_flight.xml"/>
</source>
This service can be used together with the [[MultiUAV#TCAS|TCAS]] service (unless you are very confident with your control gains...)
=== Configuration ===
<source lang="xml">
  <section name="FORMATION" prefix="FORM_">
    <define name="CARROT" value="3." unit="s"/> <!-- carrot distance for followers -->
    <define name="POS_PGAIN" value="0.02"/> <!-- coef on position error -->
    <define name="SPEED_PGAIN" value="0.4"/> <!-- coef on speed error -->
    <define name="COURSE_PGAIN" value="0.8"/> <!-- coef on course error (override course pgain for followers) -->
    <define name="ALTITUDE_PGAIN" value="0.1"/> <!-- coef on altitude error -->
    <define name="PROX" value="60." unit="m"/> <!-- proximity distance -->
    <define name="MODE" value="0"/> <!-- mode 0 = global, 1 = local -->
  </section>
</source>
* '''CARROT''': Default = 0.
* '''POS_PGAIN''': Default = 0.
* '''SPEED_PGAIN''': Default = 0.
* '''COURSE_PGAIN''': UNUSED
* '''ALTITUDE_PGAIN''': Default = 0.
* '''PROX''': only A/C at the same level are taken into account. Default = 20.
* '''MODE''': positions are global (earth frame) or local (leader frame). Default = GLOBAL
=== Settings ===
A setting file can be added to change dynamically the above parameters: conf/settings/formation.xml
<source lang="xml">
  <dl_settings name="formation">
  <dl_setting MAX="24" MIN="0" STEP="1" VAR="leader_id" module="multi/formation"/>
  <dl_setting MAX="1" MIN="0" STEP="0.01" VAR="coef_form_pos" module="multi/formation"/>
  <dl_setting MAX="1" MIN="0" STEP="0.01" VAR="coef_form_speed" module="multi/formation"/>
  <dl_setting MAX="1" MIN="0" STEP="0.01" VAR="coef_form_course" module="multi/formation"/>
  <dl_setting MAX="1" MIN="0" STEP="0.01" VAR="coef_form_alt" module="multi/formation"/>
  <dl_setting MAX="1" MIN="0" STEP="1" VAR="form_mode" module="multi/formation" values="GLOBAL|LOCAL"/>
  </dl_settings>
</source>
=== Flight plan ===
The formation flight service is used with proper function calls in the [[Flight_Plans|flight plan]]. Examples can be found in conf/flight_plans/form_leader.xml and conf/flight_plans/form_follow.xml
The leader is in charge of the global trajectory of the formation, while the followers are only following the leader.


== Formation Flight ==


Coming soon
[[Category:Software]] [[Category:Projects]] [[Category:Modules]]

Latest revision as of 13:41, 24 September 2014

WARNING: the functionalities described in this section are experimental and have never been fully tested. Use with care !


TCAS

Principle

Trajectories of 2 UAVs using the TCAS system

The TCAS (Traffic Collision Avoidance System) is used on civil aircraft to reduce the incidence of mid-air collisions. The principle is to monitor the airspace around the aircraft, warn the pilot and provide conflict resolution indication. For the Paparazzi system, a light version of a TCAS-inspired system has been implemented. It can send warning to the ground station and if nothing is done, it takes control of the vertical loop in order to have a minimum vertical separation. This TCAS monitors all the aircrafts based on the traffic information send by the Server and it resolve conflicts only with one aircraft at a time.

When the system detects a possible collision, the TCAS logic follows the rules:

  • if other_AC_alt > AC_alt + alt_limit then the AC goes down (alt_setpoint = MIN(nav_alt, other_AC_alt - alt_limit))
  • if other_AC_alt < AC_alt - alt_limit then the AC goes up (alt_setpoint = MAX(nav_alt, other_AC_alt + alt_limit))
  • else the AC with the smallest ID goes down
  • alt_setpoint is bounded by (ground_alt + security_height)

The control of the TCAS will be active until the conflict is solved, no longer exist or a timeout occurs.

On top of this, the resolution is sent to the conflicting UAV (relayed by the ground). In case of conflict on the first resolution (ex: the 2 UAVs are climbing), one of them will decide to change its decision.

Tcas nego.png

Activate TCAS service

The ¨traffic_info¨ service must be activated with a specific TCAS compile flag; TRAFFIC_INFO This service is activated by default for fixed wing aircraft and is not implemented yet on rotorcraft.

The TCAS is activated by loading the appropriate module in the modules section (see Modules page):

  <load name="tcas.xml"/>

Note that:

  • The TCAS system is operational only in AUTO2 and in altitude mode.
  • The system is inhibited under the security height.

Configuration

Add a Configuration block like this in all your airframe configuration XML document

  <section name="TCAS" prefix="TCAS_">
    <define name="TAU_TA" value="10." unit="s"/> <!-- traffic advisory -->
    <define name="TAU_RA" value="6." unit="s"/> <!-- resolution advisory -->
    <define name="ALIM" value="15." unit="m"/> <!-- altitude limit -->
    <define name="DMOD" value="10." unit="m"/> <!-- distance modification -->
    <define name="DT_MAX" value="2000" unit="ms"/> <!-- lost comm or timeout -->
  </section>

Explanation of parameters:

  • TAU_TA: traffic advisory in second. A warning message is send to the ground and displayed in the alert page of the GCS if the estimated time before a collision is below TAU_TA. Default = 2*CARROT.
  • TAU_RA: resolution advisory in second. A warning message is send to the ground (+ display in GCS) and the system takes control over the altitude setpoint of the vertical loop if the estimated time before a collision is below TAU_RA. Default = CARROT.
  • ALIM: altitude limit in meters. The minimum vertical separation between two aircraft. Default = 10.
  • DMOD: distance modification in meters. The distance below which RA are triggered (avoid to have two aircraft getting really close because their relative speed is too small to trigger alarms). Default = 10.
  • DT_MAX: lost comm or timeout in ms. Timeout to interrupt a TA or an RA if data are not received. Default = 1500.

Formation Flight

Trajectories of 2 UAVs using the TCAS system

A basic formation flight control can be activated by load the appropriate module

  <load name="formation_flight.xml"/>

This service can be used together with the TCAS service (unless you are very confident with your control gains...)






Configuration

  <section name="FORMATION" prefix="FORM_">
    <define name="CARROT" value="3." unit="s"/> <!-- carrot distance for followers -->
    <define name="POS_PGAIN" value="0.02"/> <!-- coef on position error -->
    <define name="SPEED_PGAIN" value="0.4"/> <!-- coef on speed error -->
    <define name="COURSE_PGAIN" value="0.8"/> <!-- coef on course error (override course pgain for followers) -->
    <define name="ALTITUDE_PGAIN" value="0.1"/> <!-- coef on altitude error -->
    <define name="PROX" value="60." unit="m"/> <!-- proximity distance -->
    <define name="MODE" value="0"/> <!-- mode 0 = global, 1 = local -->
  </section>
  • CARROT: Default = 0.
  • POS_PGAIN: Default = 0.
  • SPEED_PGAIN: Default = 0.
  • COURSE_PGAIN: UNUSED
  • ALTITUDE_PGAIN: Default = 0.
  • PROX: only A/C at the same level are taken into account. Default = 20.
  • MODE: positions are global (earth frame) or local (leader frame). Default = GLOBAL

Settings

A setting file can be added to change dynamically the above parameters: conf/settings/formation.xml

  <dl_settings name="formation">
   <dl_setting MAX="24" MIN="0" STEP="1" VAR="leader_id" module="multi/formation"/>
   <dl_setting MAX="1" MIN="0" STEP="0.01" VAR="coef_form_pos" module="multi/formation"/>
   <dl_setting MAX="1" MIN="0" STEP="0.01" VAR="coef_form_speed" module="multi/formation"/>
   <dl_setting MAX="1" MIN="0" STEP="0.01" VAR="coef_form_course" module="multi/formation"/>
   <dl_setting MAX="1" MIN="0" STEP="0.01" VAR="coef_form_alt" module="multi/formation"/>
   <dl_setting MAX="1" MIN="0" STEP="1" VAR="form_mode" module="multi/formation" values="GLOBAL|LOCAL"/>
  </dl_settings>

Flight plan

The formation flight service is used with proper function calls in the flight plan. Examples can be found in conf/flight_plans/form_leader.xml and conf/flight_plans/form_follow.xml

The leader is in charge of the global trajectory of the formation, while the followers are only following the leader.