Posted by Sami Finnila on November 2, 2008 at 10:00am
I made my first test flight today with my Lego NXT AutoPilot (all the needed parts are already commercially available!!).The test flight was a success when it comes to AutoPilot but in the middle of the flight my EasyGlider suffered an elevator servo failure. NXT, however, managed to make something like a landing and nothing was broken.Here are some specs of my NXT AutoPilot:Hardware:-Mindsensors Accelerometer-Mindsensors Servo Controller-Mindsensors Compass Sensor (on the same input port as accelerometer)-2x HiTechnic rate gyros-(Homebrewed pressure-sensor for altitude control but this is not really neccessary (on the same input port as servo controller))Software:-Full NXT based stabilisation with PID (uses integrated gyro outputs as input and accelerometer data to set gyro bias)-GPS navigation with the help of the compass sensor-All coding made with RobotC-What would you like? :)I'm really amazed how well this assembly works. Gyro integration - and how well it works - is what amazed me most: The gyro drift is generally less than 5deg/min which accelerometer can easily compensate (I didn't even use Kalman Filter and the AutoPilot flies the EasyGlider better than I do!). As for NXT's CPU speed: only about 50-60% of CPU time is being used while all the functions of the AutoPilot are on.Just like Chris said: "It's so cool--". ..and now you can finally make this yourself! I'll publish the source code (?) when I have translated all the commentations to english....More to come soon! (Videos, photos and so on...)Sami F.
I was asked for the source code of this AutoPilot and as at the moment it looks like the model aircraft season is over for this year in Finland (It's snowing right now quite heavily..) I thought that I might as well publish the source. But I need to stress the fact that although I have been able to make a couple of stable flights the code is still in beta and is as such VERY unreliable. I therefore can take absolutely no responsiblility for its use or its reliability. There has been for example some odd behaviour with the GPS navigation every now and then so there's still some debugging to do.
True. The angle was the thoughest part as it's just like having your center of gravity in completely wrong place if your thrust angle is wrong.. But for an AutoPilot with automatic landing a pusher prop was a must.
I used Finnfoam for making it (it's polyurethane in the form of sheets, basically) and reinforced it with some 2,5mm carbon fiber rods. If you use cyano acrylate for cluing it, however, you'll need to be rather fast as the clue will eat the polyurethane. But I'm happy I did that because I got rid of my gear box and could just toss in a more powerfull brushless set. The assembly turned out rather sturdy too. The easiest way to work with polyurethane is to just grind it with abrasive paper after having cut it into its shape.
Basically you'd probably like your mount a bit further back than mine because it'd be ideal if you could direct the thrust towards (or directly away from) the planes center of gravity (you should also take the flying angle of the plane into account).. I also mounted the motor so that by adding (or taking away) some pieces of polyurethane under the motor I'm able to easily change the thrust angle.
(Something should be remembered while making gliders to work with pushers is that the effiniency of the motor drops as the prop gets smaller.)
PS--I like your DIY power pylon, which looks like it frees up a lot of space in the EasyGlider nose. Any tips on how to build one (or links to tutorials elsewhere)?
Yeah.. Luckily this is not my first flying RC.. ;) The freedom of usage is defenitely what I love most in gliders: I can go to my back yard and hand launch a glider whenever I want to and landing is somewhat easy too because my gliders (generally) fly so slow. (My backyard BTW is rather a big field so no worries there.) I have also some faster aircraft available but I'd rather not risk them (yet) as one glitch in the code might cause an unrecoverable error (and damage...) to the aircraft.
That NSP Viking looks promising as for the space, price and size and it shouldn't be too unstable either by the looks of it. But I'll have to seriously consider if my budget has enough room even for that kind of investment in the near future...
I use the NSP Viking, which has more room (although probably not enough for all that you're carrying), but isn't quite as stable and sturdy as the EasyGlider. The best choice might be a big high-wing plane, like a Senior Telemaster, which has loads of room. But that's not one for the local park...
FWIW, here's the demo code that I used to show how the HiTechnic iGyros, accelerometers and MUX could stabilize an aircraft. It doesn't use a Kalman filter (and just uses the P term of a PID), and the BT GPS code isn't integrated, but it may be useful for those wanting some RobotC code for this sort of function. The BT GPS code is used is derived from Steve Hassenplug's code. It's here.
Thanks! I actually had to toss some of the I2C sensors on the same port (for the basic version without barometer and compass sensor this is not needed). Didn't get off with it easy anyways: Just checked that I have produced a little over 1200 lines of (C/C++) code over the last two weeks (although some of it is not mine).. Also, I won't probably publish the current version of the NXT AutoPilot that is able to land itself (due to it's risky nature and the need of a barometer) so you'll need an additional failsafe which I forgot to list above (for which I'll publish a PCB/DIY-instructions which uses 3 relays for 5 ch failsafe estimated cost of which is about 5 to 10 euros or so).
I'm busy with some school work next weekend so the next test flight will probably be postponed by a week or so (as darkness falls at these latitudes so early that after school I'm not able to fly anymore). As soon as I have been able to make a full successfull test flight I'll post the source and so on.. Until then... ;)
Comments
But here you go: NXT AutoPilot v0.0b.zip
I used Finnfoam for making it (it's polyurethane in the form of sheets, basically) and reinforced it with some 2,5mm carbon fiber rods. If you use cyano acrylate for cluing it, however, you'll need to be rather fast as the clue will eat the polyurethane. But I'm happy I did that because I got rid of my gear box and could just toss in a more powerfull brushless set. The assembly turned out rather sturdy too. The easiest way to work with polyurethane is to just grind it with abrasive paper after having cut it into its shape.
Basically you'd probably like your mount a bit further back than mine because it'd be ideal if you could direct the thrust towards (or directly away from) the planes center of gravity (you should also take the flying angle of the plane into account).. I also mounted the motor so that by adding (or taking away) some pieces of polyurethane under the motor I'm able to easily change the thrust angle.
(Something should be remembered while making gliders to work with pushers is that the effiniency of the motor drops as the prop gets smaller.)
I've seen the threads at rcgroups showing lots of EZs with EG wings , but the EasyGlider with a pusher prop looks like it would be the way to go!
That NSP Viking looks promising as for the space, price and size and it shouldn't be too unstable either by the looks of it. But I'll have to seriously consider if my budget has enough room even for that kind of investment in the near future...
I use the NSP Viking, which has more room (although probably not enough for all that you're carrying), but isn't quite as stable and sturdy as the EasyGlider. The best choice might be a big high-wing plane, like a Senior Telemaster, which has loads of room. But that's not one for the local park...
FWIW, here's the demo code that I used to show how the HiTechnic iGyros, accelerometers and MUX could stabilize an aircraft. It doesn't use a Kalman filter (and just uses the P term of a PID), and the BT GPS code isn't integrated, but it may be useful for those wanting some RobotC code for this sort of function. The BT GPS code is used is derived from Steve Hassenplug's code. It's here.
I'm busy with some school work next weekend so the next test flight will probably be postponed by a week or so (as darkness falls at these latitudes so early that after school I'm not able to fly anymore). As soon as I have been able to make a full successfull test flight I'll post the source and so on.. Until then... ;)
Sami F.