Description
Current Behavior
Since we are now (soon™) getting affordable ADSB Receivers that can be installed in our Aircraft (ADSBee working on a tiny open source receiver and PicoADSB is in Pre-Release state) for around/less than 100$ it would be a shame to just use them for OSD info alone. With the Geozone Functionality implemented in INAV 8.0, we could combine these features into an automated aircraft avoidance system.
Desired Behavior
INAV can track the 4 closest Aircraft, that it sees on the ADSB datastream. We could automatically generate a No Fly Zone in a triangle shape with upper and higher limits based on these aircraft, so INAV can either show the pilot what way to fly to avoid or even take control and execute an automated avoidance maneuver.
Suggested Solution
The closest ADSB contact will generate a NFZ around itself. This could be a isosceles triangle with the ADSB contact sitting at the base. The triangle would point into the flight direction of that ADSB contact and its size would be determined by the speed of the contact.
The length should be determined by the covered distance in a given time, to prevent unnecessary early avoidance of far away planes and avoid too late intervention. 30s could be a reasonable time frame. That means, a plane that flies at 300kph, the triangle NFZ would be 2.5km in front of that plane. This would even give a slow fixed wing UAV at 50kph enough time to reach more than 500m separation to either side.
The baseline of the NFZ triangle should be 1km long at least but could be bigger, based on a certain percentage of the length. Maybe 1/5th of the length could then be the baseline length. The Zone is Updated every 5 or 10 seconds to avoid quick and erratic changes on somewhat unprecise data.
Altitude should also be taken into account to prevent unnecessary avoidance maneuvers caused by ADSB contacts high above the UAV. The upper and lower limit should be at least 300m of vertical separation relative to the UAV altitude. This could be extended the same way as the speed variation based on climb rates. Here the climb rate would be simply added to the 300m separation.
If the ADSB Contact flies at constant altitude, the FZ will have a lower ceiling of ADSB Altitude -300m and a upper ceiling of ADSB Alt +300m. If the ADSB Contact is Descending at 1000ft/min or ~300m/min then the lower ceiling gets extended to -600m below ADSB Altitude. Same for upper ceiling.
If ADSB avoidance kicks in while pilot has control (Angle, Horizon, Cruise, Course hold modes), the pilot can gain back control like in Geozones, after 5s, by moving the control sticks.
Differences to fixed Geozones:
- Vehicle avoidance must also take control of the Aircraft when in Waypoint mode. Waypoint mode gets paused until the airspace is clear again and then the mission can continue.
- Vehicle avoidance will never try to overfly a ADSB based NFZ. Only horizontal avoidance
- If the pilot pushes towards a ADSB NFZ from top or below, it will bounce of as it does for Geozones but if the NFZ space is breached, INAV will go into horizontal avoidance only.
- Vehicle avoidance will not take over control when below a certain configurable relative altitude (for example when below legal limits of 120m from launch) to avoid the system to crash into a hill or trees on autonomous low altitude missions or low flying cruise/angle modes.
Who does this impact? Who is this for?
Every long range pilot flying in somewhat busy or unpredictable airspace. Also great for commercial use with long missions like mapping, search and rescue or other BVLOS operations.