Optimal Control of a Soft Growing Robot:
Optimal Control (AA 203 2018)
As a part of an optimal control course, I completed a final project with Margaret Coad and Zonghe Chua in which we applied Model Predictive Control (MPC) for trajectory guidance of a soft growing robot. Soft robots have more complicated dynamics than traditional robots. This robot uses compressed air to extend and a tether connected to a motor to retract. The air pressure regulators and the motor work antagonistically to control the robot's length.
For this project, we wanted to optimize the control effort to minimize wasted energy and maintain tension in the tether while following a planned trajectory with the endpoint of the robot. We compared MPC and a traditional PID controller applied to a real growing robot, and we found that the MPC controller outperformed the PID controller.
Optimizing Haptic Guidance Through
Genetic Algorithms:
Design Optimization (AA 222 2016)
As a part of a course on Multi-disciplinary Design Optimization, I completed a final project to apply genetic algorithms to a haptic device I designed. Using a model for the user's motions, I built a simulation to estimate the trajectory a user would follow given certain haptic cues. Then, I used Genetic Algorithms to learn the best series of haptic cues to give a user when aiming for a certain goal.
I expanded on this work to write a conference paper submitted to the IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS 2018).
Haptic Guidance as a Markov Decision Process:
Decision Making Under Uncertainty (AA 228 2016)
As a part of a course on Optimal Decision Making, I completed a final project to model a user's interactions with a haptic device as a Markov Decision Process. I collected user data and applied Q-Learning to optimize the haptic cues provided to the user. We applied the optimized haptic cues and the naive haptic policy in an experiment on real users to compare the performance of the two policies. This work was with another Stanford student, Nathan Usevitch.
Autonomous Obstacle Course Race:
Stanford Mechatronics (ME 218B 2015)
In the second quarter of Stanford's Mechatronics series, a team of three other students and I designed and built an autonomous racing cart to traverse an obstacle course. The small robot had to complete three laps around a track, shoot a ball into a bucket, and drive over a see-saw.
Using a TIVA microcontroller and an event driven, hierarchical state machine, we programmed our robot to successfully complete the course. Using serial peripheral interface, our robot received GPS-like information on it's position around the track. Using this information, the robot make decisions about when to turn or move straight to drive around the track. We also planned decision-making for the robot about when to enter the shooting zone or the see-saw. DC motors drove the wheels, and a simple proportional controller was implemented to steer the robot toward desired way-points around the track.
To shoot balls at the target bucket, an IR sensor detected IR emmiters on the target, and a DC motor driven spring-loaded mechanism propelled balls out from the center of the robot. A servo motor rotated balls around a storage compartment to load them into the shooting mechanism.
2-Player Carnival Game
Stanford Mechatronics (ME 218A 2014)
In the first quarter of Stanford's Mechatronic Series, a team of three other students and I designed and built a two-player carnival game based on the famous landmark Alcatraz. Using event-driven programming, circuit design learnd in the course, and TI's TIVA microcontroller, we controlled several different sensing and actuation sytems.
In the game, three bombs have been placed by an evil supervillain, and they will destroy Alcatraz if the players can't save it in time. First, they must turn cranks to lift gates in the jail cell at the front. Once the gates have been lifted, they must both stick their hands in and push the cart carrying the bomb diffusal kit through the path in the secret tunnels of Alcatraz. With each successive step completed, a bomb disappears from the hill. If the players are successful, a dark, stormy cloud above alcatraz is replaced by a rainbow!
DC motors (used as generators) served as the cranks. IR beacons and detectors monitored the hands coming in through the gates. Another set of IR beacons and detectors sensed the bomb-diffusal kit moving through the tunnels. Servo motors controlled the lifting of the gates, removal of the bombs, and rainbow coming out at the end.
More information about this project can be found here.
Skin-Stretch Feedback for Proprioception in Prosthetic Hands (Rice Capstone Design Project 2014)
* Winner of the World Congress of Biomechanics Student Design Competition 2014
Individuals using prosthetic hands lose the sense of proprioception (a natural understanding of body position). In an intact limb, signals from mechanoreceptors and skin stretching over knuckles helps individuals maintain a sense of how open or closed their fingers are. For my senior design project at Rice University, a team of four other students and I designed and prototyped an upper-arm skin-stretch device to supplement proprioceptive feedback for prosthetic grippers. The device would gently stretch skin one way if the gripper's fingers were open and the other way if the gripper was closed. In order to test our device, we also built an artificial EMG-controlled prosthetic gripper to be used in research studies. The gripper mechanical design is based on the Yale OpenHand project. Further studies using our system are currently underway at Rice's MAHI Lab.
Piano-playing SCARA Robot
(Rice Robotics 2014)
In my undergraduate Robotics class, I completed the forward and inverse kinematic modeling for a SCARA robot, then programmed one to play a song on the piano. Using a compliant finger attachment, and measured positions for piano keys, the Adept SCARA robot pressed one key at a time to play "You are my Sunshine."
Autonomous S'more Machine
(Rice Mechatronics 2013)
In my undergraduate mechatronics class, as a final project we designed and built an automated s'more maker. A motorized lazy-susan turned, stopping (when a hall effect sensor detected a magnet) at stations around its perimeter to receive s'more toppings. At the first station, a servo motor turned a rotating platform to drop a graham cracker on the lazy-susan. At the second station, a linear actuator pushed nutella out of a syringe onto the graham cracker. At the third station, another rotating platform dropped a marshmallow onto it. At the fourth station, the whole assembly sat under a heating panel extracted from a toaster to melt the marshmallow. Finally, at the last station, another graham cracker was dispensed, and a linear actuator pressed down on the top, completing the s'more! The entire process was run by an Arduino. Hall effect sensors, a DC motor, two servo motors, two linear actuators, and a toaster provided sensing and actuation.