Cyclorotor: Mixing and Control Allocation

Hi All,

I was wondering if anyone has any tips on how to get started with integrating a cyclo rotor to px4 as a new airframe. I am not so sure how the mixer should be and what other modules might need to be changed or if this is even feasible with px4.

I already have a gazebo SDF model and new blade lift drag plugin that can apply the forces on each blade based on the pitch angle and relative wind which is a function of the wind velocity, body velocity and rpm of the rotor motor.

What I am not sure about is how to control the servos on each blade such that the overall roll, pitch, yaw of the UAV can be controlled. As you can see from the image below, the thrust vector is a function of the pitch of each blade as well as their position in the cycle.


Also, what are the limitations of the current control allocation approach outlined in this slide?
(I am still getting to know this topic)


1 Like

@akkawimo interesting configuration!
The current control allocation method is limited to control allocation matrix generation during compile time (based on pre-defined mixer files). I don’t think you can use the multirotor mixer or the summing mixer for your configuration. Maybe a modified version of the helicopter mixer?

IIRC the slide is from the presentation on the new dynamic control allocation being developed for v1.12., although the slide itself describes the current approach. You might want to look into using the new method for this. I’m trying to play around with the new control allocation as well. It’s available on the branch ‘pr-control-allocation’, under src/modules/control_allocator

Hope it helps!