一 概述
在本系列文章的前面一节,已经讲述了常见的运动指令,这篇我们来介绍一下设置类指令和调试数据获取指令。这在控制器使用过程中,特别是调试分析的时候很有用。
二 指令详解
2.1 S01
设置工具坐标中心加速度,例如
S01 5000 2 3 4 5 6
这条指令设置加速度为50mm/s2
2.2 S02
设置减速度,含义与方式参考S01
2.3 S03
设置工具中心点最大速度
S03 2000 2 3 4 5 6
设置最大速度为20mm/s
2.4 S04
进入CSP模式,即使在仿真模式下,也要执行这个指令
2.5 S05
清空调试队列,并设置采样间隔,默认为1,就是每个控制周期的数据都要保留
2.6 Q03
按照一定格式打印调试数据,数据为:
控制器tick值,TCP中心位置x,y,z,关节1位置,关节2位置,关节3位置,关节4位置
三 运行实例
现在以直线和圆弧的图形为例,描述一下数据的设置和获取过程,运行控制器后,串口打印提示信息:
welcome to Bant Robot control: ver=15,bdtime=20240419
please select the mode S07 1 for simulation,S07 0 for run with motor
我们先进行仿真运行,因此发送
S07 1
串口显示
exec_S07 init ecat sim_mode=1
Bant_hardware init start
you choose sim mode
然后让系统进入CSP模式,发送
S04
串口提示
exec_S04 enter CSP mode
先采用默认的设置值来运行指令,发送
M02 5000 0 0 0 0 0
该指令让TCP运行到(50mm,0)的位置
运行过程中,可以通过发送
Q02
来获取机器人状态
robot_state = RO_STAND_STILL
sim_mode = 1
tick = 461
path=50.000,0.000,0.000,-0.000
joint=4500.000,0.000,0.000,0.000
上面显示机器人目前已经停止,并且位置已经到位。
确认机器人到位后,发送
Q03
串口开始打印一系列数据,数据一共有1000组,如果超过了,会循环覆盖,根据第一列来区分时间。
例如:
1,0.000000,0.000000,0.000000,0.000000,0.000000
2,0.000000,0.000000,0.000000,0.000000,0.000000
3,0.000017,0.000000,0.000000,0.001500,0.000000
4,0.000133,0.000000,0.000000,0.012000,0.000000
5,0.000450,0.000000,0.000000,0.040500,0.000000
6,0.001067,0.000000,0.000000,0.096000,0.000000
7,0.002083,0.000000,0.000000,0.187500,0.000000
8,0.003600,0.000000,0.000000,0.324000,0.000000
9,0.005717,0.000000,0.000000,0.514500,0.000000
10,0.008533,0.000000,0.000000,0.768000,0.000000
11,0.012150,0.000000,0.000000,1.093500,0.000000
12,0.016667,0.000000,0.000000,1.500000,0.000000
13,0.022167,0.000000,0.000000,1.995000,0.000000
14,0.028667,0.000000,0.000000,2.580000,0.000000
15,0.036167,0.000000,0.000000,3.255000,0.000000
16,0.044667,0.000000,0.000000,4.020000,0.000000
17,0.054167,0.000000,0.000000,4.875000,0.000000
18,0.064667,0.000000,0.000000,5.820000,0.000000
19,0.076167,0.000000,0.000000,6.855000,0.000000
20,0.088667,0.000000,0.000000,7.980000,0.000000
21,0.102167,0.000000,0.000000,9.195000,0.000000
22,0.116667,0.000000,0.000000,10.500000,0.000000
23,0.132167,0.000000,0.000000,11.895000,0.000000
把这些数据复制到合适的文件中,例如excel表格,就能绘制图形了
例如绘制XY位置和速度曲线如下
图1 直线运行XY图
图2 直线运行速度图
我们继续来测试一个圆弧运动,接着上面一个直线运行的终点
M07 -5000 0 0 0 -5000 0
这个指令绘制一个270度的圆弧
这个时候,如果发现运动过长导致数据不完整,就可以考虑采用扩大采样周期来进行,例如使用S05指令,发送
S05 2 0 0 0 0 0
串口反馈
exec_S05 clear queue cnt=2
表明每两个控制周期记录一次
我们依次发送
M02 5000 0 0 0 0 0
M07 -5000 0 0 0 -5000 0
然后获取数据
图3 圆弧插补
图4 圆弧插补速度
这样下来,就能提前预知机器人运行情况了,下面改变一下速度试试,例如把最大速度提升到50,发送
S03 5000 0 0 0 0 0
S01 3000 2 3 4 5 6
S02 3000 2 3 4 5 6
图5 提升速度加速度后的速度图形
从图中可以看出最大速度提升到了50mm/s
好了,本次测试就介绍到这里,欢迎大家一起交流完善。