Wednesday, January 28, 2009

Giant, Python Powered Robots.

These are the robots I've been working on for the last 12 months. They each weigh about 11 tonnes and have a 17 meter reach.

The control system is written in Python, with small sections of C which run in hard-real-time to guarantee safety. The robots work cooperatively, semi-autonomously, with drive-by-wire style assistance when under manual control.

Update: added a close-up of the business end. This claw weighs just over 1 tonne, and gets hurled around at up to 3.5 meters per second.

40 comments:

Alec Thomas said...

That is freakin' awesome! :)

Dalius said...

Amazing. What's purpose of this robot?

Simon Wittber said...

I'm not permitted to say much about what they are doing, but I will say that they will be working in a confined space, dodging obstacles and each other.

Anonymous said...

That is awesome, I am attempting to learn python and this is excellent motivation.

Mehmet Ali said...

They look like an other part of a robot. It is nice to see python in robots :)

Greg said...

Snakes in a robot!

Florian said...

I for one welcome our new awesome python robot overlords :)

Anonymous said...

Why didn't you just use PHP?

shevegen said...

Could you post a few parts of the python code that is used? No need for anything "dramatic", just to get a general feel of how python in the industry feels.

Anonymous said...

cool :). Have you imported soul?


http://xkcd.com/413/

Anonymous said...

Minor cautionary point (from a lawyer, but this isn't a substitute for legal advice): You generally don't want to say things like "to guarantee safety"; better instead to say, for example, "to promote safety."

rgz said...

Confirmed, I talked to the Ministry of Awesome and your robots have been registered in their database.

philhassey said...

Awesome!

Nick said...

Are the robots for a real life Dr Evil? Do you run unit tests against them? How much do they cost to build, I would love one!

Igor said...

Seek and destroy!!!

Anonymous said...

Soon to be featured in a sequel of The Incredibles, where the evil Anna Conda unleashes upon the world her dual threat of giant robotic snakes and spiders (the natural variety already ranking among the more malignant of humankind's fears).

Incrediboy makes a cameo as the guy tasked with oiling the robot's joints.

Anonymous said...

Traceback (most recent call last):
File "stdin", line 666, in weapons:
TypeError: 100 humans killed

Game_Ender said...

Looks like a pair robots for a semi-autonomous salvage or scrap yard. I have done something similar where the inner loops are done in C++ and the python does the outer planning and decision making loops.

We used a real time linux OS (Gentoo w/rt kernel patches). What RTOS did you use?

I have found I need a large body of tests to instill confidence in any autonomous system, especially ones where typos are only caught at runtime. What kind of testing setup do you have for the python code?

One final question, what kind of sending system do you used to avoid obstacles in the work area?

Shameless link to project mentioned above: R@M Tortuga II AUV

Anonymous said...
This comment has been removed by a blog administrator.
Ceyhun Alye┼čil said...

omg scary :D

Anonymous said...

Nice, but what happened your car?

Simon Wittber said...

@Game Ender

We use Ubuntu with a custom Xenomai patched kernel. There is some unit testing, but most of the testing happens formally, on paper. I'll talk more about collision detection in a later post.

Craig said...

You don't see some amateur crap like Ruby doing stuff like this, do you?

SEMI-AUTONOMOUSLY? Good work you just created SkyNet's first behemoth terminators.

Craig said...

These could make the most awesome Claw Game ever.

_Mark_ said...

Nice. Do you do any simulator-based (or mock object, even) pre-testing, or are you always working on the "live" hardware?

(I'd also ask if you were looking for more python developers, but wrong country :-)

ps. I like the use of single-color filtering to make the device stand out...

Simon Wittber said...

@_Mark_

I coded a complete 3D simulation which we used for development and testing.

We then moved to 2 meter robots with servo control (which didn't work too well), then moved up to a 9 meter robot with hydraulic actuators.

Finally, we test on the 17 meter robots... very carefully! :-)

Anonymous said...

If these are in a scrapyard or auto recycling center moving crushed cars around, I really think the robots would benefit from having the Tetris theme song played over loudspeakers.

Maybe you could use that soundtrack instead of sirens. "Oh, the Tetris music! The robots must be moving stuff."

Montoya said...

Is anyone surprised that Skynet will be written in Python? It's almost biblical.

sts said...

from future import robots
robots.crush_humans()
robots.take_over_world()

Wyatt said...

A colleague noticed that the photos are black and white with some color highlighting. He was wondering because of that if these bots are legit. I told him I'm pretty sure they are, but now I'm curious about the photos, too.

Simon Wittber said...

@Wyatt

I used a color setting on my camera, to isolate and use the orange color of the paint on the robots. This is why there is some orange color on the drum in the foreground, and some slight coloring on the 'danger' tape.

Paul Holt said...

"I once caught a fish... THIS BIG!"

http://www.imdb.com/title/tt0106673/

Paul Holt said...

Seriously though, I once got to work on some python control code on one of the old robot part welders on the 777 production line, but that was just selecting and feeding control commands in to the robot. Nothing like this awesome though!

kkirsanov said...

My Python-powered robot: http://www.1tv.ru/newsvideo/136896 (on 25-30 sec)

Not giant, but useful. :)

mmarshall said...

Awesome. And I don't use that word lightly.

MWM

Anonymous said...

Setting up a webcam and letting us control them using a webapp could be nice.

Why are you shaking your head?

RadicalEd said...

Congratulations, I didn't know Python could do that kind of work.

AWESOME!!!

Hot Fuzz said...

thats so cool

Winnu Ayi said...

why didn't you write all software in C? why python had been used to control the robot?

i'm still confused when i have to use C or Python to solve the problem

Amanda Crowe said...

Well done, its so big. So I just guess the value? I need to look into python for robotics,so i can build a robot that makes me sandwiches.:)

Popular Posts