Picture of Modifying an iRobot Create to Paint
This is a robotics project that could probably be completed by someone who has no experience with robots at all. I say this because, before I started, I had no experience with robots. Or writing programs. In fact, I knew how to paint and that was pretty much it.

I had originally intended to write programs so that the robot could do specific paintings. I quickly realized that doing that is tedious, boring, and really doesn't take advantage of many of the robot's great features. So instead of that, this instructable will teach you how to:

- modify the robot so that it can paint with brushes, rollers, and a variety of other apparatuses
- take advantage of the basic pre-set programs to do some painting
- use Active TCL to design a painting using LOGO
- modify the sample programs that came with the module to do some paintings using the sensors on the robot.

This project assumes that you can follow the directions that came with your Create to set up the Module, connect it to a computer, etc. I'm pretty sure most people will be able to handle that without (much) difficulty, so I haven't duplicated those directions here.

Conceptual Basis (or, why I did what I did from the perspective of an artist)

After playing with the robot for a bit I realized that I needed to decide if the robot was an artist or a glorified paintbrush. The logo programing treats it more like a paintbrush, whereas the sensor based programming treats it more as it's own artist. I like it as an artist best. In reality, we quickly became art team-mates. It painted faster and more decisively than I would, but without me to choose paint colors, fill it and push go it was a basically really heavy frisbee. No artist can possibly work without an awareness of the world around them (having senses at all affects your art) so to use the robot without using the sensors seemed ridiculous. I provided it with the things it needed to be aware of, and it's response to these things created the paintings.

I also quickly realized that it's important to forget about how a human completes a task and consider how a robot would complete it most easily. With the exception of spray painting, the majority of painting is most effectively done on a horizontal surface, in spite of the cliche of the artist at their easel. The easel is there for the ease of view for the artist - horizontal art has a foreshortened effect. That's why your printer prints horizontally - that's the best way to apply ink without risk of running or bleeding. That's why I decided to work with the naturally horizontal nature of the robot, instead of trying to build on something that could paint on walls as is so common among 'painting robots.'

I put a lot of thought to the difference between painting an printing. When I paint I don't worry about working left to right, or top to bottom. I put paint where it should be, working in curves, straight lines or whatever else is appropriate. As I'm not trying to just build a printer, I thought that the robot should paint in lines the way I would, rather than work across the painting like a roving printer.

This presented certain challenges, especially with the obvious risk that the robot would roll over wet paint. As it turned out, paint doesn't really seem to accumulate on the wheels much, but they do add a nice mark to the painting. A little builds up between the treads of the tires, but that can easily be peeled off when it's dry. In a way, it's no different than an artist using their fingers to smudge pastels - the robot uses it's 'appendages' to affect the way paint is applied to the surface.
laxap6 years ago
Cool! Modding an irobot is probably the only sensible thing to do with...
Grey_Wolfe6 years ago
I imagine the painting gets much more "abstract" if you get thirsty. lol
Grey_Wolfe6 years ago
I like the second picture here on step 3. Much less 'cluttered' than the others. Excellent use of tech, bud.
zachninme7 years ago
Can you take a picture of the bottom of the robot? I'm curious :P
technoplastique (author)  zachninme7 years ago
I can, but you'll be disappointed. There is a very small amount of paint on it, the robot seems to be made of plastic with a glossy, paint resistant finish. The little bit of paint that does get on it just pops off as soon as it's dry. I was almost hoping that there would be some awesome looking paint build up, but no dice ;-) Did I misunderstand - is there another reason to see the bottom?
No, that's it... oh well :P
rikkdbomb7 years ago
that looks cool and all, but theres no real practical purpose by itself. Maybe if you were going to use that as a backdrop it would be awesome but this seems impossible to paint anything that resembles a shape with though. Maybe you were on to something with LOGO but that all flew right over my head. If you could program it to draw coherently, now that would be cool.
technoplastique (author)  rikkdbomb7 years ago
I skimmed over the LOGO stuff because I thought it was fairly simple, but that's probably because of how my brain works. Not only is it possible to paint specific shapes, it's really pretty easy. It's kind of like those really early role playing computer games - move forward 10, turn right, move forward 5, etc. The biggest hangup with it is that the serial cable needs to be connected, so it limits how much distance you can cover if you're not willing to move a computer around with it. That's probably something that can be worked out, but I don't have it completely worked out yet. The robot itself is designed with a lot of sensors, so I focused a lot of my energy on taking advantage of what those can do. I'm working on doing some really nice, finished representational paintings, but I wanted to get as many variations and options covered in the instructable as possible. In reality, painting with robots is something I could probably spend years and years working on and still have new things to try.
Ack, sorry. My other comment is in response to having to follow the robot around with a computer.
technoplastique (author)  KrepNatas7 years ago
It is just the one method that makes you do that, but thanks for the links anyway - iRobot didn't have a Bluetooth adapter when I started working on this, and I'm thinking about it now anyway because I'd kind of like to play with that...
KrepNatas7 years ago
There are a couple of Bluetooth options for the Create. iRobot has one, http://store.irobot.com/product/index.jsp?productId=2649971 another one is made by a third party, http://www.acroname.com/robotics/parts/I19-10542.html

Both of them plug into the same port as the command module so you can't use the command module and Bluetooth. But if you're controlling the Create from your computer you don't need the command module, anyway.

The biggest downside is that you're still limited by the serial speed of the Create, but there's also BT information that gets sent around, so it's slightly slower than a direct serial interface.
Honus7 years ago
Love it! It takes the idea of "action painting" to a whole new level.
technoplastique (author)  Honus7 years ago
Thanks! You can actually set it to move shockingly fast if you want to. If I had a large, almost indestructable space I'd probably give it a try working really fast. The videos show it moving at about half of the speed the programs are originally set at.
sabbott7 years ago
Amazing! I feel encouraged by this that I could actually do something with one of these robot platforms. It felt beyond my ability, but your comments are very encouraging. I love that you want it to paint more like a person would do -- it's interesting to even think this through.
technoplastique (author)  sabbott7 years ago
Yay! That's totally what I wanted to do - it seems like this sort of thing is so far out of an 'ordinary person's' grasp, but I had no idea what I was doing and dived in. I would definitely recommend giving it a try!
Patrik7 years ago
As far as "providing it with the things it needed to be aware of"... a cheapo color sensor would make for an excellent addition! Could just be three light sensors with RGB filters, or a even a dollar-store digital camera.

Then play around with some simple routines to turn the RGB values it sees into navigation commands (e.g. turn right if you see red, left if you see green, and turn around if you see blue). Heck, you could even draw on the same canvas as your robot, and it would react to what you've drawn and "embellish" based on that - now there's a partnership! :)

(Oh, and you could of course also program it to avoid driving outside the boundaries of the painting - put brightly colored paper around the painting, and program it to avoid that color.)
technoplastique (author)  Patrik7 years ago
Those are some ridiculously great ideas - overall I'm pretty overwhelmed by all the things I can do with it, so I started simple. I'm really far from being done working on it. Thanks!
canida7 years ago
I'd love to see some video of the robot in action! Any chance of adding one?
technoplastique (author)  canida7 years ago
Yep - I'll be adding one ASAP! I just wanted to make sure I got it published ;-)