All Posts (14048)

Sort by
T3

T3 Round 8


Here is my successful entry to the competition.

The aircraft I used was an Multiplex Funjet with the Paparazzi
autopilot guiding the aircraft autonomously and calculating the drop
location. The algorithm took into account egg weight, windspeed, wind
direction, groundspeed, height from ground, and drag. I constructed a
servo-actuated release mechanism inside the Funjet for the egg drop.

The field location was near Givrins, Switzerland. The weather was hot and sunny with some wind.

I acheieved a good result; The unprotected egg landed approx 1 metre from the Home position and smashed spectacularly.
The video gives the best idea of what exactly happened. http://vimeo.com/14030111

At release, the airspeed was 20 m/s (72 km/h) and the height above ground was 54 metres.

The kmz file showing the Home, release and egg land positions is here: Griffin_T3R82.kmz.
Here is the kml in case you can't see the track in the kmz: Griffin_T3R82.kml

This exercise was a whole lot of fun!!!!!

Here are some photos of the egg release mechanism:

Inside fuselage.


Underneath.

Rather simple but effective.


Read more…


Hi Guys,

I designed this protocol since few months ago but it lost in hole of internet.
I hope it helps someone.

Everyone using video transmitters on UAV/FPV planes and audio channels empty or only transmitting propeller sound, this is why i designed this telemetry protocol on audio ;)



Advantages of Audio Telemetry Protocol (ATP)

  • You don't need any extra hardware except your Autopilot/OSD's processor for transmitting datas
  • You can receive all data without any hardware with your PC/laptop
  • Audio channel less noisy than video
  • %90 of video Tx/RX modules supports ATP's 2000-1300hz audible waves without any problem

How ATP Works?

ATP uses AFSK method to sending telemetry data over VideoTX’s audio
channel. The carrier is 2100Hz and a byte starts with one 1300hz wave(start bit), ATP sends
data bits after the start bit. and it sends minimum 10 carrier wave(zero) before a new start bit.
You can read my detailed information from this link (sorry for my English): http://www.flytron.com/pdf/audio_modem.pdf

Code Example for Atmel Users


Calibrating a PWM generator for 2100Hz carrier wave (for Atmega328)
TCCR1B   =   0x00;   //stop timerTCNT1H   =   0;TCNT1L   =   0;
ICR1 = ((Xtalfrequency/8) / 2100); //2100hz carrier generator value 878 for 14.7Mhz
OCR1B = ((Xtalfrequency/8) / 2100)/2; // ICR1 / 2 for %50 PWM waves
TCCR1A = 0x22;
TCCR1B = 0x1A; //start timer
This code generates static 2100hz square waves, put a 100nf capacitor on outside of processor and connect it on Audio in of TX, now you have a sinus on RX side ;)


You can send the bytes any time in your main code flow because AFSK protocol following waves not time sensitive protocol.
modem[] is an byte array that filled with data to send.
modem_byte is an integer for selecting byte of modem[] array
modem_bit is an char for counting sinus waves of AFSK

This code sends start bit at start and 8 bit of byte,
you should wait for 5ms for next byte for balancing sinus waves on audio stream, then you can send another byte also.
modem_bit = 0;while (modem_bit<18) //wait for all bit waves        {

if ((modem_bit%2==0) && ((PINB & (1 << 2))) ) // wait for 1 on PWM output.
{
if (modem_bit==0) // start bit
{
TCNT1H = 1; // this values creates small delay for increasing the wave width
TCNT1L = 180; // and AFSK decoder can detect this big waves to 1, other small(2100hz) waves 0
}

if (modem_bit>1)
{
if (modem[modem_byte] & (1<<((modem_bit-2)/2))) // if bit of bte is 1, change the wave width for 1 on AFSK
{
TCNT1H = 1; // this values creates small delay for increasing the wave width
TCNT1L = 180; // and AFSK decoder can detect this big waves to 1, other small(2100hz) waves 0
}
}

modem_bit++;
}

if ((modem_bit%2==1) && (!(PINB & (1 << 2)))) // wait for 0 on PWM output
{
modem_bit++;
}
}



ATP Modem Software

I wrote a modem software for reading AFSK waves without any hardware (maybe a serial 100k resistor on microphone in)
File name is: SOSD_Modem.exe

audio_telemetry_modem.png


This is only software modem on the planet (or i didn't see another) :)
It is decoding AFSK codes from microphone input like an oscilloscope and giving output values from TCP for 3th party softwares. You can design your loggers, goggle earth interfaces or more with this plug.

It is using 20byte data pack for transmitting and software can separate them
First 16 byte is data bytes last 3 byte is line end and CRC
Pack of Bytes
[0-3] Latitude (4 byte = 32 bit long integer of coordinates)
[4-7] Longitude (4 byte = 32 bit long integer of coordinates)
[8-9] Altitude (2 byte = 16 bit long integer of altitude)
[10] Heading Angle (multiply it with 1.4 for finding angle value)
[11] Battery 1 voltage (divide 10 for value, 111 mean 11.1Volt)
[12] Battery 1 voltage (divide 10 for value, 74 mean 7.4Volt)
[13] Current Sensor 1 (multiply with 0.4 for value, 101 mean 40.4Ah
[14] Current Sensor 2 (multiply with 0.4 for value, 101 mean 40.4Ah
[15] RSSI (It is percentage of maximum value, 35 mean %35)
[16] Speed (km/h)
[17] Line End 1 (value 10)
[18] Line End 2 (value 13)
[19] CRC ( 8 bit totals of first 19 btye)

If you uses my original data pack Software Modem giving this type output from port 1976 (my birth year)
$TELE,lat,lon,alti,heading,voltag1,voltage2,curren t1,current2,rssi, speed, #13 #10

Or you can use your own data pack and you can decode them yourself from modem's RAW data output.
$RAWS,byte0,byte1,byte2,byte3,byte4.........,byte16, #13 #10
then you can decode your data bytes(first 16 byte)

This software only part of ATP i didn't share the codes because i want to share the protocol with all autopilot/OSD producers and i want to use their 3th party tools too.If I share the code, they can change only AFSK frequency and visuals for non compatible products.

New Features

I added direct KML file based live view for Google Earth on the new version of modem software.
You can click on plane_tracker.kml file and Google Earth connects your Modem Software to tracking the plane :)
It is already primitive because we have some connection problem on Google Earth since few months :(


Story Of ATP

If you want to read all discussions follow this link: http://www.rcgroups.com/forums/showthread.php?t=1157558

Thanks for reading
Melih

Read more…
3D Robotics
Free video streaming by Ustream

Tonight we'll do podcast #28, which everyone here is welcome to participate in by listening to the chat live above and commenting and asking questions via the DIY Drones chat function. We'll be starting at 10:30 PM PST and will probably go about 40 minutes.

This week we'll by joined by Doug Weibel and Jason Short, the team leaders of the ArduPilot and ArduPilot Mega code project. They're the ones working hard on getting the APM Beta ready for release at the end of the month (alpha is already out, of course), and will talk about the design and feature decisions they made with APM, as well as the roadmap for 1.0 (in September) and beyond.

This is a great one for questions from the community, so please take advantage of the chat function. We'll keep our eye on that window and ask the team questions as they come in. Apologies for the later hour than usual, which I know is hard for people on the East Coast. The later time is due to a DevTeam meeting that comes before it; it will be a long night of Skypeing for the team!

As always you can subscribe to the podcast here. Tonight's livecast will be recorded and available as a podcast by Tues of the next week.
Read more…

My first Mega flight

So after first connecting the engine the other way around, rain , and more rain, I finally managed to make my first flight in Stabilize mode. With just P-control on a Wingo clone, both at 0.06, it manages to maintain it's height perfectly, but it rolls around a bit.

Guess upping the P was a bit enthusiastic! I'm not posting anything revolutionary, but I'm very happy it flies :)

Picture of the APM mounted inside the plane, no video, sorry.



Read more…

PWM SWITCHES

An open question to the collective:
I am about to start developing a switching system using two spare Tx channels on my radio gear, using the Arduino Nano.
The proposed system will use the first channel as a clock, with the second channel being used as a data channel. The two channels therefore combine to become a synchronous data stream.

THE THEORY
In a 6 channel Radio control system, channels 5 & 6 are binary (not proportional) and provide either a long or short pulse for two position servo control.

AT THE TX
The output cycle of one channel will be measured at the receiver. I expect the length of a channel pulse cycle to be in the vicinity of 120 micro seconds.
Cycling through 6 channels, then, takes roughly 120 micro seconds.
I will be using the Arduino Nano to monitor the position of a number of switches (N) attached to its inputs. The status of these switches (high or low) will be sent sequentially through channel (2) after the synch. pulse (high) of channel (1).

AT THE RX
On receiving the synch. pulse from binary channel (1), the next (N) pulses (long or short) from binary channel (2) will be used to form a word that is demuxed to control the on/off status of (N) number of relays/digital switches on board the UAV.
This output is refreshed every N*120us.
In the case of 6 external switches, I'm looking at up to 240us before the change in status of any given switch, which is fine for non critical switching like lights, flaps or other equipment where immediate response is not needed.

I suppose the big question is:
"Is there a more elegant way to achieve multi switch control to your UAV", or is this proposal in itself an elegant system?


Read more…


  • Modified ArduPilot2.6 and ArduIMU to do interprocessor communications via TWI to free up USART for full-duplex serial comm's between ArduPilot and GCS; can upload PID coefficients in flight. IPC code example: twi_stuff.zip
  • Test flown in manual and stabilize modes, IMU appears to be consistently and accurately reporting attitude.
  • Stabilize mode is solid with no oscillations using default PID coeff's, but need a way to trim pitch; taildragger isn't at cruise pitch attitude when IMU is initialized.
  • Using SUP500 GPS module from SparkFun; altitude values off by up to 100 meters (field elevation 1800m). GPS frequently reports altitude of 1700m at pattern height (0-20m AGL). Also seeing huge intermittent (1 second duration) errors in lat,lon on the order of +/- 2 degrees. I don't think I screwed up the NMEA parser...
  • Also switched to a Serial library which performs buffered transmits. This seemed to solve some problems caused by the standard library's blocking writes. HardwareSerial.zip

Read more…

New GPS to microSD Logger design requests

Hi Guys,

I was design a SD card logger circuit since months but i didn't share it because Atmega328s have stock problem since 10 months and the smaller controller's capacity not enough for this device.
Anyway We just received 250 units Atmega328 and it will finish in few days.
I need your guidance for capabilities of this device. Please feel free about any comments or requests

This is the SD logger circuit.

gps_log.jpg

How it Works

We will connect it on any GPS wiring(parallel) and it will reads all transmission between GPS to Autopilot/OSD and records on SD card. And we can read the flight path with a PC after flight. I guess it will good option for T3 competitions or other logging requirements ;)



Information About Hardware

  • Supporting 0 to 115.200 baud RS232 transmissions,
  • I2C support is possible
  • It's including 2 x 10bit ADC pin-outs for analog logging features (maybe for different projects)
  • FAT32 file support for SD and SDHC microSD/Trancent cards
  • Firmware Upgradeable over RS232 with Megaload boot loading system
  • 4-12V supply voltage
Possible Features of Device
  • Direct KMZ file generating from GPS data
  • Full stream GPS data logging (I guess useless satellite azimuth values must be spitted)
  • Automatic file name generating from Time and Date (it creates different files for every hours)
  • Max. 10Hz GPS support (My personal suggestion: 1 Hz is enough for clear path)
  • Configurable over a config.txt file for all features.
  • And Please share your suggestions about these and another possible features :)
Thanks for reading
Melih

Read more…
3D Robotics


Lorenz Meir of the Pixhawk team had a good email discussion with the APM dev team on airspeed math, and was kind enough to write it up in a very helpful primer.


Check out the whole thing here, which walks through the math and measurement techniques.


His tips at the end apply to sensor measurements of all sorts:


"Conclusion To get an optimal altitude or speed estimate, follow these rules of thumb:
  • Get as much ADC resolution as possible, in the best case 10-100 times or more than your needed accuracy
  • Sample at a much higher frequency and take the average/median (e.g. sample 10 times in a row, take the average/median, return this filtered value). This technique is called oversampling and if the sampling repetitions occur at a much higher frequency than the sampling interval, it should not delay the signal (no phase shift).
  • Do a plot over a sensor range to figure out if your sensor is linear, if not, fit a quadratic/cubic function and linearize
  • Do a static calibration if necessary
  • Compensate for temperature changes if the sensor is sensitive to it
  • Do not over-fit or over filter and just correct as much error as you need to make your application work. Too many projects and people get entangled in their own complexity and failures and crashes are the result of too high complexity and too few testing"

Read more…

SUDDEN FLIPS










Things started off with a failed motor after the last crash. Turned out a wire sheered off from flexing during a crash long ago & the other 2 wires were nearly broken off. No way to spot it without removing the heat shrink tubing. There's no flex tolerance in those $12 motors. This in addition to a minimum PWM setting that was too low after a firmware update may have been causing flips for a while.



Next, it was off to test a new GPS derived heading algorithm & a 25 year old flash. This was the EOS 5D's lightest configuration with a flash.





















The 25 year old flash wasn't much dimmer than the modern $400 580EX II but took forever to recharge. The GPS derived heading seems better.


Now the results of the new algorithm. Commanded & detected heading should be as close as possible.







Except for a few transients, it actually seemed to do better.

Finally, for those of you who use laptops initially instead of rendering 3D models of home made groundstations & buying laptops later, it's time to hack the Targus.

Targus deliberately prevented hackers from splicing unusual connectors to their power supplies by requiring a logic circuit in their connectors to turn on the power supply. Your only recourse to use a custom connector is some diabolical soldering & Dean.










Read more…

PIXHAWK Onboard Pattern Recognition Video



This video shows the PIXHAWK onboard pattern recognition. Interested in the hardware to run it onboard? Two approaches have been implemented: One is extremely efficient and runs at 30 Hz on a Gumstix Overo (ARM Cortex-A8, Smartphone processor). This approach is based on first detecting quadrangles and then matching the objects enclosed by these. We used this approach on a Gumstix Overo onboard our PIXHAWK Pioneer Coaxial helicopter and won last years EMAV 2009 competition with it.

The second approach is more general and uses closed contours fed into a SVM. It can detect arbitrary shapes, but requires more processing power. Through our PIXHAWK middleware, the camera image can be sent to both in parallel to allow a maximum detection.

The video shows the first, highly efficient and robust approach in action:

If you have questions on the video or approach, please contact Fabian Landau.

Please note that the detection is done onboard of our coaxial and quadrotor MAVs with no external processing. The software is part of the ai_vision PIXHAWK repository and will be made available as GNU GPLv3 code.

Read more…

Location Accuracy Within Google Earth

I noticed that my Garmin never says my location accuracy is better than 10 feet. I suspect that's a hard stop--no matter how good it is, nothing better than 10 feet will be reported. I decided to check this by plotting the coordinates given from the Garmin device in Google Maps, then Google Earth, and discovered that if any inaccuracy exists, it's within these two programs. In each case, the program showed my location a good 40-50' from where I actually was. On the other hand, plotting those same coordinates within Bing Maps showed the location within 6' of where the Garmin actually was located. The beta version of MapQuest allows you to enter cooridinates, and it was better than Google, but not quite as good as Bing.

I realize that both the Garmin and the map program being used have inaccuracies that will be additive, but I am very surprised at the Google results. I'm curious if anyone here who has plotted their flight paths within Google Earth has seen similar inaccuracies. Your plane could be shown either flying underground or taking off and landing from a virtual airstrip in the sky.

Thanks,
Paul

Read more…
100KM
EVUAS = EVolution Unmanned aerial systems

Introducing the next evolution in servo control : the opto flight !


there are many advantages to using fiber optics over conventional copper.
these include :
- 100% RFI proof
-complete electrical isolation between RX and servos (excessive current draw from servos will not cause battery voltage drop possibly leading to RX brown out and loss of control)
-no inductive feedback
- can use 5cell batt for RX while using 7.4v lipo unregulated with new high voltage servos .
-boards can tolerate up to 18volts dc

kit includes :
1x receiver board
8x servo boards
1x 10ft fiber optic cable
20x fiber optic cable terminal connectors
1x terminal polishing kit

learn more at www.evuas.com/index.php

18 units available for pre-order . shipping august 20th .
Read more…

Update on my autopilot project

Work has been progressing slowly, but should speed up in two weeks when I will have more time and be back to my equipment and machining facilities. I have a new version of the board coming that should facilitate better proccessing.

It is quite large right now as it is designed to fit on top of the XC-1A dev kit, but the final board will be able to fit into a footprint as little as 1.5"x1" (small size is a key goal here) with a 6 or even 8 layer board to accomodate the proccesor (144 BGA). I am thinking of adding a backup comm system based on a cellular module, which would also be added to the board (64 BGA).

A test stand for the helicopter is in the works. The stand will allow the helicopter to move freely in all directions with boundary limits to prevent crashing. The movement range will be 0-3 feet in the Z axis, and ~150 degrees in the x and y direction. It will add a little bit of weight, but should not matter much with a .30 size helicopter. Motion should not be constrained as it will use PTFE/oil impregnated bronze bearings. CAD files to come later.

Read more…
Hi all!
I am currently doing a project on airplanes using Ardupilot for a start. I found that DIY drones is a big resources area for me to read but there are too much things to look at.
I have started with soldering of the ardupilot board. Do i need to solder the pin D13? I am seeing some pages soldering it and some don't.

I have an objective on making the airplane flying autopilot.
As my airplane requires 4 channel : 1 for aileron, 2 for elevator, 3 for throttle, 4 for rudder, I do not have an extra channel from my transmitter for the CTRL pin. I am using a 4ch transmitter and 6ch receiver http://www.jethobby.com.sg/cgi-bin/ezsite/prod/manager.cgi?action=show&pid=742&cid=31&idx=1&gid=9. I was suppose to connect either channel 5/6 of the receiver to the CTRL pin, is there any alternative ways that i can do to allow my plane to fly auto pilot? (Wish there is some other ways other than buying a new 6 channel transmitter).

For more information, I am using Cessna TW 747-1 airplane for my project currently.

What do I need to add in the program so that I am able to control channel4(rudder) together with channel1 and 2? In the Arduino default files, there is a program "SERVO SWEEP", but it only works for channel 1 and 2.

I am totally new to Ardupilot programming. Can someone give me a manual/guide for the programming?
I saw many type of source codes in the source code page, but i am not sure what and which to use.
I've downloaded the "ArduPilot_2_7_beta3", "Test Suite" and "ArduPilot_EasyStar_V24" which i read from some different guides. But i am not sure how to use them.

I clicked the Serial Monitor for viewing but what is shown is some weird characters.
What am i suppose to see in the Serial Monitor? How to i choose the BAUD?

I am stuck currently with my Ardupilot, which is my first step of project, so I have not move to the GPS, XBEE and XYZ sensors yet. My project is due about 4 Months later, am i able to complete the project? I have 2 partners working with me currently.

Please give me some comment. Thanks in advance! (:

Read more…