一种机器人运动仿真方法及仿真系统与流程

文档序号:33400735发布日期:2023-03-08 16:39阅读:176来源:国知局
一种机器人运动仿真方法及仿真系统与流程

1.本发明涉及虚拟仿真技术领域,具体为一种机器人运动仿真方法及仿真系统。


背景技术:

2.在实现机器人定位仿真过程中,需要通过示教器控制机器人卡爪移动到定位点,在这一过程中,容易出现误操作,机器人控制不够精确等问题,导致机器人定位移动过程中出现多余的动作,在访问指定的定位点时,机器人会重复定位过程中的所有动作,这其中很多动作是多余的,需要剔除。
3.为此,本发明提供一种机器人运动仿真方法及仿真系统,用以至少部分地解决上述问题。


技术实现要素:

4.本发明的目的在于提供一种机器人运动仿真方法,以解决上述背景技术中提出的目前在虚拟仿真技术中存在的容易出现误操作和不能避免冗余动作而导致效率低的问题。
5.为实现上述目的,本发明提供如下技术方案:一种机器人运动仿真方法,机器人包括多个机械臂和多个关节,所述多个机械臂通过所述多个关节连接成一个多自由度的运动副,所述机器人用于控制机器人卡爪移动到指定的定位点,所述机器人运动仿真方法用于仿真该运动过程,所述机器人运动仿真方法包括:
6.获取多个机械臂和多个关节的位置;
7.获取多个机械臂的运动距离和多个关节的转动角度;
8.接受运动指令;
9.根据获取到的多个机械臂、多个关节的位置、多个机械臂的运动距离和多个关节的转动角度,得到运动副在执行运动指令后的偏离初始位置的量,并根据初始位置计算最终位置,将该最终位置与指令的预期位置进行比对,若误差在预设阈值内,则保存指令操作并生成运动过程的仿真动画;若误差在预设阈值外,则对运动执行操作进行修正直至该误差恢复至预设阈值范围内后,保存修正后的指令操作并生成相应的运动过程仿真动画;
10.建立机器人和所述卡爪的三维实体模型;
11.建立运动环境的三维实体模型;
12.在运动环境的三维实体模型中模拟在不同运动指令下多个机械臂的运动距离和多个关节的转动角度。
13.作为一种优选的技术方案,获取所述多个机械臂和所述多个关节的位置包括以下步骤:
14.步骤一:使用三维软件完成机器人模型的构建;
15.步骤二:根据机器人各关节角度范围值和各机械臂的长度确定工作空间的二维投影;
16.步骤三:根据机械臂长度和关节角度建立d-h坐标系;
17.步骤四:根据d-h坐标系确定d-h参数表;
18.作为一种优选的技术方案,建立机器人和所述卡爪的三维实体模型过程采用3dmax完成机器人模型的构建并导出为.fbx格式模型,将模型导入unity并确定模型之间的父子关系。
19.作为一种优选的技术方案,仿真机器人运动的过程包括以下步骤:
20.1)将机器人和所述卡爪的三维实体模型、运动环境的三维实体模型导入到预先存储于计算机中的运动仿真模型中;
21.2)通过多个函数分别实现机器人关节坐标系下的运动,末端控制点保持轴向方向水平移动和获取姿态信息,并通过逆向动力学来实现机器人用户坐标系下运动。
22.作为一种优选的技术方案,在仿真运动过程后,通过定义多个单次操作动作,设置动作集合,在实现一租包含多次单次操作动作的动作集合的最终结果后,在同一坐标系下进行判断,如出现动作集合中的任意一种动作结果,则判定其之前的操作为冗余动作,加以去除;在两种操作同时存在时,需以每次变换操作模式为节点,节点后的操作不对节点前的操作结果进行更改。
23.作为一种优选的技术方案,通过带入动作集合中的操作类型、运动对象、运动对象位置和运动对象旋转为参数到特定函数来实现动画生成。
24.一种机器人运动仿真系统,包括计算机和显示装置,计算机内存储有上述的机器人运动仿真方法,显示装置将计算机利用所述机器人运动仿真方法得到的仿真结果显示给使用者。
25.与现有技术相比,本发明的有益效果是:
26.通过建立机器人和所述卡爪的三维实体模型、并构建运动环境的三维实体模型,根据运动指令在仿真运动模型之中对运动过程中产生的位置偏移进行计算,根据获取到的所述多个机械臂、所述多个关节的位置、所述多个机械臂的运动距离和所述多个关节的转动角度,得到所述运动副在执行所述运动指令后的偏离初始位置的量,并根据初始位置计算最终位置,将该最终位置与指令的预期位置进行比对,反复执行此操作直至位置误差阈值减小至预设阈值范围内,即可实现得到最佳操作及相应的操作步骤,无须通过示教器控制机器人卡爪移动到定位点,大大的减小了出现误操作的可能性,提升了机器人控制的精度。
附图说明
27.图1为本发明的机器人结构示意图;
28.图2为本发明器人各关节角度范围值和各连杆的长度确定工作空间的二维投影;
29.图3为本连杆长度和关节角度建立d-h坐标系;
30.图4为演示视频的第一个截图;
31.图5为演示视频的第二个截图。
具体实施方式
32.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于
本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
33.请参阅图1-2,本发明提供一种技术方案:一种机器人运动仿真方法及仿真系统,机器人包括多个机械臂和多个关节,多个机械臂通过多个关节连接成一个多自由度的运动副,机器人用于控制机器人卡爪移动到指定的定位点,机器人运动仿真方法用于仿真该运动过程,机器人运动仿真方法包括:获取多个机械臂和多个关节的位置;获取多个机械臂的运动距离和所述多个关节的转动角度;接受运动指令;根据获取到的所述多个机械臂、所述多个关节的位置、所述多个机械臂的运动距离和所述多个关节的转动角度,得到所述运动副在执行所述运动指令后的偏离初始位置的量,并根据初始位置计算最终位置,将该最终位置与指令的预期位置进行比对,若误差在预设阈值内,则保存指令操作并生成运动过程的仿真动画;若误差在预设阈值外,则对运动执行操作进行修正直至该误差减小至预设阈值范围内后,保存修正后的指令操作并生成相应的运动过程仿真动画;建立机器人和所述卡爪的三维实体模型;建立运动环境的三维实体模型;在运动环境的三维实体模型中模拟在不同运动指令下所述多个机械臂的运动距离和所述多个关节的转动角度。
34.具体包括以下步骤:
35.1.根据真实机器人样式,在3dmax完成机器人模型的构建并导出为.fbx格式模型;
36.(1)机器人结构如图1所示,为6轴自由旋转运动,分别为j1,j2,j3,j4,j5,j6。
37.(2)根据机器人各关节角度范围值和各连杆的长度确定工作空间的二维投影如图2所示:
38.(3)根据连杆长度和关节角度建立d-h坐标系,如图3。
39.(4)根据d-h坐标系确定d-h参数表,如下表:
40.d-h连杆参数表
[0041][0042]
(5)将模型导入unity,确定模型父子关系即j1为j2父物体,j2为j3父物体...,根据d-h坐标参数设置机器人各关节点的transform数值,样式如图4所示。
[0043]
2.机器人的运动实现主要通关transform.localeulerangles()函数来实现机器人关节坐标系下的运动,末端控制点通过transform.translate()方法保持轴向方向水平移动,使用移动后的控制点transform.localeulerangles()和transform.localposition
()函数获取姿态信息,使用逆向动力学来实现机器人用户坐标系下运动;
[0044]
3.数据类说明:
[0045]
(1)单次操作:
[0046]
由于机器人运动分为关节坐标系运动和用户坐标系运动两种,通过int数值类型数值定义0为关节坐标系运动,1位用户坐标系下运动;(关节坐标系运动通过单个关节旋转运动,用户坐标系通过末端控制点轴向运动)
[0047]
1)定义transform类型(unity对象组件),代指当前运动的对象;
[0048]
2)定义vector3三维向量,用以存储运动对象移动后的位置;
[0049]
3)定义vector3三维向量,用以存储运动对象移动后的旋转角度;
[0050]
动作集合:
[0051]
定义vector3三维向量,存储机器人在轨道上的位置;
[0052]
定义list集合,存储机器人动作集合;
[0053]
4.如何判断多余动作:
[0054]
以关节坐标系控制机器人j1旋转为例,当前j1对象的transform.localeulerangles为vector3(0,0,70);
[0055]
stp1:操作j1增加30,则其transform.localeulerangles为vector3(0,0,100);
[0056]
stp2:操作j1增加20,则其transform.localeulerangles为vector3(0,0,120);
[0057]
stp3:操作j1减少40,则其transform.localeulerangles为vector3(0,0,80);
[0058]
完成上述3步操作,机器人最终的旋转为vector3(0,0,80),其中st1,st2则为多余动作,只需保存stp3操作的运动结果;
[0059]
用户坐标系下判断类似,在两种操作同时存在时,需以每次变换操作模式为节点,节点后的操作不对节点前的操作结果进行更改;
[0060]
5.动画生成方法:
[0061]
通过带入动作集合中的操作类型,运动对象,运动对象位置和运动对象旋转为参数到transform.dolocalmove()和transform.dolocalrotate()方法来实现动画生成。
[0062]
6.具体对比方法:
[0063]
(1)定义单次操作类型curstep用以存储本次操作结果
[0064]
(2)通过switc循环,判断操作对象,并将操作结果保存到curstep,其中1-6分别关节坐标系下j1-j6旋转结果;7-9分别对应用户坐标系下末端点位置及旋转结果;
[0065]
(3)首次操作,直接将结果添加至mylis集合,后续操作按操作系是否一致判断是否刷新节点,一致的情况下,循环判断操作集合中是否有和当前操作关节一致的,有则将当前操作结果覆盖到集合中对应的元素结果,没有则直接将当前操作加入mylis集合。操作系不一致的情况下直接将结果加入mylis集合;
[0066]
7.数据字典《定位点,优化后动作结果集合》说明:
[0067]
根据行数匹配数据字段int类型key,按shift+f3记录机器人的操作结果信息(robotmessage)组成相应的数据字典;
[0068]
示教器中位置寄存器中预先设置了一些记录点位(也可自行添加)
[0069]
根据数据字典的key值判断是否已记录,已记录则更新,没有则直接添加记录(upindex为行数);
[0070]
8.解析生成动画说明:
[0071]
在示教器位置寄存器界面,通过方向键选择对应的记录单,通过playrobot()方法播放动画;
[0072]
根据robotmessage类中endpos信息,通过dolocalmove()方法实现机器人移动到导轨相应位置动画;
[0073]
循环遍历robotmessage类中types集合,根据type信息切换机器人操作坐标系,根据trans,pos,rot信息,通过dolocalmove()和dolocalrotate()方法实现机器人运动流程解析;
[0074]
图4和图5为相关的演示视频的部分截图。
[0075]
尽管已经示出和描述了本发明的实施例,对于本领域的普通技术人员而言,可以理解在不脱离本发明的原理和精神的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由所附权利要求及其等同物限定。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1