11-08-2019, 09:04 AM
I made a Simulink model with several Matlab function blocks to get data from the robot from RoboDK, edit that data and send it back to RoboDK.
One thing I need is the speed and acceleration of the robot TCP. I already wrote a function that calculates the speed from the time which went by when moving from one point to another.
Unfortunately, it seems like the block is executed to rare. When I visualize the velocity with a scope block I only get sort of bars and not a continous curve. Additionally the data seem to be implausible.
Is there a way to get the velocity and acceleration continously and straight out of RoboDK?
我得到了使用功能structionListJoints, which should be in the class RobolinkItem. Unfortunately, it wasn't included there.
Function code to calculate the speed:
One thing I need is the speed and acceleration of the robot TCP. I already wrote a function that calculates the speed from the time which went by when moving from one point to another.
Unfortunately, it seems like the block is executed to rare. When I visualize the velocity with a scope block I only get sort of bars and not a continous curve. Additionally the data seem to be implausible.
Is there a way to get the velocity and acceleration continously and straight out of RoboDK?
我得到了使用功能structionListJoints, which should be in the class RobolinkItem. Unfortunately, it wasn't included there.
Function code to calculate the speed:
Code:
function [speedX, speedY, speedZ] = getSpeed(x, y, z)
persistent x1 x2 y1 y2 z1 z2 t1 t2;
if isempty(x1)
% First function call -> Initialize parameters
x1=0; y1=0; z1=0;
x2=x; y2=y; z2=z;
t1=0; t2=0;
speedX=0; speedY=0; speedZ=0;
tic; % Start timer
else
% Shift the parameters
x1=x2; y1=y2; z1=z2;
t1=t2;
% Get new values
x2=x; y2=y1; z2=z1;
t2=toc; % Get time since timerstart
tic; % Start timer again
% Calculate the velocity
speedX = abs(x2-x1)/(t2-t1);
speedY = abs(y2-y1)/(t2-t1);
speedZ = abs(z2-z1)/(t2-t1);
end
end