I saw this art drawing robot on youtube:


What do I need to learn in order to build something like that? What are some beginner oriented projects that could lead up to building something like this?

I'm an experienced programmer but I have very little hardware experience.


This project is a great starter project for a programmer trying to get into robotics because it doesn't require a lot of knowledge or experience. Though it does require a small investment.

The arm itself is one of the LynxMotion Arms though I don't remember precisely which. An SSC-32 was used to interface the arm with the controlling computer. The SSC-32 has a really simple protocol and appears as a serial device. As such if you have any experience working with serial devices then you already know how to communicate with this robot. Otherwise, and it probably goes without saying, you need to learn how to communicate with serial devices.

With that said the real challenge with such a project would be learning how to control the location of the end effector by setting the angles of the joints. This is known as the forward kinematics problem and requires a kinematic model of the arm. You will also need to learn how to determine what joint angles are required given a desired end effector position. This is known as the inverse kinematics problem. Dr. Hollerbach's notes are a good resource for learning how to solve these problems. Interestingly @abstractcement had the idea of using bilinear interpolation to bypass the need for solving these problems which worked out beautifully.

You could also look into creating a dynamical model to control the forces and torques in the system. However in this project the robot moved slowly enough that the dynamics were neglible and were ignored altogether.

The real challenges with a painting robot are in the automated planning, motion planning, and control. But I won't go into any of that here because I believe it's beyond the scope of what you are asking.


I was in your situation when I made that video, but DaemonMaker, my friend who studies Robotics, helped immensely.

I can't really add much beyond what DaemonMaker said because my focus is on stroke planning and automatic painting and most of my work runs on simulated brushes and simulated canvas.

I'm preparing my techniques for profit and publication and wouldn't disclose them on a public forum. However, there are other methods out there, to control the robot, such as those mentioned by Aaron Hertzmann in Algorithms for Rendering in Artistic Styles

We describe new algorithms and tools for generating paintings, illustrations, and animation on a computer. These algorithms are designed to produce visually appealing and expressive images that look hand-painted or hand-drawn. In many contexts, painting and illustration have many advantages over photorealistic computer graphics, in aspects such as aesthetics, expression, and computational requirements. We explore three general strategies for non-photorealistic rendering

This technology has been around for a long time and if you're mostly interested in the robot, you can use this instead of worrying about control.

Hertzmann's algorithm depends on comparisons between the canvas and the reference image. If you want to do it with a robot, you'll need a camera to photograph the painting before and after every brush stroke. You'll also probably need computer vision algorithms to negate lens distortion, align the canvas and reference images, and adjust color biases from the illumination.

It's good to see fresh interest in the subject.

  • $\begingroup$ Hey, Mark. Thanks for all of your tips. I know what it's like to moderate a community with standards, and have people disrespect them. It's a mostly thankless job, but you're doing a great job of plucking the trolls so a good community can thrive. $\endgroup$ Mar 7 '13 at 19:53
  • $\begingroup$ Stack exchange is fantastically civilised compared to many places on the net, as we try to encourage people to be helpful and friendly. So far I haven't come across anyone being disrespectful on robotics yet and I've only had to deal with 6 flags since I became a protem moderator two months ago. I would certainly never consider someone to be disrespectful when they simply because they were new to stack exchange. That's why I'm happy to take the time to help people learn. $\endgroup$
    – Mark Booth
    Mar 8 '13 at 9:58

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.