Done from 2018-present at WPI.

October—December 2020

A ROS package for the Turtlebot platform to map an unknown maze with LIDAR. The exploration was done fully in simulation with sensor noise added. (Video)

Our team of 3 designed a process to identify all unknown frontiers on the map, then use the A* algorithm to find the fastest route to the closest reachable frontier. The robot could map all accessible areas in a 384x384 occupancy grid in under five minutes.

Skills/tools used: Unix, Python, ROS, A* and other search algorithms, pose estimation, localization, noise filtering, PID

August—October 2020

A sorting system for a 3-axis robotic arm and webcam that identified and manually sorted colored balls by their hue. (Video)

Our team of 2 worked out the arm's kinematics and wrote the calculations for its controller from scratch in MATLAB. The pick-and-place cycle was about 10 seconds, with a 100% object identification success rate and an 90% object grasp/release success rate.

Skills/tools used: MATLAB, Adafruit ItsyBitsy, soldering, forward/inverse kinematics, conversion between 3-D coordinate systems, D-H tables, interpolation, image processing

October 2019

A modular robotic drumstick of adjustable height that could be instantly set up on any drum surface of varying height, tilt, or orientation. The Raspberry Pi was connected to WiFi, allowing us to control the drumstick with wireless MIDI messages. (Video)

Our team of 3 wrote code to determine from the piezo sensor when the drum's surface had been struck and determine the drum's distance from the stick. Upon hitting the drum, the motor cut power to let the stick bounce back naturally. As the group's sole mechanical engineer, I calculated the motor requirements and modeled the drumstick holder (which adapted onto a spare music stand base).

Skills/tools used: Raspberry Pi, piezo sensor, brushless motor, python, Solidworks, 3-D printing, laser cutting

August—October 2019

A robot built to solve a design challenge: a differential-drive robot that could carry solar panels from a staging area to be placed on one of two different roof angles (45° and 25°). The robot used an infrared sensor to follow lines marked out on the field and waited for remote human approval before placing each panel. (Video)

Our team of 3 designed a 4-bar arm capable of lifting the required loads and reaching both desired positions to place the panel. I wrote much of the robot's state machine and task scheduling code as well as modeling, printing, and assembling portions of the lifting arm.

Skills/tools used: C++, Arduino Uno, reading wiring diagrams, state machines, PID, sensor filtering, Solidworks, 3-D printing, 4-bar mechanisms, differential drive kinematics

April—May 2019

A remotely controlled bot built to solve a design challenge: delivering wooden blocks to fill shelves, referred to as "delivering pizzas to dorms". It competed in a randomized tournament which matched the robots into teams of two to complete the task in a time limit. (Demo video) (Competition footage)

Our team of 3 designed the lifting arm and differential drive system (of the 6 wheels, only the middle 2 were powered) and built the bot completely from scratch.

Skills/tools used: C++, Arduino Mega, VEX parts, laser cutting, statics, motor control, gear ratios

September 2018

A robot built for a 48-hour antweight combat robotics hackathon. (Demo video) (Fight 1) (Fight 2) (Fight 3)

Electronics and remote-control code was provided; our team of 3 designed the body and vertical spinner in Solidworks and 3DPrinterOS.

Back to Top