Python视觉轨迹几何惯性单元超维计算结构算法

🎯要点

🎯视觉轨迹几何惯性单元超维计算结构算法 | 🎯超维计算结构视觉场景理解 | 🎯超维计算结构算法解瑞文矩阵 | 🎯超维矢量计算递归神经算法

🍪语言内容分比

在这里插入图片描述
在这里插入图片描述

🍇Python蒙特卡罗惯性导航

蒙特卡罗方法,或蒙特卡罗实验,是一类广泛的计算算法,依靠重复随机抽样来获得数值结果。其基本概念是利用随机性来解决原则上可能确定的问题。蒙特卡罗方法主要用于三类不同的问题:优化、数值积分和从概率分布生成抽样。它们还可用于对输入具有很大不确定性的现象进行建模,例如计算核电站故障的风险。蒙特卡罗方法通常使用计算机模拟来实现,它们可以为难以解决或过于复杂而无法进行数学分析的问题提供近似解。

蒙特卡罗方法广泛应用于科学、工程和数学的各个领域,例如物理学、化学、生物学、统计学、人工智能、金融和密码学。它们还被应用于社会科学,例如社会学、心理学和政治学。蒙特卡罗方法被公认为 20 世纪最重要和最具影响力的思想之一,并促成了许多科学和技术突破。

蒙特卡罗方法也存在一些局限性和挑战,例如精度和计算成本之间的权衡、维数灾难、随机数生成器的可靠性以及结果的验证和确认。

蒙特卡罗方法各不相同,但往往遵循特定的模式:

  • 定义可能输入的域

  • 根据域上的概率分布随机生成输入

  • 对输出执行确定性计算

  • 汇总结果

蒙特卡罗仿真验证惯性导航卡尔曼滤波器的性能:

  • 设置建模轨迹、理想测量值和误差统计参数
  • 根据模型应用独立随机误差,执行过滤器 N 次。记录滤波器的估计参数误差和预测标准偏差
  • 计算误差的均方根值,并将其与滤波器的标准偏差进行比较。计算出的均方根值必须与标准偏差值非常一致

请注意,均方根值的方差大约下降为 1 / N 1 / N 1/N (其 标准偏差为 1 / N 1 / \sqrt{N} 1/N ​ )。这意味着获得低方差可能需要多次重复。

为简单起见,我们将使用由循环和平均运动组成的合成轨迹。

import numpy as np
import matplotlib.pyplot as plt

plt.rcParams['figure.figsize'] = (10, 6)
plt.rcParams['axes.grid'] = True
plt.rcParams['font.size'] = 12
trajectory_true, imu_true = pyx.sim.generate_sine_velocity_motion(
    0.05, 600.0, [58, 56, 0], [10.0, -10.0, -1.0], 
    velocity_change_amplitude=60.0, velocity_change_period=30)

让我们想象一下东西向平面上的轨迹。

ned = pyx.transform.lla_to_ned(trajectory_true)

plt.plot(ned.east, ned.north)
plt.xlabel("East, m")
plt.ylabel("North, m")
plt.axis('equal');

这样的轨迹允许陀螺仪比例因子和 Z 轴的未对准估计(因为围绕它有足够的旋转)。

现在让我们定义误差和噪声参数。 初始位置-速度-姿态误差标准差:

initial_position_sd = 10.0
initival_velocity_sd = 0.3
initial_level_sd = 0.1
initial_azimuth_sd = 0.5

对于惯性单元,我们采用中级微机电系统传感器。我们对陀螺仪 Z 轴的初始偏差、噪声、未对准和比例误差进行建模。

📜微机电系统用例:Python和MATLAB微机电健康推导算法和系统模拟优化设计

gyro_model = pyx.inertial_sensor.EstimationModel(
    bias_sd=100.0 * pyx.transform.DH_TO_RS, 
    noise=1.0 * pyx.transform.DRH_TO_RRS,
    bias_walk=10.0 * pyx.transform.DH_TO_RS / 60,
    scale_misal_sd=[[0, 0, 0.01], 
                    [0, 0, 0.01], 
                    [0, 0, 0.01]])

accel_model = pyx.inertial_sensor.EstimationModel(
    bias_sd=0.05,
    noise=0.1 / 60,
    bias_walk=0.001 / 60
)

作为外部测量,我们使用具有以下参数的 GNSS 定位:

gnss_period = 1
gnss_position_sd = 2

为了以更可靠的方式表示代码,让我们编写执行单次运行和完整模拟的函数。

def run_single(trajectory_true, imu_true, gnss_lla_true,
               gyro_model, accel_model, 
               position_sd, velocity_sd, level_sd, azimuth_sd, 
               gnss_position_sd, filter_time_step, rng):
    gyro_parameters = pyx.inertial_sensor.Parameters.from_EstimationModel(gyro_model, rng=rng)
    accel_parameters = pyx.inertial_sensor.Parameters.from_EstimationModel(accel_model, rng=rng)
    
    imu = pyx.inertial_sensor.apply_imu_parameters(imu_true, 'rate', gyro_parameters, accel_parameters)
    increments = pyx.strapdown.compute_increments_from_imu(imu, 'rate')
    
    gnss_measurement = pyx.measurements.Position(
        pyx.sim.generate_position_measurements(gnss_lla_true, gnss_position_sd, rng), 
        gnss_position_sd)
    
    pva_error = pyx.sim.generate_pva_error(position_sd, velocity_sd, level_sd, azimuth_sd, rng=rng)
    pva_initial = pyx.sim.perturb_pva(trajectory_true.iloc[0], pva_error)
    
    filter_result = pyx.filters.run_feedback_filter(
        pva_initial, position_sd, velocity_sd, level_sd, azimuth_sd,
        increments, gyro_model, accel_model, 
        measurements=[gnss_measurement], time_step=filter_time_step)
        
    return pyx.util.Bunch(
        trajectory=pyx.transform.compute_state_difference(filter_result.trajectory, trajectory_true),
        gyro=pyx.transform.compute_state_difference(filter_result.gyro, gyro_parameters.data_frame),
        accel=pyx.transform.compute_state_difference(filter_result.accel, accel_parameters.data_frame),
        trajectory_sd=filter_result.trajectory_sd,
        gyro_sd=filter_result.gyro_sd,
        accel_sd=filter_result.accel_sd
    )

👉参阅&更新:计算思维 | 亚图跨际

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【感谢告知】本账号内容调整,聚焦于Google账号和产品的使用经验和问题案例分析

亲爱的各位朋友: 感谢您对本账号的关注和支持! 基于对朋友们需求的分析和个人兴趣的转变,该账号从今天将对内容做一些调整,有原来的内容改为Google(谷歌)账号和产品的使用经验,以及相关问题的…

LeetCode 744, 49, 207

目录 744. 寻找比目标字母大的最小字母题目链接标签思路代码 49. 字母异位词分组题目链接标签思路代码 207. 课程表题目链接标签思路代码 744. 寻找比目标字母大的最小字母 题目链接 744. 寻找比目标字母大的最小字母 标签 数组 二分查找 思路 本题比 基础二分查找 难的一…

《python程序语言设计》2018版第5章第53题利用turtle绘制sin和cos函数 sin蓝色,cos红色和52题类似

直接上题和代码 5.53 (Turtle:绘制sin和cos函数)编写程序绘制蓝色的sin函数和红色的cos函数。 代码和结果 turtle.speed(10) turtle.penup() # sin 用蓝色 turtle.color("blue") #这道题和上道题一样,先把turtle放到起始…

pandas读取CSV格式文件生成数据发生器iteration

背景 数据集标签为csv文件格式,有三个字段column_hander [‘id’, ‘boneage’, ‘male’],需要自己定义数据集。文件较大,做一个数据发生器迭代更新数据集。 实现模板 在Pandas中,可以使用pandas.read_csv函数读取CSV文件&…

官网首屏:激发你的小宇宙和第六感,为了漂亮,干就完了。

官网的首屏是指用户打开网站后首先看到的页面,通常是整个网站最重要的一部分。首屏的设计和内容对于吸引用户的注意力、传达品牌形象和价值、促使用户继续浏览和进行交互非常关键。以下是官网首屏的重要性的几个方面: 1. 第一印象: 首屏是用…

Redis官方可视化管理工具

版权声明 本文原创作者:谷哥的小弟作者博客地址:http://blog.csdn.net/lfdfhl RedisInsight是一个Redis可视化工具,提供设计、开发和优化 Redis 应用程序的功能。RedisInsight分为免费的社区版和一个付费的企业版,免费版具有基本…

文心一言 VS 讯飞星火 VS chatgpt (297)-- 算法导论22.1 1题

一、给定有向图的邻接链表,需要多长时间才能计算出每个结点的出度(发出的边的条数)?多长时间才能计算出每个结点的入度(进入的边的条数)?如果要写代码,请用go语言。 文心一言: 计算出度 对于有向图的邻接链表表示&a…

C++ 引用——常量引用

作用:常量引用主要用来修饰形参,防止误操作 在函数形参列表中,可以加const修饰形参,防止形参改变实参 示例: 运行结果:

【Linux】进程优先级 + 环境变量

前言 在了解进程状态之后,本章我们将来学习一下进程优先级,还有环境变量等。。 目录 1.进程优先级1.1 为什么要有优先级? 2.进程的其他概念2.1 竞争性与独立性2.2 并行与并发2.3 进程间优先级的体现:2.3.1 O(1) 调度算法&#xf…

202406 CCF-GESP Python 四级试题及详细答案注释

202406 CCF-GESP Python 四级试题及详细答案注释 1 单选题(每题 2 分,共 30 分)第 1 题 小杨父母带他到某培训机构给他报名参加CCF组织的GESP认证考试的第1级,那他可以选择的认证语言有几种?( ) A. 1 B. 2 C. 3 D. 4答案:C解析:目前CCF组织的GESP认证考试有C++、Pyth…

Element中的表格组件Table和分页组件Pagination

简述:在 Element UI 中,Table组件是一个功能强大的数据展示工具,用于呈现结构化的数据列表。它提供了丰富的特性,使得数据展示不仅美观而且高效。而Pagination组件是一个用于实现数据分页显示的强大工具。它允许用户在大量数据中导…

【OJ】运行时错误(Runtime Error)导致递归爆栈问题

在进行OJ赛时, 题目:给你一个整数n,问最多能将其分解为多少质数的和。在第一行输出最多的质数数量k,下一行输出k个整数,为这些质数。 出现运行时错误 代码如下: def main():# code heren int(eval(input()))list …

RabbitMQ中常用的三种交换机【Fanout、Direct、Topic】

目录 1、引入 2、Fanout交换机 案例:利用SpringAMQP演示Fanout交换机的使用 3、Direct交换机 案例:利用SpringAMQP演示Direct交换机的使用 4、Topic交换机 案例:利用SpringAMQP演示Topic交换机的使用 1、引入 真实的生产环境都会经过e…

Apache Seata分布式事务原理解析探秘

本文来自 Apache Seata官方文档,欢迎访问官网,查看更多深度文章。 本文来自 Apache Seata官方文档,欢迎访问官网,查看更多深度文章。 前言 fescar发布已有时日,分布式事务一直是业界备受关注的领域,fesca…

【Mysql】记录MySQL中常见的错误代码及可能原因

希望文章能给到你启发和灵感~ 如果觉得文章对你有帮助的话,点赞 关注 收藏 支持一下博主吧~ 阅读指南 开篇说明一、基础环境说明1.1 硬件环境1.2 软件环境 二、常见的问题2.1 连接和认证相关2.2 权限相关2.3 表和数据操作相关2.4 资源限制和…

我使用HarmonyOs Next开发了b站的首页

1.实现效果展示: 2.图标准备 我使用的是iconfont图标,下面为项目中所使用到的图标 3. 代码 (1)Index.ets: import {InfoTop} from ../component/InfoTop import {InfoCenter} from ../component/InfoCenter import…

文章解读与仿真程序复现思路——太阳能学报EI\CSCD\北大核心《计及电-热-氢负荷与动态重构的主动配电网优化调度》

本专栏栏目提供文章与程序复现思路,具体已有的论文与论文源程序可翻阅本博主免费的专栏栏目《论文与完整程序》 论文与完整源程序_电网论文源程序的博客-CSDN博客https://blog.csdn.net/liang674027206/category_12531414.html 电网论文源程序-CSDN博客电网论文源…

Linux 搭建 Kafka 环境 - 详细教程

目录 一. Kafka介绍 1. 应用场景 2. 版本对比 二. Kafka安装 1. 前置环境 (1)安装JDK 2. 软件安装 (3)环境变量配置 (3)服务启动 三. Console测试 基础命令 (1)列出Kafk…

PLC电源模块

PM电源模块 为CPU信号模块及 其他的扩展设备、其他用电设备(如传感器)提供工作供电 接线和开关 状态显示 灯的闪烁示意看手册 PS电源模块 为CPU信号模块及其他的扩展设备提供工作供电。PS(System Power Supply) 外形与PM电源模块类似,状…

PLC【搭建服务端】

PLC搭建服务端 文章目录 PLC搭建服务端前言一、搭建PLC服务器二、打开ModSean32获取数据总结 前言 使用博图V16编写PLC搭建服务器,使用 ModSean32 读取其中数据 一、搭建PLC服务器 打开博图V16点击项目进行新建,编辑好项目名称、及项目路径&#xff0c…