无人船 | 图解基于视线引导(LOS)的无人艇制导算法

目录

  • 1 视线引导法介绍
  • 2 LOS制导原理推导
  • 3 Lyapunov稳定性分析
  • 4 LOS制导效果

1 视线引导法介绍

视线引导法(Line of Sight, LOS)作为无人水面艇(USV)自主导航领域的核心技术,通过几何制导与动态控制深度融合的机制,为复杂海洋环境下的高精度路径跟踪提供了鲁棒性解决方案。其核心原理建立在运动学几何投影与闭环反馈控制的双重架构上:系统实时计算无人船当前位置与预设航路点之间的视线角,通过航向控制器动态调整船体艏摇角使其精确对准该视线方向,同时配合自适应航速策略,形成兼具轨迹跟踪精度与运动稳定性的制导体系。

在这里插入图片描述

为实现视线角的精确跟踪,LOS制导与航向控制器形成级联控制架构:LOS制导系统首先根据全局路径规划生成的航路点序列构建虚拟参考路径,在每个控制周期内选取距离船体最近的路径点作为当前跟踪目标,通过几何投影建立船体坐标系与惯性坐标系间的空间映射关系,计算得到视线角 ψ l o s \psi_{los} ψlos,从而生成期望航向指令 ψ d \psi_{d} ψd,内环控制层则基于航向偏差 e ψ p ˉ s i d − ψ e_\psi\=psi_{d}-\psi eψpˉsidψ,通过控制算法输出转艏力矩τ_r,驱动推进系统调整船体方向,如下图所示

在这里插入图片描述

2 LOS制导原理推导

如图所示为LOS制导几何关系示意图

在这里插入图片描述

设上一个路点为 p i \boldsymbol{p}_i pi,下一个路点为 p i + 1 \boldsymbol{p}_{i+1} pi+1,USV当前位置为 p = [ x y ] T \boldsymbol{p}=\left[ \begin{matrix} x& y\\\end{matrix} \right] ^T p=[xy]T。以 p \boldsymbol{p} p为圆心作半径为 R k R_k Rk的圆交直线段 p i p i + 1 \boldsymbol{p}_i\boldsymbol{p}_{i+1} pipi+1于两点,距离下一个路点 p i + 1 \boldsymbol{p}_{i+1} pi+1较近的交点为当前跟踪的期望路点 p l o s \boldsymbol{p}_{\mathrm{los}} plos。定义前视距离 Δ \Delta Δ为USV在当前段路径投影点与LOS制导点 p l o s \boldsymbol{p}_{\mathrm{los}} plos的前向距离,在静态LOS制导律中, Δ \Delta Δ R k R_k Rk为定值(已知 Δ \Delta Δ R k R_k Rk中的一项可以求出另一项),一般设为USV长度 L L L n n n倍,即

Δ = n L \Delta =nL Δ=nL

由几何关系可得横纵向跟踪误差

{ x e = ( x − x i ) cos ⁡ α i + ( y − y i ) sin ⁡ α i y e = − ( x − x i ) sin ⁡ α i + ( y − y i ) cos ⁡ α i \begin{cases} x_e=\left( x-x_i \right) \cos \alpha _i+\left( y-y_i \right) \sin \alpha _i\\ y_e=-\left( x-x_i \right) \sin \alpha _i+\left( y-y_i \right) \cos \alpha _i\\\end{cases} {xe=(xxi)cosαi+(yyi)sinαiye=(xxi)sinαi+(yyi)cosαi

其中 α i = a r c tan ⁡ ( ( y i + 1 − y i ) / ( x i + 1 − x i ) ) \alpha _i=\mathrm{arc}\tan \left( {{\left( y_{i+1}-y_i \right)}/{\left( x_{i+1}-x_i \right)}} \right) αi=arctan((yi+1yi)/(xi+1xi))。在USV运动过程中,受到风浪或自身驱动等因素影响将产生横向速度 v v v,使船艏不一定沿着航向行驶,艏向和航向的差角称为漂角

β = a r c tan ⁡ ( v , u ) \beta =\mathrm{arc}\tan \left( v,u \right) β=arctan(v,u)

则USV当前航向角为 χ = ψ + β \chi =\psi +\beta χ=ψ+β,期望的航向角 χ d = α i − a r c tan ⁡ ( y e / Δ ) \chi _d=\alpha _i-\mathrm{arc}\tan \left( {{y_e}/{\Delta}} \right) χd=αiarctan(ye/Δ),令 χ = χ d \chi =\chi _d χ=χd可得

ψ d = α i − a r c tan ⁡ ( y e / Δ ) − β \psi _d=\alpha _i-\mathrm{arc}\tan \left( {{y_e}/{\Delta}} \right) -\beta ψd=αiarctan(ye/Δ)β

即控制USV艏向为 ψ d \psi_d ψd时可使其沿着期望航向运动

3 Lyapunov稳定性分析

下来验证当采用 ψ = ψ d \psi=\psi_d ψ=ψd制导时可使横向误差收敛为零。求横向误差的一阶导数

y ˙ e = − x ˙ sin ⁡ α i + y ˙ cos ⁡ α i \dot{y}_e=-\dot{x}\sin \alpha _i+\dot{y}\cos \alpha _i y˙e=x˙sinαi+y˙cosαi

根据运动学方程得到

y ˙ e = − ( u cos ⁡ ψ − v sin ⁡ ψ ) sin ⁡ α i + ( u sin ⁡ ψ + v cos ⁡ ψ ) cos ⁡ α i \dot{y}_e=-\left( u\cos \psi -v\sin \psi \right) \sin \alpha _i+\left( u\sin \psi +v\cos \psi \right) \cos \alpha _i y˙e=(ucosψvsinψ)sinαi+(usinψ+vcosψ)cosαi

根据辅助角公式展开

y ˙ e = u 2 + v 2 sin ⁡ ( ψ + β − α i ) \dot{y}_e=\sqrt{u^2+v^2}\sin \left( \psi +\beta -\alpha _i \right) y˙e=u2+v2 sin(ψ+βαi)

代入LOS制导律

y ˙ e = u 2 + v 2 sin ⁡ ( − a r c tan ⁡ ( y e / Δ ) ) = − u 2 + v 2 y e Δ 2 + y e 2 \begin{aligned} \dot{y}_e&=\sqrt{u^2+v^2}\sin \left( -\mathrm{arc}\tan \left( {{y_e}/{\Delta}} \right) \right) \\ &=-\sqrt{u^2+v^2}\frac{y_e}{\sqrt{\Delta ^2+y_{e}^{2}}}\end{aligned} y˙e=u2+v2 sin(arctan(ye/Δ))=u2+v2 Δ2+ye2 ye

设Lyapunov函数

V = y e 2 2 V=\frac{y_{e}^{2}}{2} V=2ye2

V ˙ = − u 2 + v 2 y e 2 Δ 2 + y e 2 ⩽ 0 \dot{V}=-\sqrt{u^2+v^2}\frac{y_{e}^{2}}{\sqrt{\Delta ^2+y_{e}^{2}}}\leqslant 0 V˙=u2+v2 Δ2+ye2 ye20

根据Lyapunov第二判据可知横向误差在LOS制导律下渐进稳定。

4 LOS制导效果

在下面的演示中,红色的是全局路径点,绿色的是LOS制导生成的模拟轨迹

在这里插入图片描述

直行场景

在这里插入图片描述

绕行场景

在这里插入图片描述

掉头场景


🔥 更多精彩专栏

  • 《ROS从入门到精通》
  • 《Pytorch深度学习实战》
  • 《机器学习强基计划》
  • 《运动规划实战精讲》

👇源码获取 · 技术交流 · 抱团学习 · 咨询分享 请联系👇

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

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

相关文章

Swift观察机制新突破:如何用AsyncSequence实现原子化数据监听?

网罗开发 (小红书、快手、视频号同名) 大家好,我是 展菲,目前在上市企业从事人工智能项目研发管理工作,平时热衷于分享各种编程领域的软硬技能知识以及前沿技术,包括iOS、前端、Harmony OS、Java、Python等…

【KWDB创作者计划】_KWDB部署与使用详细版本

KWDB发展历程 介绍KWDB前,先介绍下KaiwuDB, KaiwuDB 是浪潮控股的数据库企业,该企业提供的KaiwuDB数据库是一款分布式多模数据库产品,主要面向工业物联网、数字能源、车联网、智慧产业等行业领域。 在2024年7月, Kai…

Go:接口

接口既约定 Go 语言中接口是抽象类型 ,与具体类型不同 ,不暴露数据布局、内部结构及基本操作 ,仅提供一些方法 ,拿到接口类型的值 ,只能知道它能做什么 ,即提供了哪些方法 。 func Fprintf(w io.Writer, …

一、Appium环境安装

找了一圈操作手机的工具或软件,踩了好多坑,最后决定用这个工具(影刀RPA手机用的也是这个),目前最新的版本是v2.17.1,是基于nodejs环境的,有两种方式,我只试了第一种方式,第二种方式应该是比较简…

【玩转全栈】—— Django 连接 vue3 保姆级教程,前后端分离式项目2025年4月最新!!!

本文基于之前的一个旅游网站,实现 Django 连接 vue3,使 vue3 能携带 CSRF Token 发送 axios 请求给后端,后端再响应数据给前端。想要源码直接滑倒底部。 目录 实现效果 解决跨域 获取 csrf-token 什么是 csrf-token ? CSRF攻击的…

dify部署,ollama部署,拉取模型,创建ai聊天应用

dify下载安装 dify1.0.1 windos安装包百度云盘地址 通过网盘分享的文件:dify-1.0.1.zip 链接: 百度网盘 请输入提取码 提取码: 1234 dify安装包 linux安装包百度云盘地址 通过网盘分享的文件:dify-1.0.1.tar.gz 链接: 百度网盘 请输入提取码 提取码…

docx文档转为pdf文件响应前端

1、转换文件&#xff08;docx~pdf&#xff09; 1.引入pom依赖 <dependency><groupId>com.aspose</groupId><artifactId>aspose-words</artifactId><version>20.12.0</version> </dependency>2.读取docx文档数据-转换 // 初…

网络安全中信息收集需要收集哪些信息了?汇总

目录 1. 域名信息 2. IP地址与网络信息 3. 备案与注册信息 4. Web应用与中间件信息 5. 操作系统与服务器信息 6. 敏感文件与配置文件 7. 社交工程信息 8. 证书与加密信息 9. API与接口信息 10. 外部威胁情报 11. 历史数据与缓存 常用工具与技术&#xff1a; 在网络…

【锂电池SOH预测】PSO-BP锂电池健康状态预测,锂电池SOH预测(Matlab完整源码和数据)

预测效果 基于PSO-BP算法的锂电池健康状态预测研究 一、引言 1.1 研究背景与意义 在当今社会&#xff0c;锂电池凭借其高能量密度、长寿命及环境友好等特性&#xff0c;在现代能源系统中占据着举足轻重的地位。从消费电子领域如智能手机、笔记本电脑&#xff0c;到动力领域中…

智能车摄像头开源—9 动态权、模糊PID、速度决策、路径优化

目录 一、前言 二、动态权 1.概述 2.偏差值加动态权 三、模糊PID 四、速度决策 1.曲率计算 2.速度拟合 3.速度控制 五、路径 六、国赛视频 一、前言 在前中期通过识别直道、弯道等元素可进行加减速操作实现速度的控制&#xff0c;可进一步缩减一圈的运行速度&#xff…

过往记录系列 篇五:市场黑天鹅事件历史梳理

文章目录 系列文章文章地址文章摘要文章预览系列文章 过往记录系列 篇一:牛市板块轮动顺序梳理 过往记录系列 篇二:新年1月份(至春节前)行情历史梳理 过往记录系列 篇三:春节行情历史梳理 过往记录系列 篇四:年报月行情历史梳理 文章地址 原文审核不通过(理由:“违反…

Mysql--基础知识点--85.1--Innodb自适应哈希索引

1. 自适应哈希索引的用途 InnoDB 的自适应哈希索引&#xff08;Adaptive Hash Index, AHI&#xff09;是 MySQL 数据库引擎中一项智能优化查询性能的功能。其核心作用如下&#xff1a; 加速等值查询 哈希索引通过哈希函数将键映射到固定位置&#xff0c;实现 O(1) 时间复杂度的…

SQL优化技术分享:从 321 秒到 0.2 秒的性能飞跃 —— 基于 PawSQL 的 TPCH 查询优化实战

在数据库性能优化领域&#xff0c;TPC-H 测试集是一个经典的基准测试工具&#xff0c;常用于评估数据库系统的查询性能。本文将基于 TPCH 测试集中的第 20个查询&#xff0c;结合 PawSQL 自动化优化工具&#xff0c;详细分析如何通过 SQL 重写和索引设计&#xff0c;将查询性能…

SpringBoot3-web开发笔记(下)

内容协商 实现&#xff1a;一套系统适配多端数据返回 多端内容适配&#xff1a; 1. 默认规则 SpringBoot 多端内容适配。 基于请求头内容协商&#xff1a;&#xff08;默认开启&#xff09; 客户端向服务端发送请求&#xff0c;携带HTTP标准的Accept请求头。 Accept: applica…

Graylog 索引配置详解与优化建议

Graylog 索引配置详解与优化建议 &#x1f680; 前言一、索引集基础信息 &#x1f4da;二、分片&#xff08;Shards&#xff09;与副本&#xff08;Replicas&#xff09;设置 ⚙️1. 分片 (Shards)2. 副本 (Replicas) 三、 字段类型刷新间隔&#xff08;Field Type Refresh Int…

数据结构*包装类泛型

包装类 什么是包装类 在讲基本数据类型的时候&#xff0c;有提到过包装类。 基本数据类型包装类byteByteshortShortintIntegerlongLongfloatFloatdoubleDoublecharCharacterbooleanBoolean 我们知道&#xff1a;基本数据类型并不是对象&#xff0c;没有对象所具有的方法和属…

【JDBC-54.1】MySQL JDBC连接字符串常用参数详解

在Java应用程序中连接MySQL数据库时&#xff0c;JDBC连接字符串是建立连接的关键。一个配置得当的连接字符串不仅能确保连接成功&#xff0c;还能优化性能、增强安全性并处理各种连接场景。本文将深入探讨MySQL JDBC连接字符串的常用参数及其最佳实践。 1. 基本连接字符串格式…

[ctfshow web入门] web37

信息收集 题目有了变化&#xff0c;include$c if(isset($_GET[c])){$c $_GET[c];if(!preg_match("/flag/i", $c)){include($c);echo $flag;}}else{highlight_file(__FILE__); }解题 通过协议解题 参考[ctfshow web入门] web31 同样是include&#xff0c;之前的方…

Linux 调试代码工具:gdb

文章目录 一、debug vs release&#xff1a;两种程序形态的本质差异1. 什么是 debug 与 release&#xff1f;2. 核心差异对比 二、为什么需要 debug&#xff1a;从项目生命周期看调试价值1. 项目开发流程中的调试闭环&#xff08;流程图示意&#xff09;2. Debug 的核心意义与目…

Python设计模式:命令模式

1. 什么是命令模式&#xff1f; 命令模式是一种行为设计模式&#xff0c;它将请求封装为一个对象&#xff0c;从而使您能够使用不同的请求、队列或日志请求&#xff0c;以及支持可撤销操作。 命令模式的核心思想是将请求的发送者与请求的接收者解耦&#xff0c;使得两者之间的…