All Posts (14029)

Sort by
3D Robotics

New autopilot/IMU board from SparkFun

Some of you may have noticed that for quite a while SparkFun has been listing a "UAV Development Platform - ET312 + IMU" that's always been out of stock. I backordered one out of curiosity last year, and pretty much forgot about it. Then, last week, SparkFun called and said that they'd "finally got it working" and it was now available for backorder customers. Did I want one? Sure! It showed up today and it's going to take me some time to figure it out properly, but here are some first observations:
  • It's a "development platform", not a fully-featured working autopilot. Although there is firmware available for it, it's designed to be a standard hardware package around which you can develop your own autopilot code.
  • The firmware comes pre-loaded, and works pretty much as advertised. I tested it on the ground, so it was hard to tell how well it actually stabilizes a plane, but the elevator seemed to respond properly to tilting. The rudder didn't, but that was probably because it was trying to turn the "plane" to a destination and I wasn't playing along ;-)
  • That firmware is written in assembly, so good luck to you! It seems to do pretty much the basics of what you'd want an autopilot to do (and I mean basics--there's no provision for waypoints, and it's just a "fly home" autopilot at the moment), but if you want to tweak it you'll have to do learn PIC assembly (not super hard, but still: what's wrong with C?!)
  • It includes a 4-degree-of-freedom IMU: two gyros and one two-axis accelerometer.
  • As the two-axis configuration suggests, it's designed to control just two channels: elevator and rudder. A third channel is used to turn it on and off.
  • It's got a good SiRF III GPS module on board, although you'll need to add your own antenna through the included SMA connector.
  • At $299, it's not cheap. But when you consider that a simple set of accelerometers and gyros will set you back $109, the addition of GPS and a PIC processor, all nicely integrated on a board, is probably worth it. But it still seems about $100 overpriced to me.
  • You need some additional hardware to work with it: the main thing is an ICD2 interface to program the onboard PIC chip and for debugging. That will set you back another $120.
  • The documentation looks excellent, with a lot of theory on control and aerodynamics as well as a lot of help on PIC assembly language and development suggestions for the platform.
  • Bottom line: this looks like a good, albeit expensive, way to learn about IMU-based autopilots. It's not really an autopilot itself yet, but could be made into a relatively low-featured one pretty easily. I think it's accurately described as a "development platform", so if you're in the market for that and can afford a $300 lesson, I can recommend it as a unique and well-made way to get started.
Read more…
3D Robotics

Minimum Blimp UAV bench testing

Jordi and I have been hard at work on the Minimum Blimp UAV and things are coming together nicely. Here are some videos: First, a test of the Ping))) sensor that we're using for altitude hold. Don't you love the tray-table simulation platform? ;-) The Ping))) sensors are strapped to the far end of the table. Next, a test of the location-spotting IR tranceivers. In this test we've done a few interesting things. First, you'll note the LEDs turn off for part of the trial. That's because the onboard IR tranceiver doesn't need to have its LEDs on (which consume a lot of power) because it's only receiving data on the position of the beacon transceiver. (The ground-based beacon doesn't need to know where the blimp is) So we take a reading every second, then disable the board for the rest of the second--it's easy to do in software and the board comes back in 75ms each time. Like this: -Set the Enable pin to High (turn on the beacon) -Wait 75 milli seconds to give time for wake up -Read and store the 4 inputs (depending on how noisy the data is in the real world, we make take a dozen readings at 200Hz here and average them to create a direction vector) -Turn off the beacon (Enable pin low) -Process the data, and return the result for navigation... The second thing we've done is boost the voltage going into the ground-based transceiver to extend its range. We got 10 feet at 5v, but the boards can take up to 16v. We'll do a proper test over the next few days, but I'm hoping to get at least 20ft with higher voltage. And since that's 20ft in each direction, it potentially gives us a working blimp range of 40ft, centered around the beacon.
Read more…
3D Robotics
In an earlier post, I discussed the importance of having a redundant failsafe board so you can regain control in the advent (likelyhood!) of an autopilot failure. Basically, what that board does is sits in-between your autopilot, RC receiver and servos. You switch it between receiver and autopilot with a spare channels on your transmitter. If your autopilot fails, even if it loses all power, the failsafe board, which is independently powered, will allow you to switch control back to the RC system. Here's a quick tutorial on the board we chose, an RxMux from Reactive Technologies:. You'll need to do two bits of soldering first. The board doesn't come with connectors, so you've got to order those. It's a little funky, but the way to do that is to "build a part" at Smatec. The connectors you need are Samtec TSW-108-25-G-T-RA, and you just enter in the right numbers or letters in each data field, and it then confirms that this is a valid part and lets you order a sample for free! They sent me three of these right-angle connectors, which was just what I needed. Thanks Samtec! Once you get them you solder them on to the RxMux. The second bit of soldering is that you've got to make a couple of female-to-female Y-cables. Simply take three of these cables and cut them in half, then resolder the wires, two connectors on one side, one on the other, with heatshrink tubing at each junction. Then just plug it all together. The channels that don't go through your autopilot can go straight to Input A on the RxMux. The ones that do go through your autopilot will use the Y connectors, with one lead going to the RxMux and the other to the autopilot. And all the servo-out leads from your autopilot go to Input B on the RxMux. It's a lot of wires, but it's actually pretty straightforward. There's no configuration required of the RxMux--whatever RC channel you connect to the Channel 8 input of the RxMux's Input A is the switching channel, and it just transfers control of the servos from Input A to Input B and back again as desired. Here's a video of it at work:
Read more…
3D Robotics
We love FlightGear and all that it stands for, but the truth is that it's a bit complicated for beginners. For the rest of us, there's the old stand-by, Microsoft Flight simulator. There's a free plug-in for MS Flight Simulator 2004 called GPSOut that simply outputs GPS of the current flight to the serial port of your choosing, with whatever NMEA sentences you want. If you've got FS 2004, download that, copy the dll and ini files to your Flight Simulator modules folder and edit the following lines in the GSPout.ini file so that they read like this: Sentences=RMC,GGA [add any others you want] Port=COM2 [change to whatever port you're using for your serial connection that substitutes for your GPS] Speed=4800 There's no sign of the plug-in in the FS program when it's running, but if you've copied it to the right directory, it should be silently outputting the GPS in the background while you're flying. So fly to the area where you'll be testing your real UAV and you should see the correct GPS data streaming into your Basic Stamp autopilot. Here's a video of this working (that's me and my ten-year-old):
Read more…

Short Range I.R. Radar

Basically here is the site it is a short range inferred radar that could be used for a failsafe in case your uav gets close to the ground. However it is slightly bulky but that can be easily modified because it was made for parking cars. This includes a servo with an inferred transceiver or receiver and transmitter separate, i haven't really looked into it very far. If you are board and want to serf the web go to "Hackaday.com". Thats where i found the range finder and is a great place to hack if you want to.

finished.jpg

Read more…
3D Robotics

How college Blimp UAV contests work

The main existing US Blimp UAV competition is the Indoor Aerial Robot Competition (IARC) held every year since 2005 at Drexel University in Phladelphia. The contest is designed mostly as an exercise in remote control, both human and computer. The blimps appear to be all RC, with wireless cameras pointing down. The robotics part is either an image processing and control task, where the ground-based computer analyzes the video and transmits commands to the blimp via a trainer cord to a standard RC transmitter, or one in which a human operator does the same thing (looking only at the video stream). Examples of the computer-driven tasks are line following and fighting gusts of wind, while the human-driven tasks include following a maze and spotting objects in a certain order. The basic platform is a $850 52" envelope with three motors, servo vectoring (meaning the motors are on a shaft that tilts them up or down), and no onboard intelligence, either processing or sensors (it's just RC, with a wireless camera). The contest description includes the possibility that teams could add ultrasonic sensors or gauge speed and direction with optical flow calculations from the camera, and some have done that with ultrasonic and IR sensors, but all the data is sent to the ground computers, processed there, and turned into RC commands back to the blimp. Here's a paper that describes how one team's blimp works. The main difference between this approach and the one we're pursuing with our Minimum and Maximum Blimp UAVs is that we're entirely focused on onboard intelligence and sensing. Our blimps have two-way wireless links, but not conventional RC ones, and they're not designed for manual control. At the moment, we're making the autonomous navigation job easier with ground-based beacons, but the aim is to do away with those eventually and navigate like our outdoor UAVs do, entirely on their own. Here's a video from last year's competition, which was held in April (presumably this year's will be announced soon--I've emailed for more info):
Read more…
3D Robotics

Blimp UAV update: Minimum and Maximum versions

We've forked the Blimp UAV into two projects, a minimum and a maximum one. The maximum one is the one that's using the NorthStar "synthetic GPS" directional system and all sorts of other goodies to be a real indoor UAV, with full room sense and navigation ability. That's moving ahead really well, and I hope to have PCBs and code to show you soon. But we also wanted to create a "minimum" blimp UAV that was the cheapest, simplest robotic blimp possible. Here's what the Minimum Blimp UAV consists of: * A BlubberBot envelope and dual thruster motors and mounts (we cannibalized a few other bits from this kit, such as the battery holder and voltage regulator). * A pair of Pololu IR transceivers (one a beacon on the ground, the other onboard) * A third motor for vertical control * A Parallax Ping))) ultrasonic sensor for altitude sensing. * A Boarduino board with ATMega168 chip (Arduino clone). * Two Pololu twin motor driver microboards All that this Blimp UAV is designed to do is to maintain a constant altitude and navigate around a stationary IR beacon on the ground (it just heads towards the beacon, overshoots, turns around and heads back at it). But that's the beginnings of real autonomy! Target price: <$100 (we're not there yet). Here's a video that shows how the Pololu IR transceivers work (and here's some BS2 code to test them):
Read more…
3D Robotics

Some upgrades/changes to the site

As some of you know, this site is based on the Ning platform, and they've just rolled out some changes. Relevent parts for us include: --Mass Uploader for Photos, Videos, and Music/Podcasts You'll now be able to upload up to 100 photos, 30 videos or 100 songs/podcasts in one fell swoop. That's not to say that adding all of this stuff won't take forever, but go grab a snack or five and you'll be all set. --Blog "Improvements" - Round 1 Frankly, this is a huge downgrade, but thankfully it's only temporary. They've replaced the fancy yet buggy rich text editor with the standard text editor, whose only benefit is that it works in Safari. They also added blog tags (so you can add keywords related to your blog post for search purposes), previous/next links (so you can quickly page between that member's blogs), and pinging of 3rd-party update services (so you can submit your blogs to all the popular blog search engines. The loss of the rich text editor really sucks, since you now have to hand-code things like bullet lists and other formatting and the page looks like crap with all the HTML showing, but I'm assured it's not for long. -- Higher Video Quality They've updated the video player to set on a fixed size which will result in better-looking videos, while eliminating the options to have small and medium size videos. The good news of being based on a hosted platform: in general, things get better over time as technology improves and features are added, without much effort on my part. The bad news: I can't control the pace or quality of those.
Read more…

added duct to coaxial rotor

Big improvement in stability with the addition of a simple duct made from a sheet of 2.5mm RCF (extruded polystyrene) foam from rcfoam.com. The RCF is similar to depron that was recommended by another forum member, but somewhat more flexible and higher density. I was able to bend the RCF sheet to a 12-inch diameter, while a similar thickness depron sheet broke when bending.There is some yaw rotation at the beginning of the clip, but you can see toward the end that I got that under control, actually overshooting by a bit. Now that I have some semblance of control, it has become obvious that the current motor/prop configuration (CR2805 w/12" props) can't develop enough lift to get more than a few inches off the ground (i.e. out of ground effect), probably because there aren't enough windings on the motors (1430 rev/V), so I will have to return to the earlier CR2816 coaxial motor set, which weighs more but does have sufficient power.One other lesson which I mentioned on the forum - pre-flight inspection now includes a check that the electronics are secure. On the first test flight, the camera module worked itself loose and dropped onto the props -

Here's how things looked after I rebuilt the duct and replaced the camera (now secured with a cable tie)

Read more…
3D Robotics

Dealing with different GPS versions

Another advantage of GPS simulation: you get to discover horrible glitches in the matrix, such as the inconvenient fact that GPS comes in different dialects, each of which requires different parsing. I found this out when my GPS parser was working with the simulator, but not the real EM406. The problem turned out to be that the simulator outputs GPS time as hhmmss, while the EM406 outputs it as hhmmss.sss (the newer SIRF III chipset has fractional seconds). How to write a parser that can handle both? The Basic Stamp's powerful SERIN formatting commands came to the rescue. Our entire GPS parser is built right into the SERIN command: SERIN GPS,Baud,5000,noGPSData,[WAIT("GPGGA,"),DEC TempW, WAIT (","), DEC LatDeg, DEC LatMin, SKIP 3, DEC LonDeg, DEC LonMin, SKIP 12, DEC TempAlt(1)] The "DEC TempW, WAIT (",")" tells the serial parser to read the first number after GPGGA, then skip till after the next comma. On the old version of NMEA (and the simulator), the comma is the next thing so we're not skipping anything. But on the new EM406, this command will skip the fractional seconds and the comma. It's worth studying the whole range of SERIN formatting commands. With clever use of skips, waits and variable entries, you can process pretty much anything by turning SERIN into an embedded data parser.
Read more…
3D Robotics

Why you MUST simulate before flying

I've had a couple people ask why there's such an emphasis here on GPS simulation. The simple answer is "Because we don't want to lose our UAVs!" With regular robots, when they've got bugs or software crashes, you just pick them up and fix the problem. With UAVs, they're likely to fly away forever or end up in a pile of pieces. They're more like satellites or Mars rovers than battlebots--you can't fix them from the ground, and when they go wrong in the air, it can be catastrophic. One example: in my Basic Stamp code, to get around the lack of floating point, we truncate the lat/lon to one word, which means assuming that all waypoints are within one full degree of where we are. Which is a perfectly safe assumption---unless you enter the waypoint wrong, which I did the very first time. In the air, this would have led to a fly-away. On the ground, where I could read the data coming in over the debug terminal, I spotted the problem right away. Now the autopilot has an abort routine that returns it to RC control if the next waypoint is too far away. (That way we get remote notice that something has gone wrong and we can bring it back manually; later on, when we've demonstrated that it can fly to waypoints properly, we'll switch that to a "return to home location" command in the event of an error) GPS simulation identifies problems faster than anything else you could imagine, and safely, too. If you don't want to throw away hundreds of dollars of equipment and countless hours, Just Do It! With that in mind, the Basic Stamp autopilot code will no longer support GPS modules that aren't compatible with standard GPS simulators (ie, output regular NMEA sentences). That means that if you've got the Parallax GPS module, you can't use it in "smart" mode anymore; you've got to ground its /RAW pin so that it's a standard GPS module. In the latest rev of the software, I've incorporate the Parallax servo driver board as an option, and eliminated the Parallax GPS module smart mode, so that leaves just one code set, for which the standard hardware is a Basic Stamp BS2p chip, EM406 GPS module and FT639 servo driver. If you've got other hardware, the comments on the code will tell you how to modify it, but that's the recommended package. From now on, I'll just be working on that single code set, so I hope version control problems and other confusion are behind us. The software is here.
Read more…

99th Blog Post!

Alright i get the 99th blog post or 100th. I might have lost count but ill let the next person have the 100th. I want to start out by saying congratulations guys this is a very successful site with 500+ people and still growing. We all owe Chris Anderson one for making this site!. Um tha the tha tha that thats all folks!
Read more…
3D Robotics

Bug fixes in the Basic Stamp Autopilot code

Now that I'm doing hardware-in-the-loop testing with the GPS simulator, the bugs in my code are showing up quickly, just as they should. Here's one small-but-deadly one I found this eve: all the code using the FT639 servo controller chip should have a special serial port configuration line that's different from the one we use for the GPS module. Turns out that the GPS module runs at 4800 baud and the FT639 runs at 2400 baud. Sigh. That'll teach me to read the spec sheets.

For the BS2p chip that we use, you need to insert the line "FTBaud CON 17405" and switch all the "Baud"s in the SEROUT commands to that chip to "FTBaud". I've updated both of the autopilot programs here that use the FT639 chip appropriately, so they should both work fine now. If you've been having trouble with the code, download the latest versions from that post, and see if this doesn't fix the problem.

Here's what's been tested so far:

1) Channel 5 turns the autopilot on and off
2) When in RC mode, the Basic Stamp passes through the rudder and elevator commands from the receiver to the servos. Jerkyness is minimal.
3) When in autonomous mode, GPS data is recorded, correctly parsed, and commands are send to the rudder and elevator servos.

Next to test: whether the waypoint navigation routines are working right.

The picture above shows the test setup with two servos, a RC receiver, and a GPS module. For GPS simulation, you just replace the GPS module with a USB-to-serial board, and then use GPS simulation software to generated the GPS data as described in this post. Here's what the setup above looks like with the USB-to-serial board replacing the GPS module:

Read more…

uav project update - fixed blade coaxial rotor

One of the uav projects I started last summer was a fixed blade coaxial rotor flyer that was steered by shifting battery weight in the style of the old Hiller Flying Platform . I put the project on hold while waiting for some lighter-weight brushless coaxial motors from Maxx Products (CR2805), and then got further sidetracked by the X3D-BL quad project.

This past week, I restarted the project, adding a mount for an SRV-1 Blackfin Camera board set, and writing the code to drive four servo channels - two channels for the E-flight electronic speed controllers, and two channels for the servos that gimbal the battery pack using a hobby helicopter swashplate. The servo interface is working quite well, and I have a slightly modified version of the java console used for the X3D which shifts the battery weight and controls the throttle. Horizontal translation is controlled by shifting the battery weight (as seen in the following videos), and yaw is controlled by trimming the difference in speed between the two prop motors.

In the first video, you can see how the weight shift mechanism works. However, I found that my battery pack was not producing sufficient output, so the flyer never got very far. In the second video, the battery had been replaced, but clearly some work is needed on steering. The crash at the end shortened one of the props by 0.5", but everything else was fine.




I think the basic structure is there, so the next step is to add accelerometers to aid in stabilizing attitude. I have both a 2-axis Analog Devices ADXL202E and a 3-axis LIS3LV, so I'll add one of the other. A gyro is clearly needed as well for yaw control, and I'm not yet certain which to use - I have a few with SPI interfaces that require 5V, or I might go with an analog output and use a voltage-to-frequency converter to capture the signal, since I don't have any A/D channels.

Read more…

Me and my team have come a long way since I first posted on RC-Groups with interest of building a UAV.

I started pretty much from square zero, other than having some experience with Lego Mindstorms. I didn't know why my Stamp was being shorted when I did not use a resistor with an LED. I managed to short circuit my Parallax Servo Controller 2-3 times, ultimately resulting inthe battery springing a leak. I didn't know what a green dot meant on aschematic, and I almost fried my FPU chip. But in time, I learned frommy mistakes.

I have much to thank to this website, Parallaxforums, and RC-groups. I personally have learned ten times more from this project thanthree year's worth of science and technology classes, and to have themoney and freedom to design/research whatever you're interested in is agreat feeling for an aspiring engineer. It is really a great experience.

After months of research, we drafted a project proposal and emailed it to BAE Systems, a defense contractor company with ties to the Honolulu school system, and our principal, with requests for sponsorship.

BAE Systems responded to us in about 2 weeks, expressing interest in our proposal and offering us $363 to build our prototype (They offered $455, but I declined the additional money as I decided to withhold buying the airframe until I was confident this project could be done). Then shortly afterwards, our principal responded, requesting us to do a PowerPoint presentation to her, a few teachers, and two engineers.

So we created a PowerPoint and crammed as much detail into it as possible (complete with GoogleEarth footage zooming in on a simulation flight path =P), which impressed the principal, who decided on the spot to fund us the remaining $200 we needed to buy the Easy Star and a radio transceiver system. As it turned out, one of the engineers (who will be our mentor) actually has a hobby doing the exact same thing we were doing (he uses the Easy Star as well)!

While all this was happening, we were also building a ground-based prototype to test our autopilot system. We used relatively low-tech materials (as you can see in the photograph) but it works fairly well and has a good turning response. My only concern is that it is too slow to get any sort of accurate bearing from the GPS's differential positioning (In that case though, we'll just use a digital compass to simulate a GPS bearing reading).

Anyway, after printing out Chris's Basic Stamp autopilot source code, GPS demo source code, pages and pages of floating point coprocessor instruction and data sheets, and PSC documentation, and then analyzing it, highlighting it, and annotating it, I've finally grown confident enough to code my own navigation program from scratch, although I pretty much used Chris's source code as an autopilot bible while I coded.

The current program works in a similiar way to Chris's navigation program, except it uses the floating point coprocessor, which allows a much more liberal use of variable storage, not to mention a relatively high precision without having to resort to clever tricks with integer-only math. The only difference is that since the turning system is a differential drive with continuous rotation servos, the turning angle is inserted into a function for the duration of turn, rather than the position of the rudder.

There are some logic and mathematical errors, especially with unit conversions, and when I work with bits, bytes, words, etc, since I don't really have any formal computer science training, so those concepts are foreign to me, but I think for the most part it looks okay. (It compiles!)

I am thinking of upgrading to the BS2P though, since currently I'm not sure how to implement waypoint lookups, other than just using constant arrays (do those even exist?!). The increased speed and scratchpad RAM will be nice.

So here is the program. For some reason, you can't directly view it on our website since it gives you a 404 error (it works offline), but you can still download it by going to the homepage and right-clicking --> save as, but you would need the Basic Stamp Editor to view it. (http://www.project-uav.net/index.html) I don't suggest you read our website other than the front page though, since it is mostly redundant information and mainly for academic purposes.

Otherwise, I've also uploaded the code to pastebin, so you can view it there too. Unfortunately without syntax highlighting it is a huge eyesore, but hopefully you can follow it.

http://www.pastebin.org/18059

P.S. I type as soon as a thought gets in my head, so in retrospect it kinda sounds like I'm rambling, so please excuse that.









Read more…
3D Robotics
In an earlier post (and here), I showed how to switch the Basic Stamp autopilot from the Parallax GPS module to the better EM406. The reason to do this isn't just the superior reception of the EM406. It's also that the original version of the Basic Stamp autopilot is based on the Parallax GPS Module's "smart mode" of receiving GPS data, which is both incompatible with all other GPS modules and with all known GPS simulators.

So this was as good a time as any for me to upgrade the Basic Stamp autopilot for the EM406, so we can both use a better module and use GPS simulators (as described in this tutorial). If you want to use a GPS simulator with your Basic Stamp autopilot, you MUST make this change.

Here's the beta code of my port to the EM406. It was kind of a hassle, due to the different ways the two modules give GPS data, but the new version has a built-in GPS parser and is otherwise a lot more robust and can handle any GPS module you want to pair it with. It's also cleaned up a bit, so it's simpler and easier to follow. Tomorrow I'll test it with hardware in the loop and see how it does...

[UPDATE: I caught a lot of bugs in this code, including my stupidity in forgetting that if you place a value in two bytes of scratchpad memory with a PUT [location] Word [value] command, you've got to do the same when you GET: ie, "GET [location] Word [variable]". In the previous code I was PUTing with a Word modifier, but not including that modifier when I'd GET. Anyway, it's all fixed in the code linked in the paragraph above. Still need to do some tweaking to do the conversions properly to get around the limited variable space, but we're pretty close.]

Read more…
3D Robotics

If you've been following the exploits of IceBear and a few others, you know that recently they've been beta testing a hot new autopilot that promises to be better and cheaper than anything else in the under $1,000 category. It's called the AttoPilot and I'm delighted that our third interview is Dean Goedde, its creator, who is here to tell us more.

Before we start, a little overview: To date, if you wanted to build an under-$1,000 UAV you only had two choices for the autopilot--make it yourself or pay $500-$800 for a UNAV PicoPilot (and the version of that with the features you want--the NAT--will push the total cost of the UAV to about $1,500).

I'm flying with PicoPilots and generally like them, but the relatively high cost and low feature set of that hardware (plus its total lack of customizability) is why Dean decided to make something cheaper and better. The picture above is him after one of his first successful test flights, which he says shows what he looks like "after 30+hours being awake hammering out new code, followed by generation of 6MB of log data from 20 minute flight!"

AttoPilot could revolutionize our hobby. Dean hasn't announced exact pricing yet, but he's targeting roughly half the price of the PicoPilot and the feature set matches those of autopilots costing thousands of dollars more. The early reports from the beta testers have been very positive.

This is still pre-release, so Dean doesn't have the website up yet (it will eventually be at attopilot.com) and there is still much be done on manufacturing, documentation and fulfillment. But I'm thrilled by what we've seen so far, and I'm hoping that AttoPilot will be powerful, customizeable and affordable--which is really what DIY Drones is all about. And, as you'll see at the end of this post, two years ago he started just like us, learning basic embedded programming with Parallax kits.

The interview will be in three parts:

Here's Part 1:

Q: Can you tell us a little about yourself, day job, background, family, education, hobbies, etc?

I'm 36 years old, born in 1971 in the middle of the Apollo moon rocket days. At age 4 and 5, I would take construction paper, color it red with a crayon, chop it up (to increase surface area) and pack it in a tube with fins and a nosecone. I was suprised when it didn't "go", but can't remember if I tried to apply fire or not (I hope not!).

My mom's older brother is my godfather, and he is like a 2nd dad. He grew up in the 1940's building free flight planes, then did some of the earliest RC in the 50's and 60's (1 channel, "escapement" if you have ever heard of this it uses a rubber motor for torque that applies a bang-bang left/right/neutral choice) and a single pushbutton on the RC Tx. He was a maintenance guy in the US airforce in the early 1960's (heady times indeed) and is an electronics guru, that worked on missile silo maintenance.

In the 1970's he got into multi-channel Heathkit RC gear, and flies on that same equipment to this day. I have memory back to age 1 or so - so I clearly remember a warm summer afternoon in 1975 or so where I was playing in the front yard (rural area) and a 2m sailplane lands on the front yard but I was totally alone, then about 30 seconds later here comes my Uncle sitting on the open window jam of a car driven by his sister in law, coming down the dusty rock road at 50mph, he is hanging out of the car with Tx in hand. He had just flown the plane from his house about 2 miles away.

He was also the type of uncle that is very generous, bringing a plane to family get togethers, letting all of us kids flying it, being helpful, and showing us how to do stunts even. He is just such a super guy and a BIG reason I love this stuff, that I HAD to dedicate a paragraph to him. He is currently waiting for serial # 00001 of the production version of AttoPilot. I talk to him about 3 times a week.

I started building free-flight balsa planes of my own design at age 8. Age 9 I was fascinated with the Wright Brothers, reading a book about them in the 4th grade classroom literally 100 times in that year. This book was not dumbed down for kids, it described all of the background, trial and error, wind tunnel testing, extensive testing in the Carolinas over the sand dunes, about their homemade gasoline engine, etc.... I was enthralled. For 11th birthday my uncle and aunt bought me a 2m sailplane balsa kit from hobby-lobby called the Wanderer. It costs $14 as a kit back in 1982. My parents told me that if I finished it, they would buy the RC equipment.

I built it 100% myself, the covering job looked crappy, but it flew well. I added an 0.049 engine pod, then next year an astro 05 electric motor direct drive on a 7x4 prop. Electric fascinated me from the beginning. From age 12-15 I built many more RC planes, all of them self-designs. The first 5 or 6 just did not fly, but it just made me try harder. I then built a Goldberg Eaglet-50 (0.25 engine, full house control), and was even more hooked.

I studied music performance (trumpet) the first 3 years of undergraduate, but then switched to chemistry. After my bachelor chem degree, I got a PhD in chemistry at the University of Illinois at Urbana-Champaign. In 2001 I moved to Phoenix Arizona to work for Intel Corp (the chipmaker) at a high-volume fab as an engineer, and have worked for them until present.

At my day job, I do a lot of data mining, and looking for correlations between effects and their possible causes. I have 7 years experience sifting through literally terabytes of real-world data from $3 Billion chip making fabs. Looking at data is in my blood, as well as iterative methods of every sort. I am an Excel and SAS JMP guru, though up until recently had no programming experience.

Hobbies include flying RC, AutoCAD design of airplanes and laminate rifle stocks, gunsmithing and target shooting, aircraft construction, and now (the last 2 years) electronics and programming. I like to expose/develop/etch my own PCBs at home for rapid prototypes, and am able to do solder pasting of the smallest SMD components (0402, QFN, etc...).

I have almost no background in electronics or programming except self-taught starting in January 2006. I must recommend the Parallax company for EXCELLENT tutorials/kits/discussion forums to help utter beginners. That is where I was 24 months ago.

Read more…
3D Robotics

Q: You decided to go with an IR sensor (aka "thermopile", shown) rather than a gyro and accelerometer in an IMU for the first version. Can you explain how you came to that decision?

I have found that even without fancy code, the thermopile is a surprisingly robust solution; a LOT of bang for the buck. This keeps my AttoPilot in the spirit of "simplest low cost 3 axis autopilot.


My first flights were with very stable aircraft (the Miss2 old-timer). Even with this plane, over-steering was a problem at times. I realized some method of attitude sensing was a strict requirement for any serious autopilot.


I started out flying the FMA CoPilot [which is based on the IR sensor show above] only as the typical RC usage on a small unstable homemade plane with no dihedral and just aileron/elevator flight control. After experimentation, I realized that AttoPilot could skew the inputs to the CoPilot control box, and all of a sudden I had AttoPilot flying that same small unstable plane (at 70+km/h) even better than the raw AttoPilot used to fly the polyhedral winged Miss2.


Later, I reverse-engineered the CoPilot sensor head, and figured out how to interface to it directly to AttoPilot via 2 channel ADC (BTW, there is mis-information on the Paparazzi website regarding the FMA sensor head; it say CoPilot head is designed for 5V, but in fact it is actually a 3.3V device, so you don't need to replace resistors to make the gains correct), so now AttoPilot has direct use of the thermopile data, and therefore has direct idea of pitch and roll angle for a robust flight control solution that will never over or under-control.


I am integrating GPS and barometer data with the thermopile, so the solution is very robust, and self tuning. Additionally, although I have a working Kalman IMU, accelerometers have the limitation of being affected by motor vibration, whereas the thermopiles are immune to vibration.


So, in the end, to keep in spirit of a low-cost full function autopilot, I am starting out offering the thermopile version. As I wrote above, my use of thermopiles is more sophisticated than FMA's, so people should not be fearful about how well it will control their plane. I do have a working Kalman IMU, but just not ready to a level that fits my vision of a plug-and-play autopilot. Building all of the fancy control routines for my usage of CoPilot thermopiles is a nice stepping stone to a Kalman IMU later.


Q: What was the biggest challenge in designing AttoPilot?

Besides learning embedded programming over the last 12 months, besides coming up with the trigonometry routines that work anywhere on the globe, the biggest challenge in came from learnings with the Beta testers: making the Rx-interface code object TRULY universal to all R/C Rx out there. I had to crack down on myslef and learn assembly code, which I had avoided up until 2 months ago. Now that I know assembly, I am not only HOOKED on it, but re-writing other code objects.

Q: What advice do you have for others that are interested in building autopilots or related gear?

These things are difficult, like Masters or PhD thesis level work, so don't kid yourself that it is easy. Have passion for it. If you are so determined to make something happen that the thought of it not working out makes you very unhappy, then you WILL find a way to get around ANY barrier, including lack of knowledge. Just because you don't know how to do something is the WORST reason for not doing it! Read "Think and Grow Rich" by Napolean Hill - Passion for something is the #1 ingredient to success.

[Part 1 of this interview series is here. Part 2 is here.]

Read more…