Bicopter ardupilot firmware

Any flight controller AP 4.1 or newer.

1 Like

It’s not uploading on FC Pixhawk CUBE orange.
Error: Firmware not Suitable for this Board fw:9 - board:140

Hello Peter, I am buiding a bicopter using pixhawk 2.4.8. Will the firmware work if i select the frame as quadcopter? Also, will this controller support for bicopter?
Please do reply…Thank you.

@iampete I am working with a cube orange and am trying to make a bicopter fly, I have gotten the motors to active using the servo function throttle right and throttle left, but I cannot find the tiltmotor left or tiltmotor right in the list of servo functions. I am using arduplane 4.5.0dev with Q_FRAME_CLASS = 10, and Q_TILT_TYPE = 3 just as the documentation on ardu plane setup says but I cannot get my two tilt rotor servos to move. Please let me know if you have any questions on any other parameters or anything else.

Thank you for your time and your help.

I took this screen shot from the github page and scrolled down to the bicopter section of the tilt rotor, I am not that great at programming or writing code so I don’t fully understand it but I am assuming I should be setting my servo function to the tiltMotor_Left or tiltMotor_right, but I cannot find those options except for a front and a rear left and right.

TiltMotorFrontLeft (75) and TiltMotorFrontRight (76) are correct for the tilts. Throttle left (73) and Throttle right (74) for the motors.

Q_ENABLE 1
Q_FRAME_CLASS 10
Q_TILT_ENABLE 1
Q_TILT_TYPE 3

I would expect that to work, although as your finding this is not a very widely used type.

It is very interesting that when the TiltMotorFrontLeft and TiltMotorFrontRight servo functions are used, the servos initialize when in Q_Hover or Q_stabilize into the 1500 position (mid) and are not controllable or recognize the need to adjust yaw. When I change the servo function to something like the elevator, the servo moves correctly.

I would only expect it to do sensible things if armed and with throttle none zero. Q stab half throttle would be the place to start. Props off to begin with! You might have to reverse one or both of the servos.

I have tried as you recommended but the servos do not respond or move when given RC input after the aircraft has been armed, could there be in issue with the servo function tiltMotorFrontRight and tiltMotorFrontLeft? When I set the servo function like aileron/rudder to any other function the servo responds to RC input.

Can you upload the log of for that test.

Hello @iampete ,hope you are doing good. Am building a bicopter with the tiltrotor setup. And for the servos am using dynamixel ax 12a, but am not sure if these servos could work from the mission planner. Could it be directly controlled? And does this firmware of yours support the same? Also, I had the issue with connecting the GPS module and TFmini lidar as well. Both weren’t responding with the output though i could see them powered. Does this firmware support these components??
Thanks much for your patience and time!!!

Hi Pete, a lot of things have been happening since I last posted. I was able to get the tiltrotors to respond in Qstabilize and Qhover when throttle was added. I have since ran into another problem that I can’t figure out.

We have build a prototype and have started hover testing and have achieved a stable hover with mild pitch oscillation. The issue we are faced with at this point is our aircraft sometimes responds in the opposite of the desired response. I will upload a video and the data log.

The data log will show four flights with the last flight being the described problem. The first two flights were successful hover tests with the last flight being an constant pitch back until it became unrecoverable. The third flight was a ground test.

The PID tunes I have for quad plane are the following and I am not seeing a response from the stabilize pitch gain which is supposed to correct the error between actual pitch angle and desired pitch angle and converts it into a pitch rate.

The biggest issue for this aircraft is entering a high pitch angle and the tilt rotors are not tilting forward to recover the aircraft or try to hold a near 0-5 degree pitch attitude.

Here is a the link to a folder in google drive with the flight videos:
https://drive.google.com/drive/folders/1_i8JElZgGQhGapAmDI5ZZTqlrrZTIo8N?usp=drive_link

The data file is also in the same flight test folder since it was too large to upload here.

Please let me know if you need any other data like parameter settings.

Thank you all.

Your servo rail is quite noisy.

Q_M_THST_EXPO of 0.2 is a long way from the default, how did you arrive at that value?

You gains look too high to me. Lots of noise on the outputs. Roll is closer to what we would want to see.

Match up your yaw D filter to target, Q_A_RAT_YAW_FLTD = Q_A_RAT_YAW_FLTT = 25.

Reduce your accel limits, Q_A_ACCEL_P_MAX and Q_A_ACCEL_Y_MAX 7500 or so.

Other than that its just a matter of getting the tune right.I would leave roll for the time being and back of yaw a lot so you can concentrate on pitch.

The flying backwards and tipping over thing your more or less stuck with I’m afraid, with that big tail it really wants to flip round.

Moving the CG down will make it easier to tune, it means the motors have to vector less to give the same pitch effort.

Thank you for the feedback!

What would you recommend to reduce servo rail noise?

I believe I got the m_thrust_expo from the initial parameter under setup after I entered the size of my props. They are 26" props by the way.

I set the gains that high since the aircraft did not seem to respond quick enough in the pitch and yaw axis as I was mainly looking at the attitude data while tuning the PIDs.

Is there not a way for the controller to read pitch attitude in while in hover and to correct for that undesired pitch angle? From what I have seen when the aircraft has a slow pitch acceleration and does not try to arrest the pitch up movement, each video we take of that happening the tilt rotors stay stationary and do nothing to try to arrest the pitch up movement.

Is there a feature that can read the pitch attitude and command the tilt rotors to pitch forward to recover from the high nose up attitude?

Hello all,

I am wondering if anyone might have an idea about the odd behavior I am having with my tilt rotor aircraft when entering QLoiter flight mode from Qhover. I have successfully flown my aircraft in Qhover and have been able to hold its position manually, which is quite exciting!

Although in the past, I have tried to use QLoiter and have established a stable hover, then would switch to Qloiter. The issue that I cannot figure out is when I change to Qloiter, my tilt rotors automatically tilt forward about 15 degrees, and I am stumped to find a reason or an incorrect parameter. Here is a Gif of a ground test to see if the tilt rotors moved when changing flight modes to Qloiter. You can see both tilt rotors tilt forward once the aircraft enters the QLoiter flight mode.
I will note that there was no pilot input on either the throttle or attitude stick. This was also done at the armed condition with no additional throttle.

8kqojo

Here is also another .bin file of a similar response but was in flight when we changed modes, I have also attached a link to the video of that flight here:
https://drive.google.com/drive/folders/1aFp7ek9oXruW2fM4pV_UZ389Xcw8WNjZ?usp=drive_link

I have only seen this kind of response due to flight mode change to be transitioning from a Q mode to either FBWA or FBWB when the tilt rotors will tilt to their maximum tilt angle to start gaining horizontal velocity. Am I not setting up Qloiter correctly, I always set the home location before takeoff, I have not seen this kind of response in any other Q flight mode.

Any suggestions will be greatly appreciated, let me know if you would like to see my parameters or any specific parameters. I could also supply other stable hover videos to show that this issue is not persistent to QHover.

From further testing on the ground as I increase throttle in the Qloiter mode the tilt rotors increase tilt until they are at the forward limit. The firmware must not support Qloiter with a bicopter tilt rotor or the flight mode is being understood as a transitional flight mode. I have done transition testing and this flight mode is behaving in a similar manor as a transition from Qhover to FBWA/B.

Any clue of why this flight mode is not working as intended for this configuration?

This is my frame and configuration:
Q_Frame_Class = 10 (Single/Dual)
Q_Frame_Type = 0 (unknown if this is used or not)
Q_Tilt_Type = 3 (bicopter)

@iampete I have tried to look through the firmware and the Qloiter code to see if I am not setting up the wrong parameters but I’m not really understanding the code that well. I am wondering if Qloiter just doen’t work with the bicopter configuration.

I have a theory of what might be happening… The pwm signal sent to the esc’s might also be sent to our tilt rotor servos instead of the actual tilt rotor servo pwm or Qloiter is acting similar to a Qhover to FBWA VTOL transition in the bicopter tilt rotor configuration.

If you have any thoeries that I might be able to apply that would be great! I did see a post a while ago that was suffering from a similar problem and they said that the THR_Min parameter caused the issue but I tried to change the same parameter and I didn’t solve the issue.

Thank you for your time!

No problems with Qloiter, if it fly’s well in Qstabilise it will fly well in Qloiter.

The problem is that it does not fly well in Qstabilise.

There is almost no correlation between desired pitch and achieved pitch.

This is even clearer if we look at desired pitch rate and achieved pitch rate.

The vehicle is just wobbling back and forth.

Roll angles seem slightly better, but if we look at roll rates its just all noise.

Sorry, this vehicle design inherently has very little pitch control authority, so it might just be a limitation of the vehicle, it also makes it very hard to tune. Although you should be able to get roll and yaw much better.

I don’t think you will ever get such a design really flying well.

Compare the distance between the CG and the motors on a typical 4+1 quadplane to the distance between the thrust vector and the GC at max tilt on this bicopter design. It is at least 10 times less. You would need to lower the CG a lot to get a equivalent moment arm.

One way to overcome this is with a tailsitter, rotating the whole vehicle means the motors get a large moment arm in VTOL by having the motors well forward in the FW configuration.

Or you could just add a small tail rotor.

Hi Pete,

I appreciate your feedback throughout the entire timeline of this project! Your inputs have helped my team and I succeed with this unusual aircraft design!

The video and log file supplied was from quite an old flight when I hadn’t found a good tune yet. You are correct that this aircraft design has stability difficulties so I am not discounting that at all, I see this whole project as a fun challenge!

See the following link to our most recent flight test video and bin file, which shows the most stability in pitch, roll, and yaw we have found. The PID’s could be further tuned to a greater stability but I have taken the result of this flight to be within acceptable ranges for this vehicle. This flight was done in QHover with little to no pilot input to try to hold position.

https://drive.google.com/drive/folders/1VvN928Js9akOpZ75YyRKttKNQWmLfo_u?usp=drive_link

Is Qloiter more related to Qstabilize or Qhover, to me it does not make any physical sense if Qstabilize and Qhover work with the tilt rotors and Qloiter has this weird tilt forward behavior when throttle is increased.

I have also supplied a ground test videos one throttling up in Qhover and then QStabilize then QLoiter to physically show you this issue, I am not putting blame on the code or how it was developed I am just puzzled on why Qloiter is operating so differently then the other quadplane modes. Please view that video and let me know what you think, I could have missed a key parameter to setup the aircraft to make Qloiter work.

I also just tested QLand which is supposed to hold its position while descending to land and QLand operated the same way as Qloiter and tilted my tiltrotors. The issue seems to be with the autopilots autonomous position holding functions… Our pilot has demonstrated translational control of the aircraft so the aircraft can translate in all directions in Qhover so our problem isn’t the designs limitation but I believe the position holding for the quad plane firmware configuration. For the remaineder of this project we will not be changing the design of the aircraft since we have had successful stable and controllable hover flights, but would like to incorporate automated position holding capabilites of QLoiter and QLand.

If you could help me solve this issue that would be phenomenal.

Thank you Pete!

@iampete I apologize for the rapid number of responses in a short period. My team and I are working on this project for most hours of the day since this is our senior design project.

Does Qloiter use the lean angles to determine how to change position? Since the pitch axis of our body of our aircraft is not directly controllable can we adapt the position control to use our velocity instead of lean angles?

This seems to be the same issue that this post was mentioning but I have tried to change the THR parameters and it has not fixed the issue like in the previous user.