gici-open示例数据运行(ground_truth坐标的转换)

news2024/11/17 9:37:01

1. 坐标系转换说明

涉及的两个坐标转换:

  • nmea_pose_to_pose :激光IMU中心到数据集IMU中心,主要是杆臂误差,转换关系为:
    //======坐标转换的主要步骤(若发现有错误的地方,请评论指出)======
    //定义激光IMU和数据集IMU之间的杆臂
    const Eigen::Vector3d t_AB_A(-0.00509546,    0.320372,   0.0669864);
    //定义激光IMU和数据集IMU之间的姿态角(应该是以数据集右前下坐标系为基准)
    const Eigen::Vector3d rot_AB(179.928, -0.55273, -179.265);
    //激光IMU到数据集IMU之间的转换四元数
    Transformation T_AB(t_AB_A, eulerAngleToQuaternion(rot_AB * D2R));
    //激光IMU为原点的载体系下的enu转换到到导航
    Transformation T_WA(p_enu, q);
    //将激光IMU为原点转换到以数据集IMU为原点
    Transformation T_WB = T_WA * T_AB;
    

    根据代码里的设置值为:(-0.00509546,    0.320372,   0.0669864)
    而从 gici-open-dataset/intrinsics_and_extrinsics.yaml中看到的参数值为:

      数值上存在一定的差异。

  • nmea_pose_to_position:由数据集IMU中心到GPS天线相位中心的杆臂补偿,转换到导航系。主要转换公式为:
    //数据集IMU和GNSS APC之间的杆臂
    const Eigen::Vector3d t_SR_S(0.354, -0.042, -0.029);
    //将杆臂转换到导航系下,并将改正数加到导航系下的坐标NEU里。
    p_enu = p_enu.eval() + q * t_SR_S;
    

    代码中的杆臂为:(0.354, -0.042, -0.029)
    而从 gici-open-dataset/intrinsics_and_extrinsics.yaml中看到的参数值为:


  • 两者也存在数值上的差异。

2. 杆臂误差处理(载体系投影到导航系)

导航系(n):站心坐标系,一般以运动起始时刻作为站心原点,坐标轴:北东地

载体系(b):以IMU或GNSS为中心,坐标轴:前右下

 [北东地——前右下]坐标系下欧拉角旋转顺序:
       航向角(绕Z轴)—俯仰角(绕Y轴)—横滚角(绕X轴):
  第一个转动角度:航向角(绕Z轴旋转ψ角)
  第二个转动角度:俯仰角(绕Y轴旋转 θ 角)
  第三个转动角度:横滚角(绕X轴旋转ϕ 角)
注意 俯仰角和横滚角:方向与对应轴向转动方向一致,绕对应轴正转,相应姿态为正;绕对应轴反转,相应姿态为负。X轴指北时,航向角为零。北偏东顺时针依次从0变为360°
  对应的旋转矩阵为:

  

最后一定注意欧拉角旋转顺序与定义啊兄弟们,别搞混了,坐标系选取不同定义也不同的!!!!!!

 2. 欧拉角和四元数的关系原理

文章来源:无处不在的小土-导航坐标系与姿态描述方法

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

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

相关文章

springboot项目做成公共项目

一:引言 最近碰到个需求,就是把我项目做成一个公共的提供jar包给别人使用,我也是捣鼓了一段时间去研究这个问题,这个东西其实就是A 项目提供jar包给B项目,B项目只要引入A项目的jar包就可以使用A项目的功能。 问题一&…

Jumpserver安全一窥:Sep系列漏洞深度解析

Jumpserver是中国国内公司开发的一个开源项目,在开源堡垒机领域一家独大。在2023年9月官方集中修复了一系列安全问题,其中涉及到如下安全漏洞: JumpServer 重置密码验证码可被计算推演的漏洞,CVE编号为CVE-2023-42820JumpServer 重…

untitle

实用的科研图形美化处理教程分享 ​ 显微照片排版标记 除了统计图表之外,显微照片也是文章中必不可少的实验结果呈现方式。除了常规实验的各种组织切片照片,在空间转录组文章中显微照片更是常见。显微照片的呈现方式也是有讲究的,比如对照片…

硬核!一个基于SpringBoot+Vue前后端分离低代码项目

一、项目介绍 这是一款基于SpringBootVue的前后端分离的项目,麻雀虽小,五脏俱全,开箱即用! JNPF开发平台的前端采用Vue.js,这是一种流行的前端JavaScript框架,用于构建用户界面。Vue.js具有轻量级、可扩展性…

网络电视机顶盒怎么样?数码粉私藏网络机顶盒排行榜

对于新手来说,选购网络机顶盒十分困难,不少低价网络机顶盒虚标配置,偷工减料,售后也没有保障,不知道网络机顶盒什么牌子好很容易踩雷,近来某知名数码媒体发布了最新的网络机顶盒排名,入围的是哪…

swift界面初体验

1.添加视图 lazy var contentView: UIView {let a UIView()self.view.addSubview(a)return a}()2.添加文本 lazy var tipsLabel: UILabel {let a UILabel()a.font UIFont.regular13a.textColor UIColor.withHex(hexString:"#58C65C")a.text R.string.locali…

延时中间继电器 JZS-7/125 DC220V 0.02-9.99S 带一延时一瞬动辅助接点

JZS-7/125可调延时中间继电器系列型号: JZS-7/125静态可调延时中间继电器; JZS-7/145静态可调延时中间继电器; JZS-7/127静态可调延时中间继电器; JZS-7147静态可调延时中间继电器; 1 用途 JZS-7系列静态可调延时中间…

QT5 WebCapture 页面定时截图工具

QT5 WebCapture 网页定时截图工具 1.设置启动时间,程序会到启动时间后开始对网页依次进行截图 2.根据所需截图的页面加载速度,设置页面等待时间,尽量达到等页面加载完成后,再执行截图 3.根据需求,设置截图周期 4.程序…

基于多线程的Reactor模式的 回声服务器 EchoServer

记录下 一个线程专门用来接受accept获取客户端的fd 获取fd之后 从剩余的执行线程中 找到一个连接客户端数量最少的线程 然后将客户端的fd加入到这个线程中并通过EPOLL监听这个fd 线程之间通过eventfd来通信 将客户端的fd传到 对应的线程中 参考了MediaServer 引入…

[java基础学习]之DOS命令

#java基础学习 1.常用的DOS命令: dir:列出当前目录下的文件以及文件夹 md: 创建目录 rd:删除目录cd:进入指定目录 cd.. :退回到上级目录 cd\ : 退回到根目录 del:删除文件 exit:退出dos命令行 1.dir:列出当前目录下的文件以及文件夹 2.md: 创建目录 …

解决Adobe Premiere Pro CC 2018打开无反应,并出现.crash的文件问题

一 问题描述 Adobe Premiere Pro CC 2018软件安装完成后,打开该软件没反应,且打开时桌面会出现Crash文件! 二 解决方法 如果Adobe Premiere Pro CC 2018在打开时无反应,并出现.crash文件的问题,可以尝试以下解决方法…

KekeBlog项目实战(更新中)

一、前言 1. 项目简介 本项目是前后端分离项目,而我们所做的只有完整的后端开发工作,前端已经写好,故不做任何开发,仅开发后端。项目包含完整的后端中前台和后台的代码编写 前端项目下载链接: https://pan.baidu.c…

Git仓库迁移记录

背景:gitlab私服上面,使用 import project的方式,从旧项目迁移到新地址仓库,但是代码一直没拉过去。所以使用命令的方式,进行代码迁移。 第一步:使用git clone --mirror git地址,进行代码克隆 …

建立数据科学基础设施的绝佳指南 数据工程师都该人手一册

《Effective数据科学基础设施》由Netflix工程师Ville Tuulos撰写,以Metaflow为对象,介绍了数据科学所需要的基础设施,囊括数据准备、特征工程、模型训练、模型部署、服务和持续监控等环节。Metaflow专注于构建生产流程,更适合具有…

《理解深度学习》2023最新版本+习题答案册pdf

刚入门深度学习或者觉得学起来很困难的同学看过来了,今天分享的这本深度学习教科书绝对适合你。 就是这本已在外网获13.1万次下载的宝藏教科书《理解深度学习》。本书由巴斯大学计算机科学教授Simon J.D. Prince撰写,全书共541页,目前共有21…

【嵌入式C内存管理】

记录嵌入式C内存划分,后续会更新动态内存管理 1. 内存划分 栈区 stack有时也称为堆栈,重点在栈字,存放函数内部临时变量堆区 heap也就是动态申请(malloc)、释放(free)的内存区域数据区 data初始化的全局变量和静态变量…

opengauss数据备份(docker中备份)

首先如果想直接在宿主机上进行使用gs_dump备份需要glibc的版本到2.34及以上,查看版本命令为 ldd --version 如图所示,本宿主机并不满足要求,所以转向在docker容器中进行备份, 然后进入opengauss容器中,命令为 docker…

Vue3 + Ts实现NPM插件 - 定制loading

目录 你的 Loading🤖 安装🛹 简介苍白请 您移步文档:✈️ 使用方法🛠️ 配置 loading 类型🎲 定制 loading 色彩 💡 注意事项 前期回顾 你的 Loading 开箱即可用的 loading, 说明:vu…

当数字孪生与智慧园区结合,能够实现什么样的应用?

随着数字化进程的加深,数字孪生技术也越来越为大家所重视。那么,数字孪生技术在智慧园区中能够发挥什么样的作用?本文将根据山海鲸可视化智慧园区三维可视化系统,为大家进行说明。 一、基本概念 为了方便大家了解,这…

基于Springboot实现学生毕业离校系统项目【项目源码+论文说明】分享

基于Springboot实现学生毕业离校系统演示 摘要 随着科学技术的飞速发展,社会的方方面面、各行各业都在努力与现代的先进技术接轨,通过科技手段来提高自身的优势,新生宿舍管理系统当然也不能排除在外。新生宿舍管理系统是以实际运用为开发背景…