机器人驱动

机器人驱动器负责控制某种型号机器人与计算机的连接。机器人驱动器使用通用的软件接口控制与监测机器人控制器状态,实现计算机控制机器人的操作。A robot driver controls a particular type of robot that is connected to a computer. A robot driver uses a generic software interface to control and monitor a specific robot controller, enabling a computer to control a robot.

机器人驱动器为离线编程(生成离线程序后传输至机器人并运行)提供新的可能。使用机器人驱动器,可以直接使用真机机器人运行仿真(在线编程)。

下面的文章介绍了使用机器人驱动器实现在线编程项目的范例: 
https://robodk.com/blog/online-programming/

使用机器人驱动器可以在机器人真机上运行任何通过RoboDK编程的机器人仿真程序。仿真器中的机器人运动将与真机运动同步,并可能实现即时程序调试功能。

RoboDK支持并提供了以下品牌机器人的驱动器:

ABB

Fanuc

KUKA

Mecademic

Mitsubishi

Motoman

Universal Robots

如何使用机器人驱动

执行以下步骤通过RoboDK使用机器人驱动器:

1.右键单击机器人

2.选择Robot Drivers - 图片 1 Connect to robot…

3.输入机器人的IP地址

4.选择Connect

如果连接成功,将出现绿色的Ready信息,如下图所示。

Robot Drivers - 图片 2

使用GUI

使用用户图形界面(即GUI)生成的机器人程序可以通过以下步骤在机器人真机上运行:

1.右键点击一个Robot Drivers - 图片 3仿真程序

2.勾选Run on robot选项

3.双击该程序并运行

机器人将于机器人真机上运行,而仿真器的机器人运动与其同步。连接状态将显示黄色的Working…信息,表示机器人处于工作状态。

Robot Drivers - 图片 4

使用API

可以通过RoboDK API控制机器人运动例如使用Python程序或者C#应用对机器人编程。

在机器人真机上运行Python程序Run on robot选项RoboDK自动管理。按照以下步骤在机器人上运行Python程序:

1.右键点击一个Robot Drivers - 图片 5Python程序

2.选择Robot Drivers - 图片 6Run on robot

该程序将在机器人上运行,机器人的连接状态也随之自动更新。

Robot Drivers - 图片 7

如果选择在RoboDKGUI之外运行该程序(例如为了调试程序,或者使用RoboDK C# API),可以使用RDK.setRunModeRunMode设置为RUNMODE_RUN_ROBOT。该设置将强迫程序在机器人真机上运行。还可以使用robot.Connect()与机器人建立连接。

以下代码演示了在API中与机器人建立连接的简单范例:

# Start the RoboDK API

RDK = Robolink()

robot = RDK.Item('',ITEM_TYPE_ROBOT)

# Connect to the robot using default connetion parameters

success = robot.Connect()

status, status_msg = robot.ConnectedState()

if status != ROBOTCOM_READY:

# Stop if the connection did not succeed

raise Exception("Failed to connect: "+ status_msg)

# Set to run the robot commands on the robot

RDK.setRunMode(RUNMODE_RUN_ROBOT)

# Note: This is set automatically if we use

# robot.Connect() through the API

# Move the robot:

robot.MoveJ([10,20,30,40,50,60])

prog = RDK.Item('MainProgram', ITEM_TYPE_PROGRAM)

prog.setRunType(PROGRAM_RUN_ON_ROBOT) # Set the run on robot option

# Set to PROGRAM_RUN_ON_SIMULATOR to run on the simulator only

prog.RunProgram()

while prog.Busy() == 1:

pause(0.1)

print("Program done")


自定义机器人驱动

在默认状态下,机器人驱动器位于/RoboDK/api/Robot/文件夹中。RoboDK中的连接设置将机器人与其驱动器相关联:

1.右键点击机器人

2.选择Robot Drivers - 图片 8 Connect to robot…

3.选择More options…

4.Driver path部分定位或者输入机器人驱动器地址

每个机器人驱动器是一个独立的应用程序。机器人驱动器可以通过任何编程平台开发,例如,驱动器可以是Python模块(PY格式)或者使用任何IDE环境编译的可执行程序。

Robot Drivers - 图片 9

机器人驱动器可以通过命令行模式与机器人通信。RoboDK使用同样的命令在PC电脑上驱动机器人。每个机器人驱动器都可以单独在控制台模式下运行并测试。

C:/RoboDK/bin/robot/ 文件夹中有一个Python驱动器范例(apimecademic.py)以及它的源代码,用于控制Mecademic机器人。

双击apimecademic.py文件在控制台模式下运行该模块(需要安装Python)。机器人驱动器启动后会等待用户输入指令。例如,可以使用以下命令根据已知IP地址与端口号连接机器人:

CONNECT 192.168.100.1 10000

如果连接成功将出现SMS:Ready信息。此时可以使用以下命令获得机器人关节轴的当前位置:

CJNT

可以使用运动指令例如MOVJ, MOVL,或者SETTOOL更新机器人工具TCP

MOVJ 10 20 30 40 50 60

Robot Drivers - 图片 10

某些型号的机器人支持关节轴位置的实时监测。可以通过JNTS_MOVING指令在机器人移动时获得即时位置反馈。在RoboDK内运行机器人驱动器时,虚拟环境中的机器人也将跟随真机实时移动。在Ready信息再次显示之前,驱动器不能处理新的指令。

用户与控制台的互动、机器人的连接是通过一个Mecademic 驱动器的Python模块管理的。对于所有机器人都有同样的控制台互动,如本部分介绍。但是,与机器人的连接取决于不同的机器人生产商,在此例中请参考Meca 500 programming manual使用手册中的指令。这些指令用于移动或者监测Meca 500机器人。


故障检测

机器人驱动器的设置相对于离线生成程序更加复杂。如果连接不成功,以下步骤提供一些解决连接问题的帮助:

1.检测机器人的IP地址是否正确:在机器人连接菜单中选择ping按钮(或者ping the robot through the command line)确保机器人与计算机处于同一网络中。

2.如果机器人与计算机不处于同一网络,为计算机设置static IP静态IP

3.确保计算机上的防火墙没有阻止任何连接。

4.确保通讯端口恰当,并且在机器人端可供使用。

5.确保在机器人控制器上使用了与其型号相匹配的控制指令。

6.在机器人连接窗口双击Disconnect按钮强制停止机器人驱动器,之后再次点击connect重新尝试连接。

Ping测试

使用ping测试可以在Internet Protocol (IP) 网络内检测是否能与机器人通讯。

Windows内按照以下步骤进行ping测试:

1.使用Robot Drivers - 图片 11Windows+ R)打开运行窗口

2.输入cmd并点击OK

3.输入ping IP(机器人IP地址),例如:   
ping 192.168.125.2

应出现与下图相似的反馈信息(0%信息丢失)。

Robot Drivers - 图片 12

如果没有通讯应检查机器人IP地址与PC电脑是否在同一本地网络内(LAN)。可能需要关闭Windows防火墙或者添加允许通讯的防火墙规则。

设置静态IP

按照以下步骤改变电脑的IP地址:

1.选择Windows StartControl PanelNetwork InternetNetwork Connections

2.双击本地连接local area connection选项

3.选择Properties

4.选择Internet Protocol Version 4 (TCP/IPv4)

5.选择Properties

6.根据机器人的IP地址输入适当的IP以及子网掩码。

Robot Drivers - 图片 13