gici-open示例数据运行(1.1开阔环境数据运行)

2023-10-04 01:54

本文主要是介绍gici-open示例数据运行(1.1开阔环境数据运行),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1、配置数据和处理模式

下载对应的数据集后,首先处理1.1中的开阔环境下数据,将option目录下的配置文件复制到1.1数据目录下(若采用ROS编译,则配置文件目录为ros_wrapper/src/gici/option/ros real time estimation xxx.yaml),并修改配置文件中对应的文件路径和时间,采用的处理模式如下:

pseudo_real_time_estimation_RTK.yaml---单RTK解算
pseudo_real_time_estimation_PPP.yaml---单PPP解算
pseudo_real_time_estimation_LC.yaml---RTK+INS松组合解算
pseudo_real_time_estimation_SRR.yaml---SPP+INS+Vision松组合解算

2、启动处理

若是直接执行,则仅需:
./gici_main ../../gici-open-dataset/1.1/pseudo_real_time_estimation_SRR.yaml若是ROS模式,则需要依次执行:
1. 启动命令行窗口,执行  roscore
2. 启动命令行窗口,执行  rviz -d ./src/gici/rviz/gici_gic.rviz 
3. 启动命令行窗口,执行  rosrun gici_ros gici_ros_main ../../gici-open-dataset/1.1/pseudo_real_time_estimation_SRR.yaml

3、分析结果

3.1 gici-open解算结果

首先分析开阔环境示例1.1中,RTK结果和参考值ground_truth相比的结果

算例数据中有ground_truth.txt,该文件中的坐标是相对于激光陀螺坐标中心的。纯GNSS解算得到的结果是相对于天线相位中心的,所以要做精度对比,需要对ground_truth的坐标进行转换。
1. IE解算得到参考坐标ground_truth.txt格式转换为nmea格式在目录gici-open/tools/evaluation/下可以执行:./format_converters/build/ie_to_nmea   ../../../gici-open-dataset/1.1/ground_truth.txt得到输出文件:ground_truth.txt.nmea
2. 将NMEA格式转换为GPS天线相位中心:在目录gici-open/tools/evaluation/下可以执行:./alignment/build/nmea_pose_to_position ../../../gici-open-dataset/1.1/ground_truth.txt.nmea得到输出文件:ground_truth.txt.nmea.translated

做RTK处理的时候需要注意将yaml配置文件中的 system_exclude选项清空,即采用所有的GNSS系统进行解算,gici-open得到的RTK定位结果如下图所示,可以看到模糊度固定率达到98.9%,能够实现较好的效果。

同时用RTKLIB读取上面转换后的参考文件ground_truth.txt.nmea.translated进行对比做差,结果:

由图可知,高程方向的STD整体比较小,主要是因为不涉及前坐标转换的问题。而平面方向仍存在一定的偏差,应该主要是由杆臂引起的。应该是前面在转换参考坐标坐标基准的时候,有哪里没有搞清楚,需要看下转换代码理解下???????

 3.2 NavSense解算结果

同时将原始观测值转换为Rinex格式。根据数据集的说明,流动站文件gnss_rover.bin采用的是天硕(Tersus)的接收机,基准站是标准RTCM3数据格式,采用RTKLIB进行如下设置可以进行转换:

转换完成后,直接将数据上传至NavSense在线平台进行处理。由左图可知,除了短暂的初始化过程,模糊度可以很快的固定。右图中可以看到各GNSS的可见卫星数比较稳定,说明环境比较好。

下面的轨迹图可以更直观的看到实验环境。

这篇关于gici-open示例数据运行(1.1开阔环境数据运行)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1081

相关文章

SpringBoot中SM2公钥加密、私钥解密的实现示例详解

《SpringBoot中SM2公钥加密、私钥解密的实现示例详解》本文介绍了如何在SpringBoot项目中实现SM2公钥加密和私钥解密的功能,通过使用Hutool库和BouncyCastle依赖,简化... 目录一、前言1、加密信息(示例)2、加密结果(示例)二、实现代码1、yml文件配置2、创建SM2工具

MySQL 定时新增分区的实现示例

《MySQL定时新增分区的实现示例》本文主要介绍了通过存储过程和定时任务实现MySQL分区的自动创建,解决大数据量下手动维护的繁琐问题,具有一定的参考价值,感兴趣的可以了解一下... mysql创建好分区之后,有时候会需要自动创建分区。比如,一些表数据量非常大,有些数据是热点数据,按照日期分区MululbU

MySQL 删除数据详解(最新整理)

《MySQL删除数据详解(最新整理)》:本文主要介绍MySQL删除数据的相关知识,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录一、前言二、mysql 中的三种删除方式1.DELETE语句✅ 基本语法: 示例:2.TRUNCATE语句✅ 基本语

Python函数作用域示例详解

《Python函数作用域示例详解》本文介绍了Python中的LEGB作用域规则,详细解析了变量查找的四个层级,通过具体代码示例,展示了各层级的变量访问规则和特性,对python函数作用域相关知识感兴趣... 目录一、LEGB 规则二、作用域实例2.1 局部作用域(Local)2.2 闭包作用域(Enclos

C++20管道运算符的实现示例

《C++20管道运算符的实现示例》本文简要介绍C++20管道运算符的使用与实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧... 目录标准库的管道运算符使用自己实现类似的管道运算符我们不打算介绍太多,因为它实际属于c++20最为重要的

Java中调用数据库存储过程的示例代码

《Java中调用数据库存储过程的示例代码》本文介绍Java通过JDBC调用数据库存储过程的方法,涵盖参数类型、执行步骤及数据库差异,需注意异常处理与资源管理,以优化性能并实现复杂业务逻辑,感兴趣的朋友... 目录一、存储过程概述二、Java调用存储过程的基本javascript步骤三、Java调用存储过程示

MyBatisPlus如何优化千万级数据的CRUD

《MyBatisPlus如何优化千万级数据的CRUD》最近负责的一个项目,数据库表量级破千万,每次执行CRUD都像走钢丝,稍有不慎就引起数据库报警,本文就结合这个项目的实战经验,聊聊MyBatisPl... 目录背景一、MyBATis Plus 简介二、千万级数据的挑战三、优化 CRUD 的关键策略1. 查

python实现对数据公钥加密与私钥解密

《python实现对数据公钥加密与私钥解密》这篇文章主要为大家详细介绍了如何使用python实现对数据公钥加密与私钥解密,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录公钥私钥的生成使用公钥加密使用私钥解密公钥私钥的生成这一部分,使用python生成公钥与私钥,然后保存在两个文

mysql中的数据目录用法及说明

《mysql中的数据目录用法及说明》:本文主要介绍mysql中的数据目录用法及说明,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1、背景2、版本3、数据目录4、总结1、背景安装mysql之后,在安装目录下会有一个data目录,我们创建的数据库、创建的表、插入的

ModelMapper基本使用和常见场景示例详解

《ModelMapper基本使用和常见场景示例详解》ModelMapper是Java对象映射库,支持自动映射、自定义规则、集合转换及高级配置(如匹配策略、转换器),可集成SpringBoot,减少样板... 目录1. 添加依赖2. 基本用法示例:简单对象映射3. 自定义映射规则4. 集合映射5. 高级配置匹