[论文]欠驱动水下机器人的平面轨迹规划与跟踪控制设计

2023-05-16

[论文]欠驱动水下机器人的平面轨迹规划与跟踪控制设计

摘要

研究了欠驱动自主水下航行器在水平面上的轨迹规划与跟踪控制的组合问题。给定光滑的、惯性的二维参考轨迹,规划算法利用车辆动力学计算参考方向和机体固定速度。利用这些,得到了误差动态。这些是稳定使用后退技术,强迫跟踪误差到一个任意小的邻域零。给出了等速圆轨迹和时变速度正弦轨迹的仿真结果。同时考虑了参数的鲁棒性,结果表明跟踪仍然是令人满意的。

简介

近二十年来,人们对自主水下航行器(AUVs)的操作进行了大量研究,如图1所示。水下机器人在深海资源勘探开发中发挥着重要作用。它们被用于诸如海洋观测、水深测量、海底分析、军事应用、找回丢失的人造物体等危险任务(Yuh, 2000年)。除了它们众多的实际应用之外,水下机器人还存在一个具有挑战性的控制问题,因为它们中的大多数都是欠驱动的,也就是说,它们的驱动输入比自由度(DOF)要少,施加了不可积分的加速度约束。请注意,当在水平平面上移动时,水下机器人表现出类似于欠驱动水面船只的动态行为(Aguiar和Pascoal, 2002;Fossen, 1994)。水面舰艇和水下机器人的平面稳定化问题,即调整到某一特定方向的平面稳定化问题,已经被许多研究者所研究; 参见举例(Aguiar和Pascoal, 2002;Wichlund等人1995,Reyhanoglou, 1997;佩特森和埃格兰,1999年;Pettersen和Fossen, 2000年;Mazenc等,2002)。在这些工作中,证明了这些车辆不能由连续时不变反馈控制律渐近稳定。

轨迹跟踪要求设计控制律来引导车辆跟踪惯性参考轨迹,即指定时间规律的几何轨迹。现有的用于欠驱动船舶的跟踪控制器设计——水下机器人(auv)和水面船舶——遵循经典的方法,如多变量模型的局部线性化和解耦,以控制尽可能多的自由度。根据这种方法,六自由度飞行器被解耦成两个简化的动力学系统:一个是考虑垂直平面运动的深度俯仰模型,另一个是研究水平平面运动的平面偏航模型。根据这种方法,六自由度飞行器被解耦成两个简化的动力学系统:一个是考虑垂直平面运动的深度俯仰模型,另一个是研究水平平面运动的平面偏航模型。
图1.欠驱动水下机器人模型
然后,两个结果模型在恒定标称前进速度附近线性化。使用标准线性(或非线性)方法进行控制设计,参见(Fossen,1994)。其他方法包括车辆误差动力学的线性化,关于“微调”轨迹——以恒定的所需速度跟踪——导致时不变线性系统,随后是增益调度等技术,见(Kaminer等人,1998)。这些解决方案的有效性被限制在所选操作点周围的小范围内。当车辆执行机动动作时,稳定性和性能也会受到严重影响,这些机动动作会激发其复杂的流体动力学和非线性耦合项的影响。另一方面,自主欠驱动船舶轨迹跟踪的理论和实验结果表明,基于非线性李亚普诺夫方法可以克服上述大部分限制。Pettersen和Nijmeijer (2001)和Lefeber等人(2003)的作者使用基于李亚普诺夫的控制器给出了模型水面船的实验跟踪结果。蒋(2002)在李雅普诺夫直接法和无源性方法的基础上,提出了水面舰艇的两种跟踪方案。但在后三部作品中,要求偏航速度非零;在这种限制下,直线不能被跟踪。此外,阻力模型,即刚体在水中运动时的阻力,被认为是相对于所有三自由度运动速度的线性函数。这意味着只有当车辆低速行驶时,结果才有效。在Behal等人(2002)中,误差动力学被转换成反对称形式,并且实现了实际的收敛;作者还考虑了线性阻力模型。作者在阿吉亚尔和海茨潘哈(2003)设计了一种控制器,用于在二维或三维空间运动的船舶,该控制器以指数方式将位置跟踪误差强制到原点的一个小邻域内。然而,姿态是不受控制的,这可能导致以不期望的姿态进行位置跟踪。速度误差的稳定性也没有提到;这是一个同样重要的问题,因为即使在精确位置跟踪的情况下,大的速度误差也可能导致致动器饱和。在Repoulias和Papadopoulos (2005)中,研究了欠驱动水下机器人在水平面上运动的轨迹规划和跟踪控制算法。所用的阻力模型与速度成线性关系;此外,该规划算法还适用于要求水下机器人具有恒定跟踪速度的平面圆形轨迹。

本文研究了欠驱动水下机器人在水平面上运动的轨迹规划和跟踪控制的组合问题。轨迹规划的目标是为运动控制系统生成可行的参考输入,进而确保车辆执行规划的轨迹。给定平滑的2D参考惯性轨迹,规划算法产生相应的参考体固定线速度和角速度和加速度,以及参考方向。该算法基于水下机器人的动力学特性,使固定体参考轨迹可行。用于说明该方法的轨迹是具有恒定的固定物体速度的圆和正弦曲线,这需要随时间变化的物体速度,即非零加速度。此外,所有三个运动自由度的阻力都是速度的二次函数。使用得到的参考变量,获得车辆误差动态,并且控制问题被简化为误差动态稳定问题。为此,采用部分状态反馈线性化、反推和非线性阻尼等方法来设计时变闭环轨迹跟踪控制律,该控制律将跟踪误差强制到可任意减小的零附近。上述程序的一个自然要求是浪涌速度是非零的。对参数不确定情况下的鲁棒性也进行了研究,结果表明跟踪仍然非常令人满意。给出了仿真结果,并讨论了该控制设计的性能。

未完待续

结论

在本文中,解决了在水平面上移动的欠驱动AUV的轨迹规划和跟踪控制的组合问题。给定车辆CM遵循的参考、平滑、惯性2D轨迹,规划算法使用车辆动态模型,并产生相应的车身固定线速度和角速度以及车辆方向。利用这些参考值,水下机器人的动力学被转换成误差值。反推技术被用来稳定上述系统,并迫使跟踪误差接近零,可以使任意小。计算机仿真表明,在存在参数不确定性或由时变速度描述的轨迹的情况下,该方法具有很好的跟踪性能和鲁棒性。

论文链接

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

[论文]欠驱动水下机器人的平面轨迹规划与跟踪控制设计 的相关文章

  • pixhawk学习笔记---创建新的应用程序

    最近转到无人机领域的开发中 xff0c 感觉和以往搞android驱动差别比较大 xff0c 以前搞android驱动的时候网上的资料满天飞 xff0c 但是现在关于飞控相关的资料却少之又少 xff0c 一些资料都是从原理上入手 xff0c
  • 伽马贝塔函数

    在数理方程 概率论等学科经常遇到以下的含参变量的积分 xff0c 它们依次为第一类和第二类欧拉 xff08 Euler 1707 1783瑞士数学家 xff09 积分 xff0c 或依次称为贝塔 xff08 Bata xff09 函数和伽马
  • http-parser用法

    头文件说明 xff1a 解析类型定义 xff1a enum http parser type HTTP REQUEST HTTP RESPONSE HTTP BOTH 解析函数声明 xff1a void http parser init h
  • gazebo崩溃

    1 虚拟机下打开gazebo报错 xff1a VMware vmw ioctl command error Invalid argument INFO 1610283240 619937255 0 180000000 LeePosition
  • k8s中文网站

    https www kubernetes org cn doc 11
  • 【平衡车】PID控制原理到底如何理解?建议收藏!

    文章目录 前言PID算法PID算法的形成P算法 xff0c 即比例控制算法 I算法 xff0c 即积分控制算法D算法 xff0c 即微分控制算法PID总体的数学模型 xff1a 基于单片机的PID控制算法 xff1a 单片机中的PID算法的
  • 嵌入式C语言修炼之道.屏幕操作篇

    汉字处理 现在要解决的问题是 xff0c 嵌入式系统中经常要使用的并非是完整的汉字库 xff0c 往往只是需要提供数量有限的汉字供必要的显示功能 例如 xff0c 一个微波炉的LCD上没有必要提供显示 34 电子邮件 34 的功能 xff1
  • CDN—内容分发网络

    CDN 1 含义 CDN的全称是Content Delivery Network xff0c 即内容分发网络 CDN是构建在现有网络基础之上的智能虚拟网络 xff0c 依靠部署在各地的边缘服务器 xff0c 通过中心平台的负载均衡 内容分发
  • BeautifulSoup

    代码 xff1a from bs4 import BeautifulSoup 一个html格式的内容 doc 61 39 lt html gt lt head gt lt title gt Page title lt title gt lt
  • Ubuntu Server 22.04.1配置(配置root账号、设置固定IP、更改SSH端口、配置UFW、VM扩展磁盘后Ubuntu的扩容)

    为了能快速的创建虚拟机 xff0c 通过VM创建了一个2核CPU 4G内存 40G硬盘 xff0c 安装Ubuntu Server 22 04 1的虚拟机 xff0c 以便在需要的时候随时克隆一个新的虚拟机出来 在新的虚拟机克隆出来后可能会
  • 使用ado连接orical数据库

    使用ADO连接数据库有三种方法 xff1b 方案1 安装Orical数据库软件比方说说oracle 11g R2 32位软件 这里有一个需要注意的地方就是如果你编译的是win32如下图 xff0c 那么就必须要使用32位的数据库软件 其实在
  • QT操作 influxdb时序数据库(libcur)

    概述 最近在项目中需要用到influxdb 数据库 xff0c 当时使用了libcur库之后 xff0c 插入数据的速度一直不太理想 创建字表的速度 1W的话需要11Min xff0c 对于这样的时间完全达不到合格 经过研究进行了打包处理
  • linux中的环境变量

    临时添加环境变量的方法 exprort PATH 61 usr lib PATH export fnp 变量名称 61 变量设置值 参数说明 xff1a f 代表 变量名称 中为函数名称 n 删除指定的变量 变量实际上并未删除 xff0c
  • Linux(openEuler)没有界面连接互联网方法

    前言 系统版本openEuleropenEuler 22 03 LTS x86 64 dvd 我们在安装linux之后 xff0c 一般都是无界面的情况 大部分情况都是需要自己安装界面的 xff0c 如果路由器的情况下直接插上网络就好了 下
  • c#实现内存映射文件共享内存

    内存映射文件是利用虚拟内存把文件映射到进程的地址空间中去 xff0c 在此之后进程操作文件 xff0c 就像操作进程空间里的地址一样了 xff0c 比如使用c语言的 memcpy等内存操作的函数 这种方法能够很好的应用在需要频繁处理一个文件
  • c#Gdi画图的两种方式

    用Graphics绘图的两种方法 在学习C 画图的时候非常的蛋疼 其中的一条原因是之前没有搞过 xff0c 其中之二是办公的环境有点差 这就是我找的2种学习非常蛋疼的原因 虽然是这样但是学还是要学的 本篇文章都是在xxx paint obj
  • 一个小巧的C++Log输出到文件类

    一个小巧的C 43 43 Log输出到文件类 xff08 转 xff09 作者 xff1a wangyin159 http www cnblogs com mazhenyu p 4139352 html 一个小巧的C 43 43 Log输出
  • beego创建项目

    span class token comment 安装beego框架 span go get u github com beego beego v2 span class token comment 安装bee工具 span go get
  • 我的C++回调函数的理解

    今天在看一个多线程下载文件的代码时 xff0c 让我很头痛 因为该程序中运用了大量的回调函数 在我们学习一种技术的时候我们就要去知道几个问题 1 回调函数是什么东西 xff1f 2 回调函数怎么开发 xff0c 怎么使用 xff1f 3 回

随机推荐