Want to control Convergence motor tilt angle

Hi, does anyone know a way to control the front motor tilt angle in the Convergence using QGroundControl. I want to control the tilt angle with a slider control on my Taranis X9D transmitter so that I can control the forward speed in VTOL mode.

I’ve implemented that for tiltrotors in ArduPilot:

Hi Mark, Thanks you. Does this actually move the tilt angle of the front motor to achieve forward speed?
Can your method be implemented in QgroundControl, using PX4?

You can do that in the mixer by adding the a Manual Passthrough.
https://dev.px4.io/master/en/concept/mixing.html

Yes, “forward throttle” for tiltrotors involves tilting the motors foward. My PR for ArduPilot adds built-in support for an additional manual “forward throttle” RC input for VTOL planes of all types.

QGC has nothing to do with it though (besides providing a mechanism for setting parameter values); a separate RC channel supplies the throttle command to the autopilot and as @AlexandreBorowczyk says, this is implemented in the motor mixing logic for PX4.

Hi Marc,
All this is new to me. I am currently using the standard Convergence model available in Qgroundcontrol. The commands: Q_FWD_THR_CH and Q_FWD_THR_MAX are not available under Parameters. So I need to load a library with the commands. How do I do this? Thanks.

1 Like

I guess that’s for PX4 only. You would need to follow the advice of @AlexandreBorowczyk but that’s a fairly advanced task and I wouldn’t be able to help with it.

Q_FWD_THR_CH and Q_FWD_THR_MAX are Arduplane params. Are you using the Ardupilot or Px4 flightstack?

HI, I am using Pixfalcon/Qgroundcontrol to control a Convergence type tilt rotor winged aircraft, since I can operate it on an Android tablet connected to my transmitter. But it is nice to know that these commands are available in Mission Planner since Convergence code is also available for this platform. Autotune and Autotrim features are also available in Missions Planner, so I am considering switching over, but at the expense of having to operate mission planner on larger laptop running windows.

I am using PX4 flightstack. Is there a Convergence model parameter for Ardupilot?

Several people have flown the Convergence with ArduPilot. Here are links to a few blog posts:




I use QGroundControl on a desktop machine for initial ArduPilot setup, and an Android tablet for adjusting parameters in the field, but it sounds like Mission Planner has more support for loading default parameter sets.

Read this first before trying to set up a tiltrotor with ArduPilot:
http://ardupilot.org/plane/docs/guide-tilt-rotor.html

Hi Alexandre, I am new to PX4. could you tell me specifically how to modify the firmware in my Pixfalcon flight controller so that I can implement forward control of the front motors of my Convergence type vehicle? I assume I need to connect the controller to my Win 10 PC, extract and edit the existing Convergence code with some type of editor, and then reinstall it in the Pixfalcon flight controller. The details of how to specifically do this would be very helpful. Thanks, William

Not exactly,

Information can be found:

  1. Here for the convergance mixer:
  2. Here for the information on mixer (link is pointing to the manual passthrough actuator group).
  3. Here for the information on how to start a custom mixer. I will put a emphasise on: If a file with the same name exists in ‘/fs/microsd/etc/mixers’ this file will be loaded instead.
    Finaly, here is how to setup the RC to AUX passthrough.

How to proceed:

  1. Get a good understand on how mixer file formating and how they work (use link #2).
  2. Look at the Convergence mixer and decode how it works.
  3. Modify the Mixer file for your needs. (If you want share it here for feedback)
  4. Using link #3 get the mixer “onboard”
  5. Set manuel passthrough
  6. Test!

I´m still using an extended Mixer that controls tilt angle but it definitely needs an extension to the pwm limits of these two channels to allow tilt backward as well.
Further it needs mixers to be added in the tx to map the elevator stick to a suitable aux passthrough channel instead in this mode.
And increased limits cause lower mixer yaw values for not having to change the pid tuning.

Motors

R: 3y 10000 10000 10000 0

XFade Source (AUX1/RC7) MC=2000 FW=1000

M: 1
O: 10000 10000 0 -10000 10000
S: 3 5 0 -19888 9808 -10000 10000

Tilt mechanism servo mixer + (AUX3/RC12) + (YAW)

#RIGHT up:1986 down:1030 Limit:650-2450
M: 3
O: 10000 10000 0 -10000 10000
S: 1 4 1000 -10610 4840 -10000 10000
S: 0 2 4444 4444 0 -10000 10000
S: 3 7 -5850 -5850 0 -10000 10000

#LEFT up:1030 down:2015 Limit:650-2450 Center=1550
M: 3
O: 10000 10000 0 -10000 10000
S: 1 4 1000 10940 -5770 -10000 10000
S: 0 2 4444 4444 0 -10000 10000
S: 3 7 5850 5850 0 -10000 10000

Elevon mixers Limit:820-2220 Center=1520

M: 2
O: 10000 10000 0 -10000 10000
S: 1 0 -7500 -7500 0 -10000 10000
S: 1 1 8000 8000 0 -10000 10000

M: 2
O: 10000 10000 0 -10000 10000
S: 1 0 -7500 -7500 0 -10000 10000
S: 1 1 -8000 -8000 0 -10000 10000

the changed limits in extras.txt
pwm max -c 56 -p 2450
pwm min -c 56 -p 650
pwm max -c 78 -p 2220
pwm min -c 78 -p 820

Hi Mark,
I have figured out how to load a Convergence model using Arduplane with all its built in parameters. Setting Q_Enable =1 and refreshing parameters loaded even more Q_type parameters. But Q_FWD_THR_CH and Q_FWD_THR_MAX commands are still not available. Can you tell me how to load them so I can implement the forward Throttle function?

By the way it appears that this can also be implemented in QGroundControl by loading ArduPilot firmware, loading the Convergence model, setting Q_Enable = 1, but the above commands are also still not available.

Hi Alexader,
I have figured out how to load a Convergence model using Arduplane with all its built in parameters. Setting Q_Enable =1 and refreshing parameters loaded even more Q_type parameters. But Q_FWD_THR_CH and Q_FWD_THR_MAX commands are still not available. Can you tell me how to load them so I can implement the forward Throttle function?

By the way it appears that this can also be implemented in QGroundControl by loading ArduPilot firmware, loading the Convergence model, setting Q_Enable = 1, but the above commands are also still not available
[/quote]

@william.walker39 Since my PR hasn’t yet been merged, you’ll need to select QGC’s “Advanced settings” option in Firmware then choose “Custom firmware file”.
After you do that, click “OK” and it will ask you to choose the binary file on your computer.

There are prebuilit binaries for several boards at https://drive.google.com/open?id=1EU64sP01Gvm-cBoj5CD4AXjMIQM_dkmZ
which you can download. If you’re using a Pixhawk the right target should be “fmuv3/bin/arduplane.bin”. Let me know if you’re using a different board, and I’ll build the binary for you.

This build adds 2 parameters: Q_FWD_THR_CH and Q_FWD_THR_MAX
If Q_FWD_THR_CH is non-zero, enables manual forward throttle control via RC channel
Manual throttle ranges from zero to Q_FWD_THR_MAX with 1 being full throttle.

Hi Mark, Thank you for the link to your Bin file, and it worked as you said. But I do not see a way to directly select the Convergence model in ArduPilot. Are the parameters values in Binary file you gave me specifically for the Convergence vehicle, or do I still need to manually change the parameters myself to reflect a Convergence model? One possibility is to use the values suggested in the following parameter model:

The problem with this parameter code is that some of the parameters are not available: e.g.
BATT_CAPACITY and Q_A_RAT_PIT_FLTD. Also some of the parameter values do not correspond to the values available: e.g. Q_FRAME_TYPE,1 (unless 1=x) and Q_FRAME_CLASS,7 (unless 7=tailsitter), Q_TILT_TYPE=2 (unless 2= Vector yaw)

Some of the differences are due to changes (renamed or new parameters) to the firmware since that parameter file was made, but the new params should default to reasonable values. The integer values you mention for frame type/class and tilt type are correct for the Convergence. If you display the parameter value in QGC and check the “manual” box, it will show the integer value for the selected string value (I think).