New Co-Axial Heli?

The two swashplates are controlled independently ,in total six servos , two independent brushless motors runs at a constant speed ! , the mixing ,servos outputs equation are developed by our team, generally I use ardupilot software for multicopter, no experience in the heli part , what i understand if i set intermeshing configuration in the H_DUAL_MODE: parameter it could work for coaxial without any change in the code !? i will check AP_MotorsHeli_Dual.cpp file to see how the servos are controlled.

This configuration was just added to master. It is not in 4.0.6. It will come out with the initial release of 4.1 which I believe will be in beta testing in the next month. So you will want to look at master if you look at the code.
@PittRBM is our expert with the intermeshing mixer code. The intermeshing has two ways of controlling yaw: differential collective pitch and differential longitudinal cyclic. For your coaxial config, you would set the parameter H_YAW_SCALAR to zero.
I’d be interested to get your feedback on this once you get it installed and flying. I will have to change the selection for DCP_MODE to add coaxial with intermeshing. Pretty exciting.

How does the feed forward term work? What do I look for when tuning it?


For my case i use the differential collective pitch to control Yaw , i dont know what mean H_YAW_SCALER =0 (Scaler for mixing yaw into roll or pitch.) and H_DCP_YAW parmameters , I started analyzing the 4.1 code of the Dual Heli part ,I will keep you posted when there is something new in this porject .

You’ll be using Intermeshing mode which uses both cyclic and collective for yaw. YAW_SCALER controls the cyclic part while DCP_YAW controls the collective part. You can set YAW_SCALER = 0 to disable differential cyclic so you have pure differential collective for yaw. Pitch and roll are synchronized for both swash plates, nothing throttle is the same with single heli.

@Tarek-H Just like @PittRBM stated, the H_YAW_SCALER sets the mixing for yaw control and uses differential cyclic to control yaw. So you don’t want that in your case and that is why I am telling you to set it to zero. I look forward to hearing more about your project.

@PittRBM Thanks for posting!! Hope to see you flying your synchropter soon!

@PittRBM @bnsgeyer , i share with you a small video about our coaxial helicopter that i will change to pixhawk ardcuopter software

1 Like

That is very smart. Are you using a swashplate or vectoring fixed pitch blades?

@bnsgeyer Hello , I managed to adapt the ardupilot on our coaxial helicopter, I took the time to understand the code and the AP_MOTORS library, I use the H_DUAL_MODE = 3 ( named HELI_DUAL_MODE_COAXIAL) to refer to the coax_heli , i add also cyclic angle limitation with _cyclic_max parameter exactly the same already programmed in the single copter .
For the moment it is flying well but there is still work to be done in pid, in the log there is some offset between the setpoint and the measurement,
I have a Yaw imbalance% message that I have to solve , maybe because of the slight oscillation of the yaw control around the target .

@Tarek-H. Glad to hear that you got it flying! Please post the params and a log file. I would be interested in seeing both.
Thanks for the update

Can you post the firmware you have made for it as well? Can you also share the setup for the swash plate? Are you running three servos?

@hybrid-guy this is about Sprite Vehicule ? have you solved the issue ?
I made a small modification on the software specific to my drone my work is not finished yet , but this in ardupilot dual helicopter frame ( frame class 11) , Sprite Vehicule is not Coaxial Helicopter , it is Coaxial Coper !

I must specify that we have designed a rotor protection, a kind of carbon cap (700 gram), protects the blades in contact with the wall or if the uav flip itself on its side , but add a little inertia in the movement,

for this flight i add the rotor protection ,here was windy weather ,in AltHold it was okay but in Posthold the drone drifts with the wind , is it because the UAV dont have a good stabilized regulation and it disrupts the gps positioning?

this is stationary without rotor protection

I discovered that the parameter ATC_HOVR_ROL_TRM was 300 i changed to 0 now
I’m trying to improve PID specially : ATC_RAT_RLL_ILMI ,ATC_RAT_PIT_ILMI , IMAX ,to use integral in Hover ,
For the Yaw imbalance i know we can remove this message but i need to solve this issue , i use external gouvernor i need to add rpm sensor to check speed of the two rotor .

@Tarek-H It doesn’t appear that you set up your collective range for the swash plate using the H_COL_MIN and H_COL_MAX. Also all of your servo trims are still 1500. Is your swashplate mechanical set up perfect that you have completely level swashplates? If not you need to follow the wiki on how to set up the swashplate

Looking at your tuning, it appears that you were able to get 0.11 out of the P gain but you didn’t set up the VFF gains. Any reason why you didn’t set up the VFF gains first. For helicopters they are the most important to set up. These are just my initial impressions looking at the parameter file. I will look at your data today sometime and get back to you.

@bnsgeyer for the swashplate a mechanical adjustment method is used, all servos at 1500 the swashplate is level and the blades are adjusted at an incidence of 5° ,at this angle from the ground he won’t take off, i keep the same mechanical setting used for our software but i know it must be 0° now , i will change it an see .
the servos limit is H_COL_MIN and H_COL_MAX ,i kept [1250 -1750 ] is enough, it can not reach the mechanical limit of the swashplates or blade stall angle .
and about VFF gains thank you ,I really haven’t seen it, i need to read well the wiki and set up this parameter.

What is the collective blade pitch at H_COL_MAX and H_COL_MIN? Also be sure that you set the H_COL_MID properly. It should be set to 0 deg blade pitch or the blade pitch that produces zero thrust.

Also please give me access to your log files. It is saying I need permission.

The collective blade pitch min max [-5° 11° ] , i will set H_COL_MID to have 0° blade pitch ,and set the IM_STB_COL_ for Stablize mode .
for the Log files i changed permission ,you should access now

@Tarek-H You will have to provide a log with FAST ATTITUDE and PID checked in the LOG_BITMASK parameter in addition to what already is checked. This will provide more information to access whether you have to use the Harmonic notch to remove noise from the control signals and allow the PID signals to be seen. Please conduct the flight in stabilize mode or Altitude Hold. Make quick 20-30 deg attitude changes in pitch and roll. Then make quick 20-30 deg heading changes. It will help me assess whether you have the FF set properly.

@bnsgeyer I did what you asked , i send you logs ,
I use RAT_PIT/RLL _ILMI = 0.2 ,RAT_PIT/RLL _IMAX = 0.8 , to use the integral and improve the Hover flight .
This flight with RAT_PIT/RLL _VFF = 0.06 , ATC_RAT_YAW_VFF = 0.024 ,in the logs it was clear to me that we need to increase this values .
2021-08-03 .log.param (17.2 KB)

This flight i changed ATC_RAT_PIT/RLL_VFF= 0.1 and ATC_RAT_YAW_VFF =0.05 to test

There is little delay between the actual rate and the desired rate ,is it normal or it can improve by increasing ATC_ACCEL_x_MAX ?

About PID there is a set point overshoot in angle control , i think i need to reduce a little P RATE , and what about ATC ANGLE P ! I kept the default values but there is not a lot informations how tuning it manualy !

@hybrid-guy were you successful?