一种制作实体机器人动作的方法及终端与流程

文档序号:28052343发布日期:2021-12-17 21:25阅读:193来源:国知局
一种制作实体机器人动作的方法及终端与流程

1.本发明涉及机器人应用技术领域,尤其是涉及一种制作实体机器人动作的方法及终端。


背景技术:

2.实体机器人在进行行为表达的时候,需要控制机器人内部多个电机按照指定的速度执行,然而控制电机速度的数据需要提前准备,所以需要一类工具可以生成不同动作对应的电机数据,这样就可以为实体机器人定制各种人体动作。
3.现有技术中通常采用人工手段摆放机器人结构的方法录制电机数据并导出动作文件,存在以下缺点:
4.1、动作不自然:由于采用直接摆放实体机器人各个结构的方式,实体机器人本身结构复杂,在表达复杂的行为时,无法保证多结构的连贯性,导致动作不自然。
5.2、制作难度大:人工摆放实体机器人结构时,无法预览整个动作,导致动作制作时难度很大,只有一整套动作录制完成后才能预览,如果预览效果不如人意只能重新录制,这样会造成重复耗时,大大提高了制作难度和制作成本。
6.3、无法批量生产:每一个定制动作都需要在实体机器人本体上进行操作录制,对于制造动作的人员要求较高,当需要定制大量动作时,效率很低。


技术实现要素:

7.本发明所要解决的技术问题是:提供一种制作实体机器人动作的方法及终端,实现更加便捷和快速的机器人动作制作。
8.为了解决上述技术问题,本发明采用的技术方案为:
9.一种制作实体机器人动作的方法及终端,包括步骤:
10.s1、从solidworks上导出实体机器人的urdf描述文件;
11.s2、将所述urdf描述文件导入unity,根据所述urdf描述文件创建3d实体机器人初始模型,并导出带有骨骼信息的第一3d模型;
12.s3、将所述第一3d模型导入3dmax,根据所述骨骼信息为所述第一3d模型重建骨骼,并进行蒙皮,生成第二3d模型;
13.s4、基于骨骼旋转限制插件在所述第二3d模型上制作机器人动作进行旋转限制后,生成动作文件;
14.s5、将所述动作文件导出为电机数据文件给所述实体机器人。
15.为了解决上述技术问题,本发明采用的另一个技术方案为:
16.一种制作实体机器人动作的终端,包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,所述处理器在执行所述计算机程序时实现以下步骤:
17.s1、从solidworks上导出实体机器人的urdf描述文件;
18.s2、将所述urdf描述文件导入unity,根据所述urdf描述文件创建3d实体机器人初
始模型,并导出带有骨骼信息的第一3d模型;
19.s3、将所述第一3d模型导入3dmax,根据所述骨骼信息为所述第一3d模型重建骨骼,并进行蒙皮,生成第二3d模型;
20.s4、基于骨骼旋转限制插件在所述第二3d模型上制作机器人动作进行旋转限制后,生成动作文件;
21.s5、将所述动作文件导出为电机数据文件给所述实体机器人。
22.本发明的有益效果在于:本发明提供一种制作实体机器人动作的方法及终端,通过solidworks将实体机器人的urdf描述文件导入到unity中以创建对应的3d模型,并采用3dmax对3d模型进行骨骼蒙皮,从而在3dmax中进行机器人动作的制作,通过将制作的动作文件导出为可提供给实体机器人端执行表达的电机数据文件,若动作在实体机器人上表达有问题时,可以通过在3dmax中直接对动作文件进行快速修改,重新导出电机数据文件,节省了动作生产周期,实现了更加便捷和快速的实体机器人动作制作方式,同时由于在unity中有对应的3d模型,因此还可以实现仿真功能。
附图说明
23.图1为本发明实施例的一种制作实体机器人动作的方法的流程图;
24.图2为本发明实施例的一种制作实体机器人动作的终端的结构示意图。
25.标号说明:
26.1、一种制作实体机器人动作的终端;2、存储器;3、处理器。
具体实施方式
27.为详细说明本发明的技术内容、所实现目的及效果,以下结合实施方式并配合附图予以说明。
28.在此之前,为了便于理解本发明的技术方案,对本发明中涉及的一些英文缩写、特定名词等进行如下说明:
29.solidworks:一款可用于三维建模的软件,可支持导出多种格式的工程文件。
30.3dmax:一款基于pc系统的三维动画渲染和制作软件。
31.unity:全称unity 3d,unity是实时3d互动内容创作和运营平台,可用于创作、运营和变现任何实时互动的2d和3d内容,支持平台包括手机、平板电脑、pc、游戏主机、增强现实和虚拟现实设备。
32.urdf描述文件:全称为unified robot description format,中文释义为统一机器人描述格式,是一种特殊的xml文件格式,用于描述机器人的结构,可用于创建机器人的仿真模型。
33.fbx文件:一种跨平台的免费三维创作与交换格式,可支持所有主要的三维数据元素以及二维、音频和视频媒体元素。
34.ros

sharp:github上的开源工程,可用于urdf工程文件导入unity和3d模型组装的功能。
35.import robot from urdf:ros

sharp中的工具,用于将urdf工程文件组装成3d模型。
36.fbx exporter:unity官方提供的插件,用于导出带有骨骼信息的fbx格式的3d模型文件。
37.请参照图1,一种制作实体机器人动作的方法,包括步骤:
38.s1、从solidworks上导出实体机器人的urdf描述文件;
39.s2、将所述urdf描述文件导入unity,根据所述urdf描述文件创建3d实体机器人初始模型,并导出带有骨骼信息的第一3d模型;
40.s3、将所述第一3d模型导入3dmax,根据所述骨骼信息为所述第一3d模型重建骨骼,并进行蒙皮,生成第二3d模型;
41.s4、基于骨骼旋转限制插件在所述第二3d模型上制作机器人动作进行旋转限制后,生成动作文件;
42.s5、将所述动作文件导出为电机数据文件给所述实体机器人。
43.由上述描述可知,本发明的有益效果在于:通过solidworks将实体机器人的urdf描述文件导入到unity中以创建对应的3d模型,并采用3dmax对3d模型进行骨骼蒙皮,从而在3dmax中进行机器人动作的制作,通过将制作的动作文件导出为可提供给实体机器人端执行表达的电机数据文件,若动作在实体机器人上表达有问题时,可以通过在3dmax中直接对动作文件进行快速修改,重新导出电机数据文件,节省了动作生产周期,实现了更加便捷和快速的实体机器人动作制作方式,同时由于在unity中有对应的3d模型,因此还可以实现仿真功能。
44.进一步地,所述s2中将所述urdf描述文件导入unity具体为:
45.新建unity工程,导入ros

sharp的工程代码,使用import robot from urdf工具将所述urdf描述文件导入所述unity工程中;
46.所述s2中导出带有骨骼信息的第一3d模型具体为:
47.使用unity的fbx exporter插件,导出带有骨骼信息且文件格式为fbx的所述第一3d模型。
48.由上述描述可知,采用ros

sharp开源工程实现urdf描述文件导入unity的功能,通过ros

sharp的import robot from urdf工具导入urdf描述文件并组装成3d实体机器人初始模型,以便实现后续的仿真功能;同时通过fbx exporter插件可导出供3dmax进一步进行蒙皮开发的fbx格式的3d模型。
49.进一步地,所述s3还包括:
50.将所述第二3d模型导入unity,按照所述urdf描述文件的配置,对比所述3d实体机器人初始模型和所述第二3d模型,并将所述第二3d模型中的蒙皮信息覆盖到所述3d实体机器人初始模型上,生成带有骨骼信息、蒙皮信息和关节信息的3d实体机器人最终模型。
51.由上述描述可知,将进行蒙皮后的第二3d模型的蒙皮信息覆盖到unity中的3d实体机器人初始模型对应的骨骼上,使得unity中的3d模型带有骨骼信息、蒙皮信息和关节信息,可以在3dmax中将动作制作完成后,在unity上复原出更加逼真的仿真动作,以和实体机器人进行对比实现直观的比较效果和细节微调。
52.进一步地,所述s4具体包括以下步骤:
53.s41、读取所述urdf描述文件中的标准骨骼数据,并在3dmax中将所述标准骨骼数据转换为原始旋转量、限制旋转轴和限制上下限,所述原始旋转量为骨骼的初始旋转位置,
所述限制旋转轴用于规定只能绕预设轴旋转,其他轴锁死,所述限制上下限用于规定绕轴旋转的相对最大角度和相对最小角度;
54.s42、为所述第二3d模型中的每根骨骼节点创建旋转控制器,并绑定所述骨骼节点对应的所述原始旋转量、所述限制旋转轴和所述限制上下限;
55.s43、在所述旋转控制器中预设限制算法,构成所述骨骼旋转限制插件,所述限制算法用于自动为实时制作的动作所对应的每个所述骨骼节点的骨骼旋转量校正使其符合所述限制上下限所在的范围,以限制骨骼旋转的效果;
56.s44、通过所述骨骼旋转限制插件为所有动作进行旋转限制,最终生成一套完整的所述动作文件。
57.由上述描述可知,通过在3dmax中为每根骨骼节点都绑定一个骨骼旋转控制器,可以用于控制该节点的行为,通过一定的预设限制算法实现限制骨骼旋转的效果,例如可以在用户修改骨骼的旋转量之后,自动判定并修改其旋转量,使其符合旋转限制,防止超出限制的上下限,确保每个动作符合限制,使后续动作的执行更加流畅、自然和美观。
58.进一步地,所述s5具体包括以下步骤:
59.s51、读取所述urdf描述文件中每个电机的限制信息,所述限制信息包括电机的初始位置、初始角度、旋转轴、最大旋转速度、最小旋转速度、最大旋转角度和最小旋转角度,每个电机与所述第二3d模型中的骨骼一一对应;
60.s52、根据电机的用途和型号对电机进行分组,并对每一组电机预设帧率;
61.s53、获取生成的所述动作文件的每一帧下所有骨骼的旋转角度,并转化为四元素对象;
62.s53、采用四元素差值算法,根据所述预设帧率按组计算单个骨骼的每一帧与首帧的所述四元素对象之间的差值,并转化为轴角的形式,得到差角和旋转轴;
63.s54、计算所述旋转轴和所述骨骼旋转限制插件中规定的所述预设轴的方向是否一致,若一致则所述差角为正,否则为负,重复每一帧的计算,得到所有骨骼在每一帧的角度差值;
64.s55、根据所述角度差值计算所述旋转角度是否在所述最大旋转角度和所述最小旋转角度之间且角速度是否在所述最大旋转速度和所述最小旋转速度之间,若是,则保存所述旋转角度为所述电机数据文件,否则打印超出旋转范围限定提示;
65.s56、将所述电机数据文件导出给所述实体机器人,所述实体机器人根据所述电机数据文件中的电机数据执行相应的动作。
66.由上述描述可知,通过将动作文件导出为电机数据,按照预设帧率读取3dmax工程中所有骨骼每一帧旋转角度信息获取四元素对象,对比初始位置的四元素对象,采用四元素差值算法,计算出每一帧与首帧之间的差值四元素对象,并转化为轴角的形式,得到差角和旋转轴,通过比对计算得到的旋转轴与预设轴的方向和差角所在的范围,计算出每根骨骼在每一帧的角度差值数据,而由于3dmax工程的骨骼和实体机器人的电机是一一对应的,因此计算出了骨骼的每一帧差值,也就是计算出了电机每一帧的运动数据,即最后能得到与动作文件一一对应的电机数据文件,实体机器人便可根据该电机数据文件执行相应的动作。
67.请参照图2,一种制作实体机器人动作的终端,包括存储器、处理器以及存储在存
储器上并可在处理器上运行的计算机程序,所述处理器在执行所述计算机程序时实现以下步骤:
68.s1、从solidworks上导出实体机器人的urdf描述文件;
69.s2、将所述urdf描述文件导入unity,根据所述urdf描述文件创建3d实体机器人初始模型,并导出带有骨骼信息的第一3d模型;
70.s3、将所述第一3d模型导入3dmax,根据所述骨骼信息为所述第一3d模型重建骨骼,并进行蒙皮,生成第二3d模型;
71.s4、基于骨骼旋转限制插件在所述第二3d模型上制作机器人动作进行旋转限制后,生成动作文件;
72.s5、将所述动作文件导出为电机数据文件给所述实体机器人。
73.由上述描述可知,本发明的有益效果在于:基于同一技术构思,配合上述的一种制作实体起机器人动作的方法,提供一种制作实体机器人动作的终端,通过solidworks将实体机器人的urdf描述文件导入到unity中以创建对应的3d模型,并采用3dmax对3d模型进行骨骼蒙皮,从而在3dmax中进行机器人动作的制作,通过将制作的动作文件导出为可提供给实体机器人端执行表达的电机数据文件,若动作在实体机器人上表达有问题时,可以通过在3dmax中直接对动作文件进行快速修改,重新导出电机数据文件,节省了动作生产周期,实现了更加便捷和快速的实体机器人动作制作方式,同时由于在unity中有对应的3d模型,因此还可以实现仿真功能。
74.进一步地,所述s2中将所述urdf描述文件导入unity具体为:
75.新建unity工程,导入ros

sharp的工程代码,使用import robot from urdf工具将所述urdf描述文件导入所述unity工程中;
76.所述s2中导出带有骨骼信息的第一3d模型具体为:
77.使用unity的fbx exporter插件,导出带有骨骼信息且文件格式为fbx的所述第一3d模型。
78.由上述描述可知,采用ros

sharp开源工程实现urdf描述文件导入unity的功能,通过ros

sharp的import robot from urdf工具导入urdf描述文件并组装成3d实体机器人初始模型,以便实现后续的仿真功能;同时通过fbx exporter插件可导出供3dmax进一步进行蒙皮开发的fbx格式的3d模型。
79.进一步地,所述s3还包括:
80.将所述第二3d模型导入unity,按照所述urdf描述文件的配置,对比所述3d实体机器人初始模型和所述第二3d模型,并将所述第二3d模型中的蒙皮信息覆盖到所述3d实体机器人初始模型上,生成带有骨骼信息、蒙皮信息和关节信息的3d实体机器人最终模型。
81.由上述描述可知,将进行蒙皮后的第二3d模型的蒙皮信息覆盖到unity中的3d实体机器人初始模型对应的骨骼上,使得unity中的3d模型带有骨骼信息、蒙皮信息和关节信息,可以在3dmax中将动作制作完成后,在unity上复原出更加逼真的仿真动作,以和实体机器人进行对比实现直观的比较效果和细节微调。
82.进一步地,所述s4具体包括以下步骤:
83.s41、读取所述urdf描述文件中的标准骨骼数据,并在3dmax中将所述标准骨骼数据转换为原始旋转量、限制旋转轴和限制上下限,所述原始旋转量为骨骼的初始旋转位置,
所述限制旋转轴用于规定只能绕预设轴旋转,其他轴锁死,所述限制上下限用于规定绕轴旋转的相对最大角度和相对最小角度;
84.s42、为所述第二3d模型中的每根骨骼节点创建旋转控制器,并绑定所述骨骼节点对应的所述原始旋转量、所述限制旋转轴和所述限制上下限;
85.s43、在所述旋转控制器中预设限制算法,构成所述骨骼旋转限制插件,所述限制算法用于自动为实时制作的动作所对应的每个所述骨骼节点的骨骼旋转量校正使其符合所述限制上下限所在的范围,以限制骨骼旋转的效果;
86.s44、通过所述骨骼旋转限制插件为所有动作进行旋转限制,最终生成一套完整的所述动作文件。
87.由上述描述可知,通过在3dmax中为每根骨骼节点都绑定一个骨骼旋转控制器,可以用于控制该节点的行为,通过一定的预设限制算法实现限制骨骼旋转的效果,例如可以在用户修改骨骼的旋转量之后,自动判定并修改其旋转量,使其符合旋转限制,防止超出限制的上下限,确保每个动作符合限制,使后续动作的执行更加流畅、自然和美观。
88.进一步地,所述s5具体包括以下步骤:
89.s51、读取所述urdf描述文件中每个电机的限制信息,所述限制信息包括电机的初始位置、初始角度、旋转轴、最大旋转速度、最小旋转速度、最大旋转角度和最小旋转角度,每个电机与所述第二3d模型中的骨骼一一对应;
90.s52、根据电机的用途和型号对电机进行分组,并对每一组电机预设帧率;
91.s53、获取生成的所述动作文件的每一帧下所有骨骼的旋转角度,并转化为四元素对象;
92.s53、采用四元素差值算法,根据所述预设帧率按组计算单个骨骼的每一帧与首帧的所述四元素对象之间的差值,并转化为轴角的形式,得到差角和旋转轴;
93.s54、计算所述旋转轴和所述骨骼旋转限制插件中规定的所述预设轴的方向是否一致,若一致则所述差角为正,否则为负,重复每一帧的计算,得到所有骨骼在每一帧的角度差值;
94.s55、根据所述角度差值计算所述旋转角度是否在所述最大旋转角度和所述最小旋转角度之间且角速度是否在所述最大旋转速度和所述最小旋转速度之间,若是,则保存所述旋转角度为所述电机数据文件,否则打印超出旋转范围限定提示;
95.s56、将所述电机数据文件导出给所述实体机器人,所述实体机器人根据所述电机数据文件中的电机数据执行相应的动作。
96.由上述描述可知,通过将动作文件导出为电机数据,按照预设帧率读取3dmax工程中所有骨骼每一帧旋转角度信息获取四元素对象,对比初始位置的四元素对象,采用四元素差值算法,计算出每一帧与首帧之间的差值四元素对象,并转化为轴角的形式,得到差角和旋转轴,通过比对计算得到的旋转轴与预设轴的方向和差角所在的范围,计算出每根骨骼在每一帧的角度差值数据,而由于3dmax工程的骨骼和实体机器人的电机是一一对应的,因此计算出了骨骼的每一帧差值,也就是计算出了电机每一帧的运动数据,即最后能得到与动作文件一一对应的电机数据文件,实体机器人便可根据该电机数据文件执行相应的动作。
97.请参照图1,本发明的实施例一为:
98.一种制作实体机器人动作的方法,包括步骤:
99.s1、从solidworks上导出实体机器人的urdf描述文件;
100.s2、将urdf描述文件导入unity,根据urdf描述文件创建3d实体机器人初始模型,并导出带有骨骼信息的第一3d模型;
101.s3、将第一3d模型导入3dmax,根据骨骼信息为第一3d模型重建骨骼,并进行蒙皮,生成第二3d模型;
102.s4、基于骨骼旋转限制插件在第二3d模型上制作机器人动作进行旋转限制后,生成动作文件;
103.s5、将动作文件导出为电机数据文件给实体机器人。
104.即在本实施例中,实体机器人执行电机数据文件对应的动作,若动作在实体机器人上表达有问题时,可以通过在3dmax中直接对动作文件进行快速修改,重新导出电机数据文件,节省了动作生产周期,实现了更加便捷和快速的实体机器人动作制作方式,同时由于在unity中有对应的3d模型,因此还可以实现仿真功能。
105.请参照图1,本发明的实施例二为:
106.一种制作实体机器人动作的方法,在上述实施例一的基础上,在本实施例中,步骤s2中将urdf描述文件导入unity具体为:
107.新建unity工程,导入ros

sharp的工程代码,使用import robot from urdf工具将urdf描述文件导入unity工程中。
108.即在本实施例中,采用ros

sharp开源工程实现urdf描述文件导入unity的功能,通过ros

sharp的import robot from urdf工具导入urdf描述文件并组装成3d实体机器人初始模型,以便实现后续的仿真功能。
109.其中,步骤s2中导出带有骨骼信息的第一3d模型具体为:
110.使用unity的fbx exporter插件,导出带有骨骼信息且文件格式为fbx的第一3d模型。
111.即本实施例同时还通过fbx exporter插件,导出可供3dmax进一步进行蒙皮开发的fbx格式的3d模型。
112.其中,步骤s3还包括:
113.将第二3d模型导入unity,按照urdf描述文件的配置,对比3d实体机器人初始模型和第二3d模型,并将第二3d模型中的蒙皮信息覆盖到3d实体机器人初始模型上,生成带有骨骼信息、蒙皮信息和关节信息的3d实体机器人最终模型。
114.即在本实施例中,将在3dmax中的蒙皮信息覆盖到unity中使unity中的3d模型带有骨骼信息、蒙皮信息和关节信息,可以在3dmax中将动作制作完成后,在unity上复原出更加逼真的仿真动作,以和实体机器人进行对比实现直观的比较效果和细节微调。
115.其中,步骤s4具体包括以下步骤:
116.s41、读取urdf描述文件中的标准骨骼数据,并在3dmax中将标准骨骼数据转换为原始旋转量、限制旋转轴和限制上下限,原始旋转量为骨骼的初始旋转位置,限制旋转轴用于规定只能绕预设轴旋转,其他轴锁死,限制上下限用于规定绕轴旋转的相对最大角度和相对最小角度。
117.由于标准骨骼数据存放在urdf描述文件中,以右手坐标系标注其位置、旋转和限
制信息等,而3dmax的坐标系标准与urdf描述文件相同,但旋转轴顺序不同,两者不能直接兼容,因此,在本实施例中,需要通过算法将urdf描述文件中的标准骨骼数据转化为上述的三组数据:原始旋转量、旋转限制轴和限制上下限。
118.s42、为第二3d模型中的每根骨骼节点创建旋转控制器,并绑定骨骼节点对应的原始旋转量、限制旋转轴和限制上下限;
119.s43、在旋转控制器中预设限制算法,构成骨骼旋转限制插件,限制算法用于自动为实时制作的动作所对应的每个骨骼节点的骨骼旋转量校正使其符合限制上下限所在的范围,以限制骨骼旋转的效果;
120.s44、通过骨骼旋转限制插件为所有动作进行旋转限制,最终生成一套完整的动作文件。
121.由于用户修改旋转量的行为难以预料,无论是拖动轨迹球(3dmax提供的一种互动方式),还是直接编辑旋转值,或者是修改关键帧都会对骨骼旋转量产生影响。因此,在本实施例中,在3dmax中为每根骨骼节点都绑定一个骨骼旋转控制器,可以用于控制该节点的行为,通过一定的预设限制算法实现限制骨骼旋转的效果,例如可以在用户修改骨骼的旋转量之后,自动判定并修改其旋转量,使其符合旋转限制,防止超出限制的上下限,确保每个动作符合限制,使后续动作的执行更加流畅、自然和美观。
122.其中,步骤s5具体包括以下步骤:
123.s51、读取urdf描述文件中每个电机的限制信息,限制信息包括电机的初始位置、初始角度、旋转轴、最大旋转速度、最小旋转速度、最大旋转角度和最小旋转角度,每个电机与第二3d模型中的骨骼一一对应。
124.由于3dmax工程中的实体机器人模型的骨骼和urdf描述文件中的joint是一一对应的,即一个joint对应一个电机,因此,为了得到骨骼的限制信息,在本实施例中需要读取对应的urdf描述文件中每一个电机的初始位置、初始角度、旋转轴、最大旋转速度、最小旋转速度、最大旋转角度和最小旋转角度,使每个电机与第二3d模型中的骨骼一一对应。
125.s52、根据电机的用途和型号对电机进行分组,并对每一组电机预设帧率。
126.由于不同组电机的执行帧率是不一样的,因此在本实施例中,通过对每一组电机预设帧率,以使后续动作制作时根据预设帧率读取对应的3dmax工程中的各骨骼的骨骼数据。
127.s53、获取生成的动作文件的每一帧下所有骨骼的旋转角度,并转化为四元素对象;
128.s53、采用四元素差值算法,根据预设帧率按组计算单个骨骼的每一帧与首帧的四元素对象之间的差值,并转化为轴角的形式,得到差角和旋转轴;
129.s54、计算旋转轴和骨骼旋转限制插件中规定的预设轴的方向是否一致,若一致则差角为正,否则为负,重复每一帧的计算,得到所有骨骼在每一帧的角度差值;
130.s55、根据角度差值计算旋转角度是否在最大旋转角度和最小旋转角度之间且角速度是否在最大旋转速度和最小旋转速度之间,若是,则保存旋转角度为电机数据文件,否则打印超出旋转范围限定提示;
131.s56、将电机数据文件导出给实体机器人,实体机器人根据电机数据文件中的电机数据执行相应的动作。
132.同时,由于3dmax在制作动作时,会在时间轴上添加多个关键帧来控制不同时间时不同骨骼的旋转角度和位置,在添加完多个关键帧后进行预览时,3dmax插件会对两个关键帧之间的动作过渡进行插值处理,因此一个完整的动作数据是包含每一帧所有骨骼旋转角度和位置信息的数据集合;而实体机器人模型的动作制作除了没有位置变化数据外,其他与上述情况是一样的。因此,在本实施例中,在将动作文件导出为电机数据时,需要按照预设帧率读取3dmax工程中所有骨骼每一帧旋转角度信息获取四元素对象,对比初始位置的四元素对象,采用四元素差值算法,计算出每一帧与首帧之间的差值四元素对象,并转化为轴角的形式,得到差角和旋转轴,通过比对计算得到的旋转轴与预设轴的方向和差角所在的范围,计算出每根骨骼在每一帧的角度差值数据,而由于3dmax工程的骨骼和实体机器人的电机是一一对应的,因此计算出了骨骼的每一帧差值,也就是计算出了电机每一帧的运动数据,即最后能得到与动作文件一一对应的电机数据文件,实体机器人便可根据该电机数据文件执行相应的动作。
133.请参照图2,本发明的实施例三为:
134.一种制作实体机器人动作的终端1,包括存储器2、处理器3以及存储在存储器2上并可在处理器3上运行的计算机程序,处理器3在执行计算机程序时实现上述实施例一或实施例二任一实施例中的步骤。
135.综上所述,本发明提供的一种制作实体机器人动作的方法及终端,通过solidworks将实体机器人的urdf描述文件导入到unity中以创建对应的3d模型,并采用3dmax对3d模型进行骨骼蒙皮,从而在3dmax中进行机器人动作的制作,通过将制作的动作文件导出为可提供给实体机器人端执行表达的电机数据文件,整体具有以下有益效果:
136.1、规定了定制实体机器人动作的流程,从开始的创建solidworks工程到最后的导出电机数据文件,采用这样一整套完整流程可以节省大量的人力物力;
137.2、在3dmax中制作动作,并通过旋转限制插件对动作的效果进行限制,保证动作的更加流畅、自然和美观,同时也可以批量生产制作的动作;
138.3、如果动作文件导出的电机数据文件在实体机器人上执行出现问题时,可以通过直接修改3dmaz工程上对应的动作文件,重新导出电机数据文件进行快速测试,节省了动作生产周期,实现更加便捷和快速的实体机器人动作制作;
139.4、每个动作都会有3dmax工程文件记录可以更加容易进行动作追溯和问题定位;
140.5、可以在unity上复原制作的动作,通过unity仿真效果和实体机器人执行效果进行对比,可以更加直观地比较效果和细节微调。
141.以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等同变换,或直接或间接运用在相关的技术领域,均同理包括在本发明的专利保护范围内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1