無人船 | 圖解基于視線引導(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=[x?y?]T。以 p \boldsymbol{p} p為圓心作半徑為 R k R_k Rk?的圓交直線段 p i p i + 1 \boldsymbol{p}_i\boldsymbol{p}_{i+1} pi?pi+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?=(x?xi?)cosαi?+(y?yi?)sinαi?ye?=?(x?xi?)sinαi?+(y?yi?)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+1??yi?)/(xi+1??xi?))。在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?=αi??arctan(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?=αi??arctan(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? ?ye2???0

根據Lyapunov第二判據可知橫向誤差在LOS制導律下漸進穩定。

4 LOS制導效果

在下面的演示中,紅色的是全局路徑點,綠色的是LOS制導生成的模擬軌跡

在這里插入圖片描述

直行場景

在這里插入圖片描述

繞行場景

在這里插入圖片描述

掉頭場景


🔥 更多精彩專欄

  • 《ROS從入門到精通》
  • 《Pytorch深度學習實戰》
  • 《機器學習強基計劃》
  • 《運動規劃實戰精講》

👇源碼獲取 · 技術交流 · 抱團學習 · 咨詢分享 請聯系👇

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/76836.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/76836.shtml
英文地址,請注明出處:http://en.pswp.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;使得兩者之間的…