基于数据驱动实现拆装任务的快速配置

在虚拟装配系统的开发过程中,经常遇到任务需求同质化。如果以硬编码的形式将这些同质化的拆装任务进行开发,那么对每一个任务都需要进行定制开发。为了提高开发工作效率,将拆装任务的共性提取出来,并将之数据化,从而解决通用性问题。

拆装任务的共性包括:

(1)任务要素:描述该操作步骤在装配任务中的信息,包括该步骤的索引号、前继索引序列、后继索引序列。

(2)辅助要素:描述操作运动发生前的准备要素,包括所操作的零部件、所用工具。

(3)动作要素:描述装配操作的各个动作参数,包括操作类型和所需参数等。常见的装配操作动作要素类型包括隐藏、显示、触碰、旋转和移动。

 

1、任务组织

拆装任务由操作步骤节点组织而成,组织形式可以是线性表、也可以是AOV网。线性表适用于训练场景,用户在提示下随着专家配置的最佳拆装序列进行拆装,强化用户的学习记忆。AOV网适用于考核场景,在没有提示的情况下,用户需要在任意的拓扑拆卸序列中,找出最佳的拆卸序列。示例如图1.

 
      图1 基于线性表和AOV网的步骤组织形式

 

 

 2、实体要素

在拆装任务中,我们需要清楚一些拆装步骤的对象实体,例如,当前拆装步骤所拆装的零件、拆装该零件需要什么工具、零件需要移动到的位置或角度和步骤指引等等。这些实体要素将静态地保存在节点当中。

3、动作要素

拆装的动作类型主要分为移动,平移,自转,公转的动作,这些动作的形容对象均为相应操作实体,即所需拆装的零件。

每种拆卸动作有不同的动作参数,例如

移动的参数是目标位置;

平移的参数是方向与距离;

自转的参数是自转轴和角度;

公转的参数是公转轴和角度。

简易示例如下:

    switch (actionType)
    {
    case MoveTo:
        MoveTo(posiston);//移动(位置)
        break;
    case Translation:
        Translation(vector, distance);//平移(方向,距离)
        break;
    case Rotation:
        Rotation(axis, angle);//自转(自转轴,角度)
        break;
    case Revolution:
        Revolution(axis, angle);//公转(公转轴,角度)
        break;
    }

 

posted @ 2022-07-18 11:49  mshentai  阅读(31)  评论(0编辑  收藏  举报