当前位置: 首页 > news >正文

惯性导航 | 运动学---运动模型

惯性导航 | 运动学---运动模型

  • IMU系统的运动学

IMU系统的运动学

惯性测量单元(IMU)已经非常普及了。我们在绝大多数电子设备中都能找到IMU:车辆、手机、手表、头盔,甚至足球当中都内置了IMU。它们的体积很小,安装在设备内部,可以提供有效的局部运动估计,实现一些有趣的功能。在自动驾驶中,惯性导航器件也是十分基础的定位装置。惯性导航提供的定位效果基本与外部环境和其它传感器数据无关,具有很高的泛用性和可靠性。

典型的六轴IMU由陀螺仪(Gyroscope)和加速度计(Accelerator)组成。虽然它们测量的目标都是物体的惯性,但其实现手段非常多样,从低成本的MEMS(Micro-electromechanical Systems,微0087机电)惯性导航到昂贵的光纤陀螺,它们的作用都是精确的测量物体的惯性。
在这里插入图片描述

IMU通常安装在一个运动的系统中。通过测量运动载体的惯性,推断物体本身的状态。这些与惯性相关的物理量通常不是直接的位置和旋转,而是微分之后的物理量。IMU的陀螺仪可以测量物体的角速度,而加速度计可以测量物体的加速度。它们内部可以根据受力或者时间等其它物理量来推算角速度和加速度,但从外部来看,只需要关心它们对角速度和加速度的测量是否精确,以及这些量和车辆位置、姿态之间的关系

根据运动学,可以把连续时间的运动方程列出来。
R ˙ = R ω ∧ 或 q ˙ = 1 2 q ω p ˙ = v v ˙ = a \begin{matrix} \dot{R} =R\omega^{\wedge }或 \dot{q} =\frac{1}{2} q\omega \\ \dot{p} =v \\ \dot{v} =a \end{matrix} R˙=Rωq˙=21qωp˙=vv˙=a

其中旋转部分既可以用旋转矩阵表示,也可以用四元数来表示。

在不考虑地球自转时,也可以简单的将大地视为固定的世界坐标系。这时IMU的测量值 ω ~ \tilde{\omega } ω~ , a ~ \tilde{a} a~,就是车辆本身的角速度,以及车体坐标系下的加速度:
a ~ = R T a ω ~ = ω \begin{matrix} \tilde{a} =R^{T} a \\ \tilde{\omega } =\omega \end{matrix} a~=RTaω~=ω

注意 R T R^{T} RT 带下标之后就是 R b w R_{bw} Rbw。它将世界坐标系下的物理量转换到车体坐标系。

实际的车辆或者机器人都在地球表面运行。这些系统受到重力的影响,所以应该把重力写在系统方程中。在绝大多数IMU系统中,可以忽略地球自转影响,从而把IMU测量值写成:
a ~ = R T ( a − g ) ω ~ = ω \begin{matrix} \tilde{a} =R^{T} (a-g) \\ \tilde{\omega } =\omega \end{matrix} a~=RTagω~=ω

g为地球的重力。当前如果在无重力环境下测量物体的加速度,就不会出现重力项。
注意,这里g的符合和坐标系定义相关,我们的车体坐标系和世界坐标系都是Z轴向上,于是g通常取值 ( 0 , 0 , − 9.8 ) T (0,0,-9.8)^T (0,0,9.8)T,按照如上坐标系定义,测量方程中应该为a-g。

为了便于理解,可以试着想象一个水平放置的IMU。

假设IMU静止,由于物体加速度的测量实际上是通过测量受力情况得到的,这个IMU应该受到一个反向的支撑力,所以应该测到一个-g方向的重力。
如果把IMU颠倒过来, R T R^{T} RT 就发生了改变,也可以读取到正的重力g。
如果IMU在空中做自由落体运动,那么传感器本身将测不到外力影响,此时a-g=0,加速度计应该输出一个零测量值。

前面的惯导测量值的方程是在无噪声的情况下列写的。如果想要写一个仿真系统,那么可以用这种不带噪声模型的方程。不过实际的IMU测量值通常都带有噪声,因此我们要考虑噪声的影响。

注意另一种情况:如果不把IMU放在车辆中心,当车辆方式旋转和平移时,IMU还应该测量到由车辆旋转导致的离心力、科氏力和角加速度,最后体现在加速度计的读数上。有些车辆还存在各种机械减震,如悬挂系统、车辆本身的运动部件,它们也会影响IMU的读数。
因此完整的方程还应该加如这些项,但是将这些小项全部写到后面的状态估计方程中,势必使得方程变得冗长。
一方面这些读数本身是小量;另一方面,可以通过尽量保证IMU的安装位置在车辆中心,避免由于IMU与载体不重合引来的问题。

相关文章:

惯性导航 | 运动学---运动模型

惯性导航 | 运动学---运动模型 IMU系统的运动学 IMU系统的运动学 惯性测量单元(IMU)已经非常普及了。我们在绝大多数电子设备中都能找到IMU:车辆、手机、手表、头盔,甚至足球当中都内置了IMU。它们的体积很小,安装在设…...

Java Web(十一)--JSON Ajax

JSON JSon在线文档: JSON 简介 JSON(JavaScript Object Notation, JS 对象标记) 是一种轻量级的数据交换格式。轻量级指的是跟xml做比较。数据交换指的是客户端和服务器之间业务数据的传递格式。 它基于 ECMAScript (W3C制定的JS规范)的一个子集,采…...

GL/gl.h: No such file or directory(CentOS8 QT5.12.12)

1.问题描述 新建的QT工程,出现如下问题: GL/gl.h: No such file or directory 2.原因分析 centos系统里面缺少opengl库 3.解决方法 运行命令: yum install mesa-libGL -devel -y...

【外设篇】-显示器

显示屏是一种电光转换工具,现在市面上的显示器都是LCD(Liquid Crystal Display,液晶显示器) 显示器参数介绍 对比度 是指画面黑与白的比值,对比度越高能使色彩表现越丰富,对比度越高,显示器的…...

可视化图文报表

Apache Echarts介绍 Apache Echarts是一款基于Javascript的数据可视化图表库&#xff0c;提供直观&#xff0c;生动&#xff0c;可交互&#xff0c;可个性化定制的数据可视化图表。 官网&#xff1a;Apache ECharts 入门案例&#xff1a; <!DOCTYPE html> <html>…...

CW023A-H035 CW023A-R230铜合金硬度材质书

CW023A-H035 CW023A-R230铜合金硬度材质书C2100W-O、C2680TWS-OL、C2200W-1/2H、C2800TS-O 、C2800T-H、C2800T-1/2H、C2700TS-O、C4430T-O、C2700T-O、C2700T-H、C2700T-OL、C2800TS-1/2H、C2800T-OL、C2700-O、C2800TS-H、C2700-H、C2700T-1/2H、C2600TS-1/2H、C2700-1/2H、C…...

Ribbon负载均衡:提升应用性能与可靠性的秘密武器(一)

本系列文章简介&#xff1a; 本系列文章将深入探讨Ribbon负载均衡的工作原理、应用场景和实践经验&#xff0c;帮助大家更好地理解和应用这一强大的技术。通过合理配置和优化Ribbon负载均衡&#xff0c;您可以为您的应用带来更高的性能和可靠性&#xff0c;从而获得竞争优势并满…...

python递归算法

递归算法 一、嵌套调用的过程二、递归的基本原则1、递归的基本原则2、无限递归调用3、正常递归调用4、阶乘问题5、力扣&#xff1a;231. 2 的幂6、力扣面试题 08.05. 递归乘法7、力扣、326. 3 的幂8、力扣342. 4的幂 一、嵌套调用的过程 def show1():print("show 1 run s…...

azure devops工具实践分析

对azure devops此工具的功能深挖&#xff0c;结合jira的使用经验的分析 1、在backlog的功能描述&#xff0c;可理解为需求项&#xff0c;这里包括了bug&#xff0c;从开发的角度修复bug也是个工作项&#xff0c;所以需求的范围是真正的需求&#xff08;开发接收到的已经确认的…...

2024年2月19日-2月25日(全面进行+收集免费虚幻商城资源,20小时,合计2561小时,剩余7439小时)

试试周一到周五重点进行&#xff0c;周末抄写源码&#xff0c;周一晚上看书很快就在22&#xff1a;00睡着&#xff0c;早上可以看看视频教程&#xff0c;出租车上补觉。 执行如下&#xff1a; 周一&#xff1a; 8&#xff1a;01-9&#xff1a;20ue4 rpg&#xff08;184&#xf…...

Ubuntu制作本地安装源

Ubuntu制作本地安装源 应用场景离线安装包的制作&#xff08;可联网电脑&#xff09;更新源安装软件 生成依赖关系在另外一台Ubuntu上离线安装安装 使用deb http方式安装安装nginx更新ubuntu数据库&#xff0c;并安装应用 应用场景 当我们需要在多台电脑安装同一个软件,并且软…...

java springmvc/springboot 项目通过HttpServletRequest对象获取请求体body工具类

请求 测试接口 获取到的 获取到打印出的json字符串里有空格这些&#xff0c;在json解析的时候正常解析为json对象了。 工具类代码 import lombok.extern.slf4j.Slf4j; import org.springframework.web.context.request.RequestContextHolder; import org.springframework.we…...

新手怎么使用github?

GitHub新手使用指南&#xff0c;涵盖了从注册、创建仓库、版本控制基本操作到SSH密钥配置等关键步骤&#xff1a; 第一步&#xff1a;注册与登录 访问GitHub官方网站&#xff1a;https://github.com。点击页面右上角的"sign up"按钮开始注册账号。输入有效的电子邮…...

CSS_实现三角形和聊天气泡框

如何用css画出一个三角形 1、第一步 写一个正常的盒子模型&#xff0c;先给个正方形的div&#xff0c;便于观察&#xff0c;给div设置宽高和背景颜色 <body><div class"box"></div> </body> <style>.box {width: 100px;height: 100px…...

VPX基于全国产飞腾FT-2000+/64核+复旦微FPGA的计算刀片

6U VPX计算板 产品简介 产品特点 飞腾计算平台&#xff0c;国产化率100% VPX-MPU6902是一款基于飞腾FT-2000/64核的计算刀片&#xff0c;主频2.2GHz&#xff0c;负责业务数据流的管控和调度。搭配自带独立显示芯片的飞腾X100芯片&#xff0c;可用于于各类终端及服务器类应用场…...

ifcplusplus 示例 函数中英文 对照分析

有需求&#xff0c;需要分析 ifc c渲染&#xff0c;分析完&#xff0c;有 230个函数&#xff0c;才能完成一个加载&#xff0c;3d加载真的是大工程&#xff01; 函数中英文对照表&#xff0c;方便 日后开发&#xff0c;整理思路顺畅&#xff01;&#xff01;&#xff01;&#…...

天一个数据分析题(一百七十三)

聚类算法的主要应用场景是用户分群&#xff0c;聚类是一种无监督方法&#xff0c;以下哪个不是衡量聚类效果好坏的评估方法&#xff08;&#xff09;。 A. 轮廓系数 B. 平方根标准误差 C. ARI(调整的兰德系数) D. 相关系数 题目来源于CDA模拟题库 点击此处获取答案...

尚硅谷(SpringCloudAlibaba微服务分布式)学习代码Eureka部分

1.项目结构 2.cloud2024 pom <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0"xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation"http://maven.a…...

arm服务器上部署kibana

1.首先需要从elasticsearch对应的kibana版本(arm) ​​​​​​Download Kibana Free | Get Started Now | Elastic 注意:选平台时切勿选错,linux aarch64,并选择elasticsearch对应的历史版本 2.可以通过rz命令上传压缩包至 linux 服务器进行解压&#xff0c;存放路径建议和e…...

Redis之二:Redis 常用命令

Redis 命名不区分大小写 0.登录远程服务器 如果需要在远程 redis 服务上执行命令&#xff0c;同样我们使用的也是 redis-cli 命令。 语法 $ redis-cli -h host -p port -a password 获取配置信息&#xff1a; CONFIG GET CONFIG_SETTING_NAME 例&#xff1a; CONFIG GE…...

MFC内存泄露

1、泄露代码示例 void X::SetApplicationBtn() {CMFCRibbonApplicationButton* pBtn GetApplicationButton();// 获取 Ribbon Bar 指针// 创建自定义按钮CCustomRibbonAppButton* pCustomButton new CCustomRibbonAppButton();pCustomButton->SetImage(IDB_BITMAP_Jdp26)…...

Vue3 + Element Plus + TypeScript中el-transfer穿梭框组件使用详解及示例

使用详解 Element Plus 的 el-transfer 组件是一个强大的穿梭框组件&#xff0c;常用于在两个集合之间进行数据转移&#xff0c;如权限分配、数据选择等场景。下面我将详细介绍其用法并提供一个完整示例。 核心特性与用法 基本属性 v-model&#xff1a;绑定右侧列表的值&…...

【快手拥抱开源】通过快手团队开源的 KwaiCoder-AutoThink-preview 解锁大语言模型的潜力

引言&#xff1a; 在人工智能快速发展的浪潮中&#xff0c;快手Kwaipilot团队推出的 KwaiCoder-AutoThink-preview 具有里程碑意义——这是首个公开的AutoThink大语言模型&#xff08;LLM&#xff09;。该模型代表着该领域的重大突破&#xff0c;通过独特方式融合思考与非思考…...

10-Oracle 23 ai Vector Search 概述和参数

一、Oracle AI Vector Search 概述 企业和个人都在尝试各种AI&#xff0c;使用客户端或是内部自己搭建集成大模型的终端&#xff0c;加速与大型语言模型&#xff08;LLM&#xff09;的结合&#xff0c;同时使用检索增强生成&#xff08;Retrieval Augmented Generation &#…...

AGain DB和倍数增益的关系

我在设置一款索尼CMOS芯片时&#xff0c;Again增益0db变化为6DB&#xff0c;画面的变化只有2倍DN的增益&#xff0c;比如10变为20。 这与dB和线性增益的关系以及传感器处理流程有关。以下是具体原因分析&#xff1a; 1. dB与线性增益的换算关系 6dB对应的理论线性增益应为&…...

DingDing机器人群消息推送

文章目录 1 新建机器人2 API文档说明3 代码编写 1 新建机器人 点击群设置 下滑到群管理的机器人&#xff0c;点击进入 添加机器人 选择自定义Webhook服务 点击添加 设置安全设置&#xff0c;详见说明文档 成功后&#xff0c;记录Webhook 2 API文档说明 点击设置说明 查看自…...

C语言中提供的第三方库之哈希表实现

一. 简介 前面一篇文章简单学习了C语言中第三方库&#xff08;uthash库&#xff09;提供对哈希表的操作&#xff0c;文章如下&#xff1a; C语言中提供的第三方库uthash常用接口-CSDN博客 本文简单学习一下第三方库 uthash库对哈希表的操作。 二. uthash库哈希表操作示例 u…...

Sklearn 机器学习 缺失值处理 获取填充失值的统计值

💖亲爱的技术爱好者们,热烈欢迎来到 Kant2048 的博客!我是 Thomas Kant,很开心能在CSDN上与你们相遇~💖 本博客的精华专栏: 【自动化测试】 【测试经验】 【人工智能】 【Python】 使用 Scikit-learn 处理缺失值并提取填充统计信息的完整指南 在机器学习项目中,数据清…...

数据结构:泰勒展开式:霍纳法则(Horner‘s Rule)

目录 &#x1f50d; 若用递归计算每一项&#xff0c;会发生什么&#xff1f; Horners Rule&#xff08;霍纳法则&#xff09; 第一步&#xff1a;我们从最原始的泰勒公式出发 第二步&#xff1a;从形式上重新观察展开式 &#x1f31f; 第三步&#xff1a;引出霍纳法则&…...

【PX4飞控】mavros gps相关话题分析,经纬度海拔获取方法,卫星数锁定状态获取方法

使用 ROS1-Noetic 和 mavros v1.20.1&#xff0c; 携带经纬度海拔的话题主要有三个&#xff1a; /mavros/global_position/raw/fix/mavros/gpsstatus/gps1/raw/mavros/global_position/global 查看 mavros 源码&#xff0c;来分析他们的发布过程。发现前两个话题都对应了同一…...