一种适用于ROS系统的Unity3D下视觉传感器的仿真方法技术方案

技术编号:32212997 阅读:56 留言:0更新日期:2022-02-09 17:18
本发明专利技术提供了一种适用于ROS系统的Unity3D下视觉传感器的仿真方法,通过Unity3D仿真的方式,实现一种虚拟环境中的视觉传感器,并与实际的ROS系统通信,为机器人仿真测试环境提供了关键技术方法。本发明专利技术通过添加可选择的图像噪声,模拟了真实相机会出现的噪点等干扰数据,提高了仿真相机的真实感。通过对RGB图像数据处理与编码,本发明专利技术生成了Image格式的ROS传感器数据,包含完整的未处理的RGB图像数据,实现了Unity3D中RGB相机的RGB原始数据仿真。通过对RGB图像数据的压缩与编码,本发明专利技术生成了CompressedImage格式的ROS传感器数据,实现了Unity3D中RGB相机的RGB压缩数据仿真。实现了Unity3D中RGB相机的RGB压缩数据仿真。实现了Unity3D中RGB相机的RGB压缩数据仿真。

【技术实现步骤摘要】
一种适用于ROS系统的Unity3D下视觉传感器的仿真方法


[0001]本专利技术涉及一种适用于ROS系统的Unity3D下视觉传感器的仿真方法,为机器人仿真测试环境提供了关键技术方法。

技术介绍

[0002]ROS作为一个开源机器人操作系统平台,凭借其活跃的生态社区,被广泛使用于服务机器人行业。在研究机器人的算法时,往往需要测试它在不同环境下的功能和性能表现。但是由于场地和资源限制,不太可能随时提供一个这样的任意变化的场所,所以一个虚拟的仿真环境是机器人算法评测的最好的解决办法。
[0003]申请号为201810021768.5的中国专利申请,公开了一种机器人跨平台通信协议和控制方法,该专利技术专利申请利用Unity3D、ROS

bridge和ROS系统实现了一种机器人跨平台通信协议和控制方法。上述专利技术专利申请中申明的跨平台通信协议只是包含了机器人控制指令,内容不足、适用性差。

技术实现思路

[0004]本专利技术的目的是:通过Unity3D仿真的方式实现一种虚拟环境中的视觉传感器,并与实际的ROS系统通信。
[0005]为了达到上述目的,本专利技术的技术方案是提供了一种适用于ROS系统的Unity3D下视觉传感器的仿真方法,其特征在于,用于获得RGB图像或者深度图像,其中:
[0006]通过所述仿真方法获得RGB图像包括以下步骤:
[0007]步骤101:使用Windows平台Unity3D三维游戏引擎中的Camera组件获取原始可视域;r/>[0008]步骤102:在原始可视域的基础上修改Camera组件的分辨率、水平视场角与垂直视场角、景深、刷新率以及图像质量,其中:
[0009]根据实际相机参数中的分辨率修改Camera组件的分辨率,分辨率表示为图像宽W
×
高H;
[0010]实际相机参数中的垂直视场角要求修改垂直视场角HFOV;
[0011]根据分辨率W
×
H、垂直视场角HFOV、水平视场角WFOV与相机焦距f的关系计算得到水平视场角WFOV,根据计算得到的水平视场角WFOV修改Camera组件的水平视场角WFOV;
[0012]根据实际相机参数中的最近景深与最远景深完成对景深的修改;
[0013]根据实际相机参数中的刷新率对应要求完成对刷新率的修改;
[0014]根据目标用户的带宽动态设定对应的图像压缩比例以调整图像质量;
[0015]步骤103:新建画布组件,根据步骤102确定的分辨率对画布组件进行截取,获取和分辨率一致的画布组件,按行按列将获取的原始可视域像素赋值给画布组件,并返回对应的画布组件,即为生成的RGB图像;
[0016]步骤104:对生成的RGB图像添加相应的噪声;
[0017]步骤105:根据Linux平台ROS系统通信格式,对上一步得到的RGB图像进行处理,得到处理后的图像数据包,其中,对RGB图像进行处理包括将RGB图像安装图像质量进行压缩后按对应发送格式编码,或者将原始大小的按对应发送格式编码;
[0018]步骤106:建立基于WebSocket的通信模块,连接到Linux平台ROS系统中的ROS

Bridge服务器,并发布类型为Image的ROS话题数据包或类型为Image的CompressedImage的ROS话题数据包,其中,类型为Image的ROS话题数据包是基于未压缩的图像所得到的图像数据包;类型为CompressedImage的ROS话题数据包是基于经过压缩处理的图像所得到的图像数据包;
[0019]步骤107:根据设定的帧率,设置定时器,通过通信模块定时发布上一步得到的ROS话题数据包;
[0020]步骤108:Linux平台ROS系统利用ROS

Bridge模块接收ROS话题数据包;
[0021]步骤109:通过订阅类型为Image的ROS话题数据包或类型为Image的CompressedImage的ROS话题数据包,在Rviz软件中呈现RGB图像数据;
[0022]深度图像模块流程步骤如下:
[0023]步骤201:使用Windows平台Unity3D三维游戏引擎中的Camera组件获取原始可视域;
[0024]步骤202:将原始可视域进行线性投影操作,获取深度可视域,其中,进行线性投影操作时,透视投影下的深度值z
vjew
表示为下式:
[0025][0026]式中,Far与Near分别为远近裁剪平面的距离,同时也是最远景深与最近景深的值;d为对于单一深度图像而言,每个像素点在经过空间正交投影后的深度值,d=0.5
×
z
ndc
+0.5,z
ndc
为NDC中顶点坐标Z轴分量的值;
[0027]步骤203:在深度可视域的基础上修改Camera组件的分辨率、水平视场角与垂直视场角、景深以及刷新率,其中:
[0028]根据实际相机参数中的分辨率修改Camera组件的分辨率,分辨率表示为图像宽W
×
高H;
[0029]实际相机参数中的垂直视场角要求修改垂直视场角HFOV;
[0030]根据分辨率W
×
H、垂直视场角HFOV、水平视场角WFOV与相机焦距f的关系计算得到水平视场角WFOV,根据计算得到的水平视场角WFOV修改Camera组件的水平视场角WFOV;
[0031]根据实际相机参数中的最近景深与最远景深完成对景深的修改;
[0032]根据实际相机参数中的刷新率对应要求完成对刷新率的修改;
[0033]步骤204:新建画布组件,根据步骤102确定的分辨率对画布组件进行截取,获取和分辨率一致的画布组件,按行按列将获取的深度可视域像素赋值给画布组件,并返回对应的画布组件,即为生成的深度图像;
[0034]步骤205:对生成的深度图像添加相应噪声;
[0035]步骤206:对上一步得到的深度图像进行空间转换计算,获取深度图像对应点云数据;
[0036]步骤207:根据ROS通信格式,对点云数据进行处理,得到处理的数据包;
[0037]步骤208:建立基于WebSocket的通信模块,连接到ROS系统中的ROS

Bridge服务器,基于步骤207得到的数据包发布类型为PointCloud2的ROS话题数据包;
[0038]步骤209:根据帧率要求,设置定时器,定时发送ROS话题数据包,Linux平台ROS系统进行接收;
[0039]步骤210:Linux平台ROS系统中利用ROS

Bridge模块接收ROS话题数据包;
[0040]步骤211:通过订阅类型为PointCloud2的ROS话题数据包,在Rviz软件中呈现深度点云数据。
[0041]优选的,步骤102及步骤203中本文档来自技高网...

【技术保护点】

【技术特征摘要】
1.一种适用于ROS系统的Unity3D下视觉传感器的仿真方法,其特征在于,用于获得RGB图像或者深度图像,其中:通过所述仿真方法获得RGB图像包括以下步骤:步骤101:使用Windows平台∪nity3D三维游戏引擎中的Camera组件获取原始可视域;步骤102:在原始可视域的基础上修改Camera组件的分辨率、水平视场角与垂直视场角、景深、刷新率以及图像质量,其中:根据实际相机参数中的分辨率修改Camera组件的分辨率,分辨率表示为图像宽W
×
高H;实际相机参数中的垂直视场角要求修改垂直视场角HFOV;根据分辨率W
×
H、垂直视场角HFOV、水平视场角WFOV与相机焦距f的关系计算得到水平视场角WFOV,根据计算得到的水平视场角WFOV修改Camera组件的水平视场角WFOV;根据实际相机参数中的最近景深与最远景深完成对景深的修改;根据实际相机参数中的刷新率对应要求完成对刷新率的修改;根据目标用户的带宽动态设定对应的图像压缩比例以调整图像质量;步骤103:新建画布组件,根据步骤102确定的分辨率对画布组件进行截取,获取和分辨率一致的画布组件,按行按列将获取的原始可视域像素赋值给画布组件,并返回对应的画布组件,即为生成的RGB图像;步骤104:对生成的RGB图像添加相应的噪声;步骤105:根据Linux平台ROS系统通信格式,对上一步得到的RGB图像进行处理,得到处理后的图像数据包,其中,对RGB图像进行处理包括将RGB图像安装图像质量进行压缩后按对应发送格式编码,或者将原始大小的按对应发送格式编码;步骤106:建立基于WebSocket的通信模块,连接到Linux平台ROS系统中的ROS

Bridge服务器,并发布类型为Image的ROS话题数据包或类型为Image的Compressedlmage的ROS话题数据包,其中,类型为Image的ROS话题数据包是基于未压缩的图像所得到的图像数据包;类型为CompressedImage的ROS话题数据包是基于经过压缩处理的图像所得到的图像数据包;步骤107:根据设定的帧率,设置定时器,通过通信模块定时发布上一步得到的ROS话题数据包;步骤108:Linux平台ROS系统利用ROS

Bridge模块接收ROS话题数据包;步骤109:通过订阅类型为Image的ROS话题数据包或类型为Image的Compressedlmage的ROS话题数据包,在Rviz软件中呈现RGB图像数据;深度图像模块流程步骤如下:步骤201:使用Windows平台Unity3D三维游戏...

【专利技术属性】
技术研发人员:沈文婷王赓郑军奇蒋李康
申请(专利权)人:上海交通大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1