一种多关节模型穿透深度的计算方法
【技术领域】
[0001] 本发明涉及到计算机图形学以及机械臂运动规划中多关节模型的穿透深度计算 方法,尤其是涉及一种利用机器学习使得高维空间的碰撞检测变得高效的方法。
【背景技术】
[0002] 碰撞检测及响应一直是计算机图形学中研宄的中重点,目前虽然有很多较为成熟 的方法,但是因为要进行大量的计算,所以在需要实时性很高的三维场景中计算穿透深度 的效率不高。对于具有多关节的机械臂来说,高维空间的碰撞检测复杂度更是呈指数级增 长。
[0003] 当前对于高维空间的机械臂碰撞检测计算,通过迭代以及约束优化的方式来近似 计算穿透深度,但是在运行时阶段进行迭代处理,会影响运行效率,现在还没有一种有效的 方法能够处理该问题。
【发明内容】
[0004] 为了提高计算高维多关节模型的穿透深度过程的效率,本发明提供了一种基于机 器学习的预处理方法。该方法不仅能够提高运行时的计算效率,而且可以保证计算结果的 准确性。
[0005] 本发明的多关节模型穿透深度计算方法,包括以下步骤:
[0006] 初始采样,对一多关节模型的不同关节的角度进行采样,根据模型处于不同位置 状态与障碍物的碰撞情况对样本点碰撞状态进行标记,得到采样点;
[0007] 机器学习训练,对初始采样中得到的采样点进行分类,得到第一接触空间模型,其 由碰撞和非碰撞两种状态的支持向量和分割这两种状态的边界构成;
[0008] 主动学习,对得到的第一接触空间模型采用边缘不断优化和对远离边缘位置探索 的方法,通过迭代将更多的采样点加入到模型中进行训练得到第二接触空间模型;
[0009] 构建拓展模型,在得到的第二接触空间模型上,利用训练得到的支持向量来构建 拓展接触空间模型,且最终计算结果能够分离两个模型;
[0010] 计算ro穿透深度,多关节模型的各个关节角度决定了模型的状态,在拓展模型 中,各个关节角度决定了处于位形空间中的一个点,若该点处于碰撞空间中,那么该点就是 需要计算穿透深度的查询点,对查询点采用k-nn算法,在模型中快速查找距离最近的支持 向量点,该点到查询点的距离即为所计算得到的穿透深度。
[0011] 优选地,第一接触空间模型通过下述方式获得:
[0012] 对多关节模型各个关节的角度进行均匀采样,将多关节模型的不同状态与障碍物 进行简单的碰撞检测,得到状态分别为碰撞和非碰撞的两种采样点,通过SVM对样本点进 行训练将得到一个分割两种状态的边界,这就是第一接触空间模型。
[0013] 优选地,第二接触空间模型通过下述方式获得:对模型边界进行不断优化,对远离 边界的地方进行探索,发现更多可能状态的区域。对新产生的样本点放入原模型中训练,不 断迭代得到最终模型。
[0014] 优选地,通过构建保守的拓展模型方法,得到的最终模型不仅使得计算结果准确, 而且还保证一定能够使得碰撞的模型分离。
[0015] 优选地,在得到的拓展模型中采用k-nn算法,提高了运行时的计算效率,使得运 行时计算穿透深度高效快速。
[0016] 本发明的有益效果是,可以通过对多关节模型和障碍物模型进行预处理,得到两 个模型之间的碰撞和非碰撞空间,在运行时阶段,通过在保守的拓展模型中查找最近点来 计算ro,不仅使得计算效率提高,同时保证了计算结果的准确性。
【附图说明】
[0017] 图1是根据本发明的流程图。
[0018] 图2a至图2c是两个关节的机械臂以及与障碍物的精确接触空间,采样的样本点 分布和训练得到的近似接触空间模型。
[0019] 图3a至图3d是本发明一实施方式的主动学习过程示意图。
[0020] 图4a和图4b是本发明一实施方式的构建保守的拓展模型示意图。
[0021] 图5a和图5b是本发明一实施的模拟案例的不意图。
【具体实施方式】
[0022] 结合以下具体实施例和附图,对本发明作进一步的详细说明。实施本发明的过程、 条件、试验方法等,除以下专门提及的内容之外,均为本领域的普遍知识和公知常识,本发 明没有特别限制内容。
[0023] 图1是根据本发明-实施方式的计算中离线学习和运行时计算两个阶段的流程 图。如图1所示,本发明的基于机器学习的计算穿透深度方法包括:Sl离线学习步骤和S2 运行时计算步骤,Sl离线学习步骤包括:SlO模型输入步骤,Sll初始采样步骤,S12机器学 习训练步骤,S13主动学习步骤;S2运行时计算步骤包括:S21构建拓展模型步骤,S22采用 k-nn算法查找模型中最近支持向量的步骤,S23计算穿透深度步骤。
[0024] 初始采样步骤S11,该步骤中,对多关节模型的各个关节运动角度进行均匀采样, 将多关节模型不同状态下与障碍物进行简单的碰撞检测,得到状态分别为碰撞和非碰撞的 两种采样点。
[0025] 在初始采样步骤Sll完成后,进行采用机器学习SVM方法训练的步骤S12,通过该 方法对样本点进行训练将得到一个分割两种状态的边界,这就是第一接触空间模型,第一 接触空间模型,其由碰撞和非碰撞两种状态的支持向量和分割这两种状态的边界构成;对 多关节模型各个关节角度进行随机均匀采样,每个关节都有运动的角度范围限制,可以得 到这些参数,并且在该范围内通过生成随机数进行采样,每个关节的角度对应样本点在位 形空间的每个维度上的值,每次采样500个随机样本点。将采样得到的多关节模型的状态 与障碍物进行简单的碰撞检测,得到状态标记分别为碰撞和非碰撞的两种采样点,通过SVM 对样本点进行训练将得到一个分割两种状态的边界,这就是第一接触空间模型。
[0026] 主动学习步骤S13将对第一接触空间模型不断优化。对得到的第一接触空间模型 采用边缘不断优化和对远离边缘位置探索的方法,通过迭代将更多的采样点加入到模型中 进行训练得到第二接触空间模型,迭代十次就能得到接近精确解的模型。
[0027] 通过对每个非碰撞的支持向量分别查找与其状态相反的最近支持向量,然后对两 个支持向量在位形空间中的位置进行插值,找到位于两个支持向量中间的点,因为状态不 同的支持向量位于模型的不同侧,所以计算得到的点更加接近接触空间的