Non-neuroscience class and research projects are described here in layperson friendly terms, with pointers to technically detailed versions where available.

Learning to drive using Reinforcement Learning

This project is unique because I have worked on it with different people at different universities in different semesters. Each iteration has attempted to improve upon the last. It began in Spring 2016 at Georgia Tech in collaboration with Chris Chow, Prabhudev Prakash and Punarva Katte and has been improved upon at Carnegie Mellon in collaboration with Tara Pirnia, Hillary Wehry and Matthew Harding. The objective of this project is to build Reinforcement Learning agents that can learn how to drive (well) in The Open Racing Car Simulator (TORCS) video game. I continue to work on it as a hobby whenever time permits.

Read The Full Post
Reinforcement learning vs Nonlinear control - balancing a cart-pole system

In a class project for ECE 6552: Nonlinear Systems during Spring 2016 at Georgia Tech; Pavel Komarov, Prabhudev Prakash and I explored whether we could relate tools in nonlinear analysis, optimal control and statistical learning to each other? If so, what would the common and contrasting factors between these tools be? We compared an analytically derived nonlinear controller with a reinforcement learning controller, both designed to keep an inverted pendulum from falling down on a moving cart, by applying force to the cart. We found an interesting connection between the two kinds of controllers and made some neat videos. Click through to check it all out.

Read The Full Post
Non-invasive human machine interface for individuals with motor disabilities

During my first semester as a Masters student at Georgia Tech (Spring 2015), I worked on an assistive HCI device that allows individuals with severe movement disabilities (owing to injuries, stroke, ALS etc.) to use a PC solely with head movement, tongue movement and speech. I did this work under the guidance of Professor Maysam Ghovanloo and in partnership with the hugely talented Mohammed Nazmus Sahadat. My contribution to the project was to develop a real time head tracking algorithm which allowed users to move a mouse pointer on a PC simply by moving their head. The algorithm relied on data from MEMS accelerometers and gyroscopes to track head movement. These sensors were embedded in a headset to be worn by the user, which was designed by Sahadat. The head position was esimated using a Kalman Filter which fused data from different sensors (accelerometers, gyroscopes). The head orientation and displacement estimated by the algorithm was translated into mouse movement direction and velocity using a nonlinear mapping function like those used by mouse drivers installed on a PC. The device is named mTDS (Multimodal Tongue Drive System). It was a fruitful project leading to papers in the IEEE BioCAS Conference (2015), the IEEE Transactions in BioCAS (2017) and IEEE Transactions in Neural Systems and Rehabilitation Engineering (2018). The use of the real time head tracking algorithm to control a wheel chair was a subsequent extension by Sahadat. Although the technical details in the manuscripts are cool, I think you will find the demonstration videos below more moving.

Read The Full Post
Real time object tracking in video on the TI DaVinci SoC platform

My Senior Design Project was undertaken with Girish Jain, Jon Stokes and Dhruv Srivastava during Spring 2007 at Georgia Tech under the guidance of Professor David Anderson, then Ph.D. student Rajbabu Velmurugan and with lots of support from Steve Pressig of Texas Instruments. We implemented real time object tracking on the video stream from a camera, using a Texas Instruments DaVinci SoC that pairs a general purpose ARM core running linux OS with a TI 644x DSP core. DaVinci SoCs were fairly new at the time and I think we had one of the few development boards around thanks to Steve Pressig. The novelty of the platform was both exciting and challenging (we often ran into driver, compiler, firmware issues) when trying to get code to run across both ARM and DSP cores in a reliable manner. The most entertaining part of the semester was explaining why I needed to “borrow” a set of Pool balls for my “project” to the amused and somewhat suspicious Georgia Tech Recreation Center staff (see “Results” video at the end).

Read The Full Post
A programmable System on a Chip (SoC) with a DCT accelerator

I worked on this project in Spring 2007 at Georgia Tech as part of ECE 4273: DSP Chip Design, under the guidance of Professor Vijay Madisetti and in collaboration with Chung Ching Lin, Dhruv Srivastava, Girish Jain, Michael Smith, Navraj Singh, Ramanathan Palaniappan and Sunpyo Hong. The project integrates a Discrete Cosine Transform (DCT) accelarator with a 16 bit Microcontroller which features its own Real Time Operating System (RTOS) and additional memory. The idea was to build a a programmable System on a Chip (SoC) which can feature in an application that requires fast computation of DCTs for image processing (e.g. compressing a raw image into JPEG), alongside other general purpose computation. We finished this project with a multi-threaded application that ran on the microcontroller’s RTOS and performed two tasks, Finite Impulse Response (FIR) filtering and image compression using a DCT. The latter task was offloaded by the RTOS to the DCT core of the SoC we developed, while the former ran on the microcontroller. Although they are commonplace now, SoCs were rising in prominence around the time of this project. Our code and documentation are open source.

Read The Full Post
Low power FFT processor for OFDM in 802.11 Mobile WiFi chipsets

A year before the first iPhone launched (2007), I worked on improving the robustness of WiFi chipsets for mobile devices using a data modulation technique called Orthogonal Frequency Division Multiplexing (OFDM). My main focus was developing a low power design for an OFDM core, which would minimize battery drain; thus avoiding the need for bigger batteries which raise the cost of a mobile device. I did this work under the guidance of Professor Vijay Madisetti with Mohanned Sinnokrot as my graduate mentor, during the Spring 2006 semester at Georgia Tech. Although we did not publish, I made the code open source in 2007. It appears that atleast one research paper using my code (and apparently my figures too) was published in 2014.

Read The Full Post