本发明属于可视化水下仿真领域,具体涉及一种机器人水下作业仿真方法及系统。
背景技术:
1、海洋中的环境十分复杂,并且缺少必要的观察和通讯手段,当水下机器人在海中进行工作和试验时,很难现场实时地进行监控。水下机器人本身是十分复杂、昂贵的设备,一旦在试验或工作的过程中出现失误,可能会造成大量时间和金钱的浪费,因此要求在进入正式工作或试验之前,必须确保机器人水下工作的稳定性。
2、在仿真环境中模拟机器人水下工作的过程是一种非常有效的调试手段,它可以暴露水下机器人的各种问题,极大地提高其在真实环境中工作的稳定性,以减少不必要的损失;针对海洋环境的仿真模拟软件开发难度较大,仿真系统内容复杂,各组成部分联系紧密,具有较强的针对性,且由于对水下机器人的整体仿真耗资较大;因此现有技术中通常是针对水下机器人的不同功能部件,单独搭建各个功能部件模型以及与各个部件分别对应的仿真环境,来实现水下作业工况的模拟,导致各个功能部件模型对应的环境仿真情况无法通用,使得机器人水下作业的仿真效果与实际整体工况不匹配,机器人水下作业的模拟结果可靠性较低。
技术实现思路
1、本发明的目的在于提供一种机器人水下作业仿真方法及系统,用于解决现有技术中各个功能部件模型对应的环境仿真情况无法通用,使得机器人水下作业的仿真效果与实际整体工况不匹配,机器人水下作业的模拟结果可靠性较低的问题。
2、为了实现上述目的,本发明提供了一种机器人水下作业仿真方法,步骤如下:
3、1)通过世界环境部分对水下作业条件进行仿真:所述世界环境部分包括场景建立模块和多个场景仿真模块,通过所述场景建立模块将各个场景仿真模块组合成水下仿真环境;所述场景仿真模块包括水下机器人三维模型模块,通过所述水下机器人三维模型模块,对水下机器人的各组成部件分别建立三维模型,并确定各组成部件之间的相对位置;
4、2)通过实时计算仿真部分对水下作业过程进行仿真:所述实时计算仿真部分包括数据计算层,控制层,ui层,话题层和传感器层;通过传感器层获取水下机器人的速度信息和位置信息,将获取的速度信息和位置信息数据上传到话题层,并封装为固定话题上传到数据计算层;用户通过ui层订阅速度信息和位置信息对应的话题,获取水下机器人速度信息和位置信息后发布控制指令到话题层,并将控制指令封装为固定话题上传到数据计算层;控制层订阅用户控制指令对应的话题,获取所述控制指令,相应地控制水下机器人的各组成部件三维模型的运动。
5、上述技术方案的有益效果为:搭建统一的仿真环境用于同时对水下机器人的各组成部件进行仿真测试,使得对机器人所有组成部件的系统模拟均在同一环境条件下,提高了模拟结果与实际工况的匹配程度;并且进行水下作业条件和水下作业过程仿真的各模块之间完全解耦合,互相独立,通过订阅话题的方式进行仿真控制,因此可根据实际任务需求更改仿真模块的内容,且这样的更改不会对其他模块造成影响,实现松耦合仿真环境搭建,提高仿真系统的灵活性和可扩展性;水下机器人的各组成部件之间分开独立建模,再通过各个独立模型的相对位置将分散的模型组合成相对位置固定的机器人整体,能够在保证对同一环境下的机器人整体进行仿真的同时,降低整体建模的复杂程度。
6、进一步地,确定水下机器人的各组成部件之间的相对位置的方式为:通过在每个独立模型建立固定坐标系和旋转轴来确定坐标信息,相应地进行坐标转换,确定各部件之间的相对位置。
7、进一步地,所述话题层中包括管理器,通过管理器管理话题的方式为:将上传数据的端口设为服务端,将获取数据的端口设为客户端;通过管理器寄存服务端上传的等待被订阅的话题,当客户端发送话题请求到管理器以请求订阅话题时,管理器匹配所述请求对应的话题,并在匹配成功后将服务端地址发送至客户端,进行数据交互。
8、上述技术方案的有益效果为:进行水下作业条件和水下作业过程仿真的各模块之间通过订阅话题的方式进行数据交互,通过话题通信机制解除了各模块之间的依赖关系,便于对单独模块进行更新替换,能够针对机器人实际研发情况调整仿真环境。
9、进一步地,所述对水下机器人的各组成部件分别建立的三维模型包括航行器、螺旋桨和推进器;
10、控制层控制水下机器人的组成部件运动的方式为:控制层订阅ui层上传的移动命令话题并将获取的移动命令解算为螺旋桨的输出推力,发送速度命令话题至话题层,螺旋桨订阅速度命令话题获取速度信息,推动水下机器人移动;传感器层获取航行器位姿状态,发送航行器实际位姿话题至话题层,数据计算层订阅航行器实际位姿话题和控制位姿话题,比较航行器实际位姿和控制位姿,计算偏差得到修正速度后将修正速度发布至话题层;推进器订阅修正速度话题,相应地根据所述修正速度调整水下机器人位姿。
11、进一步地,场景仿真模块还包括海床地形数据库模块、水下障碍物模块和水流扰动模块;通过海床地形数据库模块建立海床模型,并将水下障碍物模块中的障碍物模型插入海床模型中组成仿真世界模型;通过水流扰动模块将水流扰动建模为高斯-马尔可夫过程;
12、通过所述场景建立模块将各个场景仿真模块组合成水下仿真环境的方式为:通过场景建立模块调用仿真世界模型、水下障碍物模型、水下机器人的各组成部件的三维模型以及水流扰动模型,将各个场景仿真模块对应的模型组合为一个整体模型,作为水下仿真环境。
13、上述技术方案的有益效果为:既能够通过多个场景仿真模块对实际水下作业工况的不同方面进行仿真,保证仿真的准确性,又通过场景建立模块进行组合构成整体仿真模型作为水下仿真环境,便于修改水下仿真环境的仿真参数以根据实际需求改变仿真效果,使仿真结果更贴合整体的实际工况。
14、本发明还提供了一种机器人水下作业仿真系统,包括世界环境部分和实时计算仿真部分;
15、世界环境部分包括场景建立模块和多个场景仿真模块,用于对水下作业条件进行仿真;场景建立模块用于将各个场景仿真模块组合成水下仿真环境;所述场景仿真模块包括水下机器人三维模型模块,所述水下机器人三维模型模块用于对水下机器人的各组成部件分别建立三维模型,并确定各组成部件之间的相对位置;
16、实时计算仿真部分包括数据计算层,控制层,ui层,话题层和传感器层,用于对水下作业过程进行仿真:所述传感器层用于获取水下机器人的速度信息和位置信息,将获取的速度信息和位置信息数据上传到话题层,并封装为固定话题上传到数据计算层;所述ui层用于订阅速度信息和位置信息对应的话题,使得用户获取水下机器人速度信息和位置信息后发布控制指令,将控制指令发送到话题层并封装为固定话题上传到数据计算层;控制层用于订阅用户控制指令对应的话题,获取所述控制指令,相应地控制水下机器人的各组成部件三维模型的运动。
17、上述技术方案的有益效果为:所述技术方案的有益效果为:搭建统一的仿真环境用于同时对水下机器人的各组成部件进行仿真测试,使得对机器人所有组成部件的系统模拟均在同一环境条件下,提高了模拟结果与实际工况的匹配程度;并且进行水下作业条件和水下作业过程仿真的各模块之间完全解耦合,互相独立,通过订阅话题的方式进行仿真控制,因此可根据实际任务需求更改仿真模块的内容,且这样的更改不会对其他模块造成影响,实现松耦合仿真环境搭建,提高仿真系统的灵活性和可扩展性;水下机器人的各组成部件之间分开独立建模,再通过各个独立模型的相对位置将分散的模型组合成相对位置固定的机器人整体,能够在保证对同一环境下的机器人整体进行仿真的同时,降低整体建模的复杂程度。
18、进一步地,确定水下机器人的各组成部件之间的相对位置的方式为:通过在每个独立模型建立固定坐标系和旋转轴来确定坐标信息,相应地进行坐标转换,确定各部件之间的相对位置。
19、进一步地,所述话题层中包括管理器,所述管理器用于将上传数据的端口设为服务端,将获取数据的端口设为客户端;还用于寄存服务端上传的等待被订阅的话题,当客户端发送话题请求到管理器以请求订阅话题时,对所述请求对应的话题进行匹配,并在匹配成功后将服务端地址发送至客户端,以进行数据交互。
20、上述技术方案的有益效果为:进行水下作业条件和水下作业过程仿真的各模块之间通过订阅话题的方式进行数据交互,通过话题通信机制解除了各模块之间的依赖关系,便于对单独模块进行更新替换,能够针对机器人实际研发情况调整仿真环境。
21、进一步地,所述对水下机器人的各组成部件分别建立的三维模型包括航行器、螺旋桨和推进器;
22、控制层控制水下机器人的组成部件运动的方式为:控制层订阅ui层上传的移动命令话题并将获取的移动命令解算为螺旋桨的输出推力,发送速度命令话题至话题层,螺旋桨订阅速度命令话题获取速度信息,推动水下机器人移动;传感器层获取航行器位姿状态,发送航行器实际位姿话题至话题层,数据计算层订阅航行器实际位姿话题和控制位姿话题,比较航行器实际位姿和控制位姿,计算偏差得到修正速度后将修正速度发布至话题层;推进器订阅修正速度话题,相应地根据所述修正速度调整水下机器人位姿。
23、进一步地,场景仿真模块还包括海床地形数据库模块、水下障碍物模块和水流扰动模块;海床地形数据库模块用于建立海床模型,并将水下障碍物模块中的障碍物模型插入海床模型中组成仿真世界模型;水流扰动模块用于将水流扰动建模为高斯-马尔可夫过程;
24、所述场景建立模块将各个场景仿真模块组合成水下仿真环境的方式为:通过场景建立模块调用仿真世界模型、水下障碍物模型、水下机器人的各组成部件的三维模型以及水流扰动模型,将各个场景仿真模块对应的模型组合为一个整体模型,作为水下仿真环境。
25、上述技术方案的有益效果为:既能够通过多个场景仿真模块对实际水下作业工况的不同方面进行仿真,保证仿真的准确性,又通过场景建立模块进行组合构成整体仿真模型作为水下仿真环境,便于修改水下仿真环境的仿真参数以根据实际需求改变仿真效果,使仿真结果更贴合整体的实际工况。