Reinforcement Learning (Deep Q Networks)
|
This is a video of the training process for a deep Q network (DQN) I implemented using PyTorch. It is trying to learn to balance the pole on top of the cart. The only input is to either push the cart left or right at each time step.
In addition to this model I also trained one to play Pong (the Atari game). My Pong DQN averaged 40 hits per game after training for 1.5 days on my tiny laptop. After that I decided to leave the heavy Machine Learning to those with GPUs. :-) |
Homemade CNC Plotter
This is a home-made CNC plotter made with two stepper motors, a small servo, a raspberry pi, and a bunch of scrapwood from the garage. I created the tool path planning algorithm as well as the program for creating line-drawings from any RGB image. This project was just a for-fun project which I completed over a couple of weeks.
|
|
Nonlinear Evolutionary Model Predictive Control using Deep Neural Networks
|
As part of my PhD research I developed a form of nonlinear Model Predictive Control which uses machine learning and a computer's Graphics Processing Unit (GPU) to find optimal control solutions quickly. This work was published in a peer reviewed journal.
|
Walking Robot Simulation and Control
Out of pure interest, I familiarized myself with contact dynamics and simulation, then walking algorithms. I created this simulation, visualization, and the control algorithm for robust walking. The red dot shows the position of the center of mass.
|
|
Parallelized Monte Carlo Tree Search Based Path Planning for Multiple Robots
|
Because my PhD research was focused on Model-based optimal control for systems with many inputs or degrees of freedom, I looked into the problem of path planning for many robots. I developed a path planner based on Monte Carlo Tree Search which allows for easily altering the objective of the teams of robots.
|
Evolutionary Model Predictive Control
This preliminary work at the beginning of my PhD proved the feasibility of using a Graphics Processing Unit (GPU) in order to very quickly optimize inputs to a robot. The Evolutionary Model Predictive Controller featured in this video became one element of my dissertation.
|
|
Inflatable Robot Joint Angle Estimation using IMUs
|
As part of my research in a lab full of soft robots, I was involved in developing methods for estimating the configuration of soft robot limbs. Using only inexpensive Inertial Measurement Units (IMUs) we are able to estimate the robot hand's pose to within a couple of inches.
|
BYU Mars Rover Robotic Arm
Working as part of a team, I helped to design build and test an arm to be mounted on BYU's competition Mars rover. The arm had to be able to perform several tasks including lifting and pouring a 2.5 kg gas can, manipulating tools, valves and switches and collecting a soil sample. Below are some pictures that show the evolution of the arm design.
|
|
Vision Based Teleoperation
|
This teleoperation is based on a monocular webcam feed from the laptop in front of the operator. This was done for part of a robotic vision course.
|
Programs for Teleoperation of a Compliant Robot
The robot which I control in these pictures calculates my hands' position and orientation and then sends that information to the second robot. The second robot calculates what joint angles it needs to have to achieve those same positions and orientations and then it commands them. You may also notice that I have scaled the motion of the second robot so that when my arm is fully outstretched, so is his. This was completed as an undergraduate researcher.
|
|
Homemade Row Boat
|
This is a boat of my own design I made of plywood, fiberglass, and epoxy. The plywood hull was stitched together using bailing wire, then epoxied in place, then the bailing wire was removed and the entire hull was covered in fiberglass and epoxy. The boat is 7.5 ft long and holds two people comfortably.
|
Collapsible Backpacking Kayak
This kayak is 8' long, but can be collapsed into a package that is 4' long (plus the wooden frames). It is a PVC and wooden frame with a simple tarp wrapped around and fastened with a string. It performed well on its maiden voyage in a swimming pool, but was a little small for someone my size.
|
|
Bagpipe-Mandolin Hybrid (The Bagdolin)
|
This hybrid instrument incorporates a drone string that passes through a tunnel in the neck (as seen in drawing) and is continuously strummed by an electric motor with a rubber band "pick." I fabricated the entire instrument body and neck from scratch. The frets are nails secured with rubber bands.
|
Woodworking Projects
My wife and I enjoy building furniture and toys using wood. Here are a couple snapshots of our projects.
|
|
Autodesk Inventor Model of a 4-Cylinder Engine
For 3 months in the winter of 2012 I lived with my parents in San Salvador and during down times between trips I modeled each part of this 4-cylinder engine and assembled it in Autodesk Inventor. The only reason I stopped here is because my computer stopped supporting the 3-D motion simulation with all of the valves and rocker pins.
|