简介
本部分的文档介绍了c++的RoboDK API。
RoboDK API允许为工业机器人创建模拟,并生成特定于供应商的机器人程序。世界杯2022美洲预选赛直播虽然RoboDK的图形用户界面可以用来创建程序,但也可以通过使用c++等通用编程语言来扩展机器人控制器的限制。RoboDK API支持c++, c#, Python, Matlab和Visual Basic。
有了RoboDK API,就可以使用您喜欢的编程语言来模拟和编程任何工业机器人。世界杯2022美洲预选赛直播这避免了使用特定于供应商的编程语言。
注意:这个RoboDK API不是插件接口:
更多信息:插件接口vs. RoboDK API.
类
用于c++的RoboDK API在两个文件中实现(robodk_api.h而且robodk_api.cpp).这些文件定义了以下类。
RoboDK类
RoboDK类定义了RoboDK API的接口。原始的Python参考在这里://www.sinclairbody.com/doc/en/RoboDK-API.html#RoboDKAPI.
更多关于RoboDK API的信息请点击这里:
项目类
Item类可以用于操作RoboDK树中可用的任何项目。使用类:IRoboDK::getItem或类:IRoboDK::getItemList等函数从RoboDK站树中检索项目。Item是指向IItem的指针。应该使用class: IItem::Delete(不使用类析构函数)删除项。
关于RoboDK Item类(基于Python API)的更多信息在这里:
RoboDK类型文件
RoboDK API定义了一组RoboDK API使用的类型。包括:
- 用于姿势操作的Mat类。
- tjoint类表示机器人关节变量
- 表示可变大小的2D矩阵的tMatrix2D数据结构(主要用于内部目的)
插件接口vs. RoboDK API
RoboDK API是一组通用的命令,允许您与RoboDK交互并自动化任务。在RoboDK中使用宏时,默认使用RoboDK API。RoboDK插件是一个DLL库,可以被RoboDK加载,用于扩展某些特性和定制RoboDK的接口。该接口包含一个到RoboDK API的接口。
通过插件接口使用RoboDK API的主要优点如下:
- RoboDK API要快得多,因为它是作为库加载的(RoboDK插件实际上是由RoboDK加载的库)。
- 您可以自定义RoboDK的主窗口的外观(包括菜单、工具栏和添加停靠窗口)。
当你在插件中使用RoboDK API时,你应该注意以下几点:
- 项目(Item/IItem)是指针,而不是对象。您可以通过检查一个项是否为空指针(nullptr)来检查它是否有效。
- 你必须调用类:IRoboDK::Render每次你想要更新屏幕(例如,如果你改变一个机器人的位置使用类:IItem::关节)。更新屏幕不是自动完成的。
- 插件只能使用Qt库作为c++代码部署。
需求
RoboDK API使用Qt库,并提供了一个使用Qt Creator创建的示例。建议使用APIExample项目来开始您的新项目(双击robodk - api - cppp - sample。pro打开它与Qt Creator)。
安装要求
让RoboDK插件工作的要求:
2022世界杯8强赛时间离线编程示例
下面的代码(c++)展示了一个使用RoboDK API进行机器人模拟和离线编程的例子:2022世界杯8强赛时间
intn_sides = 6;
浮动大小= 100.0;
Mat pose_frame = ROBOT->PoseFrame();
Mat pose_tool = ROBOT->PoseTool();
Mat pose_ref = ROBOT->Pose();
机器人——> MoveJ (pose_ref);
机器人——> setPoseFrame (pose_frame);
机器人——> setPoseTool (pose_tool);
机器人——> setSpeed (100);
机器人——> setRounding (5);
机器人——> RunInstruction (“CallOnStart”);
为(int我= 0;我< = n_sides;我+ +){
双角度= ((double) I / n_sides) * 360.0;
垫pose_i (pose_ref);
pose_i.rotate(角,0,0,1.0);
pose_i。翻译(大小,0,0);
pose_i.rotate(角,0,0,1.0);
机器人——> RunInstruction (“移动到点”+ QString:: (i), RoboDK: INSTRUCTION_COMMENT);
双xyzwpr [6];
pose_i.ToXYZRPW (xyzwpr);
机器人——> MoveL (pose_i);
}
机器人——> RunInstruction (“CallOnFinish”);
机器人——> MoveL (pose_ref);
用于仿真的脚本可以用于离线编程,这意味着可以为机器人控制器生成相应的程序。2022世界杯8强赛时间RoboDK支持大量的机器人控制器,并且很容易包含使用后处理器的新机器人控制器的兼容性。
更多的例子:
有关机器人后处理程序的更多信息:
支持机器人
下面列出了RoboDK支持的机器人控制器:
- ABB RAPID IRC5:用于ABB IRC5机器人控制器
- ABB RAPID S4C:用于ABB S4C机器人控制器
- Adept V+:针对Adept V+编程语言
- Allen Bradley Logix5000:表示Allen Bradley Logix5000 PCL
- CLOOS:用于clos机器人控制器
- Comau C5G:为Comau C5G机器人控制器
- 电装PAC:用于电装RC7(及更老版本)机器人控制器(PAC编程语言)
- 电装RC8:用于电装RC8(及更新版本)机器人控制器(PacScript编程语言)
- Dobot:用于教育Dobot机器人
- Fanuc R30iA:用于Fanuc R30iA和R30iB机器人控制器
- 发那科R30iA弧焊:用于发那科弧焊
- Fanuc RJ3:用于Fanuc RJ3机器人控制器
- GCode BnR:用于B&R机器人控制器
- GSK: GSK机器人
- HIWIN HRSS:用于HIWIN机器人
- KAIRO:用于Keba KAIRO机器人控制器
- KUKA IIWA:用于KUKA IIWA日出编程的Java语言
- KUKA KRC2:用于KUKA KRC2机器人控制器
- 库卡KRC2 CamRob:为库卡CamRob铣削选项
- KUKA KRC2 DAT:用于KUKA KRC2机器人控制器,包括DAT数据文件
- KUKA KRC4:用于KUKA KRC4机器人控制器
- KUKA KRC4 Config:用于KUKA KRC4机器人控制器,每一行配置数据
- KUKA KRC4 DAT:用于KUKA KRC4机器人控制器,包括DAT数据文件
- 川崎:为川崎AS机器人控制器
- Meca500:针对Meca500机器人
- Motoman/Yaskawa:用于Motoman机器人控制器(JBI II和JBI III编程)
- 三菱:三菱机器人控制器
- Nachi AX FD:用于Nachi AX和FD机器人控制器
- 代恒OTC:用于代恒OTC机器人控制器
- Precise:用于Precise Scara机器人
- Siemens Sinumerik:为Siemens Sinumerik ROBX机器人控制器
- Staubli VAL3:用于Staubli VAL3机器人程序(CS8控制器及后续版本)
- InlineMove:生成带有内联移动数据的Staubli VAL3程序
- Staubli S6:用于Staubli S6机器人控制器
- 东芝:代表东芝机器人
- 通用机器人:对于UR机器人,生成线性运动作为姿态目标
- 通用机器人RobotiQ:为您的机器人包括支持RobotiQ夹持器
- 万能机器人关节:对于UR机器人,产生线性运动作为关节目标
- 雅马哈:雅马哈机器人
Qt的技巧
RoboDK API的c++版本是基于Qt的,Qt是一组用于c++的有用库,Qt Creator是Qt的默认开发环境(IDE)。
下面的列表提供了一些使用Qt编程的有用链接和技巧:
有用的链接
有关RoboDK API的有用链接: