# Draw circle with 4-axis robotic arm

I am new in robotics. I am playing with a 4 axis robotic arm called uArm and I was wondering how to draw a circle with it.

For this I mean the math of describing a circle in task space for the robot joints to achieve with the implementation of the algorithm in code.

What will be the best approach? Any sources where to research? I tried to research around the web but I did not find anything useful.

• There are many four axis robotic arms. Can you describe the arm kinematics? Also, it is impossible to tell what exactly you are struggling with. Is it the math of describing a circle in task space for the robot joints to achieve? The implementation of your algorithm in code? The gripping of a pen? Please provide the necessary details. Thanks. – SteveO Jan 29 '17 at 17:28
• Hi @SteveO, I've edited the post! – ldg Jan 29 '17 at 18:06

Your question is still "I need help with everything about this," so I'll provide a pretty generic response that should get you started. As you dive into the details you may consider posting questions about specific areas that remain challenges to you.

Overall, you need to accomplish the following steps:

• define the circle you are trying to draw in global coordinates (the O system in the document you linked to)

• break the circle down into a series of target points that you want the pen to move between. If you divide the circle into 10 points, you will have a poor approximation to a circle, but it will get you started. If you break it into 1,000 points, you will follow the circle fairly closely. You will need to experiment to see what accuracy you want to achieve (you could define this mathematically but that seems beyond the scope of what you are trying to do)

• for each target point, define the robot joint angles that will achieve the target position. This is called Inverse Kinematics.

• program the robot to cycle between the target points

Defining the circle in the XY plane is straightforward: $$z = C$$ $$(x - x_0)^2 + (y - y_0)^2 = r^2$$

where C is the height of the circle above the ground, x and y are the variables of interest, the point $(x_0, y_0, C)$ represents the coordinates of the center of the circle, and $r$ is the circle's radius. In your case, I believe $z$ is a constant due to the kinematics of the arm and its inability to rotate the pen through any angle other than vertical.

The inverse kinematics will be a bit challenging for a newbie. From the mechanics of that arm, however, it appears the two parallel 4-bar mechanisms will keep the end effector perpendicular to the ground. That simplifies your task a bit. Basically you need to find, for each (x, y, z) target position, what joint angles will achieve this position. There are many papers and sites that describe the inverse kinematics of an articulated arm manipulator - I'd start with these if I were you, and post specific questions when you get stuck. It is too broad to describe in this general answer.

Once you have the inverse kinematics, you simply program the arm to cycle from one pose to the next.

When you post follow-up questions, if necessary, please describe in detail the steps you've taken that have resulted in you getting stuck.

• Thank you for your guide @SteveO, I put this work on the side for this week, I start back next week. I will probably have some more specific questions to do! – ldg Feb 3 '17 at 15:39