一种基于三维场景数据生成机器人仿真场景的方法、装置和存储介质与流程

文档序号:26678254发布日期:2021-09-18 00:27阅读:194来源:国知局
一种基于三维场景数据生成机器人仿真场景的方法、装置和存储介质与流程

1.本发明属于机器人仿真领域,具体涉及一种基于三维场景数据生成机器人仿真场景的方法、装置和存储介质。


背景技术:

2.随着科学技术的发展,机器人技术逐渐走入大众的视野,工业机器人在工业生产中发挥着举足轻重的作用,扫地机器人走进了千家万户,餐饮、酒店服务机器人也随处可见,无人驾驶技术逐渐成熟。机器人时代即将来临,越来越多的社会资源投入到机器人研发中,而机器人仿真是机器人研发过程中十分重要的一环。所谓机器人仿真是指通过计算机技术对实体机器人和场景进行模拟,在模拟的场景下对机器人进行功能测试或让机器人学习相关技能,达到缩短研发周期,减少测试成本、增强算法性能的目的。如申请公布号为cn104007974a和cn107272447a专利申请公布的机器人的仿真模拟过程。
3.场景建模是机器人仿真十分重要的步骤,目前机器人仿真中的虚拟场景建模方法主要分为两类,利用3d建模工具建模和利用扫描设备将真实场景扫描重建。其中,利用3d建模工具的方式比较常见,此类建模工具也有比较多,例如3d max、maya、blender等,另外一些仿真软件也提供一些建模能力,如gazebo、webots。使用建模工具的缺点是操作复杂,需要相关专业知识,并且模型的还原度不高,很真实场景相差较大。利用扫描设备扫描重建的方式可以很好的还原真实场景,但是建模的过程比较麻烦需要借助专业的扫描设备,而且重建精度受限与扫描设备和往往局部细节达不到仿真的要求。


技术实现要素:

4.鉴于上述,本发明的目的是提供一种基于三维场景数据生成机器人仿真场景的方法、装置和存储介质,以提升机器人仿真场景的建模效率和质量。
5.第一方面,实施例提供了一种基于三维场景数据生成机器人仿真场景的方法,包括以下步骤:
6.获取三维场景数据,并从所述三维场景数据中提取三维模型、物理位置信息,并形成统一格式文件;
7.将统一格式文件转换为物理仿真软件的场景文件,包括:对统一格式文件进行解析,并从解析结果中提取物体属性信息形成模型文件,提取场景全局信息形成全局文件;
8.对场景文件添加相应配置文件并封装成机器人仿真场景文件,依据机器人仿真场景文件生成机器人仿真场景。
9.第二方面,实施例提供了一种基于三维场景数据生成机器人仿真场景的装置,包括:
10.获取模块,用于获取三维场景数据,并从所述三维场景数据中提取三维模型、物理位置信息,并形成统一格式文件;
11.转化模块,用于将统一格式文件转换为物理仿真软件的场景文件,包括:对统一格式文件进行解析,并从解析结果中提取物体属性信息形成模型文件,提取场景全局信息形成全局文件;
12.生成模块,用于对场景文件添加相应配置文件并封装成机器人仿真场景文件,依据机器人仿真场景文件生成机器人仿真场景。
13.第三方面,实施例提供了一种基于三维场景数据生成机器人仿真场景的装置,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上执行的计算机程序,所述处理器执行所述计算机程序时实现第一方面所述的基于三维场景数据生成机器人仿真场景方法。
14.第四方面,一种计算机存储介质,其上存储有计算机程序,所述计算机程序被处理执行时实现第一方面所述的基于三维场景数据生成机器人仿真场景的方法的步骤。
15.上述实施例提供的基于三维场景数据生成机器人仿真场景的方法、装置和存储介质,具有的有益效果至少包括:
16.以高质量的三维场景数据为基础,将三维场景数据全自动转化成机器人仿真场景文件,转化效率高;同时,得到的仿真场景细节丰富,质量高,而且能够还原真实场景;再者,可在获得的仿真场景文件中添加物理信息以用于物理仿真,灵活性强;此外,可以转换为任何一种仿真软件适配的机器人仿真场景文件,可拓展性强。
附图说明
17.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图做简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动前提下,还可以根据这些附图获得其他附图。
18.图1是一实施例提供的基于三维场景数据生成机器人仿真场景的方法的流程图;
19.图2是一实施例提供的基于三维场景数据生成机器人仿真场景的装置的结构示意图。
具体实施方式
20.为使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例对本发明进行进一步的详细说明。应当理解,此处所描述的具体实施方式仅仅用以解释本发明,并不限定本发明的保护范围。
21.一些现有在线家装设计平台积累海量的三维场景数据,这些三维场景数据高质量,具有丰富的纹理信息和几何信息,而且大多是设计师参照实际场景设计出来的,能够很好地还原真实场景。在此条件下,为了解决机器人仿真中场景数据建模困难的问题,实施例提供了一种基于三维场景数据生成机器人仿真场景的方法、装置和存储介质,利用三维场景数据生成机器人仿真场景文件,基于机器人仿真场景进行机器人仿真,对机器人进行功能测试或让机器人学习相关技能,能够极大的达到缩短研发周期,减少测试成本、增强算法性能。
22.图1是一实施例提供的基于三维场景数据生成机器人仿真场景的方法的流程图。
如图1所示,实施例提供的一种基于三维场景数据生成机器人仿真场景的方法,包括以下步骤:
23.s1,获取三维场景数据,并从所述三维场景数据中提取三维模型、物理位置信息,并形成统一格式文件。
24.实施例中,三维场景数据来源于现有设计平台存储的设计方案,这些设计方案由专业设计师设计完成,且经过完善和优化,质量高。基于此,可以根据设计方案编号从设计平台的后台获取设计方案对应的三维场景数据。这些三维场景数据主要包括三维模型、光照信息、纹理信息以及物理位置信息等。
25.实在获得三维场景数据后,从所述三维场景数据中提取三维模型、物理位置信息,并形成标准的统一格式文件以供后续转换调用,或者提取三维模型、光照信息、纹理信息以及物理位置信息,并形成标准的统一格式文件以供后续转换调用,其中,三维模型采用obj格式文件,纹理信息、光照信息以及物理位置信息采用json格式文件。
26.实施例中,设计方案编号为功能空间id,其中,功能空间是指描述行为功能的区间,一般分为卧室、客厅、厨房、卫生间、健身区域等。针对每个设计方案,转换的统一格式文件包括:
27.data:name.json文件,包含设计方案中的所有物体信息,包括物理位置信息、光照信息、纹理信息等。
28.globalassets:设计方案所包含的文件信息,具体内容为:material:包含材质信息的json文件;model:包含三维模型的obj文件;pbrtextures:材质信息中所用到的纹理图片。
29.将提取的三维场景数据转化为上述标准的统一格式文件后,该统一个数文件便于作为入口文件进行仿真格式转换。
30.s2,将统一格式文件转换为物理仿真软件的场景文件。
31.如gazebo等仿真软件拥有自己标准的场景文件输入格式,按照输入格式导入场景文件后可进行实时渲染并进行仿真任务。因此,需要将统一格式文件转换为物理仿真软件的场景文件,具体包括:对统一格式文件进行解析,并从解析结果中提取物体属性信息形成模型文件,提取场景全局信息形成全局文件。
32.模型文件是指每个物体信息形成的文件,可以采用sdf格式文件,模型文件包含的物体信息包括:三维模型、材质属性、物理属性,属性之间以节点的形式组成。其中,材质属性和物理属性采用xml格式文件。材质属性是指各种材质以及材质对应的纹理图片,材质包含漫反射(diffuse)、镜面反射(reflect)、折射系数(refract)、透明度(d)、光泽度(gloss)等。物理属性包含物体的位置、质量、摩擦力以及碰撞属性等。
33.全局文件是指包含全局场景信息的文件,可以采用world格式文件、xml格式文件。全局文件包含的场景全局信息包括:光照信息、模型文件、以及位置信息,还可以包括场景名称、重力系数、物理仿真引擎等。其中,光照信息包括环境光信息、平行光信息、点光源信息等。
34.以仿真软件gazebo为例进行说明,将室内设计方案包含的三维场景数据转换成机器人仿真场景文件,并导入仿真软件gazebo进行机器人仿真任务。针对仿真软件gazebo来说,将统一格式文件转换为gazebo的世界场景文件格式包括:
35.全局文件world(简称world文件):格式为.world文件,包含整个场景的全局信息,如光照信息,所包含物体信息等。
36.模型文件models(简称models文件):包含场景中每个物体信息。每个物体的模型文件包括:models.sdf:sdf文件,包含物体的材质属性以及物理属性等;models.config:包含models文件的名字、版本、作者等信息;meshes:对应models文件对应的obj文件以及mtl文件。
37.下面针对world文件和models文件进行详细说明。
38.gazebo仿真场景的world文件包含场景的全局信息,具体生成内容如下:在gazebo中.world文件是仿真场景的入口文件,是一个xml格式文件,主要包含场景的全局信息,属性之间都是以节点的形式保存。其中,全局信息包括:场景世界的名字(name);物理仿真引擎节点(physics),指定所使用的物理仿真引擎如bullet,ode等;环境光照(scene),环境光的强度,背景颜色以及是否有阴影等;通过include的属性把生成的每一个模型文件包含进入场景的world文件中,并指定所在的位置信息(pose);显示窗口中的属性(gui),空气(atmosphere),动作(actor),路径(road),状态(state)等其他属性信息;物体的光照信息(light),主要包含环境光(scene light)、平行光(directionallight)、点光源(point light)以及聚光灯(spot light)等,每种光源有自己的属性,进行详细说明为:
39.环境光(scene light)简称为scene光照,反映的整个场景的间接光照的强度,主要属性如下:环境光的强度(ambient),由四个值组成如:<ambient>0.4 0.4 0.4 1</ambient>;背景光强度(background),由四个值组成如:<background>0.7 0.7 0.7 1</background>;是否产生阴影(shadows),由一个值组成,如:<shadows>1</shadows>。
40.平行光(directionallight)简称directional光照,其没有位置信息只有方向信息,具体属性如下:是否造成阴影(cast_shadows),如<cast_shadows>1</cast_shadows>;光源的位置信息(pose),如<pose frame="">0 0 10 0 0 0</pose;平行光的方向信息(direction:),如<direction>0 0 0.1</direction>;光照的衰减信息(attenuation),主要包含光照距离(range)、常数衰减系数(constant)、线性衰减系数(linear)以及二次衰减系数(quadratic);漫反射(diffuse),包含漫反射颜色(diffuse light color);高亮反射(specular),包含高亮反射光颜色(specular light color)。
41.点光源(point light)简称point光照,代表功能区间内的点光源信息,具体属性如下:是否造成阴影(cast_shadows),如<cast_shadows>1</cast_shadows>;点光源的位置信息(pose),如<pose frame="">0 0 10 0 0 0</pose>;点光源的方向信息(direction),如<direction>0 0

0.1</direction>;光照的衰减信息(attenuation),主要包含光照距离(range)、常数衰减系数(constant)、线性衰减系数(linear)以及二次衰减系数(quadratic);漫反射(diffuse),包含漫反射颜色(diffuse light color);高亮反射(specular),包含高亮反射光颜色(specular light color)。
42.聚光灯(spot light)简称spot光照,室内场景的聚光灯光源,相对于point光照多了聚光(spot)属性,spot属性具体内容如下:聚光灯光源的内半径(inner_angle),如<inner_angle>0.6</inner_angle>;聚光灯光源的外半径(outer_angle),如<outer_angle>1.0</outer_angle>;聚光灯内半径和外半径之间的衰减率(falloff)。
43.gazebo仿真场景models文件包含每个物体信息,具体内容如下:gazebo场景中
models文件包含场景信息中每个物体信息,主要包含材质属性和物理属性,由model.sdf和model.config组成,其文件格式都是xml格式,属性之间以节点的形式组成。具体的属性节点信息如下:物体模型的名字(name);是否是静止的物体(static);每个物体形成一个连接(link),模型link信息是核心属性信息,主要包含质量,碰撞,显示(visual)等属性;嵌入的model文件,模型可以嵌入另外一个子模型;是否受风力的影响(enable_wind),是否允许子碰撞(self_collide),包含其他模型(include),坐标系的名字(frame)。
44.针对仿真软件gazebo,model文件主要信息包含在link节点属性中,link节点属性具体内容介绍如下:物体模型的link名字name;物体的质量属性(mass);是否允许自碰撞的属性(self_collide);link的转动惯量(inertia);模型的显示属性(visual),主要是通过几何图形(geometry)进行模型的加载,对应的模型为models文件中的三维模型obj文件,并设置尺寸(size)属性进行缩放;模型碰撞属性(collision),主要是导入碰撞物体(geometry),并设置常见的碰撞属性如摩擦力(friction)等;传感器(sensor),光照(light)等其他属性。
45.场景中的每个物体拥有其自己sdf文件,包含其物理属性以及材质属性,形成场景中一个模型model,多个model形成整个场景的模型库,利用world文件进行加载使用。转换的gazebo场景中每个室内物体采用obj文件格式,其材质属性文件对应mtl文件写入,整体mesh文件采用obj+mtl文件格式。其中,obj文件:标准的三维模型obj文件,包含顶点,面片,纹理坐标,法线等信息。mtl文件:基于酷家乐场景提供的信息,本文提取如下信息进行mtl文件的生成,其代表场景物体的材质属性,具体内容如下:ka:材质的环境光(ambient color);kd:散射光(diffuse color);ks:镜面光(specular color);d:渐隐指数描述透明度;tf:滤光透射率;map_kd:反射指定颜色纹理文件。
46.s3,对场景文件添加相应配置文件并封装成机器人仿真场景文件,依据机器人仿真场景文件生成机器人仿真场景。
47.实施例中,添加的配置文件用于生成机器人仿真场景文件包,包括:cmakelists.txt编译控制文件、package.xml文件、调用文件的.launch文件。其中,cmakelists.txt编译控制文件主要用于将单个源文件编译成可执行文件,pacakage.xml文件用于描述软件包的属性,包括名字、版本号、作者、维护者、通行证等,调用文件的.launch文件主要用于调取其他文件,如在指定位置(通过.launch文件指定位置)添加机器人。在场景文件添加这些配置文件后即可以形成仿真软件可执行的机器人仿真场景文件包(ros包),然后,仿真软件通过执行机器人仿真场景文件生成机器人仿真场景,利用机器人仿真场景可以进行机器人仿真任务,如导航、避障、同步定位与建图(slam)对机器人进行功能测试或让机器人学习相关技能,能够极大的达到缩短研发周期,减少测试成本、增强算法性能。
48.一般设计平台采集的三维场景数据相对负责生成仿真场景也非常的复杂,场景的渲染速度非常影响仿真任务的进行,为了提升仿真的效率,在获得场景文件后,对场景文件进行模型简化、模型的纹理合并、光照信息的删减优化,以得到优化后的场景文件,然后依据优化后的场景文件封装成机器人仿真场景文件。
49.针对模型简化,可以在保证其基本形状的情况下进行模型简化,可以设置简化率为1/10,进行模型的网格简化,简化后的模型其对于仿真任务基本没有任何影响却可以加
快运行速度。
50.针对模型的纹理合并,当前模型中存在非常多使用相同纹理的面片,对于此种情况把相同纹理的相同面片合并在一起,可以极大的加快渲染速度。
51.针对光照信息的删减优化,目前场景灯光非常多,种类也非常多,各种光线的计算占据了整个渲染时间的一半左右,基于此,灯光可以进行筛选过滤,部分阴影效果可以去除等,从而在保证渲染效果的情况下加快了渲染速度。
52.经过模型简化、模型的纹理合并、光照信息的删减优化这三种优化方式,场景在i7

7700+rtx2070+16g情况下可以稳定运行60fps。
53.上述实施例提供的基于三维场景数据生成机器人仿真场景的方法,以高质量的三维场景数据为基础,将三维场景数据全自动转化成机器人仿真场景文件,转化效率高;同时,得到的仿真场景细节丰富,质量高,而且能够还原真实场景;再者,可在获得的仿真场景文件中添加物理信息以用于物理仿真,灵活性强;此外,可以转换为任何一种仿真软件适配的机器人仿真场景文件,可拓展性强。
54.图2是一实施例提供的基于三维场景数据生成机器人仿真场景的装置的结构示意图。如图2所示,实施例提供的基于三维场景数据生成机器人仿真场景的装置200,包括:
55.获取模块210,用于获取三维场景数据,并从所述三维场景数据中提取三维模型、物理位置信息,并形成统一格式文件;
56.转化模块220,用于将统一格式文件转换为物理仿真软件的场景文件,包括:对统一格式文件进行解析,并从解析结果中提取物体属性信息形成模型文件,提取场景全局信息形成全局文件;
57.生成模块230,用于对场景文件添加相应配置文件并封装成机器人仿真场景文件,依据机器人仿真场景文件生成机器人仿真场景。
58.需要说明的是,实施例提供的可编程定义的室内场景生成装置在进行自动生成时,应以上述各功能模块的划分进行举例说明,可以根据需要将上述功能分配由不同的功能模块完成,即在终端或服务器的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,实施例提供的基于三维场景数据生成机器人仿真场景的装置与基于三维场景数据生成机器人仿真场景的方法实施例属于同一构思,其具体实现过程详见基于三维场景数据生成机器人仿真场景的方法实施例,这里不再赘述。
59.实施例还提供了一种基于三维场景数据生成机器人仿真场景的装置,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上执行的计算机程序,所述处理器执行所述计算机程序时实现上述基于三维场景数据生成机器人仿真场景方法,即实现如下步骤:
60.s1,获取三维场景数据,并从所述三维场景数据中提取三维模型、物理位置信息,并形成统一格式文件;
61.s2,将统一格式文件转换为物理仿真软件的场景文件,包括:对统一格式文件进行解析,并从解析结果中提取物体信息形成模型文件,提取场景全局信息形成全局文件;
62.s3,对场景文件添加相应配置文件并封装成机器人仿真场景文件,依据机器人仿真场景文件生成机器人仿真场景。
63.实施例提供的一种计算机存储介质,其上存储有计算机程序,所述计算机程序被
处理执行时实现上述基于三维场景数据生成机器人仿真场景的方法的步骤。
64.本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本技术所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(rom)、可编程rom(prom)、电可编程rom(eprom)、电可擦除可编程rom(eeprom)或闪存。易失性存储器可包括随机存取存储器(ram)或者外部高速缓冲存储器。作为说明而非局限,ram以多种形式可得,诸如静态ram(sram)、动态ram(dram)、同步dram(sdram)、双数据率sdram(ddrsdram)、增强型sdram(esdram)、同步链路(synchlink)dram(sldram)、存储器总线(rambus)直接ram(rdram)、直接存储器总线动态ram(drdram)、以及存储器总线动态ram(rdram)等。
65.以上所述的具体实施方式对本发明的技术方案和有益效果进行了详细说明,应理解的是以上所述仅为本发明的最优选实施例,并不用于限制本发明,凡在本发明的原则范围内所做的任何修改、补充和等同替换等,均应包含在本发明的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1