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

相关文章

Python在二进制文件中进行数据搜索的实战指南

《Python在二进制文件中进行数据搜索的实战指南》在二进制文件中搜索特定数据是编程中常见的任务,尤其在日志分析、程序调试和二进制数据处理中尤为重要,下面我们就来看看如何使用Python实现这一功能吧... 目录简介1. 二进制文件搜索概述2. python二进制模式文件读取(rb)2.1 二进制模式与文本

利用c++判断水仙花数并输出示例代码

《利用c++判断水仙花数并输出示例代码》水仙花数是指一个三位数,其各位数字的立方和恰好等于该数本身,:本文主要介绍利用c++判断水仙花数并输出的相关资料,文中通过代码介绍的非常详细,需要的朋友可以... 以下是使用C++实现的相同逻辑代码:#include <IOStream>#include <vec

SQL Server 中的表进行行转列场景示例

《SQLServer中的表进行行转列场景示例》本文详细介绍了SQLServer行转列(Pivot)的三种常用写法,包括固定列名、条件聚合和动态列名,文章还提供了实际示例、动态列数处理、性能优化建议... 目录一、常见场景示例二、写法 1:PIVOT(固定列名)三、写法 2:条件聚合(CASE WHEN)四、

Java 接口定义变量的示例代码

《Java接口定义变量的示例代码》文章介绍了Java接口中的变量和方法,接口中的变量必须是publicstaticfinal的,用于定义常量,而方法默认是publicabstract的,必须由实现类... 在 Java 中,接口是一种抽象类型,用于定义类必须实现的方法。接口可以包含常量和方法,但不能包含实例

C#实现将XML数据自动化地写入Excel文件

《C#实现将XML数据自动化地写入Excel文件》在现代企业级应用中,数据处理与报表生成是核心环节,本文将深入探讨如何利用C#和一款优秀的库,将XML数据自动化地写入Excel文件,有需要的小伙伴可以... 目录理解XML数据结构与Excel的对应关系引入高效工具:使用Spire.XLS for .NETC

使用Redis实现会话管理的示例代码

《使用Redis实现会话管理的示例代码》文章介绍了如何使用Redis实现会话管理,包括会话的创建、读取、更新和删除操作,通过设置会话超时时间并重置,可以确保会话在用户持续活动期间不会过期,此外,展示了... 目录1. 会话管理的基本概念2. 使用Redis实现会话管理2.1 引入依赖2.2 会话管理基本操作

mybatis-plus分表实现案例(附示例代码)

《mybatis-plus分表实现案例(附示例代码)》MyBatis-Plus是一个MyBatis的增强工具,在MyBatis的基础上只做增强不做改变,为简化开发、提高效率而生,:本文主要介绍my... 目录文档说明数据库水平分表思路1. 为什么要水平分表2. 核心设计要点3.基于数据库水平分表注意事项示例

Mybatis的mapper文件中#和$的区别示例解析

《Mybatis的mapper文件中#和$的区别示例解析》MyBatis的mapper文件中,#{}和${}是两种参数占位符,核心差异在于参数解析方式、SQL注入风险、适用场景,以下从底层原理、使用场... 目录MyBATis 中 mapper 文件里 #{} 与 ${} 的核心区别一、核心区别对比表二、底

MySQL数据目录迁移的完整过程

《MySQL数据目录迁移的完整过程》文章详细介绍了将MySQL数据目录迁移到新硬盘的整个过程,包括新硬盘挂载、创建新的数据目录、迁移数据(推荐使用两遍rsync方案)、修改MySQL配置文件和重启验证... 目录1,新硬盘挂载(如果有的话)2,创建新的 mysql 数据目录3,迁移 MySQL 数据(推荐两

HTML5的input标签的`type`属性值详解和代码示例

《HTML5的input标签的`type`属性值详解和代码示例》HTML5的`input`标签提供了多种`type`属性值,用于创建不同类型的输入控件,满足用户输入的多样化需求,从文本输入、密码输入、... 目录一、引言二、文本类输入类型2.1 text2.2 password2.3 textarea(严格