All Posts (14048)

Sort by
T3

Yet Another Autopilot

It seems everyone and their mother has an autopilot board they're working on so I thought I would join the bandwagon. I've actually been wanting to develop one for quite some time, but after seeing Bill and Paul's progress on their DCM estimation work I got inspired to get started now.There are several good autopilot boards available for experimentation, but none that had the feature set I was looking for. I wanted something versatile enough to be used in several controller/data logging applications including those involving RC cars/boats/copters/planes as well as high altitude ballooning and rocketry. With this versatility comes a little more complexity, so this might not be the board for someone just starting out, but for others I hope it will be a good platform to work with.Here are a few specs/features.Pic32 based -> An inexpensive chip ($8 or less) with respectable horsepower (32 bit 120 DMIPS) and free development tools. An inexpensive programmer can be had from Sparkfun and others.Micro SD Card based Data logging-> Lots for storage for logging every aspect of your flight. Can also be used to read way points or other mission data.USB Interface -> Useful for uploading/downloading mission data, payload control and as a bootloader for program updates.Real Time Clock -> Time tag logged data or perform time based mission functions.5 PWM Inputs and 5 PWM Outputs -> Interface to existing RC Rx outputs and drive up to 5 standard RC servos.On Board 3 Axis Accelerometer -> 12 bit resolution + Software control of sensitivity (1.5G, 2G, 4G, 6G).On Board 3 Axis Gyro-> 12 bit resolution + Software control of sensitivity (110 deg/sec or 500 deg/sec). family of pin compatible gyros from 67deg/sec to 2000 deg/sec.On Board 3 Axis Magnetometer.GPS Interface -> UART based interface with option of 5V or 3.3V power.Radio Modem Interface -> UART based interface with option of 5V or 3.3V power.Battery Voltage and Current Monitoring. Up to 24 Volts and 50 Amps.On Board 3.3V and 5V regulation -> Plenty of current capability to handle heavy servo loads and RF Modem power requirements.Lots of digital and analog IO -> IR and Sonar based range finder interfaces. Airspeed and Altitude interface. I2C, 8 bit data bus + discrete digital IO.This design will be completely open source, and below you will find a link to the preliminary schematic. I will start on the layout next and hope to have it completed and ready to send in for fabrication on May 4. I look forward to comments/suggestion on the schematic. Also if anyone is interested in getting one of the prototype PC boards when I have them made please let me know. Bare in mind however that this is a prototype and I can make no guarantees that there won't be some boo boos. The parts are small and surface mount, so if your not an experienced assembler you might want to take this into consideration.Although not always the cheapest, I have always had good luck with Advanced Circuits for PC Board fabrication. The cost for 1 week turnaround is $66.00 per board (4 layers) +shipping.I'll post a complete parts list in a week or so when I finish the layout.Software development will follow. I plan on quickly implementing a shell to handle all the timing and IO interfaces, followed by a gradual implementation of the various controller tasks hopefully with community support.Looking forward to comments.Regards,Brianpic32_autopilot_schematic.pdf
Read more…
3D Robotics
In addition to the setting you can change from the desktop utility program (rudder and elevator trim, max speed, waypoints and home postition), these are the settings you can change from within the code itself. They're all at the top of the first tab of the code (called "ArduPilot_EasyStar_WP_PRO). My annotations and instructions are in [brackets]: Especially note the settings at the bottom that allow you to reverse servo travel and say whether your FMA sensor is pointed forwards or backwards: [maximum servo throw in each direction] #define servo_max 2000 //For servos pitch and roll #define servo_min 900 [PID gains for navigation: In general when tweaking PID gains to reduce quick oscillations you must decrease the P, to reduce long oscillations also reduce I, the derivative is to slow down oscillations but is not implement due to the lack of refresh rate.] #define head_P 1.2 //.7 Heading error proportional (same used to move the rudder)... #define head_I 1.5 //heading error integrator Not used for navgiation #define head_error_max 35 //The maximun output in degrees to control the roll setpoint #define head_error_min -35 //The min output in degrees to control the roll setpoint [PID gains for roll stabilization. Same as above #define roll_abs .3 //Set point absolute proportional... I don't know how to explain it... #define roll_P .8 //roll PID proportional #define roll_I 1.3 //roll PID integrator #define roll_min -45 //55 //PID output limit in servo degrees #define roll_max 45 //PID output limit in servo degrees #define roll_comp 0 #define roll_Integrator_max 35 #define roll_Integrator_min -35 [PID gains for altitude control. Same as above] #define alt_P 2 //proportional to control the altitude hold... #define alt_error_max 0 //The maximun output in degrees to control the pitch setpoint #define alt_error_min -10 //The min output in degrees to control the pitch setpoint #define throttle_max 1800 //In us seconds #define throttle_min 1200 #define throttle_dead_zone 20 //In porcent #define throttle_absolute 3 #define throttle_kp 2 #define throttle_ki 1 #define throttle_max 80 #define throttle_Integrator_max 50 #define AirSpeed_Central 25 [PID gains for pitch control] #define pitch_P .9 #define pitch_I 1.5 #define pitch_min -50 #define pitch_max 50 #define pitch_Integrator_max 25 #define pitch_Integrator_min -25 #define PID_dt 20 //Servo refresh time in milliseconds [Says whether a Z sensor is present or not. [Note: autopilot will not properly calibrate without one] #define SENSOR_Z 1 [Says whether the FMA sensor is pointed forward or backwards] #define REVERSE_X_SENSOR 1 //1 = cable behind, 0 = cable front [If your servos are reversed set these to 1 instead] #define REVERSE_ROLL 0 //To reverse servo roll #define REVERSE_PITCH 0 //To reverse servo pitch
Read more…

First flight on auto pilot!

Oke today was a big day I had my first flight on autopilot. (I did not fly exualy)Here are the setup and results:ardupilot 2.1 with z sensor. plane little cessna (see my pics).First I did a field setup to set up the home position. Pilot Marijn Penninx (he builds really great planes, check out www.scale-jets.com) took off and went to a safe alt. So he switched on the auto mode (RTL) and in one sec or less my plane was upside down. Something I did expect because I have noticed that the ir xy is doing the opposite so he got the plane back on the ground and we turned the fma xy 180 degrees (cable facing foreward). Plane back in the air. Safe Alt an auto (RTL) on, now it's responding as it should be. But it wobbles, the elevator is correcting too much. I have seen a little video on this site and they had the same problem (over correcting).I need to alter the code so the elevation is less extreem. When I hold the plane in my hand and point the nose of the plane a bit down, I get full elevation. Where can I adjust this? And are there more settings I need to adjust to get more stability. I have tried to adjust some trim settings but then the plane started to spin down.Pilot Marijn said to me that he uses not more then 10 % of stick to controll the plane.Today's conclusion:- Need to understand why do I need to place the IR XY backwards (cable facing to the front);- Need to fine tune elevation output on auto.Suggestions and solutions are welcome...ThankxJonas
Read more…
3D Robotics
We got mixed up on versions and said the way to set up ArduPilot 2.1 at the field to record the home GPS position and switch the GPS module to digital mode was to connect ground and pin D6. Actually, the correct method is to put a jumper over pins D6 and D7, just like ArduPilot 2.0. Apologies for the confusion (we're working with too many code versions, and the ones using the shields we now have in prototype will have a more graceful setup procedure).
Read more…

Ardunio Mega code to read MicroMag 3-Axis Magnetometer

We can calculate the UAV heading (flight directions) from multiple consecutive GPS readings if the UAV is moving. However, for a hovering, this method would not work and we may need a magnetic compass or a magnetometer (like MicroMag 3-Axis Magnetometer from SparkFun).Is there any code out there for Ardunio Mega to read 3D magnetic vector using MicroMag 3-Axis Magnetometer ?
Read more…
T3

MatrixNav revision 2 is released

Revision 2 of MatrixNav firmware has been flight tested and is now released. The documentation and operation stays the same as for the previous version. The link on the main page for the UAV DevBoard points to the new version. The documentation is available there, also.The baud rate for the binary serial interface to the GPS has been raised in this version from 4,800 to 19,200. This eliminates a 12 second delay in the GPS information that was present in the previous version. As a result, performance in windy conditions has been improved.If you are using the previous version of MatrixNav, replace it with this version. If you made any changes to the control gains in the file controlGains.h, be sure to either save your existing file, or record the values that you are using, and edit the controlGains.h file that is part of the new firmware.The YAWKP and YAWKD gains in the new version have been lowered from the previous version by a fair amount, so that the turns are wider and smoother. In the previous version, a switch to RTL mode would result in your plane "turning on dime". In one of the comments below, Sid recommends lowering the gains. Just so there is no confusion, you should understand that they have been lowered.Also, in the previous version of MatrixNav, YAWKP and YAWKD were postive. In this version they inadvertently wound up to be negative. So if your plane is already set up with the previous version, either make YAWKP and YAWKD positive, or toggle the position of switch SR1 on your board.Bill Premerlani
Read more…
Developer
Finally! took me some time fix this. But for some reason the new bootloader of the Atmega328 is running at 57600bps (Hoo! that means the uploading time is a lot shorter compared with AT168), so i had to add the option to select between atmega168 and atmega328 as is illustrated in the picture above or right.Of course the latest file can be found here.Please report bugs, is normal that the upload/downloading procedure fails sometimes, but not so often...In the near future, the app will include:-Save and Load missions from the hard-drive (do you like .adp as extension?).-A better way to add waypoints.-Choose the desired speed for each mission.-And many more...Enjoy!
Read more…
Developer

ArduPilot Shield Demo

I few days ago i received the first prototypes of the Ardupilot Shield. Right now they don't have silkscreen to reduce the prototyping costs, but the commercial version will do..Main goals:-On board 3.3V power regulator.-Disable the GPS before uploading new firmware automatically.-A lot of pins headers to easily attach sensors with power supply included.-Special connector for 3.3V GPS modules (including the TTL conversion).-Pressure sensor, with low pass filtering, for AirSpeed...-External reset button.-Mirrored status LED,s...-Optional power divider (analog 5) to measure battery level.

[Infrared connector at the bottom]The cost without the sensor will be around $20 dlls at beginning, soon if i order bigger batch's i can reduce the price.My ideas is to make 100 units without the pressure sensor, and another 100's with the pressure sensor (around $30 dlls price tag)... Stay tuned for more news..You can give a look to the diagram here:

[UPDATE]: Auto turnoff is not working properly on 3.3Volts GPS, so i will need to make some changes.
Read more…
T3

EM406 dynamics: final resolution

I have the issue of the latency in the dynamic response of the EM406 GPS in binary mode finally resolved: you have to run at 57,600 baud in binary mode. Apparently there is a large communications buffer in the EM406 that gets flushed by the carriage return/line feeds in NMEA mode, but which does not get flushed in binary mode, unless you run at 57,600 baud. There must have been a memo on this, but I missed it.I will revise the MatrixNav code and release it as soon as I can give it a test flight. The drop in latency from 12 seconds to a few seconds should vastly improve the performance in windy conditions.Thank you all for your help, especially Chris Anderson, Jack Crossfire, and automatik.I should have listened to you, Jack. Next time I will.By the way, the EM-406A performs very well with respect to sensitivity and fast response. Now that I have resolved the binary interface issue, it performs as well as any of the other GPS radios that I tested. I plan to continue using it in future designs. There really is no point to using GPS units with reporting rates that are faster than 1 Hz. As far as I can tell, all they do is interpolate.Bill Premerlani
Read more…
Now that the Ardupilots are back in stock, I am ordering what I need to get one up in the air. The FMA IR sensor is out of stock at FMA Direct until May 15, so does anyone know of another vendor that may have them or if there is an easy replacement I could order or build? It's just three weeks, but I am anxious to get started ;)Question 2, I would like to put a decent IMU onboard to document the vehicle attitude in flight. The three options I've found at SparkFun are the IMU 6DOF - v4, the Atomic IMU 6DOF, and the UAV DevBoard. The "v4" is the only one with magnetometers, so one could expect it to be more accurate at the end of a 30 minute flight, but I've seen similar systems where the magnetometer readings were so noisy that they were useless. Down the road, I might want to use the IMU I purchase to drive a motion compensation system. Has anyone used one of these? All three are within my price range. My main concerns are accuracy and ease of integration. So, does one have a clear advantage? Are there other IMUs on the market that I should consider?
Read more…
3D Robotics

A new Arduino library for GPS parsing

Looks like the Fathers of Arduino have smiled on us UAV guys. David Cuartielles, one of the core Arduino developers, has posted a very welcome set of GPS parsing routines that anyone can use: "I crafted three examples (basic, medium, advanced) featuring the use of different techniques to parse the GPS sentences. If you write something like a data logger, or a GPS toy, post your link here and I will be more than happy to include your code in the next revision of the library. Of course, if you found any errors or made any improvements, do the same thing. This code compiles for Duemilanove and Mega, without any alterations. It works fine with the processors ATmega168 and up. Uses about 300 Bytes of memory space and is documented inside the code. Ah … there is a README.txt you shouldn’t miss; it explains how NOT to use the library."
Read more…

EasyStar Mods - Spar Upgrade

The more equipment that is installed on the plane, the more load the wing will need to take. To prevent the wings from flexing too much, the plastic spar can be replaced with a carbon one.Materials:1. Hacksaw2. Masking tape3. Carbon rod (5/16" OD or 8 mm)4. Original sparProcess:1. Line up the two spars to get an idea of where you will have to cut the carbon spar.

2. Wrap the the location that you are going to cut the carbon spar with masking tape (only a few times around is necessary). The tape will prevent the carbon from fraying when it is cut.

3. Mark the carbon spar where it will be cut, using the plastic spar as a length reference.4. With the hacksaw, cut the carbon spar.

Read more…

EasyStar Mods - Spar Hole Reinforcement

Another simple modification to increase the spar holes strength. I notices that after just a few flights (and a few hard landings) that the spar holes in the wing started to stretch. To fix this problem, I reinforced the holes with fiber washers. (Note that these pictures were taken after I had already done this modification)Materials:1. Hobby knife2. CA3. Two fiber washers (5/16" ID x 3/4" OD)Process:1. Place the spar inside the hole and the washer around the spar so that the washer rest on the root end of the wing. The spar should be fully inserted into the wing so that the washer will be well centered.2. Make a shallow cut around the washer into the wing root to outline where the washer will be installed.

3. Remove foam as needed so that the washer will sit flush to the root end.4. Apply CA on the foam where the washer will be located. Install the washer and let dry.

Read more…

Predator by your own hands! Some help needed :)

Hi, my name is Justas, i am from Lithuania (a small country near Baltic sea), i am 19 years old, i am studying Informatics in Mykolas Romeris university. So, after a few years of flying in flight simulators i decided that i need to go to something more serious, and i found myself in RC. I have been flying with helicopters, gliders and planes. I never had one, so i decided to make one by myself. I could buy it, but for me, building something is even more interesting than using it! I didn't need long to decide what should it look like, for sure it's predator! I decided it because i am in Lithuanian volunteers army (not professional army, more for young people who associate their future with military), so it took my eye from first shot.Firstly it should be controlled manually (because of lack of money, hard time for non working student...), and in a few months after that it should be upgraded with ArduPilot, CoPilot and GPS to become a real UAV!For a while i am not going to annoy you with questions about ArduPilot, CoPilot and GPS (i'm a newbie in that).The first thing i am going to do is to build the main Predator, it's wingspan should be about 160cm or less. (what i want is to be enough to cary about 1kg, it would be a high resolution photo camera and a video camera).After long searches all i found that could be useful was this (didn't found a good quality scheme with V tail up):

predator-diagram.gif

So what i need is help from people who already did this, i'd have some questions like:1. What the material should be?2. What about measurements?3. What about wings construction?4. How to attach wings?Ant i would be wery hapy if someone who did this could share theyr experience, any photos and sketches(most important to me).I'm not very good sketcher, but i tried to show the construction of the main body that i'm thinking about, what do you think about that(just a sample, form isn't very similar to predators):

Impatiently waiting for any help! Thanks and see you soon ;)
Read more…