离线编程

如果你开一辆车,它的品牌没有什么区别:所有的车都是用同样的方式驾驶的。这同样适用于计算机。如果你用的是Windows电脑,用户界面就不会受到电脑硬件的影响。这绝对不是工业机器人的情况。

工业机器人的编程方式很大程度上取决于机器人的品牌。你可能会认为机器人程序看起来像c++或Visual Basic。事实上,一些机器人仍然是用汇编语言编程的。

RoboDK模拟由于使用工业机器人的复杂性,机器人集成商和大多数制造商试图将自己限制在单一的机器人品牌上。不幸的是,工业机器人制造商并没有提供完全相同的产品系列,而且他们的产品还在不断发展。例如,Stäubli是少数几家提供适合潮湿环境的机器人的制造商之一,而发那科是唯一一家提供中等载荷协作机器人的制造商。此外,许多企业都在进行招标。因此,有时制造商最终会使用不同品牌的机器人。

机器人编程语言发展缓慢的原因可能是由于工业机器人非常可靠和耐用。因此,机器人制造商必须提供向后兼容性。销售备件和附加选项可能和销售新机器人一样有利可图。出于这个原因,机器人制造商可能不会改变其编程语言的基本原理。例如,ABB坚持在用户级别上使用四元数来表示方向,尽管四元数与使用二进制代码而不是ASCII一样直观。ABB没有像其他机器人制造商那样将四元数改为欧拉角,而是简单地添加了从一种方向表示转换为另一种方向表示的功能。大多数机器人编程语言可能在10年或20年前看起来很棒,但现在,工程师们已经习惯了Java、c#和Python等现代编程语言。

发那科是四大机器人制造商之一,提供两种不同的编程语言:Teach Pendant(或TP)和KAREL。TP程序是二进制文件,可以通过机器人的教学挂件按钮进行编辑(对于较新的机器人,可以使用触摸屏)。TP文件也可以从LS文件(人类可读的ASCII文件)编译/反编译。TP程序提供有限的类似汇编程序的功能。另外,使用FANUC,您可以使用PC和KAREL(基于Pascal的编程语言)编写自己的算法,但KAREL不允许您执行机器人运动,也不允许您从控制器的教学挂件编辑程序。

您可以购买ROBOGUIDE离线编程和仿真软件来离线编程发那科机器人。但是,如果您没有ROBOGUIDE的WinOLPC,您将无法使用LS程序,除非您在发那科机器人控制器中也有“ASCII上传”选项,每个机器人都需要付费软件升级。您还需要ROBOGUIDE来编辑和创建KAREL程序。

摩托人机器人使用INFORM编程语言(JBI文件)进行编程。INFORM看起来类似于发那科的TP。程序变量是所有程序共享的寄存器。然而,Motoman也为他们所有的机器人提供了MotoCom:一个文档完备的库,允许你使用c++、c#或Visual Basic(在Windows上)对机器人进行编程。

ABB机器人的编程更简单,基于RAPID编程语言,它有点类似于Visual Basic。此外,ABB还提供RobotStudio,免费提供在线编程和优秀的RAPID程序编辑器,以及通过PC和机器人之间的网络连接轻松传输文件。另外,您还可以购买3D模拟器和离线编程工具。

库卡机器人需要用KRL编程语言编写SRC程序,通常使用免费的OrangeEdit编辑器进行编辑,除非您有库卡模拟器Sim Pro。有趣的是,Kuka的KRC4控制器是基于Windows的计算机,而teach pendant是该计算机的远程桌面。从教学挂件上修改程序是不实际的,因为触摸屏感觉很慢。然而,一个值得注意的例外是KUKA的协作机器人LBR iiwa,它使用KUKA的Sunrise控制器并用Java编程。

我们就讲到这里,因为还有几十家其他的机器人制造商来自世界各地。有些品牌没有线下编程软件,比如Universalraybet雷竞app下载 Robots:用户必须通过机器人的触摸挂件界面(非常直观,但也非常有限)或使用ASCII编辑器和他们的UR Script语言(基于Python)对UR机器人进行编程。其他机器人制造商专注于为CAD软件提供插件,比如三菱为SolidWorks提供MelfaWorks。

没有人在统一机器人编程方式方面迈出一步,这一事实令人非常失望。g代码是在50年代引入的,在数控之后不久,大多数CNC控制器目前使用它。工业机器人没有这种通用的编程语言。

一些公司提供强大的机器人离线编程(OLP)工具,支持多个机器人品牌,每种软件工具都有其优点和缺点。然而,这些工具中的大多数也相对昂贵。也有免费的工具,如Gazebo(通常与ROS一起使用),但它们需要专业的编程技能,并且针对一般的机器人技术,这使得它们对于工业机器人的模拟和离线编程不太实用。

这就是为什么我们创建了RoboDK:一个经济实惠的工业机器人模拟器,提供了一种直观的方式来编程工业机器人。模拟器支持各种各样的应用,如拾取和放置,油漆或机器人铣削。提供了将CAM程序自动转换为机器人程序的优化工具。RoboDK是从加拿大最大的机器人实验室之一CoRo实验室衍生出来的,在那里它在所有主要的工业机器人品牌上进行了测试。

RoboDK的图书馆有来自30个不同机器人制造商的300多个机器人,我们期待着继续增加对新机器人品牌的支持。欢迎任何机器人制造商将他们的机器人包含在RoboDK的库中,提供一个开放的接口,可以进行离线编程和在线编程。通过定义机器人的品牌后置处理器实现离线编程。在线编程是通过开发一个机器人驱动程序来实现的,该驱动程序作为模拟器和机器人之间的桥梁。然后,可以轻松地逐步运行机器人程序,检索机器人位置或移动到机器人的特定位置。这个视频展示了一个使用UR10进行在线编程的例子:

robdk的独特之处在于,您可以使用Python和RoboDK API.Python提供了一个庞大的编程工具库(例如,将SVG图像转换为机器人可以跟随的XY坐标)。然后,你可以使用Python和RoboDK的API进行面向对象编程,并编写如下代码片段:

# robot是一个对象# target是一个姿态(4x4矩阵),定义TCP机器人的位置和方向movej (target*transl(0,0,-100)) # Move(关节)到接近位置robot. movel(目标)# Move(线性)到目标CloseGripper() #自定义动作,例如抓取一个零件robot. movel (target*transl(0,0,-100)) #移动回接近位置

上述脚本将通过接近位置将机器人移动到特定目标。我们的库中有许多其他示例(带或不带Python)。

毫无疑问,有一天,机器人程序员将可以选择使用通用编程语言(如Python)为任何机器人品牌编程。机器人程序员和公司更喜欢这种选择,因为他们不依赖于特定品牌的工具。荣誉,Mecademic这是CoRo的另一个分支,它提供了第一个可以用任何现代编程语言控制的工业机器人手臂,但这款机器人也需要使用一些专有命令。

机器人工作空间

RoboDK自2015年1月发布雷电竞app下载安卓以来,下载量已超过3万次。RoboDK也吸引了大学作为学习工业机器人的工具(例如,你可以展示DH框架)以及世界各地的新机器人制造商。我们也欢迎集成商使用RoboDK的API开发他们的技术。这样做的好处是,他们可以用一个机器人品牌开发自己的技术,并将其应用于任何其他机器人品牌。

RoboDK可以免费试用,并将继续免费用于教育目的。我们也相信RoboDK是目前最实惠的离线机器人编程解决方案。

31关于“离线编程”的评论

  1. 太棒了! !我是工业机器人领域的教授,打算在课堂上使用RoboDK。非常感谢大家!

  2. 你好,

    谢谢你的概述。
    我是机器人编程新手,你知道我从哪里可以得到库卡机器人的免费软件吗?

    谢谢你!

    1. 你好互联网统计,
      你打算怎么处理你的库卡机器人?RoboDK的免费版本可能足以让您模拟和编程库卡机器人。
      库卡机器人有一个免费的程序编辑器:OrangeEdit。

  3. 在我的论文中,我遇到了一个很好的软件包,给了我很大的支持,尤其是当学生们买不起天价软件的时候。运动学操作的好选择

  4. 这似乎很有趣。我需要使用Robo DK的手册,谁能分享使用手册文件/链接下载“如何使用Robo DK”?雷电竞app下载安卓

    1. 新版本解决了这个问题。如果你还有问题,请告诉我们。您可以导入一个KUKA SRC程序,对其进行模拟、修改并重新生成SRC机器人程序。

  5. 我对这一发展感到非常惊讶,我决定将RoboDK用于我正在公司工作的KUKA机器人。我试图将其安装在Ubuntu 16.04(64位)上,但我现在整天都在努力解决错误信息(找不到Qt平台插件“xcb”)。安装了最新的python,并且——据我所知——还安装了所需的所有Qt平台插件。我无法在网上或RoboDK论坛上找到任何解决方案-当然这是一个相当简单的解决方案,但如果没有帮助,我将无法为即将到来的任务实现RoboDK。

    非常感谢!

  6. 你好,我一直在尝试用Nachi sf166进行测试,考虑使用RoboDK或SpruitCAM的许可,你有没有计划在某个地方列出未来预期的升级?
    5轴刀具轨迹可能没有第三方软件吗?
    探测点云?

  7. 你好,先生,

    我用RoboDK创建了一个KUKA *。src文件,而当我通过FTP将文件发送到KUKA Controller时,它显示在*.txt文件中。现在我无法在库卡机器人中运行程序。

    1. 您应该将该文件重命名为SRC文件,并确保正确传输了内容。
      你有什么控制器?
      你是怎么建立FTP连接的?
      你要把它发送到控制器的哪个位置?
      请不要犹豫,通过info@www.jasonament.com如果您需要技术支持。

  8. 嗨!RoboDK
    我读了关于Kuka机器人与RoboDK连接的论文。那篇文章提到了MainCom。src文件在KRC控制器上运行,以便连接运行RoboDK的PC。你能把这个文件发给我吗?
    谢谢
    mecch

  9. 这篇文章读起来很有趣!

    到目前为止,我已经为ABB机器人编程了大约10年,它是迄今为止我必须处理的最简单的语言。发那科使用起来非常笨拙,如果没有特殊的程序,你就无法离线编辑它。Rapid感觉与Python非常相似。如果我没记错的话,我认为Fortran非常相似。

    四元数是ABB的解决方案,更紧凑的固体变换方法,而不是更密集的计算齐次变换矩阵。也许是因为我用它太久了,但我发现它很容易用。1,0,0,0是当两个坐标系在XYZ轴上对齐时。非常紧凑和高效。据我所知,ABB是一个程序员和数学家的机器人。

    我偶然发现了你的网站,因为我想知道是否有人找到了在不同的操作系统上运行其他制造商机器人的方法。我希望看到Rapid成为标准语言。

    我将享受试用您的SDK的乐趣!

    1. 我们很高兴听到你喜欢我们的帖子。通过使用我们的Python SDK,您可以模拟和编程来自任何机器人制造商的任何工业机器人手臂,包括ABB,库卡,发那科,安川摩托,万能机器人等等!我们的网站提供了一个简单的例子:
      //www.jasonament.com/offline-programming
      如果你有任何问题,我们很乐意帮助你。

  10. 让我知道RoboDK python API(如果存在的话)以一定程度围绕其轴移动机器人的特定关节。据我所知,有一个指令MoveJ接收目标(4×4矩阵)作为参数,而不是程度。我是讲师。非常感谢。

    1. Hi Kuliah,你也可以提供一个关节矩阵(6×1),它将使用提供的数据作为关节角度。您还可以使用robot. joint()检索当前机器人关节位置。

  11. 嗨RoboDK。

    美好的一天。这是一个很好的解释,因为我不懂你的专业术语。谢谢你

    让我自我介绍一下。我是一名机器人教学的独立程序员fanuc abb等。机器人模拟器和过程仿真的olp编程器。我不太懂python, c++等等。

    最近,我遇到了一个客户的要求,他们需要为库卡机器人编程,用于涡轮叶片的热喷涂涂层。如果你看一下涡轮叶片它有一个非常复杂的几何形状并且很难生成离线程序,正如你所知道的过程模拟或robcad对于olp的复杂几何形状来说是困难的。

    我的要求是我需要生成库卡olp,因为该软件应该足够好,以支持复杂的几何形状。好吧,我的意思是说,它应该是非常容易生成机器人路径使用3D cad本地文件。Hovc热喷涂用于涂料,使材料寿命更长。

    我可以向客户推荐你们的软件,但最终还是要看客户和软件的易用性。

    谢谢你的解释。

  12. 在RoboDK中,可以选择在联合移动中使用线性约束。(这意味着TCP的最大速度和加速度是受限的)。这有意义吗?这个选项适用于实际情况吗?为什么?

    提前谢谢你。

      1. 我正在研究人机协作环境。正如我在ISO 15066中看到的,对TCP最大速度的约束足以确保安全,至少对于自由瞬态接触(图A.4)。在ROBODK中,可以为关节运动设置线性约束。

        传统上,关节的移动受到角速度和加速度的限制。通过这种方式,关节的运动很可能比线性运动快,正如我所看到的,这是人们喜欢关节运动而不是线性运动的原因之一。

        那么,用线性约束(而不是角度约束)来编程关节运动是可以的吗?

        谢谢你的帮助!

        1. 你可以在这里选择你喜欢的设置:
          工具-选项-运动-移动时间计算
          你可以将其设置为“最严格的约束”,所有的速度约束都会被考虑到每个移动。

  13. 真的很棒的东西,ROBODK是一个很棒的东西。我是理工学院讲师,我只是更喜欢用这个来解释工业机器人的工作原理。

留言回复

您的电子邮件地址将不会被公布。必填项被标记*