【SVO2.0】源码编译运行和使用公开数据集EuRoc

2024-04-10 17:04

本文主要是介绍【SVO2.0】源码编译运行和使用公开数据集EuRoc,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

前置安装

需要先安装ros,melodic或者neotic,搜索一下教程

安装和编译SVO2.0

按官方公开的github的教程步骤来就行https://github.com/uzh-rpg/rpg_svo_pro_open/tree/master,期间遇到连不上github的问题,搜索设置一下密钥就可以了。两种方法都要编译,不然用不了地图

运行视觉前端visual front-end

同样按照教程https://github.com/uzh-rpg/rpg_svo_pro_open/blob/master/doc/frontend/visual_frontend.md,下载airground_rig_s3_2013-03-18_21-38-48.bag然后

roslaunch svo_ros run_from_bag.launch cam_name:=svo_test_pinhole
rosbag play airground_rig_s3_2013-03-18_21-38-48.bag

使用EuRoc数据集

这是个benchmark数据集,svo有提供运行benchmark的格式,下载EuRoc数据集,我选的是ASL格式https://projects.asl.ethz.ch/datasets/doku.php?id=kmavvisualinertialdatasets

按格式放置数据

按https://github.com/uzh-rpg/rpg_svo_pro_open/tree/master/svo_benchmarking/dataset_tools中的教程设置好需要的数据

<dataset_name>
├── calib.yaml --> calibration file
├── data
│ ├── groundtruth_matches.txt
│ ├── groundtruth.txt
│ ├── stamped_groundtruth.txt
│ ├── images.txt
│ ├── img --> folder containing actual images
│ └── imu.txt
└── dataset.yaml --> optional: can be used to specify dataset-specific parameters

其中必须的文件:

  • groundtruth.txt:用python/asl_to_groundtruth_to_pose.py转换state_groundtruth_estimate0下的data.csv
  • images.txt:写一个类似asl_to_groundtruth_to_pose.py的程序转换cam0下的data.csv
  • imu.txt:写一个类似asl_to_groundtruth_to_pose.py的程序转换imu0下的data.csv,注意时间戳的精度保留,保留到9位小数才能让img和imu的时间戳对上(不然超出精度的会生成随机数字导致对不上)
  • calib.yaml:用svo提供的euroc_mono.yaml,和euroc中的sensor.yaml的参数一样,但是svo能读取的格式
  • img:图像,但svo的代码中是让图和txt都放在data下,我把cpp文件中的路径改回教程中的格式(放在img)下

改一下experiments/exp_euroc_mono.yaml里dataset的设置,然后就可以开始跑了

roscore
roslaunch svo_ros euroc_global_map_mono.launch
rosrun svo_benchmarking benchmark.py exp_euroc_mono.yaml

在这里插入图片描述

这篇关于【SVO2.0】源码编译运行和使用公开数据集EuRoc的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!


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

相关文章

Java 枚举的基本使用方法及实际使用场景

《Java枚举的基本使用方法及实际使用场景》枚举是Java中一种特殊的类,用于定义一组固定的常量,枚举类型提供了更好的类型安全性和可读性,适用于需要定义一组有限且固定的值的场景,本文给大家介绍Jav... 目录一、什么是枚举?二、枚举的基本使用方法定义枚举三、实际使用场景代替常量状态机四、更多用法1.实现接

springboot项目中使用JOSN解析库的方法

《springboot项目中使用JOSN解析库的方法》JSON,全程是JavaScriptObjectNotation,是一种轻量级的数据交换格式,本文给大家介绍springboot项目中使用JOSN... 目录一、jsON解析简介二、Spring Boot项目中使用JSON解析1、pom.XML文件引入依

Java中的record使用详解

《Java中的record使用详解》record是Java14引入的一种新语法(在Java16中成为正式功能),用于定义不可变的数据类,这篇文章给大家介绍Java中的record相关知识,感兴趣的朋友... 目录1. 什么是 record?2. 基本语法3. record 的核心特性4. 使用场景5. 自定

Python数据分析与可视化的全面指南(从数据清洗到图表呈现)

《Python数据分析与可视化的全面指南(从数据清洗到图表呈现)》Python是数据分析与可视化领域中最受欢迎的编程语言之一,凭借其丰富的库和工具,Python能够帮助我们快速处理、分析数据并生成高质... 目录一、数据采集与初步探索二、数据清洗的七种武器1. 缺失值处理策略2. 异常值检测与修正3. 数据

Python使用Tkinter打造一个完整的桌面应用

《Python使用Tkinter打造一个完整的桌面应用》在Python生态中,Tkinter就像一把瑞士军刀,它没有花哨的特效,却能快速搭建出实用的图形界面,作为Python自带的标准库,无需安装即可... 目录一、界面搭建:像搭积木一样组合控件二、菜单系统:给应用装上“控制中枢”三、事件驱动:让界面“活”

pandas实现数据concat拼接的示例代码

《pandas实现数据concat拼接的示例代码》pandas.concat用于合并DataFrame或Series,本文主要介绍了pandas实现数据concat拼接的示例代码,具有一定的参考价值,... 目录语法示例:使用pandas.concat合并数据默认的concat:参数axis=0,join=

java -jar命令运行 jar包时运行外部依赖jar包的场景分析

《java-jar命令运行jar包时运行外部依赖jar包的场景分析》:本文主要介绍java-jar命令运行jar包时运行外部依赖jar包的场景分析,本文给大家介绍的非常详细,对大家的学习或工作... 目录Java -jar命令运行 jar包时如何运行外部依赖jar包场景:解决:方法一、启动参数添加: -Xb

C/C++ chrono简单使用场景示例详解

《C/C++chrono简单使用场景示例详解》:本文主要介绍C/C++chrono简单使用场景示例详解,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友... 目录chrono使用场景举例1 输出格式化字符串chrono使用场景China编程举例1 输出格式化字符串示

Python验证码识别方式(使用pytesseract库)

《Python验证码识别方式(使用pytesseract库)》:本文主要介绍Python验证码识别方式(使用pytesseract库),具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全... 目录1、安装Tesseract-OCR2、在python中使用3、本地图片识别4、结合playwrigh

C#代码实现解析WTGPS和BD数据

《C#代码实现解析WTGPS和BD数据》在现代的导航与定位应用中,准确解析GPS和北斗(BD)等卫星定位数据至关重要,本文将使用C#语言实现解析WTGPS和BD数据,需要的可以了解下... 目录一、代码结构概览1. 核心解析方法2. 位置信息解析3. 经纬度转换方法4. 日期和时间戳解析5. 辅助方法二、L