OOP project (2020)
Programmed with IntelliJ, Javascript
Can you defeat all the bosses on your team?
Travel across 6 worlds in this game, and try to take down the 3 bosses ruling each world. Each character has a unique skill that they can use in battle i.e. healing, drawing aggro, and more. Use these skills to your advantage and maybe your can defeat the strongest boss in the game: Mewtwo
​
This group project had to be done just when the pandemic hit and so the project discussions and development had to be done through online platforms such as Discord.
​
Roles and responsibilities: project leader, main programmer
Code available on GitHub
ETP Project: SmartShop (2021)
Programmed with Android Studios, Flutter, Firebase
SmartShop is mobile application that is designed to help people better practice social distancing. This app would generate a digital ticket that customers would have to use to enter registered premises. On this app you can sign in, register and book a time that the user want to enter the premise and it will be reflected on the firebase database. The digital ticket shown is unique and will provide data about the user's booking when scanned.
​
Having to work on Firebase for the first time, implementing Firebase cloud database services in the Flutter project was the hardest part of this project. Firebase is an everchanging platform, meaning that many of the tutorials that I have found had outdated features and libraries. Thankfully, the online forums helped me pull through and made this the project a success.
​
Roles and responsibilities: project leader, main programmer
Code available on GitHub.
Robocon (2021)
Programmed with Thonny (Raspberry Pi), Python, Open CV
(Footage shown is just a demonstration of the tracking system)
Robocon is an annual robotics course-clear competition. The objective of 2021's robot is to aim red and blue pots and shoot an arrow into it. The computer vision will track the object of red and blue colors and communicate the horizontal center of the object to the Arduino, which will then move the robot left or right based on this data to make the robot center to the object being tracked, allowing us to aim at the pot more accurately.
​
OpenCV is a very helpful tool for computer vision, though turns out that that wasn't enough. As the raspberry pi camera I have used is not a webcam, OpenCV is not capable of adjusting the image saturation, ISO, etc. PiCamera, however, is capable of adjusting the image but lacks the functionality and features available with OpenCV. Thankfully, after about a week of figuring out the problem and doing research, I have managed to get the two libraries to work together through many StackOverflow Q&As.
Roles and responsibilities: technical team (computer vision, Raspberry Pi to Arduino communication), HICOM of project, main programmer




Final Year Project
Project Title: Stereo image calibration for size measurement
The stereo imaging system is a system designed to measure the distance of objects from a stereo camera based on stereo images. Camera calibration, rectification, stereo matching and distance and size estimation was done with a set of custom-made stereo cameras and OpenCV and Python. The results of the experiments show that stereo vision of the custom stereo camera is able to accurately estimate the size and distance of an object up to a limited range of 5 meters, after which the estimation starts to deviate.
​
While documentation on the steps of a complete stereo vision setup is plenty, there is a lack of guide regarding the distance estimation of objects based on stereo vision using OpenCV. After many trial and readjustment of the distance measurement formula, a satisfactory result for the distance estimation was obtained.
​
Code and project report available on GitHub.