Reverse Tricopter-VTOL Plane

arduplane.apj (910.5 KB)

I have re-based on master, just set Q_FRAME_TYPE to 6 for MOTOR_FRAME_TYPE_PLUSREV

1 Like

Thanks a million Peter, just in time :smile:



Everything is soldered and just connected the battery for the first time. No smoke signals :grinning:
Tomorrow I want to install the firmware.

Rolf

1 Like

@iampete
Just to be sure before the first hovertests

  • are these engine positions correct ?

motornr

yep, looks good.

The two rear motor tilt outputs would be M7

yep. I hope it doesn’t matter that it’s nominally a motor output because I switched the motor outputs to Dshot. If not, I have to switch the motorutputs to PWM.

For the first hover-tests we have vectored yaw enabled - with a little trick:

Our rear servo mechanics tilts the motors at PWM values between 1100µs and 1900µs by +/- 45°. The rear servos of course can not tilt the engine completely forward, but the software does not know. You simply have to set SERVOn_MIN down to a suitable “virtual” value, as in the following example:

On the bench it works (QSTABILIZE):

Unfortunately, in one of the tests, a mechanical failure caused the front servo to break. Better on the ground than later in the air. It will take a few days until a new servo is installed.

1 Like

The servo problem is almost resolved, but the weather is too bad for test flights. @Walter used the bad weather to finish the wings.
IMG_9815

After repair of the servomechanics we wanted to complete the first hoverfly in qstabilize today.

Unfortunately, the pitch regulation goes in the wrong direction. The aircraft would therefore jump over immediately after taking off. AHRS_ORIENTATION is 0, Pixhawk shows forward, Q_FRAME_TYPE is 6, Q_FRAME_CLASS is 7. PIDs are positiv. (Roll is okay).

Here is the full parameterlist:
mozart2.param (20.8 KB)

Rolf

1 Like

hum, thats strange, do you have a log?

Yes, just tried again due to the rainy weather indoor :
https://www.magentacloud.de/lnk/Evginj7b

I turned the plane by hand alternately forward and backward or to the sides.
Roll works properly, Nick stops the front engine when the nose is down (instead up)

Motor 1 (rear right) Servo9_Function=33
Motor 2 (rear left Servo10_Function=34
Motor 4 (Front) SERVO11_FUNCTION=36

not sure whats going on, the log also shows its backwards. I guess you rebooted after setting the frame class and type params?

I’m 95% sure I tested this and it worked fine in SITL Maybe you could also try in Qacro? although i doubt that will make any difference. I will double check its all working in SITL.

edit: although i tested on copter rather than plane, maybe there is a initialisation difference or something

Peter, thanks for looking over it.

Of course.

I just wanted to do that, but where and how to choose qacro?

i think its in the latest mission planner, otherwise its mode 23, you can assign it to one of the FLTMODE 's for you mode switch.

not sure what to suggest, its working perfectly for me on both copter and plane.

I tested using some of your Q_ params too, the tilt rotor stuff does not seem to make any difference.

I think I would suggest setting up as a normal tricopter first, check that that works. To do this you can change your AHRS rotation to 4 for yaw 180 and swap M1 and M2. (and set your Q_FRAME_TYPE to zero). You could even do this on the stable release to make sure there is nothing odd in my code.

That should fly, then flash back to the new code and changing to Q_FRAME_TYPE 6 should cause it not to fly because of reversed pitch. (but check it does fly before you change it).

Hi Peter,

With your code an flghtmode=23, the control for the front engine is also incorrect.

The motor control works fine with the settings for a “normal” Tricopter VTOL
(Q_FRAME_CLASS = 7 for Tri, Q_FRAME_TYPE = 1 for x) and AHRS_ORIENTATION = 4 ( because the the single motor is in the tail.)
It works both with normal AP 3.9.8 stable and after flashing back to the new code.

But as soon as AHRS_ORIENTATION = 0, Q_FRAME_CLASS = 7 for Tri, Q_FRAME_TYPE = 6 for invers tri, the regulation for motor 4 (front engine) is wrong again. Roll is always ok.

Rolf

you should also have to swap the left and right motors?

I’m stumped, Do you have a log of the new code as a normal tricopter and as a reversed tricopter?

Is it enough if I systematically record log/tlog files with the new code
a) as normal tricopter (AHRS_ORIENTATION 4, Q_FRAME_TYPE 1)
b) and reverse tricopter (AHRS_ORIENTATION 0, Q_FRAME_TYPE 6)
both during pitchup / down motion by hand ?

If you want, I do the whole thing for the roll axis also, but the roll axis motor regulation works in all cases…

I could do it tomorrow.

great, did you also have to swap the roll motors when changing the orientation? otherwise I suspect that is your issue.

Of course, what was right before, is left. (We changed the direction of travel like a tram) :wink:

Pitch regulation is the problem:
Regarding roll, the power control of the rear engines works well, regarding pitch, the power control has the same malfunction as the front motor (speed increase if it should decrease and vice versa)

Though I better check :wink: ,

as I say i’m pretty stumped, maybe you could reset to defaults and setup the minimum required to try the tricopter, ie set Q_enable and the there motor outputs and the tilt