Robotics toolbox Jacobian issue: differential mapping mismatch
Show older comments
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)
Categories
Find more on Robotics in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!