## Basic structure of robotic arms

A robotic arm is a robot that moves like a human arm and can perform tasks like a human hand. The human arm has multiple “joints” such as “shoulders”, “elbows”, and “wrists”, and by rotating the joints, the hand at the end of the arm can be delivered to various locations (coordinates). A robotic arm also usually has multiple joints, and the joints move in a rotating motion. The part of the rod-like structure between the joints is called the “link”. The part corresponding to the hand is called the “end-effector”. In other words, a robot arm is composed of “joints”, “links”, and “end-effectors”. In addition, a robot arm is also called a “manipulator” in the sense that it is a device that performs tasks and operations.

## Degrees of freedom of robotic arms

There are two major patterns of rotational motion of a single joint: in a three-dimensional space with X, Y, and Z axes, suppose there is a joint at the origin and a rod-like link in the X-axis direction. The first pattern is that the link rotates around the Z-axis, which is called “one axis” because it rotates along one axis. In this case, the link can move in the x-y plane. However, since the link has a fixed length, the end-effector can only move on a circle with the radius of the link’s length, not freely on the x-y plane. The coordinates on the circle are determined by a single variable called “angle”. Since the coordinates of the end-effector are determined by one variable, the degree of freedom of the joint in one axis is 1.

The second pattern of rotational motion is where a single joint can rotate around the Y axis in addition to the Z axis. In this case, the end-effector can move in the X-Y-Z 3D space. However, since the length of the link is still constant, the range of movement is limited to a sphere of constant radius. The coordinates on the sphere can be represented by two angles, so the degrees of freedom for a two-axis joint is 2.

In order to move freely in X-Y-Z 3D space, a mechanism with 3 degrees of freedom is required. This can be achieved either by a robot arm with three joints in one axis, or by a robot arm with one joint in one axis and two joints in two axes. Thus, the degrees of freedom of a robot arm are expressed in units of “axes”, since the degrees of freedom correspond to the total number of axes of the joints. In other words, 3 degrees of freedom is called “3 axes” and 5 degrees of freedom is called “5 axes”. In order to freely move the position of the end-effector in the 3D space, 3 axes are required, and to freely determine the angle of the end-effector, another 3 axes are required. (In some cases, even 6 axes may not be enough because the structure of the robot arm itself may get in the way.

## Overview of robotic arm applications

A robotic arm can be used for various purposes by changing the end-effector at the end. The basic idea behind the creation of a robotic arm is to make it serve as a substitute for the human hand. Since humans have always used their hands to perform various kinds of tasks, it is only natural that robotic arms would be used for many applications.

A typical example of the use of a robotic arm would be a manufacturing line in a factory. They are used everywhere, from the manufacture of large products such as automobiles to the manufacture of small electronic devices. In automobile production lines, end-effectors with a “welding” function are used to connect metal parts formed by press work. Another typical application of robot arms is painting, which is used to color the body of a car made by joining parts together. Other important functions include cutting, polishing, and laser processing. Automating manufacturing lines with robot arms and other equipment like this is called “Factory Automaton (FA).

Not limited to automobiles, there are also robot arms that have the function of “transporting” parts used in assembly to the production line. For example, a robot arm can suck an automobile windshield and carry it by attaching it to an end-effector, or it can fit an object such as a semiconductor wafer (a disk-shaped block of silicon) into a frame that matches its shape. There are also robot arms for picking up and sorting parts and products, and packing them into boxes. There is a wide variety of ways to move them.

Other applications include tightening screws, labeling bottles and other items, and inserting connectors into electronic devices. It is also used in inspection applications, such as moving a camera or other sensor to inspect the appearance of parts or products, or tapping a touch panel to inspect its operation. They are also used for analysis and experiments in the fields of biology, chemistry, medicine, and pharmaceuticals, as well as for work in outer space on space stations.

Since around 2020, robot arms called “collaborative robots” have gradually come into use. Until then, robot arms have operated on the premise that they work in spaces that are inaccessible to humans. Collaborative robots, on the other hand, are designed to work together in extremely close quarters without any fence between the robot and the human. For example, a collaborative robot can fill a container with food prepared by a human (such as fried food).

## How to move joints of robotic arms

A motor, a hydraulic actuator, and a pneumatic actuator are used to execute the rotational motion of the joints of a robot arm. Since the motor is an actuator device that generates rotational force, it is easy to imagine that the axis of the motor is directly at the center of the joint. However, there are various types of motors, such as “stepping motors,” “brush motors,” and “brushless motors. A stepping motor is a motor whose angle can be specified externally, making it easier to control the robot arm. Brush motors and brushless motors, on the other hand, are said to be more power efficient than stepping motors, and have the advantage of being able to perform the same task with less power consumption. On the other hand, since the angle cannot be specified directly, a mechanism to control the angle is required. Controlling parameters such as angle is called a “servo mechanism,” and a motor equipped with a servo mechanism is called a “servomotor”.

In some cases, the motor alone cannot generate enough force to support the weight of the robot arm itself, and thus the robot arm cannot move as intended, or the end-effector cannot perform the necessary work. In such cases, a component called a “speed reducer” is inserted between the axis of the motor and the joint of the robot arm. A speed reducer is a device that reduces the speed of rotational motion. Instead of reducing the speed, it can increase the rotational force (torque). A “brake” may also be needed to hold the robot arm stationary when no power is applied.

Hydraulic and pneumatic actuators are devices that use hydraulic and pneumatic forces, respectively, to generate force for linear motion. They are used by connecting a linear end point to the middle of two links that are connected to the joint to be rotated. As long as the end points are free to move, the linear motion of the actuator can be converted into rotational motion of the joint. Although it may seem inconvenient compared to motors, which directly generate rotational motion, hydraulic and pneumatic actuators have been useful for a long time because they can generate a larger force more easily than motors.

## Overview of control of robotic arm joints

A robotic arm is required to carry an end-effector at its tip to a predetermined location. When designing a robotic arm, the length of the links and the range of motion of the joints must be determined so that it can reach the specified location. For example, if you want the end-effector to move freely within a sphere with a radius of 2m from the base of the robot arm, the total length of the links must be at least 2m, and the degree of freedom of the joints must be at least 3 axes. (If you only want to move the end-effector on a sphere, you can use 2 or more axes.) With the link and joint structure determined in this way, calculate the angles of each joint to deliver the end-effector to the target position coordinates \((x, y, z)\). Rotating the joints based on this calculation process and results is called “controlling the joints of the robot arm.

For simplicity, we will consider the control image in a two-dimensional x-y plane. Assuming a structure with two joints and two links, the length of the links are \(L_1\) and \(L_2\), respectively, and the angles of the joints are \(\theta_1\) and \(\theta_2\). The coordinates of the target \((x, y)\) are then determined as follows.

$$x = L_1cos\theta_1 + L_2cos(\theta_1+\theta_2)$$

$$y = L_1sin\theta_1 + L_2sin(\theta_1+\theta_2)$$

This is a very simple formula as long as you remember how to use the trigonometric functions. However, this formula only expresses that the end-effector will be at \((x, y)\) when the joint angles are set to \(\theta_1\) and \(\theta_2\). The information we want is how \(\theta_1\) and \(\theta_2\) should be set to bring the end effector to \((x, y)\). In other words, we need to find \(\theta_1\) and \(\theta_2\) from the above series of equations. Calculating the angles of the joints in this way is the basic content of the robot arm control. The result is an expression using the inverse function of \(cos\) and the inverse function of \(tan\), \(arctan\), which is rather complicated and will be omitted here. It will be described on a separate page.

The problem here is that depending on the position of \((x, y)\), the combination cannot be uniquely determined for \(\theta_1\) and \(\theta_2\). For example, let’s say we want to have \((x, y) = (1, 1)\) with \(L_1 = 1, L_2 =1\). This is not uniquely satisfied by \((\theta_1, \theta_2) = (0^\circ, 90^\circ)\) or \((\theta_1, \theta_2) = (90^\circ, 0^\circ)\). In simultaneous equations involving trigonometric functions, this is often the case. In the control of the robot arm, we need an algorithm to solve this and decide on one of them.

Furthermore, in order to be able to flexibly respond to work objects of various shapes and sizes, a robot arm may have one more joint in the two-dimensional \((x, y)\) plane to have three axes, which is called a redundant manipulator. Assuming that the length of the third link is \(L_3\) and the angle of the joint is \(\theta_3\), the relationship is as follows.

$$x = L_1cos\theta_1 + L_2cos(\theta_1+\theta_2) + L_3cos(\theta_1+\theta_2+\theta_3)$$

$$y = L_1sin\theta_1 + L_2sin(\theta_1+\theta_2)+ L_3sin(\theta_1+\theta_2+\theta_3)$$

The final information we want in the control of the robot arm is \(\theta_1\), \(\theta_2\), and \(\theta_3\). To solve a simultaneous equation, we need as many equations as the number of variables we want to find. However, there are only two equations above. As a result, there are countless combinations of \(\theta_1\), \(\theta_2\), and \(\theta_3\) that satisfy this equation, making it impossible to determine the angle of the joint using the normal calculation process. In the control of a robotic arm, calculations are required to narrow down to one from multiple or countless solutions (angle combinations), which is quite complicated. This calculation alone is a major field and could be the subject of a whole textbook. The above is the general idea of robot arm control. (It is enough if you understand that it is complex.) (It is enough if you understand that it is complicated.) I will describe the details in another page.