Allocation for thrust vectoring

Greetings. I am preparing a custom vehicle where all the rotors are tiltable about two axis of rotation. I am having difficulty to produce an allocation matrix that will work.
Is there some documentation on how to create a correct allocation matrix?
If not an example of a vehicle that employs thrust vectoring will be extremely valuable.

Thrust vectoring is not currently supported by copter, you might be able to use the Plane tilt rotor code to get a single axis.

Thanks for replying. So the Arduplane is more suitable for this implementation? However I have seen that the following vehicles Bicopter, Tricopter have some form of thrust vectoring. Do you mean that in ArduCopter the allocation matrix is compiled once and thus it can’t support reconfigurable architectures?

I’m not really sure what you mean by a allocation matrix, copter uses a matrix to setup motors for its normal frame types, quad hex, octo. But that code does not consider tilting motors. The bicopter and tricopter frames each have a custom motors backend to handle tilting.

The allocation matrix maps the controller generated wrench (torque/thrust) into each actuator of a vehicle. For a quadrotor it is a 4x4 matrix mapping the roll,pitch,yaw and collective thrust to the four actuators. For a tricopter it is a 4x4 matrix mapping the needed control for stabilization to the three actuators and the tilting servo.
So I am looking to first find the portion of the code that I have to modify and also some guidelines. For example in the following link:


at 3:20 sec of the video the generated allocation matrix does not contain physical lengths. Everything is scaled with the maximum distance equal to one.
So I need to find out what other steps are needed to create an allocation matrix that is compatible to the flight stack and also what part of the code do I need to edit?

There is no matrix for tricopters,

The matrix only works for ‘normal’ copters. You can’t create a matrix for tilting motors, without also writing the code to understand it.

Its actually quite a big job to get this working well, the assumption that leaning makes you move is baked into the code at quite a low level.

I’m sure there would be support if you are going to work on improving the code in that direction.

Thank you very much for your concise answer. I will start looking into the code.