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, September 27, 2013

How can Robo Raven “feed” itself in jungles?

Our previous version of Robo Raven needs to be plugged into an electric socket for charging the battery. Ultimately, we envision Robo Raven flying deep into jungles, far away from civilizations, and hence electric sockets. To do this, Robo Raven needs to figure out a way to “feed” itself to keep going during long missions.

Real ravens are omnivorous and are happy to eat whatever is available. Unfortunately, mimicking this feat in Robo Raven is not practical at this point in time because the equipment necessary to convert biomass into 30 W of electrical power would make Robo Raven too heavy to fly. Since it is not practical to build a flying platform that can directly convert the biomass into energy needed to flap wings at the moment, we had to come up with a different option to “feed” Robo Raven.

From an energy perspective, ravens are constantly converting biomass into mechanical energy to flap their wings. Common sources of biomass that ravens consume in the wild are carcasses of dead animals. The dead animals accumulated their biomass by consuming plants which converted solar energy to biomass. Here is a high level summary of the energy conversion process at work behind the flight of ravens. Solar energy is converted to biomass (i.e., plants). One type of biomass (i.e., plants) is converted into another type of biomass (i.e., meat). Finally, ravens convert the biomass (i.e., meat) into mechanical energy needed to flap wings. So, ravens ultimately derive their energy from the sun.

We decided to bypass the multi-step energy conversion process used by ravens and instead have Robo Raven harness solar energy directly. Robo Raven features sufficiently large wings, so we decided to make wings out of flexible solar cells since there would be enough surface area for solar cells to generate a usable amount of power. The underlying material of the flexible solar is different from the material used in the previous version of Robo Raven, so we needed to design new wings. Additionally, we had to develop a new additive manufacturing process for making these wings. Solar cells on Robo Raven do not produce enough power to directly drive the motors (they produce around 3.6 W while we need around 30 W). So we decided to charge the battery using the solar cells. I am happy to report that thanks to the hard work of Savannah Nolen, Ariel Perez-Rosado, and Luke Roberts, students in our lab (co-advised by Hugh Bruck and I), we have developed Robo Raven III, the first flapping wing micro air vehicle that flies with solar cells. Please see below for a video.




So how good is the performance? Solar cells currently cover less than half the wing area in Robo Raven III. These solar cells produce 3.6 W of power during a sunny day. The efficiency of these solar cells appears be around 6%, and the combined efficiency of batteries and motors is somewhere between 25 to 50%.  We hope that the performance will go up significantly as more efficient solar cells become available and we cover more of Robo Raven III’s wing and body area with solar cells in future versions.

So how does this compare with energy conversion efficiency found in the nature? Plants are able to convert less than 10% of available solar energy into biomass. Plant-based biomass to meat-based biomass conversion is not very efficient either. It takes around ten gram of plant based biomass (e.g., corn) to produce 1 gram of meat if you ignore the energy needs of other body parts and metabolism. In other words, you need to eat at least 10 lbs. of corn to gain 1 lb. of body weight. Finally, converting energy stored in biomass into mechanical energy is also not very efficient.  Animals use the aerobic respiration to derive energy from the food, and typically less than one fourth of the energy available from respiration is converted into mechanical energy. Animals also lose a lot of energy due to metabolism.

As described in the paragraphs above, using solar cells to convert solar energy directly into mechanical energy for flapping wings is an order of magnitude more efficient when compared to conversion via the biological path. This advantage will magnify as solar cell technology improves, thus allowing conventional engineering to beat nature in terms of the solar energy conversion efficiency.

However, nature has a significant edge over engineered system in other areas. For example, one gram of meat stores 20 times more energy than one gram of the current battery technology. So in terms of the energy density, we engineers have a lot of catching up to do. In nature, solar energy collection devices (e.g., trees) are not on-board ravens. Hence, ravens ultimately utilize a large collection area to gather energy into highly a dense storage source (e.g., meat), giving them a much longer range and better endurance than Robo Raven III.

We still need to make significant improvements in solar cell efficiency and battery energy density to replicate the endurance of real ravens in Robo Raven III, but the good news is that Robo Raven III has already demonstrated that we can fly with a solar cell and battery combination. Now that we’ve successfully taken this step, swapping new technologies that are more efficient should be relatively simple!

Saturday, August 31, 2013

What will it take to develop autonomous cars for Indian roads?

Recent media reports about Google’s autonomous cars (also known as driverless or self-driving cars) have made people curious about this technology.  Several of my friends have asked me about the maturity of this technology.  I believe that the technology is almost ready to realize autonomous cars for well-marked roads in the US where drivers behave in predictable ways.  But the technology will require significant improvements to work well on congested streets in developing countries.  This post uses India as an example to discusses challenges for autonomous cars.  

I recently visited India and spent a lot of time on the road. My road trips included visits to many different towns and cities in the northern part of India. India is a truly splendid country with phenomenal sights and very imaginative people. It is densely populated and the civil infrastructure has not kept pace with the explosion of cars on the roads. Driving tends to be quite challenging in India. Hence, I did not dare driving myself. Instead, I simply sat on the passenger seat and had plenty of time to ponder over how the current generation of autonomous car technology will fare on Indian roads. This was a good way to distract myself from all the chaos on the road and the intense driving.  On a lighter note, I believe that taxi-drivers in India are responsible for getting their passengers to pray a lot more than all other religious influences combined together. And these prayers are genuine!

This was the monsoon season in India and at this time of the year, heavy downpours routinely manifest with very little warnings. This makes driving even more treacherous. Based on my observations, here is a selected list of features that will be needed to realize autonomous cars for Indian roads.

  • Lane-Free Driving: The concept of lanes simply does not exist for many drivers in India. The number of vehicles on the road is quite large and people like to utilize to roads to the fullest extent. Lane-free driving allows every square centimeter of the road to be fully utilized. It is not an uncommon sight on highways to see a giant truck going the wrong way (if you believe in lanes!) and hurtling towards your tiny car. Often it appears that people are playing a game of “chicken” while driving, eventually requiring one of the vehicles to yield and go off-road to avoid an imminent collision. A major challenge for autonomous cars will be to figure out when it should attempt to intimidate other vehicles on the road and when it should get out of the way.
  • Amphibious Operation: There were several situations when roads we intended to take were covered with water due to heavy downpours.  There was no good way to judge the water depth on the road. Moreover, we were unable to see the potholes under the water. The best idea that I came up with to deal with this challenge was to wait patiently and let some other vehicle with prior experience with the area to go over the water-filled road. If they were successful, then we could follow them. If they got stuck, then we better find an alternate route. This idea gives a new twist to the learning from demonstration concept. You might be tempted to park your car and swim if you don’t need to go too far, but I would advise against it. 
  • Adaptive Traffic Light Compliance: In many small towns, drivers tend to simply ignore traffic lights to increase road utilization and conserve petrol. Idling on traffic lights consumes precious petrol! This behavior by other drivers will create a dilemma for autonomous cars. If an autonomous car follows the traffic light while everyone is ignoring them, then someone is certainly going to rear-end it.  On the other hand, if the autonomous car is in the neighborhood where a large number of vehicles follow traffic signals, then it must follow the traffic signals. Traffic light compliance varies significantly from one place to another in India. The autonomous car will need the capability to autonomously adapt to the local customs of following or ignoring traffic lights.    
  • Negotiating around Animals: Many Indians are very appreciative of animals and hence tolerant of their presence in public spaces. Vehicles in India share roads with a wide variety of animals (e.g., cows, dogs, cats, pigs, donkeys, elephants, camels).  So the autonomous car will need to be able to recognize different types of animals and estimate their capabilities, mood, and intentions. Your autonomous car obviously needs to behave differently depending upon whether the angry animal charging towards your car is a large cow or a small dog.  Autonomous cars on Indian roads will also encounter slow moving animal herds consisting of hundreds of members. Waiting is often the best strategy in this case. But if you are in a hurry, then the car may need to come up with creative off-road driving maneuvers to dodge the herd.  
  • Pedestrians Avoidance: Cities and towns are densely populated in India and people seem to constantly appear in front of your car out of thin air and your car needs to make sure that it keeps moving forward without hitting anyone. Your car needs to select an appropriate avoidance maneuver depending upon whether the person appearing in front of your car is a teenager on the cell phone, a vendor trying to sell you coconuts, a grandmother with a bad knee rushing to the other side of the road to buy fresh mangoes, or a street performer doing gymnastics between the cars.  Pedestrians are used to communicating with drivers with animated gestures and occasional swearing. Autonomous cars on Indian roads will need to find a way to communicate with people on the streets.      
  • Honking-Based Communication: Honking at each other is an important element of communicating your intent while driving in India. For example, when you are turning into a narrow alley with limited visibility, you should honk vigorously to make sure that other drivers, pedestrians, and animals know about your existence and intent.  If you want to pass a slow moving vehicle, you would get behind it and start tailgating while honking vigorously until the other vehicle goes into the shoulder (often unpaved dirt) so that you can pass it. Your car horn is an important asset. Clearly an autonomous car will need to be able to interpret honking by others and should also be able to signal its intent by appropriate honking.   
  • Creative Parking: Unfortunately, many places in India do not have designated parking spots, so one has to be quite creative when parking a car in a crowded place.  Many people (including me) in the US find parallel parking on crowded city streets quite intimidating. It is difficult to describe in words the kind of crazy parking configurations I saw on city streets in India. It requires really advanced spatial reasoning to fit cars in really cramped spaces and then take them out without denting them. You have to utilize every centimeter of the space available to you. Autonomous cars will need to create new maneuvers on the spot to park themselves in the available spaces.         
Realizing the above mentioned features will require fundamental advances in perception, reasoning, planning, and control.  This will require recognizing what is present in the environment, if necessary inferring their intent, and estimating their capabilities. Cars will also need creative maneuvers to operate in extremely tight spaces.  Significant advances in reactive planning and control will be needed to ensure safety in highly unpredictable environments. New advances will also be needed in mapping and localization to accommodate fast changing landscape due to the construction boom. Communication with pedestrians, animals, and other cars will also require novel approaches. As a researcher, I am very excited about these challenges. It will keep us busy for a long time.

If Google is really serious about autonomous cars, then they should start incorporating the above mentioned features into their cars. It seems that the features listed above will be useful in most of the developing countries and hence give Google access to a huge market!

I believe that the true test of an autonomous car would be to successfully drive on a crowded street in Agra during an evening rush hour in the monsoon season. Obviously the performance of an autonomous car would need to be benchmarked against an experienced taxi driver.

PS: Unfortunately, I did not carry a camera with me during my road trips in India.  So it will be great if readers can share photographs highlighting challenging use-cases for assisting the design of autonomous cars for Indian roads.

Monday, August 5, 2013

Exploiting Bio-Inspired Limbless Locomotion in Robots

Limbless locomotion is utilized by several creatures in the nature.  Snakes have perfected this mode of locomotion through millions of years of evolution. Limbless locomotion has several distinguishing characteristics. It enables the creature to move through extremely rugged and cluttered terrains.  The obstacle height simply does not matter! The creatures can just go around them (or over them in some cases). It is also quite versatile and can be used to climb trees and jump over gaps. It also appears to work for a wide variety of size scales from tiny worms to huge pythons. At least in theory, this mode of locomotion is highly fault tolerant due to the high degree of redundancy in joints needed to locomote.  

Limbless locomotion has fascinated roboticists for decades. They have created very impressive platforms that present remarkable advances in robotics. However, currently robots that use limbless locomotion do not come close to their natural counterparts in terms of capabilities. Unfortunately, we do not yet have access to engineered actuators that can match natural muscles founds in biological creatures. We also do not simply have highly distributed fault-tolerant self-calibrating multi-modal sensors and materials with highly anisotropic friction properties. So our design options for limbless locomotion are limited and truly mimicking nature is simply not possible right now.

In the short term, we are better off taking a different approach to exploit inspiration from biological creatures in field of robotics. I believe that we should try to find a useful feature in the nature and exploit it to the fullest extent. This often means that the feature will be highly exaggerated or amplified in the engineering context. Ultimately, this might make our bio-inspired robots look like a caricature of their natural counterpart. We need to keep in mind that the nature imposes constraints on the size of features due to the inherent biological processes for realizing them. For example, so far naturally evolved flying creatures do not come close the size of engineered jumbo jet. So the notion of our robots looking like caricatures of animals should not a viewed as a disappointment. We should simply “borrow” ideas from nature and “distort” them to fully exploit their engineering potential based on the technological constraints.

James Hopkins, a graduate student in my lab has been trying hard to overcome speed limitations of engineered limbless locomotion. He decided to take his inspiration from rectilinear gaits utilized by some snakes. He then decided to dramatically exaggerate rectilinear gaits to increase the speed. This gait is ultimately implemented by expanding and contracting the body.  The current prototype can achieve the speed of one mile per hour. In this design, the speed is linearly proportional to the length of the robot. So by doubling length we should be able to easily achieve the speed of two miles per miles. Unfortunately, the motors used in the current design won’t allow us to go much beyond 2 miles per hour. For that, we will need to utilize better motors! James used actively actuated friction pads near the head and tail of the robot to improve traction. He has found that different terrains require different friction pads. He has used pads ranging from bed of nails for traversing over grass to rubber for carpets. This robot required us to use 3D printing to realize a novel mechanism for expanding and contracting the body and maintain a small body cross section. You can check out the video of the current prototype below:





When people see this video the first time, they often say “this looks nothing like what we have seen in nature”. Some of them look disappointed and perplexed! Some people have suggested that we should try to make our robot move like a real snake. I am against creating a search and rescue robot that moves and looks like a real snake. Imagine that you are trapped in building destroyed by an earth quake. I don’t know about you but the last thing that I want to see in that situation is a snake crawling towards me. For the record, I like birds but I am not fond of snakes! 

We wanted to come up a clever name for James’s new robot. I wanted to call it LiLo (Limbless Locomotor). But unfortunately I found that Ms. Lindsay Lohan, a paparazzi magnet celebrity in Hollywood is known by that moniker. So we decided to call our robot R2G2 (Robot with Rectilinear Gait for Ground operations). It may come as a surprise to you, but James and I are Star Wars fans!

Tuesday, July 9, 2013

Accelerating Learning: Is it possible to beat 10,000-hour rule?

In his very well-written and popular book Outliers, Malcolm Gladwell popularized 10,000-hour rule. This rule is based on work done by Ericson, a psychologist.  The basic premise behind this rule is that it takes 10,000 hours of quality practice to become an expert in something. Another wonderfully written book Bounce by Mathew Syed also referred to this rule. Both books attempt to explain anatomy of success, in particular, extreme success. 10,000-hour rule has been interpreted by the popular media in many different ways. You might disagree with the numerical value of the number of hours it takes to become an expert. However, there appears be no doubt that currently it takes a long time to become an expert.

We are living in the age of rapid technological advances. The rapid change of technology is a harbinger of creative destruction. As an existing industry dies due to obsolescence of the underlying technology, many jobs associated with it disappear too. Similarly, the birth of a new industry creates many new jobs. We will soon be approaching the situation where people will need to retool themselves by acquiring new skills every five to ten years to ensure that they remain employed.      

This new reality is in conflict with the way education system works today.  To become expert at something and get a well-paying job, one must spend years in post-secondary training.  If you want to change your field significantly, you can count on spending several years in the school again. 10,000-hour rule seem to provide a justification for it! However, spending years in school to retool themselves after losing the job is not going to be an economically viable option for most people.

We need to find a better way. One way would be to accelerate the learning process.  Can we beat 10,000-hour rule? Can we master a new craft in 1,000 hours instead? 
In a conventional classroom, one memorizes lots of facts and information, develops motor skills necessary to do the physical tasks associated with the profession (e.g., surgery), and learns problem solving and decision making skills. In disciplines that involve creating something new (e.g., engineering design, architecture), one also learns synthesis process and divergent thinking to enable creation of new artifacts.        

We live a different world compared to the early twentieth century. However, we have not made any significant leap in the learning process over the past one hundred years. I would like to share the following observations:

  • A large amount of time in a conventional education program is spent on memorizing lots of facts and information.  Clearly, it was necessary to do it in the past. But within few years, we can envision a smartphone that gives a person ability to instantly search for virtually every known fact and information.  How crucial is it to devote time to memorizing all the facts associated with a profession? We can instead imagine a scenario where a human memorizes crucial high level facts that help him/her in understanding how the information is organized within the field, but the low level facts need not be stored in the human brain. The human can access them from the cloud on as-needed basis. The decreased emphasize on rote memorization can speed up the learning process.
     
  • In many educational programs, a significant amount of time is spent on motor skill development.  Many future jobs will be done with assistance from robots (and perhaps exoskeleton). This should reduce the time needed to develop motor skills.    
     
  • In the current education system, problem solving, decision making, synthesis, and divergent thinking skills are learned in the context of a discipline.  So these skills are not easily transferable to a new discipline. For example, let us assume that you are currently an architect and would like to switch to bio-medical engineering. Unfortunately, it will take you many years in school to accomplish this.  We ought to be able to structure education such that problem solving, decision making, synthesis, and divergent thinking skills are learned in such a way that they can be easily transferable from one career (e.g., architect) to another (e.g., bio-medical engineer).   
     
  • Technology can be used during the learning process to ensure every hour spent on learning actually contributes to learning. Facial expression recognition (and perhaps non-invasive brain imaging) can help in making sure that the person is not getting bored or frustrated! This ought to improve the learning process. Personalized computer-based tutoring system should also improve the efficiency of learning process.  
In my opinion, accelerating the pace of learning is one of the biggest challenge and opportunity facing the human race.  Clearly, training world-class athletes and musicians will continue to take more than 10,000-hour of quality practice. But we ought to be able accelerate learning in many other fields.