New to robotic arms here.

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

enter image description here

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).

enter image description here

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?

  • $\begingroup$ 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? $\endgroup$ – Mark Booth Sep 27 '19 at 10:03
  • $\begingroup$ 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. $\endgroup$ – Chris Oct 11 '19 at 15:57
  • $\begingroup$ I'm glad you solved your problem Chris, but answers, even self answers (which are perfectly valid) should still be posted as answers. You get twice as much reputation when someone finds your answer useful as you do when they find your question useful, and useful self answers often attract both votes. In general, comments are for helping to improve questions and answers, and are distracting, so we try to keep them to a minimum. They should be considered ephemeral, and any comment which no longer actively helps to improve a question or answer may be deleted at any time to tidy up a post. $\endgroup$ – Mark Booth Oct 11 '19 at 16:15

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.