Tiltrotor support for plane

yes, that configuration is supported.

Elevons are for forward flight mainly, but in hover it helps the pitch a little, so I just decided to include as well. I was using COAX code because it has 2 motors and 4 servos, like in my case. I had to modify the mixing. I uploaded beta3 version to Pixhawk, but pins correspond to Plane mode: Pins 1-4 are Roll, Pitch, Throttle, Yaw. I enabled Q_ENABLE, and changed FRAME_CLASS to 7. Flight modes are all QSTABILIZE, pins still correspond to Plane mode. What other parameters do I need to activate in order to activate FRAME_CLASS = TRI?

Thank you in advance!

1 Like

so do elevons rotate as well when you tilt the motors? Or do they just have so much throw that they can be used in both VTOL and fwd flight? In that case we’d need a way to change the mid-point of the throws.
I’m sorry to be so slow in understanding the setup, I’m just having trouble visualising it. Any chance you can post some photos?

I really can’t help with the parameters until I understand the physical layout, movements and angles of the aircraft. Right now I’m still baffled!

Those two motors are tiltable. Second pic shows the servo that tilts motors. Elevons are those wooden ones behind motors. Elevons won’t rotate 90 degrees when transitioning to fwd flight, it will stay as it is. Bicopter drifts a lot forward and backward, so during hover, elevons help pitch when it drifts.

thanks for the photos! I understand the layout much better now.
The only remaining question on the setup is how it hovers. From the picture it looks like it hovers with the wing level, but I suspect it would hover better with the nose up and the elevons straight down, with the motors rotated. That would give airflow over the elevons and would thus give you pitch and yaw control.
If it tries to hover with the wing flat then I can’t see how it would get all the axes of control it needs. For example, if it tried to control roll with differential thrust then that would cause yaw, and there isn’t any control surface to counteract that.
Are you planning to make it fly nose-up in hover? Then the only tricky part would be landing, as the propellers would hit the ground. Maybe it would work to rotate the props flat with the wing just before landing?

@ Tridge Once we declared Q_FRAME_CLASS =7 What are the servo channels to 3 motors and tail servo ?

In 3.8.0 Beta2 code it has declared 5,6,8 and 11
case AP_Motors::MOTOR_FRAME_TRI:
SRV_Channels::set_default_function(CH_5, SRV_Channel::k_motor1);
SRV_Channels::set_default_function(CH_6, SRV_Channel::k_motor2);
SRV_Channels::set_default_function(CH_8, SRV_Channel::k_motor4);
SRV_Channels::set_default_function(CH_11, SRV_Channel::k_motor7);

Best regards
Chamika

It hovers with wing level. When nose goes up, elevons and moment around axis along wing puts it back. Roll is controlled by differential force from rotors, and yaw is controlled by differential angle of rotors. Roll and yaw are controlled well. Pitch is the only one that causes a drift, but it’s still stable enough. For forward flight, I wanted to rotate the rotors forward and fly it like a flying wing.

Should be pins 1,2,4, and 7 in Main Out in Pixhawk.

Thanks for the reply . I checked with servo 7 it is 35 ( motor 3) . Did not responding to yaw . But then I replace it with Beta 3 code Quadplane.cpp . it has done some changes compare to beta 2
case AP_Motors::MOTOR_FRAME_TRI:
SRV_Channels::set_default_function(CH_5, SRV_Channel::k_motor1);
SRV_Channels::set_default_function(CH_6, SRV_Channel::k_motor2);
SRV_Channels::set_default_function(CH_8, SRV_Channel::k_motor4);
SRV_Channels::set_default_function(CH_11, SRV_Channel::k_motor7);
AP_Param::set_frame_type_flags(AP_PARAM_FRAME_TRICOPTER);

now it is working well .

@ayertay, ok, makes sense, sorry for being slow in understanding!
I see you’ve already started a discussion with Leonard on this:
http://discuss.ardupilot.org/t/new-bicopter-airframe/13347/4
I think the next steps are:
(1) add a bicopter to the built-in SITL support (in libraries/SITL). It would be very similar to this one:
https://github.com/ArduPilot/ardupilot/blob/master/libraries/SITL/SIM_SingleCopter.cpp
but would take advantage of the support for tilting rotors. See the example of the tilt-tricopter frame here:
https://github.com/ArduPilot/ardupilot/blob/master/libraries/SITL/SIM_Frame.cpp#L95

(2) add a AP_Motors_Bicopter motors backend. As Leonard suggests, starting with the existing AP_MotorsSingle.cpp and creating a AP_MotorsBicopter.cpp would be the way to go.

Then get it flying with ArduCopter in SITL. Once that works, then get it flying with ArduCopter in your real airframe. Only after that would you then add support for that airframe type in the quadplane code so you can transition.

I hope this helps!

great! Any flight videos to share?

Thanks to the generosity of Andy Trench I should be getting a FireFly6 soon, I’m really looking forward to trying it out with the latest master code

1 Like

Did you just change quadplane.cpp, and compile? Then changed to Q_ENABLE, and QSTABILIZE? How did u check if it worked?

Thank you very much for your help!
Could I ask, what does last 7 numbers mean in:
Motor(AP_MOTORS_MOT_1, 60, AP_MOTORS_MATRIX_YAW_FACTOR_CCW, 1, -1, 0, 0, AP_MOTORS_MOT_8, 0, -90)? (these: -1, 0, 0, AP_MOTORS_MOT_8, 0, -90).

Also, I tried to use SITL. I’m using Coax frame. In parameters list, it says that COAX is 9. I have loaded copter-coax.parm. FRAME_CLASS changed to 9, but I get an error saying: “ARM: PreArm: check firmware or FRAME_CLASS”. It shows that FRAME = Unknown. If I just keep standard params, it goes with QUAD.

Hi the vtoll of my friend Paolo take the form.
Some help now for the parameters are necessary because we have some experience in copter but not in the plane/vtoll

The the right motor is CW, the left and rear are CCW.

1 Like

Hi , @ayertay Yes Friend I add Quadplane.cpp and Quadplane.h to arduplane folder ( Beta2) and uploaded . Now I can control yaw with SERVO11 (AUX3) . In Beta 2 even we changed Frame class to 7 none of SERVO become tail servo (39- Tricopter tail servo) . Still testing ground level with responses, Every thing okay , Will upload a flight video soon :slight_smile:
Thanks for the support

@Agridroni It has Tricopter configuration . So You have to use arduplane 3.8.0 Beta 3 code . According to @Tridge Beta3 is just mastered .

1 Like

Tridge,

That’s great news on the FireFLY6 acquisition. It’s unfortunate that BirdsEyeView has gone away from the R/C DIY market but I understand their attraction to commercial markets. My hope is that we can use this APM firmware on a new inexpensive VTOL design, that is large enough to carry a 3lb payload, from a hobby company.

I am still in a holding pattern waiting for spring to arrive but my initial flight with my second FF6 was very successful. We had an amazing warmup for February in NY last week so I got a chance to maiden my FireFLY6 DIY15 with the BirdsEyeView v1.2 firmware and Sport key. I got this FF6 used (and abused) so I fixed it up (which I enjoy) using the stock 3s power system called a DIY15. This is the model that I would like to use to test the APM tiltrotor firmware on.

I had gotten used to the autonomous flights last fall and forgot it was the pilot’s responsibility to actuate the retracts when flying manually so they were transitioned a little late. :slight_smile:

P.S. Did you ever determine if your CL-84 was repairable?

@tridge , Is there update about 3.8.0 stable version release ? :slight_smile:

I have set Q_FRAME_CLASS:7 but which Q_FRAME_TYPE please?