Chandrayaan 2, India’s lunar exploration mission, has captured our minds and hearts in the last few months. The mission was ambitious as India is only the fourth country in the world to attempt a soft landing on the moon. Russia, USA and China are the three other countries that have been successful in this mission before. Chandrayaan 2 was also the first mission in the world to attempt a landing on the south pole of the moon. A billion people waited with patience, anticipation and anxiety well past mid night for this historic event to unfold. There were moments of joy as the moon lander Vikram successfully separated from Chandrayaan 2 orbiter and started its descent in ‘autonomous mode’ to the surface of the moon. Unfortunately, the mission was not entirely successful as we lost communication with Vikram when it was 2.1 Km above the moon’s surface. The nation was disappointed but united in its support for the brilliant scientists of ISRO (Indian Space Research Organization) who selflessly and tirelessly worked for the last few years on this ambitious project.
As the events of the last few days unfolded, I could not help but draw parallels with the making of WiPOD, Wipro’s reference platform for an autonomous campus car. Many of you would have seen WiPOD in action in our Electronic City campus. Both WiPOD and Vikram are complex closed loop autonomous systems that operate in real-time to deal with the dynamic surrounding environment. There are important lessons that we can learn from both on what it takes to build these autonomous systems.
Before I proceed further, let me first clarify that Vikram has a much higher order of complexity compared to WiPOD and some of them are listed below:-
- Vikram’s velocity when it started its descent 30 Km above the moon’s surface, was 6,000 Km/hour and it was expected to decelerate to 0 within 15 minutes. The maximum speed of WiPOD is 25 Km/hour.
- WiPOD’s locomotion is in a horizontal trajectory while Vikram followed a parabolic trajectory and had to deal with the gravity of the moon apart from harsh radiation, which can impair functioning of electronics.
- The weight of Vikram is 1,471 Kg while WiPOD is 500 Kg. Vikram carried the rover Pragyan as its payload for scientific experiments while WiPOD can carry a maximum payload of 2 people.
It will take several weeks if not months for ISRO scientists to analyze the telemetry data and images of Vikram from Chandrayaan 2, and determine the root cause of what went wrong in the ‘last mile’. It would be unfair to hazard a guess on the cause of failure. Hence, I am sharing with you the multiple lessons that we learnt during our 18-month journey of building WiPOD with the sole objective of what it takes to engineer autonomous systems. Following are some of the key lessons learnt:
- Multiple Sensors: WiPOD uses multiple sensors that include camera, LIDAR, laser scanner and ultrasonic sensor. We are also in the process of integrating RADAR. Having multiple modalities help to address the limitations of each of the sensors when it comes to range, time of day (dawn, dusk, night), and weather conditions (sunny, foggy, rainy). We used sensor fusion to integrate data from these sensors. It took us many months of effort to optimize the placement and mounting of sensors on the body of WiPOD. Vikram also had on-board cameras to identify the right location for landing and used laser-ranging systems.
- Accurate Maps: Accurate maps with centimeter-level accuracy are needed for successful functioning of autonomous systems. The Planning and Navigation module for WiPOD takes these high-precision maps as inputs. We spent many months to map out and annotate the various landmarks in our Electronic City campus.
- Road test: We used software simulators and elevated platform to extensively test out the various scenarios for WiPOD. However, we faced numerous challenges when the rubber hit the road. There is no substitute for an extensive road test as far as robotic platforms are concerned. WiPOD has complex real-time interactions between the software sub-systems and the electro-mechanical sub-systems (electric motor, batteries, brakes, Inertial Measurement Unit, Wheel Odometer). We had to carry out many months of road tests before we perfected WiPOD. Unfortunately, Vikram did not have the luxury of a road test and had to get it right the first time.
- Rich data set: WiPOD has a rich set of AI algorithms that include object detection, pedestrian detection, road boundary, drivable region, and pothole and hump detection. Many of these AI algorithms faced challenges when hit with outliers and scenarios that it had not encountered in the training data. A rich data set to train various AI algorithms for all the possible scenarios (weather, surface types, traffic signals etc.) is mandatory. The state-of-the-art deep learning algorithms that are currently prevalent are mostly based on supervised learning. Until the time AI matures to include unsupervised learning and meta learning, and integrates symbolic reasoning with deep learning, we will continue to have a heavy dependency on the training data set.
- Renewable energy: Electronics (sensors, CPU, GPU) consume a lot of power. We used lithium batteries in WiPOD and had to focus on system-level optimization for reducing power consumption and the number of lithium batteries required to reduce the overall weight of WiPOD. We can draw inspiration from Vikram and use solar energy for the future versions of WiPOD.
- V2X: We are currently in the process of implementing a V2X module for WiPOD leveraging WiFi 6 and 5G and in partnership with IISC. Vehicle-to-Vehicle, Vehicle-to-Infrastructure and Vehicle-to-Control Tower are important for the functioning of autonomous systems. Vikram losing communication and hence the ability to be recovered proves the importance of V2X.
Autonomous systems is an active area of research for me during my spare time and so if any of you are interested, please reach out to me to share your thoughts, insights and innovative ideas. I would love to hear back from you and have a deeper discussion on this fascinating topic.