Slashdot Mirror


A Standardized OS For Robots

Hugh Pickens writes "The New Scientist reports that at present, all robot software is designed uniquely, even for parts common to all robots but that could be about to change as roboticists have begun to think about what robots have in common and what aspects of their construction can be standardized, resulting in a basic operating system everyone can use. 'It's easier to build everything from the ground up right now because each team's requirements are so different,' says Anne-Marie Bourcier of Aldebaran Robotics but Bourcier sees this changing if robotics advances in a manner similar to personal computing where a common operating system allowed programmers without detailed knowledge of the underlying hardware and file systems to build new applications and build on the work of others. 'Robotics is at the stage where personal computing was about 30 years ago,' says Chad Jenkins of Brown University. 'But at some point we have to come together to use the same resources.' This desire has its roots in frustration, says Brian Gerkey of the robotics research firm Willow Garage. If someone is studying object recognition, they want to design better object-recognition algorithms, not write code to control the robot's wheels. "You know that those things have been done before, probably better," says Gerkey, who hopes to one day see a robot "app store" where a person could download a program for their robot and have it work as easily as an iPhone app."

36 of 184 comments (clear)

  1. Can't wait by nizo · · Score: 2, Insightful

    Though I will worry when the most purchased robot app is "machinegun control".

    1. Re:Can't wait by haifastudent · · Score: 4, Insightful

      Though I will worry when the most purchased robot app is "machinegun control".

      I will worry more when this project leads to a situation in which there is little or no diversity in the robot OS. Then the outsiders will be like us Linux users today, but worse off.

      "Oh, you use Debian instead of Windows For Robots? We don't serve your kind here"

      --
      Thank for reading to the sig. You may stop reading now. It is safe. There is no more content. Why are you still reading?
    2. Re:Can't wait by FingerSoup · · Score: 3, Funny

      Uhh, yeah, but if you load it on industrial drilling equipment, you're really going to get screwed...

  2. Sorry, but it has to be said... by ByOhTek · · Score: 4, Funny

    "You know that those things have been done before, probably better," says Gerkey, who hopes to one day see a robot "app store" where a person could download a program for their robot and have it work as easily as an iPhone app."

    So, you want an iRobot so you can have access to the AppStore

    The line to kill me for the bad pun starts at the door, people.

    --
    Self proclaimed typo king, and inventor of the bear destroying coffee table (patent not pending).
    1. Re:Sorry, but it has to be said... by musichead · · Score: 2, Funny

      Just imagine a world of robots running the iFart app....

  3. Robot Virii by musichead · · Score: 5, Insightful

    That's all we need....a standardized API to allow malware writers access to robots...

    1. Re:Robot Virii by Requiem18th · · Score: 2, Funny

      How is that different from every Windows Edition?

      --
      But... the future refused to change.
  4. Hush... by jurgemaister · · Score: 2, Insightful

    Just don't tell msft.

  5. Android by Fyre2012 · · Score: 5, Insightful

    seems obvious

    --
    This is not the greatest .sig in the world, no. This is just a tribute.
  6. Similarities in other industries by YttriumOxide · · Score: 5, Interesting

    This is actually quite interesting for me, since we've gone through (or are going through) a similar thing in the MFP (Multi Functional Peripheral (Printer/Scanner/Copier/Fax machine)) manufacturer industry. While it may be much less glamorous than the world of robotics, we do essentially need to deal with a lot of the same concepts.

    Essentially, an MFP has two main "parts" to the firmware. One is Engine control, which tells all the physical bits how and when to move, temperature control for the fuser, paper take-up, feeding mechanisms, electrostatic charging, laser control and so on. The other is the "user" part, where we deal with how to access networks, interpreting print jobs, user authentication systems, file format conversion, user interface and so on.

    The "user" part generally is pretty standardised for each individual manufacturer across the manufacturer's range. As a base, it's not uncommon to run things on an RTOS such as some flavours of Linux or VxWorks.

    For the "Engine Control" part however, it's a lot more chaotic. Almost every machine from every manufacturer is going to be vastly different with code being rewritten many times for what is essentially doing the same thing, just with a bit of different hardware. My day job is as a developer for these things, but pretty much exclusively in the "user" part of things and I haven't even touched the Engine control. I do however talk from time to time with the engine guys, and they're in DESPERATE need of some standardisation. Personally, I'd love to see standardisation across the industry, but I doubt it'll happen. If we ever do get there (which they appear to be heading towards, slowly), we'll probably end up with a different solution for everything in each different manufacturer, which is the current state of play for the "user" part also.

    --
    My book about LSD and Self-Discovery
    Also on facebook as: DroppingAcidDaleBewan
    1. Re:Similarities in other industries by tlhIngan · · Score: 2, Informative

      If I may ask, is the Engine Control more chaotic because the "secret sauce" is in the physical parts? Like how Boeing and Airbus's trade secrets are all located in the wings and not the main body of the aircraft?

      That I think is the reason. Think across a line of printers. Home printers have it somewhat simple (start heating up fuser, monitor temperatures, activate mechanism to feed paper, output data to laser and feed toner, etc). But a corporate printer adds in duplexers, multiple pages in-flight (often when one page is being flipped in the duplexer, the drum is free for another page to be printed, then the reverse side of the page in the duplexer, then the other page if flipped, and another page loaded...), etc. Add in multiple uses of the engine pieces simultaneously (oh, you're printing AND using the ADF to scan in?) and it gets chaotic fast. (Home MFPs often just do one at a time).

      Oh yeah, and engine control is an analog process that's highly event driven - you can't activate a motor for X seconds and leave it that that - you have to use sensors to detect where everything is in the process. A piece of paper may take longer to load, or be thicker and the motors feed it in slower... or it's special paper and requires special handling. And maybe the first sheet is special, the rest in flight are normal, or another paper tray is to be used, etc.

  7. Finished... by hbean · · Score: 5, Funny

    10 PRINT "Destroy all humans!"
    20 GOTO 10

    --
    "Give someone a program, frustrate them for a day... Teach someone to program, frustrate them for a lifetime."
    1. Re:Finished... by Reece400 · · Score: 2, Funny

      What a waste of resource! a c64 can run that, buying a robot to write out one sentence repeately is excessive!

  8. Kinda of already do by Spiked_Three · · Score: 4, Interesting

    As far as I know we don't have a standard OS for cell phones, do we? The problem with robots is the huge variations in platform ability. And I personally sure don't want a least common denominator solution. With the PC, you had one kind of hardware, the IBM PC, that everyone cloned, and that made a common OS a lot more practical. Cell phones & Robots have taken a completely different path so far. Yes, I dabble in robots - a hitec RoboNova. It's fairly limited as to processing power, but comes with an adequate RoboBasic language. If I really wanted to do more serious things with it, I would bolt on a PC (yes they have them for it now). In that respect, there is already a common OS available - the same common OS that any PC can run. And yes, it will run DOS, Windows and/or CE, and linux - pick your poison.

    --
    slashdot troll = you make a compelling argument I do not like the implications of.
  9. 30 years ago there wasn't much 'personal' about it by wild_quinine · · Score: 5, Funny

    Robotics is at the stage where personal computing was about 30 years ago,' says Chad Jenkins of Brown University.

    So, completely free of AOLers, women, and social skills? Ah, the halcyon days.

  10. I had a crack at this ~2002 by damburger · · Score: 2, Interesting

    To an extent, anyway.

    I was doing my final year AI project, and had read about the role the cerebellum plays in human movement and physical sensation. I tried to create a program that would abstract the physical nature of a small Lego robot such that a neural network trained to avoid obstacles in a computer simulation could be transferred into the robot, and function without further training.

    The implementation was, I admit, less than brilliant. But hearing others think along the same lines reassures me a little that the concept wasn't quite as nutty as I had feared.

    --
    If we can put a man on the moon, why can't we shoot people for Apollo-related non-sequiturs?
  11. Not entirely new by DoofusOfDeath · · Score: 3, Informative

    For a few years, MOOS has been developed at Oxford University, to separate low-level control issues from high-level issues. It runs on OS X, Linux, and Windows.

    There's also IvP, an autonomous vehicle control system that gets uses MOOS to abstract away the low-level details of controlling the particular vehicle on which it's running.

  12. F.I.R.S.T by Noam.of.Doom · · Score: 2, Informative

    The robots built within the F.I.R.S.T competition are all built with the same basic software

    --
    It is the universe that makes fun of us all.
  13. BS! by AlgorithMan · · Score: 2, Insightful

    Robots don't need a common OS, they need a common programming-language. Golog is imho very good for this purpose...

    --
    The MAFIAA is a bunch of mindless jerks who will be the first up against the wall when the revolution comes
    1. Re:BS! by FlyingBishop · · Score: 2

      They need common libraries. Tying the system to one OS or language will only hurt innovation. Though obviously getting bindings into a variety of languages will not be seamless. C with good libraries is probably ideal.

  14. Player/Stage already exists.... by rndmtim · · Score: 5, Informative

    I built a robot for my school (City College of New York) for the Intelligent Ground Vehicle competition, and we used an open source programming environment called player/stage from Carnegie Mellon, which already has a huge number of libraries, and has a standardized driver format for sensors and other devices. It gives stuff like abstraction of motion - in other words, you draw a map, and have your navigation algorithm try to go around the map and it gives you back simulated data from your sonar, scanning laser, GPS, etc... It did save us a huge amount of time... instead of figuring out how to construct the data flow for sonar sensors we could just drop their packets in a queue... which let us move on to openCV - again, another existing open source project that already is well developed and gets you 75% of the way there. We used it for the drive system, and the position control had all sorts of generic modes for tank mode vs car mode, etc. It even starts you with some algorithms like "laser obstacle avoid", i.e., use the scanning laser and try to get around a maze. Drivers are typically in C, other stuff was in C++. And yes, it runs on Linux ;).

  15. One OS to Rule Them All by qazwart · · Score: 2, Insightful

    Please, please don't let the new Robot OS be Windows!

    Robot 1: Fools! There is no stopping now that we've upgraded to Vista SP3!
    Robot 2: Actually, that was just a bug patch for a Windows Media Vulnerability.
    Robot 1: We're dead meat, aren't we.

  16. Right - maybe for research, not industry by Dr.+Manhattan · · Score: 5, Informative
    I actually worked for an industrial robot company - the big robots that carry around spot-welding guns weighing a couple hundred pounds. The worst kind of bug wasn't when the system went down and the robot froze up. The worst kind of bug was an "unexpected motion" bug where the robot moved in a way it wasn't supposed to.

    Safety was taken really seriously. When testing, you'd set up a tripwire fence that'd shut the robot down if it were jiggled. Every single person inside that fence had to be holding a deadman switch - let go and the robot shuts down. When I saw one of those suckers casually drag around a 500lb steel table that hadn't been bolted to the floor I got respect fast. Thankfully nobody got hurt, but at a customer site once, a badly-maintained spot welder managed to attach itself to a truck body on an assembly line. The robot kept right on going and literally threw the truck body into the aisle.

    Liability's kinda critical for something like that. For unarmed, relatively weak research robots, a common platform makes sense. For higher-powered industrial robotics, this ain't gonna fly.

    --
    PHEM - party like it's 1997-2003!
    1. Re:Right - maybe for research, not industry by CopaceticOpus · · Score: 2, Insightful

      Having a common software platform which has been tested and debugged across multiple projects should result in more reliable robots exhibiting fewer errors. You've described one of the best potential applications for this software.

    2. Re:Right - maybe for research, not industry by lordlod · · Score: 2, Insightful

      A common well tested operating system that's been used by dozens of other groups will contain far less bugs than code hacked together by your own small bunch of developers.

      It doesn't mean that you don't test it or that you test it less. It's simply means that other people will be testing it as well.

  17. Robotics is the black belt of CS by ejtttje · · Score: 4, Insightful

    It's a hard problem, I've also worked on for the last several years. You're combining research problems in AI, computer vision, localization/mapping, motion planning, human interaction, etc.; each of which demands high end hardware to run its computations, but then you want to do it on mobile platforms with tight constraints on power and sensors.

    Then in order to modularize things you have to come up with a generic interface for each piece in order to abstract it. I think this aspect in particular kills reusability, because these pieces are all so interdependent. Each module needs internal state from the other modules to interpret its own data, and depending on the implementation used for each module and the actual robot hardware it's running on, some types of data may or may not be available, and some outputs may or may not be possible. It's a combinatorial explosion of different capabilities, which leads many people to write to their current hardware and their own specific implementations.

    I entirely agree to make progress we need to address this issue. Asking every researcher to reinvent the wheel in all of the related fields before they can work on their own piece is ludicrous. And it doesn't help that many implementations are very sensitive to robot specific parameters, so even if a research publishes his code for a problem (which IMHO should be part-and-parcel of publishing results), you might still have a hard time running it on different hardware where sensor or motor models differ or may not even apply.

  18. Microsoft Robotics Studio by wjsteele · · Score: 2, Informative

    It seems that someone has already thought about this. Robotics Studio has these types of features already.

    In fact, I've written and demonstrated several programs that will run on a wide variety of robotics platforms without any changes in the base code itself. It's a services based architecture that is extremely flexible.

    Bill

    --
    It's my Sig and you can't have it. Mine! All Mine!
  19. Robot App Store == Sourceforge? by flyingfsck · · Score: 2, Interesting

    This guy wants to see a Robot App Store. Nothing wrong with SourceForge for your favourite GNUbot Apps...

    --
    Excuse me, but please get off my Pennisetum Clandestinum, eh!
  20. They got trolled. by vlm · · Score: 2, Interesting

    I think "New Scientist" was trolled. The concept makes no sense. Sure it wasn't an Onion article?

    The New Scientist reports that at present, all robot software is designed uniquely, even for parts common to all robots but that could be about to change as roboticists have begun to think about what robots have in common and what aspects of their construction can be standardized, resulting in a basic operating system everyone can use.

    Here's a top secret copy of "std_robot.h":
    (blank space here)

    No parts are common to all robots. Roombas and toys operating on extremely simplified flowcharts plus a touch of randomness, remote space exploration vehicles that are semi-autonomous, those battle-bot things that are just human controlled R/C cars with weapon hardpoints and are not real robots, hydraulic arm industrial welding robots, lynxmotion-ish multi-leg crawlers powered by servos, G-Code programmed numerically controlled lathes and milling machines, and last but not least RC airplanes converted into UAVs. They all have the general idea that something electronic controls something mechanical. Beyond that vague idea, what they all have in common is... Umm ... yeah, nothing at all, thats it.

    Gerkey, who hopes to one day see a robot "app store" where a person could download a program for their robot and have it work as easily as an iPhone app."

    Why an app store? Why not:

    http://sourceforge.net/search/?type_of_search=soft&words=robot

    Why would it work as easily as an iPhone app? All iPhones are "the same" more or less. In the future, why would all robots be the same?

    Mystifying how the article got it so wrong.

    --
    "Science flies us to the moon. Religion flies us into buildings." - Victor Stenger
    1. Re:They got trolled. by Lord+Ender · · Score: 3, Insightful

      I don't think you understand the concept of abstraction. The whole point is that the hardware doesn't have to be identical for the programmer to access it in a uniform way. Every servo has an angle. Every range finder returns a range value. Forcing the programmer to implement some sort of PWM to control the device and poll for status is horribly wasteful, compared to having an OS with hardware-specific drivers which provide a standard interface.

      Have you ever programmed a microcontroller to drive a robot? It's messy. Remember when PC games had a list of "supported sound cards" because every app needed its own driver? That was a dark age, and we're still there with robots. But we don't have to be.

      --
      A slashdotter who didn't build his own computer is like a Jedi who didn't build his own lightsaber.
  21. Well, at least THIS SkyNet will be retarded by billcopc · · Score: 3, Funny

    I, for one, welcome our Visual Basic robot overlords.

    Either some really dense guy is trolling for venture capital, or the New Scientist editor got majorly trolled. Since every single robot is completely different, there is little sense in having a common operating system. All it would do is "boot" and give you an API to talk to all your serial devices, and that API would inevitably be tailored to certain uses and wholly inadequate for others.

    --
    -Billco, Fnarg.com
  22. Not a common BIOS, a common OS by foniksonik · · Score: 2, Interesting

    I have the distinct feeling that there is a misunderstanding of the intent of the article.

    What is being called for is an SDK which will apply to a multitude of hardware platforms. Call it an OS, call it an API either way it isn't the BIOS equivalent aka firmware. The firmware manages the motors, turns on and off power to sensors, fans, power supplies, etc. Additionally you would have driver equivalents to provide base operating routines for specific modules of hardware ie: a "hand" driver would provide instructions telling the fingers of the hand to contract or extend. These are not things that need to be made common, nor can they. Certainly they would also benefit from a standardized methodology but that is not the topic today.

    What is being called for is that the makers of the drivers and the firmware provide a common set of hooks as an abstraction layer and that some higher level OS be developed which knows about said abstraction layer and can interoperate with it, pass instructions to it and generally manage when and what the drivers or the firmware instruct the hardware to do.

    This 3rd level of abstraction (firmware, drivers, OS) should have an Open SDK. Individual drivers may or may not be open - up to the manufacturer (think printers, video cards, etc) how much community support they feel will benefit their product.

    With an Open SDK independent developers can write software for multiple hardware platforms potentially with several versions which take advantage of available hardware which is not universal.

    So for example I could write a program that tells a robot how to perform a particular dance move. I'll call it the "electric slide" - my instructions will tell the robot to move forward 4 units, shake an appendage, move back 4 units shake, move forward 2 units hop or shake, slide left with some easing then start over. How the robot accomplishes this feat is up to it's drivers and firmware... tracks, wheels, 4 feet or 2 feet - but I could add in some checks to discover each type of mobility and enhance the movement routine to make each mobility type perform the movements with slight adjustments to add "character" to the dance.

    Additionally my dance may need to be updated so I'll add in an update function which will download the latest version and prompt the owner to install it (never auto install). Each device may have it's own internet connection capability - some will have wifi, some 3G, some will connect through their base station while recharging and others may need a USB drive plugged in with the update. I shouldn't need to write my own TCP stack, WiFi handler, etc. my app just asks for an outside connection and the platform gives me back what is available.

    Hopefully this has clarified something for someone.

    --
    A fool throws a stone into a well and a thousand sages can not remove it.
  23. Different OS's by A.+B3ttik · · Score: 4, Funny

    Microsoft Robot A.I.:
    INPUT: Make me an omelet.
    --Are you sure you would like an omelet? {YES / NO}
    ---MSROBOT is trying to access your refrigerator. {DENY / ALLOW}
    ----MSROBOT is trying to access your eggs. {DENY / ALLOW}
    ----MSROBOT has broken an egg and must be shut down. {Send Error Report / Exit}

    Macintosh Robot A.I.:
    INPUT: Make me an omelet.
    -chord-
    -outputs an eggwhite omelet made with organic cheese, soymeat, and fresh tomatoes.
    INPUT: Add some sausage.
    iROBOT: DID YOU KNOW? Sausage contains cholesterol and transfats, so iRobot does not support Sausage!


    Linux Robot A.I.:
    $ Make me an omelet.
    make: *** No rule to make target 'me'. Stop.
    $ ./createOmelet
    Usage: createOmelet [omelet-options]
    where omelet-options are -s (sausage), -c (cheese), etc.
    $ ./createOmelet -s -c -p -t
    roboTux: ...Compiling an omelet with Sausage, Cheese, Peppers, and Tomatoes!!!
    roboTux: Cutting Sausage..
    roboTux: ...
    roboTux: ...
    roboTux: ...
    roboTux: ...
    roboTux: ...
    roboTux: ...
    roboTux: ...
    roboTux: Cutting Sausage... DONE!
    roboTux: Shredding Cheese...
    roboTux: ...
    roboTux: ...
    roboTux: ...
    roboTux: ...
    roboTux: ERROR: Unable to find CHEDDAR.CHEESE. Please consult your refrigerator administrator.

    1. Re:Different OS's by linebackn · · Score: 2, Funny

      BeOS Robot A.I.:
      INPUT: Make me an omelet.
      BeBot: *POOF* You're an omelet!

  24. Technical vs. Legal by Dr.+Manhattan · · Score: 3, Interesting

    Having a common software platform which has been tested and debugged across multiple projects should result in more reliable robots exhibiting fewer errors.

    Sure, that makes sense from a technical perspective. The problem is the legal perspective... because "fewer errors" does not equal "no errors". Bugs will still happen. And who takes responsibility when a bug results in a robot suddenly whipping around and killing someone? (We just talked about OSS & liability last week on Slashdot.)

    So, would you contribute to such a project when you might get summoned to court years later because someone misused a function you wrote, somebody died, and the developer blamed you? Even if you prove that it wasn't actually your fault, you're still out legal fees and time and stress. (And that's assuming you really didn't make a mistake...)

    I recognize that this is a common FUD tactic against Linux. But Linux isn't generally used in situations where people could die if it fails. I'm not sure, given the legal landscape, any open-source OS could work in such situations.

    --
    PHEM - party like it's 1997-2003!
  25. Insights from animal classification schemes by C0L0PH0N · · Score: 3, Interesting

    I think the classification schemes for the animal kingdom can provide insight for robotic development. The robotic community should pay attention to billions of years of evolution, and mine all the information possible :) There is a lot in common across all animal nervous systems (nerve conductors, synapses, brains, muscles, etc). Take the animal system for the eye for example - muscles, structures, nerves, synapses, and a brain to interpret. At the most fundamental levels, there is commonality in the types of cells used by animals. But there is incredible diversity in how they are implemented. One might compare the building blocks of the nervous systems to the robotic components, the way these components "work together" as the robotic OS, and the universe of ways they are implemented in animals as the "programs". Animals are categorized into Kingdom, Phylum, Class, Order, Family, Genus, and Species. In a very mature robotic development environment (many years from now), will we have similar classes of robots, with a set of category-specific OS subsystems and components? For example, the industrial robots mentioned above which are capable of accidentally moving a half-ton object as if it were a piece of paper will need a different OS subsystem than the Roomba, which is mostly harmless. Robots moving in water or air will belong to different categories, etc. Ultimately, if the animal system is a good model, robots will have some things in common, and much that is unique to their category.