Slashdot Mirror


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."

15 of 400 comments (clear)

  1. Kick back? by hey · · Score: 1, Interesting

    I wonder if they "picked" XP-Embedded because they were given a "grant" from Micosoft.

    1. Re:Kick back? by Arakonfap · · Score: 2, Interesting

      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 well - or Java could have even been used. A lighter CPU could have been used (or several), and it would have been a much more impressive feat.

      Throwing XP embedded, a 1 gb drive, 800 mhz CPU, and .NET runtime isn't a well-enginieered solution. It _IS_ however impressive that consumer-level products can be used for such a thing. Interesting in it's own way. And I'm sure it had it's own hurdles. It's just that from the enginieering point of view, the initial reaction is "Well, yeah, but what a waste".

    2. Re:Kick back? by angulion · · Score: 1, Interesting

      You do not *need* XP to write complex code..

      I do not think XP+.NET is a good choise, why?
      To answer your points:

      1) Device drivers - no, Windows might have great support for peripherals and devices. Unfortunatly the stuff used in UAVs isn't quite the same that you buy from your computershop. Communication hardware is not often what you use in HAM-radio, but small, light, efficient modules (for example those found on http://www.microhardcorp.com). The one thing you might benefit from, in a driver-way, is in the GPS hardware.
      All these things need to be A) power efficient, B) low weight.

      2) This was about an autonomous vehicle, so compare apples to apples. Ofcourse there isn't help from the ground except perhaps during takeoff and landing, which is usualy found on UAVs.

      3) This I might give you - I don't know .NET imageprocessing capabilities. On the other hand, I do not think it would be any more difficult at all in C. Asm would perhaps need more effort..

      4) Again.. this is autonomous. I would like to argue that this particular design is quite much *less* robust because of the huge amount of "unnessery" code that is in XP and .NET. Any fatal program bug is in this case truly fatal, at least for the airframe when it comes down.

      And yes, there is a lot of knowledge a team need to build one of these - airodynamics, electronics, mechanical engineering, software, to some degree artificial intelligence (desicion making) and more. On the other hand, not at all trying to downplay their efforts, this one doesn't quite yet seem to compete with those used for surviliance by the military.

      And I think they wouldn't have used anything MS in the creation, with perhaps the exception on Flight Sim for testing, where it not funded by MS.

      Despite of my perhaps a little bit negative post, I whole heartedly wish the team congratulations and a bow for their achievment - it's not an easy project.

  2. Stability? by Anonymous Coward · · Score: 1, Interesting

    I'd be interested to know how stable this thing is. Is there anyone here writing mission critical applications with .Net?

    1. Re:Stability? by dasmegabyte · · Score: 2, Interesting

      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 your app for a few seconds), and all of my socket manipulations are wrapped in self healing stubs that catch failures and exceptions and restart the information queue where it left off. Our clients have never seen a bug in the data layer or the framework itself (though our presentation layer has had plenty of bugs...we follow the Microsoft development philosophy here, get it to clients on day X with an acceptable feature-to-bug ratio so they can start getting the most essential work done and we can fix the rest incrementally).

      This is using Framework 1.0; there have been two versions since then with performance, stability and feature enhancements.

      --
      Hey freaks: now you're ju
  3. Helicopters work better.... by Anonymous Coward · · Score: 2, Interesting

    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."

  4. Re:I Predict by philbowman · · Score: 2, Interesting
    > 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 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
  5. Why the overhead of .NET? by 192939495969798999 · · Score: 2, Interesting

    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 |
  6. Re:And I'm supposed to be impressed? by Steve+G+Swine · · Score: 5, Interesting
    Anything that flies benefits from light components.
    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.

    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
  7. Re:And I'm supposed to be impressed? by DavidBrown · · Score: 2, Interesting

    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!
  8. Part of a the second AUVSI student competition by spinkham · · Score: 2, Interesting

    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.htm
    http://www.egr.vcu.edu/announcements/ uav.html
    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.
  9. Re:1 GB? by SumoFanAgain · · Score: 1, Interesting

    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.

  10. Re:Ugh. by ThosLives · · Score: 2, Interesting
    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.

    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)
  11. Re:Mean-spirited by dave420 · · Score: 3, Interesting
    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.

    Credit where credit's due - it's a truly great feat of engineering.

  12. What?! by Anonymous Coward · · Score: 0, Interesting

    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.