![]() |
有爱心的显示器 · 微信自动发卡机器人工具 ...· 1 月前 · |
![]() |
骑白马的小蝌蚪 · 海康机器人-机器视觉-下载中心· 1 周前 · |
![]() |
痴情的硬盘 · 对话旷视研究院张祥雨|ChatGPT的科研价 ...· 昨天 · |
![]() |
坏坏的骆驼 · 机器化学家来了----科技自立自强之路· 11 小时前 · |
![]() |
跑龙套的单杠 · IBM Cloud Docs· 7 月前 · |
![]() |
内向的火柴 · hanwckf博客 - 百度· 7 月前 · |
![]() |
一身肌肉的台灯 · GitHub - ...· 8 月前 · |
![]() |
博学的海龟 · 招商銀行 -- 安全提示 -- ...· 8 月前 · |
![]() |
逼格高的小笼包 · VBA清空数组_360搜索· 8 月前 · |
RoboDK API (应用程序接口)由一系列例程和命令组成,它支持开发人员使用多种编程语言来操作机器人。
相比其他供应商专用的机器编程语言, RoboDK API 竭尽所能的帮助开发人员使用多种独特且开源的编程语言仿真和编程机器人,例如 Python 。该文档提供了一些关于离线编程 API offline programming with the API 的概述和视频。
RoboDK API 现在适用于 Python , C# 和 Matlab. 其中任何一种编程语言都可以用于仿真和编程机器人。
提示: 你还不确定使用哪种编程语言?我们非常建议你选择 Python !如果你已经在默认设置中安装了 RoboDK ,你就已经安装好了 Python 而且可以随时启动它 ready to start 。 Python 是一种广泛应用的高级语言,它可用于通用编程。 RoboDK 的大多数实例和文档基于 Python 编程语言。
注意: RoboDK 内置了一个用户友好的图形用户界面( GUI ),它可以帮助仿真和编程工业机器人。这里并不需要编程经验,因为在程序 Program 部分,我们提供了很多关于如何使用 GUI 编程的信息。这意味着我们可以使用 RoboDK API 实现没有限制的仿真和离线编程。
注意 : RoboDK API 可以用任何一种编程语言来实现。 RoboDK API 支持 TCP/IP 协议。所以当 RoboDK 运行的时候,它会像服务器一样通过 TCP/IP 协议投射一组命令。
RoboDK API 可以用于以下的操作:
1. 自动化仿真:创建宏后就可以自动完成在 RoboDK 仿真器内的一些特定任务,例如移动对象、参考坐标或者机器人。
2. 离线编程:使用通用编程语言离线编程该机器人:可以通过 RoboDK API 为特定的机器人控制器生成特定的编程程序(如 Python 或 C# )。机器人程序是根据为特定机器人选择的后置处理器 post processor 而 生成的。更多相关示例和信息请参见 Python 离线编程 Offline Programming with Python 部分。
3. 在线编程:使用通用编程语言在线编程该机器人:可以通过 RoboDK API 移动机器人并检索它们当前的位置。 RoboDK 也可以使用 机器人驱动程序 Offline Programming with Python 驱动机器人。更多相关示例和信息请参见 Python 在线编程 Online Programming with Python 部分 。
总的来说,用于仿真( 1 )的程序也可以用于生成机器人程序( 2 ,离线编程),并可以实现实时移动机器人( 3 ,在线编程)。
注意 :当通过使用 RoboDK API 的泛型程序设计语言创建一个机器人仿真时,机器人运动指令就会在仿真准备好的时候自动生成线下程序。此外,如果机器人通过机器人驱动器连接,则可以使用相同的程序实时移动机器人。
本文件涵盖以下主题:
● Python API 关于仿真、离线编程和在线编程的示例
● C#API 关于仿真、离线编程和联机编程的示例
● 关于用 Matlab API 编写 的 Simulink 仿真 示 例
● 关于 RoboDK 命令行 Command line 的选项内容
注意:本文档不包含离线编程所需的 后置处理器 Post Processors 。
注意:本文档不包含在线编程所需的
机器人驱动程序
Robot Drivers
。
Python 是通用编程中被广泛使用的高级编程语言。 Python 可以让你高效工作,并且更有效率地集成你的系统。 Python 的语法允许程序员用比其他语言更少的代码来表达概念,这使它变得十分友好和容易学习。
上一节 previous section 介绍 了 RoboDK API 配合通用编程语言 Python 进行机器人编程的优势。
Python 会自动默认与 RoboDK 进行安装和集成。通过菜单选项卡中的选择工具 Select Tools ➔ 选项 Options ➔ 其他 Other 更改默认设置 (Python 位置和 Python 编辑器 Editor) 。
提示 : 除了 Python IDLE( 默认的集成开发环境 ) 之外,还可以使用特定的文本编辑器,比如 Notepad++ 或 PyCharm 。下图展示了相关文本编辑器的路径。
面向 Python 的 RoboDK API 有 两个模块 :
● Robolink 模块 ( robolink.py ): robolink 模块 建立了一个 RoboDK 与 Python 之间的接口。 RoboDK Station Tree 中的任何对象都可以 通过 使用 Robolink 对象 进行 检索,并由 类别 Item 对象 进行返回 。 同时也可以根据 Robolink.Item 类别对该项目执行各种操作。
● Robodk 模块 ( robodk.py ): robodk 模块类似于 Python 的一个机器人工具箱,它允许对不同的机器人供应商进行姿态变换并获得欧拉角。所有的后置处理器都依赖于这个 robodk 模块。
Python 的相关模块位于路径 C:/RoboDK/Python/ 下,在安装 RoboDK 或者 默认 Python 设置 Set default Python settings 时 ( 见前面的图像 ) ,这些模块将会自动复制到 Python 文件夹路径中。
下面的小节将展示如何为仿真、离线编程和在线编程分别创建一个简单的程序。更多示例会在 Python API for RoboDK 页面中 展示。此外, RoboDK 库还提供了 Python 的示例宏,它位于 C:/RoboDK/ library / macros / 路径下。
按照以下步骤,可以操纵 UR 机器人建立一个项目示例,并命令该机器人仿真完成一些动作。
1.
选择
文件
File
➔
打开
Open
2. 打开 UR10 机器人
3.
选择
文件
File
➔
打开
Open
4. 打开 Paint_gun.tool 文件
5. 在路径 C:/RoboDK/Library/Macros/ 中打开离线 编程 Python 实例文档 SampleOfflineProgramming.py
提示 :更多关于如何创建 RoboDK 站的信息请参见开始 Getting started 部分。
提示
:
创建一个
Python
程序可以在菜单选项卡中点击
选择程序
Program
➔
添加
Python
程序
Add Python program
。
6.
双击
离线编程实例
SampleOfflineProgramming
以运行该仿真程序。机器人就会在它当前位置周围绘制一个六边图形,
TCP
的运行轨迹此时将会显示为黄色。或者右键单击该程序,选择
运行
Python
脚本
Run Python Script
。
7.
右键单击
离线编程
实例
SampleOfflineProgramming
,
选择编辑
Python
脚本
Edit Python Script
,就会看到下图所示的流程。
关于机器人的参考坐标, SampleOfflineProgramming 宏会在机器人当前位置绘制出一个以 n_sides 为边和 R 为半径的多边形。你也可以将机器人移动到不同的位置,这样就会改变多边形的尺寸,同时会重新运行一次该程序。
你也可以在我们网站上的离线编程 offline programming 部分找到 类似的案例。
提示 :当尝试在 Python 编辑器上运行该程序,选择运行箭头 ➔ Run ,随后弹出的窗口会显示所有打印命令或是任何错误提示信息。
Python 支持通过重复使用之前相同的 Python 代码 ( 如前面的 Python 仿真 Python Simulation 部分所示 ) 离线生成 Python 程序。离线编程 Offline Programming 允许生成在特定机器人控制器上执行过的机器人程序:
1.
点击
Python
程序
2. 选择生成机器人程序 Generate robot program (F6)
基于这种操作,可以快速通过执行一个特定于机器人控制器的机器人程序获得相应结果,这个操作可以替代类似的仿真程序。
提示 :右键单击机器人,选择后置处理程序 Select Post Processor 来指定离线编程里不同的后置处理器 ( 如后置处理程序 Post Processor 部分所示 ) 。
注意 : 点击 生成机器人程序 Generate robot program 选项后, 系统会 自动 将 RDK/Robolin k 模块 下的 RunMode 模式切换为 RUNMODE_MAKE_ROBOTPROG 模式 。 这意味着 Python 程序可以在 RoboDK 图形用户界面 GUI 之外的编程环境里执行生成特定于供应商的程序 , 替代仿真程序。相关代码如下所示:
RDK = Robolink()
RDK.setRunMode(RUNMODE_MAKE_ROBOTPROG)
Python 程序支持通过重复使用之前相同的 Python 代码 ( 如 Python 仿真 Python Simulation 部分所示 ) 直接控制操纵机器人。在线编程允许在特定的机器人控制器上,使用机器人驱动 Robot Drivers 来运行该程序:
1.
点击
Python
程序
2. 选择运行机器人 Run on robot
随后程序就会在执行 Python 程序的时候运行该机器人。
重要提示 :使用机器人驱动 Robot Drivers 需要连接 PC 和机器人 ( 右键单击机器人,然后选择 Connect to robot… ) 。更多相关信息请参见机器人驱动 Robot Drivers section 部分。
注意 : 点击运行机器人 Run on robot 选项, 系统会 自动 将 RDK/Robolin k 下的 RunMode 模式切换为 RUNMODE_MAKE_ROBOTPROG 模式。 这意味着操作者可以在 RoboDK 图形用户界面 GUI 之外的操作环境下运行该机器人的移动命令。相关代码如下所示:
RDK = Robolink()
RDK.setRunMode(RUNMODE_RUN_ROBOT)
提示 :在线编程 Python 实例文档 SampleOnlineProgramming.py 位于路径 C:/RoboDK/Library/Macros/ folder 下,它提供了一个非常完整的示例,测试这个示例需要配合使用一个六边图形,相关内容可参见 Python 仿真 Python simulation 部分。
注释 :更多关于如何通过 API 使用机器人驱动器的信息,可参见机器人驱动部分 Robot Drivers section 。
C#( 发音为“ C sharp ” ) 是由微软开发的一种编程语言,可以用于构建和运行在 .NET Framework 之上的各种应用程序。 C# 是简单、强大、类型安全、面向对象的高级程序设计语言。
本文将主要 main section 介绍 RoboDK API 配合通用计算机编程语言 C# 进行机器人编程的优势。
面向 C# 的 RoboDK API 是一个 RoboDK.cs 源文件,它包含了 RoboDK 类(类似于 Python 的 Robolink 类 ), RoboDK.Item 类(类似于 Python 的 Robolink.Item 类的 API ),和其他机器人工具,例如用于进行姿态转向操作的矩阵类 (RoboDK.Mat) 。
此处为面向 C# 的 RoboDK API 提供了一个项目示例,如下图所示 ( 包含完整的源代码 ) 。
选择加载文件 Load File 选项 , 打开 RoboDK 站或任何 RoboDK 支持的其他文件。如果你已成功加载机器人 , 则相应机器人变量将会依次更新 ( 与使用选择机器人 Select Robot 相同 ) 。
下面的视频展示了一个面向 C# 的 RoboDK API 的项目示例 : https://www.youtube.com/watch?v=1hRRYr9bEsY
注意
:
加载和运行项目示例时需要
Microsoft Visual Studio
软件。你可以到
Visual Studio
Community
(Express)
下载它的免费版本。
当机器人使用此类命令时 ( 如 MoveJ 、 MoveL 或 setDO) , 系统将默认在 C# 仿真下运行该程序。当 C# 示例项目启动时,系统也会默认设置 C# 为仿真模式。
这意味着机器人的动作可以在 RoboDK 上进行仿真。例如,我们可以选择右边的按钮 (+Tx , -Tx ,… ) ,使得机器人位移 10 mm 的步长,或者我们可以选择运行测试程序 Run Test Program 按钮,机器人就会围绕当前位置做一个六边形的运动。
设置一些断点来调试应用程序并测试该机器人的目标范围。机器人的目标范围可以定义为关节坐标或 Mat 变量 (4x4 姿态矩阵 ) ,通过使用 XYZWPR 形式可以帮助排除一些程序问题。更多相关信息请参见参考坐标系 Reference Frames 部分。
此外
,
也可以将运行模式
Run Mode
切换为离线编程
Offline Programming
模式
或在线编程
Online Programming
模式
(
Run on Robot
)
,
具体内容如下一节所示。
C# 语言编程程序支持通过重复使用之前相同的 C# 代码离线生成 Offline Programming 程序 。以下步骤将测试这一特性:
1. 在运行模式部分选择离线编程 Offline Programming
2. 选择运行测试程序 Run Test Program 或任何其他动作组合。
3. 选择生成程序 Generate Prog 来获取特定于供应商的机器人程序
基于这种操作,可以快速通过执行一个特定于机器人控制器的机器人程序获得相应结果,这个操作可以代替仿真程序。
一旦生成该程序,运行模式 Run Mode 将会切换为仿真 Simulation 状态。
提示 : 右键单击机器人 , 然后点击选择后置处理器 Select Post Processor , 这样就可以为离线编程指定一个后置处理器 ( 如后置处理器 Post Processor 部分所示 ) 。
注意
:
当离线编程
Offline Programming
模式处于活动状态时
,
机器人不会移动
,
因为这时已由
RunMode
模式切换
到
RUNMODE_MAKE_ROBOTPROG
模式
,
相关内容请参见
Python
离线编程
Python OLP
部分。
C# 程序支持直接在机器人上运行程序,通过重复使用之前相同的 C# 仿真代码。线上编程允许在一些特定的机器人控制器上使用机器人驱动 Robot Drivers 。以下步骤将以 C# 项目为例测试此特性:
1. 在运行模式 Run Mode 部分选择 Run on Robot
2. 选择其他任何命令都会使机器人移动
你的运动指令将在真实的机器人上运行,并且对应的仿真器将与该机器人同步运动。
重要提示 :使用机器人驱动程序需要连接 PC 和机器人 ( 右键单击机器人,然后选择 Connect to robot … ) 。更多相关信息请参见 Robot Drivers section 。
注意 :此时 RDK/Robolink 下的运行模式 RunMode 将会 被 切换 为 RUNMODE_RUN_ROBOT 模式 , 机器人由此可以执行命令动作 。 相关代码如下 :
RDK = Robolink();
RDK.setRunMode( RUNMODE_RUN_ROBOT );
提示 : 在线编程 Python 实例文档 SampleOnlineProgramming.py 宏 位于路径 C:/RoboDK/Library/Macros/ folder 下 , 该文档为 RoboDK GUI 之外的在线编程 方案 提供了一个 很好的 Python 案例 。
注意
:
更多关于如何通过
API
使用机器人驱动的信息请参见
Robot Drivers section
。
Matlab 是美国 MathWorks 公司出品的一种商业数学编程软件 , 它专业用于矩阵操作、函数绘制和数据分析以及算法开发等。
本文将主要 main section 介绍 RoboDK API 配合通用编程语言 Matlab 进行机器人编程的优势。
在路径 C:/RoboDK/Matlab/ 下安装 RoboDK 后 , 就可以使用 Matlab 了。 Matlab API 会提供一组 m 形式的文件,其中包括:
● Robolink.m is a class that interfaces with RoboDK. Any object in the RoboDK Station Tree can be retrieved using the Rob
● RobolinkItem.m is a class that represents a RoboDK item in the Station Tree. It is possible to perform different operations on that item (same as Python’s Robolink.Item class).
● Robolink.m 是一个与 RoboDK 接口的类。 RoboDK 工作站树型结构 中的任何对象都可以使用 Robolink 对象检索,它由 RobolinkItem 对象表示 ( 与 Python 的 Robolink 类相同 ) 。
● RobolinkItem.m 是一个 代表 RoboDK 工作站 中项目的类。 它 可以对该项目执行 各种类型的 操作 ( 与 Python 的 Robolink.Item 类 相同 ) 。
● transl.m , rotx.m , roty.m 和 rotz.m 是在给定一个 XYZ 平移向量或沿着一个特定轴旋转的情况下创建的姿态矩阵函数。
● Pose_2_XYZRPW.m 和 XYZRPW_2_Pose.m 允许将体式转换为 XYZ 位置和 RPW 欧拉角,反之亦然。更多相关信息请参见参考坐标系 Reference Frames 部分。
样本代码
请参见此处页面:
https://robodk.com/Matlab-API
在 Simulink 项目仿真过程中,机器人会沿着随意生成的 XYZ 坐标系移动。
下面的视频展示了它运行仿真的结果
:
https://www.youtube.com/watch?v=7DDBMwa0-Oc
本节主要描述 RoboDK 启动时可用的命令行选项。
下面的代码是一个包含参数的通用调用 :
Robodk.exe /[option1] /[option2] open_fileA /[option3] open_fileB ...
RoboDK 支持以文件格式作为参数进行的相应传递。支持的文件格式如下:
● RDK ➔ RoboDK 站内文件:该文件将整个项目保存在一个文件中,包含了各式各样的依赖项 ( 机器人、工具、 NC 文件… ) 。
● r obot ➔ Robot file 机器人文件:加载机器人文件还将为该机器人创建一个参考坐标。
● tool ➔ Tool file 工具文件:工具自动添加至最近添加的机器人。
● stl/wrl/step/stp/iges/igs/sld ➔ Object (3D geometry) :该对象能很容易的转换为工具 converted to tools 。
● apt/gcode/cnc ➔ NC program file : RoboDK 会自动准备铣削项目 ( 实用程序 Utilities ➔ 铣削项目 Milling Project ) 。
重要提示 : NC files 将会连接到 RoboDK 站的主动参考坐标和工具参考坐标中。
注意 :当尝试传递参数时,可以通过 Python API 来启动 RoboDK 。相关 API 代码如下所示:
RDK = Robolink(args='/ADDFRAME "/RENAME=Main Ref " load_object.stl')
可用的命令行选项 :
/NOSPLASH
启动时移除 RoboDK 启动图像。
/DEBUG
在 bin 文件夹中创建一个 RoboDK.debug.txt 文件,允许调试该应用程序。
/SETTINGS=filepath
从文本文件中加载参数。文本文件的每一行都被视为一个单独的参数。
/NOSHOW
当 RoboDK 加载文件和更新程序时隐藏所有窗口。
/NO_WINDOWS
当加载 NC 文件时自动隐藏经常显示的所有窗口。
/PORT=20501
通过指定的端口强制应用编程接口(即 API )通信( TCP/IP 协议)。默认端口号是 20500 。
/ADDFRAME
添加一个新的参考坐标。任何加载的新对象都将被放置在这个参考坐标中。
/RESET
如果加载了一个新对象,它将被强制放置在站内的参考坐标 ( 而不是放在最后添加的坐标 ) 。
/RENAME=Name
修改最后添加的参考坐标或者对象的名称。
/MOVE=x;y;z;rx;ry;rz
移动最后一个增加的参考坐标 ( 单位为毫米和角度数 ) 。
/UPDATE_APT=YES
覆盖所有具有相同 APT 文件的机器人加工项目。
/UPDATE_APT=NO
不覆盖任何机器人加工项目(如果有相同的名称,将创建项目副本)。
/UPDATE=file.apt
如果文件没有问题,则会加载和更新 APT 文件并生成机器人程序。
/REPLACE_ITEMS=YES
当加载新文件并有匹配的名称时,更新现有的工具和对象
/REPLACE_ITEMS=NO
当加载新文件时,不允许覆盖工具和对象
/SETCOLOR=steelblue
设置最后加载对象的颜色 ( 物体、机器人工具、机器人或者机械装置 ) 。这些颜色允许以颜色或十六进制颜色命名。
注意 :单击一次不会选择超过 50% 透明度的对象。
/AUTOGEN_MAINPROG=Prog
生成一个主程序,该程序可以按顺序调用连接到加载 APT 文件的程序。
/SELECTTOOL=#1
设置第一个可用的机器人工具(或相应的数字)作为当前 active 工具(该工具可以在新程序加载后使用)
/SELECTTOOL=tool name
选择当前 active 工具用于匹配名称。
/ADDCUTTER=length|path/cutter name.stl
允许在刀架上增加刀具的几何形状。在 RoboDK 中,刀具被当作是一种为了保持刀具几何形状的工具来使用。刀具几何形状的原点位于刀具尖端,并且它的文件必须设置为 STL 编码格式 (ASCII 或二进制 ) 。长度必须以毫米表示,与刀架有关 ( 刀架的正 Z 轴必须指向外面 ) 。
/SELECTCUTTER=cutter name
Selectcutter 与 SELECTTOOL 具有相同的作用,刀具被视为工具。
/SHOW
在所有文件都已加载完,并且加工项目都已更新结束时,将会自动显示 RoboDK 窗口。
使用下列选项之一将调整 /SHOW 命令响应的能见度。
/HIDDEN
一旦 RoboDK 完成装载,将会避免自动触发 /SHOW 。显示窗口的唯一方法是使用 API 。
/QUIT
如果没有错误消息,将会退出程序。
/END
即使有任何错误消息也退出程序。
![]() |
骑白马的小蝌蚪 · 海康机器人-机器视觉-下载中心 1 周前 |
![]() |
坏坏的骆驼 · 机器化学家来了----科技自立自强之路 11 小时前 |
![]() |
跑龙套的单杠 · IBM Cloud Docs 7 月前 |
![]() |
内向的火柴 · hanwckf博客 - 百度 7 月前 |
![]() |
一身肌肉的台灯 · GitHub - bl0x/learn-fpga-amaranth: Code for Bruno Levy's learn-fpga tutorial written in Amaranth HDL 8 月前 |
![]() |
博学的海龟 · 招商銀行 -- 安全提示 -- 手機銀行使用安全提示 8 月前 |
![]() |
逼格高的小笼包 · VBA清空数组_360搜索 8 月前 |