Robodk插件接口
Robodk插件接口简介

介绍

此帮助文档是为Robodk开发插件的简介。Robodk插件允许使用Robodk接口和Robodk API扩展Robodk。与默认的Robodk API(在Python,C#,C ++,MATLAB等中提供)相反,此Robodk插件接口本地链接到Robodk的核心。因此,当插件接口内使用Robodk API时(使用IITEMirobodk)速度比使用默认API快速定时测试。但是,所有Robodk插件应用程序都必须在Robodk的环境中存在。

这里有一些Robodk示例插件:

每个示例包括Robodk_interface文件夹。每个插件都需要此文件夹,并将接口定义为Robodk。

这些示例包括一个定制的机器人面板,该机器人面板将机器人前进和逆运动学应用,实时示例,一个基于重力的插件和基于OPC-UA界面的插件Open62541(服务器和客户端示例)。

双击emplineXample.pro文件以使用QT启动项目。确保遵循“安装要求”部分(安装要求)将QT作为C ++开发环境安装。

Robodk插件结构

插件接口(IAPPROBODK)

每个插件必须实现iapprobodk班级。这iapprobodk定义Robodk应用程序的接口。

与标准API相反,插件接口允许您与Robodk的主窗口进行交互,并通过该机器人的外观来自定义Robodk的外观iapprobodk班级。工具栏,菜单栏和窗口可以通过使用iapprobodk班级。

您可以通过选择以下方式加载示例插件之一:

  • 工具 - 插件

Robodk API在插件中

irobodk(Robodk)

irobodk类(或Robodk)定义了Robodk API的接口。默认情况下,此Robodk API是相同的(//www.hi-ks.com/doc/en/robodk-api.html#robodkapi)。但是,当您在Robodk插件中使用它时,Robodk API速度更快:定时测试。当使用类加载插件时:iApprobodk :: Pluginload它通过指针irobodk这是Robodk API的接口。

Robodk和irobodk完全是相同类型的类。Robodk用于默认示例中,以使其与标准C ++ Robodk API兼容。

有关Robodk API的更多信息,请参见此处:

IITEM(项目)

IITEM类(或项目)可用于在Robodk树中可用的任何项目上操作。使用诸如类之类的功能:irobodk :: getitem或班级:iRobodk :: getitemlist从Robodk站树检索项目。项目是指向IITEM。应该使用类删除项目:IITEM :: DELETE(不使用类破坏者)。

有关Robodk项目类(基于Python API)的更多信息,请参见此处:

Robodk类型文件

robodktypes.h文件定义了Robodk API使用的一组类型。包含:

  • 姿势操纵的课程。
  • tjoints代表机器人关节变量的类
  • tmatrix2d数据结构代表可变大小2D矩阵(主要用于内部用途)

插件接口与Robodk API

Robodk API是一组通用命令集,可让您与Robodk进行交互并自动化任务。Robodk在Robodk中使用宏时,默认使用了Robodk API。Robodk插件接口包括Robodk API的接口。

通过插件插件使用Robodk API的主要优点是:

  • Robodk API的速度要快得多,因为它被加载为库(Robodk插件实际上是由Robodk加载的库)。
  • 您可以自定义Robodk主窗口的外观(包括菜单,工具栏和添加停靠的窗口)。

在插件内使用Robodk API时,您应该注意以下内容:

  • 项目(项目/IITEM)是指针,而不是对象。您可以通过检查该项目是否有效,通过检查该项目是否有效。更多信息在这里:itemValid。
  • 您必须致电课:iRobodk ::渲染每次您要更新屏幕时(例如,如果您使用类更改机器人的位置:IITEM ::关节)。更新屏幕不会自动完成。
  • 插件只能使用QT库以C ++代码部署。

定时测试

插件应用程序显示了如何实现基本插件。除其他外,它执行了一些计时测试,以计算特定计算机上的Robodk的速度。通过选择“插件速度信息”按钮,您将获得定时统计信息。

这些统计数据是由类生成的:插件:: callback_information。例如,正向运动学和反向运动学通常分别低于2微秒和10微秒(1个微秒= 1E-6秒)。

要求

每个Robodk插件都必须使用QT创建者开发,并遵循QT的项目指南。建议使用插件项目开始使用您的新Robodk插件(双击emplineXample.pro以使用QT Creator打开它)。

必须安装Robodk来开发插件。Robodk的免费版本足以开发插件作为概念证明。

安装要求

使Robodk Plugins起作用的要求:

  • 将插件文件放在文件夹中:C:/Robodk/bin/plugins/(DLL文件)。默认情况下在epeminexample.pro文件中设置(如下图所示)
  • 启动Robodk(c:/robodk/bin/robodk.exe)并传递命令行参数:-pluginsload如下图所示。
    • 另外,如果未将dll放置在默认路径中,则可以传递参数“ -pluginload =途径to-your-plugin.dll”。该值可以是通往库的路径,插件文件夹中的文件名或插件名称(插件名称)。
    • 您也可以使用BAT文件启动Robodk:C:/robodk/robodk-allow-plugins.bat。将显示示例插件。
    • 选择工具插头插入以获取更多选项。Robodk的Future Robodk版本将在C:/robodk/bin/插件中加载插件
  • 为了开发目的,请确保使用Robodk启动插件,并通过以下图像所示,传递-pluginsload参数。
    您可以通过选择以下方式加载示例插件之一:
  • 工具 - 插件

Robodk插件的默认位置是C:/Robodk/bin/插件

在调试模式下运行

您的插件发布和调试二进制文件不应与Robodk的发行版和调试二进制文件混合。默认情况下未提供Robodk调试二进制文件。

要在调试模式下正确运行插件,您应该使用Robodk调试二进制文件:

  • 与我们联系以获取Robodk的调试版本(绑定文件夹)。
  • 解压缩绑定文件夹中的文件夹c:/robodk/bind/
  • 选择项目运行设置,然后将可执行器设置为c:/robodk/bind/robodk.exe(如下图所示,不要忘记d)。

重要的是:将调试DLL与发行版DLL混合不起作用(将作为控制台输出提供消息)。确保每次切换调试和发布模式时都更新此设置。

重要的是:如果您遇到奇怪的插件加载问题,请尝试删除所有插件并再次构建它们(C:/robodk/bin/plugins和c:/robodk/bind/bind/插件中的所有文件)。

  • 选择调试构建,您可以像往常一样开始调试。

QT提示

必须使用QT插件框架创建Robodk插件。QT基于C ++,因此,需要编程C ++中的Robodk插件。

QT是C ++的一组有用的库,QT创建者是QT的默认开发环境(IDE)。我们建议使用QT Creator作为编程Robodk插件的开发环境。

此列表提供了一些有用的链接和提示,用于使用QT:

  • 双击emplineXample.pro文件,使用QT创建者打开示例项目。
  • 使用QT信号/插槽机制进行操作/按钮回调(http://doc.qt.io/qt-5/signalsandslots.html)。信号和插槽是安全的。
  • 使用TR(“您的字符串”)或Qobject :: TR(“您的字符串”)包裹字符串,以允许使用QT语言学家进行翻译。了解更多信息:http://doc.qt.io/qt-5/qtlinguist-index.html
  • 如果您遇到奇怪的构建问题,则删除自动创建以强制新构建的构建文件夹可能很有用。
  • 如果您在Robodk中遇到奇怪的插件加载问题,建议删除库并使用新构建创建插件库。
  • 有关QT的更多信息:https://www.qt.io/

有用的链接

涉及Robodk API的有用链接: