机器人驱动程序能够控制和计算机连接的实体机器人。这类驱动程序通过特定软件接口操控和监测专用机器人控制器,使计算机可直接对机械臂进行控制。
机器人驱动程序为离线编程(即先仿真、生成程序,再传输至机器人执行)提供了替代方案。通过机器人驱动程序,你可以在整个模拟过程中实时操控机器人运动(在线编程)。
以下文章展示:使用机器人驱动器的在线编程项目示例。
任何在RoboDK中编程的机器人仿真都可以通过机器人驱动程序在真实机器人上执行。仿真器中的机器人运动将与真实机器人同步,从而可以实时调试机器人程序。
Note:机器人驱动程序默认位于/RoboDK/api/Robot/文件夹中。机器人驱动程序可以是Python文件(py格式)或EXE文件。
Note:机器人驱动程序并非后处理器。后处理器用于生成可由机器人控制器执行的程序(离线编程)。更多信息请参阅后处理器章节。
RoboDK支持并提供了以下品牌机器人的驱动器:
●ABB
●Annin Robotics
●遨博(AUBO)
●Automata
●伯朗特(Borunte)
●柯马(Comau)
●越疆(Dobot)
●斗山(Doosan)
●大象机器人(Elephant Robotics)
●艾利特(Elite Robots)
●爱普生(Epson)
●法奥(FAIRINO)
●华沿/大族(Huayan/Han's)
●韩华(Hanwha)
●IGUS
●节卡(JAKA)
●川崎(Kawasaki)
●KEBA
●Kinova
●库卡(KUKA) KRC
●库卡(KUKA) IIWA
●Mecademic
●三菱(Mitsubishi)
●Niryo
●Productive Robotics
●西门子(Siemens)
●史陶比尔(Staubli)
●uFactory xArm
●开塔(Wlkata)
Important: 大多数机器人驱动程序采用TCP/IP套接字通信协议。部分机器人控制器可能需要额外购买厂商提供的软件选项,因为默认情况下可能不支持套接字通信。
Note:并非所有机器人驱动器都支持所有功能(例如实时监控或探测)。这在很大程度上取决于机器人控制器以及机器人控制器远程支持的功能。
Note:终端用户可以添加或修改现有的机器人驱动程序,然后在菜单连接选项卡处接新的驱动程序。更多信息请参阅自定义驱动章节。
本节介绍如何使用机器人驱动器,将RoboDK 连接到真正的机械臂,并执行一些简单的操作。
1.右键点击机器人
2.选择
3.输入机器人的 IP 地址
4.选择连接
如果连接测试成功,连接状态会显示Ready绿色图标,如下图所示。

Tip:在连接机器人窗口,选择"获取位置",可以从真机获得当前机器人位置,并更新RoboDK中的虚拟机器人位置。
Tip:在连接机器人窗口,点击“断开”按钮,可强制停止机器人驱动器。如果机器人真机意外停止(例如遭遇碰撞或者轴极限),机器人驱动器可能失去响应,此时可以通过双击“断开”按钮,并再次点击“连接”,重启驱动器。
使用用户图形界面(即GUI)生成的机器人程序可以通过以下步骤在机器人真机上运行:
1.右键单击
2.选中 "在机器人上运行 "选项
3.双击程序即可运行
机器人将于机器人真机上运行,而仿真器的机器人运动与其同步。连接状态将显示Working信息,表示机器人处于工作状态。

可以通过RoboDK API控制机器人运动,例如,使用Python程序或者C#应用对机器人编程。
在机器人真机上运行Python程序(Run on robot选项)由RoboDK自动管理。按照以下步骤在机器人上运行Python程序:
1.右键单击
2.选择
程序应开始在机器人上运行,机器人连接状态也会相应更新。

如果选择在RoboDK的GUI之外运行该程序(例如为了调试程序,或者使用RoboDK C# API),可以使用RDK.setRunMode将运行模式设置为RUNMODE_RUN_ROBOT。该设置将强迫程序在机器人真机上运行。还可以使用robot.Connect()与机器人建立连接。
以下代码演示了在API中与机器人建立连接的简单范例:
# 启动 RoboDK API
RDK= Robolink()
机器人= RDK.Item('',ITEM_TYPE_ROBOT)
# 使用默认连接参数连接机器人
success= robot.Connect()
status, status_msg= robot.ConnectedState()
IF status != robotcom_ready:
# 如果连接不成功,则停止
raise Exception("Failed to connect: "+ status_msg)
# 设置在机器人上运行机器人命令
RDK.setRunMode(RUNMODE_RUN_ROBOT)
# Note:如果我们使用
# 通过 API 连接机器人
# 移动机器人:
robot.MoveJ([10,20,30,40,50,60])
prog= RDK.Item('MainProgram', ITEM_TYPE_PROGRAM)
prog.setRunType(PROGRAM_RUN_ON_ROBOT) # 设置机器人运行选项
# 设置为 PROGRAM_RUN_ON_SIMULATOR,以便仅在模拟器上运行
prog.RunProgram()
while prog.Busy()== 1:
pause(0.1)
print("Program done")
在默认状态下,机器人驱动器位于/RoboDK/api/Robot/文件夹中。RoboDK中的连接设置将机器人与其驱动器相关联:
1.右键点击机器人
2.选择
3.选择更多选项...
4.在 "驱动 "部分定位或者输入机器人驱动器地址
每个机器人驱动器是一个独立的应用程序。机器人驱动器可以通过任何编程平台开发,例如,驱动器可以是Python模块(py格式)或者使用任何IDE环境编译的可执行程序。

机器人驱动器可以通过命令行模式与机器人通信。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

某些型号的机器人支持关节轴位置的实时监测。可以通过JNTS_MOVING指令在机器人移动时获得即时位置反馈。在RoboDK内运行机器人驱动器时,虚拟环境中的机器人也将跟随真机实时移动。在Ready信息再次显示之前,驱动器不能处理新的指令。
用户与控制台的互动、机器人的连接是通过一个Mecademic 驱动器的Python模块管理的。对于所有机器人都有同样的控制台互动,如本部分介绍。但是,与机器人的连接取决于不同的机器人生产商,在此例中请参考Meca 500 programming manual使用手册中的指令。这些指令用于移动或者监测Meca 500机器人。
机器人驱动器的设置相对于离线生成程序更加复杂。如果连接不成功,以下提供一些解决连接问题的帮助:
1.检测机器人的IP地址是否正确:在机器人连接菜单中选择ping按钮(或通过命令行 ping 机器人),确保机器人与计算机处于同一网络中
2.如果机器人和计算机不在同一个网络中,请为计算机设置静态IP地址。
3.确保计算机上的防火墙没有阻止任何连接。
4.确保通讯端口恰当,并且在机器人端可供使用。
5.确保在机器人控制器上使用了与其型号相匹配的控制指令。
6.在机器人连接窗口双击Disconnect按钮强制停止机器人驱动器,之后再次点击connect重新尝试连接。
Note:在Windows系统上执行某些操作可能需要管理员权限。
Ping测试用于检测机器人设备在IP网络中的可达性状态。
Windows系统执行步骤:
1.选择
2.输入cmd并点击确定
3.输入:ping IP(机器人IP地址),例如:
ping 192.168.125.2
正常响应应显示类似下图的反馈(如:Lost = 0% loss)。

若未收到响应:确认机器人IP与PC处于同一局域网(LAN),临时关闭Windows防火墙,或添加防火墙放行规则。
请按照以下步骤更改计算机的 IP:
1.选择:开始➔ 控制面板➔ 网络和Internet➔ 连接到网络。
2.双击本地连接(有线网卡)。
3.右键点击:属性。
4.选中:Internet协议版本4 (TCP/IPv4)
5.再次点击:属性。
6.根据机器人 IP输入计算机IP,填写对应的子网掩码。
