Developed a MATLAB tool (command-line and GUI) to trace input-output connections at all levels in a Simulink model, enhancing transparency, debugging efficiency and capturing input-output relationships at the highest level
Automated the test-case generation for input-output processing application software for ≈ 30% components (among 500+) across all vehicle ECUs based on the Ethernet-network ARXML files saving > 16 man-hours per component
Created linear-interpolation lookup-tables in C using binary-search for converting external sensor data to ethernet signals
Driver Development, Scenario-based Testing, Model-Predictive Control
Setup:
Given a "scenario" involving a maneuver to be performed in an autonomous vehicle on road, we wish to deploy a Model Predictive Controller that will track the ideal trajectory corresponding to the maneuver accurate to 5cm.
Localization data and road data (grade, turn radius, etc) is available to us. The possible control actions are steering wheel angular velocity and throttle pedal position.
Technical Approach:
We created a novel MPC-based driver model for simulation in a discrete-virtual environment (SCANeR) achieving an accuracy of 5cm in trajectory tracking for roundabouts, drifting, turning at intersections and highway-entry maneuvers
Based on the road-geometry and maneuver we first perform on-the-go trajectory generation ensuring obstacle avoidance. We discretize the trajectory into points at regular intervals (along with the speed and orientation of the vehicle to necessary at those points) and then pass this to the Model-Predictive Controller.
The MPC architecture performs predictions based on a bicycle-model for vehicle dynamics and tries to minimize the Mean-Squared error between the actual and the reference points over the next N time steps (where N is the time-horizon). The NLP is a finite-horizon continuous state-space NLP and is solved using the IPOPT solver with CasADi.
Simulations are run with a flexible, scalable controller architecture for MPC in a MATLAB-Simulink environment resulting in a low latency in co-simulation at 100Hz.
MPC-based driver facilitated maneuver and vehicle-independent controller performance and reduced controller tuning as compared to the traditional PID-based controller while adhering to the Euro-NCAP protocol for all maneuvers.
The CasADi-based IPOPT solver within the MPC controller ensured robustness to noise and disturbances and an improved optimization performance as compared to the QPoases solver.
Performed data wrangling, cleaning and processing followed by creating a backward-looking Motor Sizing model in MATLAB to recommend an ≈ 800 Nm peak torque motor for the Podium (Canada) team
Curated elaborate project-based content about Global Planning, Behavior Planning and Local planning for an Autonomous Vehicles course while evaluating the content for SLAM, Localization, Perception and LKA modules
Effectuated A-star and an augmented RRT-Star Algorithm for global and local planning with obstacle avoidance based on Point Cloud data and migrated a cost-function based Behavior Planner from Simulink to Python (ROS)