Projects

I love working on electronic circuits, electromechanical machines and other hardware based projects. Nothing feels more fulfilling than seeing your creations come to life. I enjoy experimenting with hardware and simulators in my free time, and even set up my own home laboratory! Here are some of the projects works along the course of my undergraduate studies.

Autonomous vehicle with mad driving skills

Autonomous Driving with Deep Reinforcement Learning in Unity

BSc Thesis Project

The primary goal of my undergraduate thesis was to develop an autonomous vehicle using deep reinforcement learning. The task was simulation based, and was done using the ML Agents framework within the Unity game engine. We first experimented on reinforcement learning using the curriculum learning approach that enabled an autonomous agent to traverse an unsignaled intersection which was not possible without an appropriate curriculum. We then experimented on train-time and test-time policy ensemble schemes that resulted in a better driving performance by the autonomous vehicle in terms of driving smoothness and reliability. Finally, we developed an overall framework for the learning agent that can be adapted to various driving conditions such as varying environments, traffic settings and driving tasks such as parking, turning at intersections etc.

Thesis dissertation link

Industrial Automation Challenge 2017

Robotics Competition Organized by BUET Robotics Society

The industrial automation challenge was part of the RoboCarnival 2017 organized by BUET Robotics Society - the annual signature event of the club. In this challenge, the task was to pick up a box that would pass over a conveyor belt, and based on the shape drawn on top of the box, it has to placed in the appropriate slot. The bot has to be fully autonomous, and camera was allowed as means of perception of the bot. Our team became the sole champion in this competition by successfully picking and placing 5 out of 6 boxes in the intended slot. We used a simple image processing algorithm on MATLAB to detect the shape drawn and then using inverse trigonometric calculations, detected the position of the box. Then using a set of predefined trajectories, the box was picked and placed in the designated slot. This competition was particularly memorable because we were still undergraduate freshmen, and had no prior knowledge of image processing or inverse kinematics, but still managed to come out successful because of excellent teamwork and amazing guidance from our mentor Abid Abrar vai.

Project link: https://github.com/ClockWorkKid/Industrial-Automation-Challenge-2017


Gameplay

Motion Tests

Chess Playing Robot Using Machine Vision and Chess Engine

Numerical Methods Laboratory Project

This robot was implemented as part of the numerical systems laboratory term project. The key aspects of this project are the simple yet unique perception algorithm and the control system for motion. A camera placed above the board perpendicularly takes a snapshot of the board and based on logistic regression based thresholding techniques, it identifies black and white pieces present on the board. Then comparing the current snapshot with the previous snapshot, the bot figures out the last move made by the user. This is used to update the board configuration, which is sent to the Chess Engine (Stockfish) and it returns the next best move. The robot then plans the motion required to move the desired piece to the target location and sends commands to the motor controller accordingly. This was the first time I had used a machine learning technique in improving the performance of my robot's perception system.

Project link: https://github.com/ClockWorkKid/Chess-Machine

Low Cost WiFi Nano Quadcopter

Personal Project

I had planned to build this quadcopter as a very cheap and scalable framework for swarm drone development. The initial idea was to implement a WiFi based system that would house both the computation and communication systems on the same chip. The first part of the project was a success. I had used the ESP8266 chip (WeMos D1 mini module) along with an STM32F1EVO brushed flight controller to make a brushed quadcopter under 3000BDT (30 USD). This drone was controllable via either a smartphone connected to the WiFi chip, or an independent controller, also made using an ESP8266 board. I later extended the functionality to ESP32 boards as well. The controller and receivers communicated using the ESPNow protocol, and the ESP chip communicated with the flight controller using PWM communication. The drone had a successful flight. The second step was to autonomously stabilize the drone on air using some sort of signaling method for accurate localization without the help of GPS. I had planned on developing an IR-LASER based method for this, as implemented in some VR devices - but never got to finish the project.

Project link: https://github.com/ClockWorkKid/WiFi-Nano-Quadcopter

Look at that creepy crawler go!

Hexapod Robot

Personal Project

Hexapod robots are cool to watch, they are scary, yet magnificent. I built this robot for just for fun. The downside of the robot was the weak mechanical structure and an even weaker group of motors. The robot had a hard time walking around as the motors could not pull the weight of the whole build. The project was later scrapped due to the huge cost required to upgrade the motor system.

Project link: https://github.com/ClockWorkKid/Hexapod-Robot

Demonstration of the project

Mobile Manipulator for Hospital Assistance

Control Systems Laboratory Project

A simulation of a mobile manipulator robot for assisting in delivering food and medicine to patients without human contact in times of contagious infections. This project was done as part of the Control Systems Laboratory during the time of COVID-19 lockdown and limited access to hardware. In the simulation, the robot picks up objects from a dispensary table top, follows predesignated routes to patient rooms as notified by a supervisor, and then delivers the object to the destined location.

Project link: https://github.com/ClockWorkKid/Mobile-Manipulator-Coppeliasim

When engineers try to be pianists but it sounds weird

FPGA Based Digital Piano

Digital Logic Design Laboratory Project

In this project, we used a Cyclone-II FPGA board and a logical counter based frequency generation scheme to generate square wave frequencies of musical notes. The piano had 3 octaves starting from the C3 note, and could simultaneously generate multiple notes for playback.

Project link: https://github.com/ClockWorkKid/FGPA-Based-Piano

When engineers try to be pianists again

ARM Based Digital Piano

Microprocessor Laboratory Project

This project was intended as an upgrade of the FPGA based piano where we used an STM32F7 Discovery board for tone synthesis. Instead of generating tones, we used a base tone and resampled it for generating the other notes. The resulting piano sounded more soothing and natural compared to the FPGA version.

Project link: https://github.com/ClockWorkKid/ARM-Based-Piano

Yes, a project related to my major at last :)

WiFi Based Electrical Power Meter

Power Systems Laboratory Project

Implementation of a power meter using a voltage transformer for voltage measurement and a current transformer for current measurement. The resultant device could measure up to 5 Amperes of current and around 1100 watts of power continuously. It can also calculate the power factor by measuring phase difference with a resolution of around 3.6 degrees. The module reads voltage and current values and sends the power readings to a MATLAB server for storing or analysis.

Project link: https://github.com/ClockWorkKid/Power-Meter-WiFi