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.