Skills

Programming

Python, C++, ROS, Java, & Matlab

Deployment

git, linux & continuous deployment to production environments

Robotics

Path planning, sensor fusion, localization, autonomous vision and navigation

Experience

 
 
 
 
 
September 2022 – Present
San Francisco

Software Engineer: Planning and Controls

Cruise

At Cruise I am part of a team building self-driving cars. I improve the planning and reasoning capabilities of the autonomous vehicles.
 
 
 
 
 
January 2022 – Present
Sunnyvale, CA

Software Engineer: AWS Robotics

Amazon Web Services

I prototyped a new AWS Robotics offering
 
 
 
 
 
August 2017 – Present
Michigan

PhD in robotics

University of Michigan

My research areas include:

  • Path planning
  • Teleoperation
 
 
 
 
 
August 2015 – June 2017
Pennysylvania

Masters of robotics

Carnegie Mellon

My research areas included:

  • Redundant manipulators
  • High precision localization
  • Deep reinforcement learning for robotic control
  • Multirobot cooperation for nuclear inspection
 
 
 
 
 
January 2014 – January 2015
Washington

Software Development Engineer

Amazon

I created software for the Amazon Kindle E-Readers and Tablets.
 
 
 
 
 
January 2012 – January 2014
Washington

Robotics Engineer

Electroimpact

I designed, built, and programmed robots that build airplanes.
 
 
 
 
 
January 2010 – January 2012
California

Research Fellow

Caltech

Fluid dynamics research.

Publications

Robots need both visual and contact sensing to effectively estimate the state of their environment. Camera RGBD data provides rich …

We propose PSSNet, a network architecture for generating diverse plausible 3D reconstructions from a single 2.5D depth image. Existing …

We propose the Selective Densification method for fast motion planning through configuration space. We create a sequence of roadmaps by …

We address the problem of robot motion planning under uncertainty where the only observations are through contact with the environment. …

Localization error, sensor noise, and occlusions can lead to an imperfect model of the environment, which can result in collisions …

Contacting the world can provide stability, support, and sensory information, however, many robots avoid contact whenever possible. …

Robots can provide remote access, manipulation, and inspection capabilities to augment human workers and improve safety in potentially …

In this paper, we propose a touch-based local- ization approach for a potentially large and complex object with multiple internal …

Performing detailed work on objects requires precise localization. Currently humans aid machines in localization either by direct …

A robotic arm manipulator is often an appealing method to position drills, bolt inserters, automated fiber placement heads, or other …

Posts

I built a raspberry pi music player that allows me to play any album I own by scanning a barcode from a binder. You can find code and instructions on my github repo. Modern music players are missing some features from the past In the era of records your music collection was an asset. You’d browse titles while over at a friend house, discovering new music and bonding with the collection’s owner.

CONTINUE READING

I made a ROS node that hooks up to a high quality video camera for automatically capturing my robotics experiments, using a bit of custom software and a piece of hardward called a Capture Card. This post will assume you know about ROS. Code and documentation are available: https://github.com/UM-ARM-Lab/arm_video_recorder When my robots are working smoothly I naturally want to take videos. I may run an experiment for 100 trials, and I want a video of each one.

CONTINUE READING

My Foray into Normalizing Flows: This post and accompanying code follow my introduction to Normalizing Flows, which have become popular in image compression and generation (e.g. RealNVP, NICE, and glow). My code is modeled after Eric Jang’s tutorial, but written in tensorflow 2. What is a normalizing flow? A normalizing flow is a sequence of invertible transformations mapping one (simple) probability distribution onto another (complicated) probability distribution. For example consider the simple distribution of an image where every pixel is independently sampled from a gaussian.

CONTINUE READING

Projects

Virtual reality robotic teleoperation: Pancakes

Operate robotic arms with Vive to cook a pancake breakfast

Virtual reality robotic teleoperation

Operate robotic arms with Vive to fill shopping bag with groceries

3D printed robotic fingertips

Designed 3D printed robotic fingertips to improve grip on cloth

Computer vision aided laundry sorting

Robot picking through deformable objects to find target

Touch localization

Localize robotic arm to manufacturing part with touch

Carnegie Mellon: Snake Robot

Videos of snake robot used for Master’s thesis

Drone

Unmanned Aerial Vehicle for autonomous sky photography

FIRST Robotics Mentor

Mentor to a FIRST robotics team since 2013

Caltech robotic challenge

Won Caltech’s Mechanical Engineering robotics class challenge

DNA lamp

Built 3’ DNA lamp out of PVC

Electroimpact

Making robots make airplanes