Inspiration

We started off very passionate about an idea for a robot that used IR sensors to map out its surrounding area, but after finding out that we didn't have access to IR sensors, we opted to keep using the robot and come up with another idea. Following the graph of a mathematical function is in some ways a lot harder than our original project and we still got very familiar with the robot kit.

What it does

There are two components to the project -- A python script that takes a mathematical function and converts it to closely spaced points, and an arduino script that uses a fairly basic "turn and drive" algorithm to go from point to point. The closer we make the points, the more continuous the robot's movement is.

How we built it

We started off by assembling the robot kit that we checked out. After a lot of trial and error (and some very cheap encoders) we finally confirmed that the hardware was working as well as it was going to using test scripts. We then gradually improved our program to go from rotating a target amount, to driving a certain distance, to going from point to point.

Challenges we ran into

We faced a couple of tough challenges throughout the 24 hours. One was that the robot is on 2 wheels, and can't strafe left and right, so moving from point to point isn't as simple as it at first seemed. After trying for a while to use the pivoting of the robot to our advantage, we decided to take a simpler approach where we place the marker on the axis of rotation so there is minimal translation when rotating, and rotate before every movement.

We also had trouble consistently controlling the robot through the Raspberry Pi over wifi, so we had to go back and forth between using an ethernet tether and connecting through the Pi.

Finally, the robot is very light. The motor's don't have a substantial amount of torque and over time, slight errors balloon into huge ones. One of the things that helped control this was tracking the robot's angle, but tracking the x and y position in real time would have been better. If we were to improve one thing next time, it would be implementing that using the encoders -- the main hurtle there was accurately predicting the marker's position based on rotations caused by the individual left and right motors.

Accomplishments that we're proud of

We're proud of how much we adapted to our many challenges, starting with abandoning our idea that we have been so excited for leading up to the hackathon.

What we learned

We learned everything from unix commands to sending information over wifi with the python socket library to debugging a complicated arduino project.

What's next for MontyPython

Sadly, MontyPython is soon to be dismantled and returned to the hardware desk, but we are still looking forward to implementing our original IR sensor robot in the future.