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分段处理List集合多线程批量插入数据方式

《SpringBoot分段处理List集合多线程批量插入数据方式》文章介绍如何处理大数据量List批量插入数据库的优化方案:通过拆分List并分配独立线程处理,结合Spring线程池与异步方法提升效率... 目录项目场景解决方案1.实体类2.Mapper3.spring容器注入线程池bejsan对象4.创建

PHP轻松处理千万行数据的方法详解

《PHP轻松处理千万行数据的方法详解》说到处理大数据集,PHP通常不是第一个想到的语言,但如果你曾经需要处理数百万行数据而不让服务器崩溃或内存耗尽,你就会知道PHP用对了工具有多强大,下面小编就... 目录问题的本质php 中的数据流处理:为什么必不可少生成器:内存高效的迭代方式流量控制:避免系统过载一次性

C#实现千万数据秒级导入的代码

《C#实现千万数据秒级导入的代码》在实际开发中excel导入很常见,现代社会中很容易遇到大数据处理业务,所以本文我就给大家分享一下千万数据秒级导入怎么实现,文中有详细的代码示例供大家参考,需要的朋友可... 目录前言一、数据存储二、处理逻辑优化前代码处理逻辑优化后的代码总结前言在实际开发中excel导入很

通过Docker容器部署Python环境的全流程

《通过Docker容器部署Python环境的全流程》在现代化开发流程中,Docker因其轻量化、环境隔离和跨平台一致性的特性,已成为部署Python应用的标准工具,本文将详细演示如何通过Docker容... 目录引言一、docker与python的协同优势二、核心步骤详解三、进阶配置技巧四、生产环境最佳实践

Python中logging模块用法示例总结

《Python中logging模块用法示例总结》在Python中logging模块是一个强大的日志记录工具,它允许用户将程序运行期间产生的日志信息输出到控制台或者写入到文件中,:本文主要介绍Pyt... 目录前言一. 基本使用1. 五种日志等级2.  设置报告等级3. 自定义格式4. C语言风格的格式化方法

SpringBoot 多环境开发实战(从配置、管理与控制)

《SpringBoot多环境开发实战(从配置、管理与控制)》本文详解SpringBoot多环境配置,涵盖单文件YAML、多文件模式、MavenProfile分组及激活策略,通过优先级控制灵活切换环境... 目录一、多环境开发基础(单文件 YAML 版)(一)配置原理与优势(二)实操示例二、多环境开发多文件版

Spring 中的切面与事务结合使用完整示例

《Spring中的切面与事务结合使用完整示例》本文给大家介绍Spring中的切面与事务结合使用完整示例,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考... 目录 一、前置知识:Spring AOP 与 事务的关系 事务本质上就是一个“切面”二、核心组件三、完

使用docker搭建嵌入式Linux开发环境

《使用docker搭建嵌入式Linux开发环境》本文主要介绍了使用docker搭建嵌入式Linux开发环境,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面... 目录1、前言2、安装docker3、编写容器管理脚本4、创建容器1、前言在日常开发全志、rk等不同

MyBatis-plus处理存储json数据过程

《MyBatis-plus处理存储json数据过程》文章介绍MyBatis-Plus3.4.21处理对象与集合的差异:对象可用内置Handler配合autoResultMap,集合需自定义处理器继承F... 目录1、如果是对象2、如果需要转换的是List集合总结对象和集合分两种情况处理,目前我用的MP的版本

sky-take-out项目中Redis的使用示例详解

《sky-take-out项目中Redis的使用示例详解》SpringCache是Spring的缓存抽象层,通过注解简化缓存管理,支持Redis等提供者,适用于方法结果缓存、更新和删除操作,但无法实现... 目录Spring Cache主要特性核心注解1.@Cacheable2.@CachePut3.@Ca