Cornell Builds Autonomous UAV
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."
I wonder if they "picked" XP-Embedded because they were given a "grant" from Micosoft.
I'd be interested to know how stable this thing is. Is there anyone here writing mission critical applications with .Net?
http://avdil.gtri.gatech.edu/AUVS/IARCLaunchPoint. html
"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 an hour of flawless fully autonomous operation-- they landed only twice, once to adjust a camera and once to top off their fuel tank."
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 would include several modes of flight termination in case of emergency or flight control system failure."
Sure, there are non-military uses for UAVs - crop dusting, fire fighting, ground mapping, etc, but I'd be interested to know what proportion of the devices currently out there are in fact military.
Phil
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.
stuff |
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.
Which would you consider the elegant way to proceed?
"Consider yourself a member of a virtual corporation with Mr. Torvalds as your Chief Executive Officer." - Linux Advocac
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.
144l. ph34r my 133t l3g4l 5k1lz!
My school(Virginia Commonwealth University) also did this, and actually won the competition these were built for, the second AUVSI student competition./ default.htm/ uav.html
http://auvsi-seafarer.org/seafarers
http://www.egr.vcu.edu/announcements
As 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....
Blessed are the pessimists, for they have made backups.
Clearly a comment by someone who's done no assembly language software development. DeMarco gives the 'chump' factor for estimating any software with a major assembly language component: 'chump' = no estimated time to complete. Secondarily, why should one spend forever and millions of dollars in software development costs when spending a couple of $hundred on memory will solve the problem. Even if it's a couple of $thousand it's a no-op for a real development effort. It's really time some of you dweebs join the real world of costs and schedules when dealing with projects. Software development is meant to develop a product not be an artform.
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.
I just don't think people know how to program any more, when they can't even figure out how to write solid code and avoid buffer overruns and decide to use a "sandboxed" language to make up for their (laziness? lack of competence? management directives to work so fast time for care is squandered?).
"There are a dozen opinions on a matter until you know the truth. Then there is only one." - CS Lewis (paraprhase)
Credit where credit's due - it's a truly great feat of engineering.
Of the four reasons you listed explaining why you "think XP + .NET is a great choice instead of using a simple microcontroller with assembler code", only one is an actual reason. It's true, windows device drivers are really commonplace, to the point that using off-the-shelf hardware with any other OS can be a pain. *note* The other three reasons you listed are in no way related to XP and/or .NET, let alone are they explanations regarding their superiority. As an electrical engineering and computer science student who has been following along with the Open Automation Project on sourceforge, I assure you that Microsoft Windows is in no way a great choice of platform for a project like this *UNLESS* it's Microsoft that's making the project possible through funding.