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!