Recently, I have been trying to fly a delta wing (elevon) in X-Plane.
To add elevon control, I initially added both aileron and elevator control surfaces at the same time.
It worked well, but I have some concerns about the ArduPilot connection.
In the xplane_plane.json file, we normally use the following configuration:
# XPlane DREF map
{
"settings" : { "debug" : 0 },
"sim/operation/override/override_joystick" : { "type" : "fixed", "value" : 1 },
"sim/operation/override/override_throttles" : { "type" : "fixed", "value" : 1 },
"sim/flightmodel/engine/ENGN_thro_use[0]" : { "type" : "range", "range" : 1, "channel" : 3 },
"sim/joystick/yoke_roll_ratio" : { "type" : "angle", "range" : 1, "channel" : 1 },
"sim/joystick/yoke_pitch_ratio" : { "type" : "angle", "range" : 1, "channel" : 2 },
"sim/joystick/yoke_heading_ratio" : { "type" : "angle", "range" : 1, "channel" : 4 },
This configuration works fine for many aircraft include elevon planes.
However, the problem is that X-Plane performs its own servo mixing, which prevents us from configuring servos in ArduPilot as we would on real hardware.
To make the simulation more realistic, I modified the file as follows:
{
"settings" : { "debug" : 0 },
"sim/operation/override/override_throttles" : { "type" : "fixed", "value" : 1 },
"sim/operation/override/override_control_surfaces" : { "type":"fixed", "value": 1 },
"sim/flightmodel/engine/ENGN_thro_use[0]" : { "type" : "range", "range" : 1, "channel" : 3 },
"sim/flightmodel2/wing/aileron1_deg[0]" : { "type" : "angle", "range" : 1, "channel" : 1 },
"sim/flightmodel2/wing/aileron1_deg[1]" : { "type" : "angle", "range" : 1, "channel" : 2 }
}
Visually, it seems to work well — the servos move correctly.
However, after these adjustments, the plane is unable to fly.
Did I miss something?
Does ArduPilot support overriding control surfaces?
X-Plane Version: 11.55


