Side Projects
Generating Pixel Art from images with Matlab
This MATLAB script pixelates an image by taking the mean RGB values of neighboring pixels to obtain the desired number of rows while maintaining aspect ratio. Then, the pixelated image is segmented based on a specified number of colors in RGB space via K-Means clustering. The resulting image, as seen here, will have a pixel art aesthetic.
The idea/inspiration for this project came from a friend who was interested in cross-stitching a photograph, but required the image to be simplified in terms of pixel resolution and color representation. The Github repository can be found here.
Autonomous Crowd-crossing Navigation with Hybrid Path Planning
A model predictive control (MPC) based controller was designed for a 2D kinematic vehicle model with LIDAR sensors. The system was simulated in MATLAB with the Robotic System Toolbox. The objective of the robot is to move from its starting position to its end goal while avoiding both static and moving obstacles and generally following an optimal path.
The project was done for the course ME C231A of UC Berkeley for the Fall 2017 Semester. The report for this project can be found here.
Dynamic control of robot arm
A Thermo Scientific robot manipulator was used to complete a series of dexterous tasks, as seen in the video. For simplicity, the robot was programmed to move in straight lines between points that are hard-coded in world coordinates at predefined speeds. Task space proportional-derivative control combined with simple impedance control was implemented for the robot arm in world coordinates as well.
This project was done for the course ME 446 of UIUC in the Spring 2017 semester.
Self-balancing two-wheeled Car: "Segbot"
The "Segbot" is essentially an inverted pendulum that is stabilized by the torque applied by the motors with separate PID control loops for the turning and forward/backward speed control. A myRIO board, along with LabVIEW, was used to implement the controllers. A MSP430 microcontroller was used to interface the motors encoders and accelerometer to the myRIO. Another feature of the Segbot (not depicted in the video) is the ability to follow a colored object at a fixed distance with a webcam.
This project was done for the course ME 461 of UIUC in the Fall 2016 semester.
Quadruped walker: "Acrylicbeest"
This is a four-legged walking robot designed to traverse concrete, grass and granular terrains. The walking leg mechanism is based on and modified from Jansen's linkage. The gait of this robot follows a trotting gait, where each pair of diagonal legs are out of phase from each other. The design of the robot was optimized by analyzing the kinematics and dynamics through numerical simulations in MATLAB.
This project was done for the course ME 370 of UIUC in the Spring 2016 Semester.