Meet the man who turned his old car into a self-driving vehicle using nothing but a second-hand Redmi Note 9 Pro and cutting-edge OpenPilot technology.
Mankaran Singh achieved this remarkable feat, he calls ADAS Jugaad — a Hindi word that can be translated to mean a creative and resourceful solution to a problem, illustrating the potential of open-source solutions and Indian innovation in the realm of autonomous vehicles.
Singh’s journey into autonomous driving began with OpenPilot, an open-source driver assistance system renowned for its Automated Lane Centering and Adaptive Cruise Control features. Despite his old car, a Maruti Alto K10, not being originally listed as compatible, Singh adapted the software, giving birth to what he calls “FlowDrive Ai.” This modified system operates on Linux, Windows, and Android-powered machines, pushing the boundaries of conventional vehicle automation.
To control the car’s steering, Singh installed the EPS column-mounted motor. While the full implementation of adaptive cruise control remains unclear, this innovation has sparked significant interest and discussion within both the tech and automotive communities.
In crafting an Advanced Driver Assistance System (ADAS) that maintains lane integrity and adjusts vehicle speed based on leading cars, key components come into play.
These include essential elements like sensors—comprising an Accelerometer, Gyroscope, Compass, and GPS. Additionally, the core computing units, featuring a powerful CPU, sufficient RAM, and a GPU for neural network operations, play a critical role. Completing the ensemble is the User Interface, encompassing a display and a touch screen.
In a LinkedIn post, Singh shared insights into the project, stating, “A personal team project we worked on over a year ago. The steering and brake ECUs modded to support external but safe actuator control.” He further mentioned that it’s running FlowPilot, an open-source ADAS system built on top of OpenPilot with custom vision models and support for running on any Android/Linux-based system. Singh concludes with a reflection on the remarkable era we live in, stating, “Right knowledge and 250 bucks for an ADAS system. We are living in crazy times.”
“We decided to modify openpilot codebase to make it able to run on technically ANY android phone, let it be snapdragon, exynos, google tensor, mediatek, etc!”
Tech enthusiasts worldwide have embraced Singh’s technology, showcasing modified vehicles, including an Audi A3 and several Volkswagens. This global community exemplifies the widespread appeal and potential of open-source solutions in advancing autonomous driving technologies.
In his blog post, Singh cautiously explains that while the open pilot project stands out as an impressive endeavour, it’s crucial to highlight that using it comes with inherent risks.
“The project operates under a safety model that places paramount importance on the driver’s ability to immediately resume manual control of the vehicle. This can be achieved either by stepping on the brake pedal or pressing the cancel button. To ensure a safe user experience, the vehicle’s trajectory must not alter too quickly for the driver to respond effectively. This constraint means that, during system engagement, the actuators are meticulously confined within reasonable limits.
“A key element in guaranteeing safety is the implementation of a “safety layer.” This layer acts as a robust filter for both inputs and outputs, ensuring that they consistently adhere to safe limits. Multiple safety layers are in place between the phone and the actuators, with the panda playing a crucial role. The panda runs all safety-critical code, meticulously written in MISRA C, serving as a crucial checkpoint for safety. The highest level of safety, however, resides in the Steering motor’s Electronic Control Unit (ECU). This ECU imposes limits on input commands, specifically regulating torque and torque-rate to maintain a secure operating environment.
“It’s essential to note that all the code related to Advanced Driver Assistance Systems (ADAS) is undeterministic. Still, the safety layer plays a pivotal role in filtering these inputs, rendering the system ‘deterministic.’ A stern caution concludes this safety note: Avoid bypassing these safety layers unless you possess a deep understanding of the system and have the support of qualified professionals. Safety remains the utmost priority, and any deviation from established safety measures could pose significant risks.”