离线编程

如果你开车,什么牌子的车没什么区别:所有的车开起来都是一样的。这同样适用于计算机。如果你有一台Windows电脑,用户界面不会受到电脑硬件的影响。工业机器人肯定不是这样。

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

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

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

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

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

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

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

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

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

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

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

这就是我们创建RoboDK的原因:一个负担得起的工业机器人模拟器,提供了一种直观的方法来编程工业机器人。该模拟器支持各种各样的应用,如挑选和放置,喷涂或机器人铣削。提供优化工具,自动将CAM程序转换为机器人程序。RoboDK是加拿大最大的机器人实验室之一CoRo实验室的衍生产品,它在所有主要的工业机器人品牌上都进行了测试。

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

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

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

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

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

机器人工作空间

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. 新版本解决了这个问题。如果你还有问题,请告诉我们。您可以导入一个库卡SRC程序模拟它,修改它,并重新生成SRC机器人程序。

  5. 我对这一发展感到非常惊讶,我决定在我公司与我合作的KUKA机器人中使用RoboDK。我尝试在Ubuntu 16.04(64位)上安装它,但我现在整天都在与错误消息作斗争(找不到Qt平台插件“xcb”)。最新的python已经安装好了,据我所知,所有的Qt平台插件也都安装好了。我无法在网络或RoboDK论坛上找到任何解决方案-当然这是一个相当简单的解决方案,但没有帮助,我将无法实现RoboDK即将到来的任务。

    非常感谢!

  6. 嗨,篦子软件,一直在试用,目的是测试Nachi sf166,考虑使用以太RoboDK或spritcam的许可证,你有没有计划的功能清单,概述了未来的升级期待?
    5轴刀具路径可能没有第三方软件?
    探测点云?

  7. 你好,先生,

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

    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, KUKA,发那科,安川Motoman,万能机器人等!我们的网站上提供了一个简单的例子:
      //www.jasonament.com/offline-programming
      如果你有任何问题,我们将很乐意帮助。

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

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

  11. 嗨RoboDK。

    美好的一天。你解释得很好,因为我不太懂你的专业词汇。谢谢

    让我自我介绍一下。我是机器人教挂程序员发那科abb等。机器人模拟器和olp程序的过程模拟robcad机器人指南等。嗯,我不太懂python、c++等。

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

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

    我可以向客户推荐您的软件,但最终还是取决于客户和软件的易用性。

    谢谢你的解释。

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

    先谢谢你。

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

        传统上,关节运动是由角速度和加速度来约束的。这样,关节的运动速度就会比线性关节快,在我看来,这是人们更喜欢关节而不是线性关节的原因之一。

        那么,用线性约束(而不是角度约束)编程关节移动是否可行?

        谢谢你的帮助!

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

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

留下回复

你的电邮地址将不会公布。必填字段已标记