loam详细代码解析与公式推导
loam详细代码解析与公式推导(基础理论知识)
一、基础坐标变换
loam中欧拉角解算都采用R P Y 的解算方式,即先左乘R, 再左乘P, 最后左乘Y,用矩阵表示为: R = Ry * Rp * Rr。用个很简单的示例表示,在坐标系Oxyz中经过旋转后得到坐标系O'xyz,可以把坐标系Oxyz当成全局坐标系{world_link},坐标系O'xyz当成局部坐标系{local_link};有局部坐标系上的点Pl,在全局坐标系下的位置Pw是:
Pw = R * Pl = (Ry * Rp * Rr)* Pl
上式将局部坐标系上的点变换到全局坐标系即:
R = Ry * Rp * Rr
{world_link} ------------------------> {link_link}
其中:Rr是agv的翻滚角,与loam坐标系中的rot_x对应
rot_x = [1, 0, 0; 0, crx, -srx; 0 , srx, crx];
Ry是agv的偏航角,与loam坐标系中的rot_y对应
rot_y = [cry, 0, sry; 0, 1, 0; -sry , 0, cry];
Rp是agv的俯仰角,与loam坐标系中的rot_z对应
rot_z = [crz, -srz, 0; srz, crz, 0; 0 , 0, 1];
二、loam对应的欧拉变换顺序
loam中坐标变换通常分为从{link_world}到{world_link}和从{world_link}到{link_world}的变换,其分别对应的欧拉拉变换方式为:Rzxy 和 其逆矩阵inv(Rzxy) = R-y-x-z,其中
Rzxy = rot_z * rot_x * rot_y = [ cry*crz + srx*sry*srz, crz*srx*sry - cry*srz, crx*sry] [crx*srz, crx*crz, -srx] [ cry*srx*srz - crz*sry, sry*srz + cry*crz*srx, crx*cry]
inv(Rzxy) = -rot_y * -rot_x * -rot_z = [ cry*crz + srx*sry*srz, crx*srz, cry*srx*srz - crz*sry] [ crz*srx*sry - cry*srz, crx*crz, sry*srz + cry*crz*srx] [ crx*sry, -srx, crx*cry]
三、imu角度变换计算
loam中imu的坐标系方向是前左上,假设在current的imu坐标系下的各个方向加速度为
A = [ax; ay; az]
在前左上坐标系中欧拉角的解算方式是:Rxyz = rot_z * rot_x * rot_y,现在需要得到重力加速度在current坐标系下各个方向的分量,应为imu开始坐标系下G=[0; 0; -9.8];现在相当于求全局imu坐标系下的向量在局部imu坐标系下向量值G',故
G' = inv(Rxyz) * G
其中
inv(Rxyz) = [ cry*crz, cry*srz, -sry] [ crz*srx*sry - crx*srz, crx*crz + srx*sry*srz, cry*srx] [ srx*srz + crx*crz*sry, crx*sry*srz - crz*srx, crx*cry]
因此
A’= A + inv(Rxyz) * G
到这里,关于坐标系变换的基础理论就讲明白了。
loam详细代码解析与公式推导的更多相关文章
- java连接mysql数据库详细步骤解析
java连接mysql数据库详细步骤解析 第一步:下载一个JDBC驱动包,例如我用的是:mysql-connector-java-5.1.17-bin.jar 第二步:导入下载的J ...
- JavaScript “跑马灯”抽奖活动代码解析与优化(二)
既然是要编写插件.那么叫做"插件"的东西肯定是具有的某些特征能够满足我们平时开发的需求或者是提高我们的开发效率.那么叫做插件的东西应该具有哪些基本特征呢?让我们来总结一下: 1.J ...
- 6. EM算法-高斯混合模型GMM+Lasso详细代码实现
1. 前言 我们之前有介绍过4. EM算法-高斯混合模型GMM详细代码实现,在那片博文里面把GMM说涉及到的过程,可能会遇到的问题,基本讲了.今天我们升级下,主要一起解析下EM算法中GMM(搞事混合模 ...
- RobHess的SIFT代码解析步骤四
平台:win10 x64 +VS 2015专业版 +opencv-2.4.11 + gtk_-bundle_2.24.10_win32 主要参考:1.代码:RobHess的SIFT源码 2.书:王永明 ...
- InceptionV3代码解析
InceptionV3代码解析 参考博文:https://blog.csdn.net/superman_xxx/article/details/65451916 读了Google的GoogleNet以 ...
- 【论文笔记】AutoML for MCA on Mobile Devices——论文解读与代码解析
理论部分 方法介绍 本节将详细介绍AMC的算法流程.AMC旨在自动地找出每层的冗余参数. AMC训练一个强化学习的策略,对每个卷积层会给出其action(即压缩率),然后根据压缩率进行裁枝.裁枝后,A ...
- VBA常用代码解析
031 删除工作表中的空行 如果需要删除工作表中所有的空行,可以使用下面的代码. Sub DelBlankRow() DimrRow As Long DimLRow As Long Dimi As L ...
- [nRF51822] 12、基础实验代码解析大全 · 实验19 - PWM
一.PWM概述: PWM(Pulse Width Modulation):脉冲宽度调制技术,通过对一系列脉冲的宽度进行调制,来等效地获得所需要波形. PWM 的几个基本概念: 1) 占空比:占空比是指 ...
- [nRF51822] 11、基础实验代码解析大全 · 实验16 - 内部FLASH读写
一.实验内容: 通过串口发送单个字符到NRF51822,NRF51822 接收到字符后将其写入到FLASH 的最后一页,之后将其读出并通过串口打印出数据. 二.nRF51822芯片内部flash知识 ...
随机推荐
- 一个豆瓣电影Top250爬虫
一个爬虫 这是我第一次接触爬虫,写的第一个爬虫实例. https://movie.douban.com/top250 模块 import requests #用于发送请求 import re #使用正 ...
- 再见Docker!Containerd安装与使用
Containerd 的技术方向和目标 简洁的基于 gRPC 的 API 和 client library 完整的 OCI 支持(runtime 和 image spec) 同时具备稳定性和高性能的定 ...
- vue2升级vue3:Vue Demij打通vue2与vue3壁垒,构建通用组件
如果你的vue2代码之前是使用vue-class-component 类组件模式写的.选择可以使用 https://github.com/facing-dev/vue-facing-decorator ...
- Mysql 数据恢复流程 基于binlog redolog undolog
注:文中有个易混淆的地方 sql事务,即每次数据库操作生成的事务,这个事务trx_id只在undolog里存储,同时undolog维护了此事务是否完成的状态. 日志持久化事务,为了保证redolog和 ...
- 题解 P2657 【[SCOI2009] windy 数】
数位 dp. // 数位 dp 其实是爆搜加记忆化 #include<iostream> #include<cstring> #include<cmath> usi ...
- 我与Apache DolphinScheduler的成长之路
关于 Apache DolphinScheduler社区 Apache DolphinScheduler(incubator) 于17年在易观数科立项,19年3月开源, 19 年8月进入Apache ...
- java学习第二天面向对象.day07
变量的生命周期 成员变量:存储在堆内存中,随着对象的销毁而销毁 局部变量:存储在栈内存中,随着所定义方法的调用结束而销毁 局部变量存储在方法中,每次调用方法都会在栈空间开辟一块内存空间--栈帧,方法调 ...
- Excel 统计函数(五):MINIFS 和 MAXIFS
MINIFS [语法]MINIFS(min_range, criteria_range1, criteria1, [criteria_range2, criteria2], ...) [参数] min ...
- 调用 StatefulWidget 组件的参数时(widget.xxx)报 Invalid Constant Value
一个 Flutter 组件(Widget)在很多情况下都需要接收一些参数.Flutter 插件通常提示使用 const 关键字包裹某 Widget(很多人接受建议且执行),导致通过 widget.xx ...
- redis-hash命令
一.HDEL key field [field ...] 从 key 指定的哈希集中移除指定的域.在哈希集中不存在的域将被忽略. 如果 key 指定的哈希集不存在,它将被认为是一个空的哈希集,该命令将 ...