Showing posts with label Robot Simulation. Show all posts
Showing posts with label Robot Simulation. Show all posts

Thursday, October 10, 2013

Can crowdsourcing be exploited to reduce the cost of autonomous robots?

Several recently developed prototypes show that it is possible to develop autonomous robots with remarkable capabilities. However, currently developing autonomous robots costs a fortune and takes forever!  In this post, I treat autonomous cars and unmanned air vehicles as robots.

Sophisticated autonomous robots require hundreds of thousands of lines of code. Manually writing this code for a new robot is very expensive and time consuming. Moreover, as the hardware changes, this code also requires significant upgrades. Often by the time code is written and debugged, the hardware is already obsolete. Therefore, developing autonomous robots is currently technically feasible but not affordable in many applications.

Human operators are very good in teleoperating robots in cluttered, unstructured, and dynamic environments with limited sensor data. Forget about the expert operators teleoperating unmanned vehicles! Even five year olds can learn to teleoperate their first remote control cars within couple of hours and are able to successfully annoy their parents, siblings, and dogs by zipping around tiny cars inside their homes. I have also seen teenagers performing amazing feats with their remotely controlled helicopters. So obviously, we should be interested in characterizing and understanding the strategies employed by human operators during these operations and automatically extracting building blocks of the autonomy code based on this understanding. Many robotics researchers are pursuing this path and this area of robotics is called learning from demonstrations.

Many impressive results ranging from training of surgical robots to teaching collision avoidance to unmanned vehicles have been reported by the learning from demonstrations community. Most such case studies have utilized small number of humans to perform these demonstrations. Because of the limited number of demonstrations, people often wonder how well the learned components of autonomy will perform in situations not encountered during demonstrations. Unfortunately, conducting extensive experiments in physical worlds is highly time consuming and expensive. It also limits the kind of scenarios that can be considered during demonstrations. Clearly a demonstration that might pose threat to the human or the robot has to be avoided. Conducting demonstrations in the virtual world is emerging as an attractive alternative.

Over the last few years, tremendous progress has been made in the area of physics-based robot simulators. For example, the on-going DARPA Robotics Challenge is making an extensive use of simulation technology to test autonomy components. Simulations are being routinely used to teach humans cognitive as well as motor skills. For example, flight simulators are routinely used for pilot training.

By combining advances in multi-player games that can be played over the network and accurate robot simulations, new games can be developed in which humans can compete and collaborate with each other by teleoperating virtual robots. This advancement means that demonstrations need not be confined to few experts. Instead, anyone with an Internet connection can participate in the training of a new robot. For example, DARPA used publicly distributed Anti-Submarine Warfare game to learn how to track quiet submarines. We are ready to leverage crowds to impart autonomy to robots. 

The use of crowd sourcing in robot training has many benefits. It provides a rich diversity in demonstrations and hence enhances the probability of generalization. Some of the participants are likely to exhibit out-of-the-box thinking and demonstrate a highly creative or innovative way of doing a task. This is great news for optimizing robot performance. For some people, this way of training robots might serve as a means to earn money by performing demonstrations (basically acting as robot tutors). Playing games that involve robots is likely to be entertaining for at least a segment of the population. This paradigm can also be used in situations where a robot is stuck during a difficult task and needs a creative solution to get out of the bind.               

Automatically learning autonomy components such as reasoning rules, controllers, planners etc. from the vast amount of demonstration data is an interesting challenge and will keep the research community busy for many years to come. But this seems to be the much needed crucial advancement to reduce the cost of autonomous robots.

Don’t worry robots! The crowd will rescue you from the dungeons of high cost and long development times!  

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?