Dynamic-Calibration/planar2DOF/plnr_visualize.m

40 lines
1.3 KiB
Matlab

function plnr_visualize(q, plnr)
figure
for j = 1:10:length(q)
clf
qj = q(j,:);
T_0k(:,:,1) = eye(4);
for i = 1:2
R_pj = RPY(str2num(plnr.robot.joint{i}.origin.Attributes.rpy));
p_pj = str2num(plnr.robot.joint{i}.origin.Attributes.xyz)';
T_pj = [R_pj, p_pj; zeros(1,3), 1];
R_jk = Rot(qj(i),plnr.k(:,i));
p_jk = zeros(3,1);
T_jk = [R_jk, p_jk; zeros(1,3),1];
T_pk(:,:,i) = T_pj*T_jk;
T_0k(:,:,i+1) = T_0k(:,:,i)*T_pk(:,:,i);
z_0k(:,i) = T_0k(1:3,1:3,i+1)*plnr.k(:,i);
r_0k(:,i) = [eye(3),zeros(3,1)]*T_0k(:,:,i+1)*[plnr.r_com(:,i);1];
end
R_pee = RPY(str2num(plnr.robot.joint{3}.origin.Attributes.rpy));
p_pee = str2num(plnr.robot.joint{3}.origin.Attributes.xyz)';
T_pee = [R_pee, p_pee; zeros(1,3), 1];
T_0ee = T_0k(:,:,3)*T_pee;
MARKER_SIZE = 100; %marker size of the scatter function
scatter(T_0k(1,4,2), T_0k(3,4,2),MARKER_SIZE,'k','filled')
hold on
scatter(T_0k(1,4,3), T_0k(3,4,3),MARKER_SIZE,'k','filled')
% scatter(Tee0(1,3), Tee0(2,3))
line([T_0k(1,4,2) T_0k(1,4,3)], [T_0k(3,4,2), T_0k(3,4,3)],'Color','k','LineWidth',1.5)
line([T_0k(1,4,3) T_0ee(1,4)], [T_0k(3,4,3), T_0ee(3,4)],'Color','k','LineWidth',1.5)
xlim([-0.5 0.5])
ylim([-0.6 0.2])
pause(1e-1)
end