All Posts (14056)

Sort by
Developer

ArduIMU Firmware 1.2

Hi there! I'm happy to announce the new ArduIMU firmware and ground station, you can download it from here:http://code.google.com/p/ardu-imu/downloads/listWhat new in the firmware:-You can now select DCM, Euler Angles our both.-Enable GPS output data.-Some minor bug fixed.-The orientation of the gyros and accels are now corrected.Whats new in the Ground Station:-Now the Baud speed is set to 38400 bps to be compatible with ArduPilot uBlox GPS.-You can see now the Euler Angles generated on the uController.-Better debug tools.-GPS information.-Raw Data.What i'm doing now:-Designing new PCB's.-Improving ArduPilot code.-FPV testing with ArduPilot.-Taking care of the business and shipments.-Improving the Store.-Going to School.-Trying to answer some emails.-Always trying to get a beer and some Sushi..Please be patient, I'm always working for you! ;-) Thanks for you support!
Read more…
Hi,beginning of next month I plan to visit Airtec (especially UAV and Heli world exhibitions)http://www.airtec.aero/english/the-airtec/http://www.airtec.aero/documents/Dokumente/2009/090715_a4flyer_uav_world.pdfMostly for fun and take some pictures.Anybody have been before on this exhibition or plan to go this year?Seems to be interesting and is close to Frankfurt-Hahn (Ryanair, so it is cheap :-). Entrance fee is 23Euros(for three days), but conferences and exhibition are quite expensive.Delete the message if it seems offtopic.BR,Dimitar
Read more…
T3

UAV flight in the rain, automatic landing on the airstrip from Krzysztof Bosak on Vimeo.

This time a flight in the rain.Should be a part of 'National UAV Mission Readiness Enhancement Programme'.If there would be any development.Note a few details:-Landing along the 'runway', fully automatic-Nice agreement with preflight mission simulation-No dramatic events due to rain thanks to IMU sensor-Low-tech video reception, almost a trademark. Sorry, my focus is not FPV, but fully autonomous photoshooting-Roll stabilisation failed because the pitot tube got water in it, lowering perceived airspeed and diverging roll angle. Using standard servo didnt helped - 45deg/s is not enough.
Read more…

Oct 11, 2009 T-Rex 600 First Flight

Yesterday I went to my local hobby store to pick up some spare parts. I had a T-Rex 250 on its way. At the store I found a T-Rex 600 being sold used. I asked for a demo, and found my self walking out with it. The cost would have been a little bit more than fully assembling the T-Rex 250.I am trying to think of the UAV Heli project I am trying to get started. My first phase is designing the system. So today's post will be about the hardware I will be using for the T-Rex 600.Orientation Sensors:- Digital compass- Altimeter- Need to find a sensor to determine the angle of the Heli.Distance Sensors:- Stereo Camera (need to find a low cost high res, low power camera)- IR Sensors below the HeliStabilizer:- Cyclic Gyro-Stabilizer Flybarless SystemComputer Hardware:- robostix
Read more…
Moderator

About Video Transmitter

I know that most countries have legislation in terms of radio / video transmitters. I also know that many people do not always comply with this legislation.What are your experiences and opinions with video transmitters?

1. Frequency2. Power3. Range4. Range with Antenna tracker.5. Effect on GPS signal.6. LAWI know that there is no reason to discuss range since the law says in line of sight when you fly with RC. But still there is also some who "accidentally" gets to fly just a little outside the LOS.I have recently been in contact with a company who produce video / data transmitters.Any one in here who has experience with these transmitters.1.

2.

3.

Read more…
3D Robotics

Store reorg and new products!

We've done a long-needed reorg of the store categories to make things easier to find. And one of the thing you'll now find is our new video/OSD category. Between the excellent Remzibi OSD (back in stock!) and this camera we've got one of the cheapest and best OSD combos available, and best of all it's ArduPilot compatible! Other new products include the uBlox GPS module programmed for Paparazzi, ArduPilot or straight NEMA, either with or without the adapter, and the ArduIMU board without the sensors.
Read more…
3D Robotics
A week into the start of the DIY Drones volunteer development teams in the Huddle workspaces, we're making fast progress. Here's the current status: First, on Huddle, we've identified at least two bugs that they've been notified about and are working on. Formatting doesn't work in the discussion groups (they're escaping all the special characters to avoid exploits, which is overkill). And sometimes changes to files that are edited online aren't being saved, due to a bug in passing permissions between Huddle and Zoho. You can work around this by downloading files, editing them on your desktop and uploading them again. Or, just check the URL of the file while you're editing it. If the URL ends in "view", your changes won't be saved. If it ends in "edit" they will. Huddle hopes to have fixes to both of these ASAP. As for the teams, here's the current state of play (If you want to join one of these teams, please leave your name in the comments below): --ArduIMU documention: Draft manual started. Team waiting for hardware to document build. --ArduStation Mega hardware: Very active group led by Sarel Wagner. Debating features and power options. Close to starting on the schematic. --Turn-rate limiter autopilot shield: Debating GPS module and antenna selection. Leaning towards a two-axis gyro for potential enhancement down the road (even though we only need one axis now) --Lego Mindstorms NXT RC interface: This has expanded from just a MUX to a full MUX+servo driver package. Schematic started. --Thermopile replacement IMU: DAC selected and team ready to breadboard as soon as they get IMU hardware. --ArduStation Manual: Draft manual created. Close to release. --Airframe library: team assembling --PID tuning guide: team assembling
Read more…
3D Robotics

DIY Drones Store inventory updates

The national holiday in China is over, so we're getting parts in again. That means more stuff in stock! Here's the latest on hot items. --First, a new product: version 2.0 of the ArduPilot shield (shown above). This one improves on the original in a couple ways. First, it has a real mulitplexer chip onboard, so finally you can load code and waypoints with your GPS plugged in. Although that worked for some GPS modules some of the time before, now it works for all modules all the time. Yay! Also some minor bug fixes. Both of the ground wires for the GPS are now connected as they should be, which should cut down on noise, and the labeling is fixed. This shield is available in two forms: complete board with pressure sensor or special "economy" form ($11 less) for people who want to recycle the pressure sensor from their old board. It's a pretty easy desoldering process, so if you're handy with a soldering iron that option is worth considering. Note that these economy boards don't have the 3.3v power supply, but if you're using the uBlox with the adapter (which has it's own 3.3v power supply) you don't need it. --Speaking of the uBlox modules and adapters, they're back in stock. Get the combo here or just the adapter here. --What's still out of stock? The ArduIMU boards and the XYZ sensors. Give us another week or so for them.
Read more…
Developer
Hello All,I am going through the ArduIMU v1.1 software and getting ready to start modifying it for my own purposes. I am pretty excited about this IMU and think there are some really cool, creative things that can be done with it.I keep generating questions that people are helping me find the answers. I've decided to update this top post as questions get answered so that it will be a bit of a FAQ,I know there are others than me digging in to the code, so post your questions and answers as comments and I'll keep the FAQ at the top updated :)DougCURRENT QUESTIONS:Q The V1.1 download code has#define Kp_YAW 0 //.5Yaw Porportional Gain#define Ki_YAW 0 //0.0005Yaw Integrator Gainso the values in use as downloaded are zero and there is no yaw drift correction. Has anyone tried out the values in the comments? What testing did you do and what were the results?Q I have been looking at the accelerometer data to see if I could use it to integrate velocity, but it looks much too coarse, and despite claims that accelerometers don't drift mine have some poor behavior that I would either call drift or hysteresis. For example, using groundtest.vi and looking at the accelerometer data - With the IMU sitting on my desk the raw accelerometer data should be (and initially is) 0, 101, 0. However, after moving the IMU around and then bringing it back to rest I might see data of 1, 101, 2, or 0, 101, -3, and those readings might persist for quite some time (>20 seconds). If you work the math on 0, 101, 3 it works out to indicating a velocity of 13 miles per hour in the z direction after 20 seconds. So, the question is: Is this hardware any good for inertial navigation applications???ANSWERED QUESTIONS:Q Where is the yaw drift correction??? Am I correct in thinking that it is not included in this release of the software?A - No - the yaw drift correction is handled in the roll_pitch_drift() routine. However, note that the P and I coefficients are set to zero in the v1.1 download. You will need to change them. I haven't tested values out yet.Q Why is Gyro_Scaled(x) defined as x*((Gyro_Gain*PI)/360) instead of x*((Gyro_Gain*2*PI)/360) or x*((Gyro_Gain*PI)/180)?A Well, because the factor of 2 is incorporated in the Gyro_Gain (we think)Q Why the procedure in setup() of reading the adc's 75 times? From the filtering it looks like 3 or 4 times should be sufficient as the value after any read is 90% the most recent measurement and only 10% previous averaged measurements.A I looked at the raw data and for some reason the data is pretty goofy the first 5+ times through the loop, almost like you need to warm up the AD converters. Can't explain it, but that is probably why 75 samples are taken even though 5 would be sufficient with the filtering used.Q Why is AN_OFFSET[4]=AN[4]+GRAVITY instead of AN_OFFSET[4]=AN[4]-GRAVITY?A Because gravity works to lessen the value of the raw data in the y axis, so GRAVITY is added back to get the "zero gravity" offset. It is just a matter of the direction and sign.
Read more…

I2c GPS frees up Serial Port

I wanted two way communication with my airplane, and had moved the serial communication stuff to a 2nd arduino (see my prev blog) but I didn't like the way the code looked, so I reconfigured the system to have the 2nd Arduino handle the GPS and Gyro, and then use I2c to send the data to the main processor. Essentially making the GPS into an I2c device, and freeing up the main serial port for 2-way com with the ground.

This works out great. The GPS code is very static (doesn't change) so the code within the 2nd Arduino doesn't have to be updated all the time. (at all) Having the Gyro and GPS together works great - the 2nd arduino becomes an I2c GPS / Heading device that the host simply polls 5 times a second to get the current heading and location. This works better with the I2c protocol ... we're sending small blocks of data instead of the huge text based data I was trying to send around.5 times a second, the host asks the slave for 32 bytes of data. The slave returns the following data:float Gyro_Heading;float GPS_Lat;float GPS_Lon;float GPS_Altitude;float GPS_CMG;float GPS_Speed;long GPS_TimeStamp;int Gyro_Rate;int Flags;The slave takes care of reading the Gyro every 20ms, and updating the Gyro_Heading value.Every time it gets new GPS data, it updates the Gyro_Heading, which takes care of any gyro drift.This has turned out to be a much better way to organize the system. The code in the Arduino slave is static, it is essentially an I2c front-end to the GPS code. The changes to ArduPilot are now minimal. It still calls decode_gps() - which simply requests, and returns the I2c data, and now all the debugging and Serial.println stuff to and from the ground station is back in the main code and much easier to change and much more straight forward.Here's a link to the slave source code: ArduinoSlave.zipAnd another thing...The slave Arduino board started out so pretty... and then things happen.

I used the Spark-Fun XBee carrier board 'cause it said it would hook directly into 5 volt systems, and would actually tolerate up to 12volts of input. The Arduino Mini will also regulate it's own power - so I could use an external 7.4v lipo and not have to do a power supply. Yea !! The gyro gets it's +5 volt power from the Arduino Mini's regulated +5 volt pin. It draws nothing. Great - I could hook up the XBee and Arduino directly to the lipo. Very tiddy. But NO. I had all the code working on the bench, installed everything in the plane. Ready for a test flight, but ... no data coming to the ground station ?? all the lights are blinking - everybody's sending and receiving something ???Turns out the Spark Fun XBee board doesn't like talking directly to my Arduinos. Tx Signal lines are too strong. If I put a voltage divider inline, it mostly works, but with noise garbage here and there. Yuck. I hate flaky com lines. I even tried their level converter chip, but still garbage. (strange - 'cause I've used these before with great success)So I switched back to the Ladyada XBee board, but it doesn't like the 7 volt lipo. (its on board regulator gets too hot) It wants +5volts - but I don't want to pull thru the Arduino Mini's regulator - too much draw - 250 mah. So I bite the bullet and put a 5 volt regulator where the SparkFun XBee board was, and went back to the external XBee board. What a hassle.

But the connections to the system are now very tiddy. Mini Slave board has it's own power from the 7.4v lipo. GPS plugs into the Mini Slave board (and gets it's power from my 5 volt regulator) Power lines from XBee board plug into my Slave board, and also use my 5 volt regulated power. Arduino mini regulates it's own power from the lipo, and provides power for gyro. Only 3 connections to the main system. Two wires plug into Analog 4&5 for the I2c line. 2 wires plug into the TxRx pins (where the ftdi plug goes) and 1 wire plugs into a servo ground.
Read more…
3D Robotics

Results from this weekend's test flights

I had a full afternoon of test flights this weekend, with mostly encouraging results. I flew ArduPilots (with uBlox) on the EasyStar (rudder and elevator), EasyGlider (ailerons and elevator) and SuperStar (a high-wing trainer with ailerons and elevator). The good news is that the default easystar.h config file will fly both the EasyStar and SuperStar pretty much out of the box. Navigation isn't as tight as it would be after you tune the settings, but it works. I also flew a GWS Formosa with AttoPilot. Stabilization worked fine, but the plane kept descending in automode, requiring a manual takeover before it hit the ground, so I've got a message into Dean to see what's wrong. With ArduPilot one weird issue showed up. With the EasyStar, altitude hold didn't work. The plane kept rising and rising, requiring me to eventually switch into manual. But altitude worked great with the EasyGlider and SuperStar, with an identical setup and code. Odd. We're trying to diagnose this, but one thing that may be meaningful is that altitude readings aren't showing up in the Ground Station software (it just shows 0, regardless of the vertical position of the plane). Maybe a bum uBlox module? Some strange code bug? Not sure....
Read more…
Moderator

T3 League Table

Not long left to enter round two, the round of doom! Only three entrants so far!Above the league table combining scores for rounds one and two, Bill and Chris have an identical time this month so I think equal points are the only fair way to go.
Read more…
Moderator

I made a new fuselage for the easystar to get more room for payload. This proto is made in 2 layers of carbonfiber. The carbonfiber is very easy to work with, so if any one out there like to make some modifications just go for it.I got the carbonfiber from hereThe weight of the T-REX fuselage is about 140g = 4.93 ounces - still need to make the inner fuselage so the fuselage can be fasten to the body and still be removerable. Think the whole carbonfiber fuselage will be about 160g = 5.64 ounces.

Read more…

south bay blackhawk

Anyone see the blackhawk flying circuits over the south bay? Bet it was autonomous because it was over unpopulated areas, in line of sight of Mountain View, & flying an extremely boring mission.

Read more…
Developer
This is a rough/raw release of my ArduStation with tracking antenna support. In order to make it work you must calibrate your servo's range (pan 360 degrees, tilt 45 degrees). It uses your actual altitude and location against the altitude/position of your aircraft to accurately point your antenna. I guess the resolution is pretty good!What you need to do to make it work with ArduPilot:-Go inside the code an calibrate your sensors, using this line on the first tab://Servo Calibration!!!!Pan.attach(9,1000,1990);//PAN ServosTilt.attach(10,600,2150);//Tilt ElevatorThe second and third values are the min and max in milliseconds of the servos. (The first value is the Servo Pin Port)Then go to the definitions at the beginning and change these values. To activate them just change it for "1":#define TEST_PAN 0 //Test pan min and max (for calibration).#define TEST_SOUTH 0 //test south (the antenna will just point to south).#define TEST_TILT 0 //test the tilt max and min (for calibration).After you see your tracking antenna is working right, go to the flight field and point your antenna (in south test mode) to your true south... I chose south as a default because when you're between 1 and 360 degrees the antennas makes full rotations to jump from degree 1 to degree 360.You can download the lastest code here:ArduStation_V13.zip
Read more…

2nd Arduino adds 2-way Com with Ground

I wanted two way communication with my aircraft, but when the GPS is running, the Arduino board only has 1 side of its single serial port available, so I added another Arduino Mini to provide 2-way communication between my ground station and the aircraft.The additional board consists of a 5 volt Arduino Mini Pro, with a ATMega 328 chip running at 16 mHz, and a Spark Fun 5 volt carrier board for the XBee. That's it. I had to move my Gyro to this new board, cause I used I2c to link the main ArduPilot board with my new "com" board, and I2c uses the Analog Pins 4 & 5 for communication. (I had my gyro on analog 4&5)

It takes three wires to connect to the ArduPilot board - SDA, SCL and Ground. The two I2c wires go to Analog pins 4 and 5 on the ArduPilot board. Ground plugs into an open servo socket. I used a separate 7.4v lipo battery to power the new Arduino and the XBee. (the XBee 900 XSC draws 250 mah during transmission)

The code changes within ArduPilot were very minimal. I used the Wire Library for I2c. It's not efficient, but it's easy to use. It uses blocking reads, which means your code is sitting around waiting for the data to arrive back, instead of being able to go about your business until an interrupt tells you your data is ready. I'll improve this later.All of my downlink data (data going to the ground station) is isolated within the print_data() function - so making the changes was easy. I used the PString library to mimic the Serial.print calls, so code that used to look like:Serial.print(",CRS:");Serial.print(ground_course);Serial.print (",SPD:");Serial.print(ground_speed);Serial.print(",CRT:");Serial.print(climb_rate);Now looks like:theStr.print(",CRS:");theStr.print(ground_course);theStr.print (",SPD:");theStr.print(ground_speed);theStr.print(",CRT:");theStr.print(climb_rate);Wire.beginTransmission(4); // transmit to our I2c slave Arduino (ID=4)Wire.send(theStr);Wire.endTransmission();The slave Arduino takes all I2c data it receives from the master and transmits it out it's serial port to the XBee where it continues thru space to the ground station.// This is the interrupt routine in the slave Arduino that gets called every time// the master sends out some data.void master_has_sent_us_data (int howMuch){byte slen=0;while (Wire.available() > 0){RxBuffer[slen] = Wire.receive();if (slen < MAX_BUF_INDEX) slen++;}RxBuffer[slen] = 0; // terminating zero for c-stringSerial.println(RxBuffer); // Send to Ground Station via XBee}// -------------------Reading the Gyro is easy. It's actually an analog gyro, but now the main software reads it like it's an I2c gyro. Every 20ms the main loop calls:Wire.requestFrom(4, 4); // request 4 bytes from our slave device #4if (Wire.available() >= 4){gyro = (Wire.receive() << 8) + Wire.receive(); // read 2 bytes as an IntvRef = (Wire.receive() << 8) + Wire.receive();}// -----So for about $40, and a couple hours wiring, I get another serial port, 4 more analog ports (2 of the 6 are used for I2c) 13 more digital lines, and a bunch of horsepower (that pretty much goes un-used) But it's cool - and I really wanted the two way com between the aircraft and the ground. Now I have it. Cheers.
Read more…