I know they haven't released the participants yet, but I'm about to go on vacation for 2 weeks where I won't have any Internet, so figured I'd get some work started to get ahead in the hopes that I'm selected for this. And who knows, maybe this is the kick in the pants I need to do the project even if I don't get picked, since it involves some control theory I've been meaning to learn.
So what is my project? It's a two wheeled self balancing robot. Think of a chassis with two wheels that keeps itself upright by monitoring some kind of sensor that lets it know when it's falling. All told, there are a few goals that build on each other:
1. Balance on two wheels
2. Balance on two wheels and hold position
3. Balance on two wheels and move as directed by a control panel.
The physics of this are that I'm effectively building an inverted pendulum (image below courtesy of Wikipedia):
The idea is you move the lower mass (M) underneath the upper mass (m), rather than trying to torque the arm into position. Sounds fun, right?
To start I'm going to use PID control which I'm hoping is enough to keep upright. If I want to keep position, I'm now into managing multiple states, so I think I'll need to use a Linear Quadratic Regulator (LQR). But let's not get ahead of ourselves here.
The motors I have are these guys:
I'm hoping the backlash and friction in them can be overcome, but that's why we play around.
I'll start with a 3d model of a chassis that will hold everything together:
I don't have ready access to a 3d printer so I'll have to get a friend to print this for me and can drill any mounting holes later.
I also have a MPU-6050 based board which is a 6 axis position sensor - it can measure acceleration and position in 3 axis and talk back to the Arduino over I2C.
So, element14, if you pick me, thanks! Just know I won't get to any emails until mid-month.