Here is posted another project related to a SCARA Robot that is going to draw whatever you command it (with limitations).
The basic robot’s structure of a SCARA type robot is based on a 2 dof planar robot (with height) and with a prismatic joint on the same axis of the end efector. The end efector of this robot is going to be a pen or a pencil in order to let it draw on a paper. Here is displayed the robot’s assembly:
The picture below shows the view from above of the robot. And now there are already installed all the endstop sensor needed in order to reset motor encoders when the sensors are reached (the same idea of the previous robot projects):
The endstop sensor for the end efector (EF) is placed when the prismatic joint has reached the maximum position:
And when it’s time to define the home position of the robot, just think of which is the position that the robot structure (and the joints) suffer less.
Now that all the structure is assembled and all the wiring done, it is necessary to create a coordinate system as a reference for the robot to know every position that we send to it as a setpoint.
It can be started by the definition of a World’s origin (displayed in blue), and it can be located where you want. The origin of the other coordinate system is placed on the base of the SCARA robot, and it’s called Robot’s origin (displayed in Green). There are several ways to referenciate the Robot’s position:
A) . Robot’s Origin: All the position coordinates starts on the base of the robot. The inverse kinematics of the robot gives the position of the End Efector (EF). It is also located through the vector P_re. It works fine when there’s only one element/robot working within the space.
B). World’s Origin: All starts on the world’s origin point that you have chosen. It will be needed the relation that exists between the World’s origin and the Robot’s origin; this relation is solved by the vector P_wr, and then (after computing the inverse kinematics of the robot, that give the EF position), we find the vector P_re, and finally we are able to referenciate the EF position within the World’s coordinate system. This is the best solution if there are other elements (obstacles, other robots working) within the robot’s workcell.
Once the coordinate systems are settled, there is another important thing to consider. Usually, we want the robot to reach a single position, as a setpoint. But, when we want the robot to draw something (letters for instance or whatever), the thing gets a little bit more complicated beacause there are a set of points (positions) for every letter.
Also, the position where the letters are going to be drawn, need to be referenciate in World’s coordinate system. And once the letter’s position are defined, it is necessary to split the letter in several points in order to perform the drawing as accurate as possible. The more points per letter the more computing time.
Here is a picture where is explained how the set of points per letter are stored as data, and then are read in order to perform the Robot’s point-to-point trajectory: