Friday, April 19, 2013

Cloud Robotics: Are We Ready to Put the Robot Brain in the Cloud?

Clouding computing is inspiring roboticists worldwide to break the mold on traditional robots and harness the power of clouds to create the next generation of robots. This new exciting development is being called cloud robotics. In my opinion, this development is very timely and not coincidental. As humans we are increasingly keeping at least a part of our brain in the cloud. You have outsourced a brain function to the cloud, if you
  • used Facebook to remember your friend’s birthday;
  • used iPhone app to get directions to your favorite restaurant;
  • used Wikipedia to recall the name of the fourth Beatle;
  • used Google to search recipes for making cheese sandwiches.
So why should robots not follow this trend? The cloud computing promises the following three major advances in the field of robotics.
  • Once the robot brain lives in the cloud, design constraints fundamentally change. Robots can have practically unlimited computing power. It eliminates design constraints and gives tremendous freedom to robot designers. I will list a few noteworthy opportunities. Performing faster than real-time high-fidelity simulations to aid the plan generation is currently an unrealizable goal using on-board computers. Two of my students, +Josh Langsfeld  and  +brual shah tell me that this is now practically within our reach using the cloud. We do not need to add unnecessary weight on the robot to protect its brain. Robots can be made really small if they don’t need on-board powerful computers. Hopefully, they will consume a lot less power and can work a lot longer on single a battery charge. As you can imagine, suddenly the world is full of new design possibilities!
  • Robots can access large databases (e.g., maps, images, videos). We may need to build different interfaces so that robots can use web to search and understand results they get back. But there is no reason why a robot should not be able to access Google, Facebook, Wikipedia, YouTube, and OSRF Blog.
  • As new information is discovered, it becomes instantly available to robots. This facilitates new modalities for operation of robot teams. If a robot learns a new skill, all robots with similar capabilities would be able to use that skill. I am sure that this last capability will make us human quite jealous of robots. Won’t it be nice if you are able to use the cool new golf swing the moment your friend masters it after spending three weeks in the miserable heat to learn it?
Many different kinds of robots such as self-driving cars, robot swarms, and healthcare robots can potentially benefit from cloud robotics. But there are three main challenges in embracing cloud robotics and using it in practice.
  • Using the cloud as the brain requires connectivity to the cloud. What happens if the connectivity to the cloud is poor or lost? We certainly will need to make sure that the robot will have on-board “little brain” to make sure that they remain safe while they are unable to use the “big brain” that resides in the cloud. We will need to figure out the coordination between two brains.
  • What happens if the cloud is hacked? Hackers could deliberately send malicious information or instructions to robots. How can a robot know if the information coming from the cloud is reliable or not? We will need to figure out new ways to authenticate information coming from the cloud to ensure that robots and people around them remain safe despite threats of compromised clouds.
  • Unwanted software upgrades are painful for many humans (this one of my pet peeves!). When you use the cloud, you have virtually no control over what gets upgraded and when it gets upgraded. Unfortunately, a really small change in the information structure might pose a big problem for robots. We will need well-defined semantics to exchange information with robots and will need to hope and pray that cloud providers are kind to our robots as they plan software upgrades. I am normally not worried about a robot rebellion. But unwanted software upgrades might push robot to rebel against humans.
I would like to hear your thoughts on how cloud computing will affect the field of robotics. Are we ready for cloud robotics?


  1. I would like to mention one more issue. The cloud is cost effective and cheap if you use this service from a PUBLIC cloud provider (e.g. Amazon). On the other hand you don’t have control over where and who might tamper your data or algorithms. If we go for PRIVATE cloud where every university/research lab might have its own could then it is too expensive and it is difficult to maintain it up-to-date as it involves too much IT overhead.
    Also, some areas like swarm robotics will suffer as everything can be controlled centrally in the cloud and there will be no need of distributed control.

  2. The first two challenges you mention (little brain vs big brain, and authenticity of information) may be deeply related. To make full use of the cloud is to make full use of the Internet - which is just as rife with inaccuracies and outright falsehoods as it is filled with useful information. As thinking human beings, one of the jobs we have is to use our "little brains" to sift out the useful information from the muck. A cloud-connected robot might want to do the same thing - that is, have some algorithms in its "little brain" that ensure that new pieces of information are consistent with it's internal state and predefined goals. This would also require reasoning about new instructions that it receives. For example, the little brain of a self-driving car should be able to predict, with some accuracy, the degree to which a new instruction might affect the safety of it's passengers.

  3. This is a nice idea, though the best part may be the use of powerful Internet-based computers in general. For robotics applications, it may be enough to simply connect to a specific machine with a static IP address from a robot -- or a group of robots -- with wireless connectivity to the Internet. On this machine, you can setup your own security policy, have absolute control over what software is installed, running, or getting upgraded, and have total control over what inbound connections and networks protocols are allowed. This type of scheme would solve the security and upgrade challenges. With a cloud, there is probably more computing power that is potentially available to you, although these sort of cloud services are usually shared by many users to achieve economies of scale for the providers.

  4. Simulations will become really cheap with cloud. Robot can forward simulate the consequences of all the possible actions before taking the best action. High fidelity simulations will not be a problem since computation power will not be an issue at all.

  5. Nice article. In terms of challenges, I think it's important to add that Cloud Robotics will never be good for real-time critical tasks (e.g., gait control of a walking robots or steering and braking of an autonomous cars).

    In terms of advantages, I think there's huge potential in online knowledge bases tailored to the needs of robots (e.g., ontologies describing the relationships between actions, objects and the environment they are found in or information on common human knowledge like glass breaks and light is turned on using a light switch). I'd also list your point on software upgrades under advantages - no more long-winded installations, broken dependencies and missing security updates.

    I think robotics technology is ready for taking advantage of the great computational, memory, and communication resources of modern data centers. My colleagues and I have been working on this for a while with RoboEarth and the RoboEarth Cloud Engine ...

  6. I will be interested to see how the cloud is used for autonomous cars as they start to enter into the public realm. Almost certainly they'll all have internet connections for more mundane things but you could imagine a very deep reliance on an external network for things like route planning. If you drive your own car, you might be stuck as a second class user of roads since the cloud controlled car network would be much more efficient at moving traffic around.