如果你开一辆车,它的品牌没有什么区别:所有的车都是以同样的方式行驶。计算机也是如此。如果你有一台Windows PC,用户界面将不会受到计算机硬件的影响。工业机器人绝对不是这样。
工业机器人的编程方式在很大程度上取决于机器人品牌。你可能会认为机器人程序看起来像C++或Visual Basic。事实是,有些机器人仍然用汇编语言编程。
由于使用工业机器人的复杂性,机器人集成商和大多数制造商试图将自己局限于一个机器人品牌。不幸的是,工业机器人制造商并没有提供完全相同的产品系列,他们的产品也在不断变化。例如,Stäubi是为数不多的提供适合潮湿环境的机器人的制造商之一,而FANUC是唯一一家提供中等有效载荷协作机器人的制造商。此外,许多企业都在进行招标。因此,有时制造商最终会生产不同品牌的机器人。
机器人编程语言发展缓慢的原因可能是因为工业机器人非常可靠和耐用。因此,机器人制造商必须提供向后兼容性。销售备件和其他选择可能和销售新机器人一样有利可图。因此,机器人制造商可能不会改变其编程语言的基本原理。例如,ABB坚持在用户级别使用四元数来表示方向,尽管四元数与使用二进制代码而不是ASCII一样直观。ABB没有像其他机器人制造商那样,将四元数转换为欧拉角,而是简单地添加了从一个方向表示转换为另一个方向表示的函数。大多数机器人编程语言在十年或二十年前看起来都很棒,但如今,工程师们已经习惯了Java、C#和Python等现代编程语言。
FANUC, one of the leading four robot manufacturers, provides not one but two different programming languages: Teach Pendant (or TP) and KAREL. TP programs are binary files that can be edited through the robot’s teach pendant buttons (or touch screen for newer robots). TP files can also be compiled/decompiled from an LS file (human-readable ASCII file). TP programs offer a limited assembler-like functionality. Alternatively, with FANUC, you can program your own algorithms using a PC and KAREL (programming language based on Pascal), but KAREL does not allow you to do robot movements nor edit the program from the controller’s teach pendant.
您可以购买ROBOGUIDE离线编程和仿真软件,对FANUC机器人进行离线编程。但是,如果您没有ROBOGUIDE的WinOLPC,您将无法使用LS程序,除非您的FANUC robot控制器中还有“ASCII上传”选项,每个机器人都需要付费软件升级。您还需要ROBOGUIDE来编辑和创建KAREL程序。
Motoman机器人使用通知编程语言(JBI文件)编程。通知类似于FANUC的TP。程序变量是所有程序之间共享的寄存器。然而,Motoman还为所有机器人提供Motocom:一个记录良好的库,允许您使用C ++,C#或Visual Basic(在Windows上)编程机器人。
ABB机器人的编程更简单,并且基于快速编程语言,这有点类似于Visual Basic。此外,ABB还提供RobotStudio,免费提供在线编程和优秀的快速程序编辑器,以及通过PC和机器人之间的网络连接轻松传输文件。或者,您可以购买3D模拟器和离线编程工具。
KUKA robots require SRC programs written in the KRL programming language, usually edited using the free OrangeEdit editor unless you have the KUKA simulator Sim Pro. It is interesting to note that Kuka’s KRC4 controller is a Windows based computer and the teach pendant is a remote desktop of that computer. It is unpractical to modify programs from the teach pendant as the touch screen feels slow. One notable exception, however, is KUKA’s collaborative robot, LBR iiwa, which uses KUKA’s Sunrise controller and is programmed in Java.
我们将在这里停下来,因为世界各地都有几十个其他机器人制造商。Some brands do not have offline programming software, such as Universal Robots: the user must program UR robots through the robot’s touch pendant interface (which is highly intuitive, but also very limited) or using an ASCII editor and their UR Script language (based on Python). Other robot manufacturers focus their efforts on having plugins for CAD software, like Mitsubishi who offers MelfaWorks for SolidWorks.
没有人朝着统一机器人编程方式迈出一步,这一事实非常令人失望。G代码是在50年代,即数控之后不久引入的,目前大多数CNC控制器都使用它。工业机器人不存在这样的通用编程语言。
有几家公司提供强大的机器人离线编程(OLP)工具,支持多个机器人品牌,每种软件工具都有其优缺点。然而,这些工具中的大多数也相对昂贵。也有Gazebo(通常与ROS一起使用)等免费工具,但它们需要专家编程技能,并且通常针对机器人,这使得它们在工业机器人的模拟和离线编程中不太实用。
这就是为什么我们创建了RoboDK:一个负担得起的同时ator for industrial robots that provides an intuitive way to program industrial robots. The simulator supports a wide variety of applications, such as pick and place, painting or robot milling. Optimization tools are provided to automatically convert CAM programs to robot programs. RoboDK is a spin-off from the CoRo laboratory, one of the largest robotics labs in Canada, where it was tested on all major industrial robot brands.
Robodk的图书馆拥有30多个不同机器人制造商的机器人,我们期待着继续为新机器人品牌增加支持。欢迎任何机器人制造商在Robodk的库中包含其机器人,提供开放式界面,以便能够进行离线编程和在线编程。通过定义机器人的品牌后处理器来实现离线编程。通过开发作为模拟器和机器人之间的桥梁的机器人驱动程序来实现在线编程。然后,可以通过步骤来逐步地逐步地运行机器人程序,或者通过机器人移动到特定位置。此视频显示使用UR10的在线编程示例:
RoboDK的独特之处在于,您可以使用Python和RoboDK API。Python提供了一个巨大的编程工具库(例如,将SVG图像转换为可以接下来的XY坐标)。然后,您可以使用与Python和Robodk的API面向对象的编程,并具有这样的代码片段:
# robot is an object # target is a pose (4x4 matrix), defining position and orientation of the TCP robot.MoveJ(target*transl(0,0,-100)) # Move (joint) to the approach position robot.MoveL(target) # Move (linear) to the target CloseGripper() # Custom-defined action, such as grabbing a part robot.MoveL(target*transl(0,0,-100)) # Move back to the approach position
上面的脚本会通过接近位置将机器人移动到特定目标。我们的库中有许多其他示例(有没有Python)。
毫无疑问,有一天,机器人程序员将可以选择使用Python等通用编程语言对任何机器人品牌进行编程。机器人程序员和公司都喜欢这个选项,因为他们不依赖特定品牌的工具。荣誉麦地血症, another spin-off of CoRo, who offers the first industrial robot arm that can be controlled with any modern programming language, but this robot too requires the use of a few proprietary commands.
RoboDK自2015年1月推出以来,已被下载超过3万次。RoboDK还吸引了大学作为学习工业机器人的工具(例如,你可以展示DH框架),以及世界各地的新机器人制造商。我们也欢迎集成商使用RoboDK的API开发他们的技术。其优点是,他们可以用一个机器人品牌开发自己的技术,并将其与任何其他机器人品牌一起部署。
Robodk可以免费尝试,并仍然可以免费提供教育目的。我们还认为Robodk是当前可用的最实惠的离线机器人编程解决方案。


Thank you for the over view. I am planning to control a Fanuc robot over socket from Python environment.
令人惊叹的我是工业机器人领域的教授,计划在课堂上使用RoboDK。谢谢大家!
你好
谢谢你的概述。
我是机器人编程新手,你知道我在哪里可以买到库卡机器人的免费软件吗。
非常感谢。
你好ISMA,
你打算用你的库卡机器人做什么?RoboDK的免费版本可能足以让你模拟和编程Kuka机器人。
库卡机器人有一个免费的程序编辑器:OrangeEdit。
这是我在论文中遇到的一个非常好的软件包,它给了我很多支持,尤其是当学生们买不起昂贵的软件时。运动操作的好选择
It seems to be very interesting. I need manual for using Robo DK… Can anyone share the manual file/link to download the “How To Use Robo DK”
You will find some sample applications on our website:
https://www.www.w5838.com/examples.
请随时联系我们info@www.w5838.com如果您需要更多信息。
我不知道为什么每次加载src文件时,Robodk崩溃了。
The problem is fixed with the new version. Let us know if you still have issues. You can import a KUKA SRC programs simulate it, modify it and generate the SRC robot program again.
我对这一发展感到非常惊讶,我决定将Robodk用于库卡机器人,我在我公司合作。我试图在Ubuntu 16.04(64bit)上安装它,但我现在一整天都在努力点击错误消息(找不到Qt Platform Plugin“XCB”)。最新的Python安装了 - 据我所知 - 所有Qt平台插件也需要。我无法在网站上或在Robodk-Forum上找到任何解决方案 - 肯定是一个非常简单的解决方案,但没有帮助,我将无法为即将到来的任务实施RoboDk。
thanks a lot!
谢谢你的评论。我们回复了您在论坛上关于安装RoboDK for Ubuntu的适当说明的请求。我建议您下载最新的Ubuntu版本(目前为RoboDK v2.6.7),并按照安装说明中的说明进行操作。txt文件。
更多信息在这里:
https://www.www.w5838.com/forum/showthread.php?tid=223
How can I insert a written LS format file to RoboDK? To Funuc Robot.
Sorry ,Fanuc robot. Not funuc.
您可以选择Fanuc后处理器离线生成LS代码。如果您有ASCII上传选项,您可以将LS程序直接传输到控制器。或者,您可以使用适当的后处理器将LS文件编译为TP文件。
有关后期处理程序的更多信息,请点击此处:
http://www.www.w5838.com/help#PostProcessor
Hi-Rate软件公司一直在尝试使用Nachi sf166进行测试,正在考虑为ether RoboDK或SpruitCAM提供许可证。您是否计划在某个地方列出该功能的列表,概述未来的升级计划?
5 axis tool path’s without 3rd party software possibly?
探针点云?
嗨,先生,
我使用RoboDK创建一个KUKA*。src文件,当我通过FTP将文件发送到KUKA Controller时,它显示为*。txt文件。现在我不能用库卡机器人运行程序了。
您应该将文件重命名为SRC file,并确保内容已正确传输。
你有什么控制器?
How did you set up your FTP connection?
您将它发送到控制器中的哪些位置?
请随时联系我们info@www.w5838.com如果你需要技术援助。
你好机器人
I have read the paper about how to connect Kuka robots with RoboDK. That article mentioned a MainCom.src file to run on the KRC controller in order to connect the PC running RoboDK. Could you send me this file?
谢谢
麦考
请联系我们info@www.w5838.com我们将为您提供步骤。
这本书读起来很有趣!
I’ve been programming ABB robots for about 10 years now and it is by far the easiest language I have had to deal with. Fanuc is so clunky to work with, and you can’t edit it offline without a special program. Rapid feels very similar to Python. If memory serves I think Fortran was very similar.
四季度是ABB的解决方案,用于更紧凑的固体变换方法,而不是更换强烈的均匀变换矩阵。也许是因为我一直在使用它这么长时间,但我发现它很容易使用。1,0,0,0是两个坐标系在XYZ轴上对齐时。非常紧凑,高效。据我所知,ABB是一个程序员和数学家机器人。
我偶然发现了你的网站,因为我想知道是否有人找到了在不同操作系统上运行其他制造商机器人的方法。我希望看到Rapid成为标准语言。
我会喜欢试用你的SDK!
We are glad to hear you liked our posts. By using our Python SDK you can simulate and program any industrial robot arm from any robot manufacturer, including ABB, KUKA, Fanuc, Yaskawa Motoman, Universal Robots and more! A brief example is provided on our website:
https://www.www.w5838.com/offline-programming.
如果您有任何问题,我们将乐意帮助您。
让我知道Robodk Python API(如果存在)以在其轴上以程度的数量移动机器人的特定关节。据我所知,有一个指令MOVEJ,接收目标(4×4矩阵)作为参数而不是程度。我是讲师。非常感谢。
Hi Kuliah, You can also provide a joint matrix (6×1) and it will use the provided data as joint angles. You can also retrieve the current robot joint position using robot.Joints().
嗨Robodk。
很好的一天。这是你的一个很好的解释,因为我几乎不懂你的技术词汇。谢谢你
让我自我介绍一下。我是一个机器人教导Pendent Programmer Fanuc ABB等。还有机器人模拟器和过程的OLP程序员模拟Robcad Roboguide等。嗯,我对Python C ++等都不太了解。
最近,我遇到一个客户的需求,他们需要为涡轮叶片的热喷涂涂层编程kuka robot。如果你看涡轮叶片,它有一个非常复杂的几何图形,并且很难生成离线程序,正如你所知,对于olp来说,复杂的几何图形很难进行过程模拟或robcad。
我的要求是我需要生成kuka olp,因为该软件应该足够好,能够支持复杂的几何图形。我的意思是,使用3D cad原生文件生成机器人路径应该很容易。Hovc热喷涂用于材料的长效性涂层。
我可以向客户推荐你的软件,但最终这一切都取决于客户和软件的易用性。
谢谢你的解释。
嗨,安德鲁,
感谢您提供项目的详细信息!我们希望RoboDK能满足您客户的需求。如有任何具体问题,请随时联系我们info@www.w5838.com。
顺致敬意,
Lauren
在RoboDK中,可以选择对关节移动使用线性约束。(这意味着TCP的最大速度和加速度受到限制)。这有意义吗?这个选项在实际情况下适用吗?为什么?
提前谢谢你。
嗨,詹尼斯,
是的,这是可能的。你应该使用“设定速度”指令。更多信息请点击此处:
//www.w5838.com/doc/en/robot-programs.html#insspeed
RoboDK使用恒定加速度,直到达到所需速度。
艾伯特
我正在一个人类-机器人协作环境中工作。正如我在ISO 15066中看到的,TCP的最大速度限制足以确保安全,至少对于自由瞬态接触(图A.4)。在ROBODK中,可以为关节运动设置线性约束。
传统上,关节移动受设置角速度和加速度的约束。通过这种方式,关节移动很可能比线性移动快,正如我所见,这就是为什么有些人更喜欢关节而不是线性移动的原因之一。
那么,可以用线性约束(而不是角度约束)编程关节移动吗?
谢谢您的帮助!
You can actually choose your preferred setting here:
Tools-Options-Motion-Move time calculation
You can set it to “Strictest constrain” and all the speed constrains will be taken into account for each movement.
Muito legal estudante de Eng Industrial e sistema eléctrico , Técnico de Montagem de robos Industrial
真是太棒了,ROBODK是个好东西。我是一名理工讲师,我更喜欢用这个来解释工业机器人的工作原理。