一种具有设备状态同步的港口第三方视角实现方法和装置制造方法及图纸

技术编号:37076026 阅读:15 留言:0更新日期:2023-03-29 19:52
本发明专利技术提供一种具有设备状态同步的港口第三方视角实现方法和装置,属于孪生模拟技术领域,操纵仿真子系统展现第一人称视角的操作方式,并且第三方视角系统在第一人称视角的操作方式的基础上添加第三方视角的查看方式,可实时查看操作者操作的设备在其应用的场景中运行的画面;通过将操纵仿真子系统的起重机的大车、小车、吊具及导板的位置坐标及旋转坐标,通过Json数据格式发送给第三方视角系统,实现第三方视角系统中对应的三维模型与操纵仿真子系统的三维模型状态同步,解决了现有技术中第三者无法和操作者同时观看虚拟场景中设备运行画面的技术问题,实现第三者能够和操作者同时进入到一个三维虚拟空间中共同查看、完成港口起重机作业任务。港口起重机作业任务。港口起重机作业任务。

【技术实现步骤摘要】
一种具有设备状态同步的港口第三方视角实现方法和装置


[0001]本专利技术涉及孪生模拟
,尤其涉及一种具有设备状态同步的港口第三方视角实现方法和装置。

技术介绍

[0002]近十年来,国内对起重机模拟器的研制己进入起步和快速发展阶段,武汉理工大学物流工程学院港口机械系曾与天津港务局合作进行过“港口司机计算机仿真培训系统”的可行性研究,之后又对系统的软件部分进行了开发。同时,上海海事大学开发了两套集装箱起重机仿真训练器,其中一套是半实物的,另一套则是全数字的。
[0003]2004年,中国交通部水运科学研究所成功开发了我国第一台基于虚拟现实技术、六自由度液压运动平台的港口起重机操作训练模拟器。
[0004]北京建筑工程学院以塔式起重机为对象,基于PC平台研究了塔式起重机模拟操作系统,该系统可以模拟各种环境和工况,以及设置危险场景来训练驾驶员对危险情况的反应和处理。
[0005]现有技术中的港口操作设备模拟器只能供单个人员操作,操作人员的视角是固定的,所有的操作过程、设备状态都只存在于一个人的视角中,第三者不能和操作者在同一空间观察场景中各设备的运行状态,导致第三者和操作员交流沟通受阻,效率低下。

技术实现思路

[0006]本专利技术提供一种具有设备状态同步的港口第三方视角实现方法和系统,将操作者正在操作的起重机各项状态数据及场景周边的设备状态数据,通过构建服务器与客户端的网络环境进行数据的传输,解决了现有技术中第三者无法和操作者同时观看虚拟场景中设备运行画面的技术问题,实现第三者能够和操作者同时进入到一个三维虚拟空间中共同查看、完成港口起重机作业任务,提高作业效率。
[0007]本专利技术提供的具体技术方案如下:
[0008]一方面,本专利技术提供的一种具有设备状态同步的港口第三方视角实现方法,所述港口第三方视角实现方法用于港口三维仿真操作系统,所述港口三维仿真操作系统包括操纵仿真子系统和第三方视角系统,所述操纵仿真子系统和所述第三方视角系统之间采用TCP/IP协议通信,所述港口第三方视角实现方法包括:
[0009]以操纵仿真子系统作为服务器,以第三方视角系统作为客户端,在操纵仿真子系统创建了一个服务器类,等待客户端的连接,并使用Accept接收客户端发送的Socket实例,然后根据Socket实例进行消息的获取;
[0010]第三方视角系统开启之后,在第三方视角系统创建了一个客户端类,使用Connect连接操纵仿真子系统;
[0011]第三方视角系统成功连接操纵仿真子系统后,自动开启一个Receive线程实现操纵仿真子系统和第三方视角系统之间基于C/S模式的Socket通信;
[0012]操纵仿真子系统将待传递的消息统一设置为Object对象发送至第三方视角系统,其中,待传递的消息包括集装箱贝位坐标、比例、材质、起重机大车、小车、吊具的位置信息、导板的状态信息、集卡位置信息;
[0013]第三方视角系统根据Object对象将集装箱生成到三维场景中并将起重机的大车、小车、吊具、导板及集卡的位置信息同步到三维场景中对应的模型中以实现操纵仿真子系统与第三方视角系统之间的状态同步。
[0014]可选的,所述第三方视角系统开启之后,在第三方视角系统创建了一个客户端类,使用Connect连接操纵仿真子系统,包括:
[0015]开启第三方视角系统并在第三方视角系统创建了一个客户端类;
[0016]第三方视角系统向操纵仿真子系统发送主信令和连接数据包;
[0017]操纵仿真子系统接收到主信令和连接数据包后,基于主信令确定第三方视角系统的连接请求并获取第三方视角系统的请求号;
[0018]操纵仿真子系统确认第三方视角系统的连接状态,并向第三方视角系统发送连接建立数据包;
[0019]第三方视角系统接收到连接建立数据包,若连接建立数据包中ack number的末位值为1且ack=1,则向操纵仿真子系统发送新连接建立数据包;
[0020]操纵仿真子系统接收到新连接建立数据包后,若新连接建立数据包的acknumber与ack是否正确,若正确则建立操纵仿真子系统与第三方视角系统之间的Connect连接。
[0021]可选的,所述新连接建立数据包的acknumber与ack是否正确包括:
[0022]若新连接建立数据包的acknumber的末位值为1且ack=1,则确定新连接建立数据包的acknumber与ack正确;
[0023]若新连接建立数据包的acknumber的末位值和ack中的任何一个不为1,则确定新连接建立数据包的acknumber与ack不正确。
[0024]可选的,所述第三方视角系统根据Object对象将集装箱生成到三维场景中并将起重机的大车、小车、吊具、导板及集卡的位置信息同步到三维场景中对应的模型中以实现操纵仿真子系统与第三方视角系统之间的状态同步,具体包括:
[0025]若Object对象的msg的类型为“初始化岸桥”,则将data中的数据转换为对象并存放到aqdatabase中,然后使用Instantiate方法,根据objColor的值从Assets文件夹中获取多个集装箱的材质,再根据objPostion的值将集装箱生成到三维场景;
[0026]若Object对象的msg的类型为“设备信息同步”,则将data中的数据转换为对象并存放到msgseaside中,然后在程序的每一帧调用Update方法将起重机的大车、小车、吊具、导板及集卡的位置信息同步到三维场景中对应的模型上以实现操纵仿真子系统与第三方视角系统之间的状态同步。
[0027]可选的,所述操纵仿真子系统将待传递的消息统一设置为Object对象发送至第三方视角系统包括:
[0028]操纵仿真子系统创建一个字符串类型的msg变量来存放表头信息和一个泛型的data变量来存放数据信息;
[0029]操纵仿真子系统创建一个类名为JsonData,在JsonData中设置一个三维向量objPostion来存放集装箱的位置坐标,设置一个整数类型的objColor变量来存放集装箱的
材质信息;
[0030]操纵仿真子系统使用三层嵌套的For循环获取海岸侧船舶上所有贝位的集装箱位置信息BoxMaps及对应集装箱的比例及材质信息objColor,并存放到Msg类的data中;
[0031]第三方视角系统持续发送请求,操纵仿真子系统收到请求后,将msg赋值为"初始化岸桥",把msg及data数据放到Msg状态对象中,每传递一次新建一个对象并将新建的对象转为Json文件,通过代码将Json数据序列化到内存流中,基于TCP协议,将内存流中数据同步到第三方视角系统中。
[0032]可选的,所述操纵仿真子系统将待传递的消息统一设置为Object对象发送至第三方视角系统包括:
[0033]操纵仿真子系统创建一个新的类SeasideDeviceInformation,设置四个本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种具有设备状态同步的港口第三方视角实现方法,所述港口第三方视角实现方法用于港口三维仿真操作系统,所述港口三维仿真操作系统包括操纵仿真子系统和第三方视角系统,所述操纵仿真子系统和所述第三方视角系统之间采用TCP/IP协议通信,其特征在于,所述港口第三方视角实现方法包括:以操纵仿真子系统作为服务器,以第三方视角系统作为客户端,在操纵仿真子系统创建了一个服务器类,等待第三方视角系统的连接,并使用Accept接收第三方视角系统发送的Socket实例,然后根据Socket实例进行消息的获取;第三方视角系统开启之后,在第三方视角系统创建了一个客户端类,使用Connect连接操纵仿真子系统;第三方视角系统成功连接操纵仿真子系统后,自动开启一个Receive线程实现操纵仿真子系统和第三方视角系统之间基于C/S模式的Socket通信;操纵仿真子系统将待传递的消息统一设置为Object对象发送至第三方视角系统,其中,待传递的消息包括集装箱贝位坐标、比例、材质、起重机大车、小车、吊具的位置信息、导板的状态信息、集卡位置信息;第三方视角系统根据Object对象将集装箱生成到三维场景中并将起重机的大车、小车、吊具、导板及集卡的位置信息同步到三维场景中对应的模型中以实现操纵仿真子系统与第三方视角系统之间的状态同步。2.根据权利要求1所述的港口第三方视角实现方法,其特征在于,所述第三方视角系统开启之后,在第三方视角系统创建了一个客户端类,使用Connect连接操纵仿真子系统,包括:开启第三方视角系统并在第三方视角系统创建了一个客户端类;第三方视角系统向操纵仿真子系统发送主信令和连接数据包;操纵仿真子系统接收到主信令和连接数据包后,基于主信令确定第三方视角系统的连接请求并获取第三方视角系统的请求号;操纵仿真子系统确认第三方视角系统的连接状态,并向第三方视角系统发送连接建立数据包;第三方视角系统接收到连接建立数据包,若连接建立数据包中ack number的末位值为1且ack=1,则向操纵仿真子系统发送新连接建立数据包;操纵仿真子系统接收到新连接建立数据包后,若新连接建立数据包的acknumber与ack是否正确,若正确则建立操纵仿真子系统与第三方视角系统之间的Connect连接。3.根据权利要求2所述的港口第三方视角实现方法,其特征在于,所述新连接建立数据包的acknumber与ack是否正确包括:若新连接建立数据包的acknumber的末位值为1且ack=1,则确定新连接建立数据包的acknumber与ack正确;若新连接建立数据包的acknumber的末位值和ack中的任何一个不为1,则确定新连接建立数据包的acknumber与ack不正确。4.根据权利要求2所述的港口第三方视角实现方法,其特征在于,所述第三方视角系统根据Object对象将集装箱生成到三维场景中并将起重机的大车、小车、吊具、导板及集卡的位置信息同步到三维场景中对应的模型中以实现操纵仿真子系统与第三方视角系统之间
的状态同步,具体包括:若Object对象的msg的类型为“初始化岸桥”,则将data中的数据转换为对象并存放到aqdatabase中,然后使用Instantiate方法,根据objColor的值从Assets文件夹中获取多个集装箱的材质,再根据objPostion的值将集装箱生成到三维场景;若Object对象的msg的类型为“设备信息同步”,则将data中的数据转换为对象并存放到msgseaside中,然后在程序的每一帧调用Update方法将起重机的大车、小车、吊具、导板及集卡的位置信息同步到三维场景中对应的模型上以实现操纵仿真子系统与第三方视角系统之间的状态同步。5.根据权利要求1所述的港口第三方视角实现方法,其特征在于,所述操纵仿真子系统将待传递的消息统一设置为Object对象发送至第三方视角系统包括:操纵仿真子系统创建一个字符串类型的msg变量来存放表头信息和一个泛型的data变量来存放数据信息;操纵仿真子系统创建一个类名为JsonData,在JsonData中设置一个三维向量objPostion来存放集装箱的位置坐标,设置一个整数类型的objColor变量来存放集装箱的材质信息;操纵仿真子系统使用三层嵌套的For循环获取海岸侧船舶上所有贝位的集装箱位置信息BoxMaps及对应集装箱的比例及材质信息objColor,并存放到Msg类的data中;第三方视角系统持续发送请求,操纵仿真子系统收到请求后,将msg赋值为"初始化岸桥",把msg及data数据放到Msg状态对象中,每传递一次新建一个对象并将新建的对象转为Json文件,通过代码将Json数据序列化到内存流中,基...

【专利技术属性】
技术研发人员:周长青
申请(专利权)人:青岛军融昌越科技有限公司
类型:发明
国别省市:

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

1