All Posts (14047)

Sort by
3D Robotics

When autopilots kill

From a long and very good article in Vanity Fair about a Brazillian mid-air collision last year, when two aircraft coming from opposite directions were given the same altitude and heading. The autopilots were so accurate that the two planes hit each other dead on in the open skies over the vast Amazonian rain forest: Excerpt: "Navigational precision poses dangers not immediately apparent. In the Legacy, it was based on three systems. The first was an ultra-accurate altimeter, capable of measuring the atmosphere with such finesse that at Flight Level 370 it could distinguish the Legacy's altitude within perhaps five feet. The second was almost as accurate. It was the airplane's satellite-based G.P.S. receiver, a positioning system that kept track of the airplane's geographic location within a distance of half of its wingspan, and that, linked to a navigational database, defined the assigned airway with equal precision. The third was an autopilot that flew better than its human masters, and, however mindlessly, worked with the altimeter and G.P.S. to keep the airplane spot-on. Such capability is relatively new. Until recently, head-on airplanes mistakenly assigned the same altitude and route by Air Traffic Control would almost certainly have passed some distance apart, due to the navigation slop inherent in their systems. But this is no longer true. The problem for the Legacy was that the Boeing coming at them on the same assigned flight path had equipment that was every bit as precise."
Read more…
3D Robotics

Cool new all-in-one prototyping software

Fritzing is designed to help non-engineers take breadboard Arduino prototypes and quickly create schematics and PCB files. It's just in an alpha version now, but the potential of this software is tremendous. It's amazing to see how quickly the Arduino community is growing and innovating, thanks to its open source foundations. Check it out and stay tuned for the beta, which should be out in a few months.
Read more…

Tracking your UAV in a 3D environment

NB: Edited earlier post with new link to script download site. Also, if you check the arcscripts site there is a flip book animator for the application that will iterate through georectified images in the order you set based on a timer, or manually (this allows you to move backward and forward), or you can click the image in the list to have it display. Allows you to set the transparency of the image so you can see the base layers beneath. Will post the live GPS feed task for ArcGIS explorer to ArcScripts in the coming weeks. Has support for Thales digital radios proprietary sentence. Hope some of you like it and can use it for your applications.Hey Guys,I'm a developer at ESRI and work on a product called ArcGIS Explorer. Its a free 3D mapping application you can download from the ESRI website. Now I don’t mean to plug ESRI here, but this application is free, and you have a clean entry point to add custom coding to it.At our developer summit back in April I presented and wrote a sample app that positions a 3D glyph (model) of the millenium falcon above Area 51. I added some code to predict where you will be in a straight line based on your current lat / long, alt, speed and bearing. Running the task you are able to change its speed, bearing, pitch and roll. I didn't add code to overcome gimle lock however.So, if you can provide the lat/long/alt and bearing, you will have an instant tracking solution for your UAV. The code for the sample is located here:http://arcscripts.esri.com/details.asp?dbid=15900and you can download ArcGIS Explorer from here.http://www.esri.com/software/arcgis/explorer/index.htmlI made the code as generic as I could, its written in C#, and all of the drawing is in OpenGL. Take a look at the code and you should easily spot where to plug in the coordinates.

I've also written a live GPS task that we will release probably later this year (not source code however).Few snap shots from Visual Studio

This parses NMEA and shows you your position bearing etc. I’ve added the ability to track your movement which creates pushpins on the surface. The added pushpin content is what we call a result. A result when double clicked will show you a popup. A popup can contain anything from text, to a web ref, or a locale file on disk. Here you’ll see I am referencing a picture of a car.

So, imagine not only your position being shown, but if you are taking stills, or capturing stills from a video stream, you could create a pushpin on the ground below your position, write the image to disk, then write the location and file name into the Popup’s description. Then as you see above you would have something that conveys a lot of information.Also, I’ve written a Geotagging task that will be available later this year. Sorry but I have no control over the release times, except for sample code. Geotagging will enable you to send the image to anyone with mapping software that can open geotagged images, and it will place them exactly where the coordinates tagged to the image specify.It would be interesting to hear from any of you interested in this, ideas, issues, let me know. Not knocking Google, I think its great (virtual earth rocks too), but a lot of this type of functionality you only get with the pro version I think.Edan Cain
Read more…
3D Robotics

New failsafe code for the ArduPilot/Pro

We caught a small bug in the attiny code that runs the failsafe on ArduPilot and ArduPilot Pro. On ArduPilot, the failsafe will allow you to reboot the main microcontroller remotely, and this was stuck in the on position, making it impossible to load the autopilot code. Corrected Attiny code is here (if all you want is the hex file to load onto the attiny, it's in the Defualt folder).
Read more…

Another Parallax Propeller Autopilot

Introducing the "OughtToPilot"

Default.aspx

OughtToPilot-Project-L.jpg

It seems the parallel processing ability of the prop makes it a top candidate for autopilot brains. This project was entered in the Parallax Design Contest and won second place!! The designer opted for a fuzzy-logic algorithm over a kalman filter for the IMU.The OughtToPilot employs a non-linear fuzzy-logic algorithm to blend two different types of inertial sensors (accelerometers and gyros) in a computationally efficient manner. This model free blending and estimation method was chosen over Kalman filtering to reduce the design-side system modeling effort and the real-time computational burden. All computations are conducted upon integer based pseudo float numbers with most values corresponding to a fractional number with three digits after the decimal point, multiplied by a thousand.The source code and material list is available from the link above.
Read more…
3D Robotics

Instructions for using BlimpDuino


Here's how to use Blimpduino:


First thing, needless to say: inflate the envelope. For that you'll need helium. You can get it in a party balloon kit that you can find at most Targets or Wal-Marts or any party supply store. You can also buy it from Amazon, or rent a tank from a local welding supply store.


You shouldn't need to fill the whole envelope with helium. Just tape the BlimpDuino board (with battery and RC receiver) temporarily to the envelope and add helium until it floats upwards pretty strongly with that weight. The envelope will still look pretty saggy, so get a straw and fill the rest with air so it looks full. You can then ballast the blimp by taping on coins until it's neutrally bouyant. The envelope will slowly leak over a week or two, so if you have a little extra buoyancy, you can just take off ballast from day to day as it loses a little lift.


Note that the envelope in the kit comes with some foam cutouts, which can be taped on to the envelope as fins. They looks cool and can add directional stability, but are not necessary. I usually don't bother with them.


Make sure the board is configured as per the photo above, with the switch side facing forward and the props pushing the air backwards, which you can check in RC mode. (click on the photo for a bigger version). Tape or velcro the board to the bottom of your blimp, with all the components facing down.


Note: The Blimpduino code sends lots of useful status and debug information that you can see if you leave your FTDI cable plugged in and open the serial window in the Arduino IDE (circled in red below):



RC Mode
  1. It's best to start in RC mode. Plug RC receiver channels 1 and 2 into the first two (furthest from the reset switch) 3-pin connectors on the BlimpDuino board (see diagram below). Plug the vectoring servo straight into channel 3 (throttle) of the RC receiver. Turn on the transmitter, and then power on BlimpDuino. The code should auto-detect the RC signal, and after the green LEDs flash in a circle they'll flash back and forth and do another funky jig. That means you're in RC mode.

  2. Controlling a blimp is a little different than flying an airplane. The "aileron" stick controls the differential thrust of the motors to turn. The "elevator" stick controls the thrust to go forward: the further you push it up, the faster it goes. The "throttle" stick controls the pitch of the vectoring servo, which determines the tilt of the thrust. If the blimp is neutrally ballasted, you can often leave it in the middle position, but if the blimp tends to go up or down under power, you'll move that stick to control the vertical direction of the thrust. It's a little bit like an elevator with a plane, but with the added dimension of changing thrust.
  3. Now is the right time to test that the motor are plugged in the right way. When you move the "aileron" stick, the motor on the opposite side should spin, blowing air backwards. If the motor doesn't turn in the right direction (blowing air backwards), just reverse their plug on the board. Pushing the "elevator" stick forwards should increase the speed of both motors, again blowing backwards. If that actually turns the props in the other direction, so they're blowing air forwards, despite them working correctly with "aileron" stick, you may need to reverse the direction of this channel with your transmitter.
  4. If one green LED just blinks rapidly and the servos don't go through their startup moves, your battery is too low. Recharge it and try again. (If you find that this happens too soon or often, go the the definitions portion of the first tab of the code and change "#define low_battery_limit 6000" to a lower number)
  5. Now you should be able to fly around. You'll note that it turns one way better than other due to motor torque effects. We're looking for a reverse-pitch prop so we can have the motors counter-rotate and avoid this. But for now it shouldn't be too bad.

If that all works, it's time to try...


Autonomous Mode.

  1. Unplug the RC receiver channels from BlimpDuino, and plug the vectoring servo into the third 3-pin connector (closest to the reset switch).
  2. Plug the beacon into a 5-9v power source.
  3. Make sure that there aren't any cables obscuring the ultrasonic sensor or blocking the IR sensors.
  4. Hold the blimp at shoulder height over a hard floor (not over carpet).
  5. Power it on and wait until the LEDs flash in a circle. That means it's measuring its altitude and is ready to hold it.The servo will turn the motors all the way up, down and back to the middle to show that it passed its self-test.
  6. If one green LED just blinks rapidly and the servos don't go through their startup moves, your battery is too low. Recharge it and try again. (If you find that this happens too soon or often, go the the definitions portion of the first tab of the code and change "#define low_battery_limit 6000" to a lower number)
  7. Before you let it go, make sure it can see the beacon and is responding correctly. The green LED should light up on the side of the beacon, and the motor should turn on the opposite side (at least when the beacon is on the left and right side). You can hold the beacon in your hand and test this.
  8. If that works, let the blimp go and put the beacon on a chair in the middle of the room.

When the blimp can "see" the beacon, it's will go into navigation mode and the vectoring servo will move proportionally as the blimp steers towards the beacon (if you're holding the beacon and walking around, it should follow you). If the the blimp can't see the beacon, it goes into altitude hold-only mode, where the vectoring servo is pointed all the way up or down and it just holds altitude in one place.

Enjoy the show!

Read more…

10x Cheaper/lighter Airspeed Indicator

Given that an Airspeed Sensor costs about $12, I though it worth proposing an alternative: 2 temperature sensors and a resistor. Couple the resistor to one temperature sensor, and induce a voltage to generate heat. Place the coupled part in the airstream, now compare the temp of the one sensor against the ambient temperature; the difference is relative to airspeed. Cost $1.20; Weight nearly zilch. Downsides, not as quick to respond, might use more energy, but given the cost and the relative unimportance of airspeed as it input, it might qualify as a reasonable DIY alternative.
Read more…
3D Robotics

You'll soon be able to buy ArduPilot already made, but for those of you who would rather build their own, here are the necessary parts:

You can buy the boards here.

Eagle (PCB and schematic) files are here.

A pdf of the schematic is here.

Once you've made the board, instructions on setting the fuses and loading the bootloader are here.

A few notes on building the board: Aside from all the surface-mount components below, the only through-hole components you need to solder on are a 5-pin breakaway connector for the FTDI port (first five pins next to the GPS connector), the two 2x3 ICSP connectors, two 3-pin connectors for channel 1 & 2 output, one 3-pin connector for the power select and three pigtails (female-to-female servo connectors cut in half) for CTRL and channel 1 & 2 in. The other two channels (3&4) are not currently used. IMPORTANT: the power selector pins must have a jumper cap placed on two of the pins. Use the two closest to the servo-out ports if you're going to power the board from the RC receiver via the RC-in cables (that's what I've done in the picture above), or use the other two if you want to power the board with a separate regulated 5v power source. If you don't put the jumper cap on these pins, the board will have no power!

Components: ICs:

Capacitors: Diodes: Resistors: Other: Others things you'll need if you don't already have them:
Read more…

Status of Project

Team OSAM just finished surveying a couple thousand feet of road with our high resolution camera in very narrow canyon. We also recently did a multiple uav formation flight (my baby). In addition to this austin recently wrote some new functions for the paparazzi navagtion scheme. The two function are bungee takeoff which will automatically turn on the throttle after the bungee stake has been cleared along with the bungee detaching and also a flower function which makes the plane fly continuously in a pattern that resembles a flower.We are currently working on flying a 5 miles sqaure section of area using a high resolution camera to geo-reference the photos in RGB and NIR. In addition to that we are working on a navigation function which will survey a polygon (sector) in a much more precise manner than before and that has the ability to know when it is finished. This is all using paparazzi of course.Our Team Project Site is http://www.engr.usu.edu/wiki/index.php/OSAM
Read more…
3D Robotics

We're still hand-assembling these--it's a lot of work! But if they pass the beta tests, we can have the boards pre-made and just package the other parts in a bag for user assembly (it takes about an evening). Right now we're sourcing the parts to keep the price under $100. Not sure what volume we'll need, but we'll start with a couple hundred kits and see where it goes. A single BlimpDuino kits will have all the parts to create the following (the bag is the envelope and the little disc is the ground beacon):

Read more…
3D Robotics

Build your own BlimpDuino platform

Here are the instructions to build your own BlimpDuino platform. All the parts, with links and prices, are at the bottom:

Step 1: If you're buying a pre-made BlimpDuino board (not available yet), you're done! If you're doing it yourself, order the parts and assemble a BlimpDuino board. You'll need to also download the Eagle files from that post to see which components go where. Don't forget to check the polarity of the two big capacitors and the LEDs when soldering. Use the female machine pin connectors for the two motor outputs, and the male machine pin connectors for the 7-pin ultrasonic sensor connector. Once you've got the board assembled, set the fuses and load the firmware as per these instructions. Then you can load the BlimpDuino code with the Arduino IDE (remember to select "Arduino Pro" as the board. The latest code can always be found on the BlimpDuino home page.

Step 2: Cut out the gondola platform from the 1/16th plywood. Here are the dimensions:

Step 3: Assemble the Lego vectoring motor shaft with the parts listed below. The following view, with the assembled shaft on top and the exploded view below, should show you what goes where:

Step 4: CA glue on to the plywood the two Lego blocks that hold the motor shaft so the little gear spins freely at the front end of the slot in the wood. Snip the studs off the two little Lego blocks without the center hole. CA glue them to the other side of plywood according to the following photo. Make sure the two Lego blocks are a little bit more than the width of the LiPo apart, as shown:

Step 5: Enlarge the hole in the big Lego gear with a 5/32 drill. CA glue it to the shaft of the servo (try not to get glue in the servo!). Snip the mounting flanges off the servo. Plug the servo into a RC receiver and turn it and the transmitter channel one to center the servo. With the RC system still on, place the servo in the position shown below and ensure that the gears are meshed so the motor mounts at each end are more-or-less horizontal and pointing away from the board (depending on the servo, it may be impossible to get them perfectly horizontal. Don't worry; the software will correct for this). You can also check that a RC receiver and the battery can fit where shown:

Step 6: Cut four 20cm lengths of very thin wire and strip and solder the ends to the motor terminals on one side, and male machine pins on the other (it doesn't matter which terminals go to which pins, since we'll just reverse them at the plug if the motors are going in the wrong direction). Make sure you put short lengths of heat-shrink tubing on the wires before you solder them on the connector. Once you're done, shrink the tubing over the connector solder joints. CA glue the motors on to the Lego motor mounts. Press the props onto each motor.

Step 7: Double-stick tape the BlimpDuino board to the two Lego blocks, with the switch closest to the motor shaft. Wrap the motor wires around the shaft until you've taken up most of the slack, and then plug them into the two connectors on either side of the motor driver chip. Plug the servo into the connector closest to the reset switch, black wire furthest out. Here's a diagram showing the connections:

Step 8: Depending on what batteries you're using for BlimpDuino and the ground beacon, make connector wires that match the two-pin power connectors on both the board and the beacon. Make sure you've the polarity right! Power on beacon and BlimpDuino. After BlimpDuino goes through its start-up self-check process (green LEDs flash in a circle, then servos go max down, center and max up), you should see stuff start to happen. BlimpDuino should light up the green LED in the direction of the beacon, and the servos should move up and down depending on what the ultrasonic sensor is seeing. The motors should turn in the opposition direction as the lit LEDs. The props should be blowing air back (away from the board). If they're blowing the wrong direction, just reverse the connector into the BlimpDuino board. Step 9: If everything works, you're ready to go! Inflate the envelope and tape the BlimpDuino gondola on the bottom and trim it all so it's neutrally buoyant, or as close as possible. Put the beacon on a chair in the middle of the room and power it on. Holding the blimp at the desired height, power it on and wait until the servos go up and down (that's a sign that ultrasonic sensor has recorded the distance to the floor). Let it go. The blimp should maintain height and circle the beacon. Looks simple, but that's the beginning of full autonomy! Step 10 (optional): If you want to fly in RC mode, connect a RC receiver to the other two connectors next to where the servo goes, and plug the servo into the receiver's channel 2 (elevator) position. Our code should autosense that a receiver has been connected and place you in RC mode, where the aileron controls the differential thrust of the motors, the elevator controls the vectoring servo and the throttle controls the speed of forward motion. Here's how to connect everything in RC mode:

Here's everything you need (prices shown are approximate price of all the components if you buy from the retailers linked. In the case of multiple units, the price reflects the total price of all the units required):

Lego parts: (All but the last can be found by going to Lego's "Pick a Brick" store and entering in the name in search box)

  • 4x "Cross Axle 8M" ($0.64)
  • 2x "Angle Element, 180 Degrees" ($0.32)
  • 1x "Cross Axle, Extension, 2M" ($0.06)
  • 1x "Double Conical Wheel Z12 1M" ($0.22)
  • 4x "Technic Lever 3M" ($0.52)
  • 4x "Technic Brick 1X2, Ø4.9" ($0.16)
  • 1x large gear (only available from this third-party store right now; I'm working to get it in the Lego store) ($0.29)
(For RC mode, you'll also need a transmitter and receiver. Any one will work--you only need three channels)

Total: $158.32 (without helium)

Read more…