All Posts (14048)

Sort by

When Drones Go Rogue.

Thought folks might like this.( Original post by Ken Wycherley)

When Drones Go Rogue In Friendly Skies,

How Do We Bring Them Home?

Feature
An advanced fly-by-wire system capable of landing grossly damaged unmanned aircraft—demonstrated on video saving a plane missing 80 percent of one wing—is key to solving one of unmanned flight’s biggest problems

Wing Ejected A shrunken F/A-18 target drone equipped with a new, advanced fly-by-wire system was able to return home safely after losing up to 80% of one wing. Rockwell Collins

See rest of article and video here:
Read more…

Performance of netduino reading analog and digital

Since initially deciding on using a netduino for a tricopter, one of the first concerns I had was over performance with it running on the .Net micro framework with regards to sensor reads, since it was mentioned by others that similar boards were slow to read. So now I've got my hands on one I decided to run an actual test on it. Although no sensors were actually connected the values read were actual reads (just the floating voltage of the pins from background noise), so no real difference from actually having a sensor outputting a voltage. Initial results are very promising:

Four analog pins read, Two digital read, Two digital set, and two pwm (servo) values set, per loop.
With the debugger attached (so running even slower) each loop was completed in 2 milliseconds - 5000 iterations (reading and setting) took around 9 to 10 seconds! about 500 iterations per second.
This leads me to believe there shouldn't be any problems with the netduino in this regard at all.

Here's the very very quickly hacked up code I used for the test:

var axisX = new AnalogInput(Pins.GPIO_PIN_A0);
var axisY = new AnalogInput(Pins.GPIO_PIN_A1);
var axisZ = new AnalogInput(Pins.GPIO_PIN_A2);
var IrFloorSensor = new AnalogInput(Pins.GPIO_PIN_A3);

var out1 = new OutputPort(Pins.GPIO_PIN_D1, false);
var out2 = new OutputPort(Pins.GPIO_PIN_D12, false);

var in1 = new InputPort(Pins.GPIO_PIN_D2, false, Port.ResistorMode.Disabled);
var in2 = new InputPort(Pins.GPIO_PIN_D4, false, Port.ResistorMode.PullUp);

var servo1 = new PWM(Pins.GPIO_PIN_D9);
servo1.SetDutyCycle(0);
var servo2 = new PWM(Pins.GPIO_PIN_D10);
servo2.SetDutyCycle(0);

var stopWatch = Stopwatch.StartNew();
stopWatch.Start();
int i = 0;
bool digState = false;

while (i < 5000)
{
axisX.Read();
axisY.Read();
axisZ.Read();
IrFloorSensor.Read();

in1.Read();
in2.Read();

digState = !digState;
out1.Write(digState);
out2.Write(digState);

servo1.SetPulse(20000, 1500);
servo2.SetPulse(20000, 1500);

i++;
}
stopWatch.Stop();
Debug.Print(stopWatch.ElapsedMilliseconds.ToString());

the stopwatch class is available on the netduino forums.
Now just to test this running on a background thread to see if it can still perform at the same speed.

Just thought this might help out if anyone else is wondering if a netduino would be fast enough for a tricopter.




Read more…
Moderator

Dear Friends
Oneof the problems in achieving the autopilot as Multipilot
Arduimu or is to be able to debug the more advanced features such as
stabilization, navigation waypoints and return to home without losing or
damaging the aircraft that are used to perform experiments respecting the law
.

One technology to make this kind of testing is certainly thesimulator using the autopilot hardware connected to a PC running a
software as Physic Engine .

The full story is available : http://www.virtualrobotix.com/profiles/blogs/closed-loop-simulation-for?xg_source=activity
Read more…

Shape Shifting UAV




The little airplane is able to withstand rough conditions thanks to three aeroservoelastic trim tabs, which are located on the trailing edges of the wings and tail. When the plane is hit by wind gusts, the tabs perform rapid high-frequency shape changes, to counteract the effects of the wind. The technology is not unlike the shape-changing trailing edge flaps currently being developed to protect wind turbines from destructive gusts. Combined with several other features, such as a special aerofoil profile optimized for high lift at low speeds, the result is a remarkably steady aircraft.




Read more…

Playing With UDB LOGO

We've been working hard to make MatrixPilot ever more modular, and to test this modularization, I thought it would be fun to build a LOGO-like mission planning language as a plug-in replacement for the existing waypoints module.

After a few evenings of playing, I ended up with something that actually feels pretty useful. All the logo basics are there: HOME, RT, LT, FD, BK, REPEAT, etc. You can also set specific locations (like traditional waypoints), set altitude, and set and toggle flags like whether to fly inverted. You can also toggle between controlling the plane, and controlling the camera target. More info on the language here.

The above image is from a simulation of the following UDB LOGO program running in XPlane using MatrixPilot's HIL Simulation.

// 10-pointed star with an external loop at each point
REPEAT(10)
// One leg of the star
FD(2000)
// Turn 180 + 72 degrees over the course of 18 small segments
REPEAT(18)
RT(14) // RT( (180+72)/18 )
FD(50)
END
END

Read more…
100KM

Techpod 1.0 beta

4946938258_0fff9c05ea.jpg


SPECS:

cruise speed - 27knots

max speed - 55knots

max weight - 4.4 lbs

flight time - 1 hour+

climb rate - 2000 ft/min

features :

EPP wings and tail

carbon fiber tail boom

clear lexan ,fully removable top hatches

clear acrylic "camera quality" dome

pan/tilt camera mount

retail price will be approx $150-$200

4946938304_41f00bd995.jpg

4946348913_1f1ff1e89a.jpg

4946349011_c52de74b86.jpg4946938426_45074c9f80.jpg

Read more…
100KM

Evolution = change or die

Hello everyone - again
my activity on this site has been low for the past year as i have been up to my ears with starting a business and developing a few products for us to sell . I would encourage anyone reading this to take a good long look at my profile so as to understand my background and my history with the diydrones community .

As most are aware , the only true constant in life is change . However the rate of change would appear to be on the uprise . most of us at this point either have lost our jobs or at least know someone who has . This in turn has a ripple effect on the economy , not just as a whole but an individuals economy . The effects of the present state of the economy have been effecting the world of open source . this can be demonstrated very easily by noting Blogs such as Chris's "update on product availability " , the disappearance of projects such as open pilot (I've been trying to contact the team with no success and the latest activity was back in June . if anyone has more info please let me know.). Lets face it , its hard to develop complicated machinery with no capital.

the future of open source autopilots are not guaranteed . as with everything in life open source autopilots are going to have to change or die . OSAP (open source autopilots) have been facing many problems from all sides .
These include but not limited to government regulations , inter-OSAP competition , bad economy , "race to the bottom" mentality , "open source = no $" mentality , no single self regulation entity (AMA for UAVs),and many other fears and misconception held by the public at large and OSAP developers.

The question at hand is this : how can OSAPs change so as not to die ?

I believe the answer is to draw from the strengths that both "open source" and "commercial" auto pilots enjoy

#1 co-operation . as individuals we will be broken one by one , If we join forces we can be unstoppable
#2 commercial viability . the most successful open source projects have commercial applications . no income = no output.
#3 self regulation . Ive been told directly from FAA officials and can be read here ARC.pdf . we have to self regulate or the government will be stepping in .
#4 we , as a whole , need to stop making decisions based on fear . logic yes , fear no



Read more…
T3

rudder-roll stabilization

If you are flying a UAV DevBoard in a plane without ailerons, you should be interested in a recent revision to MatrixPilot that will tighten the turns in waypoint mode, without overshoot. The above picture is the track of a portion of a test flight in an EasyStar. The control mode was switched from stabilized mode to waypoint mode with the EasyStar flying away from the first waypoint. So the controls performed a tight (less than 15 meter radius) "snap-turn", with very little overshoot.
Up until now, the only way to prevent turning overshoot with MatrixPilot was to use a large value for the yaw damping parameter. Although that certainly prevented overshoot, it made the turns very wide. The latest revision prevents overshoot, while still enabling tight turns.
The revision is rather simple: an optional negative feedback term equal to a gain times the roll has been added to the rudder control. The effect is to reduce the steering time constant. It is equivalent to controlling the roll rather than the yaw rate. It is something that has been on my list to do for a long time, I finally got around to it. Rana and Sid have been using this feature unofficially for some time, they encouraged me to add it. Also, there have been posts from time to time from other authors recommending roll-based steering. MatrixPilot has always used roll-based steering with ailerons, but until now, for mostly historical reasons, it used yaw-based steering with rudder.
The new parameter is ROLLKP_RUDDER in the options.h file of MatrixPilot. It is now available in MatrixPilot2.5 in the branches directory, or in the "developers" version in the project main trunk, or as a version 2.5.1 zip file. If you want to try it out, to start with set ROLLKP_RUDDER to the same value as YAWKP_RUDDER. For an EasyStar, set them both to 0.15, and set YAWKD_RUDDER to 0. For now, leave "dead-reckoning" and "cross-tracking" turned off, I am working on improving the performance of both of those. Right now they are not performing up to their potential.
The following is a portion of the track during a test with an EasyStar in which ROLLKP_RUDDER was deliberately set to 0, with YAWKP_RUDDER = 0.15, and a modest value of YAWKD_RUDDER (I forgot what it was.) to show what happens without rudder-roll stabilization. Note the large amount of slowly decaying overshoot after the snap turns.
So, if you are using MatrixPilot in a plane without ailerons, I highly recommend trying this new feature, it should improve waypoint performance.
Best regards,
Bill

Read more…

Latitude 38s UAV Outback Challenge D2 Video

Here's a copy of our Deliverable 2 video that we presented for entry into the 2010 UAV Outback Challenge.

We are using a Penguin-B UAV airframe from UAVFactory(.com) its a very stable platform and as seen in the video it is flying at an AUW of 15kg (~30lb) and tootling along at 1/3rd throttle.

Thought some of you might find it interesting....enjoy.

Read more…
3D Robotics

Spotted at the DefCon hacker conference this year, the ArduPilot-powered WiFi Aerial Surveillance Platform (WASP), basically a UAV with WiFi sniffing capability. It flies until it finds an open WiFi access point and then loiters over it. Here's a video interview with the creators at the conference:



It was briefly discussed earlier on this site here.

(Thanks to automatik for the find!)
Read more…
3D Robotics

Last week to drop an egg!

3689367267?profile=originalThe current T3 competition (egg drop round) closes next Sunday, and so far we've only got one successful entry! (Mark Griffith, whose admirable splat is at right) I know several of you have tried runs without success so far, but this is your reminder to give it one more go this week.

Jason Short has made it easy for ArduPilot users. In the Events tab of 2.7, there is an example of egg-drop code that even has an equation to calculate the proper distance from the target. It assumes you've added Channel 4 control to your ArduPilot. Just set a waypoint for your egg (it's waypoint 3 in the sample code below), hook Channel 4 to a servo that releases the egg, and start dropping!



"void mediumLoop_event(void)
{
/*
float temp = (float)(current_loc.alt - home.alt) * .01;
egg_dist = sqrt(temp / 4.903) * (float)ground_speed *.01;

if(wp_index == 3){
wp_radius = 10;
if(wp_distance < egg_dist){
servo_out[CH_RUDDER] = PAYLOAD_OPEN;
}
}else{
wp_radius = 20;
servo_out[CH_RUDDER] = PAYLOAD_CLOSED;
}
*/
}
Read more…
Developer

Choose your equipment carefully.

With the profusion of low-cost components available today, it's tempting to pick the cheapest one that looks like it will do the job and not stop to think too hard about how well it's going to work. After all, if it's for sale and other people are using it, it must be OK, right?

Consider this post by the respected DIY ESC developer Takao Shimizu, talking about a low cost controller available from a popular vendor:


The money quote:

But, when it's over the current (>2A), then the output voltage goes up to the input voltage(11.4V).

Read that carefully: if you overload the ESC (and 2A isn't that much of a load), your 5V supply suddenly becomes an 11.4V (or higher) supply. Think about how much you have invested in your receiver, servos, autopilot, GPS, OSD, camera(s), etc. Many (most) would be destroyed more or less instantly by a surge of that kind.

It's not just power supplies, though. Cheap servos are tempting too, but again they represent a single point of failure for your aircraft. If you're just building a foamie with an anticipated flying life of a few months, you might be willing to accept the occasional failure and early demise, but if you're flying several hundred dollars worth of gear, a few bucks more for decent servos is a much better investment.
Read more…

DIY Reflow Soldering - Ready for Pizza?

satrap-formello.jpg

Solder yourself in a pizza oven! While we're still waiting for the last quotes to get pxIMU ready for the batch production, we'd like to share how we build the prototypes ourselves. Of course pxIMU will come fully assembled, this guide is just intended for those who want to tinker with their own electronics or want to assemble one of our bare PCBs.

It is actually quite easy and cheap, and all you need is a pizza oven and an oven thermometer. We are already working on the new pxServo board, which will have servo outputs on standard servo ports and a connector for the ArduPilot / DIYDrones GPS modules. It will be also available with a 5V / 2.25A (12.5W) power module mounted, but still be smaller than pxPower. This combination should satisfy all user needs. This tutorial was written with delicate ICs like gyroscopes, accelemeters and magnetometers in mind. We had good success and zero failure so far with the temperature curves from our tutorial.
Read more…

Novel means of quadrotor control / adjust

Here's the demo of my gamecube remote controlling my quad. Newly implemented is the ability to adjust the PID.P value on the field using just the remote.


This method can be implemented with the analog remotes most people use. I've got another remote that uses only analog sticks to drive a menu system. Something similar could be done for the main AeroQuad project if anyone is interested.


The idea was that I wanted a durable, reliable, ergonomic, economical, and digital remote to fly my quadcopter. I started at gamestop since I don't own a gamecube. Using with Andrew Brown's code, J.Ward's page as reference, and a logic analyzer I was able to get a gamecube interface working on 8mhz and 16mhz cpus (albeit with pretty messy code).


More info on the quad design is on my site here.

My publicly viewable svn repo is here on my server.

Pictures:


quad03-_MG_1296-2010-04-18_700.jpg

quad-gc-_MG_3303_2010-05-18_700.jpg

quad-gc-_MG_3339_2010-05-18_700.jpg

Read more…