MOOS程序解析记录(6)uSimMarine解析2

文章目录

  • MOOS程序解析记录(6)uSimMarine解析2
  • 前言
  • 一、Simulation of External Drift
    • 1.External X-Y Drift from Initial Simulator Configuration
    • 2.External X-Y Drift from Initial Simulator Configuration
  • 二、The ThrustMap Data Structure
    • 1.Automatic Pruning of Invalid Configuration Pairs
    • 2.Automatic Inclusion of Implied Configuration Pairs
  • 总结

前言

接上文继续,上文主要分析了关于uSimMarine中航向、深度、速度等值的计算公式和相关代码,本章内容将继续介绍uSimMarine APP的其他相关内容。

一、Simulation of External Drift

在AUV实际航行过程中,很可能会因为外部的环境发生坐标偏移,该部分内容主要是关于模拟XY坐标漂移的内容,如果进行环境仿真时,可以通过其他模拟海流APP进行外部漂移的计算,以此来对AUV在海流中行进状态进行模拟。

1.External X-Y Drift from Initial Simulator Configuration


在进行外部漂移设置时,可以通过设置参数:drift_x、drift_y来对坐标漂移进行设置,或者通过设置drift_vecor同时进行设置。

2.External X-Y Drift from Initial Simulator Configuration

关于海流漂移的uSIM订阅变量如下:
DRIFT X, DRIFT Y, DRIFT VECTOR,这三个变量可以对漂移大小进行设置
DRIFT VECTOR ADD:在当前漂移向量的基础上增加漂移量,下面是一段模拟风对AUV影响的脚本

DRIFT VECTOR MULT:该值对漂移的向量进行乘法,为2时,漂移向量增加2倍,为-1时向量方向反向

这些接口可以在 uTimerScript脚本中写,或者由其他模拟海流或者气流的MOOAapp来进行发布。

二、The ThrustMap Data Structure

推力图是一种数据结构,其主要目的是用来模拟推力和速度之间的关系。这是在uSimMarine配置块中配置的,推力映射参数包含逗号分隔的冒号分隔对列表。分隔列表中的每个元素都是一个映射组件。在每个组件中,冒号左边的值是推力值,另一个值是相应的速度。下面是一个以字符串形式给出的示例映射,并在下图中呈现。

1.Automatic Pruning of Invalid Configuration Pairs

推力图的域为【-100,+100】之间,整个推力映射设置是需要由小到大逐步递增。
设置格式如下:

thrust_map = -120:-5, -100:-3.5, -75:-3.2, -10:-2, 20:2.4, 50:4.2, 80:4.8, 100:5.0, 120:6
thrust_map = -100:-3.5, -75:-3.2, -10:-2, 20:2.4, 50:4.2, 80:4.8, 90:4, 100:5.0
thrust_map = -100:-3.5, -75:-3.2, -10:-2, 0:0, 20:2.4, 50:4.2, 80:4.8, 100:5.0
thrust_map = -100:-3.5, -75:-3.2, -10:-2, 0:1, 20:2.4, 50:4.2, 80:4.8, 100:5.0

对于第一种情况,对“-120:-5”和“120:6”将被忽略,因为它们在
(100−100)域。
在第二种情况下,对“90:4”将被忽略,因为它的包含将导致给定前一对“80:4.8”的非单调映射。
在第三种情况下,“0:0”将被有效地忽略,因为它隐含在所有的地图配置中。
在第四种情况下,pair“0:1”将被忽略,因为不允许从非零速度映射到零推力

2.Automatic Inclusion of Implied Configuration Pairs

译文:由于域[−100,100]是不可变的,当或如果用户提供没有明确映射−100或100推力值的配置时,推力映射会自动更改一点。在这种情况下,缺失的映射变为隐含映射。
代码如下:

thrust_map = -75:-3.2, -10:-2, 20:2.4, 50:4.2, 80:4.8
thrust_map = -100:-3.2, -75:-3.2, -10:-2, 20:2.4, 50:4.2, 80:4.8, 100:4.8

下面给一段关于添加推力图对的源码:

bool ThrustMap::addPair(double thrust, double speed)
{if((thrust < m_min_thrust) || (thrust > m_max_thrust)) {m_figlog.addWarning("Thrust Out of Range:" + doubleToString(thrust));return(false);}//超过范围不予记录,并发出讲稿if(thrust > 0) {if(speed >= 0) {map<double, double> new_pos_mapping = m_pos_mapping;//按照map double对的形式来对变量对进行存储new_pos_mapping[thrust] = speed;if(isAscendingMap(new_pos_mapping))m_pos_mapping = new_pos_mapping;else {m_figlog.addError("Non-Ascending pair rejected: ");m_figlog.augError(doubleToStringX(thrust));m_figlog.augError(":" + doubleToStringX(speed));return(false);}}else {//    不合逻辑的情况,推力大于0,速度小于0m_figlog.addError("Mapping negative speed to positive thrust: ");m_figlog.augError(doubleToStringX(thrust)+":");m_figlog.augError(doubleToStringX(speed));return(false);}}else if(thrust < 0) {if(speed <= 0) {map<double, double> new_neg_mapping = m_neg_mapping;new_neg_mapping[thrust] = speed;if(isAscendingMap(new_neg_mapping))m_neg_mapping = new_neg_mapping;else {m_figlog.addError("Non-Ascending pair rejected: ");m_figlog.augError(doubleToStringX(thrust));m_figlog.augError(":" + doubleToStringX(speed));return(false);}}else {m_figlog.addError("Mapping positive speed to negative thrust: ");m_figlog.augError(doubleToStringX(thrust)+":");m_figlog.augError(doubleToStringX(speed));return(false);}}else if((thrust == 0) && (speed != 0)) {m_figlog.addError("Mapping a non-zero speed to zero-thrust: ");m_figlog.augError(doubleToStringX(speed));return(false);}return(true);
}

总结

采用了两小节的篇幅,基本上将MOOS中的仿真模型部分解释清楚了,其优点在于方程非常直观易懂,每一个变量的在公式中的作用都解释的比较清楚,而且在一定程度上算是比较符合实际,但是也同样有一定的问题,比如:模型精度上肯定是远远不能和运动学动力学方程去比较。
如果要精细建模的话,建议在该方程基础上加入自己的模型去进行仿真,或者去进行模型预测等等。

MOOS程序解析记录(6)uSimMarine解析2相关推荐

  1. DNS服务器(DNS服务器构建,特殊的解析记录,多域名DNS服务器架构,DNF主从架构,DNS主从数据同步)

    学前提示: 需要两台虚拟机 虚拟机A:主机名位svr7 IP:192.168.4.7 虚拟机B:主机名pc207 IP:192.168.207 一.进行环境的设置 1.修改两台虚拟机的SELinux ...

  2. 域名申请·多域名SSL证书申请·SSL证书认证流程·CAA解析记录添加

    环境:VPS:CentOS8 1.申请域名 通过阿里云申请一个域名就好,博主申请了个人域名.top,第一年6元 2.添加一条IPV4的DNS解析记录 阿里云-控制台-域名解析-解析设置-添加新纪录 这 ...

  3. MOOS程序解析记录(6)pLogger

    MOOS程序解析记录(6)pLogger 最近在使用数据记录的时候,发现了自己对于PLogger并不是很熟悉,很多语法规则并不是很懂,于是便升起了记录一下该模块的心思,虽然这个模块并不能算多重要,但是 ...

  4. MOOS程序解析记录(7)pMarinePID解析

    MOOS程序解析记录(7)pMarinePID解析 花了一天多的时间,对pMarinePID的源码进行了阅读,这里做一个分析记录,为后面改进控制算法做好基础. 前言 pMarinePID应用程序实现了 ...

  5. MOOS程序解析记录(1)

    系列文章目录 我将自己学习MOOS程序中的一些记录记载到这里 文章目录 系列文章目录 前言 一.C enum(枚举) 二.std::vector 1.vector 2.容器特性 3.基本函数实现 三. ...

  6. GPS使用记录NMEA数据解析、RTK定位以及ntrip协议

    目录 1. 概述 2. 泰斗GPS定位模组 3. RTK GPS定位 4. ntrip协议 5. 千寻 1. 概述 本文主要是记录下GPS相关的内容.最开始叫做<泰斗GPS使用记录>,那时 ...

  7. 动态更新阿里云DDNS解析记录的IPv6地址,随时随地用域名远程访问自己的电脑【如何远程访问家里的电脑】

    远程访问电脑 日志 简介 要求 1. 获取两台电脑 2.IPv6网络 2.1检查光猫 2.2检查路由器 2.3配置电脑防火墙 2.3.1添加ICMPv6协议 2.3.2配置SMB协议 2.4配置远程桌 ...

  8. 【Python文本处理】基于运动路线记录GPX文件解析,心率、速度、时间、功率、踏频、海拔等参数的生成和更改,以及GPX循环拼接

    [Python文本处理]基于运动路线记录GPX文件解析,心率.速度.时间.功率.踏频.海拔等参数的生成和更改,以及GPX循环拼接 GPX文件本身其实就是坐标.海拔.时间.心率等综合性的xml文件 如图 ...

  9. 冯诺依曼计算机程序及其执行,第4章冯.诺依曼计算机:机器级程序与其执行练习题答案解析...

    第4章冯.诺依曼计算机:机器级程序与其执行练习题答案解析 (20页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 14.9 积分 第 4 章 冯.诺依曼计算 ...

最新文章

  1. oracle dataguard 日志 很多no,oracle dataguard 日志传输原理
  2. PHP设计模式系列 - 解释器模式
  3. java workerdone_【架构】Java并发编程——线程池的使用
  4. 【design pattern】工厂方法模式和抽象工厂模式
  5. WriteFile API简介
  6. JSONObject 与 JSONArray 使用
  7. laravel 图片
  8. ButterKnife View 注入
  9. UIPickView的基本使用
  10. 20. Valid Parentheses[E]有效的括号
  11. 视频教程-IP地址划分(CCNA魔鬼训练营系列)-思科认证
  12. 松下PLC项目实例,两台CPU间通过RS485通讯,10轴定位控制
  13. QQ音乐api 最新版,亲测可用
  14. 微信小程序背景图片设置问题
  15. WebRTC源码架构浅析
  16. 解决build.gradle文件报错No candidates found for method call xxxxxxx
  17. 下面关于在dos停止mysql_下面关于在DOS停止MySql的命令中,正确的是 (5.0分)_学小易找答案...
  18. 101.新拟物渐变加载特效
  19. 搜索引擎lucene点滴
  20. 美国哪些公司实习生工资高?Facebook每月给5万5

热门文章

  1. [2019蓝桥杯国赛B组c++][最优包含][排列数][解谜游戏][第八大奇迹]
  2. Linux基础 Day02
  3. js中singleton模式解析及运用
  4. 如何下载完整的ie6sp1
  5. 你是我最想要的朋友——《天高地厚》
  6. 【Linux】入门介绍
  7. 【历史上的今天】12 月 14 日:计算复杂性理论先驱出生;雅虎群组被关闭;W3C 召开第一次会议
  8. 由于Windows无法加载这个设备所需要的驱动设备,导致这个设备工作异常(代码31)VMware Virtual Ethernet Adapter for VMnet1 or VMnet8
  9. DD-WRT 的优点
  10. 红旗linux中科红旗发布Linux7.0 RC1桌面版操作系统