Google’s Cloud Robotics Strategy Could Accelerate Progress Toward Truly Advanced Robots
At the 2011 Google I/O developer’s conference, Google announced a new initiative called “cloud robotics” in conjunction with robot manufacturer Willow Garage. Willow Garage and a variety of other contributors have developed an open source (free) operating system for robots, with the unsurprising name “ROS” — or Robot Operating System. ROS is being positioned as the MS-DOS (or MS Windows) of robotics.
With ROS and a package called “rosjava“, software developers will be able to write code in the Java programming language and control robots in a standardized way — much in the same way that programmers writing applications for Windows or the Mac can access and control computer hardware.
Google’s approach also offers compatibility with Android. Robots will be able to take advantage of the “cloud-based” (in other words, online) features used in Android phones, as well as new cloud-based capabilities specifically for robots. In essence this means that much of the intelligence that powers the robots of the future may reside on huge server farms, rather than in the robot itself. While that may sound a little “Skynet-esque,” it’s a strategy that could offer huge benefits for building advanced robots.
One of the most important cloud-based robotic capabilities is certain to be object recognition. In my book, The Lights in the Tunnel, I have a section where I talk about the difficulty of building a general-purpose housekeeping robot largely because of the object recognition challenge:
A housekeeping robot would need to be able to recognize hundreds or even thousands of objects that belong in the average home and know where they belong. In addition, it would need to figure out what to do with an almost infinite variety of new objects that might be brought in from outside.
Designing computer software capable of recognizing objects in a very complex and variable field of view and then controlling a robot arm to correctly manipulate those objects is extraordinarily difficult. The task is made even more challenging by the fact that the objects could be in many possible orientations or configurations. Consider the simple case of a pair of sunglasses sitting on a table. The sunglasses might be closed with the lenses facing down, or with the lenses up. Or perhaps the glasses are open with the lenses oriented vertically. Or maybe one side of the glasses is open and the other closed. And, of course, the glasses could be rotated in any direction. And perhaps they are touching or somehow entangled with other objects.
Building and programming a robot that is able to recognize the sunglasses in any possible configuration and then pick them up, fold them and put them back in their case is so difficult that we can probably conclude that the housekeeper’s job is relatively safe for the time being.
Cloud robotics is likely to be a powerful tool in ultimately solving that challenge. Android phones already have a feature called “Google Goggles” that allows users to take photos of an object and then have the system identify it. As this feature gets better and faster, it’s easy to see how it could have a dramatic impact on advances in robotics. A robot in your home or in a commercial setting could take advantage of a database comprising the visual information entered by tens of millions of mobile device users all over the world. That will go a long way toward ultimately making object recognition and manipulation practical and affordable.
In general, there are some important advantages to the cloud-based approach:
- As in the object recognition example, robots will be able to take advantage of of a wide range of online data resources.
- Migrating more intelligence into the cloud will make robots more affordable, and it will be possible to upgrade their capability remotely — without any need for expensive hardware modifications. Repair and maintenance might also be significantly easier and largely dealt with remotely.
- As noted in the video below, it will be possible to train one robot, and then have an unlimited number of other robots instantly acquire that knowledge via the cloud. As I wrote previously, I think that machine learning is likely to be be highly disruptive to the job market at some point in the future in part because of this ability to rapidly scale what machines learn across entire organizations — potentially threatening huge numbers of jobs.
The last point cannot be emphasized enough. I think that many economists and others who dismiss the potential for robots and automation to dramatically impact the job market have not fully assimilated the implications of machine learning. Human workers need to be trained individually, and that is a very expensive, time-consuming and error-prone process. Machines are different: train just one and all the others acquire the knowledge. And as each machine improves, all the others benefit immediately.
Imagine that a company like FedEx or UPS could train ONE worker and then have its entire workforce instantly acquire those skills with perfect proficiency and consistency. That is the promise of machine learning when “workers” are no longer human. And, of course, machine learning will not be limited to just robots performing manipulative tasks — software applications employed in knowledge-based tasks are also going to get much smarter.
The bottom line is that nearly any type of work that is on some level routine in nature — regardless of the skill level or educational requirements — is likely to someday be impacted by these technologies. The only real question is how soon it will happen.
The video below is a presentation from Google’s I/O conference on Cloud Robotics. It is fairly long and very technical, but if you have a strong interest or would like to see what some actual robot programming code looks like, check it out:[youtube http://www.youtube.com/watch?v=FxXBUp-4800]