Will sensors do the job?
michaellangford99
Posts: 19
in Robotics
Hello, I am working on a propeller spin flight controller.
I have been making test flights, but the quadcopter is not balancing quickly enough. I am wondering if my sensors are not accurate enough. I get yaw, pitch , and roll angles from -180 - 180 degrees (integers, no decimals). I am using the L3G4200D gyro, and mma7455L accelerometer. Do these sensors provide a quick enough response that is accurate enough to be used in a flight controller? I am fusing the data with a kalman filter, but am not using quaternions or euler angles, just yaw, pitch, and roll.
When I run up the motors, vibrations shake the accelerometer, trashing its data. I put the data through a low pass filter, but it still has some anomalies. When the motors run, both the z axis (up) and the y axis have their values increase. If this was due to tilt, the z would decrease as the other axis increased. Here are images of data before and after a low pass filter was applied. The bottom graph is the generated angles after the data was put through the kalman filter. The sensors work wonderfully when the motors are off
To sum up, I am not sure these sensors make the cut, and if they do, how would I go about removing the vibration issue.
I have been making test flights, but the quadcopter is not balancing quickly enough. I am wondering if my sensors are not accurate enough. I get yaw, pitch , and roll angles from -180 - 180 degrees (integers, no decimals). I am using the L3G4200D gyro, and mma7455L accelerometer. Do these sensors provide a quick enough response that is accurate enough to be used in a flight controller? I am fusing the data with a kalman filter, but am not using quaternions or euler angles, just yaw, pitch, and roll.
When I run up the motors, vibrations shake the accelerometer, trashing its data. I put the data through a low pass filter, but it still has some anomalies. When the motors run, both the z axis (up) and the y axis have their values increase. If this was due to tilt, the z would decrease as the other axis increased. Here are images of data before and after a low pass filter was applied. The bottom graph is the generated angles after the data was put through the kalman filter. The sensors work wonderfully when the motors are off
To sum up, I am not sure these sensors make the cut, and if they do, how would I go about removing the vibration issue.
Comments
Do you have isolation between the board and the craft, as in:
https://www.parallax.com/product/700-00098
This would reduce the vibration to the sensors.
You can look at the assembly for the ELEV-8 to see how it is used.
http://learn.parallax.com/tutorials/robot/elev-8/elev-8-v3-quadcopter-assembly-guide
https://www.parallax.com/product/80204
I does not use the particular items that you list, but the software is open source.
Do as much as you can to reduce mechanical noise - balance your props, and use dampers to mount the flight controller if you can. That said, I have two quads that use the Elev8-FC hard-mounted to the frame, and they fly fine. Micros tend to be significantly more forgiving because the vibrations are much higher frequency, and typically out of the range that they interfere with sensors, however you may be hitting a resonant frequency, which would give you trouble.
Also, heading / pitch / roll *are* Euler angles. You'll likely have problems with just angles - they're order dependent / non-commutative, you have to deal with seams (like where heading goes from 359 to 0 degrees), and they don't interpolate in a straight line between two given orientations. It's possible to produce a flight controller that only uses Eulers, but it's fussy, and it'll be harder to handle weird cases like inversion or pitch / roll close to 90 degrees.