[ 博客首页 ]
黄杰, 2019-07-31
root[a]linuxsand.info
许久没做 KRC4 的编程,其实当前工作上也不需要,只是想强制自己练练手。
在写了几十行代码后,我想将机器人本体可视化出来,这样能带来直观的调试感受。因为我没有 KUKA.Sim,所以想到用 RoboDK 来做这件事情。
解释一下:
如果你不喜欢使用这套私有的连接技术,可自行使用 TCP/IP socket 来实现;那么你就需要在 KRC 中安装 Ethernet KRL 来让库卡的编程语言(KRL)具备网络通信能力,同时在 PC 端利用 RoboDK 的脚本功能实现网络通信。
[1]:LT 制定了通信协议,我实现了代码。
要想可视化机器人运动,只要能快速频繁地读取机器人的各关节度数就行。对于 KRC,就是频繁读取系统变量 $AXIS_ACT
,将其值解析为浮点数,调用 RoboDK 的 API 就能实现预期目的。
RoboDK API: https://robodk.com/doc/en/RoboDK-API.html
当然,需要先创建带有 KUKA 机器人的 RoboDK 工程,请使用 KR 210-2 这款本体,它是 OfficeLite 使用的本体型号。
我在 RoboDK 中创建了两个脚本,一个是定期频繁读取机器人关节读数的脚本(poll_joints.py
),也就是将控制器同步到本体模型;另一个脚本(send_joints.py
)则相反,将本体模型的关节角同步到控制器,例如我在 RoboDK 中手动拖拽了模型,运行 send_joints.py
,它就将模型的关节角写入 KRC 的用户自定义全局变量(也可以偷懒利用系统内建的 XHOME
变量);回到 KRC 端,使用几行 KRL 代码就可以从变量中取出数值,拼接为 AXIS
类型,最后 PTP 插补,这就完成了模型到控制器的手动同步。
优酷
Youtube