I make thousands of mistakes a day, mistakes typing, mistakes coding software, mistakes driving, mistakes walking, forgetting to order my sandwich without mayo, etc. Most of the time they are immediately obvious — a red squiggly line under a word I mistyped, a compiler spewing an error message on line #42, a stubbed toe, my gps suggesting a u-turn at the next intersection, etc.
But what happens when the mistake isn’t obvious, isn’t noticed immediately, and doesn’t cause everything around me to immediately fail? Often these mistakes can have a long lifespan. Often we discover them when we are looking … Read the rest... >>
The ardupilot mega is a fairly capable complete autopilot from both the hardware and the software perspective. But what if you projects needs all the sensors and not the full APM2 autopilot code?
The apm2-sensorhead project provides a quick, robust, and inexpensive way to add a full suite of inertial and position sensors to your larger robotics project. This project is a replacement firmware for the ardupilot-mega hardware. The stock arduplane firmware has been stripped down to just include the library code that interrogates the connected sensors, and also maintains the code that can read your RC transmitter stick … Read the rest... >>
This is pretty cool just by itself. The above images are downsampled, but at full resolution you can pick out some pretty nice details. (Click on the following image to see the full/raw pixel resolution of the area.)
The next logical step of course is to stitch all these individual images together into a larger map. The questions are: What software is available to do image stitching? How well does it work? Are there free options? Do I need to explore developing my own software tool set?
One of the staples of fixed wing autopilots is the circle hold. A circle hold is the closest thing you can get to a pause button with a vehicle that must be in constant forward motion to stay aloft. There are a few hidden challenges in the task, including wind compensation and some unexpected coupling that can lead to weird looking oscillations if not handled well. People have been doing circle holds with UAV’s for a long long time, so I don’t bring anything new to the table, but it is always fun to play, err I mean experiment.
This Thanksgiving day I’m thankful for many blessings: family, friends, neighbors, shelter, food, our siberian husky who lived 16 years, and many other things. The weather was nice Thanksgiving morning so I was thankful to have an hour to run out to the field first thing to do some flying.
On Thursday, November 22 (Thanksgiving day) my Senior Telemaster past an interesting milestone: 12 cumulative hours of fully autonomous flight. This may not sound like a whole lot, but it represents 58 separate flights over the span of 3 years. In every flight it has performed beautifully and majestically and … Read the rest... >>
This is the payoff video showing the hybrid autopilot system in action in the Resolution 3 airframe. (By the way, this is HD video so watch it full screen if you can!)
I am skipping many details between integrating the hardware and flying, but just as a quick overview:
We first integrated the system into a Senior Telemaster. After 4 trips to the field over the span of 2 days, numerous flights, and a bunch of work in the evenings, we felt like the system was coming together and working every bit as well as it was supposed to. There … Read the rest... >>
Imagine for one second that you are a UAV developer. The DIYdrones ArduPilot is an awesome piece of hardware; you love all the great sensors that are attached; you love the all-in-one design and the small/light size. But you are also feeling the limits of it’s ATMega 2560 processor and the limits of it’s 256Kb of RAM. And maybe, you enjoy developing code within a full blown Linux developers environment with all the supporting libraries and device drivers that Linux has to offer.
Here is a picture of a protype “hybrid” autopilot system for small UAV’s. What you … Read the rest... >>
Here are a few random notes on the APM2 and servos.
As we all know, the servos are controlled by sending a digital pulse on the signal line to the servo. The length (time) of the pulse maps to the position of the servo. A 1500us pulse is roughly the center point. 900us is roughly one extreme and 2100us is roughly the other extreme. Different systems will use slightly different numbers and ranges, but these are good numbers to start with. Historically, RC systems stacked the pulses for multiple channels on a single radio signal — affectionately called the “pulse … Read the rest... >>
The autopilot architecture I am building involves and APM2 collecting all the sensor data and sending it over a serial connection to a Gumstix Overo running Linux, and then in return the Overo sends servo commands back to the APM2. As you can guess, this turns out to be quite a bit of data being sent at a high rate. If all the processing, filtering, and computation is being done on the Overo it is important to have a high update rate, low latency, reliable communication, and no major pauses in processing at either end.