观察级水下机器人使用系列之五三维激光扫描仪

news2024/10/5 19:19:15

本文主要讲观察级水下机器人Valor配套的三维激光扫描仪,它是近年来ROV的主力光学设备。三维激光扫描仪是Voyis(原公司为2G Robotics)公司生产的,型号为ULS-500 Micro。

​编辑​

ULS-500 Micro的技术参数如下图。ULS-500 Pro扫描的量程要大一些。

点击查看原图

三维激光扫描仪有2种作业方式,一种是静态模式,一种是动态模式。

无标题4.jpg

无标题5.jpg

Voyis官网提供了三维激光扫描仪安装在ROV和实时采集的图。

点击查看原图

同时,官网也提供了一个视频,包含了三维激光扫描仪扫测生物栖息地的效果图。

点击查看原图

是不是很漂亮?想要获取如上图的效果,三维激光扫描仪的环境必须要严格限定,首先环境光要很弱,最好是漆黑的,然后水质要非常干净,不能有均匀分散的微颗粒。官方文档中与环境有关的描述内容翻译如下:

环境光的影响

环境光会导致噪声增加并限制扫描范围。环境光是指勘测环境中并非由 ULS-500 PRO 发出的任何光线。如果白天在海面附近作业,环境光可能来自太阳或 ROV 灯光。任何存在的环境光都将反射到目标上,并被 ULS-500 PRO 捕获。然后,系统必须将这些光线与目标反射的激光光线进行区分。如果环境光很强,则会使相机传感器饱和,系统算法将无法识别激光线。如果环境光很弱,但对比度足够高,那么激光线仍可在环境光背景下被识别出来。这与我们的眼睛在光线充足的城市中观察天空中的星星时很难识别的原理类似。

虽然理想的情况是没有环境光,但一定程度的环境光也是可以接受的。如果可能,ROV灯光不应照射到与激光扫描仪相同的目标上。ULS-500 PRO所使用的相机传感器具有很高的动态范围,有助于确保合理的环境光不会使传感器饱和。

浊度和微粒

水体中的微粒会显著影响系统范围和系统噪声。水体中的颗粒数量称为水的浊度。ULS-500 PRO的工作原理是由激光器发射激光脉冲,该脉冲必须从目标反射并返回相机。如果激光在到达目标之前反射到微粒上,则将在该位置测量一个数据点,而目标上将缺少相应的数据点。这些远离目标的数据点被视为噪声。如果微粒过多,则整个激光线将被阻断,目标上将不会返回任何数据点。

颗粒的大小决定这种影响的严重程度。大颗粒会阻挡激光线的特定区段,导致局部数据点缺失。如果在目标上测量了足够多的数据点以获得所需的测量结果,这种情况是可以接受的。然而,均匀分散的微粒会明显吸收/阻挡整条激光线,并明显限制激光扫描仪的量程。

什么情况下水质太浑浊不能使用ULS-500 PRO?

在您尝试之前,很难确定这一点,但一般的经验法则是,如果您能在激光扫描的范围内使用典型的水下相机和灯光看到目标,那么就可以使用ULS-500 PRO进行扫描。
ULS-500 PRO使用非常强大的激光和高灵敏度相机,因此,如果目标可以用标准相机和光源观测到,那么激光扫描仪也能够 "看到 "目标。

在近海,三维激光扫描仪是很难得到理想的效果,很多时候,回波大都是来自于水中的微粒反射,换句话说,三维点云都是噪声。除非去水质良好的深海,检验三维激光扫描仪只能在室内水池。

下图是三维激光扫描仪架设在水池中的三角夹上,扫测前面的由铝管和塑料管组成的框架。

无标题8.jpg

水池扫测的效果图如下。

点击查看原图

三维激光扫描仪可以用于考古、油气和科考。

水下雕像。

点击查看原图

水下油气平台。

点击查看原图

水下多金属结核。

点击查看原图

风机单桩冲刷,不确定是三维声纳还是三维激光扫描仪做出来的?

点击查看原图

《三维激光扫描在水下锚链检测中的应用研究_黄明泉》和《水下三维激光扫描在导管架平台损伤测量中的应用_刘彬》都是使用ROV搭载ULS200进行测量,使用步骤也基本一样。

无标题11.jpg

1、标定

为确保三维激光数据质量,在正式开始作业之前需对三维激光扫描仪进行水上、水下试扫,对比检验设备精度,达到设备标定的目的。选用与目标物结构相似的标定物,将人工游标卡尺测量结果与三维激光扫测结果作对比,如下图所示,精度满足作业要求后方可将三维激光扫描仪投入使用。

点击查看原图

2、锚链扫测

在使用水下三维激光扫描仪对系泊锚链开始扫描之前,ROV 机械手搭载液压钢刷对附着在链环上的海生物和钙质层进行清理,清理后待海水浑浊度降低后方可实施三维激光扫描工作。

水下系泊锚链在不同位置处有不同的姿态形态,要得到完整的系泊锚链点云数据进行建模,需在系泊锚链的不同方位布放三维激光扫描仪,且在扫测过程中严格固定三维激光扫描仪,防止其晃动以造成多个站位上点云数据无法拼接或拼接变形的后果,因此在扫描工作进行前提前设计好三维激光扫描仪的布放位置。

为保证三维激光扫描仪与锚链之间的相对位置保持相对静止,研究人员专门设计了一个工装用于固定安装三维激光扫描仪,该工装可夹紧在锚链上以保持三维激光扫描仪与锚链的相对位置关系是稳定的。工装可用 ROV 机械手进行位置调整,将水下三维激光固定安装在 ROV 机械手上,通过电缆延长线与 ROV 水下集控模块连接,由 ROV 水下集控模块实时回传点云数据到甲板采集单元,如下图所示。

无标题13.jpg

3、点云数据配准与拼接

使用ICP 迭代最近点算法,寻找两个点云的共像点,配准点云。

点击查看原图

配准步骤及结果。

点击查看原图

4、导管损伤检测

南海某导管架在安装过程中受到撞击,导致某一管状构件上产生长度约1.7m 的凹陷区域,以此为研究对象,开展三维激光扫描对损 伤点尺寸的测量研究。由于损伤面积较大,一次扫描无法获取所有损伤区域的激光点云数据。首先对损伤区域进行扫描设计,使用方形磁铁对损伤区域进行分割,如下图所示,平均分配成长度0.8m 左右的3个区域,磁铁作为分割标示,也是后续拼接的公共参考点。

无标题16.jpg

ROV首先清除导管架损伤杆件上的附着钙质层和海洋生物,随后ROV放置磁铁于损伤点的指定位置,如下图a所示。ROV机械手搭载水下三维激光扫描仪下水,坐靠在导管架上保持稳定状态,调整三维激光扫描仪位置,分别对3个区域多角度进行扫描,中间区域的扫描需要覆盖两组磁铁,两侧区域的扫描需要覆盖损伤点边缘和一组磁铁,完成 凹陷位置的扫描采集,如下图b所示。

无标题17.jpg

不同位置的扫测图。

点击查看原图

拼接图。

点击查看原图

小结

水下三维激光扫描仪对使用环境要求非常高,环境光要足够弱,水质要足够清。使用模式无论是静态还是动态的,点云配准不仅依赖高精度的定位,而且与公共点密切相关。

参考文献

三维激光扫描在水下锚链检测中的应用研究_黄明泉

水下三维激光扫描在导管架平台损伤测量中的应用_刘彬

isprs-archives-XLII-2-W18-13-2019

https://3datdepth.com/applications/offshore-oil-and-gas

https://www.savante.co.uk/

https://voyis.com/

https://www.toyo.co.jp/kaiyo/news/detail/id=20224

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

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

相关文章

关于docker的一些深入了解

本文将深入介绍一下docker方面的知识,不尽完全,慢慢完善。 进程 进程的概念 在介绍docker的相关知识前,先了解一下相关概念。进程就是系统中正在运行的程序,进程是操作系统的概念,每当我们执行一个程序时&#xff0…

关于 Ubuntu 长按 shift 无效, 按 Esc 直接进入 grub 改密码的解决方法

本次长按shift没有反应,直接进入了系统界面,所以改用长按Esc键,步骤如下: 1. 长按esc,进入grub>提示 2.输入grub>normal ,回车 3.上一步回车后,继续敲击Esc ,出现grub界面 …

rdp、ftp协议的密码爆破

远程桌面 rdp协议 3389 文件传输 FTP协议 20 21 攻击方:Kali 测试方:Win7 两台都要在同一网段 密码爆破工具 hydra九头蛇 hydra(九头蛇)是著名黑客组织thc的一款开源的暴力破解密码工具,功能非常强大,ka…

Emacs之远程开发C++配置: emacs + tramp + clangd(一百二十六)

简介: CSDN博客专家,专注Android/Linux系统,分享多mic语音方案、音视频、编解码等技术,与大家一起成长! 优质专栏:Audio工程师进阶系列【原创干货持续更新中……】🚀 人生格言: 人生…

大数据学习教程:Linux高级教程(下)

四、大数据集群服务器搭建 1. 新增Linux服务器 1.1、克隆虚拟机 学习环境中,一般使用VMware虚拟机克隆Linux系统,用来进行集群服务器的搭建。 VMware支持两种类型的克隆:完整克隆、链接克隆 完整克隆是和原始虚拟机完全独立的一个复制&…

系统架构设计师_备考第2天(计算机组成与体系结构)

文章目录 考频(3分左右)一、计算机结构二、CPU组成三、冯诺依曼结构和哈弗结构四、层次化存储结构五、Cache 考频(3分左右) 提示:这里可以添加本文要记录的大概内容: 计算机结构(★&#xff0…

魔法上网端口号被占用通过端口号找到进程并且杀掉进程随笔

Windows11系统由于魔法上网被异常关闭导致再次启动的时候报出端口号被占用问题记录以前忘记的通过端口杀掉进程相关操作。 在命令行(winr,输入cmd)中输入: netstat -ano 可以看到本机正在使用的ip地址和端口号如图: 在命令行(wi…

Array.prototype.slice.call()方法详解

slice:用来截取截取字符串方法Array: javascript的一个引用类型,其原型prototype上有一个方法叫slicecall和apply : 用来改变对象中函数内部的this引用,使得函数可以随便换‘妈妈’ 为什么不直接用 arguments.slice(1)呢 不是一样的么? 答案…

springboot第33集:nacos图

./startup.sh -m standalone Nacos是一个内部微服务组件,需要在可信的内部网络中运行,不可暴露在公网环境,防止带来安全风险。Nacos提供简单的鉴权实现,为防止业务错用的弱鉴权体系,不是防止恶意攻击的强鉴权体系。 鉴…

门面模式:简化复杂系统的接口调用

门面模式:简化复杂系统的接口调用 什么是门面模式? 门面模式(Facade Pattern)是一种结构型设计模式,它提供了一个简单的接口,用于访问复杂子系统中的一组接口。门面模式通过封装子系统的复杂性&#xff0…

如何免费制作中小学分班查询系统?

暑假即将结束,新学年即将开始,学校面临着一个重要任务:学生分班。不论是新生入学还是低年级升入高年级,都需要进行分班工作。这对负责分班的老师们来说,增加了相当大的工作量和挑战。 在开学前,如何快速解…

排序八卦炉之插入和希尔

文章目录 1.插入排序1.1代码1.2复杂度 2.希尔排序2.1代码2.2复杂度2.3算法解析 1.插入排序 1.1代码 //插入排序1.0 /* void InsertSort(int* a, int n) {//i&#xff1a; 0 -- 倒数第2个元素for (int i 0; i < n - 1; i){//end记录iint end i;//tmp记录end后一个值int tm…

ios_base::out和ios::out、ios_base::in和ios::in、ios_base::app和ios::app等之间有什么区别吗?

2023年8月2日&#xff0c;周三晚上 今天我看到了这样的两行代码&#xff1a; std::ofstream file("example.txt", std::ios_base::out);std::ofstream file("example.txt", std::ios::out);这让我产生了几个疑问&#xff1a; 为什么有时候用ios_base::o…

物联网潜在的巨大价值在于大数据分析

物联网潜在的巨大价值在于大数据分析 从数据里去挖掘市场或者用户的精准需求。 往小的说&#xff0c;后台可以统计用户家里各各插座一年甚至更久的用电情况&#xff0c;这些数据也可以通过app或者小程序展现给用户。 用户可以很直观看到自己一年的用电情况&#xff0c;哪个家…

2.6 伽马校正 一、Gamma校正

一、Gamma校正 颜色空间 通用&#xff1a;sRGB 电影&#xff1a;DCI-P3 电视&#xff1a;Rec-709、PAL等 印刷&#xff1a;CMYK、Adobe RGB 传递函数 我们知道了颜色的颜色值&#xff0c;要在电子设备上显示&#xff0c;就要把它转换为视频信号&#xff0c;传递函数就是用…

Linux上安装Keepalived,多台Nginx配置Keepalived(保姆级教程)

目录 一、yum安装 第一步&#xff1a;下载 第二步&#xff1a;编辑Keepalived配置文件&#xff08;第一台&#xff09; 第三步&#xff1a;编辑Keepalived配置文件&#xff08;第二台&#xff09; 第四步&#xff1a;我们在本机利用cmd ping一下 一、yum安装 第一步&…

[国产MCU]-BL602开发实例-开发环境搭建

开发环境搭建 文章目录 开发环境搭建1、BL602介绍2、软件准备3、源码编译3.1 编译内置工程3.2 自定义工程、自定义组件添加与编译4、固件下载BL602 是一款Wi-Fi + BLE组合的芯片组,用于低功耗和高性能应用开发。无线子系统包含2.4G无线电,Wi-Fi 802.11b/g/n和BLE 5.0 基带/MA…

【编程范式】聊聊编程的本质

任何算法都会有两个部分&#xff0c; 一个是 Logic 部分&#xff0c;这是用来解决实际问题的。另一个是 Control 部分&#xff0c;这是用来决定用什么策略来解决问题。Logic 部分是真正意义上的解决问题的算法&#xff0c;而 Control 部分只是影响解决这个问题的效率。程序运行…

单元测试之- mock工具mockito

常用的mock工具mockito 在编写单元测试时&#xff0c;需要mock依赖的对象&#xff0c;减少依赖对象对测试的影响&#xff0c;Mocktio是常用的mock工具之一&#xff0c;那么mockito提供了哪些功能呢&#xff1f; Mock对象的创建和配置&#xff1a;Mockito可以通过简单的语法创建…

WebView2对比CefSharp的超强优势

第一次使用了CefSharp组件&#xff0c;集成开发结束后&#xff0c;测试及使用过程中遇到了一些无法处理的bug及严重的性能问题。然后又测试对比了其他多种组件&#xff0c;具体情况可以阅读我的博客​ ​《.NET桌面程序集成Web网页开发的十种解决方案》​​。最终选用了微软新出…