All Posts (14048)

Sort by
Developer

The ASP XR-01 UAV with the Ardupilot v2.4.6

On nov 15,2009, this was a great day, my ASP XR-01 UAV fully equiped with the ArduPilot v2.4.6 has done successfully its first series of 10 full autonomous flights under the flight plan. The ASP XR-01 is a customized version of the Sonicliner from Multiplex, my model has already done a lot of flights since 2007 but only with a FMA thermopile based Copilot. Today, I have replaced the FMA Copilot by the full ArduPilot with 6 thermopiles, the shield v2 with its pressure sensors, a GPS and a full downlink telemetry system which communicates with my handheld ground station.The weather was windy at the morning (7 m/s SW gusting 9 m/s).I have conducted various tests flights :- full autonomous tests flights with a regular pre-recorded flight plan with 3 waypoints,- the self-learning mode of the v2.4.6: the 3D waypoints have been recorded in flight and then replayed again in full autonomous mode,- the automatic RTH (Return To Home) when the R/C transmitter is switched Off...All these tests flights have been done successfully.You will find a photos album of this event at :http://diydrones.com/photo/albums/the-flight-of-asp-xr01-uavThe ArduPilot firmware has been updated to the v2.4.6. This new personnal release includes a new parameter which is the GPS_MINIMUM ( this is the parameter 8-10 added in the header file). GPS_MINIMUM is the minimum ground speed required in case of strong front wind. In this case this was 3 m/s.Below, onboard video of a full autonomous flight in windy conditions :You will find this new firmware version at :http://code.google.com/p/ardupilotdev/downloads/listBest Regards,Jean-Louis
Read more…

ArduIMU V2 Test Application

MainScreen9.gifThis application was designed to help you test your ArduIMU V2 by showing graphically and numerically all of the data being output from the IMU.You can download the Setup here: ArduIMUTest Setup (3 MB)This version of the Test App uses the MSCOMM control, so the max COM port number is 16 (unfortunately a limitation set forth my Microsoft).Before starting the application, make sure your ArduIMU is sitting flat with the serial cable towards yourself. When the application starts, it will automatically try to find the right COM port and it defaults to 38,400 baud.To reset the ArduIMU, click Disconnect and Connect again on the application. It takes about 10 seconds for the ArduIMU to boot up and start sending serial messages so please be patient.No need for LabView runtime! Yay! However, it now requires DirectX 8 runtime :)EDIT: A special thanks to Michal for providing the 3DS file and texture map! Thank you Michal!!!
Read more…

Pushing the UAV DevBoard to the limits

Tailless & Wingletless from Bryan Cuervo on Vimeo.

In one more attempt to test the abilities and push the limits of Bill's UAV DevBoard, I removed the winglets from my tailless design so now there are no horizontal or vertical stabilizers.The video is in three segments; the first showing manual flight with stabilization disengaged. You can see the difficulty I had flying a tight figure eight pattern. The next segment displays flight in stabilized mode which is noticeably smoother and the last shows turns at three waypoints.Even without the vertical stabilization, there is some yaw stability due to the wing sweep but it is obvious and pretty impressive that the DevBoard firmware can still handle a plane with marginal roll, pitch and yaw stability. Enjoy the cheesy music-----Note: cheesy music replaced with cool music.
Read more…

SC-203, Small UAVs, and You

Earlier tonight I had the pleasure of attending an AIAA seminar on Unmanned Aircraft Systems in the National Airspace System led by John Moore, a principal design engineer with Rockwell Collins.SC-203, a special committee requested by both the AOPA and the FAA, is currently drafting recommendations for policies that will "assure the safe operation of Unmanned Aircraft Systems (UAS) within the National Airspace System." A vast majority of the regulations SC-203 is in the process of drafting will concern large UAVs (> 55 lbs). Most, if not all, of the regulations levied at small UAVs (< 55 lbs), will be similar to the common-sense guidelines already in place for small amateur UAVs. While most of SC-203's recommendations are a ways off, Mr. Moore suggested that we could see concrete small UAV regulations in place by as soon as 2011.More info here:http://www.rtca.org/comm/Committee.cfm?id=45
Read more…
iTunes linksAAC: http://itunes.apple.com/WebObjects/MZStore.woa/wa/viewPodcast?id=330632997MP3: http://itunes.apple.com/WebObjects/MZStore.woa/wa/viewPodcast?id=330633212RSS feedAAC: http://feeds.feedburner.com/diydronesMP3: http://feeds.feedburner.com/diydronesmp3Handy blog post linking to an article that details the ARC proposal from April 1, 2009 (read what you will into that): http://diydrones.com/profiles/blogs/article-on-faa-regulation-ofLearn what you can do to help move things along by listening!
Read more…

ArduIMU groundstation written in 'processing'

I have created a basic 'ground station' for the ArduIMU in the 'Processing' IDE

The Processing development environment is very similar to the Arduino evironmentProcessing compiles into Java, it allows you to run the same code on Windows, Mac OSX and Linux.Being a Mac user and suffering from not being able to find and run the correct version of the NI LabView runtime engine I decided to have a go at creating a ground station myself.This version ArduIMU_v004.zipwas the result of only a couple of hours of work so is a bit rough.NOTE: This is slightly updated from Original code uploaded - fixed 2 bugs.It borrows some of its design from the exiting LabView example and from Jose Julio's Python(?) exampleThe Ground Station:Logs All incoming Serial data to a text FileShows raw data in real timeDisplays key data in textDisplays Accel and Gyro data as bar graphsDisplays Roll Pitch and Yaw as rotating linesDisplays an 'aircraft' showing 3D orientationControls:Press Y to ignore YawPress L to start or stop LoggingPress Q to QuitHere it is operating (with no GPS - inside the house)I intend to keep developing the code for my own purposes.I'd be happy to hear any suggestions or requests for featuresPlease let me know what you think?-Andrew
Read more…

Gyro and accelerometer vibration tests

I performed some rudimentary vibration tests on Razor 6 DOF board with Arduino - which has same gyros and accel as ArduIMU (LPR530AL and LY530ALH, ADXL335). In the above link you'll find complete description of test setup and bunch of images and graphs.Summary is:- Razor / Arduino, which is bulkier then ArduIMU, was placed inside HawkSky ( a la EasyStar) and tests were performed on the bench. I tried, as much it's possible on the bench, to simulate flight condition (i.e. no rigid connections to bench)- there were three groups of tests - no padding, "IMU" padding, and "IMU" + motor mount padding-Accelerometer data, gyro non-amplified signals, and gyro 4x amplified signals were recorded for part throttle and full throttle

Preliminary thoughts:- High Pass filter should probably be changed / eliminated - as noted in other threads by Andrus and Doug W.- I wouldn't mind if bigger capacitors for low pass filters (accels and gyros) were put in place- Padding matters. Location of padding + board placement matters.(some previous data on Razor at http://diydrones.com/profiles/blogs/razor-6dof-imu-arduino-dcm )
Read more…
3D Robotics
Free video streaming by Ustream Tonight (Sunday) we'll do our regular podcast, 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 a half hour early, at 8:30 PM PST, so I can catch a redeye to Boston tonight ;-) This week we'll by joined by Patrick Egan from RCAPA, the Remote Control Aerial Photography Association, talking about UAV regulations and the FAA process to integrate UAVs into the national airspace, something he's part of. Here's a little more on Patrick that he provided us: "I currently hold the title of director for the RCAPA, airspace advocacy committee member at AUVSI(Association for Unmanned Vehicle Systems International), and membership on the ICC (International Coordination Council) which inputs to the EUROCAE wg-73. I have also worked within the framework of the standards groups; ASTM F-38 and RTCA SC-203 (lightly regulated sub-group), and was a full member of the FAA's Small Unmanned Aircraft System Aviation Rulemaking Committee (FAA Order 1110.150)" Other themes in the podcast will include: --The latest on the ArduIMU+ --Chris gets a painful lesson in centrifugal forces --The DIY Drones dev teams ramp up --Favorite blogs posts of the week --And whatever other cool stuff comes up!
Read more…
Developer
For some reason my left index finger hurts me, so i can't type very well. ;-)I'm setting up ArduIMU and ArduPilot SVN repertory, in conjunction with Google code. In that way you will be able to track all the changes made to the code and spot the differences between revisions with the possibility to comment (or complain) about it.Lets do an interesting example, if you go to google code repertory for ardupilot and you click in the tab "source" and then in the option "Changes", or just click here: http://code.google.com/p/ardupilot/source/list. You will see a list of all the revisions of the codes, any change we do to the code will be displayed as a new revision.Now click on revision 5 "r5", over there you will see the log message (i forgot to say something) and the "Affected files". The affected files tells you if i have made a modification, addition, etc. to the specified source file.Now lets go to the point, if you want to see the changes made to the file "/trunk/GPS_UBLOX.pde" in r5 just click on the "diff" link. In the next page you will see a comparation from r1 and r5 files, scroll down and you will find a tiny correction in the checksum verification for the uBlox parser in red (old one) and green (for the new one), spotted and correct by Jason (hehe, my bad). This is what you should see:

***************************************************************************************Now for the store i have include a new and improved 2ch optocoupler:

Its pretty small (in the picture looks huge) but in reality is very tiny. Can be use as single or dual channels. Not to mention that has less components (smaller and cheaper) and more convenient for ucontrollers, because you don't need to supply 5V to power the board in the input side, you can just connect the 3.3V or 5V PWM signal output from your system or receiver (with ground) and you are done!-You can get the stand alone board from here.-Or the assembled version from here.***************************************************************************************For ArduIMu flat version, seems that the High Pass filter on the board is causing problems for some applications, so this the solution:-I will not populate the 1 Mohms resistors anymore.-The 4.7uF capacitor will be replaced by a zero ohms resistor, just to make a bridge, click here.You can see here the difference between the original board and the new board.And whalaa!! Problem solved. If you want me to remove your HP, just mail it to me and i will do it for free.***************************************************************************************-UPS shipping problem!! For some reason the store page is displaying the full prices (and no the prices with discount) for international shipments. If you want to use UPS for international but the displayed price is very expensive just email me and i will give you the real price and i will refund it.Best regards
Read more…

THIS WEEK IN AEROSPACE

THE DISH FARM

The main flying event of the year was the dish farm flight. The dish farm is being torn down in 2011 & replaced by flea startups.Don't think it emits radio waves anymore & VicaCopter is invisible when she's stationary. Nevertheless, got serious radio dropouts after a certain amount of time. Seems the XBee wire antennas are extremely directional, end-on antenna pointing even at 300ft kills the signal & the only way to consistently get over 100ft is diversity.MOTION TRACKING: AS IMPORTANT AS THE AIRCRAFT ITSELFAfter using Cinelerra's 10 year old motion tracking algorithm satisfactorily for 10 years, it was time for an upgrade better suited to the low framerate, wildly rolling aerial photos we now encounter most of the time & the need to penetrate haze. Introducing the Marcy algorithm. There is no Marcy algorithm in the literature. We made it up.The old motion tracker swept a macroblock around to test all possible translations & took the 1 with the highest match. Then it rotated the macroblock in the translated position to find the rotation with the highest match. It was a recursive problem, requiring accurate translation to detect accurate rotation & accurate rotation to detect accurate translation. Too much rolling & the translation accuracy deteriorated. You could improve the accuracy with multiple passes to a limit.Also, we had the translation of multiple macroblocks giving rotation & scaling. That suffered the same problems.The Marcy algorithm sweeps around a macroblock containing all the possible rotations, testing all possible rotations for each possible translation before giving the translation result. It's actually a 3D macroblock with the 3rd dimension being all the possible rotations, a "Marcy macroblock" you might say.In exchange for a huge increase in computation, the payoff is a huge increase in accuracy for image stacking in 1 pass & deeper haze penetration than before. When is China going to get those octocores out?

This is our first use of the Marcy algorithm on haze. Stacked 170 images fully autonomous where previous algorithms needed tons of hand matching, usually missed, & weren't nearly as accurate.

This is San Francisco from the day job in extreme haze. 75 aerial photos stacked.This mission, expertly flown by the Air Force's 50th wing (GPS), was the Marcy algorithm in previous frame/incremental block mode where the macroblock follows a point.This was the complete flight in previous frame/same block mode where the macroblock stays in the same position.This doesn't show anything useful but looks neat.The Marcy algorithm is really just another step towards the ultimate goal of using databases of known polygons rotated in every possible 3D orientation. These future Marcy algorithms on steroids will give 3D volumes from single photos but require a hardware implementation. The photosynth program sort of does this by exhaustively drawing single vectors & comparing them with photos.
Read more…
Developer

ArduIMU code tests/improvements II

I have implemented the dynamic weighting of accelerometer info and works very well...I have made some flight test and the IMU can register some difficult maneuvers like rolls and loopings...Well, rolls are not difficult for an IMU (there are no centrifugal forces involved) but loopings are quite difficult.I´d also start to make some test of the robustness of the IMU/stabilization in difficult flight conditions. I flight in manual mode, do some "strange" maneuvre and then let the stabilization to restore a "normal" flight condition.... First tests were satisfactory but I need more tests...Yesterday I made some videos showing the problem of vibrations/aliasing of the actual ArduIMU code:and another video with the solution implemented (I explain this on the first point of the previous post):Ah, this is the code of the dynamic weighting of accelerometer info:// Calculate the magnitude of the accelerometer vectorAccel_magnitude = sqrt(Accel_Vector[0]*Accel_Vector[0] + Accel_Vector[1]*Accel_Vector[1] + Accel_Vector[2]*Accel_Vector[2]);Accel_magnitude = Accel_magnitude / GRAVITY; // Scale to gravity.// Weight for accelerometer info (<0.5G = 0.0, 1G = 1.0 , >1.5G = 0.0)Accel_weight = constrain(1 - 2*abs(1 - Accel_magnitude),0,1);And on the drift correction we apply this factor:...*Kp_ROLLPITCH*Accel_weight;...*Ki_ROLLPITCH*Accel_weight;...JJ.
Read more…
I've read several times that to get your EM-406 out of binary mode you need to remove power and wait three days or a week, Bah! Send it the (binary mode) command to go back to NMEA! The only catch is, you do have to know what speed it is listening/talking in binary. If you don't know that, you can try all the bit rates. If that doesn't work, then I guess that you will need to unplug for a week. :(The following sketch will set your 406 to NMEA mode, and set which messages to send, at what rate (sorry, no faster than 1x per second), and what bit rate to communicate at. As written it will set you to 9600 baud, sending GGA and GLL messages once per second and GVS message once every 5 seconds.Not a thing of beauty, but it does have a few comments so that 6 months from now I could sort what the heck I did last month. :) It may also serve as a starting point on how to send other binary commands to the 406.Note: I copied it out of other (functioning) code I wrote so it should work. I have not tested this as a sketch of its own but it is quite self contained and I don't believe there are any uninitialized variables or setup required. Let me know how it works for all y'all.Cheers!Ken-------------------------------------------------------------------------------------------------------------------void GPS_Switch_Mode_To_NMEA( void ){int checkSum;const byte magicHead[] ={0xA0, 0xA2, // start sequence0x00, 0x18 // payload length 0x18 = 24};const byte magicPayload[] ={0x81, // Message ID for "switch to NMEA"0x02, // means "do not change NMEA debug message mode"// the next bunch of fields work in pairs, first the time between messages, "period", then whether or// not to send checksum on that message//// "period" is the number of seconds between times that the GPS repeats the message// zero period is "do not send message// then 0x00 for checksum off or 0x01 for checksum on//0x01, // GGA period0x01, // checksum = on0x01, // GLL period0x01, // checksum = on0x00, // GSA period0x01, // checksum = on0x05, // GSV period0x01, // checksum = on0x00, // RMC period0x01, // checksum = on0x00, // VTG period0x01, // checksum = on0x00, // MSS period0x01, // checksum = on0x00, // unused (future message)0x01, // unused (checksum = on)0x00, // ZDA period0x01, // checksum = on0x00, // unused (future message)0x01, // unused (checksum = on)// baud rate in 2 bytes (9600 = 0x2580; 19200 = 0x4B00; etc. )0x25, // baud rate high byte0x80 // baud rate low byte};const byte magicTail[] ={0xB0, 0xB3 // end sequence};// send 4 byte headerfor( int index = 0; index < 4; index++ ){Serial.print( byte(magicHead[index] ) );}// send message body, calculating checksum as we gocheckSum = 0;for( int index = 0; index < 24; index++ ){checkSum = checkSum + magicPayload[index];Serial.print( byte( magicPayload[index] ) );}checkSum = checkSum & ( 0x7FFF );// send the 2 byte checksumSerial.print( byte(checkSum >> 8) );Serial.print( byte(checkSum & 0xff) );// send the 2 byte tailfor( int index = 0; index < 2; index++ ){Serial.print( byte( magicTail[index] ) );}}void setup(){Serial.begin( 57600 ); // set this to the baud rate that (you hope) your "stuck in binary" GPS is set for// if your GPS is really wonked, you may need to repeat this trying different baud ratesGPS_Switch_Mode_To_NMEA();}void loop(){}
Read more…
Developer

The handheld groundstation for the ArduPilot

Hello ArduPilots,You will find somme photos of my hand held groundstation design based on the Ardustation at :http://diydrones.com/photo/albums/the-ardustation-in-actionThe groundstation uses a Xbee radiomodem for the telemetry downlink.More informations and details are published at: http://diydrones.com/profile/JeanLouisNaudinFull Ardupilot source code currently under test at : http://code.google.com/p/ardupilotdev/Best Regards,Jean-Louis Naudin
Read more…