基于虚拟环境的拣选机器人设计和仿真实现

2021-07-19 06:39刘相权黄小龙
关键词:碰撞检测离线运动学

李 硕,刘相权,黄 民,马 飞,黄小龙

(北京信息科技大学 机电工程学院,北京 100192)

0 引言

仓储对物流活动的成本和效率都有着重大的影响。拣选机器人在物流仓储行业中的应用可以加快智能化、信息化仓库的成型速度。由于仓库环境复杂且机器人设备昂贵,在控制程序研发阶段,一旦发生碰撞,将会造成不可预估的损失。碰撞检测也称为相交测试或者干涉检测,是虚拟现实系统交互性研究的核心问题之一[1]。基于虚拟环境的机器人仿真技术是否可以应用于实际环境,取决于虚拟环境中的机器人碰撞检测结果。

目前工业机器人运动控制的编程方法分为两种:示教编程和离线编程[2]。示教编程方法简单、易于学习。此种方式下,机器人运动精度高,但不能连续工作,而且对作业环境要求高[3]。离线编程时,工作人员可以远程控制机器人运动,减少机器人停机时间,提高了编程的安全性以及机器人工作的效率。因此,机器人离线编程软件的使用日趋广泛[4]。如瑞士ABB公司开发的RobotStudio,北京华航唯实机器人科技有限公司开发的Robot Art,德国西门子公司开发的ROBCAD等。但在对固定轨物流拣选机器人系统进行离线编程时,需要仿真的不仅是机器人,还有进行运输的穿梭车,以上常见的离线编程仿真软件并不适用于此种情况。

本文以安川MH-24机器人和穿梭车组成的物流拣选机器人作为研究对象,在研发阶段,利用Visual Studio与V-REP的联合仿真模拟实际工作方式,通过在V-REP中进行碰撞检测,来判断路径规划是否存在问题,并通过比较真实环境与虚拟环境下的运动轨迹和碰撞情况判断该方法的有效性。

1 总体方案

1.1 固定轨物流拣选机器人系统的组成

由安川MH-24型机器人、Kinect相机、吸盘、气泵、穿梭车等组成的固定轨物流拣选机器人如图1所示。

图1 固定轨物流拣选机器人

其中,穿梭车分为与MH-24机器人连结的主穿梭车以及负责运输的子穿梭车。Kinect相机安装在吸盘的支架上,并与吸盘共同处于机械臂的末端。气泵通过导气管与吸盘上的吸嘴相连,并通过气压差吸住货物,以达到抓取货物的目的。

1.2 系统工作流程

固定轨物流拣选机器人系统首先接收数据库的数据,得到订单信息,主穿梭车运动到货物站台,之后控制机械臂运动,摄像机开机,识别货物并获取位置信息。采用吸盘吸附货物并放置在主穿梭车上,重复搬运直至该订单完成或者达到4个货物后,主穿梭车打开传送带将货物运输到子穿梭车上,由子穿梭车运输到定点,主穿梭车继续完成该订单或者处理下一个订单。当订单全部处理完毕后,机械臂回到起始位置。为了防止出现意外碰撞,在固定轨物流拣选机器人运动前,先将数据库的信息传输到仿真平台上,进行碰撞检测,如果发生碰撞,则进行数据反馈,重新进行路径规划。整个工作流程如图2所示。

图2 工作流程

2 拣选机器人建模

2.1 V-REP建模过程

本文采用的V-REP仿真平台具有强大的仿真引擎,以及5种计算模块:碰撞检测模块、最小距离计算模块、正逆向运动学模块、动力学模块、路径规划模块,同时具有良好的外部接口[5]。仿真过程如下:

首先使用SOLIDWORKS对系统进行建模,将三维模型导出为STL格式;然后将其导入到V-REP中,对机器人模型进行分解与重组;添加动力学属性,进行动力学建模;创建机器人关节;建立固定轨物流拣选机器人树形结构;建立机器人运动学计算引擎模型;编写控制器脚本文件与脚本编程控制。

其中机器人模型分解与重组步骤中,为了降低计算的复杂度,提高仿真效率,可以将螺丝、垫片等不影响仿真效果的零件删除。固定轨物流拣选机器人仿真模型建立如图3所示。

图3 固定轨物流拣选机器人模型树结构与模型

2.2 机器人参数

安川MH-24型机器人各轴参数如表1所示。

表1 各轴参数

2.3 机器人正逆运动学分析

2.3.1 机器人正运动学分析

由于系统本体的穿梭车部分与MH-24部分是两个分开的主体,没有关节连接,所以在机器人运动学分析中,仅分析MH-24型机器人。

运动学求解过程就是采用四参数确定一个坐标系相对于另一个坐标系的位姿。这4个参数分别是:连杆长度a、偏距d、关节角度θ、转角α。

在MH-24机器人模型上建立各关节的坐标系,如图4所示。并根据尺寸信息和关节坐标系得出D-H参数,如表2所示。

图4 MH-24运动学坐标系模型

表2 MH-24机器人D-H参数

根据图4和表2,可建立MH-24的运动学方程以及各连杆的变换矩阵。

MH-24的运动学方程为

6T0=0T11T22T33T44T55T6

(1)

式中,i-1Ti(i=1~6)为相邻两坐标系的齐次变换矩阵。令cθi=cosθi,sθi=sinθi,即:

(2)

将根据式(2)求得的0T1、1T2、2T3、3T4、4T5、5T6,代入式(1),可得MH-24运动学方程为

(3)

式中:

2.3.2 机器人逆运动学分析

当末端位姿px、py、pz给定时,需要反解出MH-24机器人的各关节变量,这一过程称为运动逆解。利用验证过的正运动学公式和D-H参数进行求解。

0T1-1(θ1)左乘式(3)得到式(4):

0T1-1(θ1)6T0=

1T2(θ2)2T3(θ3)3T4(θ4)4T5(θ5)5T6(θ6)

(4)

令矩阵方程式(4)中的元素(2,4)对应相等,可得θ1的两组解为

θ1=-atan 2(d2+d3,

(5)

选定一个解后,令矩阵方程(4)中的元素(1,4)和(3,4)分别对应相等。选择θ11可得θ3的两组解为:

θ3=-atan 2(-a2a3,a2d4)+atan 2(A,

(6)

式中:

同理可求θ2、θ4、θ5、θ6的解:

θ2=atan 2(-pzt21+t22t1,-pzt22+t21t1)

(7)

其中:

θ4=atan 2(D/sinθ5,-E/sinθ5)

(8)

(9)

(10)

式中:

2.3.3 逆运动学最优解分析

机器人运动反解可能存在8种解,在实际应用中应选取最优解。本文的固定轨物流拣选机器人在拣选工作过程中需要每一个关节的移动量尽可能小,这样也使得所消耗的能量最小。为了求得最优解,采用最小二乘法,首先取第一组逆解作为最优解,并设定初始误差,然后将另一组解与这一组解进行对比,如果在另一组解中出现能保证所有关节运动距离最小的解,则作为新的最优解,以此类推。

将8组解表示为qi(i=1~8),上一组最优解表示为qbest,最小二乘法公式为

(11)

其中j为关节编号。

2.4 仿真验证

为了验证模型的正确性,利用Matlab中机器人工具箱中的正运动学求解函数先求解出末端位姿,再将此末端位姿所对应的8组解求出。

首先设定θ1=90°、θ2=-90°、θ3=60°、θ4=60°、θ5=90°、θ6=90°,部分Matlab程序如下所示:

MH-24FK=robot.fkine([pi/2 -pi/2 pi/3 pi/3 pi/2 pi/2]);

MH-24IK = MH-24IKF (MH-24FK);

其中MH-24IKF为运动学逆解的求解函数。以上代码实现了先求正解再求逆解的过程。

通过推导的逆运动学公式求出的8组解如图5所示。

图5 逆运动学结果

将V-REP中添加的Graph关联到Floating view,得到各关节角运动曲线,以关节2和关节3为例,图6为V-REP与Matlab仿真结果的比较。

图6 V-REP与Matlab仿真结果比较

通过图6可以看出,关节角2、3在V-REP仿真下的运动情况与Matlab仿真结果基本符合,说明本文所建立的运动学模型准确。

3 离线编程的实现

3.1 控制程序编写

V-REP通过Scripts中的脚本文件进行仿真,对机器人仿真的控制不够灵活,所以本文采用了VS2015来定制机器人仿真的控制方式。

V-REP提供了良好的外部接口——远程API,通过VS2015编写的外部控制程序可以以此与之连接。首先通过simxStart函数与V-REP端simRemoteApi.start函数进行端口号的设定,确保与VS2015外部控制程序进行连接。随后使用simxGetObjectHandle、simxSetJointTargetPosition两个函数来控制V-REP模型中的关节进行转动或者移动。使用simxSetIntegerSignal函数将机械臂关节mode设置为IK;V-REP端使用sim.clearIntegerSignal函数对传送带进行命名;VS2015端使用simxSetIntegerSignal来调节传送带的速度,当速度为0时,传动带关闭,当速度不为0时,传送带开启。

外部及控制程序使用VS2015中基于C++的MFC应用程序编写,分为3个模块:第一个模块为机器人示教器,可以单独控制MH-24机器人的关节进行转动;第二个模块为小车调试,可以控制穿梭车的移动以及穿梭车上的传送带开关;最后一个模块是机器人控制,通过设置示教位置、拍照位置、抓取位置、放货位置以及发送抓取、放货、联动等命令对固定轨物流拣选机器人进行控制。控制界面如图7所示。

图7 外部控制程序界面

3.2 路径规划

对于机器人系统来说,精准有效的轨迹规划可以大大提高运行的可靠性和工作效率。固定轨物流拣选机器人的关节运动采用三次多项式的插值方法进行规划,可以防止机器人发生抖动,使关节运动更加平滑。笛卡尔空间坐标系下直线运动的实现算法包含位置插补和姿态插补:位置插补采用简单线性插补,根据插补次数,求得各轴步距然后累加[6];姿态插补运用四元数球面线性插补算法,使两个表示旋转的四元数之间进行平滑插补。

3.3 碰撞检测判断

在V-REP里面添加Graph,关联到这个仿真实验中,仿真开始后,如果机器人和站台立柱发生碰撞,Graph中会有从0到1的一个上升沿,记录碰撞事件的发生,如图8所示。一旦检测到碰撞事件,则重新进行路径规划,然后再次检测,直至没有碰撞事件发生。

图8 碰撞事件检测信号

4 实验验证

4.1 仿真实验

固定轨物流拣选机器人系统搭建完毕后,开始进行实验。首先在数据库中给定货物信息。经过计算,给出的抓取流程为:机器人和穿梭车在站台1抓取数量为2的货物,通过穿梭车上的传送带,将货物从主穿梭车运输到子穿梭车上,由子穿梭车将货物运输到站台末端进行卸货,主穿梭车运动到站台7抓取数量为4的货物;子穿梭车卸货完成后,移动到站台7与主穿梭车汇合,进行卸货工作;最后主穿梭车运动到站台11抓取数量为6的货物,由于穿梭车一次最多可装取4个货物,当机器人抓取4个货物后,由子穿梭车先行卸货,之后再来运输最后2个货物。

实验开始,先运行V-REP,随后在VS2015中点击运行,直至历史消息中出现“连接成功,可操作”的信息后,点击联动按钮,外部程序将直接获取到订单信息。发送指令至V-REP进行仿真运动。仿真实验中机器人运行状态如图9所示。

图9 仿真实验

4.2 实体验证

如果碰撞检测实验没有0到1的上升沿,则表示没有发生碰撞,数据库将发送订单信息到实验样机,进行实体实验。当接收到订单信息后,按照订单顺序取货,机器人和穿梭车首先运动到1号货位点抓取货物,然后由机器人将货物运送到拣选小车上,接着进行货物转移。拣选完1号货位点货物后,机器人和穿梭车依次去站台1、7、11号货位点进行取货作业,满载后,两辆小车分开,由子穿梭车将货物送到站台,与此同时,机器人和主穿梭车继续执行下一任务。样机运行状态如图10所示。

图10 实体验证

实体验证结果与仿真实验结果相比,机器人运动轨迹基本一致,且并未发生碰撞事件。

5 结束语

本文针对物流拣选机器人特殊工作环境下的防碰撞提出了一种Visual Studio与V-REP联合仿真的方法,模拟实际工作方式。首先建立固定轨物流拣选机器人运动学模型,通过Matlab数值仿真验证了各关节的运动情况和运动学的正逆解,仿真结果与模型运动情况相符,模型准确。然后通过路径规划以及远程API功能进行离线编程。在仿真软件V-REP中添加Graph进行碰撞情况的监测,最终在试验样机中进行测试。

实验结果表明,本文方法可以有效避免机器人离线编程过程中碰撞事件的发生。相比于文献[3]中的软件,联合仿真具有以下优点:

1)通用性:适用于大部分型号机器人进行离线编程;

2)综合性:可以做到全运动全过程的碰撞检测,也可进行全生产线的仿真;

3)复用性:完成测试后,可将代码直接下发到机械臂上使用,无需重新编写代码。

采用Visual Studio与V-REP联合仿真的方法可以有效地判断路径的最优性和准确性,从而减少因碰撞造成的损失,提高拣选效率,为这一类问题提供了一个新的解决思路。

猜你喜欢
碰撞检测离线运动学
轿车前后悬架运动学仿真分析
基于卷积神经网络的离线笔迹鉴别系统
基于动力学补偿的机器人电机力矩误差碰撞检测
全新预测碰撞检测系统
新版Windows 10补丁离线安装更简单
基于SPH方法的流体粒子与软体碰撞检测①
速度轮滑直道双蹬技术的运动学特征
基于Virtools的虚拟灭火系统碰撞检测设计与实现
基于运动学特征的新型滑板对速滑蹬冰动作模拟的有效性
“必修1”专题复习与训练