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

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

  • 一、Dave Models 模型
    • Vehicle Models 航行器模型
      • New Underwater Vehicle 新型水下航行器
      • Dave ROV Models
      • Dave Glider Models
      • Manipulator Models 机械臂模型
      • UUV Simulator Examples
        • rexrov
        • rexrov2
        • desistek saga rov
        • eca_a9
        • Light Autonomous Underwater Vehicle (LAUV) 轻型自主水下航行器
    • Bathymetry Models 探测模型
      • Bathymetry Models
      • Build from heightmap 从高度图构建
    • Object Models
      • Dave Object Models 物体模型
      • Object Degradation Tool
  • 二、Dave Sensors传感器
    • 1.Multibeam Sonar 多波束声纳
      • 1.1介绍
      • 1.2 Background 背景
        • Characteristics/fidelity/Features 特性/保真度/特性
        • 1.3 Related works 相关著作
      • 1.4 Approach 方法
      • 1.5 Installation 安装
  • 1.6 ==多波束声纳快速入门==
    • Launch commands 启动命令
    • Raster vs GPURay
      • 光栅版本
      • GPURay 版本
    • Sonar image 声呐图像
  • Configurations 配置
    • Gazebo Coordinate Frames Gazebo坐标系
    • Parameters 参数
      • Viewport properties 视口属性
      • Sonar properties 声纳属性
      • Plugin properties 插件属性
    • ROS Topic names
    • Variational Reflectivity 变分反射率
      • 按型号名称划分的反射率
        • How it works 运作方式
        • Results 结果
      • 自定义 SDF 标签的反射率
        • Quickstart 快速入门
        • How it works 运作方式
        • Results 结果
    • Output ROS msg 输出 ROS 消息
      • Rviz Sonar Image Viewer Plugin 图像查看器插件
    • Scenario demonstrations 场景演示
      • Local area search scenarios 本地搜索方案
        • 适用于本地搜索方案的 GPU Ray 与 Raster
    • Degradaded object detection scenarios
      • Examples 例子
    • Terrain Aided Navigation Scenarios 地形辅助导航场景
  • ==多波束声纳END==

一、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 urdfroslaunch nps_uw_multibeam_sonar local_search_blueview_p900_nps_multibeam_raster.launch# urdf standaloneroslaunch nps_uw_multibeam_sonar local_search_blueview_p900_nps_multibeam_urdf_standalone_raster.launch

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

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

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

  • Ray version Ray 版本
  # generic sdf; not urdfroslaunch nps_uw_multibeam_sonar local_search_blueview_p900_nps_multibeam_ray.launch# urdf standaloneroslaunch 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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/10379.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

调用move_base中的action

文章目录 功能介绍实现过程具体代码参考功能介绍 move_base 中的 action 是 ROS 中用于导航功能的一种实现方式,它利用 ROS 中的行为(action)通信机制来提供更灵活和强大的导航控制。 在 move_base 中,导航行为被建模为一个行为(action),该行为包含了导航过程中的目标…

stata空间计量模型基础+检验命令LM检验、sem、门槛+arcgis画图

目录 怎么安装stata命令 3怎么使用已有的数据 4数据编辑器中查看数据 4怎么删除不要的列 4直接将字符型变量转化为数值型的命令 4改变字符长度 4描述分析 4取对数 5相关性分析 5单位根检验 5权重矩阵标准化 6计算泰尔指数 6做核密度图 7Moran’s I 指数 8空间计量模型 9LM检验…

Follow the Money:2023年最赚钱的十家国内芯片设计上市公司及其整体表现

作者:北京华兴万邦管理咨询有限公司 商瑞 马华 摘要:尽管相较2022年有所下滑,但2023年最赚钱的十家国内芯片设计上市公司的净利润总额超过了159家A股和港股上市内地半导体企业利润总额的55%,但是其市值之和仅占159家上市半导体…

IndexedDB解密:打开Web应用的数据存储之门

欢迎来到我的博客,代码的世界里,每一行都是一个故事 IndexedDB解密:打开Web应用的数据存储之门 前言IndexedDB简介数据库操作数据检索与索引异步操作与事件处理 前言 在Web的世界里,数据就像是一群旅行者,它们来自各个…

【Python】PYQT5详细介绍

本专栏内容为:Python学习专栏 通过本专栏的深入学习,你可以了解并掌握Python。 💓博主csdn个人主页:小小unicorn ⏩专栏分类:Python 🚚代码仓库:小小unicorn的代码仓库🚚 &#x1f3…

探索Linux:深入理解各种指令与用法

文章目录 cp指令mv指令cat指令more指令less指令head指令tail指令与时间相关的指令date指令 cal指令find指令grep指令zip/unzip指令总结 上一个Linux文章我们介绍了大部分指令,这节我们将继续介绍Linux的指令和用法。 cp指令 功能:复制文件或者目录 语法…

免费知识付费内的小程序,一键生成小程序,K12在线教育市场的主要参与者有哪些?

国内互联网在线教育目前还处于产业探索期,K12在线教育市场的主要参与者有哪些?互联网在线教育市场目前参与进来的主要有教育出版商、软件公司、课外辅导机构、以及互联网公司。 1、教育出版商 目前教育出版商的优势是有数字资源、懂教育、具备体制内的渠道优势。此…

【C++ Primer Plus】第3章 基本数据类型

面向对象编程(OOP)的本质是设计并扩展自己的数据类型。设计自己的数据类型就是让类型与数据匹配。 C内置数据类型分为基本类型和复合类型。基本类型包括整数、浮点数,以及多种变体;复合类型包括数组、字符串、指针和结构。 变量一种标识存储的数据的方法…

001 websocket(评论功能demo)(消息推送)

文章目录 ReviewController.javaWebSocketConfig.javaWebSocketProcess.javaServletInitializer.javaWebsocketApplication.javareadmeindex.htmlapplication.yamlpom.xml ReviewController.java package com.example.controller;import com.example.websocket.WebSocketProces…

量子波函数白话解释

关键词:Quantum Wave Function 文章目录 一、说明二、什么是波函数?三 量子波的可视化四、量子波的概率解释 一、说明 在量子力学中,粒子是我们只有在测量它们时才能看到的东西。其中运动模式由满足薛定谔方程的波函数描述。波函数并非量子…

【重学C语言】十三、字符串

【重学C语言】十三、字符串 字符串存储字符串输入手写字符串部分操作函数字符串操作函数字符串长度字符串复制字符串连接字符串比较字符串搜索字符串分割字符串大小写转换字符串内存分配字符串替换字符串格式化其他内存操作函数字符串存储 在C语言中,字符串通常是以字符数组(…

基于JSP动漫论坛的设计与实现(四)

目录 功能模块测试 6.1 测试概述及所用方案 6.1.1软件测试概述 6.1.3 测试的步骤 6.1.4 测试的主要内容 6.1.5 测试方案 6.1.6测试设计 6.2 前端功能测试 6.2.1 登录功能测试 6.2.2 注册功能测试 6.2.3 发帖功能测试 6.2.4 回复帖子测试 6.3 后台功能测试 6…

为什么我们做C++项目的时候,需要写头文件

在C项目中,头文件(通常具有.h或.hpp扩展名)的使用是组织代码、提高可重用性和维护性的关键部分。以下是为什么我们在C项目中需要写头文件的一些主要原因: 声明与定义分离: 头文件通常包含类、函数、变量等的声明&…

vulnhub靶场之FunBox-5

一.环境搭建 1.靶场描述 Lets separate the script-kids from script-teenies.Hint: The first impression is not always the right one!If you need hints, call me on twitter: 0815R2d2 Have fun...This works better with VirtualBox rather than VMwareThis works bett…

导电材料——分类、性能与性质

本篇为西安交通大学本科课程《电气材料基础》的笔记。 导电材料指的是能在电场下传导电流的材料。导体价电子所在能带为半满带,且相邻能级间隔小,外电场下电子很容易从低能级跃迁到高能级上,大量的电子很容易获得能量进行共有化运动&#xf…

NPDP|传统行业产品经理如何跨越鸿沟,从用户角度审视产品

随着科技的飞速发展和互联网的普及,产品经理的角色已经从单纯的产品规划者逐渐转变为全方位的用户体验设计者。对于传统行业的产品经理来说,这是一个挑战与机遇并存的时代。他们不仅要面对激烈的市场竞争,还要学会如何跨越与新兴科技行业之间…

Scala编程入门:从零开始的完整教程

目录 引言环境准备创建第一个Scala项目基本语法高阶概念进阶资源结语 引言 Scala是一种强大的、静态类型的、多范式编程语言,它结合了面向对象和函数式编程的特点。本教程将指导您如何从零开始学习Scala,并搭建一个简单的开发环境。让我们开始探索Scala…

【好困】磁场里的瞌睡虫:地磁暴真的会让我们感到疲倦吗?

【好困】磁场里的瞌睡虫:地磁暴真的会让我们感到疲倦吗? 写在最前面地磁暴真的会让我们感到疲倦吗?一探究竟地磁暴是什么?地磁暴如何影响人体?结论 🌈你好呀!我是 是Yu欸 🌌 2024每…

安阳知识付费系统,课程涨价造成学员流失怎么办?

很多校长正在琢磨春季班涨价的事情。今年物价上涨,校区运营成本增加,他的压力很大。但是他又担心涨价后,家长接受不了,导致生源流失怎么办? 一、学校自身有合理的利润空间;二、价格符合当地行业情况和经济水平,意思不…

nextTick的作用与原理

在 Vue 中,nextTick允许我们延迟执行一段代码,直到 Vue完成其当前的 DOM 更新周期。这使得我们可以在 DOM 更新后安全地访问和修改 DOM 元素。 一、Vue 的异步更新策略 Vue 采用了一种称为异步更新策略的机制。这意味着当数据发生变化时,Vue…