All Posts (11086)

Sort by
3D Robotics

That's Nathan Siedle, CEO of Sparkfun, handing me the very first ArduPilot Mega board to come off the Sparkfun production line. We were at an Arduino planning meeting in NYC; that's Massimo Banzi of the Arduino project in the back.


Here's a closeup photo of the board. It looks great! The only thing that's not quite right is the GPS connector is supposed to be sideways, so it doesn't rip off in a crash, but we'll fix that in the next batch. It doesn't really matter, because nobody will use that connector; they'll be using the GPS connector on the IMU shield instead.


Front:


Back:

I don't have an ETA on when they'll go on sale, but it's not long now!

Read more…

This week in aerospace

PROP ADAPTOR TERRORISM, INDUCTOR INSANITY, THERMOPILE TERRORISM, WHAT SLOW
ATTITUDE ESTIMATES MEAN, LAST WEEK'S VIDEO FLIGHT

PROP ADAPTOR TERRORISM

These aluminum GWS prop adaptors are ridiculous. Lately they started stripping before getting anywhere near the required tension. Down to threadlock on plastic again.





Forget about those tiny set screws. Use TRex-450 bolts. Time to move to China to make our own.

INDUCTOR INSANITY

Managed to get the Marcy 1 radios to stop locking up permanently. The ground station watchdog timer wasn't being reset. Definitely a point for microcontroller operating systems. That got it down to 1 lockup which instantly recovered around every 15 minutes. These are probably from the reset pins glitching & we know tying those to Vdd adds noise to the thermopile.



So cannibalized a motherboard to make inductors for Marcy 1. These are made with 20" of wire. The larger the spaces between the windings the better.





Inductors on Vdd & GND got it just a hair quieter than 1 inductor on Vdd.





Wound Vdd, GND, & signal on 1 core & that got the best results & least weight. It's probably down to the EMF through the air.





& the readout at flight RPM finally shows a waveform of sorts. Modulating PWM really kills it.



THERMOPILE TERRORISM

Now to get roll & pitch out of it you need to lowpass filter it, stretch it to a constant period, average several periods over time, & take the magnitude at the N, E, S, W phases. Already tried getting the magnitude & phase of the peak. That doesn't work because you've got an irregular horizon with peaks that always show up at the same position regardless of attitude.

Think we got roll & pitch curves. On the ground there's a lot of crosstalk. In the air it resembles more normal attitude changes.



Holding it 5ft off the ground, on the golf course, you get decent attitude sensing & there's a 1V thermopile change. Got a mag gimbal lock when she pitched up.



The completely processed thermopile waveform with spikes for azimuth.

Main problem is the DC offset & amplitude are completely random. The difference between max & min temperature for a given angle of bank is not constant & we don't have enough room for a Z pair. Best idea is a set of thermopiles on the ground station for measuring temperature range in addition to the sonar.

Finally, She's too heavy with the inductor & POV to do much flight testing. Don't know whether to start a lighter flight computer now or master attitude sensing on the ground.

SLOW ATTITUDE ESTIMATES

Thinking things over, the attitude estimate & feedback on Marcy 1 is going to be so slow you're once again looking at filling in blanks in the data. Neural networks got abandonned because no matter how many algorithms you throw at a piece of garbage data, you're still reading the same garbage data.

They improve stability as long as the input data stays in a certain pattern. An unexpected gust of wind or descent causes these algorithms to destroy the data & your autopilot actually takes longer to compensate than it would using PID loops. We stopped neural networks when uBlox 5 came out.

LAST WEEK'S VIDEO FLIGHT

Headed over Los Gatos at night. You get a nifty view of the valley. Unfortunately only been flying the camera after Major Marcy operations & those have only happened at night. The view would have been better in daylight.


Read more…

USB DSM2 Transmitter for my Blade MSR helicopter


Today i flew my Blade MSR using a joystick, my PC, and the 2.4ghz LP4DSM transmitter which used to be in the tx controller. The serial protocol is best documented here, but information on this exists elsewhere including here in a few posts, on diydrones. I'm pretty excited that I finally got this working...it took a few nights of serious head scratching to work out some kinks.


I used a USB to TTL breakout board to transmit to the LP4DSM module, which apparently is a pretty common module found in numerous spektrum and other transmitters. I used LabVIEW to assemble all of the code, pulling axis information from the joystick, filtering this data, and converting that into hexadecimal PPM which was sent via serial to the TX.


I still have some bugs to work out, but it worked, and that is progress.


So, while I was working on this, I also bought an Arduino Pro Mini (yes, i gave into the temptation of a $20 already tested, super small, and assembled board :-D ) and an "ArduIMU Sensor Board - Six Degrees of Freedom (Main)". I put the board name in " " because it's actually only 4 degrees of freedom, having a 3 axis acc and a 1 axis gyro, with analog output.


It doesn't come with any documentation (nor does the Arduino Pro Mini), and I'm not sure if that is common or not. There is online documentation for the Arduino Pro Mini, which is helpful, but I find the information here on DIYdrones to be the best resource. thankfully the hardware is somewhat self explanatory.


Lastly, I bought two micro servo boards, which are the same servos on the Blade MSR, and the BMCX, and possibly others. i'll have to post the name/details of those servos later, i can't find the info right now.


My plan is to put both boards on my MSR, to make a stabilized camera mount using my endoscope vid camera. You can see where this is going.... :-D


....pull off the 5 in 1, add 2 more servos and a rx, and I should have a blade MSR that can be video camera flown, flight stabilized, and hopefully very, very cool. (and hopefully light enough!)





Read more…
Hello,I've been silently following the progress of the UAV Dev Board team for a while now, and want to congratulate Bill Premerlani and his great team for their amazing accomplishments.This is my first posting, so please let me introduce myself. I'm relatively new to RC flying, and have very little experience with micro programming, but do have some background in aerospace and software engineering. Anyway, after crashing a few planes, it's exciting to see that such a capable and inexpensive auto pilot has been developed. I've just started digging into all the UDB technical details, so I'm green behind the ears, but hope to contribute in some small way to the team eventually.I hope you won't mind if I also ask a technical question. I'm having a problem and could use some advice.At this point I've got the UAV Dev Board setup, programmed with MatrixPilot 2_0_3, and connected to Spektrum servos in an aileron/elevator configuration. BTW, getting to this point is due to the terrific UDB instructions and tips, as well as Pete Hollands' excellent videos, so thank you!However, I am having an issue getting the UDB to switch modes from my transmitter/receiver. The UDB remains in manual mode (Green light on, Red light off). My apologies if my question is silly, or has already been answered.The Troubleshooting page (http://code.google.com/p/gentlenav/wiki/Troubleshooting) has the following note."Sometimes the board starts ignoring manual controls, or switches back to RTL mode unexpectedly. This is a problem with some receivers that output servo signals at slightly low voltages. This causes the UAV Dev Board to not be able to see them. One solution is to change to a receiver that sends out stronger signals. Another option is to lower the voltage at which the UAV Dev Board runs from 5.0V to 4.5V. This makes the low receiver voltages look stronger relative to the UAV Dev Board's voltage."I'm wondering if this might explain my problem. If the signal voltage is too low, what voltage is recommended?Here's my setup:Red UAV Dev BoardMatrixPilot 2_0_3Spektrum DX 7 transmitterSpektrum AR7000 receiverUDB Spektrum AR7000---------- ---------------radio ch 1 --- AILEradio ch 2 --- ELEVradio ch 3 --- THROradio ch 4 --- AUX 1 (for mode control)gps --- No gps connected (yet)UDB Servos & Power---------- ----------------servo ch 1 --- Aileron Servosservo ch 2 --- Elevator Servoservo ch 3 --- ESC/BEC measured at 5 voltsI've verified that AR7000 AUX 1 output voltage is effected by the 3 way 'Flap Mix' switch on the transmitter. The AUX 1 signal voltage is 0.25, 0.20, or 0.15 volts, depending on switch position. Are these voltages too low? Regardless of switch position, the UDB board does not change modes.Here's what's observed during testing.1) Turn on Spektrum Transmitter1) Connect power to the ESC/BEC:AR7000 lights turn onUDB Green light turns onUDB Red light turns on2) UDB Red light blinks 6 times3) UDB Red light turns off4) UDB Green light remains on5) Change the position of the 3-position 'Flap Mix' switch on Spektrum transmitter- this has no effect on UDB modes6) UDB Green light remains on and Red light remains off7) UDB provides auto pilot servo control and also allows manual control from the transmitterOne other observation. If the transmitter is turned off, the mode remains the same (Green light remains on, Red light remains off).The options.h file is currently set to the default values. Do these need to be changed?#define MODE_SWITCH_THRESHOLD_LOW 2600#define MODE_SWITCH_THRESHOLD_HIGH 3400It's not clear to me what values the AR7000 (AUX 1) is producing, or how best to measure them.Thanks in advance for any advice, and sorry for the long-winded first posting.Phil
Read more…
3D Robotics

Voice controlled heli UAV


From BotJunkie:

"This little helicopter is able to understand you when you tell it what to do. No pushing buttons, no using special commands, you just tell it where you want it to go and (eventually) it goes. Of course, I’m sure it required a bit of work to define where “door” and “elevator” and “window” are, but it’s a much more intuitive way to control a UAV that works when your hands are full, when you’re stressed (think military), or simply when you have no idea now to control a UAV.

I don’t have much in the way of other details on this project, besides the fact that it probably comes from the Robust Robotics Group at MIT, and possibly from someone who lives in this dorm. How do I know? Well, one of the research goals of the RRG is “to build social robots that can quickly learn what people want without being annoying or intrusive,” and this video is on the same YouTube channel. ‘Nuff said.

[ MIT Robust Robotics Group ]"

Read more…

A public thank you to Caleb from CH Robotics

CHR6dmFrontBack_small.JPG


As some people might know there is a team hard at work on OpenPilot and we are making some progress, like every complex project things don't go as fast as you like but progress is happening. One of the things we are working on now is the low level infrastructure for the AHRS, this makes it so our EKF developers can just drop their code in without messing with the low level side of things.


On of the issues we needed to resolve was filtering the inputs, we were a bit unsure on which way to go. I sent an email to Caleb from CHR to ask his advice, he not only helped a lot but also gave us permission to use parts of his gyro filtering code such as his FIR filter as long as we credited him. Naturally he will be credited in the code and the credit file but I wanted to say a public thank you for this as well.



What I love about OpenPilot is the community, this side was mentioned on the podcast where we announced the project. Caleb is a perfect example of this community spirit.


Additionally, I don't see the CHR-6dm AHRS mentioned much here, so if you are looking for a well priced, powerful AHRS with a complete EKF have a look at http://www.chrobotics.com/ - Caleb rocks :-)


A small update on OpenPilot as well. Things are moving along, we have our issue tracker running now which can be found at bugs.openpilot.org there are still tasks to be added as not everything being is done is in there yet but it will be. There is a burn down chart which shows how far away we are from the version 1.0 release and a list of outstanding tasks that we need help with if people want to get involved.




Read more…
GSmphFT.vivideo_2010-03-16_00.07.44.m4v

After playing with lab view and the ArduPilot with the ArduIMU I have finally managed to get the time lag from the plane to the displayed action on the GroundStation to less than a half a second.
New VI file 1 AM 3/17/2010
Here is my rather crude video.

Earl

Here is the new VI for labview
The file name GS = Ground Station mph = Miles per hour FT = feet

GSmphFT.vi

Here is my latest version.
GSmphFT2.vi
Read more…

march_giveaway.png


Leading up to the 10th anniversary of my robotics blog, GoRobotics.net, I'm doing a series of robot prize giveaways. This month's giveaway features $250 worth of prizes from our sponsors Pololu,Super Droid Robots, Zagros Robotics, Solarbotics and No Starch Press.

1st Place Prize – Orangutan B-328 Robot Controller (donated by Pololu), 2x 24V 195 RPM Gear Motors (donated by Super Droid Robots), and The LEGO MINDSTORMS NXT Idea Book (donated by No Starch Press) – worth $100

2nd Place Prize – Arduino Duemilanove, Tamiya Gear Box and Sport Tires (donated byZagros Robotics), and The Unofficial LEGO MINDSTORMS NXT Inventor’s Guide (donated by No Starch Press) - worth $75

3rd Place Prize – Herbie the Mousebot Kit (donated by Solarbotics), and LEGO MINDSTORMS NXT Thinking Robots (donated by No Starch Press) – worth $75

Read more…

BaroneOSD is a PAL video overlay impression WITHOUT additional hardware required (NO LM1881 Sync generator).

Use only 3 pin:

D1 (USART TX) used to pump pixel in the video connected with a 330Ohm resistor to D6

D6 (AIN0) Video in/out, connect here you camera or radio TX.

D7 (AIN1) 0.3V Voltage reference (you can use a partitor resistor)


http://www.elenafrancesco.org/arduino/



Read more…
In order to properly size displays for the ArduPilot GCS it would help to know what screen resolution everyone uses - in the field on their GCS computer (laptop)

640x480
800x600
854x480
960x1200
1024x640
1024x768
1152x864
1280x720
1280x768
1280x800
1280x960
1280x1024
1360x768
1366x768
1400x1050
1440x900
1600x900
1600x1000
1600x1024
1600x1200
1600x1280
1680x1050
1792x1344
1856x1392
1920x1080
1920x1200
1920x1440
1920x2400
2048x1280
2048x1536
2560x1600
2560x2048
3840x2400

Other ( if so what?)
Read more…
3D Robotics

Jason Short and I had great day of testing and improving code (and putting in a pretty good T3 contest time!). Once again we were at the RC club in Point Richmond, across the Bay from San Francisco. Jason was just back from a skiing vacation where he tangled with another snowboard to the tune of 17 stitches on his ankle (I saw them: ouch) but fortunately UAV development doesn't require a lot of running.


You can see what flight testing looks like above. I fly, he watches the telemetry and then makes changes in the code for me to test.


Here's the rundown of the day's progress. You should see all this reflected in the code in the repository in a day or so:


The Good:


--Navigation is now locked in pretty well. Straight lines to waypoints (no more snaking) and pretty tight turns between them.


--Manual throttle control now works in autopilot mode! Just like you can "nudge" the plane's direction with RC controls while it's flying autonomously, you can now speed it up or down. Excellent for finding the best speed for T3 runs!


--The funky thing with one of my Futaba FASST receivers working and the other not was solved. Turns out that one of them outputs the PWM on all channels in serial, and the other in parallel. Who knew? Anyway, ArduPilot can handle either. If your radio does something weird like only letting you fly left, not right, edit this line in the config file:


//3-2

#define RADIO_TYPE 0 // 0 = sequential PWM pulses(Fasst, Spektrums), 1 = simultaneous PWM pulses (Corona RP8D1)


--We flew the FunJet in RC mode (although it has an ArduPilot, we haven't set up elevon mixing yet). Amazing performance: fast, rock solid and incredibly maneuverable. Once we get it dialed in with the AP, we're going to be looking at sub 10 second Sparkfun runs ;-)



The Bad:


--We still don't have altitude hold working right. We finally got it to display the right altitude in the ground station, but for some reason it's not holding. Jason thinks this is just a matter of tweaking throttle and pitch gains, but for now I had to trim the pitch down manually for the T3 trial runs just to ensure the plane didn't get too high during the autonomous portion.


--We're getting different results with different sensors. I'm flying with FMA sensors, and Jason was flying with DIY Drones sensors. The calibration routines should mean that as long as you've got a matched pair it shouldn't matter where they come from. But for some reason it still does, and different sources require different gains in the code. We'll figure out a way to make that go away...


The Stupid:


--I almost crashed one time by launching with stabilization accidentally on, but not yet calibrated (it takes a few second to calibrate in the air). Also we found that if you happen to power on in stabilization mode, it messes up your waypoint settings (for some reason it thought it was starting on waypoint 7), so for now just don't do it until we can find and fix that bug.


--I also almost crashed launching downwind. In my defense, the wind shifted direction. But still!


--I nuked another Xbee by powering on with the signal line attached. I can rescue it, of course, but I CAN'T WAIT for ArduPilot Mega to make this problem go away with the dedicated serial lines.

Read more…

Variable Pitch Quad Rotor - M/UAV

Variable Pitch Quad Rotor - M/UAV

3689343247?profile=original

DIY project ranging from a 600cc 120HP etec Ski-Doo engine, UltraSport 254 tail rotors, extruded aluminum blades from Vortech, aluminum / steel tube structural components, and a carbon fiber reinforced polymer monocoque frame.

Read more…
3D Robotics

Tutorial: Programming your uBlox GPS module

Although you can buy the uBlox modules pre-programmed from the DIY Drones store, you may want to do it yourself, either because you want to update the firmware or change some settings, or because you've bought the module from Sparkfun because we were out of stock and you need to set it up to use with ArduPilot.

Here's a simple tutorial on how to program your module (it replaces this older tutorial):

First, you'll need the DIY Drones adapter if you don't already have it.

You can use our GPS-to-FTDI cable to connect this directly to your PC, or make your own.

If you're going make your own, solder a four pin header on the pins below the GPS connector on the adapter, as shown above. Now connect it to your FTDI cable, with the pin mappings shown above. I use jumper cables and a six-pin breakaway header for this, as shown below, but you can use any method you want, including making a custom cable, which is the neatest method if you plan to do this more than once:

Jumper wires connected to six-pin header:


Header plugged into FTDI cable:


Once you've made the physical connections, download and install the U-center software from uBlox. (It doesn't work on Windows 7, so if that's what you're using, open a virtual Windows XP mode window to run the software in. You'll also need to "attach" the FTDI USB serial ports, which you should be pretty familiar with if you use virtual XP mode).

Now run the U-center software, selecting the Com port that your FTDI cable is attached to. You also need to tell it what baud rate the GPS module is running at. If you got it from the DIY Drones store, it's 38,400. If you got it from Sparkfun, it's probably 9,600:


You can tell if it's working by going to View/Binary Console. You should see the data flowing through. Also, the icons circled below should be green or flashing green (it's not showing a sat lock because I'm indoors):


If it's not working, check these things:

1) Did you wire it up right?
2) Did you select the right Com port?
3) Did you select the right baud speed?

If you want to update the firmware, you can get the latest uBlox firmware here. Use the one for the "LEA-5H" modules.

To flash the new firmware go to Tools/Firmware update. Make sure the firmware image points to the file you downloaded and unzipped.


To configure a module to use with ArduPilot, download this file.

Go to Tools/GPS configuration, and select the file you just downloaded. Check the "Store configuration..." box and click on "File >>> GPS".



If you were communicating with the module at any speed other than 38,400, you'll find that the configuration process will fail midway through. That's because it's just gotten to the bit that changes the communications speed to 38,400. Set your u-center com speed to 38,400 and run it again. It should work this time.

When you're done, go to Receiver>> Action>> then click Save Config. Otherwise, every time you unplug your gps, it will revert back to the original configuration.
Read more…
3D Robotics

Latest research on optical flow

I've been fascinated by optical flow ever since I learned that you can do some pretty good navigation work with the chip taken from an old optical mouse. I think this is probably going to be one of the methods we use to take Blimpduino navigation to the next level (it's ideal for any unknown environment, as well as GPS-denied ones). As the picture above suggests, optical flow is the method that many animals, especially insects, use to navigate in complex space.


Here's a writeup from Hizook about the latest research in the field. The authors describe the advantages of this technique:


"The main benefit of this method is that the information about the optics and scene depth is wrapped into a model that is easily learned from video from the robot. No calibration grids or complicated lens distortion models are required! The primary limitation from a practical standpoint is the assumption of constant scene depth, which would break down if, for example, the robot turned to directly face a very close wall, departed from the ground plane, or moved from a narrow corridor into a large open area. "


Here's a video that shows how it works:


CVPR 2009 from Richard Roberts on Vimeo.


[Fly image at the top from the Max Planck Society]

Read more…