当前位置: 首页 > news >正文

无人船 | 图解基于视线引导(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深度学习实战》
  • 《机器学习强基计划》
  • 《运动规划实战精讲》

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

相关文章:

  • OpenAI为抢跑AI,安全底线成牺牲品?
  • CA证书的申请及使用流程
  • 记录:安装 Docker Desktop 时直接设置安装路径及容器存储路径
  • 思维与算法共舞:AIGC语言模型的艺术与科学
  • 人力不足导致项目延期,如何补救
  • 【教学类-102-11】蝴蝶外轮廓01——Python对黑白图片进行PS填充三种颜色+图案描边+图案填充白色+制作1图2图6图24图
  • 如何在Linux系统中安装Vue环境
  • MyBatis-Plus快速入门
  • CVPR‘25 SOTA——GoalFlow论文精读
  • Linux环境下Swap配置方法与技巧
  • InnoDB 底层原理
  • Loop(循环)和Cycle(环)-《分析模式》漫谈55
  • 【笔记ing】AI大模型-05单层感知机与多层感知机
  • 周末学习笔记:Python文件操作(结构化数据转换与文件处理)
  • 算法:有一个整数数组,长度为n。她希望通过一系列操作将数组变成一个回文数组。
  • Domain Adaptation领域自适应
  • Java多态课堂练习题
  • ​‌FireCrawl‌爬虫工具​, Craw4ai
  • 算法思想之模拟
  • LaTeX 的pstricks-add宏绘图练习
  • 央行:25日将开展6000亿元MLF操作,期限为1年期
  • 著名诗人、中国城市发展研究院原常务副院长吕贵品逝世
  • 董明珠的接班人还是董明珠
  • 特朗普:泽连斯基的言论对和平谈判非常有害
  • 中国和阿塞拜疆签署互免签证协定
  • 外交部答澎湃:愿同阿曼在国际和地区事务中加强沟通协调