# 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 :) Aug 2, 2018 at 14:46

## 1 Answer

If you are only interested in linear motion, instead of simplifying the Jacobian to a 3x3 matrix, you can express this contraint in the velocity componentet and have

$\dot{X} = \begin{bmatrix} \dot{x} \\ \dot{y} \\ \dot{z} \\ 0 \\ 0 \\ 0 \end{bmatrix}$

and still use the 6x6 Jacobian. This will result in joint velocities which to not alter the current orientation of the end-effector, only the position.

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

• This is definitely the way to go. If you want something to be zero, you can't just make it zero and assume you can remove it; you have to set the reference to zero and let the robot do its thing. Aug 2, 2018 at 14:41
• Then what equations am I suppose to use for the angular speeds for Rx, Ry, Rz? Aug 2, 2018 at 22:04