[发明专利]一种基于凸集分解算法的虚拟人机交互控制方法有效
申请号: | 201911370239.7 | 申请日: | 2019-12-26 |
公开(公告)号: | CN111127663B | 公开(公告)日: | 2023-03-31 |
发明(设计)人: | 曹继平;袁晓静;张毅;王连锋;吴聪伟;王正元;王涛 | 申请(专利权)人: | 中国人民解放军火箭军工程大学 |
主分类号: | G06T19/00 | 分类号: | G06T19/00;G06F3/01 |
代理公司: | 西安研创天下知识产权代理事务所(普通合伙) 61239 | 代理人: | 郭璐 |
地址: | 710025 *** | 国省代码: | 陕西;61 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 分解 算法 虚拟 人机交互 控制 方法 | ||
1.一种基于凸集分解算法的虚拟人机交互控制方法,其特征在于,所述的虚拟人机交互控制方法包括:
S1:虚拟手的建模仿真过程,利用3DSMAX软件、VC++和Open Inventor图形接口软件建立虚拟手的模型;
S2:利用虚拟交互的凸集分解算法对S1建立的虚拟手模型和零部件之间的碰撞、穿透、抓取和拖放关系的判断;
步骤S2所述的虚拟交互的凸集分解算法包括:面向对象的基于凸集面片的AABB层次包围盒碰撞检测算法、基于凸集面片的虚拟手穿透限制算法、虚拟手的抓取和拖放操作算法;
所述的基于凸集面片的AABB层次包围盒碰撞检测算法的具体判断步骤为:
1)设当前虚拟手的包围盒为ha,零部件的包围盒为hb,将虚拟手的造型和三维零部件均分解成凸集面片的集合,设虚拟手的面片数为Na,凸集面片数为Na′;零部件的面片数为Nb,凸集面片数为Nb′(Nb′≤Nb);
2)判断虚拟手的包围盒为ha与零部件的包围盒为hb是否相交,若相交,进行下一步判断,若不相交,进行下一个零部件的判断;
3)根据步骤2的判断结果,判断虚拟手的面片数为Na与零部件的面片数为Nb是否相交,若相交,进行下一步判断,若不相交,进行下一个零部件的判断;
4)根据步骤3的判断结果,进一步判断虚拟手的凸集面片数为Na′与零部件的凸集面片数为Nb′是否相交,若相交,记录发生碰撞的零部件、发生碰撞的凸面和凸面片的集合,若不相交,进行下一个零部件的判断;其中:Na′≤Na,Nb′≤Nb,Na′≤Na≤ha,Nb′≤Nb≤hb;
所述的基于凸集面片的虚拟手穿透限制算法的具体判断步骤为:
1)将虚拟手和零部件投影在三维坐标系中,设虚拟手的手指为F(xf,yf,zf),零部件面片为T,虚拟手的手指F(xf,yf,zf)与零部件面片T的接触点为P,P点处三角面片的法线方向为n(nx、ny、nz),n的反方向为物体的内部,nx、ny、nz为n在X,Y,Z三坐标轴上的投影;
2)判断虚拟手的手指F在运动方向的三个分量xf,yf,zf与P点处三角面片的法线方向为n的三个对应分量nx、ny、nz是否具有相同的方向:
a.xf,yf,zf与nx、ny、nz具有相同的方向,即虚拟手没有接触或穿透物体,此时虚拟手的颜色不变化;
b.xf,yf,zf与nx、ny、nz三个分量之一具有相反的方向,虚拟手处于抓取接触状态,虚拟手的颜色变为绿色;
所述的虚拟手的抓取和拖放操作算法的具体判断步骤为:
1)读取虚拟手在场景中的数据信息;
2)利用基于凸集面片的AABB层次包围盒碰撞检测算法判断虚拟手与零部件是否发生相交,若相交,进行下一步判断,若不相交,调整虚拟手的位置和姿态;
3)根据步骤2判断结果,进一步判断虚拟手是否符合抓取条件,若符合抓取条件,进行下一步判断,若不符合抓取条件,调整虚拟手的位置和姿态;
4)根据步骤3判断结果,控制虚拟手对零部件进行抓取和拖放操作,从而进行维修;
其中:在虚拟手进行抓取和拖放操作过程中,必须有两个或两个以上的手指与零部件相接触,并且其中一个必须为大拇指;虚拟手指与零部件接触面的法线方向的夹角大于给定值;要实现虚拟手对零部件的抓取,手和物体的两个接触点的法线方向的夹角必须大于临界值;
S3:经S2对虚拟手模型和零部件之间的关系判断后,进行基于数据手套的交互式虚拟维修过程。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国人民解放军火箭军工程大学,未经中国人民解放军火箭军工程大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201911370239.7/1.html,转载请声明来源钻瓜专利网。