2015, Intuitive Surgical
The EndoWrist Stapler 45 for the da Vinci Xi system brought internal stapling capabilities to surgeons using Intutive Surgical's flagship robotic surgical system. The stapler is used to simultaneously seal and cut larger structures, such as the intestine. Unlike most non-robotic staplers, it has a wrist with 2 degrees of freedom and the ability to detect when the jaws are adequately closed on target tissue.
As part of the Stapler New Product Introduction (NPI) Manufacturing team, I helped design and implement the manufacturing line to assemble the stapler. My primary responsibility was creating the software that calibrated and tested the functionality of each stapler. I worked closely with the mechanical and controls engineers to understand the performance of the instrument and create effective tests.
In addition, I also designed mechanical assembly fixtures and work instructions, and diagnosed issues that arose on the manufacturing line.
Ongoing
his barbot is my ongoing hobby. I am a bit of a cocktail snob, so when I decided to build a robot, one that could make me drinks was an obvious choice. A survey of other bartending robots left me disappointed: almost all were pump-based and limited to a few ingredients. I wanted my barbot to make many different types of cocktails with minimal human interference, so I settled on making it an arm. Since then, learning about robotic arms has become as important as the original goal, and I will often make choices based as much on areas I want to explore as on what it will accomplish (the main luxury of hobbies).
In its current form, the robot is a 5-DOF arm built into the center of a circular table. Ingredient bottles will sit around the table with pour tops, and the arm will choose the necessary ingredients and combine them in a glass. More advanced techniques, like shaking, will come later. Working on this project, my second obsession has become how to use elegant design and smart software to make the cheapest hardware possible (not least of all because I have to pay for everything). As such, the current design consists entirely of components that are off-the-shelf, use rapid prototyping techniques (laser cutting and 3D printing), or require minimal machining.
Right now, I am on the third design iteration. Most recently, after constructing the base and upper arm using T-slot aluminum extrusion, I decided to replace the extrusion with laser cut plywood to reduce weight and complexity. I'm in the process of putting together the new parts.
The system will run on ROS, with a network of AVR's interfacing with the motors and sensors. Currently, the base joint's position can be controlled through ROS, which required porting rosserial_client to an ATmega32U4.
2010, Luidia Inc
The Chief Interactive Projector Mount is a retrofit of a Chief projector mount line with Luidia's interactive whiteboard technology. The interactive mount, when connected to a projector and computer, enables users to draw and write digitally, right on the projected screen.
I designed the injection-molded plastic cartridge that houses Luidia's technology. The biggest innovation was the ultrasound horns. The system has microphones that receive ultrasound signals through holes in the enclosure. Simple holes, however, were insufficient when attaching the system to the mount. I collaborated with the electrical engineering department to design the horn-like openings for the microphones that allowed the technology to work in the new orientation.
In addition to the horns, the cartridge includes an LED light pipe, USB Type B port, and mounting holes. The bottom half is made from an infrared-permissible plastic so that the system can receive IR signals without a window made from a separate piece.
2009, Palo Alto Research Center (PARC)
The culmination of a summer internship at Palo Alto Research Center (PARC). The goal was to provide robotics researchers with an affordable platform on which to test navigation algorithms.
The base of the testbed was a remote-controlled electric car. I equipped the car with an inertial measurement unit (IMU) and a Hokuyo laser range finder on a servo-tilt platform. I linked these systems to the onboard computer with an AVR and some custom circuitry.
There were two versions of the onboard computer: the ARM-based Gumstix Overo and a more powerful, small form-factor i686. Both had WiFi connections and both ran ROS, which meant figuring out how to cross-compile the core ROS system for ARM.
2009, Stanford University
My team built this test rig for Apple, our corporate partner for ME 218D - Smart Product Design: Projects. We were tasked with automating iPhone screen impact testing. The test involved dropping steel and acrylic balls from varying heights onto different places on the screen. Previously, the test was done by hand.
Our machine consisted of an XY motorized stage to position the screen, and a vertical linear actuator to lift the ball to the drop height. Suction from a vacuum system gripped the ball and released it at the proper height. A Processing script ran the tests from a MacBook. It controlled the screen position, ball height, and gripper suction through an Arduino with a custom PCB shield. The system used a webcam and machine vision to detect cracked screens during testing.
In addition to overall system design, I focused on the Arduino firmware and linear actuator control. The Animatics linear actuators we selected had position control that we commanded via RS232. The firmware received commands from the Processing executive, created a sequence of actuator actions, and transmitted them to the actuators. This process was coordinated by a state machine that could recover from faults, such as an actuator getting stuck.
This was a team-based project for ME 218C - Smart Product Design Practice. The assignment was to design an electric-powered boat and controller to compete in a modified game of water polo The controllers and boats communicated using XBee chips (ZigBee protocol) and had to be interoperable with other teams' devices.
Our boat was modeled on an air boat Powered by a model airplane motor and propeller, our boat was the fastest and one of the most maneuverable. Fins behind the fan provided steering and were controlled by a servo. Among other tasks, I programmed the boat's three PIC16F690's in Assembly. These PICs were responsible for receiving commands from and sending acknowledgements to the controller through the XBee, controlling the boat's systems, and maintaining the boat's state, such as what team it was on.
2009, Stanford University
This robot competed autonomously in a head-to-head capture the flag competition for ME 218B - Smart Product Design Applications. Each of the "flags" emitted infrared signals, and the winner was the first robot to bring three flags into its goal area, demarcated by colored tape on the ground.
My team decided that the best strategy would be to capture all three flags in one trip. We designed a hold in the body of the robot that could carry (drag, really) three flags. Each flag entered the hold through the entrance in the front and automatically slid to the side when it hit the back wall. Once all three were in hold, the robot positioned itself so all three were in the goal area.
The robot's brains were a Freescale MC9S12E128 and MC9S12C32 programmed in C. It moved using a differential drive powered by two brushed DC motors. The motors were controlled with a TLE5208 H bridges, and we experimented with home-brew optical encoders, but did not end up using them. Flag beacons were detected with two phototransistors set up in transresistive circuits. The orientation and shielding of the phototransistors enabled the robot to run a basic control loop to ensure it was driving straight at the flag. The colored goal tape was detected by infrared emitter-detector pairs on the underside of the robot.
2008, Stanford University
The project prompt for the ME 218A - Smart Product Design Fundamentals was to design a non-conventional Atari controller. My team decided on the theme "no touch," and created a way for players to play Atari games by moving their hands around the air within the controller box.
We built eight infrared emitter-detector circuits to determine the position and rough height of each hand. Certain gestures corresponded to different Atari commands (left, right, etc), and LED's on top of the controller gave visual feedback about commands being sent. When the player entered a secret "code" (a series of gestures), computer fans gave tactile feedback as well. The system was controlled by an MC9S12C32 programmed in C.
2008, Stanford University
I built this robot with a team for ME 210 - Introduction to Mechatronics. We had to build an autonomous robot for a competition to shoot Nerf balls at targets that emitted an infrared signal. We decided to use a simple design, but make it very robust and repeatable. Our robot was a fixed-height turret that turned in one direction and shot a ball when it detected the target signal. It worked surprisingly well.
The turret sat on a lazy susan and turned using a simple friction drive: a wheel on a stepper motor. The ball launcher was a gravity fed pitching machine. A servo let one ball at a time into the launch tube where a constantly spinning wheel shot it out. A single phototransistor in a transresistive circuit detected the target beacon. We initially had problems with the circuit detecting the beacon before the turret was completely facing the target, but it turned out that the plastic enclosure of a BIC pen was the perfect size to create a shielded "scope". The system was controlled by a Freescale 68HC11E0 programmed in C.
2007, Stanford University
I designed, machined, and assembled this product for ME 203 - Design and Manufacturing. At the time, I was living in a dorm without a refrigerator, and I wanted a way to cool drinks on demand. Once filed with ice, the Ice Skeleton chills liquids in the time they take to run through the copper tubing.
Because ice has a tendency to melt, the body had to be able to hold water. I created a water-tight seal by using acrylic for the bottom and sides and welding them together with acrylic adhesive. The top and funnel were made out of aluminum to add a more decorative look. I milled the top from a square aluminum plate, and turned the funnel from a solid cylinder of aluminum. To give the copper tubing an even spiral, I wrapped it around a large PVC pipe with a spacing block. The tubing was brazed to fittings that connected to the funnel and the off-the-shelf beer tap.
2012, Luidia Inc
Flingnote grew out of a project exploring how colocated groups of people share ideas and brainstorm. The team had created a number of internal prototypes, and they had been successful enough to warrant more widespread testing. I was brought in to lead the team in building a public beta.
Our team of 3 built the site in a month. I coded the frontend and backend of the site, working with the visual and user interaction designers to define the look and features. The site revolves around "boards" that can have multiple participants. Users create virtual notes and arrange them on the board, and other participants see the updates in realtime. A mobile version of the website allows anyone with a smartphone to participate. I built the site with Ruby on Rails and Backbone.js. I used Faye to handle streaming updates to each participant, and jQuery Mobile for the mobile interface.
2012
Date Genie is a web service to help couples go on more dates. Users answer a few questions, and it shows them some date options they might enjoy. The site provides tools to help make the date actually happen.
This concept grew out of a married friend's desire to go out with his wife more often. From this initial spark, my partner and I refined the idea through many quick prototypes and over 100 personal interviews. Although couples' dating habits and relationship satisfaction varied wildly, we found that a common thread was the desire for more "special" time together. It turned out that things as simple as booking the date a week in advance qualified as special. Date Genie grew from learnings like these.
In addition to customer development, I ran all of the technical aspects of Date Genie. The site is built on Ruby on Rails.
2008
As webmaster for the Leland Stanford Junior University Marching Band (LSJUMB), I redesigned the group's website. This included creating the design, translating it into HTML and CSS, and adding interactivity with Javascript.
The biggest change was moving to the Django web framework from static HTML. In addition to making the content database-driven, I created an administration section that allowed other members of LJSUMB staff to update the site without needing to understand HTML.