3
$\begingroup$

I built an Arduino Due based quadcopter, with MPU-6050 for auto levelling and BMP-085 for Altitude.

I am using Kalman filter code from here for the MPU-6050 to take the Roll and Pitch angels from the sensor.

The Roll and Pitch angels are correctly read while the quadcopter motors are off, but when the motor speed increased the angels start to be more inaccurate.

As shown in the following photos (where I took different speed motors to show the effects of the motor vibration on the MPU readings). These tests were taken while the quadcopter on the ground.

enter image description here enter image description here

Motor speeds vary from 0 to 180 so I choose (50,100, and 150).

My sensors are fixed on a breadboard over a plastic surface with anti-vibrator rubber balls as shown in my quadcopter pictures.

enter image description here enter image description here

My problem is that the controller I designed is very sensitive to these vibrations, is there any way to reduce these vibrations as minimum as possible.

Thank you

$\endgroup$
4
  • 1
    $\begingroup$ Very hard to diagnose without more data. What is the unit of motor speed "0-180" ? What is the vertical (degrees?) and horizontal scale for the graph? There are 7 long wires going to the IMU board, could it be EMI from the motors getting into the power supply? How are you using the MPU-6050, with the DMP or passthrough? What sample rate and digital filter settings are you using? $\endgroup$ Commented Jan 3, 2019 at 23:35
  • $\begingroup$ @PeterCorke I am using BLDC motors with 30A ESCs, the working principle exactly as in servo motors, the provided PWM signal should have a period of 20ms and the duty cycle can be varied to vary the speed with minimum 1000 and maximum 2000 pulse rate. The vertical is in Degrees, I corrected the photos. It could be, but I tried to rotate the motors by hand or touching the frame which leads to increasing the value of Roll and Pitch. I am using the MPU-6050 with DMP. The sample rate is 1KHz and the digital filter set to 260 Hz Acc filtering, 256 Hz Gyro filtering. Thank you. $\endgroup$ Commented Jan 4, 2019 at 12:01
  • $\begingroup$ If I read the graph correctly, as you increase the motor speed, the vibration gets more intense and lower in frequency. For motor speed 150 the vibration is around 3-4Hz. How many RPM does speed 150 correspond to? Maybe your isolation platform is resonant at 3-4Hz. Try with no motors running and tap the platform with a screwdriver and record its motion. Try removing the motors from the frame and placing each of them on something soft, to figure out if its is mechanical or electrical noise causing the problem. $\endgroup$ Commented Jan 5, 2019 at 20:12
  • $\begingroup$ @PeterCorke I don't have a speedometer but the speed in the range (7400 - 9250) RPM which gives a range of frequencies (123.3 - 154.2)Hz. I did that and the results are in this photo, and I tested to tab the frame twice too and the result in this photo. The red line represents Roll and blue represent Pitch. Can I use this thing as a soft thing between the motors and the frame or not? $\endgroup$ Commented Jan 9, 2019 at 12:24

4 Answers 4

1
$\begingroup$

First of all, check that your propellers are in good condition and balanced.

You mentioned that your controller design is sensitive to vibrations. Would you mind elaborating? Perhaps you will have to trade off some of your design qualities.

Have you tried a low-pass filter on your signals before feeding it into the controller?

You can also try using a different vibration damper. The optimal damper depends on the mass that the damper is carrying.

$\endgroup$
3
  • 1
    $\begingroup$ Now all my tests have been done without putting the propellers on the motors, these vibrations came from the motor's rotation alone. I am using Active Disturbance Rejection Control (ADRC) which make the motor speeds very high when the vibrations appear. No, I didn't try a low-pass filter. I had read one time that the MPU-6050 have an internal low-pass filter, but I wasn't able to understand it or make use of it. Do you mean to increase the number of rubber balls or what exactly? $\endgroup$ Commented Jan 3, 2019 at 9:22
  • $\begingroup$ This paper might answer some of your questions imavs.org/papers/2017/237_imav2017_proceedings.pdf $\endgroup$
    – pterodon
    Commented Jan 6, 2019 at 7:09
  • $\begingroup$ Thank you for this paper I am reading it, and figure out if it can solve this problem in my quadcopter. $\endgroup$ Commented Jan 9, 2019 at 12:27
1
$\begingroup$

First try adding some dampers to the electronic modules. The best way to reduce the vibration is balancing the propellers. You can mount one propeller at a time and measure the amplitude of the vibration first. Then use a piece of sticky tape on one blade and measure the amplitude again. If the amplitude is less try adding sticky tapes on the same blade to reduce the vibration as much as possible or try the other blade.

You need to adjust some of the parameters before using the kalman filter for your quadcopter since variances of the readings depends on the sensor that you use. Further make sure that your sampling rate and the update frequency is matching.

$\endgroup$
4
  • $\begingroup$ What do you mean by the dampers to the electronic module? Do you mean it is better to reduce the vibration while the propellers are mounted on the motors? I will check the parameters and the sampling rate with the update frequency. Thank you $\endgroup$ Commented Jan 4, 2019 at 12:07
  • $\begingroup$ You can mount electronic modules on a sponge or a soft rubber layer. The propellers contribute to the vibration than the motors alone. That's why it's better to reduce the vibration by mounting propellers one by one. For each motor you can follow the procedure that I have described above. If you follow these steps correctly you can reduce the vibration effect to a considerable level. $\endgroup$ Commented Jan 4, 2019 at 15:35
  • $\begingroup$ As I understand it, there are not yet any propellors installed, see earlier comment. $\endgroup$ Commented Jan 5, 2019 at 20:13
  • $\begingroup$ I missed that part. Maybe the cause is EMF generated by the signal wires connected to the ESCs or the mismatch between the sampling rates as I mentioned earlier. $\endgroup$ Commented Jan 5, 2019 at 20:34
0
$\begingroup$

Firstly inspect propellers for damage, followed by motor assembly, and finally to reduce vibration on electronics use double sided tape. The other problem I see in the picture is the breadboard. By soldering your components onto a PCB you'll reduce vibration slightly. I had a similar problem with my rocket, so I soldered my wires and sensors to a PCB.

$\endgroup$
-2
$\begingroup$

In addition to previous answers which I agree with, try a FOC ESC, expensive yes, but less noise and vibration.

$\endgroup$
1
  • 2
    $\begingroup$ Welcome to Robotics Allaw Hussein. Thanks for your answer but we are looking for comprehensive answers that provide some explanation and context. Very short answers cannot do this, so please edit your answer to explain why it is right, ideally with citations. Answers that don't include explanations may be removed. $\endgroup$
    – Mark Booth
    Commented Jun 10, 2019 at 10:23

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.