Slashdot videos: Now with more Slashdot!

View

Discuss

Share

We've improved Slashdot's video section; now you can view our video interviews, product close-ups and site visits with all the usual Slashdot options to comment, share, etc. No more walled garden! It's a work in progress -- we hope you'll check it out (Learn more about the recent updates).

tshak writes "From Microsoft Research, 'Faculty and students at Cornell University have built an unmanned airplane with its own on-board, embedded control system. The large-scale model plane flies by accessing coordinates from an off-the-shelf GPS unit.' Not only does the plane run XP embedded, but the software is written in C# on the .NET Compact Framework. This is all powered by an 800mhz Crusoe processor with 1GB of total system storage."

512 MB is glorious amounts of space for embedded applications... where can I get that much!?! Most of the stuff I work with has at most 2 MB (ROM) and about 512kB RAM, and most of the ROM is taken up by data tables!

Also, who uses some grossly huge OS for real-time embedded applications? Typically there isn't even an OS, or people use very small things like OSEK, which are basically just interrupt handlers that schedule all the tasks you need.

Sorry you missed my point about "management direction" above. I'm not saying that I can write bug free assembly, or even that assembly is required (OSEK and many RTOSs are written in C). Basically my point is that it's a sad day when people say, "ah, the hardware will handle it, and I've got a toolbox which will let me be sloppy, so what the heck?"

sure, for fast things, being able to throw lots of money and buy hardware is nice - but that assumes you have lots of money (or, perhaps, a hard-/software vend

Haven't seen the EULA for XP embedded but the consumer one says do not use for 'mission critical' applications. somehow an airplane seems kinda critical? sounds more like VxWorks or QNX would be appropriate.

Is a model airplane crashing really that much different than a store being shut down for 24 hours because their computers are down?

Yes, because this plane is large enough that it could potentially hurt or kill someone if it crashes. What if it came down on a busy freeway, causing an accident? A store being shut down only causes financial problems for the store.

An application like this has no business using a poorly engineered, consumer grade operating system with a long history of faulty performance.

11 out of 14 posts so far have been modded down as Flamebait, Troll, Redundant, or Off Topic. Is this usual?
In any case, how long until these little plains are fitted with a collision detection and avoidance system? Flying based on checkpoints is all fine and well if you're the only one in the sky, but othrewise its equivalent to a blind person without a dog or a cane walking down a street he knows very well.

Well, a "a collision detection and avoidance system" that doesn't rely on ATC needs sensors (3-D radar, or IR plus laser) that are big and expensive. Typically, these aren't even used on $100M airliners, much less uni research projects.

Well, I would think something could be done with the gps data along with altitude data to give a warning, at least for collisions with other planes. A building/mountain collision detection could be done with accurate maps of the flight area.

"This year the best performances were executed by the Georgia Institute of Technology and the University of Arizona (first year in the Competition). The Georgia Institute of Technology's autonomous helicopter demonstrated "Level 2 behavior" (finding a particular building from among many and then identifying all of the real openings in the building through which they could send in a sensor probe) during a series of three flights comprising more than a

Apparently you didn't read the link. I shouldn't be surprised, this is slashdot. =P

Anyway, that was an interesting story posted on slashdot a loooong time ago. THe guy bought off-the-shelf (Internet) components online and used them to cheaply assemble an autonomous cruise missle in his garage to prove that such a thing is a legitimate threat potentially weilded by terrorists. Unfortunately, governments of the world largely ignore this threat, and New Zealand even decided that, although they considered w

Small GPS controlled planes are old news. Check out the TAM project. Trans Atlantic Model. They flew a model plane across the Atlantic Ocean last year. Check it out here ->
http://news.bbc.co.uk/2/hi/europe/3145577.stm [bbc.co.uk]

One of my friends is one of the leads on the project for Cornell University. He was the one who designed the site and a bunch of other things on the plane.

Yes, they were given grant money from Microsoft, but that wasn't the only influence in their decisions. They've put long hard hours into the plane. XP Embedded does allow them to add functionality to the plane. A lot of companies have given then grants and sponsorships that have allowed them to build the plane. Don't forget this is Cornell here and they're not going to just rely on Microsoft to make the plane run. They also weren't attempting to make a "real" plane - this is still an UAV which isn't meant to have the power of a full aeronautical vehicle.

Unfortionatly one of their planes was destroyed in a fire at a hotel in Maryland while they went down to show off the plane. Luckily, their backup plane that is still being built was not destroyed.

They also weren't attempting to make a "real" plane - this is still an UAV

By "real", do you also mean a plane that will carry passengers? Do you plan to tell these passengers that the plane is powered by Microsoft?
How do you propose to get people on board? I guess even if you don't tell the passengers, the pilot(s) will know. How will you get someone to fly the damned thing? Cattle prods? Money? Booze? Naked women? Get-out-of-jail free?

Obviously the Microsoft Research link gives away the "why", but I really want to know why the overhead of.NET? Why not just compile it to "real" C++, build some machine code, and stick it on a chip? Doesn't that make more sense than.NET? Plus, I'd like to toss in my $.02 that 1GB is totally insane for an embedded system. The space shuttle doesn't need that much for its automated stuff.

from the article:The system runs off two 512 MB compact flash cards, which provides a storage system with no moving parts able to withstand up to 10,000 Gs. One compact flash card holds the operating system in a protected write mode, while the other stores a real-time flight log - a 'black box' that can be examined to diagnose problems, even if the vehicle crashes.

I suspect that the reason for going with this apparent overkill in hardware and operating system is ease of development for their prototype. While it's true that a much smaller embedded system would likely be chosen if light weight and low power (and ultimately, efficiency and hardware cost in a "finished" system) were at issue, the choice of a development system with a GUI, a high-level programming language and all those useful things like an IDE with a debugger makes a lot of sense from the standpoint of

Beyond academic exercise, what is the purpose of such a vehicle? Military, and they already have one of these. To me, this is like the nut in New Zealand who builds cruise missiles for fun and games. Sure there are lots of "wild" ideas, but in reality, most of these problems have been solved by existing technology (which in fact this is).

Not to come over all gee-whiz and so on, but how relentlessly negative these posts are. The students deserve some congratulations for successfully completing an impressive piece of work. Maybe they didn't go the most efficient/difficult/brag-worthy route. So what? Everything they've learned will be useful, regardless of what hardware/software they end up using in the 'real' world. They probably had fun and have achieved something real, instead of just sitting back criticising.

That's the thing - they did use the most efficient/difficult/brag-worthy route to completion. Any other route (including linux) would have required a LOT more work, more than they could have been expected to do. Crusoe chips and 1gb of memory could fit in your hand and you'd not notice. We're talking two small wafers of electronics. They didn't bolt a P4 to the side, but came up with an elegant embedded solution, which can talk to every piece of hardware they need it to, and be small enough to fly where ever they tell it to. If they'd been using linux for the project (with all due respect) they'd probably have spent more time getting linux to talk to the various peripherals than making the flying vehicle itself.

Avionics software, GPS, and the OS are just the testbed, all pretty standard and could be swapped out for something more robust. The control software the decides where and how to conduct it's mission is the interesting part. If it can locate a particular house or vehicle, the conduct smart surveillance and return to the home base, who cares what the OS is?

Seems to me some of this technology might be able to be put to good use for the DARPA Grand Challenge 2005 [darpa.mil], in which autonomous vehicles race across the U.S. desert, driven by their waypoints and obstacle avoidance systems. I'm not at all surprised Cornell is doing some of this autonomous vehicle research.

First, the desktop with Windows, then the lands (they own a looot), then the consoles with Xbox, then the Tv with the Media Center PC... now.. like Xbox is not beating PS2, they came up with the idea of monopolizing the "a la Terminator" flying killing automated things.

I'm all forward it... mainly because I'm against war, and all it'd would take to stop an invasion would be to attack one of the millions of security flaws their embedded IE probably has... by the time they released the patch at http://planeu

But XP embedded is actually a very useful product. It is something that should be released as an option to run desktop systems, as it can be modularized and stripped of nearly all Microsoftiness (Messenger, IE, you name it). Just want the XP OS with full GUI, no frills? XP embedded fits the bill. We use it for a custom application here and it's just what the DOJ ordered.

A lot of people don't seem to like that they've done it with what is effectively a small desktop machine.

Listen, it's all very well complaining that they didn't do the whole thing with $50 and a PIC, but the advantage of doing it with something like XPE is that it's a lot easier to scale up to something grander.

Wanna get waypoints out of Autoroute? Sure - no problem.Need to change your GPS unit to a different USB model? Again. No problem.Want to add some basic computer vision stuff to it getting input fro

They seem to brag about how large their programs are and how much memory they take.

"All it has to do" (note I put it in quotes) is change a handful of control surfaces to put its GPS coordinates back on the desired flight path. This is something that is even simpler than a old-fashioned mechanical autopilot had to do using some gearboxes and hydraulics (Those generally did inertial navigation, and had to do more work because GPS wasn't available half a century ago...).

For some reason, this story about an unmanned aerial vehicle running on Windows XP makes me think of it being infected with a virus called SkyNet and turning into an Aerial Hunter-Killer. (from the Terminator series)

My school(Virginia Commonwealth University) also did this, and actually won the competition these were built for, the second AUVSI student competition.http://auvsi-seafarer.org/seafarers/ default.htmhttp://www.egr.vcu.edu/announcements/ uav.htmlAs far as I know, no Microsoft products were used on the plane, but I can't find too many details at the moment. The guy I know who worked on the project only knew C and C++, though from my understanding he did mostly the EE stuff, not as much programming....

I didn't see any mention of the.NET Compact Framework in the linked article, just C#. I suspect this is running on the standard.NET runtime.

The Compact Framework is a.NET runtime targeted at Windows CE running on top of the processors you find in PocketPCs (generally ARM), and ships with a class library that's rather stripped down from what you get with the full desktop runtime. Windows CE and Windows XP Embedded are, btw, different operating systems, although CE implements a large subset of Win32, an

The article itsself states: Last year, the group won an Innovation Excellence Award from Microsoft Research to continue their previous work in designing an autopilot system for a large scale model aircraft. Schools around the globe received awards from the Microsoft Research University Relations program to enable them to conduct research in emerging technologies.

So they are up front about it - I personally think this is interesting - doesn't matter that they used XP-Embedded over another operating system - whatever gets the job done.

Why do most people here seem to concentrate not on the fact that something very cool was accomplished, but rather on the fact that it was accomplished using technology from a vendor they don't like?</rhetorical>

How about commenting on the project itself rather than posing conspiracy theories? The article itself even mentions that the team had gotten previous awards from Microsoft.

For another most of the posts here, correctly imo, point out that this is nothing new or even that cool. Other teams have allready accomplished more than this with much less overhead. Why do you need XP on a plane? To play minesweeper on?

Lastly I doubt many people here would consider an "award from Microsoft" as being much of anything to brag about.

They use XP embedded because you can write complex applications and do lots of programming without re-inventing the wheel.

In this case, I think XP +.NET is a great choice instead of using a simple microcontroller with assembler code. Why?

1. Device drivers. They are using a wireless modem to get data back and forth to the ground. That's important.

2. Telemetry. The plane fly's itself without help from the ground. This isn't often done. Most of these projects the plane is a dumb terminal to a complex application running on the ground. This way is the exact oppsite. The ground system gives the plane mission goals, and the plane and it's onboard "overhead" process the goals and determine what actions are needed to get there. The goals are things like "fly between nav point 1 and 2, then directly proceed to nav point 3".

3. Advanced image processing. One of the goals of the project is to recognize objects on land. Other systems have to take a picture, transmit back to the ground station for processing. On this one the plane can do it right away, and proceed to their next point without the latency (which is significant) of transmitting back and forth.

4. Robustness. Their plane is better than most others because it can operate with very little supervision from the ground. That's pretty important step forward. It can land itself in the case of something going wrong, the plane's flight hardware failing, etc.

You really have to have tried to do something like this before to appreciate the difficulty of having an autonomous plane like this. Even the Pentagon/CIA recognizes the trouble involved. The first UAV's were basically just remote controlled. They spent two years making them more autonomous which to me is a big deal.

Lastly I doubt many people here would consider an "award from Microsoft" as being much of anything to brag about.
You mean most people wouldn't like to get cash to work on cool geek projects you want to be working on anyways?

Rather than you all speculate (rather sarcastically and incorrectly) about how we do things, why don't I actually tell you?:)

First off: We couldn't have written the software without XP Embedded. Just to get that out in the open. Couldn't have done it.

Testing code on custom chips is *slow* (We have a couple systems that use custom ATMEL 8-bit microprocessors). If we had to write the bulk of our flight control software on those, we'd never get anywhere.

With XP Embedded, we were able to write our code on normal Windows desktops, and run it right there in simulator mode. Once we got as many bugs worked out there as we could, then we could move it down onto the plane.

Also, we use a *lot* of hardware. Sure, it's possible that we could've hand-written assembly language for ATMEL chips to do everything. Turing completeness states that's a truth. But realistically speaking, we'd never get it done before we graduated. For one thing: We have a wireless modem link to a ground station that can monitor the plane. It was hard enough designing a protocol and implementing that to get the data down to the ground. The last thing I wanted to do on top of this is write the driver for the serial modem itself!

Since we were able to take advantage of existing development tools, though, that inital hurdle was quickly cleared.

As for whomever thinks we fly the plane "using flight simulator:"

It's really much simpler than that.

The plane flies itself by its knowledge of its position through GPS and its orientation through a gyro.

Before the plane launches, we feed it in a set of GPS waypoints we want it to fly through. (The flight control protocol we're shooting for next year will allow in-flight course changes.) The plane sees its position, sees where it wants to be next, and goes there. No flight simulator involved. If the target is to the plane's left, it flips the ailerons and it turns left. That's all it does.

That having been said, we did use Flight Simulator for testing. Our software was able to fly planes around in Flight Sim 2004 long before we loaded it into the real plane -- an enormous time, money, and effort saver.

The plane would run for about a half hour. This is a function of the size of the fuel tanks for the engine. I do not believe we ever flew the plane for more than about eight-ten minutes though.

The battery systems would run the computer for about 90 minutes, I think we calculated. When it was on the ground, we could jack it in to some heavy lead acid cells for extra life/recharging the onboard batteries.

And yes, LiPoly's are pretty sketchy technology. Great energy density, but that's what makes them danger

I think it's be cause a lot of people (not all) here see it as a waste. The time/effort spent making it run XP embedded, and making the hardware accomidate all that storage space, could have spent making it run a light OS. XP Embedded is small, but last I heard bare-minimum was still several MB. A lighter OS could have fit on smaller hardware, and provided more space for other stuff, or a small plane design in all.

Even if they wanted to use a.net implementation there are several linux ones available as

why use windows when the OS can be hijacked and used as a weapon?
What makes you think they have a TCP stack on this OS? It's windows embedded. What makes you think they have an ethernet device? What makes you think it can be used as weapon?

Speculation. That's what.

Also, FYI: MS got to its place in the industry legally and ethically. Once they got there is when they got into trouble.

Finally, let's see here. I can think of 1000's of ways planes like this could be used for good. Maybe if you w

> 70% of the up-modded comments will be people who automatically equate 'UAV' with warplane.

My first post (yay! - now modded 0 - boo!) was only intended to emphasise what the linked site acknowledges:

"Safety - An autonomous flight control system inherently removes human operator intervention from vehicle functionality. The capability of an aircraft of considerable mass, traveling at high velocity, to inflict damage to people or property is substantial. It was critical that the flight control system w

AFAIK, all of them. Developing UAVs costs a lot of money (the UAVs in use now typically cost $1M or more), and the military is currently just about the only party willing to throw money at this. The military have one big incentive that commercial users don't: military aircraft are likely to get shot at.The only exception I know of is NASA, their huge flying wing is a step towards 'persistent' UAVs (that can loiter over an area for a long time, which is what you want for surveillance missions).

Not really. Engine control software "decides what the engine will do" based on what the operator desires, not blindly following what the operator is doing. The operator isn't sending 1000 FIRE signals to sparkplugs every second; the operator may want to rev to 8000 RPM, but the ECM will cut fuel at 6000, etc.

The ECM translates operator requests and adjusts for programmed limitations, current sensor states and engine control parameters to try to fulfill those requests, the UAV controls are

quote:The system runs off two 512 MB compact flash cards, which provides a storage system with no moving parts able to withstand up to 10,000 Gs. One compact flash card holds the operating system in a protected write mode, while the other stores a real-time flight log - a 'black box' that can be examined to diagnose problems, even if the vehicle crashes.

It has 1GB of storage, that doesn't mean they are using it all for the OS. They are two CF cards, one for the OS and any software and one for a flight log. Anyway, I'd bet they aren't using much storage on either card.

Oh of course -- because a technology demo -- like a UAV that flies itself-- is completely unimpressive unless it's hyperefficient and has a tiny footprint.

Give me a break, man. It's a STUDENT PROJECT. They probably had a few months to do it. And you expect them to build their own OS and heavily optimize code? The REASON they used embedded XP/C# (besides getting them free from MS) was that they are efficient environments for rapid development that are easy to learn. There's very little bizarre apocrypha in C#, and when you're strapped for time that's way more important than impressing embedded developers.

First: I am embarassed that you think the secret to tight, efficient code is the elimination of bloat. The whole point of bloat is that it isn't used. If something isn't used, it's not necessarily inefficient. In fact, if space is not an issue, it would be an inefficient use of time to eliminate unused components.

Besides, the point of a project like this is not to TEACH anything...it's so the students themselves can learn how to engineer a solution given a set of constraints. If the constraints are "bu

Anything that flies benefits from being actually completed already - a mystical state that higher-level toolkits help one achieve more quickly.

I'm sure they could start from the codebase they have now, work really hard, and have equivalent expertise built into a lighter package in some number of staff-years. Alternately, they could archive the source, go drink margaritas for a couple years, and then buy the lighter package with equivalent power off the shelf and use it to run the existing already-completed software.

I'm sure they could start from the codebase they have now, work really hard, and have equivalent expertise built into a lighter package in some number of staff-years. Alternately, they could archive the source, go drink margaritas for a couple years, and then buy the lighter package with equivalent power off the shelf and use it to run the existing already-completed software.

Oh yeah, that's just what we need, engineering students whose mindset is that of a business owner. How about busting your butt to achieve something? researching more elegant solutions (and no, that's not yours, elegance is in the design and performance software with tough constraints)?

You totally missed the point of research. Research isn't about using technology, it's about inventing new technology. Using off-the-shell components doesn't push the envelope, it just shows the Cornell students can take envelopes from their sponsors.

Good thing not everybody thinks like you, otherwise we'd all be waiting for everybody else to solve our problems for us...

But one could argue that the research and development in this project was the software. Therefore it perhaps makes sense to use existing, proven technology so get the proejct off the ground (sorry!). Later refinement would then be to reduce weight etc, so *then* it might make sense to develop lighter hardware.

Oh yeah, that's just what we need, engineering students whose mindset is that of a business owner. How about busting your butt to achieve something? researching more elegant solutions (and no, that's not yours, elegance is in the design and performance software with tough constraints)?

You are forgetting that a good engineer is, by nature, lazy. The only reason we have cars, planes, trains, boats, and so on, is because an engineer was too lazy to walk, try and fly (by flapping his arms), too lazy to run,

Yeah, I bet they used an off the shelf processor as well, rather than building their own from scratch. And the metal used in the frame? Don't tell me they BOUGHT that rather than mining it and developing their own metalurgical refining processes.

The problem doesn't always lie at the level that happens to be of interest to *you* - the OS in this case.

Oh yeah, that's just what we need, engineering students whose mindset is that of a business owner.

Actually, we do. Real-world end results are what actually matters.

How about busting your butt to achieve something?

I've known a lot of engineering students at Cornell. Suggesting that they don't "bust their butts" or serve as puppets of the Microsoft PR machine makes me laugh. A lot.

Think about this -- if the Cornell UAV team hadn't accomplished something unprecedented, would it have been "news for nerds"? Frankly I don't see why you care whether they developed new technologies from scratch, or built upon existing technologies.

As you should be aware, in technology, you do something first, then you improve on it. It's sort of like building a house of cards. You start by using half the deck to hold up one card -- then you remove supports until you worry about its stability.

Every gadget you use in your daily life started as a technology demo at least twice as large and half as fast. My buddy, for his senior EE project at college, built a wireless computing suit that weighed about 80 lbs. If he were marketing it, he could get mu

You're right. 1G of storage - that's equivalent to two whole USB keychains. It couldn't possibly get off the ground.

Here's how I see it. It's a freakin' prototype. It doesn't have to be elegant. It just has to work. And maybe they want to add other functionality later, such as "look out for that tree" and "don't fly into the building, even if it's a waypoint".

Besides, autonomous flying machines need all that extra power to run Skynet anyway.

Have you even seen an 800mhz crusoe and 1gb of storage recently?? You can fit both in the palm of your hand. We're not in 1983 any more. Complaining about the size shows how hard you're clutching at straws. I mean, sheesh. If it was linux you'd be all over it. "oh it's so cool! i love it! linux rules!". Every single article on/. has some assclown calling something microsoft-based crap, for absolutely no good reason whatsoever. The most disappointing thing is the rest of the/. community doesn't correct such blatant assclownisms, but eggs them on. Really, really sad.

Have you read about XP embedded? It's a pick-and-choose OS, so you can select exactly what you want. That means no bloat. Absolutely none. Kinda destroys your ill-conceived argument, and shows it really was a rant against Microsoft.

When creating an version of it for a machine, you can pick and choose what you want to use and contain. "Lets see... I do not want FAT/FAT32 support but I do want NTFS... no need for a GUI display here... yea... better leave out sol. and calc.exe."

The setup system for XPE is quite powerful and when you decide to add or remove one component, it'll tell you everything that it depends on and that depends on it to ensure that dependencies are satisfied.

Because of this scalability, you can strip down an XPE install to practically nothing, with no unnecessary processes/apps in the background and only what you want running you end up with a very stable system.

It's kinda funny to me... Microsoft for a long time said they could not release a stripped down version of Windows that does not contain IE and WMP... and yet such a system can be built with XPE.

It should be noted though that XPE really isn't designed for desktop use, the reason for this as I see it is simple. Support. When you install 'Windows XP Professional', at it's core it is identical to almost every other XP Pro install out there... XPE on the other ha

Writing code for an autonomous UAV to do nothing more than take off, fly around a bit, and land isn't really that hard.

I can't help feeling that you've never actually written any code for an autonomous UAV...

No, I don't think it's immensely difficult code to write, but writing code that works well in a simulator and making a system that works well in real life is quite different, especially as you can't really afford to have it go wrong on you.

Mission critical how? I've never written a bomb tracking program in C#, but I've never been asked to. With that said, I'd trust.NET as much as I trust Java or Perl -- the framework is quite robust and the execution environment (CLI) is reliable.

I have programs I've written in.NET that have been up on client machines for months. Garbage collection means no danger of memory leaks (and no, I've never seen a slowdown due to GC, it is much more subtle than GC in Java 1.3 which would basically shut down you

StarGate. As in, the series from SciFi. I couldn't tell if you were being cheeky or not, so I'll just go ahead and explain it. They launch a UAV through the StarGate, and use it to scout about on the other side. (A different planet)

It should also be noted that the StarGate itself is powered by Windows XP Embedded. So I'm still on topic here.