离线编程

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

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

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

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

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

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

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

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

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

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

事实上,没有人采取措施统一机器人的编程方式,这是非常令人失望的。G-code是在50年代引入的,在数控之后不久,大多数数控控制器目前使用它。工业机器人不存在这样的通用编程语言。

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

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

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

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

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

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

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

机器人工作空间

RoboDK自2015年1月推出以来,已被下载超过3万次。RoboDK还吸引了大学作为学习工业机器人的工具(例如,你可以展示DH框架),以及世界各地的新机器人制造商。我们也欢迎集成商使用RoboDK的API开发他们的技术。这样做的好处是,他们可以用一个机器人品牌开发他们的技术,并与任何其他机器人品牌进行部署。

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

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

  1. 谢谢你的鸟瞰图。我计划从Python环境通过套接字控制一个发那科机器人。

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

  3. 你好,

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

    谢谢你!

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

  4. 在我的论文期间,我遇到了一个优秀的软件包,并支持了我很多,特别是当学生没有一个位置,负担不起天价的软件。运动学操作的好选择

  5. 这似乎很有趣。我需要使用Robo DK的手册…谁能分享手册文件/链接下载“如何使用Robo DK”?

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

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

    谢谢!

    1. 您可以选择发那科后处理器离线生成LS代码。如果您有ASCII上传选项,您可以将LS程序直接传输到控制器。或者,您可以使用适当的后期处理程序将LS文件编译为TP文件。
      更多关于post - post处理器的信息请点击这里:
      //www.x7093.com/help#PostProcessor

  7. 你好,篦子软件,一直在试用,目的是测试Nachi sf166,考虑为ether RoboDK或SpruitCAM提供许可证,你是否计划在某处列出功能列表,概述未来预期的升级?
    5轴工具路径可能没有第三方软件?
    探测点云?

  8. 你好,先生,

    我用RoboDK创建一个KUKA *。而当我通过FTP将文件发送到KUKA Controller时,它显示为*.txt文件。现在我不能在KUKA机器人上运行程序。

    1. 您应该将该文件重命名为SRC文件,并确保正确地传输了内容。
      你有什么控制器?
      你是如何建立FTP连接的?
      你将它发送到控制器中的哪个位置?
      请随时与我们联系,电话是info@www.x7093.com如果您需要技术支持。

  9. 这就跟你问声好!RoboDK
    我看过一篇关于如何连接Kuka机器人和RoboDK的文章。那篇文章提到了MainCom。src文件在KRC控制器上运行,以便连接运行RoboDK的PC。你能把这个文件发给我吗?
    谢谢
    mecch

  10. 这是非常有趣的阅读!

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

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

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

    我会很喜欢尝试你的SDK!

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

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

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

  12. 嗨RoboDK。

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

    让我自我介绍一下。我是一个机器人教授挂程序员fanuc abb等。以及机器人模拟器和过程模拟olp程序设计robcad roboguide等。嗯,我不太了解python、c++等。

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

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

    我可以向客户推荐你的软件,但最终这一切都取决于客户和软件的易用性。

    谢谢你的解释。

    1. 嗨,安德鲁,

      感谢您提供的项目细节!我们希望RoboDK能够满足您客户的需求。如有任何具体问题,请随时与我们联系info@www.x7093.com

      最好的问候,
      劳伦

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

    先谢谢你了。

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

        传统上,关节运动受角速度和加速度的限制。这样的话,关节运动很可能比线性运动要快,正如我所见,这就是为什么有些人更喜欢关节运动而不是线性运动。

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

        谢谢你的帮助!

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

  14. 真正了不起的东西,ROBODK是一个优秀的东西使用。我是理工学院的讲师,我只是喜欢用这个来解释工业机器人的工作。

留下一个回复

您的电邮地址将不会公布。必填项已标记