Projects
Field Self-Delivery System using Unitree Go1
In my Final Year Project, I worked on development of a legged robot system capable of autonomous self-delivery for industrial and consumer applications.
The robot is web enabled, and I also designed a website using HTML, CSS and javaScript with an accompanying mySQL database for data collection and analysis.
My focus was on the perception subsystem, mainly object localisation in a 3D space with PCL, object recognition with Tensorflow and segmentation with openCV.
Robot behaviour was implemented with a behaviour tree and coordinate transformations were used to localise, align and traverse to the various locations of interest such as the pickup and dropoff points.
I also designed, sourced for components, and fabricated the entire hardware payload mounted on the Unitree Go1 with Fusion 360. Tons of consideration was put into power and thermal management, electronics and optimal utilisation of space/weight distribution.
The exciting multidisciplinary nature of robotics also gave me opportunities to explore, troubleshoot, and solve interesting problems relating to manipulation, robot behaviours, and human robot interaction.

reel.io
Power Assisted Cable Based Rehabilitation System
As part of the Tech4Good Singapore initiative, my classmate, Daryl and I built a power assisted cable based rehabilitation prototype for motion impaired patients.
Developed through consultations with a community partner, this system targets patients who have trouble lifting their arms above a certain height. Therefore, this system aims to pull the patient's arm up to stimulate the patient's nerves and muscles.
We both try to keep to Design for Assembly principles as much as possible, and the consultations really helped to shape the requirements and final prototype of our product.
I designed the electronics box as well as its subsystems, while Daryl worked on the mechanical system.
Updating the LCD screen while ensuring the stepper motor continued rotating smoothly was not an easy feat, but it was achieved through smart timing.
Kinematics Simulator
In this project, I explored the implementation and principles of:
-
Ackerman Steering
-
Pure Pursuit Algorithm
-
Transformation Frames
-
Sonar Sensor Measurements to a known wall
It was fascinating figuring out the math of the kinematics and transformations between the coordinate frames.
I also implemented a pure pursuit algorithm which enables the vehicle to move autonomously!
Some future work would be to properly implement a TF tree and transformation matrices.
The project was implemented with pure C++ with the openCV


Robot Monte Carlo Localisation algorithm
Keen to explore how robots can make use of sensors to move accurately, I tried implementing the Monte Carlo Localisation algorithm in LUA.
The robot will navigate throughout the map utilising waypoint navigation. This will be achieved using the Monte Carlo Localisation algorithm with the use of a depth sensor. By predicting its own pose, the robot will estimate how much it should adjust its movement in order to achieve precision.
I hope to one day be able to use Gazebo instead of Coppelia Sim as I percieve Gazebo would be able to integrate better with ROS.

Robot Wall Following algorithm
In this project, I experimented the use of a proportional control to implement a wall following algorithm in LUA.
The robot will point its sonar depth sensor at an angle toward its left. Following that, the robot will closely circle around one of the pillars.
I used Coppelia SIM as it allows me to easily simulate robots, with a built in environment for simulating all the physics involved.

Smart AC Remote
My university Hall's Air Con rate is charged by the minute regardless of temperature.
Therefore, in order to reduce the bill, I would usually turn the aircon on for a short time before turning it off when the room is cool enough.
Hoping to automate the process, the smart AC remote is born!
Reely
As part of my Year 2 design project, my team and I came up with our very own invention, Reely to solve the problem of low levels of physical activity among people living with disability.
We gathered requirements through consultations with community service centres, and found that patients mainly focus on isotonic exercises, with safety being a huge factor.
We designed reely so that it is safe with no snapback, and kept to DFA principles so that parts can be easily replaced by home 3D printers.
My main contribution in this project was the design of the friction generating pads, and 3D printed pawl gear.
Ball Balancing Bot
(Work in Progress)
Fascinated by control algorithms such as PID, I was inspired by some videos on the internet and sought to make my own ball balancing bot.
To identify the position of the ball, I'm considering to use Image processing with a camera, so as to learn computer vision techniques.
Thus, a Raspberry Pi was used. Additionally, I hope to familiarize myself with CAD skills, and made use of Fusion 360 to design and 3D print the parts.
Key-Chain Holder
A purely mechanical design project, I explored making a key chain holder. It integrates 2 slots for the RFID tags, as well as a slot for a key at the back.
To achieve the goal, I had to brainstorm how to secure the key within the case, and decided on a snap fit design.
Next, I learnt how to operate a laser cutting machine, and familiarized myself with the 3D printing process.
Bike Phone Holder
In a bid to get in shape, I attempt to start spinning. Alas, spinning at the same spot gets a tad bit boring.
Therefore, I had the brilliant idea to attach my phone to the spin bike so I can watch videos while I spin.
It was slightly difficult to get the measurements right, and therefore I 3D printed multiple test fits at a significantly lower infill percentage before printing the final one.
I also tried parametric modelling, so that I can simply edit the dimensions to quickly generate a few iterations with different lengths.