Accelerometers

Hello,
I have been working on a bit of a hobby trying to get a triangular disc with 3 ducted fans (one in each corner) that will self stabalise.
It is only early days yet, but I have got some ducted fans and determined that I have enough lift to send this thing launching into the air.
I was hoping to stabalise it using accelerometers, and some kind of PID loop. I believe this kind of thing is done in projects like nbot, the self balancing bot in one dimension, so hopefully it will translate to 2/3 alright.
So far I have purchased 2 ADXL202A accelerometers and I have wired them up to a robostix board which has an ATMega128 processor on it. Using 4 interrupts and some code, I am able to retrive the duty cycle coded info and resolve the angle that the accelerometer chip is at with a resolution of about 0.5 deg, at 50Hz.
Has anyone muched around with this kind of stuff here before? Is what I am trying to to too far fetched?
I was wondering if 0.5deg of resolution at 50Hz is likely to be enough information to actively stabalise roll and pitch of this device. I have had a look at some other projects for helicopters and planes like autopilot and papparazzi and these seem to rely on gyro's for the main control mechanism and th feed in accelerometer data slower (perhaps at 5-10Hz) to correct gyro drift.
Is there any reason to go with gyros and not accelerometers here?? I am aware that I will not be able to sense yaw with this method, but for roll and pitch, should this work?
I look forward to hearing your thoughts.
Regards,
Paul Solomon
--


Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload
I think you'll find nBot also uses a rate gyro in addition to the accelerometer. You may want to look at some of the autonomous helicopter projects that have been done. You should be able to turn them up with a Google search. The nBot page also provides some links to this research, and the use of filtering on multiple sensors.
There have been some discussions here by people involved in this, and a company (Rotomotion) makes boards for this. They're expensive and you may wish to roll your own, but their design fundamentals may be of help.
-- Gordon
Paul Solomon wrote:

Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload
Paul Solomon wrote:

The reason gyros are used is because they greatly simplify the process of getting the actual angle of the device. With your platform, sure, you can detect the angle by measuring acceleration and doing some simple calculations based on the acceleration due to gravity. But as soon as your platform starts moving, the problem gets a lot more complicated. Moving up or down will generate an acceleration that throws off your gravity-based calculation. A rotational acceleration in any direction will also have an effect. Traveling parallel to the ground will product more accelerations you need to account for.
If the platform isn't going to move too fast, you might try a three-way PID loop. Place a linear accelerometer on each line from a motor to the center of the platform. When a corner of the platform is down, or up, the accelerometers will deviate from zero. Try to modulate the motor PWMs to balance the accelerometers so that all three are zero. This should get you to a horizontal position, without calculating the actual platform angle, and hopefully without shooting the platform into the ceiling. Vertical motion should be simple enough by adding an equal offset to all the motors. Sideways motion is bigger problem, since you'll have to bank and apply thrust.
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload
basicly, the common technique is to use gyros for the fast response, and the accelerometer as a low spped, horizon reference for zeroing out integration errors on the gyro.

Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload
Paul Solomon wrote:

The resolution isn't the problem - accuracy is. Your goal is to keep the platform at 0 degrees in two axes. This is an angle constraint. To get the angle from an accelerometer requires two integrations. There is way too much error and drift in the accelerometers for this to work. You can test this out by using a spreadsheet to see how long it takes for the error specified in the accelerometer data sheet to double sum up to a value that is unacceptable. It won't take long (seconds).
Mitch
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload
Yup
Accelerometers output acceleration. Gyros output rotational velocity.
You must integrate a gyro once to get position. You must integrate an accelerometer twice to get position.
Gyros suffer from temperature instability as well.

the
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload
Paul Solomon wrote:

if you want to simultaneously control roll, pitch, yaw, and thrust you need 4 degrees of control freedom so i assume the ducted fans are going to be steerable or have control vanes in the exhaust or something.

einstein said it: you can never tell the difference between acceleration and gravity. an accelerometer in free fall measures zero. your robot is in free fall except for the force on it due to the ducted fans. accelerometers measure the force due to the fans, not gravity. sure, they're both -9.8 m/s2 in a stable hover, but that is a special case.

there are commercially available four rotor electric helicopters. large slow propellers are more efficient at low speeds . i suppose with the energy density of ducted fans you could build something with missile-like flight characteristics but don't expect too much battery life.

remember that the faster you sample any sensor the noisier it is going to be. the physical time constant of your aircraft's torque/rotational inertia is probably much slower than 50hz. that is why many flight control systems are not terribly high frequency.
good luck, though. flying robots are awesome. just get adxrs150s instead of adxl202s and you'll be all set.
-chris
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload
edward c kern wrote:
Hi Chris,
thanks for this response!

At the moment I am happy to have an onboard computer (with accelerometers) attempt to stabalise roll and pitch. I am happy to let it yaw out of control for the moment (or alternatively pin it it a way that it cannot yaw). As for thrust, I will control that by hand for the moment by either varying the power (bench supply) it actually controlling the thrust through remote control.

My short term goals are to get this platform to hover tethered so that power (battery weight is not an issue). Then if I get it stabalised, I plan to make a bigger model with 3 * 1.7kg thrust fans and 3 kg of battery. my calcs have suggested that I should get ~20min hover out of this. Ideally (long term if this actually works) I intend to have an airframe and the ability to transition to forward flight for endurance.
What do you mean by missile like flight characteristics?

Ok, so, with the ADXL202, I get 2 axis acceleration measurement. If I mount this chip so that one axis it down (or up) and the other us pointing out to the left or right of the platform. Then I can measure gravity on both axis and then take atan2(vert, horiz) to get the roll angle. If I do the same with another chip but one axis vert and the other forward/backward. Then the same calculation should result in pitch angle. If I then feed the difference between these angles and 0 into a PID loop, I was thinking that this should stabalise, with no gyros.
wrt your comment above, do you know if there is any way to determine mathematically an approx value for the responce time requirements of the control system i.e.50Hz or higher or lower given the dimentions, CG etc.
I could model my design as a rigid body with 3 point masses at a fixed distance from the origin at 120 deg apart. The point mass I could determint by weighing the platform and dividing by 3, and the distance from the center could be obtained by cutting off one of the arms and finding how far out its CG is from the start of the arm.
Any Ideas or comments?
Regards,
Paul Solomon
--


Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload
Paul Solomon wrote:

read that part again
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload
I tried and failed. It had the thrust, but I skimped on sensing. I think that having the shafts of the props all facing up and in may have been a mistake as well. perhaps vertical or slightly outward would have been better.
What I do know is that ducted fans are not the thing for this They are all about speed, you need thrust. Try GWS motors, IPS series, If you can afford it, use aon brushless, and 4 castle creations motors. I played a bit with the C gearbox.
google roswell flyer to get a lead on reverse pitch props. They will also sell carbon fiber rods. Depron foam may also be a valid technique. Use 4 props, 4 motors, and use torque to control yaw.
You do not want to leave yaw uncontrolled. You do not want to leave yaw uncontrolled. Really, I mean it. Tourque will induce spin, and unless you have vertical stabilizers to counter the rotation, you will be in bad shape really really quickly.
Alternately, buy an Align TREX helicopter, and the lightest brushless motor that is adequate, ( i think the ticket here is the NEU motor), and a castle creations 35A speed control.
Just my $0.02

Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload

Polytechforum.com is a website by engineers for engineers. It is not affiliated with any of manufacturers or vendors discussed here. All logos and trade names are the property of their respective owners.