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

news2024/11/26 10:49:55

🎯要点

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

🍪语言内容分比

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

🍇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.coloradmin.cn/o/1903756.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【漏洞复现】宏景eHR LoadOtherTreeServlet SQL注入漏洞

0x01 产品简介 宏景eHR人力资源管理软件是一款人力资源管理与数字化应用相融合,满足动态化、协同化、流程化、战略化需求的软件。 0x02 漏洞概述 宏景eHR LoadOtherTreeServlet接口处存在SQL注入漏洞,未经身份验证的远程攻击者除了可以利用 SQL 注入漏…

[Multi-Modal] MDETR 论文及代码学习笔记

代码地址:https://github.com/ashkamath/mdetr 论文地址:https://arxiv.org/abs/2104.12763 多模态推理系统依靠预先训练的目标检测器从图像中提取感兴趣区域(边界框包围区域)。然而,这个关键模块通常被用作黑匣子&…

MySQL高级----详细介绍MySQL中的锁

概述 锁是计算机协调多个进程或线程并发访问某一资源的机制,为了解决数据访问的一致性和有效性问题。在数据库中,除传统的计算资源(CPU、RAN、I/O)的争用以外,数据也是一种供许多用户共享的资源。如何保证数据并发访问的一致性、…

windows无法访问github

##一、如果发现windows无法访问github时 一般就是我们的dns出现了问题,此时我们需要更换一个dns访问 ##二、解决方法 首先我们访问ip查询地址, https://ipchaxun.com/github.com/ 可更换下面历史ip进行测试,在windows的cmd里面输入ping git…

【C++深度探索】:继承(定义赋值兼容转换作用域派生类的默认成员函数)

✨ 愿随夫子天坛上,闲与仙人扫落花 🌏 📃个人主页:island1314 🔥个人专栏:C学习 🚀 欢迎关注:👍点赞…

pin是什么?管脚

1.平面分割 1)启动Allegro PCB design ,打开.brd。深色部分属于一个net,要做一下修改,将上面的pin包含进shape中,i进行a,b两步操作,删除以前存在的Anti Etch下的line,再将其进行补齐 使它保住上…

MSPM0G3507——OPENMV给M0传数据(用数据包)互相通信(以循迹为例)

OPENMV端代码 # main.py -- put your code here! import pyb, sensor, image, math, time from pyb import UART import ustruct from image import SEARCH_DS, SEARCH_EX import time import sensor, displayuart UART(3, 115200, bits8, parityNone, stop1, timeout_char10…

Pogo-DroneCANPWM模块:可实现DroneCAN转PWM,DroneCAN转dshot,DroneCAN转bdshot

关键词:Ardupilot,Pixhawk,PWM,dshot,bdshot,DroneCANPWM,电调ESC,DroneCAN,UAVCAN,飞控,无人机,UAV Keywords:Ardupilot…

Xilinx FPGA:vivado串口输入输出控制fifo中的数据

一、实验要求 实现同步FIFO回环测试,通过串口产生数据,写入到FIFO内部,当检测到按键信号到来,将FIFO里面的数据依次读出。 二、信号流向图 三、状态转换图 四、程序设计 (1)按键消抖模块 timescale 1ns…

Python编程学习笔记(1)--- 变量和简单数据类型

1、变量 在学习编程语言之前,所接触的第一个程序,绝大多数都是: print("Hello world!") 接下来尝试使用一个变量。在代码中的开头添加一行代码,并对第二行代码进行修改,如下: message "…

Github 2024-07-07php开源项目日报 Top9

根据Github Trendings的统计,今日(2024-07-07统计)共有9个项目上榜。根据开发语言中项目的数量,汇总情况如下: 开发语言项目数量PHP项目9Blade项目2JavaScript项目1Laravel:表达力和优雅的 Web 应用程序框架 创建周期:4631 天开发语言:PHP, BladeStar数量:75969 个Fork数…

什么时候考虑将mysql数据迁移到ES?

文章目录 对ES的一些疑问问题1:ES相比mysql本身有哪些优势?问题2:哪些场景适合用ES而不是mysql?问题3:mysql逐行扫描,根据过滤条件检查记录中对应字段是否满足要求属于正排索引,根据二叉树索引检索记录的方式属于正排索引还是倒排…

LeetCode 189.轮转数组 三段逆置 C写法

LeetCode 189.轮转数组 C写法 三段逆置 思路: 三段逆置方法:先逆置前n-k个 再逆置后k个 最后整体逆置 由示例1得,需要先逆置1,2,3,4 再逆置5,6,7,最后前n-k个与后k个逆置 代码 void reverse(int*num, int left, int right) //逆置函数 { while(left …

XLSX + LuckySheet + LuckyExcel + Web Worker实现前端的excel预览

文章目录 功能简介简单代码实现web worker 版本效果参考 功能简介 通过LuckyExcel的transformExcelToLucky方法, 我们可以把一个文件直接转成LuckySheet需要的json字符串, 之后我们就可以用LuckySheet预览excelLuckyExcel只能解析xlsx格式的excel文件&a…

mac|idea导入通义灵码插件

官方教程:通义灵码下载安装指南_智能编码助手_AI编程_云效(Apsara Devops)-阿里云帮助中心 下载插件: ⇩ TONGYI Lingma - JetBrains 结果如下: 选择apply、ok,会出现弹窗,点击登录 可以实现:生成单元测…

SQL Server特性

一、创建表 在sql server中使用create table来创建新表。 create table Customers( id int primary key identity(1,1), name varchar(5) ) 该表名为Customers其中包含了2个字段,分别为id(主键)以及name。 1、数据类型 整数类型&#xff…

【TB作品】51单片机 Proteus仿真 00002仿真-智能台灯色调倒计时光强

实验报告:基于51单片机的智能台灯控制系统 背景 本实验旨在设计一个基于51单片机的智能台灯控制系统,该系统可以通过按键进行手动控制,并能根据环境光强度自动调节台灯亮度。此外,系统还具备倒计时关灯功能。 器件连接 51单片…

latex英文转中文word,及一些latex相关工具分享

前言:想要转换latex生成的英文pdf文件为中文word文件 一、主要步骤 1、文字翻译:直接使用谷歌翻译等辅助将英文翻译成中文即可; 2、图片: 使用latex时一般保存的.png,.bmp格式图片可以直接插入word, 但是.eps或者 .p…

期末成绩发布方式

期末考试结束后,成绩单的发放总是让老师们头疼不已。想象一下,每个学生的成绩都需要老师一个个私信给家长,不仅耗时耗力,而且极易出错。 在传统的成绩单发放方式中,老师往往需要通过电子邮件、短信或者微信等方式&…

使用Keil将STM32部分程序放在RAM中运行

手动分配RAM区域,新建.sct文件,定义RAM_CODE区域,并指定其正确的起始地址和大小。 ; ************************************************************* ; *** Scatter-Loading Description File generated by uVision *** ; ************************************************…