1 概述
RobotSim采用VS2005 VC++开发,结合OPENGL实现了一款专门对应臂式机器人的轨迹规划仿真和控制软件。该软件能提供任意3到6自由度臂式机器人的三维空间自动建模功能,同时能生成机器人正运动学(正解)和机器人逆运动学(逆解)。机器人DH参数可由用户配置和修改,并可保存成对应的机器人配置文件,形成机器人类型库,方便后续再次使用。RobotSim是一款适合3到6自由度臂式机器人的建模和轨迹规划仿真及控制的学习软件。
该软件支持示教规划(带回放、暂停、继续等功能)、设计了一种机器人语言VBS(完全兼容VBS脚本,并自定义机器人操作函数,可灵活编程),可通过机器人语言即程序规划进行机器人仿真和控制。通过AUTOCAD支持的DXF格式的机械图纸图形载入和轨迹预处理,可跟踪仿真图形规划,并可导出机器人各个关节控制的角度序列和VBS程序。自定义了一种SVG图形绘图写字规划功能,通过画图板式的图形绘制及文字输入,可进行图形在机器人空间中的载入和轨迹跟踪规划。采用目前流行的G代码文件,实现了通用G代码机器人末端轨迹载入过程和仿真跟踪过程及轨迹生成。这些离线仿真功能使用方便,规划简单。
通过本软件的对目标轨迹图形的跟踪和仿真规划,实现了的机器人离线编程过程,并结合开放式控制板卡,与实际机器人本体通信和联机控制,解决了各种复杂图形路径的轨迹规划难题,为机器人加工制造提供一种新的轨迹生成技术解决方案。同时,对于机器人爱好者和学习者,本软件也提供了机器人学等知识的学习和演示功能。
2 软件功能介绍
2.1 DH建模
该RobotSim支持DH建模,可由用户自定义机器人DH参数,并自动生成模拟式的机器人三维仿真模型。同时,生成该机器人的正向运动学和逆向运动学。机器人建模的坐标系也会显示在机器人的各个关节轴心处。通过软件的配置功能,可隐藏机器人坐标系。
机器人仿真运动时,其笛卡尔位姿和机器人末端姿态均显示在界面上,会同机器人各个关节角度值可实时进行显示。
2.2 示教规划
示教规划与传统的示教规划一致,支持机器人关节空间规划和机器人笛卡尔空间规划。
1、关节空间规划
关节空间规划,是通过软件操作机器人的各个关节,做正向运动学计算和仿真控制的过程。机器人运动过程中,各个关节参数、机器人末端参数都会实时显示。三维空间中会给出动画和末端规划走线。末端显示的机器人轨迹可通过机器人配置选项显示为线迹或点迹。
可在机器人运动过程中插入关键点进行轨迹插值。轨迹点可存入软件界面列表中,并具有可运行、暂停、回放和单步调试等功能。插值的轨迹点可修改,方便示教规划。
2、笛卡尔空间规划
笛卡尔空间规划是机器人逆向运动学规划的过程,通过给出机器人末端的位置和姿态求解机器人各个关节角度参数,并再次通过正向运动学完成仿真运动和控制过程。
所以在笛卡尔空间规划时,对于六自由度机器人而言,前三个关节负责机器人X,Y,Z位置,后三个关节负责机器人姿态。笛卡尔空间规划的末端轨迹一般是直线。
- 示教点的保存
当机器人运动到合适的位姿时,可保存该机器人所在的示教点。示教点可根据用户按照不同类型的运动方式需要存入列表。主要运动类型有如下几种。这些类型同时也是程序规划自定义机器人指令的子集。
表1 示教指令表
序号 | 类型 | 参数 | 说明 |
1 | MOVEP | 关节1~关节6角度值 | 点位规划,机器人按关节角度值运动 |
2 | MOVEL | 关节1~关节6角度值 | 直线规划,机器人按关节角度值对应的末端位姿运动 |
3 | DELAY | 时间(ms) | 延时函数,机器人停留一段时间 |
4 | HAND | Bool(True,False) | 机器人手开合函数,暂时定为开合 |
机器人示教列表保存后不仅可以修改,由于这些指令可被VBS脚本支持,所以还可导出VBS脚本程序,供程序规划进一步编辑处理,便于更精确处理机器人轨迹运动。
机器人轨迹在回放过程中,可在示教列表中自动跟踪当前执行的示教点行数,如图,示教点蓝色行标识。并可根据用户要求,进行“暂停”,“单步”,“继续”等人性化示教操作。
2.3 程序规划
按照VBS脚本语言,通过自定义机器人控制指令,设计了一款机器人编程语言,程序语言完全兼容VBS脚本,用户可自行编写VBS脚本程序,控制机器人完成各种复杂轨迹的规划过程。
设计了几种机器人指令,可供VB脚本编程调用。
表2 机器人脚本指令集
序号 | 类型 | 参数 | 说明 |
1 | MOVEP | 关节1~关节6角度值 | 点位规划,机器人按关节角度值运动 |
2 | MOVEL | 关节1~关节6角度值 | 直线插补规划,机器人按关节角度值对应的末端位姿进行直线插补运动 |
3 | DELAY | 时间(ms) | 延时函数,机器人停留一段时间 |
4 | HAND | Bool(True,False) | 机器人手开合函数,暂时定为开合 |
5 | MOVEH | X,Y,Z | 机器人末端位置运动函数 |
6 | MOVER | Rx,Ry,Rz | 机器人末端姿态函数,这里Rx,Ry,Rz为给定姿态的增量值 |
7 | MOVEC | P1,P2 | 从当前末端点到P1和P2做圆弧插补运动函数 |
8 | ROTATE | Angle,P | 绕指定点P旋转Angle角度的函数(未实现) |
9 | IN | addr | 返回给定地址的机器人传感器IO值,可用来做机器人外围传感器参数获取 |
10 | OUT | Addr,Value | 向指定地址的机器人执行器写value值,可用来做机器人外围传感器参数的控制操作 |
通过以上自定义机器人函数,再结合VB脚本的强大数学和逻辑编程能力,可对机器人完成高难度和任何复杂轨迹的规划过程。举例如下:
控制机器人做一螺旋线轨迹规划,螺旋线轨迹实例代码如下:
movep 0,0,0,0,0,0
a=0.2
b=0.2/12.56
for i=0 to 12.56 step 0.01
x=a*cos(i)
y=a*sin(i)
z=b*i
moveh 0.5+x,0.2+y,z-0.4
next
规划轨迹过程如下:
2.4 图形规划
图形规划采用目前流行的DXF格式的机械图和G代码作为目标轨迹。目标轨迹可被载入到机器人所在的三维空间中,可以移动到需要的位置,并根据该轨迹图的图形尺寸完成机器人轨迹规划和仿真运动过程。
- 提供用户选择DXF文件接口和DXF文件图形在三维空间中的显示
用户可对图形进行X,Y,Z方向的位置移动,以便放置DXF图形到机器人工作空间。并通过图形规划,完成指定的DXF图形的轨迹规划过程。规划成功后,可导出VB程序控制文件和机器人各个关节的位置角度序列文件,这样复杂图形的规划过程就变成了可被控制的程序规划过程,用户可编辑和修改这些文件,并进一步精确规划DXF图形所需的机器人轨迹过程。
2)提供用户选择G代码文件接口和G代码轨迹图形在三维空间中的显示
用户可对图形进行X,Y,Z方向的位置移动,以便放置G代码轨迹图形到机器人可工作空间。并通过图形规划,完成指定的G代码轨迹图形的轨迹规划过程。规划成功后,可导出VB程序控制文件和机器人各个关节的位置角度序列文件,这样复杂图形的规划过程就变成了可被控制的程序规划过程,用户可编辑和修改这些文件,并进一步精确规划G代码图形所需的机器人轨迹过程。
2.5 绘图写字
- 提供用户绘制图形轨迹功能
用户通过鼠标可在机器人软件绘图面板上绘制任意图形,并对其进行机器人工作轨迹规划,并可导出vb脚本程序和G代码文件。
- 提供用户绘制SVG图形轨迹功能
用户通过SVG绘图软件,可绘制任意图形和添加文字,并可导入到机器人软件中对其进行轨迹规划,并可导出vb脚本程序和G代码文件。SVG绘图软件如下,可以通过绘图面板绘制任意图形和添加文字。保存的svg图形被导入到机器人软件绘图面板后可进行显示,由机器人软件对svg图形进行规划,并可在机器人三维空间中绘制出同样的svg图形。演示信息如下图。
2.6 联机控制
1)串口通信控制功能
目前,机器人仿真规划的各个过程均已实现,且规划的机器人各个关节角度均已获取,并实现了关节角度到机器人控制器的接口。现在,只需要该机器人软件结合具体的机器人控制器,进行连机通信,将规划的轨迹数据送入机器人控制器,即可完成真实机器人轨迹规划和控制的过程。当下,已经通过串口通信和支持串口通信的机器人控制器可完成对真实机器人本体控制。
2)力反馈控制功能
本机器人软件中集成了force dimension的omega6力反馈控制器驱动,可连接力反馈控制器,通过力反馈控制器控制机器人在三维空间中进行仿真运动。
3 结束语
目前,该RobotSim机器人快速成型仿真软件已经完成初步的功能设计和实现,一些细节上还需要进一步完善。但是,基本功能已经可以进行一些必要的机器人轨迹规划研究和离线编程学习,给机器人爱好者进行学习参考。另外,就是需要和真实的机器人控制器连接通信,通过本机器人软件完成机器人从仿真到实际应用的实践过程。联系抠扣:1421534814