Hello,
i built quadcopter from scratch, including flight controller written in C and run on raspberry pi 3.
there have special design and battery is all over the body tubes and inverted props.
first please see my video:
The problem is i feel like the quadcopter is still not enough stable to flight.
I think the problem has this options:
1. The design not including a major center of mass (like battery in normal quadcopter) so is more difficult to balancing. this option can be the problem?
Center of Mass contributes to "natural stabilization"?.
2. Something in my code program, in the part of PID controller maybe not work good.
but I think that is not the problem because I read about it a lot on the internet.
the program read orientation data from 9DOF IMU chip, PID controller use the gyro data (multiplied by gain) and the calculated the hybrid of gyro & magnetometer & Accelerometer data.
as this structure:
3. maybe a conventional PID controller is good for quadcopter with "Center of Mass" but not for Nearly equal mass quadcopter of me?
please help me,
thanks :)
Replies
Fantastic work. Long live DIY :) I am sure you will get it sorted out eventually.
You are testing two unknown factors at the same time. Unknown frame configuration and unproven autopilot. You either have to test the autopilot in a known frame that flies, or use a autopilot that you know works in the new frame.
You're too close to the floor. You get ground effect.
Center of Mass contributes to "natural stabilization" = No, absolute not.
your drone is sure to work well. Test at 150 cm.
Your landing gear is likely to "grab" the soft ground = Drone overturn.
5-20ms delay is huge. You should be under 1ms. Racing quads start their esc pulses less than 10us after the values are computed. Most quads out today are sending motor speed updates at a rate of 400 to 4000 times per second (and higher). It should be possible to be stable at 100hz, but most quads will feel "unsettled" at this rate even when carefully tuned.
If possible, you should be sampling the gyro and accelerometer at 1000Hz or faster and low pass filtering to 100Hz cutoff frequency (either IIR or FIR work well). This will significantly improve your sensors noise rejection.
No matter what, you need to tune the Rate pid independent of the attitude pid. If the Rate pid is not perfect, then the attitude pid is a complete waste of time and only contributes to instability. Tuning both pid controllers at the same time is a sure way to go insane. I have programmed my own flight controller from scratch, I speak from experience. Manually flying in gyro only rate mode is no harder than flying in attitude mode (Many think it is often easier). Once you move on to GPS navigation, that is when attitude mode truely becomes important.
Your IMU supports look too flimsy, but it is hard to see well in the video. Any oscillations allowed by those supports will negatively influence stability. The best case for stability is to have the sensors rigidly mounted to the frame and vibrations removed by careful balancing of motors and propellers. Anything you do to absorb shock will reduce stability (if you cannot remove vibration at the source, then absorbing it is a compromise). Done carefully, the loss of stability due to isolation should be minor.
Make sure you are limiting the I term so that it does not over compensate and cause integral windup ( https://en.wikipedia.org/wiki/Integral_windup )
Tuning while attached to strings is tricky. Once you get a basic level of stability, it is much better to tune un-tethered.
Aviv Cohen said:
yeah, thanks you.
my quadcopter specially designed to stay long time in the air, pushing to the possible edge, by combines all guidelines for this target.
inverted propellers, support arm far from props, optimize frame structure for light weight, etc.
as shown on video, the quadcopter are not get keeping on small different changes in angle.
if i try to rise the PID value, its overshooting and miss the control.
so actually you mean that the power of the motors (or high CG requires more power) is not enough for fixing the small angle changes?
it reminds me also that have delay between the raspberry pi to the ppm driver of about 5 - 20 ms (depending on how much data is passed through the I2C protocol in each moment)
its also can be affect on that?
Hi Aviv,
Very interesting and unusual design.
A few things I notice:
Motors - props pusher mode below arms = good design much less loss from aerodynamic interference by motor support arm.
I have some of those motors too, a problem I think you may be having is that even though they can turn props as big as the ones that you are using, their torque is too low to provide sufficient prop speed rate of change for normal maneuvering.
They just don't have enough torque / power to let that large a prop speed up fast enough to correct for normal automatic attitude corrections.
I could be wrong, but that could be the real basis of your stability problems.
Because of torque lag, flight controller can easily get into an out of phase attempt to compensate for angle that actually worsens by over correcting continuously and spirals worse and worse.
Classic PID failure actually.
You could correct this to a degree in firmware by messing with PID values, but since this seems to be a marginal design in that respect I would simply suggest exchanging the motors for higher power units appropriate for the props you are using.
Another thing that bothers me is the seemingly high CG, personally I prefer a CG that is between the props so that when you change angle of attack it rotates around the center of gravity / mass.
If it is high or low or off to one side, it takes more motor energy and time to compensate.
Your low power motors would accentuate this problem.
It is structurally a really interesting and unusual design and it incorporates several good features, I look forward to hearing about your further development of it.
PS also agree with what Philip said above.
Best Regards,
Gary
but i know that have some models of quadcopter that work only with gyroscope sensor, and the center of mass is naturally stabilize the quad to right angle position.
and my quad can stay in any angle would leave it, almost in the same position.
Phillip Schmidt said:
I can't watch the video at the moment, so I may be able to add mroe later.
As long as the motors each carry roughly the same load, that should not be the problem. Weight does not add stability to a quad. Best stability is acheived when moment of inertial is lowest since it requires less "work" to correct errors (move weight to the center). There is no pendulum stability effect with a quad (this is a common misconception).
The quad must be stable when only using the Rate PID (turn off the stabilize pid). You must make it to fly from purely the Rate mode first. Once Rate is working correctly, then add back the stabilise PID.
Try suspending your IMU Pod from bungee cords instead of carbon fiber rods to dampen vibrations.