Robotics toolbox Jacobian issue: differential mapping mismatch

I was working on my scripts and I encountered a problem, which comes down to the differential mapping through Jacobian between joint velocities and carthesian velocities.
I have a task trajectory X in carthesian 3D space and I have joint trajectories Q, which were computed using ikcon function of the robotic toolbox. I have a SerialLink of my manipulator named robot that has 7 joints. For example, I want to test the relation between joint and task velocities by comparing Xdot and J*Qdot. To do that, I differenciate the data and retrieve the Jacobian from my manipulator in a code like this:
d3 = 0.4;
d5 = 0.39;
d7 = 0.40; %tool length
L1 = Link('d', 0, 'a', 0, 'alpha', pi/2);
L2 = Link('d', 0, 'a', 0, 'alpha', -pi/2);
L3 = Link('d', d3, 'a', 0, 'alpha', -pi/2);
L4 = Link('d', 0, 'a', 0, 'alpha', pi/2);
L5 = Link('d', d5, 'a', 0, 'alpha', pi/2);
L6 = Link('d', 0, 'a', 0, 'alpha', -pi/2);
L7 = Link('d', d7, 'a', 0, 'alpha', 0);
robot = SerialLink([L1,L2,L3,L4,L5,L6,L7],'name','LBR4');
%%% Skipped part where I compute X and Q %%%
Fs = 1000; %Sampling frequency
n = size(Q,2); %Joints' amount
Q0 = Q(1,:);
Qd = diff([ones(1,1)*Q0; Q])*Fs;
m = 3; %Task dimension: x,y,z
x0 = X(1,:);
xd = diff([ones(1,1)*x0; X])*Fs;
index = 10; %an orbitrary point of the trajectory
J = robot.jacob0(Q(index,:), 'trans');
%Calling the data to compare
xd(index,:)', J*Qd(index,:)';
What I get is that values of xd and J*Qd are wildly different. How comes?..
Personally, I don't understand the following: since there are several robot configurations that can represent a particular endpoint in carthesian space, does this holds for velocities as well? The Jacobian mapping is a well established relation and it must hold, but where a mistake could be? Am I differentiating the data incorrectly? The difference with 'gradient' method is negligible. Do I pick wrong indexes to compute the relation? The difference wouldn't be as big.

Answers (0)

Products

Release

R2018b

Asked:

on 7 Jul 2019

Edited:

on 7 Jul 2019

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!