【声呐仿真】学习记录2.5-DAVE项目部分文档大纲

【声呐仿真】学习记录2.5-DAVE项目

一、Dave Models 模型

Vehicle Models 航行器模型

New Underwater Vehicle 新型水下航行器

一个创建uuv的示例,不过貌似缺少相关的纹理文件
在这里插入图片描述

Dave ROV Models

预览所有已有ROV模型

roslaunch dave_robot_launch uuv_collection.launch paused:=true

在这里插入图片描述

Dave Glider Models

预览glider模型

roslaunch dave_robot_launch glider_collection.launch paused:=true

右键move to即可看到水下滑翔机: Slocum, hybrid and wave.
在这里插入图片描述

Manipulator Models 机械臂模型

roslaunch uuv_dave uuv_predator.launch

在这里插入图片描述

UUV Simulator Examples

rexrov

在这里插入图片描述

rexrov2

在这里插入图片描述

desistek saga rov

在这里插入图片描述

eca_a9

在这里插入图片描述

Light Autonomous Underwater Vehicle (LAUV) 轻型自主水下航行器

在这里插入图片描述

Bathymetry Models 探测模型

Bathymetry Models

有两种方法在Gazebo中模拟高度图:
一是使用Gazebo中的通用Ogre’s高度图生成功能;
另一种是使用Bathymetry_Converter从大型测深高度图文件中分解并生成一个或多个测深面片。

用户可以任意选择。但前者(在2022年2月22日,发现有错误,无法在运行中删除和插入新的测深数据)。此外,其需要更长的时间来加载到场景中的测深。
后者可以与测深自动生成/删除插件一起使用,该插件可以按需根据车辆的位置插入和删除测深图块。

Build from heightmap 从高度图构建

创建一个新的高分辨率海底的示例

Object Models

Dave Object Models 物体模型

DAVE特定物体模型存储在两个位置:
1.dave存储库中的dave_object_models ROS包
2.Within the DAVE collection of the Ignition Fuel online model repository.
在点火燃料在线模型库的DAVE集合中。

有一些鱼、炮弹、罐子之类的物体

Object Degradation Tool

物体扭曲工具,参考#Degradaded_object_detection_scenarios

二、Dave Sensors传感器

1.Multibeam Sonar 多波束声纳

1.1介绍

以前的声纳传感器插件基于图像处理领域,通过将感知图像的每个子像素(点云)转换为类似于具有或不具有声纳方程的声纳传感器(对以前基于图像的方法的详细回顾)。在这里,我们开发了一个基于射线的多波束声纳插件,以考虑声信号的相位phase和再兆应物理场,使用点散射模型提供原始声纳强度范围数据(A图)。

考虑物理特性,包括时间和角度模糊以及散斑噪声。时间和角度模糊度是相干成像系统的点扩散函数(即由于匹配滤波和波束成形导致的旁瓣)的函数。

斑点是由于许多小于成像系统分辨率极限的干扰散射体而导致的图像颗粒状外观。

features 特点:

  • 使用点散射模型计算物理声纳波束/射线
    – 生成强度范围(A图)原始声纳数据
    – 使用 UW APL 的声纳图像消息格式发布数据
  • NVIDIA CUDA 核心 GPU 并行化
    – 10Hz刷新率,10m范围(光栅版)

注意:要获得闪闪发光的声纳图像, artificialVehicleVibration 光栅版本的标签应为 true。对于 GPU Ray 版本, stddev 或 gaussian_noise_stddev 应大于 0.0(例如 0.01)

1.2 Background 背景

Characteristics/fidelity/Features 特性/保真度/特性
  • 基于声纳方程的声学特性 (SNR = SL-2TL-(NL-DI)+TS)

声纳方程不考虑相位、光线之间的混响

  • 更高保真度的声学特性
  • 插件图请添加图片描述
1.3 Related works 相关著作

在 2015 年的 Demarco 中,使用光线追踪开发了 Gazebo 声纳传感器模型。Gazebo 光线追踪功能可生成转换为声纳图像的 3D 点云。

在 Cirqueira 2017 中,使用光栅化开发了基于 GPU 的声纳模拟器。该模型有两种类型的声纳:机械扫描成像声纳(MSIS)和前视声呐(FLS)。其模型中提供的声学特征是准确的,并且代表了声音传播。

1.4 Approach 方法

Original Research paper 原创研究论文:
Choi, W., Olson, D., Davis, D., Zhang, M., Racson, A., Bingham, B. S., … & Herman, J. Physics-based modelling and simulation of Multibeam Echosounder perception for Autonomous Underwater Manipulation. Frontiers in Robotics and AI, 279. 10.3389/frobt.2021.706646的部分文章

1.5 Installation 安装

参照之前的文章,最好用docker安装

1.6 多波束声纳快速入门

Launch commands 启动命令

该存储库包括四种声纳型号(Blueview P900、Blueview M450、Seabat F50 和 Oculus M1200d)

# Raster version
roslaunch nps_uw_multibeam_sonar sonar_tank_blueview_p900_nps_multibeam.launch
roslaunch nps_uw_multibeam_sonar sonar_tank_blueview_m450_nps_multibeam.launch
roslaunch nps_uw_multibeam_sonar sonar_tank_seabat_f50_nps_multibeam.launch
roslaunch nps_uw_multibeam_sonar sonar_tank_oculus_m1200d_nps_multibeam.launch
# GPU Ray version
roslaunch nps_uw_multibeam_sonar sonar_tank_blueview_p900_nps_multibeam_ray.launch
# URDF description version (gpu_ray true/false to change between Raster and GPU ray versions)
roslaunch nps_uw_multibeam_sonar sonar_tank_blueview_p900_nps_multibeam_urdf.launch

Raster vs GPURay

存储库中有两种类型的多波束声纳插件。光栅版本和 GPURay 版本。它们输出相同的结果,但 GPURay 版本可以自由使用更多数量的光线,以节省计算时间和变分反射率特征。
请添加图片描述

光栅版本

它基于 depth camera 传感器获取点云数据集,用于声纳信号计算。

它通常比 GPURay 版本快,但无法定义垂直光线的数量。此外,根据模型名称的变分反射率也适用。

GPURay 版本

它基于为Velodyne模拟器打包的 GPU Ray 传感器,以获得用于声纳单次计算的点云数据集。

它通常比光栅版本慢,但它可以使用 fidelity 参数定义垂直光线的数量。它只能在所有型号的恒定反射率值下使用。

Sonar image 声呐图像

  • 使用 image_view 在启动文件中定义的实时取景捕获绘制。

右键单击它会将图像保存在目录中 /tmp

如果要动态调整大小,请将标记更改 autosize 为 false 启动文件。

  • 使用 MATLAB 脚本可视化的导出数据,网址为 scripts/plotRawData.m

Configurations 配置

Gazebo Coordinate Frames Gazebo坐标系

该插件使用 marine_acoustic_msgs/ProjectedSonarImage ROS 消息输出声纳数据。该消息将每个声纳波束的方位定义为围绕向下轴线的旋转,使得负方位角位于前舷,正轴承位于右舷(如果声纳安装在其“典型”前视方向上)。

该插件将使用 Gazebo 框架名称作为 ROS 消息 frame_id 中的框架名称。为了使声纳数据正确地重新投射到 3D 空间中,它必须连接到 Gazebo 中的 X-Forward、Y-Starboard、Z-Down 框架。

Parameters 参数

声纳的参数在每个 model.sdfurdf/multibeam_sonar_blueview_p900.xacro 文件中配置

Viewport properties 视口属性

  • 光栅版本
    声纳的视口是使用深度相机参数配置定义的,包括 FOV、Clip(Range)、nBeams(宽度)、nRays(高度,也用作垂直视场)

  • GPU Ray版本
    声纳的视口使用gpu_ray型传感器配置定义,包括水平和垂直视场以及采样数

Sonar properties 声纳属性

声纳计算的参数也在 model.sdf or urdf/multibeam_sonar_blueview_p900.xacro 文件中定义,包括声纳频率、带宽、声速、声源电平。

Plugin properties 插件属性

可以更改计算设置,包括 Ray skips、Max distance、writeLog/interval、DebugFlag、Publishing 主题名称。

maxDistance :定义目标的最大距离,这也定义了每个波束的信号长度。理想情况下,它应该与 clip 深度相机属性的参数匹配。

ray skips :用于减少跳跃光线计算的计算时间。每个光束的光线总数由深度相机属性的 height 参数定义。

sensor gain :用于指定传感器增益,以获得更好的可视化效果。 plot scaler :用于缩放捆绑查看器窗口上的值,该窗口使用 ROS rqt_image_view 的包绘制。

writeLog 标志 :如果打开,则原始数据以 /tmp/ writeFrameInterval as SonarRawData_000001.csv 的速率保存为 csv 文件。此外,对于 GPU Ray 版本, SonarRawData_beam_angles.csv 已保存。

debugFlag 标志 :如果开启,则在控制台上打印每帧的计算时间。

artificialVehicleVibration 标志 :如果打开,高斯噪声值将不断变化,作为本维基上示例gif中的闪闪发光的声纳图像。

除非声纳所连接的车辆被移动或场景中的物体发生变化,否则在现实世界中不会发生闪光噪声(即使声纳场景是静态的,随机噪声值也会持续变化)。

在某些情况下,利用这些物理特性通过检测噪声变化来识别场景中的变化。在插件中,每当场景中对象的最大距离发生变化时,高斯噪声值(随机噪声值)就会发生变化。

此标志参数更改每帧上的随机值,以模拟车辆在原位振动。

ROS Topic names

您还可以为声纳图像和其他数据定义主题名称。

Variational Reflectivity 变分反射率

虽然高保真目标强度对于简单的实现来说是遥不可及的,但用户可以在场景对象上提供不同的表面反射率。

Note 注意

变分反射率会显着降低刷新率。

该插件将以恒定的反射率启动,可能需要几秒钟才能刷新具有变分反射率的图像。

按型号名称划分的反射率

How it works 运作方式
Results 结果

请添加图片描述

自定义 SDF 标签的反射率

Quickstart 快速入门
How it works 运作方式
Results 结果

请添加图片描述

Output ROS msg 输出 ROS 消息

声纳图像的最终输出以两种类型发送。

  • Topic name sonar_image

这是内部用于绘制与 ROS 包一起 image_view 使用的消息。

数据使用 OpenCV 的 CV_8UC1 格式生成,用 cv::NORM_MINMAX 归一化,用 cv::COLORMAP_HOT 着色,并使用 BGR8 格式更改为 msg 格式

  • Topic name sonar_image_raw

这是与 UW APL 的 ProjectedSonarImage.msg 相匹配的msg。

数据位于 uint8 中。

Rviz Sonar Image Viewer Plugin 图像查看器插件

有一个专用的声纳图像查看器 rviz 插件由 Roland Arsenault 开发。要使用它,请在 src 目录中包含rviz_sonar_image存储库并编译它们。

# clone and compile rviz_sonar_image repo
cd ~/uuv_ws/src/
git clone https://github.com/rolker/rviz_sonar_image
cd ../
catkin build rviz_sonar_image

# run rviz after running the launch file
rviz

在 rviz 中,添加 ProjectedSonarImageDisplay 并选择 sonar_image_raw 要发布的声纳的主题。
请添加图片描述

Scenario demonstrations 场景演示

Local area search scenarios 本地搜索方案

多波束声呐的 GPU Ray 版本可以完全支持声呐向海底俯仰的局部搜索场景。使用 Dave 中的示例模型,包含用于用户演示的世界/启动文件。

适用于本地搜索方案的 GPU Ray 与 Raster

请添加图片描述

  • Raster version 光栅版本
  # generic sdf; not urdf
  roslaunch nps_uw_multibeam_sonar local_search_blueview_p900_nps_multibeam_raster.launch
  # urdf standalone
  roslaunch nps_uw_multibeam_sonar local_search_blueview_p900_nps_multibeam_urdf_standalone_raster.launch

声纳视角掠过海底时仰角光线不足

基于光栅(深度相机)的声纳插件无法更改仰角光线的数量(使用水平/垂直 FOV 的定义进行修复)

512 个水平光束(每个光束有 228 条仰角射线)

  • Ray version Ray 版本
  # generic sdf; not urdf
  roslaunch nps_uw_multibeam_sonar local_search_blueview_p900_nps_multibeam_ray.launch
  # urdf standalone
  roslaunch nps_uw_multibeam_sonar local_search_blueview_p900_nps_multibeam_urdf_standalone_ray.launch

当然,高程射线的数量是用户可以定义的,但计算时间成本很高

512 个水平光束(每个光束有 500 个仰角光线)

Degradaded object detection scenarios

多波束声纳可用于检测物体的退化。要实现此方案,您可以使用自动扭曲网格模型的 mesh_destortion 脚本来扭曲模型。

Examples 例子

  • 大型模型示例:Ship reck(原始与扭曲)
  roslaunch nps_uw_multibeam_sonar sonar_shipwreck_blueview_p900_nps_multibeam.launch

请添加图片描述

  • 小模型示例:花瓶(原始与扭曲)
  roslaunch nps_uw_multibeam_sonar sonar_vase_blueview_p900_nps_multibeam.launch

请添加图片描述

Terrain Aided Navigation Scenarios 地形辅助导航场景

TAN Scenarios | Project DAVE

多波束声纳END

  • 30
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

tfnmdmx

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值