All Posts (11086)

Sort by
Distributor

Off topic...but nice!

http://pilotmag.com/images/mar-apr11pics/insidecockpit_spread.jpg

insidecockpit_spread.jpg?width=500

 

Nice!

"You ready to rock and roll, man?” I still didn’t believe what was about to happen. I looked up through the clear glass cabin roof, knowing that the next time I looked up, I’d be staring at the ground below. “We’ll start off with a roll. I’ll count down from three. Ready? THREE!”

Oh this is nonsense. Helicopters can’t roll upside down. Doesn’t this guy know that? Go ahead buddy, keep counting over there. “TWO!” What does this guy think he’s going to do when he gets to zero? I glanced over at the pilot and caught my reflection in the Red Bull logo painted on his flight helmet. Gosh I look silly with a smile this big. “ONE!” I should really tone down that smile. These pictures are going to look… “ROLL!” I look up just in time to catch the sight of a freeway zooming by, and then it’s over, blue skies return.

 

http://pilotmag.com/redbull

 

Read more…

Easy camera roll stabilizer to APM

 

This is easy camera roll stabilizer to ArduPilotMega (I used code version 2.012). Camera mount was easy to build. Camera angle can be adjusted during flight with RC controller. Stabilization needs only one line code to program! Of course also pitch can be stabilized in the same time, but I have not yet tested this.

Camera stabilizer is normal mount with servo. Servo is connected to APM's sixth output port. (I have old 1.0 version of board, name is Out5, in new version 1.4 port name is probably Out6)

3689403097?profile=original
Optionally some free radio receiver channel can be connected to 6th input port(In my board name is In5, in new board probably In6)

Then I added one line to APM code: In the main program there is fast_loop. To the end of this subroutine, just above }, I added this line:

 

APM_RC.OutputCh(CH_6, constrain(g.rc_6.radio_in - (dcm.roll_sensor * 0.1),900,2100));

 

Then I uploaded program to APM, and thats it.

 

Also pitch can be stabilized in the same way. Servo and receiver goes to next channels, and this code can be added after the code line above.

 

APM_RC.OutputCh(CH_7, constrain(g.rc_7.radio_in - (dcm.pitch_sensor * 0.1),900,2100));

 

Some explanations to codes: It is easiest to think, that servo middle position is 150 degrees, in the program this is indicated as 1500. This is default value if receiver is not connected, and we get this value from radio receiver if knob is in the middle position.

Servo maximum turn is 60 degrees to each position, so we have minimum value 1500 - 600 = 900, and maximum value 1500 + 600 = 2100. These numbers are in the code above. If we want to reduce movement, then we must change these values. For example if camera can turn only 20 degrees to each direction, the values are 1300 and 1700.

 

Stabilization works always, also on manual mode. Camera can turn even 60 degrees to all directions. Probably analog servos are better, digital servos jitters very often.


In the forum there are some drawings from some other camera mounts http://www.diydrones.com/forum/topics/apmimu-camera-stabilization

Read more…

Turnigy 9c Transmitter Burned Up!!!

   As we all know the Turnigy 9c is a great radio for the $54 price @ Hobby King and is very user friendly. I want to warn everyone about acidently connecting the battery backwards, BE VERY CAREFUL if you connect the battery backward and turn on the Tx you will destroy it immediately. This Radio Tx does not have a fuse that can be replaced.

I had my radio 4 days.  I wanted to use a LiPo battery pack instead of the "AA" holder that came with it.  I some how managed to reverse the polarity and blew the CJ78L05 voltage regulators to peaces.  The wiring on the main processor board even melted and smoked.  So now after salvaging the switches, potentiometers and LCD display, my brand new Turnigy 9c Tx radio is in the trash and the quadcopter just sits there lifelessly waiting............. So during the next month or longer while I wait for the 2nd new Turingy 9c radio I'm gonna figure out how to incorporate a fuse into the new transmitter so that this never happens again.  Sorry no pics!!!  

Read more…

Deciphering bird flight, scientific way

There was a lot or rumor about the Festo Smartbird in the last weeks. They actually built a nice bird, mainly by simulating and trial and error (see the movie posted lately Video).

Now scientist go to the roots, letting an owl fly through a bunch of cameras measuring the movement.

Freiflug_Schleiereule_320.jpg"It's not as though we are going to apply these results to an A380 – its flight characteristics bear no resemblance to those of an owl. But the research results can be applied to smaller, unmanned aerial vehicles, or UAVs,"

Here is the full article: The secret of efficient bird flight

 

It will probably take some time till they get results (also depending on the owls :-), but good to see there is progress!

 

 

Read more…
Developer

IMG_20110426_134812.jpg

After yesterdays transmitter failure, we flew the SkyWalker again today with Jacks Spektrum transmitter. This time everything went very well, and we successfully flew a search pattern over the CMAC field.

The flight we did was:


 - takeoff in fly-by-wire-A mode
 - switched to GPS loiter, worked well
 - switched to full auto, and flew a "mow the lawn" 18 waypoint search
   pattern over CMAC

The plane flew beautifully and the APM behaved perfectly. The audio feedback from mavproxy was really useful (it called out the waypoint numbers automatically during the flight for example). The wind was quite strong, and the SkyWalker coped well, although its speed upwind was affected quite a lot. From the GPS log, the upwind speed in auto mode was around 21km/h, whereas the downwind speed was around 48km/h, which means we were fighting a 27km/h wind. The upwind track ended up with a lot of curves in it, whereas the downwind tracks were fairly straight.

Tracks for the fully automatic part of the flight are here:

 http://samba.org/tridge/UAV/SkyWalker/logs/2011-04-26/f2/CMAC-search.kml
 
The planned search pattern is here:

 http://samba.org/tridge/UAV/SkyWalker/logs/2011-04-26/f2/CMAC-search-plan.kml

as you can see, the wind really pushed it off course!

There are a few photos here:

http://photos.tridgell.net/v/CanberraUAV/SkyWalker/

and a video of the auto-search here:

https://www.youtube.com/watch?v=rUr55J0T4_Q&feature=channel_video_title

 

We flew with 2x2200mAh 3S LiPos wired in parallel, and after the plane landed we measured the amount of charge the charger would put in as around 900maH per battery. From that, we estimate we'll get around a 1hr flight time if we switch to a 5000mAh 4S battery.

We're now planning on adding the pandaboard and ptgrey camera this week, and we will try a search pattern with the camera in the SkyWalker next weekend. That will give us the image data we need combined with full telemetry (attitude, GPS, altitude etc) to get back to the image processing and 'find Joe' task for the outback challenge.

 

Read more…

Sparkfun AVC summary from Minuteman--LONG

3689402714?profile=originalMinuteman in the pits

 

3689402689?profile=originalLining up for the final heat

 

3689402739?profile=originalRoadrunner

 

8:30 AM Friday, April 22. I leave Los Alamos, NM, headed for Denver. The weather is blustery, but I have a good audio book to keep me entertained for the 6 hour drive. After a stop for some food and gas in Walsenberg, CO I arrive at my brother’s house in Highlands Ranch by 3:00. We load load his stuff in my xterra, and head for the sparkfun building. There are a few teams practicing the course with their ground vehicles. I see a few traxxas rustlers, and the big t-rex vehicle. A father and son team is troubleshooting their car, and a handful of sparkfun employees are setting up tents and tables. The starting ramp and barrels have not yet been placed. My brother (team Roadrunner) and I get our vehicles out and commence the testing. Roadrunner’s car (a traxxas stampede) uses GPS for navigation, and depends mainly on a compass to adjust the heading. The side of the building closest to the pond seems to be difficult for most teams to navigate due to poor gps signal quality and limited space. Roadrunner has some successful runs and he refines his code and waypoint placement.

I start testing minuteman, and have some successful runs. Minuteman is a dead reckoning system, that is unaware of it’s latitude and longitude with reference to earth. It only knows where it is in relation to where it started. It knows how far it’s gone and at what angle. Each inch or so, it updates its coordinates, and it does all of this in the background. It can be manually driven to some location, and it will take care of updating its position as it goes. At any time, it can save its current location as a waypoint in eeprom memory. Many waypoints can be saved sequentially, and later navigated automatically.

How, specifically, does it do this? Well, it uses two sensors, an optical encoder on the input shaft of the transmission, and a mems gyro. The encoder measures, very accurately, how far the wheels have turned. Its output is fed to an external interrupt on the controller (an ardupilot), and every x number of clicks, it calculates a new position. To calculate the new position, you also need the angle, which is provided by the gyro. That’s it, in a nutshell. I’ll add though, that you must always start the car at the same point and at the same angle to get repeatable runs.

So, for it to work you first have to manually drive the car to the various turning points, and set a waypoint at each one. With the ardupilot, it is simple to switch between auto and manual control, which facilitates this process. To set the waypoint, I click the 3rd channel button on my transmitter. The arupilot is programmed to recognize this action and save the x,y coordinates.

So, back to the parking lot, I map out the waypoints, and run the car a few times. At “slow” speed, the car navigates the course in about 1 minute (see, Minuteman, get it?) and at fast speed it goes around in 30-40 seconds. This is without the barrels and hoop, which will add some complexity.

Things don’t go off without a hitch, though. In fast mode, the car overshoots the points significantly. It will later course-correct by itself, provided it hasn’t already crashed into a curb. So it takes some practice to set the waypoints for high-speed runs. Usually I have to set the waypoints, then run it in auto mode a few times under close supervision. I can abort the run if it looks like it’s headed into a curb--this saves me quite a few times. Once a course is dialed-in though, it repeats it very reliably from run to run.

At the really high speeds, I had to be very cautious. Any mis-set waypoint could cause the car careen into a wall, and most likely break. The car goes much faster than I can run, so I would have to arm the car and let it sit and calibrate for about 10 seconds while I took-off sprinting around the building. I would be down at the second turn, now watching and waiting for it to come screaming around the corner. I would watch the car to make sure it was still on course, then sprint to the next  turn. Minuteman would pass me right about at turn 3. I would continue to chase long enough to see it round corner 4 (now way up ahead of me), and as soon as I saw it head for the finish line, I would abort, knowing that the run was successful.  I did this 4 or 5 times, until I could no longer run!

Satisfied with the testing, roadrunner and I headed back to Denver for the night. Next morning, we left at 7:20, with some foreboding clouds to the north. Small flakes of snow were falling, and soon we started passing southbound cars that were covered in snow. Not a good sign. By the time we got to sparkfun, at 8:35, the roads were wet, and a steady mix of light snow and rain was falling. We set up our gear under the tent and tried to get warm. I set up right next to the DIY drones team, so I got to hang out with the popular kids! Their quad copters gathered a lot of attention.

Around 9:00, I decided to brave the moisture, and do some practice runs. I did a setup run, then a test run at slow speed (60-second pace). On the test run, it navigated around the barrels and through the hoop and was rounding the 3rd corner, when it stopped. The LCD screen was blank, and I couldn’t get it to respond. This was really bad news, because in my many hours of testing, it had NEVER done anything like this. I hurried back to the tent, and tried to revive it. I recharged the battery and tried to blow any moisture off the controller board  (there were a few small drops of water). I still couldn’t get any response. Now I was really nervous. I figured at worst case, I could probably buy a new ardupilot from sparkfun and install it, but I would probably miss a heat or two. Meanwhile, Roadrunner came by to offer help, and he tracked-down a heat gun. Fortunately, about 2 or 3 minutes of hot air solved the problem, and I wrapped the ardupilot in plastic at tape.

By now, though the heats were starting, and I wasn’t set to go. Somehow in the process, my waypoints were fouled up, and I would have to reset them by running the course. Between heats, I got in a couple of practice runs, staying out of the way of the contestants. Now, I felt pretty good about everything, and I waited for my turn.

In heat 7, just before me, was roadrunner. With high hopes, he started, and was navigating the first turn, when he was T-boned by another car. They were both stuck beyond recovery and were forced to forfeit the round.

Now it was my turn. I lined up on the end of the ramp in my designated starting position and got everything armed. The starting gun fired, and my car sped off to the first corner.  Disaster soon struck, though, as a judge for one of the other cars inadvertently stepped on mine. Afterward, It looked like that kid from that bullying video on youtube who gets slammed to the ground. It just looped around in circles with a dazed look.  Luckily, though, nothing was broken.  As there was some time until the start of the aerial vehicles, I was permitted a do-over, as the interference was from one of the judges. This time, the car navigated the course perfectly, threading the hoop and rounding all the corners right on cue. The time was 56 seconds, plus a 30 second deduction for the hoop, made my official time 26 seconds! So far so good!

Now I had time to relax. The next-best time was around 1:20 seconds, and they didn’t make the hoop. So, I took some time to chat with the other participants, and to answer some questions about my dead-reckoning system.

While the awesome aerial vehicles were providing the entertainment, I thought about how to do the next run. I decided a medium speed would be best instead of going all-out, so I set it to about a 45 second pace. I started testing before the start of the 2nd round, but began to meet resistance from the event director. Apparently I was gaining an unfair advantage by running my repeated tests, and in general getting in the way of the event, so an announcement was made that no more test runs would be allowed.

After much begging, I was able to make a few set-up runs, but I had to line-up for my second heat without testing my newly programmed waypoints.  At the start, the car rushed out to the first waypoint, and turned a HARD right--a little too hard. I had set the next waypoint back at greater than 90 degrees to get lined up for the hoop, and with the increased speed, the car spun-out--end of turn. A test run would have revealed the problem, but it wasn’t to be.

This time, tobor (my main competition) had stepped things up, and finished with an excellent time of 1:02. For the second time, he didn’t make the hoop, but if he had made it...that would only be a 6 second difference. Now my supreme confidence was melting. What if he could still go faster? What if he finally got the hoop? I knew my car was capable of really fast runs, but without being able to set it up properly, I might not make it.  I went to lunch with a feeling of doom.

I got back from lunch, and while the raffle was going on I decided to try more test runs to dial-in my waypoints. I was quickly told that I would not be able to practice, because it was unfair. It was still at least another 10 minutes before the start of the final round, and there was nothing going on around the start line. I pleaded my case again, and was allowed to do a few more runs.

Now, however, there would be a wait of about 30 minutes between the start of the first heat and the final 8th heat where I could do no more practice runs. This wouldn’t be so bad except that the sun had finally come out, and things were warming-up nicely. Now, my negligence in not temperature-calibrating my gyro was starting to haunt me. Would this cause a slight change in the angular rate, causing some skew? I would find out soon enough.

Add to my worries, that the barrels had been moved and the arc was positioned a little differently. I knew my run was doomed. Maybe, though, tobor would once again miss the hoop. Or maybe his car just couldn’t go any faster.

So, as the final heat started, I had a pit in my stomach. My car got right off the line this time, and navigated the first turn nicely. But, as it sped down the straightaway, it passed the hoop just to the right. That was it. I couldn’t beat my other score without making the hoop, so the run was virtually over. The car navigated the next two corners and was on the final straightaway, when it smashed into one of the islands that stick out in to the parking lot. It broke a front suspension arm, but it didn’t matter. It’s day was already over. Meanwhile, tobor had indeed navigated the hoop--of course. It worked it’s way around the course at a good clip, but somehow it didn’t seem so fast. As it came around the final corner, a gaggle of spectators in tow, I was still hopefully confident that it hadn’t beat my 26 second time.

But, apparently my biological clock isn’t so great. 55 seconds was the reported time...and making the hoop, that was a final time of 25 seconds...one second faster the me...really? REALLY? Did he have to make the hoop on  *that*one*run*? REALLY?? That was the moment I was dreading. I felt like Laurent Fignon in the final time trial of the tour de France. I saw it coming from mile away, and was helpless to avoid it.

Minuteman was easily capable of victory. It could navigate the course faster than any of the cars there--I would say probably faster than any that have run it...so why didn’t it win? For various reasons. But first off, I have to congratulate Scott of team tobor. Well played sir! Your fusion of multiple sensors using DUAL kalman filters was rock solid. You finished every heat and clinically marched to victory with each successive attempt. Great job!

So why do I make the bold claim that minuteman was capable of victory? Well, it’s just fast and stable. It can go faster than 25 mph, and it goes straight to every waypoint without hesitation. It doesn’t hunt around or veer off course or miss waypoints. When the waypoints are properly set, it will burn through the course in under 30 seconds. But, being capable of victory, doesn’t guarantee victory.

Minuteman, unfortunately, required a lot of setup and expertise to use. It was difficult to know where to set the waypoints to avoid overshoot and/or spin-out.  Also, I never got around to temperature compensating the gyro, a fact that will haunt me for some time.

In the end, I have to concede that maybe mine just wasn’t the best system. Maybe dead reckoning is just too imprecise to be successful. Maybe it just requires too much set-up and testing, and is too prone to operator error. Or, maybe I just shouldn’t have slacked-off all March and April--I should have made all the little refinements that I never got around to. That’s a lot of maybes. One thing for sure, though, is that you won’t see me next year with a GPS-based vehicle!

Thanks, sparkfun, for organizing this event. I saw a lot of kids and teenagers there that were eager to get involved. Hopefully this sort of activity will inspire future generations to be as technologically innovative as generations past.

Also, as a note, roadrunner finally got a successful run of 1:18 on his last heat, putting him in 4th place overall. This was faster than any of the winning times from past years. I can vouch that a year ago, he was basically starting at zero on how to get an autonomous vehicle running. So, if you’re on the fence about competing next year, just do it. Get an arduino and an R/C car and some sensors from sparkfun, and go for it. It will be worth your time.

Read more…

Another quad in the sky

I've been working on this quad for about three weeks. I based some of the frame design on the arducopter. The flight was done with the ardupilot mega+gps+compass in stable mode. The start was a bit disappointing at first, but it was soon resolved and possibly caused by a faulty RSSI indicator. As can be expected, it's way more stable than the tricopter. The only required nudges are throttle and where the quad is going. Soon, I'll test GPS Hold mode and a mode for navigation that I put in there. I removed some of the arducopterNG code and added some OSD telemetry code to interface with an OSD board I'm finishing.

More info about the build and some close-up pictures:

http://www.radialmind.org/projects/quad

Read more…
_4211908.jpgI've originally meant to write about propeller mounting, tracking, tightening and about my first flight (which ended up with a stripped spinner nut), but since my sonar arrived and, since installation wasn't exactly 100% straightforward, that's today's subject. So, here it is, in the photo above - the Maxbotix LV-EZ4 sonar, freshly taken out of it's zip-lock baggy, along with a 5 pin header. Which is not included. That's from my own header stash. NOBODY TOUCHES MY PRECIOUSES! *cough*Headers.jpgWhy 5 pins? Because that's the minimum of pins that spans from the GND and +5V/+3.3V on one side of the header and the analogue out on the other. Why pins at all (instead of soldering the cable directly)? Because i want it to be easily replaceable and detachable, in case i want to experiment with it off the ArduCopter. Why EZ4 and not EZ0? Because i thought its beam pattern makes more sense for this particular application:EZ4.jpgNarrowest and shortest beam for tiny objects. Longest and widest beam for large, uniform objects (i.e. ground). Why LV and not XL? Because it's cheaper and my Arduino/electronics/RC/'copter budget's running thin at the moment. Otherwise, XL probably would've been a much better choice.Anyways. I've bought it from jDrones along with their little sonar mounting kit, just because i was too lazy to figure out / improvise my own way to mount it. And because it looked neat. However, first test fit ended up like this..._4201900.jpgMmmyeah. It would appear Maxbotix' tolerances are much looser than the margins jDrones left when designing the mount. The transducer casing isn't quite mounted at the center. Unsoldering it isn't an option, since it's epoxied to the board, so..._4201905.jpg... a few seconds of nylon spacer dremeling later (sandpaper works too, but i'm lazy):_4201906.jpgMuch neater. Now for the header. Here's a simple little trick for soldering headers (and connectors and other components) i've learned from FreakLabs. First flip the board and add a dab (and i really mean a dab) of solder to one of the holes:_4211910.jpgImportant tip! Never ever do this with the GND hole! They're usually connected to a rather biggish ground plane, which can soak up a lot of heat. Doing that might leave you with a plugged hole you'll have a really hard time sucking the solder from. Trust me, i've been there! Okay. Now. Take the header and press it against the holes:_4211911.jpgMind your finger! Don't put it on the pin that's against the soldered-up hole or you might get a burn in the next step. Which is - apply heat to the hole and push the header through simultaneously:_4211914.jpgTrim the leads as short as you can - you want the board to be as flat as possible:_4211916.jpgNow just solder the rest of the pins (and reflow the first one). Don't be stingy on the solder, after it fills up the hole (through to the other side), it won't accumulate any further and will just remain on the soldering iron. And there we go, nice and flat:_4211918.jpg_4211919.jpgThe baggy that comes with the sonar mount kit contains a bit more hardware (can nylon be called hardware?) than is needed for the installation. Here's what is needed to install it on the bottom of the ArduCopter:_4211923.jpgThe sonar PCB is flat... ish... but still not flat, so it's a good idea to use some washers:_4211925.jpg... and there we go, nice and neat:_4211926.jpgNow. Where to put it? From the hole distance, i'd say it was meant to be put smack dab in the middle of one of the main plate vertices, like this:_4211931.jpg... however, if you put it there, there will be no room for the battery and it will have to be mounted off-center, shifting the center of gravity quite a bit. Plus, it looks bad and interferes with access to the battery when you want to take it off / put it back. It turns out there are other two holes that fit the distance perfectly and don't obstruct the battery footprint:_4211937.jpgYou'll have to unscrew one of the nuts that clamp the arm. If you've got an ESC right above the corresponding bolt (like i did), you'll have to remove it, and mount it back when you're finished. One of the long spacers from the sonar mount kit will serve as the new nut. That also means you'll have to put the nut on the other side of the spacer (instead of a bolt). Here's the end result:_4211945.jpg_4211949.jpgThe only thing left now is to fashion a cable to hook the sonar up to the Oilpan pitot tube input. I've again made the same set of make-shift female header connectors as before. The sequence of the pins on the sonar is exactly the same as the sequence on the Oilpan - GND is the leftmost (when facing the front of the APM or the vertex of the sonar PCB with the pin header), then 5V, then analogue out/in._4211955.jpg_4211962.jpgThe only thing left now is to enable the sonar in software. I'm using ArduPirates branch. First, let's check if it works correctly. Navigate to Libraries/AP_RangeFinder/examples/AP_RangeFinder_test and open the AP_RangeFinder_test.pde sketch. There are two lines of interest here:AP_RangeFinder_MaxsonarXL aRF;//AP_RangeFinder_MaxsonarLV aRF;Now, it would seem logical to comment the first line and uncomment the second if you have an LV model. However, it so turns out that the LV model uses the exact same scaling on the analogue output as the XL, at least in my case. Whether it's something that has recently changed, or something mixed something up, i do not know. I do know that my sonar most definitely is an LV model and that it outputs correct values with the XL routines, NOT the LV routines. To be sure, leave it like this, run the sketch and check the output on the serial monitor, then change it to the other option and do the same. That should make it absolutely clear which one is the correct one.The first number is the real distance/altitude, the second is the raw output. For XL (and my LV), both numbers are the same, because the absolute output of the sonar board is scaled so that they're exactly proportionate and equal with a reference voltage of 5V.After you've verified your sonar works and you've determined the correct sonar reading routines to use, pay a visit to Config.h in the main ArduPirates sketch folder and set the two lines at approx. 251-252 (it's around line 65 for ArduCopterNG code branch) to:#define UseBMP // Use pressure sensor for altitude hold (default) ?#define IsSONAR // or are we using a Sonar for altitude hold?Next up, open ArduPiratesNG.pde, find the following lines at approx. 90-91 (around the line 228 for ArduCopterNG) and uncomment the appropriate one, depending on the result of your test sketch output:AP_RangeFinder_MaxsonarXL AP_RangeFinder_down; // Default sonar for altitude hold//AP_RangeFinder_MaxsonarLV AP_RangeFinder_down; // Alternative sonar is AP_RangeFinder_MaxsonarLVCompile and upload the code, switch to CLI mode and check the sonar PID values by pressing 'o'. According to defaults and the wiki, good values for the stock ArduCopter hardware should be P=0.8, I=0.3, D=0.7.That's all, folks (for now)!And a belated happy Easter!
Read more…

DIY Solar Airplane, Rev 2

 

 

 

 

3689402631?profile=original

3689402646?profile=original3689402569?profile=original

 

Here is my new solar airplane (the previous version is here). 

 

As before, it uses the Parkzone Vapor's radio and motor, plus five Powerfilm solar cells.  In parallel with the solar cells, I include a tiny 20mAh lipo battery to keep the radio happy.  However before I hook up the solar cells, I make sure that there is not enough juice in the battery to run the motor (no cheating).

 

The wing is a vast improvement over the previous version.  It is stiffer torsionally, has more span, more area, and a better elliptical planform.  The wing and tail are covered with mylar from one of those emergency survival blankets.

 

Here are some specifications:

Wing span: 35in (89cm)

Wing area: 165 sq in

Total Weight: 42g

Solar Cell Weight: 18g

 

Last Saturday was the first calm and sunny day all year (Seattle).  Although conditions were not perfect (low sun angle, a bit too windy), I still managed to sneak in a few flights (see the video below).  I think with the right conditions, this airplane could fly for hours.  Finding a day with the right conditions might be challenging, though.  It is often very calm early in the morning, but the sun is too low.  By mid-day, when the sun is high, thermal activity tends to kick up random gusts.  I'll keep waiting for that perfect day... 

 

 

 

Read more…

"Team Zyzzyx" SparkFun AVC 2011 Ground Entry

First off, a big thank you to the hardware and software developers of the APM autopilot. Without it I wouldn't have been able to pull off a working autonomous system in such a short time. Thanks as well to Jack Dunkle for helping me out with a late encoder addition.

 

A couple months ago I saw the SparkFun AVC announcements and decided to enter. I bought parts early, but didn't get it all working right until the end. Here are all the details on my entry, for anyone interested.

 

3689402443?profile=original

 

Hardware

  • Traxxas Rustler VXL
    • Reasonably fast RC car straight out of the box. I probably could have saved some bucks and gone with the non-VXL (brushed motor) version and not known the difference. Came with a 2-channel RC receiver/transmitter pair.
    • I thought about switching out the included 8.4V NiMH battery, but it ended up being more than sufficient.
  • 5V switching regulator
    • The Traxxas ESC puts out 6V so an external regulator was necessary. This one died a unfortunate squealing death the week before the competition and I actually ended up replacing it with a simple LM7085T.
  • ArduPilot Mega / OilPan IMU
    • The APM was a no-brainer given that electrically it does everything I needed, and there are code libraries for almost all the sensors I was using. I'm naturally lazy and this was clearly the path of least effort.
    • I actually didn't end up using the IMU (except for magnetometer roll/pitch correction), but that's okay since I'm hoping to repurpose this hardware on a quad.
  • SkyLab SKM53 GPS
    • This was the first thing I purchased (bought a GPS, had to build a robot around it). It uses the standard MediaTek MT3329 module. In retrospect I should have gone with the module + adapter from DIY Drones.
  • HMC5843 Magnetometer
    • Not much of a choice here.
  • US Digital E4P-100-079-HT Encoder
    • A couple weeks before the competition I panicked and thought that I needed a wheel or drivetrain encoder (probably not true) and so I added this on the motor shaft the Tuesday before the competition.
  • Maxbotix LV-MaxSonar-EZ3 Rangefinder
    • My code gets data from this, then disregards it and drives into walls. Ultimately I decided that there wasn't enough time to get this up and running in a way that wouldn't be a liability. So, my obstacle avoidance ended up being careful waypoint placement and a bit of luck.

Software

My code runs three loops, nominally at 100Hz, 10Hz, and 1Hz. Here's what each one does.

  • 100Hz
    • Check for user input (autonomous mode or emergency stop). Since I only had a 2-channel transmitter, I mapped the extreme steering limits to these inputs. Also turns off autonomous mode if GPS fix is lost.
    • Update the DCM. I pretty much blindly copied this from the APM software. The magnetometer needs roll/pitch values for calculating the heading.
    • Calculate motor velocity (counts/sec) from encoder change since the last 100Hz loop. The encoder itself is read by pin change interrupts. I found that I had trouble monitoring high speeds (~150000 counts/sec and up), but it might have been a side effect of the monitoring code, since I think the encoder-reading code is less than <10 instructions per interrupt. That's blazing though, since 100000 counts/sec is about 25MPH on my car.
    • Control the velocity with a PID controller. The encoder lets me do closed-loop control on the throttle input to the ESC. In retrospect this probably wasn't necessary.
    • Update the servo outputs, or relay the inputs from the receiver if in manual mode.
  • 10Hz
    • Update the indicator lights (A = autonomous, B = GPS fix).
    • Read the latest data from the GPS, compass, and rangefinder.
    • Calculate distance to the target waypoint.
      • <4m, slow down in preparation for steering.
      • <2m, increment the waypoint index (waypoint achieved).
    • Calculate distance to the last waypoint.
      • >4m, speed back up.
    • Calculate the absolute heading to target waypoint (GPS data only).
    • Calculate the heading error (absolute heading - compass heading).
    • Scale the steering output linearly to the heading error. This is pretty crude, and might have caused my trouble in the 3rd race.
  • 1Hz
    • Spit out human-readable debug information over serial.

And that's it! I tried to do some fancy stuff with the rangefinder, detecting obstacles approaching at close to vehicle speed (stationary obstacles straight ahead) and then making the car swerve to avoid them. It worked too poorly and so I took it out, since I figured it would probably hurt more than help.

The last little bit is dealing with GPS coordinates (latitude and longitude). I converted them immediately to Cartesian coordinates on a plane. In a small area, this works very well. I had two sets of conversion factors, one for Pasadena and one for Boulder.

Compass mounting calibration was key for getting this to work. My method was setting a waypoint, pointing the vehicle toward the waypoint, and changing an offset parameter until the heading error was close to 0.

I was able to avoid the barrels and get the arch bonus by careful waypoint placement to minimize the effect of GPS error (waypoints far apart). Also, I was lucky.

 

SparkFun AVC

I came to Boulder Thursday night without working throttle/steering controllers and no waypoint code written, but I managed to work it out Friday morning and afternoon, testing in my friend's apartment's parking lot. Friday evening I tried to write obstacle avoidance but scrapped it and slept instead.

Saturday morning I got to SparkFun a little early and set up my waypoints (7 of them), and ran some test runs. I made it around about half the time, doing better after I altered the steering trim to eliminate a leftward (and water-trap-ward) drift.

  • Race 1
    • At Turn 1, I got tangled up with another competitor. My robot achieved its waypoint, turned sharp, and lodged a steering wheel between the other bot's drive wheel and chassis, stopping us both. This was unfortunate. I think SparkFun has a great picture of this.
    • I tried to complete the course anyway, but the GPS data seemed to be poor and I had to hit the emergency stop to avoid going into the pond.
  • Race 2
    • Right after Race 1, I moved my GPS module to a different spot and carried my car around the course, watching the steering. Things seemed to be much better, but it's also possible that the improving weather helped just as much.
    • I also got paranoid about the pond and added some code to reduce the speed on that stretch, reducing the possibility of jumping the curb and giving me more time to activate the emergency stop.
    • The race went great, I made it through the arch and felt quite good about things when I made it to Turn 2. It seemed like my car was going slow, and I realized that I didn't add code to speed back up after the pond. D'oh, that's what I get for mucking around with things. I ended up doing most of the race at 60% desired speed.
    • Right before Turn 4 I went straight through the biggest pothole on the course (filled with water), but the electronics stayed dry and I made it across the finish line at 1 minute, 25 seconds (0 minutes, 55 seconds after the 30 second arch deduction). That put me in second place, behind Team Minuteman at 26 seconds post-deduction.
  • Race 3
    • Having recorded a good time in Race 2, I went all out, getting rid of the pond slowdown and doubling my speed parameter.
    • Something went horribly wrong and right off the starting line I headed for the curb, hitting that before going berserk and crashing into a stroller off-course, breaking my right front caster block and bearing carrier.
    • There are two things I can think of that might have happened.
      • My crude steering controller is unstable at high velocities (most likely).
      • The first waypoint somehow got marked as achieved, and the car started going for the second waypoint.
    • The car wasn't drivable without spare parts I don't have, so I missed out on the mass run.

 

3689402497?profile=original3689402606?profile=original

I ended up with 3rd place and $100, which is much better than I expected. Congratulations to Team Tobor and Team Minuteman, from what I've read, heard, and observed, they were both running very slick systems. Thanks to SparkFun for putting this competition on, I'll definitely be back next year!

Read more…

Foamaroo First Flight

3689402472?profile=original

 

We had a very successful flight on the Foamaroo prototype yesterday.  The Finished airframe came out at 2 lb 11 oz complete with 2200 mAH battery.  It was windy yesterday with 15 know winds and the Foamaroo handled the conditions very well. 

 

After a short trim flight I was able to launch the plane with a single handed toss and was happy to see that it would climb out wings level with no input on the transmitter.  I did several launches and landing as well as flight at different speeds and am very happy with how the plane flies.  Roll and pitch response is very good and the speed range is great. 

 

There is a video at https://www.youtube.com/watch?v=bgJFJqckloM&sns=em

 

3689402430?profile=original

 

Jimmy

Read more…
Developer

3689402527?profile=originalI finished my SkyWalker build last night, and went out to CMAC to take it for its first flight. All the ground tests looked good (including the new 'system check' in mavproxy) so we took it for the first flight. About 60 meters into the flight I heard "MODE STABILIZE" from mavproxy, and I lost control. Jack and I watched as the SkyWalker glided gracefully to a perfect landing in the grass while we wondered what had happened.

After looking at the mavlink logs, we saw that the APM had started to receive failsafe values from the receiver soon after takeoff. Jack thought the antenna on the receiver might be a bit dodgy, so we replaced it with a 2nd receiver I happened to have in my box of spares, and we tried again. It was almost an exact repeat of the first flight, losing transmitter control soon after takeoff, APM going to STABILIZE mode, and the SkyWalker landing perfectly in the grass.

We then started to do more extensive ground tests and found that the Turnigy TGY 9X transmitter had failed. It has previously had good range, but for some as yet unexplained reason it now doesn't do more than 60 meters or so.

We had a good look inside the transmitter module, and we can't see anything wrong. The antenna cable is a little bit abraded on the transmitter, although it isn't clear if that is the cause of the issue. Strangely, the range test button doesn't find the problem. I get the same range with the range test button pressed as when its off. When I got home I checked the range test switch in case it was faulty and it seemed to be working fine (at least as far as my multimeter can tell). It looks like I might need to buy a more expensive transmitter. Pity, as otherwise the TGY 9X has performed well!

The real hero of the flight was the APM. The failsafe values in my receiver had the mode switch set to STABILIZE, and it glided the plane down to a perfect landing both times. I don't have it set to RTL for failsafe as it would be a breach of the club rules to circle above the takeoff point (you'd be going over the clubhouse).

Tomorrow we're going to try a different transmitter and see if the SkyWalker can live up to its reputation as a great UAV. We've got a "mow the lawn" search pattern setup to simulate the type of search we will be doing for the outback challenge. If that goes well we will put the pandaboard and ptgrey camera in the plane and get back to testing our algorithms for finding Joe.

Once things look OK with the SkyWalker we'll see about putting all the equipment in our CyberHawk UAV, which is what we plan to use for the OBC next year.

IMG_20110409_100118.jpg

Read more…
Developer

Here is a video clip from Paul Mather and my last minute entry into the SparkFun Autonomous Vehicle Competition.



The day before the competition I realized that the DIYDrones community had an unused entry into the competition and I had a second UAV ready to go, so I recruited Paul Mather as a teammate and we became team "Plan B", flying a SkyWalker with ArduPilotMega. It was quite windy and gusty as you can see. This is the conclusion of the first round flight, conducted 100% autonomously, which would have scored well. The plane was getting blown around badly on final approach, but would have made it around the pine tree and right into the landing zone had it not been for impact with the light pole visible around 0:15 :(

Some other details from the event: I believe that Paul and I, and Chris Anderson, were the only competitors flying APM powered planes - Paul and I had two teams, one with the SkyWalker and another with a SkyFun. Wind was a problem for the Skywalker. It certainly could have flown much better, but we were flying it pretty slow (ranging from 15 to 9 m/s) due to the small course and small landing area. The first run we clipped the light pole as shown in the video which was heartbreaking because it could have been a 100% autonomous landing into the very small landing zone on a windy day. On the second run the SkyWalker went into the pine tree that shows so prominently in the video and lodged very high. Fortunately a brave Sparkfun employee climbed up and dislodged it. It was no longer pretty after two crashes, but tape and lots of CA glue got it airworthy. On its third run we skipped the auto landing and got it on the ground quick enough after crossing the finish line to secure 2nd place.

The SkyFun performed great, but with all the pressure and chaos of the event I accidentally messed up the mission planning for two of the three runs and had it trying to climb over 1500 meters. Confusing absolute and relative altitudes in Colorado makes a big difference. That was embarrassing. The one successful run was really fun. We used a catapult launcher that was actually controlled by APM - having APM control the catapult was necessary to qualify for the autonomous takeoff bonus. A quick release connector on the back of the SkyFun was connected to a cable on the catapult controlling the release mechanism. After the release was triggered APM sensed the high acceleration of the catapult and as soon as the acceleration stopped APM fired up the motor. It worked flawlessly all three rounds. Unfortunately, on the one fully successful flight (100% auto from catapult launch through landing) the wind shifted around and we had a tailwind for the landing. A SkyFun with a tailwind will only come down so fast, and we glided past the landing zone and didn't get the big bonus.

 

Many thanks to Paul, and to my brother David, for all they did!  They both just made things happen.

Read more…

First flight - first (BIG) crash

First enemy: WINDY DAYS.


 

 

It was windy but ive managed to find some less windy areas to fly today,

i decided to give it a chance, after checking all's OK in the living room, hovering about 10cm...

 

GPS hold seemed to work, as at one point it was drifting a lot with the wind and suddenly changing direction back to the launch point (not what you see on the video)

 

ON THE VIDEO

I have no idea what happened, i engaged GPS hold a few seconds after it flipped over,

and anyways, it flipped in the direction of the wind, which means it didn't flipped by trying to compensate and fly against the wind back to the launch point...

my guess is that was slightly unstable because of the wind and finally the wind caught it, gave it a push and it flipped....

have any other idea of what happened ?

 

I wanted to test some equipment,

here you can see the transmitter of the wireless tracking system mounted on the copter:

 

3689402373?profile=original

 

Red LEDs strip

 

3689402184?profile=original

 

The lipo alarm with the camera power supply behind:

 

3689402384?profile=original

 

the 5v BEC for the APM and receiver:

 

3689402201?profile=original

The wireless pinhole camera:

 

3689402401?profile=original

 

 

Didn't get to testing the wireless camera,

but the custom wireless tracking system was working great from about 100m away !

 

Read more…

Automatic Gliding for UAV's

As I can see everyone liked the post of GliderUAV about automatic thermalling. I have tremendous interest in such things.

 

For a few month now I've been developing algorithms which will help our UAV's increase their flight times. And I've started to get some positive results.

 

Right now one algorithm has been already tested on x-plane HIL simulation, and I will say - it is neat!

 

Let me tell you some information about it. For now it doesn't have anything with searching thermals and loitering on them. Just simple soaring with constant feedback correction. I've tested it on some heights like 100, 200m and result are fine. But when I've tested it on 1km height it flew 9828m long and it took 12min 36sec without using motor at all!!! Which I can say is great result!

 

Let me know what you think. Can it be nice to have in our UAV's? Any ideas appreciated.

Read more…

iPhone telemetry: a short tutorial

3689401967?profile=original

Hello everyone,

 

After experimenting with tuning the APM, a friend (Roel Offermans) and I decided to implement telemetry. Even though it may seem counterintuitive to use a phone rather than an Xbee, when you already have the phone it saves some money. Another advantage is that it has 'unlimited' range, as long as you have network coverage.

The logical choice of phone to use was the iPhone, since the 30-pin dock connector has a built-in 3.3V serial port.

 

What you need:

A 5V - 3.3 V level-converter. (or some resistors, google RS232 level converter)

A male dock connector (we used a cheap iPhone dock)

A jailbroken iPhone

 

 

How to:

Most of this is already outlined on other websites for the normal Arduino, but since we had a lot of confusion about some key parts, I'll put it here again with a more elaborate how to. This tutorial was tested on iOS 4.3.1, but 

 

Hardware steps:

 

iPod pin:

Pin 1 :GND

Pin 12 : Serial Tx

Pin 13: Serial Rx

Pin 18: 3.3 V

Notice: we didn't use the serial ground (pin 11) as it caused some problems, using pin 1 worked fine for us.

3689401860?profile=original

 

In case you're using resistors to make your own 5v-to-3.3v level-converter, you should connect pin 12 to the APM shield telemetry port labeled "IN". Pin 13 is connected to "OUT" while GND and 3.3V are connected to their respective ports.

 

When using the Sparkfun level converter, it should be connected as follows:

iPhone level converter LV level converter HV APM Oilpan (telemetry port)

Pin 1 -> GND GND -> GND

Pin 12 -> LV HV -> +5V

Pin 13 -> RXO RXI -> OUT

Pin 18 -> TXI TXO -> IN

 

 

Software steps:

Step 1:

For those of you who aren't familiar with the iPhone, the standard SDK doesn't allow access to the serial port, which is why we need a jailbroken iPhone. Most jailbreaks automatically install a secondary appstore called Cydia, where you can find a program to interface with the serial port.

Make sure you set Cydia to hacker mode, otherwise Minicom won't show up. (Very important!)

Now install minicom from the Bigboss repository, which is available by default.

 

Step 2:

Install the OpenSSH application on your iPhone from Cydia. This will allow you to connect to your iPhone remotely and read the serial port. 

Once you've installed OpenSSH you can use the Terminal from Mac/Linux or an ssh program (like putty) on Windows .

 

Step 3:

Connect to your iPhone as root via SSH. On the Mac/Linux you can do this by typing "ssh root@your-device-ip" in terminal. Accept the key by typing "yes". The default password is "alpine".

Make a new folder  /usr/etc, this is to store your Minicom config file. Do this by typing:

"cd /"

"cd usr"

"mkdir etc"

 

Step 4:

Type "minicom -s" to set up the serial port. Change the serial port to "/dev/tty.iap" and the baud rate to your telemetry baud rate. The standard is 57600.

Exit from the setup menu.

 

Step 5: 

Type "minicom -w" at the prompt to start minicom with line ending. You'll now receive a lot of gibberish if you don't set the telemetry protocol to human-readable.

3689401995?profile=originalAs you can see we do receive some sensible words, but the MAVlink protocol probably messes things up.

 

The next thing to do is to get the MAVlink GCS working, which shouldn't be too difficult by echoing the data you receive back over localhost, but we haven't figured it out yet.

 

Read more…
3D Robotics

3689402008?profile=originalCheck it out: an all-in-one telemetry kit for ArduPilotMega, all set up and ready to go! No more fussing around with Xbee configuration. $165 for the total, which includes the custom configuration.

 

In this kit you will find everything you need to add telemetry features to your aircraft set up. The Xbee modules come paired up and ready to use!  Included with this kit:
- 1x XtreamBee Board (The one manufactured by DIYDrones!), including the two female connectors and right angle connectors.
- 1x XBee-PRO 900 extended range module w/ RPSMA connector and duck antenna
- 1x XBee-PRO 900 extended range module w/ wire antenna
- 1x Xbee Explorer Dongle (USB adapter for the Xbee module!)

Read more…

Path to an Aerial Photography Drone - 4

3689401835?profile=original

Airframe #2 - Decisions and path options


I decided to follow parallel paths to my goal.


The first path is to continue development on my own airframe.


The second path is to use an off the shelf airframe to work on the electronics end of my goal.

 

Airframe Path:

As a part of my airframe development, I have decided to include my kids in the design and building process. They have an interest and I see it as a great learning opportunity.

I have drawn up Airframe #2, and made some design changes to make the design and build process easier. The main wing will have the ability to be removed to facilitate different wing layouts. I am also thinking about using a Carbon Fiber plate as a wing and tail boom mount.

 

Electronics path:

FPV will be 5.8ghz 200mw min.

I am debating about base airframes, Skywalker EPO or the Hobbyking EPP-FPV. Both have their strengths and weaknesses. Any comments about either are appreciated.

Another debate – Prebuilt Arduino Megapilot or build it myself. Price difference about $100, My soldering skills are decent but it has been years since I have worked at the level that the Megapilot needs.

One more debate - the FrSky DFT 2.4ghz Module for my Futaba 9C, I am currently using a Corona 2.4ghz Module.

Currently I am working on / waiting on the following items;

  • 6mm x 6mm square carbon fiber tubing – To be used as a wing spar
  • 3mm x 3mm square carbon fiber tubing – for various projects
  • I have the plans for Airframe #2 plotted and Depron ready to be cut
  • I am looking for a new source of Dow Fanfold, my local (50 miles) Lowes does not carry it any more
  • Will be doing experiments with wing rigidity for various wing styles using 6mm Depron as a base, I see a few gliders in my kids future

 

Read more…