At the IJCAI Workshop on Robotics last month, Brian Gerkey from the open-source robotics startup Willow Garage gave a talk with the inspirational title “Toward a Robot App Store.” This is a meme that should be spread. The idea of a robot app store has powerful short-term value, and also some rather dramatic longer-term implications.
Gerkey’s talk focused on the nitty-gritty: Willow Garage has launched a piece of open-source software called ROS (Robot Operating System) that serves as a framework for integrating the various bits of software code needed to make robots operate. ROS is not the first such framework (Player, for instance, is widely used and serves largely the same functions), but it has a clean and elegant design and has some technical advantages over its predecessors. Besides putting ROS out there for everyone to use, Willow is using ROS to power an open-source robot called PR2 (Personal Robot 2), which is partially complete now and should be launched sometime in the near future, though a specific date hasn’t been set.
Right now, cobbling together the various pieces of software needed to make a robot work is a complex process. If you buy commercial robotics hardware (like, say, the Nao humanoid robot from Aldebaran Robotics, which I’ve done some work with lately myself), then certain functions come with the robot’s pre-packaged control software. But, to get the robot to do anything else, you need to either write your own code, or download other folks’ code and integrate it yourself. It’s a process that generally requires considerable expertise and a lot of fiddling and trial and error. The situation is no better if you build your own robot according to your own plans or open-source ones. The “robot app store” idea aims to simplify the process of making robots functional.
Consider reaching and grasping; or, more simply, walking backwards. As I found in my own robotics work, the Nao doesn’t come supplied with code for these. Wouldn’t it be nice if you could browse a menu on the computer that controls the Nao (via Wifi), and simply download somebody else’s routine for reaching and grasping, or walking backwards, plug it into your robot, and have it work? There’s no fundamental obstacle to this — any more than there was a fundamental obstacle to the iPhone App Store before Apple created it. It’s “just” a matter of creating the right software and getting it widely adopted. And that’s what Gerkey and Willow are trying to do.
A massive-scale multi-robot collective intelligence, powered by multiple bots continually uploading and downloading learned behaviors
From the Robot App Store to the Global Robot Brain
While Gerkey doesn’t mention it in his talk, the next step will be even more exciting. iPhones don’t currently learn new apps, but robots — at least some of them — do learn new behaviors. Suppose my Nao learns something new about how to grasp slippery objects using both hands together. In the current way of doing things, this knowledge will stay within my Nao’s mind — or maybe get shared with other Nao-minds that are also operating according to my particular robot control software architecture. But in the robot app store approach, it could post its new “slippery object grasping” technique in the robot app store and let other robots download it as they see fit.
This could work in two ways.
Most simply, robot developers could download new learned apps to plug into their robots, in the same way that they download new human-programmed apps.
Or, more futuristically, robots themselves could go online in real-time and download new apps enabling them to solve problems that are stumping them at the moment. Maybe your Nao is trying to pick up some jello and can’t do it — the jello keeps slipping between his fingers. Instead of crying “Help!” to its programmer, it can go to the robot app store and enter the search terms “grasp slippery” — and find that my Nao’s “slippery object grasping” app is highly rated, and then download it and use it.
Or maybe you have another sort of robot (say, a PR3) rather than a Nao — but your PR3 has three-fingered hands similar to the Nao. Then, your robot should be able to download my Nao’s “slippery object grasping” routine too, if they’re both running the same robot operating system, or at least interoperable OS’s.
Today: We have a messy situation, with various robots running various pieces of control software combined using various (often custom-built) frameworks.
Tomorrow: There will be a handful of standard robot operating systems, allowing robots to be controlled using collections of apps their programmers have downloaded from the Robot App Store.
The day after that: Let’s hope for a massive-scale multi-robot collective intelligence, powered by multiple bots continually uploading and downloading learned behaviors and insights from the Robot App Store.
Oh Brave New World that will have such robots in it 😉