Why?

Ramblings in Rapid-Prototyping, Physical Computing and random creativity, featuring Arduino, Raspberry Pi and related technologies. Most of these projects are done for fun, on short sprints and near-zero budget, and they frequently share a remarkable lack of refinement.

Wednesday, April 22, 2015

QWOP bot

While making the robot arm, an idea crossed my mind. The more I learned about robotics, the clearer it became that autonomous walking systems are still a few years away from being a consumer reality. It is an extremely complex undertaking to a robot that is able to navigate uneven terrain, make sense of the surface, avoid obstacles and maintain balance, among other things.

So it crossed my mind: If humans have been able to use "analog" machinery to get around for a while, but only now we are able to make very timid autonomous cars or aircraft, why haven't we tried to make manually controlled walking robots, able to navigate terrain that wheeled vehicles cannot? In particular, I thought about a wheelchair case, in which a set of robotic legs could be handy. In theory, a skilled used could climb stairs or go over obstructions with the legs, to then resume the more efficient wheeled motion. In part I was inspired by playing QWOP, although good judgement suggested to avoid even trying to manually balance on two legs.

So I went on to make a four legged (a.k.a.quadruped) robot with some spare balsa wood from the robot arm project, and the cheapest servos I could get on Ebay.



Robot in Seating Position and Video

A powerful lesson awaited me: counterfeit of brands is widespread among some cheap items available on Ebay. Initially I ordered two TowerPro SG90 9 gram microservos, to implement a single leg model.  I developed a simple Python program and was able to control the two individual joints with a single finger each. That encouraged me to order more servos to complete four legs, but vendors offered servos as single units or in packs of 5 or 10. Because I needed 6 more, I ordered 5 from one vendor and a single more from another vendor. Supposedly the 8 servos are Towerpro SG90, but all three orders were noticeably different (all with a brand sticker though) in performance, quality, attachments, etc.

Note the stickers are different. Which one is counterfeit? Probably both.

Anyway, the servos moved, some nicely, others not so much, but moved, so I carried on making the robot. After sorting some electrical issues, I was able to make the thing walk, albeit very slowly, just by using 16 letters on the keyboard, two for each finger. Specifically, a Python script was used to interface with the Arduino over a Serial link. Learning to move the robot felt, as I had anticipated, like learning how to play a musical instrument. With eight simultaneous joints being controlled, the learning curve is quite slow, like learning how to play piano. But I would not be surprised that, with enough training, some people could make these things not walk but run.

Robot standing up.

Eventually I made the robot wireless, controlled via Bluetooth, which made playing with it much more fun.



The "Arduino" and the Bluetooth module at the back.

No comments:

Post a Comment