Here a video of an autonomous flight with a Maxi Swift flying wing fully piloted by the firmware ArduPlaneNG v2.x R5 with an All In One Pro (AIOP) full IMU board.This is a porting of the ArduPlane v2 (v2.4+v2.5) firmware and special addons and improvements for the AIOP board that I have added.
The wind was 15 km/h gusting 22 km/h. The flight was very stable in spite of the gusty wind conditions.
Setup:
- IMU board: All In One Pro (AIOP) v1.0 from CRIUS,
- GPS: Crius CN-06 (Ublox NEO-6)
- AirSpeed sensor: MPXV5004DP (from a old ardupilot one shield)
- firmware ArduPlaneNG V2.x R5, porting of the ArduPlane v2 + special addons for the AIOP v1 IMU board by JLN
Flying Wing: Maxi Swift from MS Composite (1m40 wingspan)
- brushless motor Spitz 30 850 kV, 360W with a propeller GWS 10x4.5
- Lipo: 3S EVO25 2650 mAh
- Receiver: Turnigy 9X8C v2
- Transmitter: Turnigy 9x with Er9x firmware
More infos at: http://diydrones.com/profile/JeanLouisNaudin
Comments
Sticks are mixed in STAB mode always and in AUTO modes if ENABLE_STICK_MIXING parameter is set to 1.
In MANUAL mode no automatic control is added, only manual.
In RTL mode manual signal is missing, so it is not mixed to automatic one.
I just investigated firmware sourses... Stick deflections are added to servo output a bit tricky - automatic output signal is scaled down to leave place for manual signal. It seems Ok, but the algorithm is internally limited - manual signal must not exceed +-400 ms from trimmed value. I do not know why. So, don't move sticks too much...
I think you can ask developers about this limitation. Function stabilize() in Attitude.pde.
In RTL mode sticks are not mixed at all.
The problem is still persists on my plane too. In stabilized mode acceptable, altough a little bit agressive the reaction, but in RTL mode the plane very unstable, increasingly wobbly. If I tried reducing Nav roll PID-s, I can't seen any change (on the ground, I don't fly thence). I think next I will reduce the servo arm's lengt.
Я думаю так будет проще =) В режиме стабилизации:
1)сервы пытаются выровнять самолет в более-менее адекватных количествах и точно в верных направлениях.
2)тяну ручку элеватора на себя до упора - в ручном режиме сервы отрабатывают идеально, в режиме стабилизации они отклоняются практически до упора и даже пытаются разогнуть тяги.
В ручном режиме самолет летает верно и стабильно, расходы зажаты 80% руль высоты, 70% элероны. Калибровки радио в Планере проводил уже после установки всех расходов.
Спасибо за помощь!
Nav params are not used in Stabilize mode...
I try to understand... Your servos go to the edge in stab mode, or they move reasonably to compensate pitch or roll, but deflections are too big, two or three times bigger than in Manual mode ? If servos try to overturn, it's possible the orientation of APM is wrong or channels are mismatched...
Found 2 issue reports on the same topic. One and Two.
Ok, decreased P values for Servo and Nav parameters gradually - nothing changed. Then I've put 0.050 value in all of them - still no results. And - yes I didn't forget to hit 'Write Params' button. Any ideas?
2 YureZzZ:
You must tune Attitude control gains, not the limits of servos. You'll can get some non-linearities in control system and auto-oscillations or edge-freezing. Try to restore RC_* parameters to default and decrease *_P gains.
2 GrMis:
I tuned the configuration files of firmware. ArduPilot v.1 tradition :-) The code itself was not changed.
Here is the manual.
Parameters I tuned were:
#define LONG_FAILSAFE_ACTION RTL
You may forget to set the last parameter, so failsafe condition can be set, but pilot does nothing on it. I don't
know where you can set it in MissionPlanner, sorry.
Vladimir, thanks for your reply. I am ok with setting the failsafe on the TX&RX side (using trim etc., as you wrote), but I suspect that my problem is on the ArduplaneNG side: If I switch off the TX, the receiver correctly sends a throttle value (say 930) below the theshold I declared on ArduPlane (950) [I see it on the Mission Planer/radio configuration screen], but still it does not engage "RTL".
If it worked for you, maybe I did something wrong in your step #3 ? You did that using the Mission Planer ? Or directly in the arduino firmware code ? Perhaps also I did step #4 before #3. But it should not matter, right ?
-
1
-
2
-
3
-
4
-
5
of 10 Next