# How many DOFs required to define a 3D pose

I understand that to be able to define point in 3D space, you need three degrees of freedom (DOFs). To additionally define an orientation in 3D space, you need 6 DOFs. This is intuitive to me when each of these DOFs defines the position or orientation along one axis or an orthogonal X-Y-Z system.

However, consider a robot arm such as this: http://www.robotnik.eu/robotics-arms/kinova-mico-arm/. This too has 6 DOFs, but rather than each DOF defining a position or orientation in an X-Y-Z system, it defines an angular rotation of one joint along the arm. If all the joints were arranged along a single axis, for example, then these 6 DOFs would in fact only define one angular rotation.

So, it is not true that each DOF independently defines a single position or orientation. However, in the case of this robot arm, it can reach most positions and orientations. I'm assuming this is because the geometry of the links between the joints make each DOF define an independent position or orientation, but that is a very vague concept to me and not as intuitive as simply having one DOF per position or orientation.

Can somebody offer some help in understanding these concepts?

A 6-DOF robotic arm may not always be able to manipulate an object in all the directions and orientations in 3-D space from a particular position and orientation. Such a pose(position + orientation) is called as a singular position of the robotic arm. Mathematically, the robotic arm attains a singularity when the determinant of its Jacobian goes to zero. For eg., consider your arm itself which is a 7-DOF mechanism. When the human arm is fully stretched, the arm can no more move in certain directions in 3D space, an obvious one being in the direction along the arm. Such a position is called as singular position. A much simpler case is to imagine a planar robotic arm with 2-DOF with both being revolute joints. When this is completely stretched, it can only manipulate objects along a circle. All the points on the circle are points of singularity. If the arm moves slightly inside the circle, then it regains its ability to move along all the direction.

As you say, it is not true that each joint of the robotic arm contributes to one of the 6DOFs in space. All the joint motions contribute together in manipulating the object in 3D space. These concepts are covered in any introductory book on robotics. To get an in-depth mathematical understanding, you may go through the topics on forward kinematics and inverse kinematics. Getting a mathematical understanding will certainly improve your intuition and further the imagination of the motion of such robotic arms.

• This is ultimately right. For a gantry robot, for example, it's really easy to imagine how it reaches three-DOF. For higher-DOF or rotational-joint robots, it's a challenge. You can always try to imagine how your arm would move given certain constraints (e.g. elbow locked, it becomes 6-DOF). But, like many things, doing the mathematical bookkeeping makes keeping track of more complicated systems feasible. – BenB Jan 28 '16 at 0:16

The explanation here is similar to the Cartesian vs Polar coordinate system.

I think that, for most people, the Cartesian coordinate system is the most intuitive. You move linearly some distance, then linearly some other distance, etc. The ending X/Y coordinates are related linearly to the distances you traveled initially.

In Polar coordinates, you turn some angle $\theta$, and then "walk" out some distance $r$ from the origin. In the end, the X/Y coordinates are not linear; the ending positions is given by $(r\cos{\theta},r\sin{\theta})$. You still have two degrees of freedom, but it's harder to inituitively know where the ending position is without practice, and each degree of freedom - $r$ and $\theta$ - can move both the x- and y-coordinate.

Similarly, you could have a robot with three linear actuators to navigate an end effector to an X/Y/Z spot in space. This is intuitive - the ending position is the distance traveled on each axis.

A robot like the one you mention is like polar coordinates for 3D space - this is referred to as a "spherical" coordinate system. In spherical coordinates you have two angles and a distance. Imagine pointing at the sun - you point SE or SW (azimuth angle) to the sun's projection on the horizon, then you point "up" (elevation angle) to where the sun's height is in the sky, then the sun is some distance $r$ away from you.

The robot you link doesn't have a means to telescope its arm, so instead of a true spherical coordinate system ($\theta,\phi,r$), you wind up with a purely angular coordinate system. Link distances still exist though, so it is possible to reach most coordinates within a sphere of radius $r_{\mbox{sphere}} = r_1 + r_2$, where $r_N$ is the length of each arm segment. It is most coordinates and not all coordinates because, if the arms are not the same length, then it cannot reach an interior sphere of radius $r_{\mbox{interior}} = \mbox{abs}(r_1 - r_2)$.

You are correct in that, if two axes are aligned, then one degree of freedom becomes essentially redundant and you get into a condition referred to as gimbal lock.

For an example, consider only two rotational degrees of freedom for a moment. Each has an arm of length $r_N$. Motion in the plane for the end effector is the sum of the motions of each arm link because the two arms are connected (read about vector addition for more information).

So, the first actuator moves some rotation $\theta_1$. This moves the end of the first arm link to a position of $(r_1 \cos{\theta_1}, r_1 \sin{\theta_1})$. The second actuator is located at the end of the first arm link. It rotates some other angle $\theta_2$, putting the end of the second link at a position of $((r_2 \cos{\theta_2}, r_2 \sin{\theta_2})$ RELATIVE TO the end of the first link. This means that the end effector is actually at:

$$x = r_1 \cos{\theta_1} + r_2 \cos{\theta_2} \\ y = r_1 \sin{\theta_1} + r_2 \sin{\theta_2} \\$$

In this way, you can vary $\theta_1$ and $\theta_2$ to add or subtract portions of $r_1$ and $r_2$ to achieve the desired $<x,y>$ positions. The third actuator sweeps that position around the y-axis to achieve the desired location in 3D space.

Chuck's mathematical explanation is correct, but to provide a parallel to help illustrate the point, think about 3D FDM printers.

Right now, there are two main types of FDM printers: standard 'X-Y-Z' printers and "Delta" printers (pictured): A Delta printer works by changing the angle of all three arms to achieve a desired position of the printing head. Mathematically, they are more complex machines to build and control than a 'typical' X-Y-Z printer. But their advantages in print volume (and sometimes quality:speed ratios) can outweigh this to the determined maker/engineer.

The basic principal between a delta printer and your arm is the roughly the same. The system knows it is dealing with a fixed number of levers, all at fixed lengths, and all interacting with one another. Knowing this information, it can manipulate these levers simultaneously to change the position of a single point.

In the case of the printer, if it raised one arm, the printer head will move towards it, and the other two will compensate to maintain the appropriate height (by lowering the necessary amount).

In the case of the arm, the 'bicep' will move to place the fulcrum of the 'forearm', forearm mores to place the 'wrist', and so on, and this is usually done in a single motion. Each of these joints is usually a single DoF in the system.

Chuck's explanation about the math for these joints is correct, but also incomplete - in that once things start moving, a lot more calculus becomes involved. You can determine a single position using the math he went over, but you couldn't really find the path between two points. Going over it would really too complex for here. If you would like to know more, I suggest picking up copies of "Engineering Mechanics Dynamics" by R.C. Hibbeler and "Control Systems Engineering" by Norman S. Nise. Tackle Hibbeler first, that will set you with a very solid understanding of mechanical dynamics. Nise is a much 'thicker' read, but control systems isn't a friendly topic to learn, and Nise does a decent job of breaking it down. Someone else here may have a better suggestion for a good control systems and feedback text to read.