This link is outdated, please click me to go to the correct page!
My goal for this project was to build and program my own quadcopter. I used an Arduino, a chip that senses orientation, and motors to create my own flying remote controlled drone. It used a PID controller, and hardware interrupts to create a smooth user experience.
While managing the chassis section of the General Motors production line, I oversaw a quality based project to reduce the amount of cars that would need to be repaired at the end of the line for not having their brake lines installed properly.
Brake lines on modern cars are quite complicated on an Engineering level. They span the entire length of the car, and so many different teams on the production line install different parts. It was a significant challenge to track exactly where the issue was coming from, and to properly work with over ten production teams of fifteen people each to solve the problem.
By using the 5 why process to root problem solve, I was able to track the problem to specific joints on the brake line. Counter measures were put in place, such as altering the configuration of parts when they arrived at the factory, and I was able to reduce brake fluid fill faults at the factory by 50%.
I began a continuous improvement project to increase worker productivity by creating a new device to more effectively measure the torque of tools used in the warehouse. This included laying out requirements, and designing and building a functioning prototype in German, that a German worker could use.
When I arrived in Germany, I did not speak any German. After learning as much as I could, and studying hard everyday, two months into my work term I was able to sit down with a worker who spoke only German and explain the new process to him, plus get his feedback.
The prototype was significantly more effective than the tool system that Siemens had in place. With the code and the printed circuit board that I had designed, by the time I was leaving back to Canada Siemens was ready to start creating a working version of the project.
The picture above shows the ‘brain’ (read: Neural Network) of a bird that I designed and how it chooses when to flap to complete an obstacle course.
The picture above shows the learning process. By randomly creating a bunch of different brains, having them complete the course, and then creating a new generation based off the birds that went the farthest we can ‘evolve’ a smarter bird to be better at the game.
The point of this project was to make a computer learn how to play a game, effectively. I was able to develop a neural network using C++ that evolved using a genetic algorithm. The ‘fittest’ birds will reproduce the most, and these are the ones that jump through the most obstacles. The brain works by feeding in several inputs (seen above) and the neural network produces an output which will tell the bird to flap or not. After some experimentation I found one layer of six nodes worked best on creating a bird that was quick to learn.
In a simple manner, neural networks are a way of approximating how neurons function in your brain. Each neuron adds the values of the neurons before it based on a given weight, The last neuron is the output neuron, indicating when the bird should flap. So in short, each neuron’s weight is how much the brain cares about that specific input, (so speed, distance to obstacle top, etc.) which allows the brain to make complex actions.
These weights are modified after all the birds have failed. The one that moved the farthest is the most likely to reproduce. This process follows the biological process in nature. Two bird brains are chosen, and they have a chance where their ‘chromosomes’, which are their associated weights in the network, are crossed over to form a child. This child also has a chance to have a slight mutation, which will slightly change a weight.
Spot Me is a project that I started working on in my spare time.
The goal of the project was to leverage machine learning to teach people how to exercise properly with correct form.
In the summer of 2017 I participated in Microsoft's OneWeek hackathon and brought together a team to make a demo of the project.
It was a lot of work (especially as I was the lead project manager and lead developer) but we ended up with a really awesome demo and website which you can see below!