掌桥专利:专业的专利平台
掌桥专利
首页

基于户型图重建vrep场景的方法及软硬件协同测试平台

文献发布时间:2023-06-19 19:33:46


基于户型图重建vrep场景的方法及软硬件协同测试平台

技术领域

本发明涉及机器人测试技术领域,涉及一种基于户型图重建vrep场景的方法及软硬件协同测试平台。

背景技术

基于vrep的软硬件协同测试平台目前在智能机器人测试领域内广泛的使用中,但是随着测试的需求递增,对于测试的场景(家居和办公环境)的需求也在快速递增,随之而来的问题是一些关于测试平台的操作和应用是否方便和快捷。在现有的方法中通过户型图重建vrep测试场景的方法比较繁琐而且效率低下,无法为机器人测试提供相应的需求。

发明内容

为了解决上述技术缺陷,本发明技术方案公开一种基于户型图重建vrep场景的方法及软硬件协同测试平台,本申请通过一个通用的户型图就可以重建出vrep测试场景,简单,方便,快速;适用于各种房产户型图,也能用于常规的平面图,通用性强。具体的技术方案如下:

一种基于户型图重建vrep场景的方法,该方法包括以下步骤:S1:获取房子的户型图,然后对获取的户型图进行图像转化,来得到房子的户型图的二值图;S2:对二值图进行图像处理来获取二值图中的房子的内部轮廓,同时对二值图进行图像查找来获取二值图中的房子的外部轮廓;S3:将获取的内部轮廓和外部轮廓进行合并,得到内部轮廓和外部轮廓合并后的轮廓数据,然后根据合并后得到的轮廓数据来构建vrep场景。

进一步地,步骤S1中,采用阈值分割来对户型图进行分割,将图像中的所有像素点的灰度值划分为0或255来得到户型图的二值图。

进一步地,步骤S2中,对二值图进行图像处理来获取二值图中的房子的内部轮廓包括以下步骤:对进行图像处理后的二值图进行腐蚀处理,来将二值图中非必要因素去除;对经过腐蚀处理后的二值图进行开运算来去除经过腐蚀处理后的二值图中的噪点;对去除噪点后的二值图进行轮廓查找来获取二值图中的房子的内部轮廓;其中,所述非必要因素包括但不限于门、窗和字体。

进一步地,对二值图进行腐蚀处理包括以下步骤:先根据非必要因素的大小来设置结构元素,然后采用结构元素来遍历二值图,遍历时,将结构元素与其覆盖的二值图做与操作,根据与操作结果来去掉二值图中的非必要因素。

进一步地,步骤S2中,对二值图进行图像查找来获取二值图中的房子的外部轮廓包括以下步骤:对进行图像处理后的二值图进行轮廓查找,获取二值图中的房子的轮廓线,然后对房子的轮廓线进行特征筛选,从轮廓线中筛选出外部轮廓,并从轮廓线中获取图上距离和实际距离的比例;其中,所述外部轮廓为除了图像外框外包络面积最大的轮廓线。

进一步地,从轮廓线中获取图上距离和实际距离的比例包括以下步骤:分别获取轮廓线中水平方向和垂直方向上的最远距离的平行线,通过水平方向和垂直方向上的最远距离的平行线来确定出户型图的长和宽的像素距离,然后通过字符识别软件来读取户型图中的长和宽的尺寸,图上距离和实际距离的比例等于户型图中的长和宽的尺寸与户型图的长和宽的像素距离的比值。

进一步地,步骤S3中,对获取的外部轮廓取最小外接矩形,然后将外部轮廓和内部轮廓进行组合,并将最小外接矩形外的轮廓线去除得到轮廓数据,将轮廓数据和图上距离与实际距离的比例写入到文件中,并进行保存。

进一步地,对获取的外部轮廓取最小外接矩形包括以下步骤:将二值图中的房子的外部轮廓在90°范围内等间隔的进行若干次旋转;每次旋转时,记录外部轮廊在坐标系方向上的外接矩形参数;然后通过计算外接矩形面积来得到外部轮廓的最小外接矩形。

进一步地,步骤S3中,构建vrep场景包括以下步骤:读取保存有轮廓数据和图上距离与实际距离的比例的文件,并将文件中的数据保存到数组中;根据图上距离与实际距离的比例在轮廓数据的轮廓线上分别添加立方体,然后将所有立方体进行合并;将合并后的立方体合并到围墙的模型中,然后对围墙设置属性和纹理,得到vrep场景并对vrep场景进行保存。

一种基于vrep的软硬件协同测试平台,所述基于vrep的软硬件协同测试平台用于执行上述的基于户型图重建vrep场景的方法,所述软硬件协同测试平台通过远程调用接口来识别户型图和保存具有内部轮廓与外部轮廓合并后的轮廓数据和户型图的图上距离与实际距离的比例的文件,所述软硬件协同测试平台通过vrep脚本程序来读取具有内部轮廓与外部轮廓合并后的轮廓数据和户型图的图上距离与实际距离的比例的文件和构建vrep场景。

与现有的技术相比,本申请的技术方案只需一个通用的户型图就可以重建出vrep测试场景,可以快速的大量获取vrep测试场景,大量节省人力物力,使得产品在研发阶段可以得到更多的验证,减少量产时可能遇到的问题。

附图说明

图1为本发明一种实施例中所述的基于户型图重建vrep场景的方法的流程示意图;

图2为本发明一种实施例中所述的户型图;

图3为本发明一种实施例中所述的内部轮廓图;

图4为本发明一种实施例中所述的外部轮廓和内部轮廓合并后的轮廓图。

具体实施方式

下面结合附图对本发明的具体实施方式作进一步说明。应该指出,以下详细说明都是示例性的,旨在对本申请提供进一步的说明。除非另有指明,本文使用的所有技术和科学术语具有与本申请所属技术领域的普通技术人员通常理解的相同含义。

一种基于vrep的软硬件协同测试平台,所述基于vrep的软硬件协同测试平台用于执行基于户型图重建vrep场景的方法,所述软硬件协同测试平台通过远程调用接口来识别户型图和保存具有内部轮廓与外部轮廓合并后的轮廓数据和户型图的图上距离与实际距离的比例的文件,所述软硬件协同测试平台通过vrep脚本程序来读取具有内部轮廓与外部轮廓合并后的轮廓数据和户型图的图上距离与实际距离的比例的文件和构建vrep场景。基于vrep的软硬件协同测试平台有常用的机器人测试常用的软硬件组合而成。vrep是具有集成开发环境的机器人模拟器,基于分布式控制架构:每个对象/模型可以通过嵌入式脚本、插件、ROS或BlueZero节点、远程API客户端或定制解决方案进行单独控制。这使得vrep非常通用,非常适合多机器人应用。控制器可以用C/ c++、Python、Java、Lua、Matlab或Octave编写。vrep用于快速算法开发、工厂自动化仿真、快速原型与验证、机器人相关教育、远程监控、安全复核等。远程调用接口为vrep提供了一个远程调用接口(remote api),允许从外部控制模拟(或模拟器本身)应用程序或远程硬件(如真实机器人、远程计算机等)。vrepremote api是由大约一百个特定函数和一个可调用的泛型函数组成来自C/C++应用程序、Python脚本、Java应用程序、Matlab/Octave程序或Lua脚本。远程API函数通过套接字通信(或者,可选地,通过共享API)与vrep交互内存)在很大程度上减少了滞后和网络负载。所有这些都是以隐藏的方式发生的给用户。远程API可以让一个或多个外部应用程序与vrep在同一时间进行交互同步*或异步*方式(默认为异步),甚至远程控制模拟器支持(例如,远程加载场景、启动、暂停或停止模拟)。

如图1所示,一种基于户型图重建vrep场景的方法,主要分为识别和构建两部分,在识别阶段主要做识别出户型图的轮廓和scale,并将这些数据保存到文件中。在模型构建方面是直接读取识别给出的数据进行模型构建,具体包括以下步骤:

步骤S1,先获取一张房子的户型图,这个户型图可以是各种房产的通用户型图,如图2所示,获取方法可以从云端或者机器人保存的户型图中进行读取,也可以通过现有的常见方法来构建户型图,只需一个通用的户型图就可以重建出大量vrep测试场景,简单,方便,快速。获取到户型图后对户型图进行图像处理,来得到房子的户型图的二值图,二值图像(Binary Image)是指将图像上的每一个像素只有两种可能的取值或灰度等级状态,人们经常用黑白、B&W、单色图像表示二值图像,也就是说,图像中的任何像素点的灰度值均为0或者255,分别代表黑色和白色。本申请的一个实施例中,是采用阈值分割对户型图进行分割来获取房子的户型图的二值图,主要做法是设置像素点的灰度值的特征阈值,比较像素点的灰度值与特征阈值的大小,若像素点的灰度值小于或等于特征阈值,则将该像素点的灰度值划分为0,也就是白;若像素点的灰度值大于特征阈值,则将该像素点的灰度值划分为255,也就是黑,将户型图中全部的像素点进行划分后就得到房子的二值图。

步骤S2,在对户型图分割为二值图后,在此二值图像上需要做两个操作。一个是识别出经过形态学处理的内部轮廓。另一个是识别出户型图外轮廓和确定图上距离和实际距离的比例(scale)。

作为其中一种实施例,如图3所示,对二值图进行图像处理来获取二值图中的房子的内部轮廓包括以下步骤:对进行图像处理后的二值图进行腐蚀处理,来将二值图中非必要因素去除,其中,所述非必要因素包括但不限于门、窗和字体,也就是通过腐蚀操作去掉户型图里的门和字体等相关对后续建模无用的东西。对二值图进行腐蚀处理包括以下步骤:先根据非必要因素的大小来设置结构元素,然后采用结构元素来遍历二值图,遍历时,将结构元素与其覆盖的二值图做与操作,根据与操作结果来去掉二值图中的非必要因素,可以通过编辑C#代码来实现。在去除了户型图里的门和字体等相关对后续建模无用的东西后,对经过腐蚀处理后的二值图进行开运算来去除经过腐蚀处理后的二值图中的噪点,先腐蚀后膨胀的过程称为开运算,用来消除小物体、在纤细点处分离物体、平滑较大物体的边界的同时并不明显改变其面积,为常见的图像处理技术。然后对去除噪点后的二值图进行轮廓查找来获取二值图中的房子的内部轮廓,即除外轮廓外的轮廓线组成的轮廓。轮廓检测可以使用findContours函数,检测步骤是:使用拉普拉斯或Canny等边缘检测算子处理图像,获得仅包含边界的二值图像; 使用findContorus方法,获取图像所有的边界连续像素序列,并保存在contours向量中;标示出contours向量中所有的轮廓序列,然后从轮廓序列中获取内部轮廓。

作为其中一种实施例,对二值图进行图像查找来获取二值图中的房子的外部轮廓包括以下步骤:对进行图像处理后的二值图进行轮廓查找,轮廓查找可以是上述所述方法,也可以是本领域内其他轮廓查找方法,获取二值图中的房子的轮廓线,然后对房子的轮廓线进行特征筛选,从轮廓线中筛选出外部轮廓,并从轮廓线中获取图上距离和实际距离的比例;其中,所述外部轮廓为除了图像外框外包络面积最大的轮廓线,特征筛选时,根据除了图像外框外包络面积最大的轮廓线来获取外部轮廓。可以通过opencv软件等来实现外部轮廓的特征筛选。从轮廓线中获取图上距离和实际距离的比例包括以下步骤:分别获取轮廓线中水平方向和垂直方向上的最远距离的平行线,通过水平方向和垂直方向上的最远距离的平行线来确定出户型图的长和宽的像素距离,然后通过字符识别软件来读取户型图中的长和宽的尺寸,图上距离和实际距离的比例等于户型图中的长和宽的尺寸与户型图的长和宽的像素距离的比值。即在轮廓线中通过水平和垂直两个方向上的最远距离的平行线确定出户型的长和宽的像素距离d_w,d_h。因为一般户型图都会给出长宽的距离的。此时,可以用ocr软件去户型图中读取长和宽的尺寸m_w,m_h。那么scale=m_w/d_w=m_h/d_h。到此就可以确定出scale用于后面去构建跟实际尺度一样的模型。

步骤S3,在获取外部轮廓和内部轮廓后,就是对内部轮廓和外部轮廓的合并。合并的时候需要先对外轮廓线取最小外接矩形,对获取的外部轮廓取最小外接矩形,然后将外部轮廓和内部轮廓进行组合,并将最小外接矩形外的轮廓线去除得到轮廓数据,只有在这个外接矩内部的轮廓线才会被用于合并,然后去除图3所示的右边箭头,就得到如图4所示外部轮廓和内部轮廓组合后的轮廓线图,将轮廓数据和图上距离与实际距离的比例写入到文件中,并进行保存。然后就使用保存的数据进行建模。对获取的外部轮廓取最小外接矩形包括以下步骤:将二值图中的房子的外部轮廓在90°范围内等间隔的进行若干次旋转;每次旋转时,记录外部轮廊在坐标系方向上的外接矩形参数;然后通过计算外接矩形面积来得到外部轮廓的最小外接矩形。

作为其中一种实施例,用remote api比较难以处理模型构建相关的东西。而模型构建相关的处理在vrep脚本里面是有很好的接口的。所以在识别部分将识别结果输出到文件,然后再用vrep端负责读文件和构建场景相关的操作。在vrep端的处理主要是一些api的运用,这些都是在脚本程序中直接执行。首先是通过文件io接口读取识别部分保存的数据文件,将读取到的数据保存到数组中,方便之后的使用。在得到数据数组之后,根据数据文件中的轮廓长宽高和位置,用vrep api去添加立方体(cubic);在增加完这些立方体之后,对这些立方体进行合并,合并到围墙(wall)的模型(model)中,方便之后的属性设置;给围墙设置repondable,dynamic等属性和增加纹理(texture)等;得到vrep场景并对vrep场景进行保存。

与现有的技术相比,本申请的技术方案只需一个通用的户型图就可以重建出vrep测试场景,可以快速的大量获取vrep测试场景,大量节省人力物力,使得产品在研发阶段可以得到更多的验证,减少量产时可能遇到的问题。

以上所述,仅是本发明的较佳实施例而己,并非是对本发明作其它形式的限制,任何熟悉本专业的技术人员可能利用上述揭示的技术内容加以变更或改型为等同变化的等效实施例。但是凡是未脱离本发明技术方案内容,依据本发明的技术实质对以上实施例所作的任何简单修改、等同变化与改型,仍属于本发明技术方案的保护范围。

技术分类

06120115953252