机器人软件

机器人软件是一组编码命令或指令,它们告诉机械设备和电子系统,一起称为机器人,执行哪些任务。 机器人软件用于执行自主任务。 已经提出许多软件系统和框架以使编程机器人更容易。

一些机器人软件旨在开发智能机械设备。 常见任务包括反馈循环,控制,寻路,数据过滤,定位和共享数据。

介绍
虽然它是一种特定类型的软件,但它仍然非常多样化。 每个制造商都有自己的机器人软件。 虽然绝大多数软件都是关于数据操作和在屏幕上查看结果,但机器人软件是用于操纵现实世界中的对象或工具。

工业机器人软件
工业机器人软件由数据对象和指令列表组成,称为程序流程(指令列表)。 例如,

转到Jig1

是指向机器人转到名为Jig1的位置数据的指令。 当然,程序也可以包含隐含数据

告诉轴1移动30度。

数据和程序通常位于机器人控制器存储器的单独部分中。 可以在不改变程序的情况下更改数据,反之亦然。 例如,可以使用相同的Jig1编写不同的程序,或者可以在不更改使用它的程序的情况下调整Jig1的位置。

工业机器人编程语言的例子
由于机器人软件的高度专有性,大多数机器人硬件制造商也提供自己的软件。 虽然这在其他自动控制系统中并不罕见,但缺乏机器人编程方法的标准化确实带来了某些挑战。 例如,有超过30种不同的工业机器人制造商,因此还需要30种不同的机器人编程语言。 不同机器人之间有足够的相似之处,有可能获得对机器人编程的广泛理解,而无需学习每个制造商的专有语言。

控制来自多个制造商的机器人的一种方法是使用后处理器和离线编程(机器人技术)软件。 利用这种方法,可以从通用编程语言(例如Python(编程语言))处理品牌特定的机器人编程语言。 然而,编译和上传固定的离线代码到机器人控制器不允许机器人系统能够识别状态,因此它无法适应它的运动并随着环境的变化而恢复。 目前,只有使用肌动蛋白才能实现对任何机器人的统一实时自适应控制。

已发布的机器人编程语言的一些示例如下所示。

普通英语任务:
移至P1(一般安全位置)
转到P2(P3的方法)
移动到P3(拾取对象的位置)
关闭抓手
转到P4(P5的方法)
移动到P5(放置对象的位置)
打开抓手
移至P1并完成
VAL是最早的机器人’语言’之一,用于Unimate机器人。 VAL的变种已被包括Adept Technology在内的其他制造商使用。 史陶比尔目前使用的是VAL3。
示例程序:
计划PICKPLACE
1.移动P1
2.移动P2
3.移动P3
4. CLOSEI 0.00
5.移动P4
6.移动P5
7. OPENI 0.00
8.移动P1
。结束
史陶比尔VAL3计划示例:
开始
movej(P1,tGripper,mNomSpeed)
movej(Appro公司(P3,trAppro),tGripper,mNomSpeed)
MOVEL(P3,tGripper,mNomSpeed)
接近(tGripper)
movej(Appro公司(P5,trAppro),tGripper,mNomSpeed)
MOVEL(P5,tGripper,mNomSpeed)
开(tGripper)
movej(P1,tGripper,mNomSpeed)
结束
trAppro是笛卡尔变换变量。 如果我们使用with命令,我们不需要教授P2和P4点,但我们动态地将一种方法转换为轨迹生成的拾取和放置的位置。
爱普生RC +(真空拾音器的例子)
功能PickPlace
跳P1
跳P2
跳P3
真空
等一下.1
跳P4
跳P5
关闭真空
等一下.1
跳P1
挡开
ROBOFORTH(基于FORTH的语言)。
:PICKPLACE
P1
P3 GRIP WITHDRAW
P5 UNGRIP撤回
P1
;
(使用Roboforth,您可以指定场所的进场位置,这样您就不需要P2和P4。)

很明显,机器人不应继续下一步,直到夹具完全关闭。 在CLOSEI和GRIP的上述示例中隐含确认或允许时间,而On vacuum命令需要时间延迟以确保令人满意的吸力。

其他机器人编程语言

可视化编程语言
LEGO Mindstorms EV3编程语言是一种简单的语言,供用户与之交互。 它是用LabVIEW编写的图形用户界面(GUI)。 方法是从程序而不是数据开始。 通过将图标拖入程序区域并添加或插入序列来构建程序。 然后为每个图标指定参数(数据)。 例如,对于电机驱动器图标,您可以指定哪些电机以及它们的移动量。 编写程序时,将其下载到Lego NXT“砖块”(微控制器)进行测试。

脚本语言
脚本语言是一种高级编程语言,用于控制软件应用程序,并且可以实时解释,或“即时翻译”,而不是事先编译。 脚本语言可以是通用编程语言,或者可以限于用于增强应用程序或系统程序的运行的特定功能。 某些脚本语言(如RoboLogix)具有驻留在寄存器中的数据对象,程序流表示用于对机器人进行编程的指令列表或指令集。

工业机器人中的编程语言
机器人品牌语言名称
ABB RAPID
Comau PDL2
Fanuc Karel
川崎AS
Kuka KRL
史陶比尔VAL3
安川通知
编程语言通常设计用于从头开始构建数据结构和算法,而脚本语言更多用于将组件和指令连接或“粘合”在一起。 因此,脚本语言指令集通常是程序命令的简化列表,用于简化编程过程并提供快速应用程序开发。

并行语言
另一个有趣的方法值得一提。 所有机器人应用程序都需要并行性和基于事件的编程。 并行性是机器人同时做两件或两件以上的事情。 这需要适当的硬件和软件。 大多数编程语言依赖于线程或复杂的抽象类来处理并行性及其附带的复杂性,例如对共享资源的并发访问。 URBI通过在语言语义的核心中集成并行性和事件来提供更高级别的抽象。

每当(face.visible)
{
headPan.val + = camera.xfov * face.x
&安培;
headTilt.val + = camera.yfov * face.y
}

上面的代码将并行移动headPan和headTilt电机,以便机器人头部跟随其相机拍摄的视频上可见的人脸,只要机器人看到一张脸。

机器人应用软件
无论使用哪种语言,机器人软件的最终结果是创建帮助或娱乐人的机器人应用程序。 应用程序包括命令和控制和任务分配软件。 命令和控制软件包括用于远程操作机器人的机器人控制GUI,用于自动机器人的点击式命令软件,以及用于工厂中移动机器人的调度软件。 任务软件包括简单的拖放界面,用于设置交付路线,安全巡逻和访客游览; 它还包括用于部署特定应用程序的自定义程序。 通用机器人应用软件部署在广泛分布的机器人平台上。

安全考虑
编程错误代表了严重的安全考虑,特别是在大型工业机器人中。 工业机器人的功率和尺寸意味着如果编程不正确或以不安全的方式使用,它们能够造成严重伤害。 由于工业机器人的质量和高速度,人们在自动操作期间留在机器人的工作区域总是不安全的。 系统可以在意外时间开始运动,并且在许多情况下人类将无法快速反应,即使准备这样做。 因此,即使软件没有编程错误,也必须非常小心地使工业机器人对人类工作者或人类交互安全,例如装载或卸载零件,清除零件堵塞或进行维护。 ANSI / RIA R15.06-1999美国工业机器人和机器人系统国家标准 – 机器人工业协会的安全要求(修订版ANSI / RIA R15.06-1992)是机器人安全的公认标准。 这包括工业机器人设计以及工厂机器人在工厂车间的实施或集成和使用的指导原则。 涵盖了许多安全概念,例如安全控制器,教学模式期间的最大速度以及物理障碍的使用。

机器人软件项目
以下是机器人项目的开源和免费软件列表。

CLARAty – 用于机器人自治的耦合层架构。 这是四个机构的共同努力:美国宇航局喷气推进实验室,美国宇航局艾姆斯研究中心,卡内基梅隆大学和明尼苏达大学。
dLife – 用于机器人,AI和Vision的免费/开源Java库。 支持Pioneer,Khepera II& II,Hemission,Aibo和Finch机器人以及播放器/舞台模拟。
实验机器人框架 – 用于在3d中进行多个机器人实验的软件,支持最新技术,位于播放器/舞台和开放/ CV之上。
MARIE – 移动和自动机器人集成环境 – 是一种免费软件,它使用基于组件的方法,通过集成以前存在的和新的软件组件来构建机器人软件系统。
微软 – 微软机器人开发者工作室
OpenRDK – 用于开发松耦合模块的机器人技术的开源软件框架。 它提供透明的并发管理,进程间(通过套接字)和进程内(通过共享内存)基于黑板的通信和允许输入/输出数据端口概念系统设计的链接技术。 提供用于连接模拟器和通用机器人驱动器的模块。
OpenRTM-aist – 基于RT中间件标准开发的软件平台。 它由日本国家先进工业科学技术研究所开发。
OROCOS – 开放式机器人控制软件项目提供了一个免费软件工具包,用于实时机器人手臂和机床控制。
OPRoS – 开放平台机器人服务是一个用于机器人开发的开源项目。 它提供了一个解决方案,包括机器人平台和GUI开发工具以及机器人设备组件的源代码。
RoboDK – 用于模拟工业机器人的机器人开发套件平台。 RoboDK允许您使用Python对任何机器人进行编程,并根据您的机器人控制器处理品牌特定的语法。
Robotics Library是一个开源C ++库,涵盖多个机器人的运动学,规划,可视化和硬件驱动程序。
用于MATLAB的Robotics工具箱 – 这是一个自由软件,提供表示姿势(均匀变换,欧拉和RPY角度,四元数),臂机器人(前进/反向运动和动力学)和移动机器人(控制,定位和规划)的功能
Rossum项目,GW Lucas,开源机器人项目。
播放器/舞台项目 – 一个非常受欢迎的自由软件机器人界面和模拟系统,用于全球机器人研究和教学。
Pyro,Python Robotics – 用于大学和学院的流行机器人自由软件。
RoboMind – 用于学习机器人和编程基础知识的教育软件。
机器人操作系统 – 机器人操作系统是使用Python和C ++进行机器人编程的开源平台。 Java,Lisp,Lua和Pharo受到支持,但仍处于试验阶段。
机器人智能核心

离线编程
Visual Components是一款商业3D离散事件仿真软件,可在一个平台上实现物料流和机器人仿真。 该功能可通过离线编程功能和PLC连接进行扩展。
“基础知识 – 机器人软件”。 西雅图机器人学会。
“移动自主机器人软件(MARS)”。 佐治亚理工学院。
“技术数据库”。 robot.spawar.navy.mil。
爱达荷州国家实验室的自适应机器人软件

在线控制
Energid Technologies开发并销售Actin SDK,这是一个用C ++编写的机器人工具包,优化引擎和约束管理系统,它使用基于雅可比行列的运动学来优化所有类型机器人的性能。 由于肌动蛋白作为SDK销售,因此可以将其标记为白色或与其他机器人控制软件包进行OEM。 这种方法允许用户通过GUI在离线模式下开发对已知系统的控制,然后让Actin处理高级在线控制,以实时向机器人/控制器实时传输不断更新的联合级命令,以通过调整来避免碰撞感受到环境的变化。