# Finding Joint speeds for each joint of a 6DOF arm (UR10) using the Inverse Jacobian

Background: I have access to a UR-10, 6DOF robotic arm through my school (I'm very new to robotics). I know the desired set of linear speeds that I want in the x,y, z-direction in terms of the end effector ([x,y,z,rx =0, ry,=0, rz =0]). Using an analog controller I receive linear speeds in the x,y, z-direction ranging from -.1 -.1m/s.

I found the forward kinematics for the UR-10 online and begin to derive the Jacobian Matrix. (If anyone has the Jacobian matrix for a UR-10 that would be awesome.) Since I'm only interested in the linear motion, where rx,ry,rz =0 I thought I could simplify my Jacobian to a 3x3 matrix.

I realized that by doing so I would be unable able to solve for all the joints speeds 1-6.

$J^{-1} \dot{X} = \dot{Q}$

where $J^{-1}$ is the inverse Jacobian, $\dot{X}$ is the Cartesian velocity vector and $\dot{Q}$ is the joint velocity vector. With the above simplification [3x3][3x1] = [3x1] joint velocity vector.

However, I need a 6x1, so I have the speed for each joint.

What am I doing wrong?

What are the other 3 equations I would need to define a full 6x6 Jacobian and solve for the appropriate joint speeds?

EDIT: I foresee a problem that since my linear speeds change incrementally there may be singularities when calculating my Inverse Jacobian how could I work around that?

• Passing comment on the numbers here, since your username is NoviceCoder - use leading zeros whenever you have a decimal number, try to avoid using the "-" symbol unless you actually mean minus, and then I personally also try to use the parenthesis to offset a negative number. You wrote -.1 -.1m/s, which I would personally rewrite as (-0.1) to 0.1 m/s. Sometimes negative signs and decimals can get lost in a wall of text/code. Again, passing advice - take with a grain of salt :) – Chuck Aug 2 '18 at 14:46

$\dot{X} = \begin{bmatrix} \dot{x} \\ \dot{y} \\ \dot{z} \\ 0 \\ 0 \\ 0 \end{bmatrix}$
$\dot{Q} = J^{-1}\dot{X}$