11-08-2019,上午09:04
我用几个Matlab函数块做了一个Simulink模型,从RoboDK中获取机器人的数据,编辑这些数据并将其发送回RoboDK。
我需要的一件事是机器人TCP的速度和加速度。我已经写了一个函数,计算从一点移动到另一点的时间的速度。
不幸的是,这个块似乎执行得太少了。当我用一个范围块来可视化速度时,我只得到一些条形,而不是连续的曲线。此外,数据似乎是不可信的。
有没有一种方法可以连续地直接从RoboDK中得到速度和加速度?
我得到了使用函数instructionlistjoint的提示,它应该在类RobolinkItem中。不幸的是,它不包括在里面。
计算速度的函数代码:
我需要的一件事是机器人TCP的速度和加速度。我已经写了一个函数,计算从一点移动到另一点的时间的速度。
不幸的是,这个块似乎执行得太少了。当我用一个范围块来可视化速度时,我只得到一些条形,而不是连续的曲线。此外,数据似乎是不可信的。
有没有一种方法可以连续地直接从RoboDK中得到速度和加速度?
我得到了使用函数instructionlistjoint的提示,它应该在类RobolinkItem中。不幸的是,它不包括在里面。
计算速度的函数代码:
代码:
函数[speedX, speedY, speedZ] = getSpeed(x, y, z)
持久x1 x2 y1 y2 z1 z2 t1 t2;
如果isempty (x1)
第一个函数调用->初始化参数
x1 = 0;日元= 0;z1 = 0;
x2 = x;y2 = y;z2 = z;
t1 = 0;t2 = 0;
speedX = 0;快速= 0;speedZ = 0;
抽搐;%开始计时器
其他的
%移动参数
x1 = x2;日元= y2;z1 = z2;
t1 = t2;
%获取新值
x2 = x;y2 = y₁;z2 = z1;
t2 = toc;获取计时器开始后的时间
抽搐;%再次启动计时器
计算速度
speedX = abs(x2-x1)/(t2-t1);
speedY = abs(y2-y1)/(t2-t1);
speedZ = abs(z2-z1)/(t2-t1);
结束
结束