One Step Closer to the Robot App Store: ROS 1.0 and DIY Robotics
Operating System : /n./ [techspeak] (Often abbreviated ‘OS’) The foundation software of a machine, of course; that which schedules tasks, allocates storage, and presents a default interface to the user between applications. — The Jargon Dictionary
Did you know that iPhone apps run on the iPhone OS? Most of us know a computer’s operating system (OS) by its invisibility. Just let me run my Pandora or Goggle Earth or Stanza app and I’m happy. iPhone apps come from the App Store — a concept pioneered by Apple that allows app developers to get their software easily to iPhone users. Here’s Steve Jobs introducing the concept of the App Store:
But it’s the OS that makes the apps tick. In the early days of PCs, it was all about DOS (Disk Operating System). The “Microsoft Disk Operating System” (MS-DOS) came from a tweaked version of the “Quick and Dirty Operating System” (QDOS) written by Tim Paterson of Seattle Computer Products and was build on an early prototype Intel 8086-based computer. The ability to create apps requires a way to provide instructions to the computer’s hardware and store them in memory along with data. In the case of MS-DOS, this happened using a computer language called BASIC that was originally developed for the now antique Altair 8800 homebrew microcomputer by a fellow named Bill Gates and his partner Paul Allen. Of course, back then, the concept of an App Store didn’t exist. And it would still be a few years until the first spreadsheet and word processor apps would put the IBM PC and MS-DOS on the corporate map.
This opens the door to scientific institutions worldwide to get free access to a programmable robot.
Nearly 30 years later it’s ROS (Robot Operating System) that’s coming into the limelight. The Robot Operating System, despite its name, is not so much an OS but a software stack that runs on top of the GNU/Linux OS. (Linux is an OS used to power services like Google and Facebook in large data centers, but can also power PCs.) ROS includes a standardized robot-specific “Application Programming Interface” or API, the framework for integrating various pieces of software code needed to make robots operate. And if h+ contributor Ben Goertzel has his way (see Resources), a Robot App Store similar to the iPhone App Store may not be far behind.
With the recently announced release of ROS 1.0, Willow Garage is providing an open source framework that includes software libraries, tools, drivers (joystick, laser, and sound), navigation, simulation, perception, and code specific to its Personal Robot 2 (PR2) Beta Robot. This robot takes the concept of DIY robots pioneered by the Lego Mindstorms NXT robotics kit to a much more sophisticated level. Not that you can’t create sophisticated apps using Legos — at least one user has created a bot that can solve Rubik’s Cube — but ROS on a suitable hardware platform such as the PR2, the Nao, or the Texas Alpha (TA) telepresence robot offers the potential to create something that may start to resemble R2-D2 or Rosie the Robot in a few years.
Willow Garage’s PR2 beta production robots are now rolling off the assembly line. And you (or your research facility) can actually start to program one at no cost, other than the postage required to submit a proposal. This opens the door to scientific institutions worldwide to get free access to a programmable robot. Willow Garage is looking for proposals that do one or more of the following:
- Enable scientific breakthroughs in personal robotics,
- Expand the open source robotics community,
- Develop reusable components and tools, and
- Explore new applications for personal robots.
How to get to the Robot App Store envisioned by Dr. Goertzel and Willow Garage’s Brian Gerkey? This potentially goes beyond Steve Jobs’ concept of the iPhone App Store in that “the robots themselves could go online in real-time and download new apps enabling them to solve problems that are stumping them at the moment.”
Building apps requires one or more computer languages. One such language is the OpenRAVE planning system developed at Carnegie Mellon University (CMU). OpenRAVE apps involve grasping and manipulation algorithms for robots. According to Willow Garage, OpenRAVE has been used “to write robust manipulation scripts that have been tuned and tested on multiple robot systems for the past two years.” Here’s a video of an OpenRAVE demo on a PR2 robot:
Using OpenRAVE and the OpenCV (vision) libraries, Player/Stage (sensor), and the TREX goal/event driven behavior framework (the “brains”) provided by ROS 1.0, interested groups of researchers from anywhere in the world can actually start to develop apps on their PR2 robot for research into DIY home, open source, humanoid robotics.
It may be a while until we achieve Dr. Goertzel’s vision of “massive-scale collective intelligence, powered by multiple bots continually uploading and downloading learned behaviors and insights from the Robot App Store.” But, with the release of ROS 1.0 and the availability of free PR2 robots, the Robot App Store is now open for any programmer willing to share code.