# Partial CoM, the velocity Jacobian and Control

New to robotic arms here.

I am currently working with a 6-DOF robotic arm shown below:

I have derived the FWD Kinematics and mapped the joint angles and the resulting end-effector positions. When I try to implement an inverse-Jacobian controller (see figure below) to move the arm, it doesn't move to the target position. (But it does move so....there's something).

My transformation matrices look good. I believe I am misunderstanding the Jacobian matrices.

I have derived six different partial CoM Jacobians, one for each series of revolute joints. Assuming 0 is the arm's base each number corresponds to a link of the arm:

Jacobian matrix 1: 0-1

Jacobian matrix 2: 0-1-2

Jacobian matrix 3: 0-1-2-3

Jacobian matrix 4: 0-1-2-3-4

Jacobian matrix 5: 0-1-2-3-4-5

Jacobian matrix 6: 0-1-2-3-4-5-6

So I have six [6x6] Jacobian matrices, one for each joints CoM. Misunderstanding, I took only the partial Jacobian related to the end effector joint (0-1-2-3-4-5-6) and set it into the controller in the inv_J block which I believe is my issue.

My question is, how do I combine all of the Jacobian matrices to get a single [6x6] jacobian matrix that will provide the correct Jacobian inverse for the controller?

• Welcome to Robotics Chris. It would be helpful if you could add a description of your robot arm & copies of your Jacobian matrices (joint & combined). This information should help with identifying where you are going wrong. Also, we are fortunate to have MathJax support enabled on Robotics, allowing you to easily create matrices as both inline and block element mathematical expressions in your question. For a quick tutorial, take a look at How can I format mathematical expressions here, using MathJax? Sep 27 '19 at 10:03
• Asked and answered by me (self-five). The issue was my understanding of the Jacobian matrix for coordinate system origins in the end effector frame instead of the CM of the arm or the CM in the end effector joint, converting its result to provide an accurate error in position with the matlab function (k) and the target associated with rotation about each axis in the inertial frame (wx,wy,wz). Fix just about everything and play with the gain matrix (K) and it converges at e = 0 all joints move to fixed positions. Good times. Oct 11 '19 at 15:57