Monday, July 06, 2009

Python + Wiimote + 30 tonnes of Steel

We're almost done with our Giant Robot Project. Realising we had only a few hours before the robots would be deconstructed and sent away, we decided... that we must add Wiimote control to our system! Yes, 15 tonne steel arms, giant claws and 200 bar of hydraulic pressure... all controlled with a flick of the wrist.

With loads of help from my partner in crime, Dan Adams and the Python cwiid module we were up and running in about 2 hours. We used tilt left and right to move the slew, and lean back and forward to control the main boom and the two smaller jibs.




Huge thanks to Transmin for letting us use their robots! I'm willing to bet that these robots are the largest Wiimote controlled devices on the planet.

Anyone care to dispute? :-)

11 comments:

Daniel said...

AHAHA, that's awesome!
That's one of the coolest things I've ever seen done with python.

Andy Hawkins said...

Awesome work guys. Nice to see big smiles, a true indication you love your jobs. Keep it up!

cerw said...

Nice work! Looks like lots of fun, I wish my projects would involve stuff like that :)

philhassey said...

nice work :)

Erich said...

Please set the other one up to also work with the wiimote, then have them arm-wrestle. I will send you $5 if you do!

Swapnil Talekar said...

That's really quite impressive. Since I have also been working on python and robots too, what I'm interested in is to know a bit more of what you'v done and what do you mean by "the whole thing is running on python??"

Simon Wittber said...

Hey Swapnil.

Basically, the entire control system ie the code which takes readings from sensors and adjusts solenoids values, occurs in Python. The communication code is written in C and uses realtime techniques to minimize latency. In the event that our code does not respond to an event quickly enough, a hardware device will trip and halt the system in an alarm state.

Swapnil Talekar said...

That sounds cool! I just wonder whether you had to go through the pain of porting python for some Hard Real time OS, which is what I have been doing. BTW, were you able to go anywhere with the idea of using python for Hard Real time which you mentioned in one of your previous posts ...some time back, I guess.

Simon Wittber said...

I found that hard real time with Python alone is simply not possible. That doesn't mean that building a hard real time system with Python is not possible. Of course this depends a lot on the particular application.

As long as we can get acceptably low latency, we can continue to use Python. The use of hardware to guarantee that things happen within a certain time frame (else an alarm is triggered) make the system deterministic, for our purposes.

Carl Trachte said...

Simon,
Thanks for blogging about this and for posting the pictures. Eminently, eminently cool!
Hope you get to work on something like this again soon (and blog about it and post pictures).

Eric Yung said...

awesome!!...

Popular Posts