CN104407521A - 一种实现水下机器人实时仿真的方法 - Google Patents
一种实现水下机器人实时仿真的方法 Download PDFInfo
- Publication number
- CN104407521A CN104407521A CN201410642408.9A CN201410642408A CN104407521A CN 104407521 A CN104407521 A CN 104407521A CN 201410642408 A CN201410642408 A CN 201410642408A CN 104407521 A CN104407521 A CN 104407521A
- Authority
- CN
- China
- Prior art keywords
- underwater robot
- model
- virtual scene
- real
- data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Landscapes
- Processing Or Creating Images (AREA)
Abstract
本发明涉及一种实现水下机器人实时仿真的方法,将虚拟现实技术应用到水下机器人实时仿真领域,实现了对水下机器人运动状态的直观观察;借助计算机图形库的强大图形建模和渲染能力,将仿真平台搭建在DirectX环境下对水下机器人进行仿真的方法。本发明实现了三维软件建模模型和计算机图形库所需模型的对应,简化了数据读入量,增大了测试渲染效果时的灵活性;配合Direct2D和DirectWrite平面库,实现了仿真系统的用户界面问题,自定义的方式使得界面美观合理,避免使用传统木讷的用户界面框;有良好的拓展性。
Description
技术领域
本发明涉及实时仿真领域,尤其是一种实现水下机器人实时仿真的方法。
背景技术
水下机器人主要用于大坝水下构筑物检测和清刷,其工作环境特殊,水下机器人现实作业时,先将其放入水中漂浮起来,再由控制人员操控游戏手柄控制推进器螺旋桨旋转速度,将其调整为侧立姿态,贴在大坝墙体上行走,其在大坝中的位置实时改变着。期间,伴随水流、水深的影响,其姿态也会产生一定波动,同样是实时变化的。而现实作业中无法用肉眼直接观察其运动情况;而由于传感器传回的数据量大,值变化快,且多个传感器的操作界面并不相同,操作人员和观察人员很难直观、快速地了解水下机器人的运动和其在水下的具体位置。
发明内容
本发明要解决的技术问题是:提出一种将虚拟现实技术应用到水下机器人实时仿真领域,实现了对水下机器人运动状态的直观观察;借助计算机图形库的强大图形建模和渲染能力,将仿真平台搭建在DirectX环境下对水下机器人进行仿真的方法。
本发明所采用的技术方案为:一种实现水下机器人实时仿真的方法,包括以下步骤:
1)利用三维软件完成水下机器人三维建模,创建水下机器人实体模型;并分别细化和缩减模型层次以获得面片数多、细节丰富的高模和面片数少、只具有基本造型特征的低模;将低模展开UV,并将高模分别渲染为低模的法线贴图、漫反射贴图和光照贴图,留作水下虚拟场景中渲染使用;
2)设计水下虚拟场景;
3)将机器人模型以OBJ文件格式输出以获取各实体表面的数据,然后提取顶点坐标和面片信息写入TXT文件格式,在D3D环境下将其导入仿真系统中;实现三维实体模型由三维软件向D3D的转换;同时,在虚拟场景中绘制模型时计算其顶点法线向量和正切向量用于渲染;
4)校准虚拟场景世界坐标系和安装在真实的水下机器人框架上用于接收姿态数据的陀螺仪坐标系,确保虚拟环境中机器人模型的姿态摆动方向和真实环境相同;校准虚拟大坝和真实大坝的尺寸比,缩小超短基线、水深传感器数据的比例;
5)使用HLSL配合C++应用程序渲染虚拟场景和水下机器人模型,从效果文件(.fx)计算每个模型顶点的光线向量,根据步骤3)中得到的顶点信息插值计算每个像素点的漫反射、镜面反射、环境光、法线贴图等材质信息;确定计算机更新频率,并以时间为自变量设定步骤2)中水下景物、灯光产生动态效果所需的物理方程;
6)编写通信协议;让仿真系统实时接收来自真实水下机器人陀螺仪、超短基线和水深传感器的数据,并每帧更新虚拟场景中机器人模型的三维位置和姿态,再现真实机器人在水下的运动状态。
进一步的说,本发明所述的步骤3)中,将水下机器人三维模型低模每个顶点的位置坐标、每个三角形面片上三个顶点的编号、排列数据写入到TXT文件后在D3D水下虚拟场景中读入,同时计算模型顶点的法线向量、切线向量;将水下虚拟场景中景物模型导出为自定义类型文件,包含其顶点位置、法线向量、切线向量、UV贴图信息和三角形面片拓扑信息;
再进一步的说,本发明所述的步骤4)中,根据虚拟场景世界坐标系X、Y、Z轴和水下机器人实物框架上安装的陀螺仪坐标系X、Y、Z轴的对应关系,确定俯仰角、横滚角、航向角所绕的轴及它们的正反向;根据真实测定的大坝尺寸和声呐定位原点,确定水下机器人实物位置数据缩小到虚拟场景中所需的比例和偏移量;
再进一步的说,本发明所述的步骤6)中,使用Winsock中TCP/IP客户端协议传输陀螺仪姿态数据、超短基线和水深传感器的位置数据到虚拟场景中,并根据步骤4)中确定的转换算法解析为相应的数据传给机器人模型和场景光照,仿真系统每帧刷新后台缓冲区将新的模型位置、姿态显示到屏幕上。
本发明的有益效果是:
a、实现了三维软件建模模型和计算机图形库所需模型的对应,只提取模型的顶点和拓扑索引关系,大大简化了数据读入量。各模型材质在模型进入D3D后再进行设定,省去了每次修改模型材质都要重新回到三维软件中调整的麻烦,方便在D3D中直接修改,增大了测试渲染效果时的灵活性;
b、由于DirectX和Winsock都是WindowsAPI,故只要将虚拟环境作为客户端,通过简单的消息函数即可实现水下机器人传回的传感器数据和虚拟环境的通信,减小了开发不必要的复杂性,只需在了解Windows下各种API接口的交互方法后,即可专注在仿真效果和准确性上,更多地考虑算法和效率问题;
c、配合Direct2D和DirectWrite平面库,实现了仿真系统的用户界面问题,自定义的方式使得界面美观合理,避免使用传统木讷的用户界面框;
d、可按照逻辑合理地定义水下机器人模型的运动原理,而不必受到三维动画软件、游戏引擎既定的物理运动的限制,有良好的拓展性;
e、由于采用C++直接编程开发,故很容易增添新的功能或与其他部分,如水下机器人控制方面交互、配合,并且省去了版权问题;
f、可在水下机器人实体正在作业时实现仿真系统的回放,查看之前的数据;还能在作业结束后,将传感器传回的姿态、位置、水深数据保存为TXT文档,方便以后分析。
附图说明
下面结合附图和实施例对本发明进一步说明。
图1是本发明的仿真方法流程图;
图2是本发明的软件流程图。
具体实施方式
现在结合附图和优选实施例对本发明作进一步详细的说明。这些附图均为简化的示意图,仅以示意方式说明本发明的基本结构,因此其仅显示与本发明有关的构成。
如图1、2所示,一种在C++图形库DirectX环境下实现水下机器人实时仿真的方法。其原理是:在三维建模环境下,构建水下机器人实体模型和大坝虚拟水下场景,将机器人模型以OBJ文件格式输出以获取各实体表面的数据,然后提取顶点坐标和面片信息写入TXT文件格式,在D3D环境下将其导入仿真系统中,实现三维实体模型由三维软件向D3D的转换,同时,在虚拟场景中绘制模型时计算其顶点法线向量和正切向量用于渲染。校准虚拟场景世界坐标系和安装在真实的水下机器人框架上用于接收姿态数据的陀螺仪坐标系,确保虚拟环境中机器人模型的姿态摆动方向和真实环境相同;校准虚拟大坝和真实大坝的尺寸比,合理缩小超短基线、水深传感器数据的比例,以免超出虚拟大坝范围。编写通信协议,让仿真系统实时接收来自真实水下机器人陀螺仪、超短基线和水深传感器的数据,并每帧更新虚拟场景中机器人模型的三维位置和姿态,再现真实机器人在水下的运动状态。设计用户交互界面,通过鼠标键盘改变相机位置便于观察,回放实时仿真后的数据等。
具体步骤如下:
1、创建水下机器人实体模型。根据水下机器人实物的外形尺寸和造型特点,在三维软件里完成水下机器人三维建模,并分别细化和缩减模型层次以获得面片数多、细节较为丰富的高模和面片数少、只具有基本造型特征的低模;将低模展开UV,并将高模分别渲染为低模的法线贴图、漫反射贴图和光照贴图,留作水下虚拟场景中渲染使用。
2、设计水下虚拟场景。此款水下机器人主要用于大坝水下构筑物的检测,因此,水下虚拟场景模型主要有大坝坝体、坝底凹凸地形、泥沙石子、水面水波和水下水流、水下动植物等装饰物等;特效主要有随着水深而颜色加深的灯光、表现水下全景的天空立方盒、水下机器人模型上的探照灯、增强水下景物真实性的法线贴图、阴影贴图等,以及水流粒子和随水流摆动的水下动植物等。
3、将水下机器人三维模型低模每个顶点的位置坐标、每个三角形面片上三个顶点的编号、排列数据写入到TXT文件后在D3D水下虚拟场景中读入,同时计算模型顶点的法线向量、切线向量;将水下虚拟场景中景物模型导出为自定义类型文件,包含其顶点位置、法线向量、切线向量、UV贴图信息和三角形面片拓扑信息。
4、根据虚拟场景世界坐标系X、Y、Z轴和水下机器人实物框架上安装的陀螺仪坐标系X、Y、Z轴的对应关系,确定俯仰角、横滚角、航向角所绕的轴及它们的正反向;根据真实测定的大坝尺寸和声呐定位原点,确定水下机器人实物位置数据缩小到虚拟场景中所需的比例和偏移量。
5、使用HLSL配合C++应用程序渲染虚拟场景和水下机器人模型,从效果文件(.fx)计算每个模型顶点的光线向量,根据步骤3中得到的顶点信息插值计算每个像素点的漫反射、镜面反射、环境光、法线贴图等材质信息;确定计算机更新频率,并以时间为自变量设定步骤2中水下景物、灯光产生动态效果所需的物理方程。
6、编写通信协议。使用Winsock中TCP/IP客户端协议传输陀螺仪姿态数据、超短基线和水深传感器的位置数据到虚拟场景中,并根据步骤4中确定的转换算法解析为相应的数据传给机器人模型和场景光照,仿真系统每帧刷新后台缓冲区将新的模型位置、姿态显示到屏幕上。
7、为了方便实验暂停时段以及实验过后的进一步研究,设置了回放功能。首先,将服务端每次传入的数据传递给系统中的变量,方便在仿真进行过程中随时回放之前机器人行走过的位置和运动姿态;将每次仿真软件运行时服务端传入的数据存为一个TXT文件,保存实验数据,留作以后分析之用。
8、设计人机交互界面。此处需要配合DirectX中另外两个API:Direct2D和DirectWrite,实现在显示窗口上创建二维文字和菜单,实时显示水深、时间、水下机器人的位姿信息等;将窗口分为多个视口,分别显示水下全景、水下机器人特写等,方便从多角度观察水下机器人的运动状态。
以上说明书中描述的只是本发明的具体实施方式,各种举例说明不对本发明的实质内容构成限制,所属技术领域的普通技术人员在阅读了说明书后可以对以前所述的具体实施方式做修改或变形,而不背离本发明的实质和范围。
Claims (4)
1.一种实现水下机器人实时仿真的方法,其特征在于包括以下步骤:
1)利用三维软件完成水下机器人三维建模,创建水下机器人实体模型;并分别细化和缩减模型层次以获得面片数多、细节丰富的高模和面片数少、只具有基本造型特征的低模;将低模展开UV,并将高模分别渲染为低模的法线贴图、漫反射贴图和光照贴图,留作水下虚拟场景中渲染使用;
2)设计水下虚拟场景;
3)将机器人模型以OBJ文件格式输出以获取各实体表面的数据,然后提取顶点坐标和面片信息写入TXT文件格式,在D3D环境下将其导入仿真系统中;实现三维实体模型由三维软件向D3D的转换;同时,在虚拟场景中绘制模型时计算其顶点法线向量和正切向量用于渲染;
4)校准虚拟场景世界坐标系和安装在真实的水下机器人框架上用于接收姿态数据的陀螺仪坐标系,确保虚拟环境中机器人模型的姿态摆动方向和真实环境相同;校准虚拟大坝和真实大坝的尺寸比,缩小超短基线、水深传感器数据的比例;
5)使用HLSL配合C++应用程序渲染虚拟场景和水下机器人模型,从效果文件(.fx)计算每个模型顶点的光线向量,根据步骤3)中得到的顶点信息插值计算每个像素点的漫反射、镜面反射、环境光、法线贴图等材质信息;确定计算机更新频率,并以时间为自变量设定步骤2)中水下景物、灯光产生动态效果所需的物理方程;
6)编写通信协议;让仿真系统实时接收来自真实水下机器人陀螺仪、超短基线和水深传感器的数据,并每帧更新虚拟场景中机器人模型的三维位置和姿态,再现真实机器人在水下的运动状态。
2.如权利要求1所述的一种实现水下机器人实时仿真的方法,其特征在于: 所述的步骤3)中,将水下机器人三维模型低模每个顶点的位置坐标、每个三角形面片上三个顶点的编号、排列数据写入到TXT文件后在D3D水下虚拟场景中读入,同时计算模型顶点的法线向量、切线向量;将水下虚拟场景中景物模型导出为自定义类型文件,包含其顶点位置、法线向量、切线向量、UV贴图信息和三角形面片拓扑信息。
3.如权利要求1所述的一种实现水下机器人实时仿真的方法,其特征在于:所述的步骤4)中,根据虚拟场景世界坐标系X、Y、Z轴和水下机器人实物框架上安装的陀螺仪坐标系X、Y、Z轴的对应关系,确定俯仰角、横滚角、航向角所绕的轴及它们的正反向;根据真实测定的大坝尺寸和声呐定位原点,确定水下机器人实物位置数据缩小到虚拟场景中所需的比例和偏移量。
4.如权利要求1所述的一种实现水下机器人实时仿真的方法,其特征在于:所述的步骤6)中,使用Winsock中TCP/IP客户端协议传输陀螺仪姿态数据、超短基线和水深传感器的位置数据到虚拟场景中,并根据步骤4)中确定的转换算法解析为相应的数据传给机器人模型和场景光照,仿真系统每帧刷新后台缓冲区将新的模型位置、姿态显示到屏幕上。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410642408.9A CN104407521B (zh) | 2014-11-13 | 2014-11-13 | 一种实现水下机器人实时仿真的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410642408.9A CN104407521B (zh) | 2014-11-13 | 2014-11-13 | 一种实现水下机器人实时仿真的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104407521A true CN104407521A (zh) | 2015-03-11 |
CN104407521B CN104407521B (zh) | 2017-02-15 |
Family
ID=52645160
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410642408.9A Expired - Fee Related CN104407521B (zh) | 2014-11-13 | 2014-11-13 | 一种实现水下机器人实时仿真的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104407521B (zh) |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105319987A (zh) * | 2015-11-09 | 2016-02-10 | 哈尔滨工程大学 | 一种作业型rov训练模拟器的运动控制仿真系统 |
CN106354902A (zh) * | 2016-08-15 | 2017-01-25 | 浙江大学 | 基于网络的潜水器运动模拟可视化系统 |
CN106791691A (zh) * | 2017-01-04 | 2017-05-31 | 北京臻迪科技股份有限公司 | 一种无人船的控制系统 |
CN107454866A (zh) * | 2016-05-23 | 2017-12-08 | 达闼科技(北京)有限公司 | 一种三维模型建立方法和装置 |
CN107451366A (zh) * | 2017-08-07 | 2017-12-08 | 杨子钦 | 基于物理渲染技术的实物产品三维虚拟实时展示方法 |
CN107622520A (zh) * | 2017-09-29 | 2018-01-23 | 上海开圣影视文化传媒股份有限公司 | 加速渲染的方法 |
CN109062079A (zh) * | 2018-08-31 | 2018-12-21 | 南京邮电大学 | 基于ros的水下机器人多自由度运动控制的仿真方法 |
CN109062569A (zh) * | 2018-08-08 | 2018-12-21 | 中国民用航空飞行学院 | 虚拟事件模拟条件下多元化驱动引擎构建方法 |
CN112596412A (zh) * | 2020-12-11 | 2021-04-02 | 中国科学院沈阳自动化研究所 | 一种多auv仿真平台 |
CN113050449A (zh) * | 2020-09-21 | 2021-06-29 | 湖南大学 | 一种有缆水下作业机器人仿真系统 |
CN113433835A (zh) * | 2020-03-23 | 2021-09-24 | 中国科学院沈阳自动化研究所 | 基于unity3d的水下潜水器视景仿真系统及方法 |
CN115229814A (zh) * | 2022-07-25 | 2022-10-25 | 江苏科技大学 | 潜水器收放系统中机械手仿真系统的设计方法及控制方法 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101833333B (zh) * | 2009-12-23 | 2011-09-14 | 湖南大学 | 水下清洗作业机器人未知环境路径规划方法 |
CN102117071B (zh) * | 2009-12-30 | 2013-03-06 | 中国科学院沈阳自动化研究所 | 一种多水下机器人半物理仿真系统及其控制方法 |
CN103064296B (zh) * | 2011-10-21 | 2016-03-02 | 中国科学院沈阳自动化研究所 | 一种水下机器人辅助控制系统 |
-
2014
- 2014-11-13 CN CN201410642408.9A patent/CN104407521B/zh not_active Expired - Fee Related
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105319987A (zh) * | 2015-11-09 | 2016-02-10 | 哈尔滨工程大学 | 一种作业型rov训练模拟器的运动控制仿真系统 |
CN107454866A (zh) * | 2016-05-23 | 2017-12-08 | 达闼科技(北京)有限公司 | 一种三维模型建立方法和装置 |
CN106354902A (zh) * | 2016-08-15 | 2017-01-25 | 浙江大学 | 基于网络的潜水器运动模拟可视化系统 |
CN106791691A (zh) * | 2017-01-04 | 2017-05-31 | 北京臻迪科技股份有限公司 | 一种无人船的控制系统 |
CN107451366A (zh) * | 2017-08-07 | 2017-12-08 | 杨子钦 | 基于物理渲染技术的实物产品三维虚拟实时展示方法 |
CN107622520A (zh) * | 2017-09-29 | 2018-01-23 | 上海开圣影视文化传媒股份有限公司 | 加速渲染的方法 |
CN109062569A (zh) * | 2018-08-08 | 2018-12-21 | 中国民用航空飞行学院 | 虚拟事件模拟条件下多元化驱动引擎构建方法 |
CN109062079A (zh) * | 2018-08-31 | 2018-12-21 | 南京邮电大学 | 基于ros的水下机器人多自由度运动控制的仿真方法 |
CN113433835A (zh) * | 2020-03-23 | 2021-09-24 | 中国科学院沈阳自动化研究所 | 基于unity3d的水下潜水器视景仿真系统及方法 |
CN113050449A (zh) * | 2020-09-21 | 2021-06-29 | 湖南大学 | 一种有缆水下作业机器人仿真系统 |
CN112596412A (zh) * | 2020-12-11 | 2021-04-02 | 中国科学院沈阳自动化研究所 | 一种多auv仿真平台 |
CN115229814A (zh) * | 2022-07-25 | 2022-10-25 | 江苏科技大学 | 潜水器收放系统中机械手仿真系统的设计方法及控制方法 |
CN115229814B (zh) * | 2022-07-25 | 2024-07-12 | 江苏科技大学 | 潜水器收放系统中机械手仿真系统的设计方法及控制方法 |
Also Published As
Publication number | Publication date |
---|---|
CN104407521B (zh) | 2017-02-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104407521B (zh) | 一种实现水下机器人实时仿真的方法 | |
US9934602B2 (en) | System, method and device for three-dimensional modeling | |
CN102622776B (zh) | 三维环境重构 | |
CN102243770B (zh) | 一种基于osg的虚拟海战场真实感图形快速绘制方法 | |
US11514673B2 (en) | Systems and methods for augmented reality | |
US9582929B2 (en) | Dynamic skydome system | |
CN102402792B (zh) | 一种实时浅水模拟方法 | |
CN102426691A (zh) | 一种基于gpu的实时火焰效果的模拟方法 | |
CN107038745A (zh) | 一种3d旅游景观漫游交互方法及装置 | |
CN109448137A (zh) | 交互方法、交互装置、电子设备及存储介质 | |
CN105184843B (zh) | 一种基于OpenSceneGraph的三维动画制作方法 | |
CN116051713B (zh) | 渲染方法、电子设备和计算机可读存储介质 | |
CN110400366B (zh) | 一种基于OpenGL的实时洪水灾害可视化仿真方法 | |
CN115082607A (zh) | 虚拟角色头发渲染方法、装置、电子设备和存储介质 | |
CN118397160A (zh) | 一种用于油田站场逆向建站系统的自主化三维渲染引擎 | |
CN117011492B (zh) | 图像渲染方法、装置、电子设备及存储介质 | |
CN110232846A (zh) | 一种冲锋舟模拟驾驶方法、系统及相关装置 | |
JP2010152870A (ja) | 画像処理装置、画像処理方法および画像処理プログラム | |
Zeman | Essential Skills for 3D Modeling, Rendering, and Animation | |
Li | Architectural design virtual simulation based on virtual reality technology | |
Piekarski et al. | Tinmith-mobile outdoor augmented reality modelling demonstration | |
CN102402795B (zh) | 估计均匀介质中光散射的方法 | |
Stabbert et al. | Extending Augmented Sandboxes with Virtual Reality Interaction | |
Du et al. | Experiencing real-time 3D interaction with depth maps for mobile augmented reality in DepthLab | |
Olberding et al. | Analysis of Cartographic Symbols as Visual Support in Interactive VR Geovisualizations |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20170215 Termination date: 20201113 |
|
CF01 | Termination of patent right due to non-payment of annual fee |