从零开始学定位 --- kaist数据集体验

2023-05-16

1 Kaist数据集简介

选择数据集选择了好几天,最终选择了kaist数据集,这个数据集中有 轮速计,imu, gps, 16线雷达,这些传感器满足了我认为多传感器融合定位的需要。

简要介绍一下Kaist数据集

数据集是面向城市环境(例如大都市地区、复杂建筑和居住区)的。[1] 提供了上述的传感器数据

数据集网址:https://sites.google.com/view/complex-urban-dataset/download-lidar#h.sa42osfdnwst
数据集论文名称 : Complex Urban LiDAR Data Set

1.1 传感器数据

提供了

  • 2个16线的veldyne的16线雷达
  • 2个sick的单线雷达
  • 里程计
  • 1个消费级的imu
  • 一个3轴的光纤陀螺仪(可以用来当做姿态的真值)
  • 一个gps
  • 一个vrs gps(rtk)
  • 立体相机

具体的传感器配置可以参考下论文中的截图。
请添加图片描述

1.2 传感器位置

2个16线雷达在车后边,斜向下安装,能更多的看到地面。
数据里的时间戳是雷达一圈最后一个packet的时间戳。

所有传感器的位置都是相对于参考坐标系的,参考坐标系在图中为 Vehicle Center。

请添加图片描述

请添加图片描述

2 数据集下载

我把数据集的连接统一放在腾讯文档里了,腾讯文档的地址如下:
https://docs.qq.com/sheet/DVElRQVNlY0tHU01I?tab=BB08J2

现在下载需要翻墙,如果之后有需要也可以将数据上传到阿里云盘之类的。

3 数据集的使用

这个数据集提供了一个使用工具,只要将数据集的文件夹按照固定的格式设置,通过工具进行加载,就可以直接获取到ros格式的topic数据,非常方便。

这个工具是file_player,其github地址是
https://github.com/irapkaist/file_player

3.1 项目仓库

需要下载下来在自己的工作空间中进行编译,我已经将依赖和源码下载好了,放在开源项目中了,github地址是
https://github.com/xiangli0608/Learning_localization_from_scratch_ws

这个仓库已经是一个工作空间了,下载下来直接cd 进去,然后用 catkin_make 编译就可以了。

src文件夹里的 kaist_tool 文件夹里有3个文件夹,分别是

  • file_player 读取数据集并将数据集通过ros格式的消息发布出来的工具
  • irp_sen_msgs 一些自定义的消息类型
  • kaist_description 我根据数据集提供的标定文件写的urdf

由于我暂时只下载了 Urban08 的数据集,所以现在只有一个 urban08.urdf, 不知道其他几个数据集的标定参数是否相同,如果相同那这一个urdf就可以用所有的数据了。

现在的urdf没有camera的link,等用到的时候再添加。

3.2 数据集的文件夹设置

由于 file_player 这个工具是读取文件夹的,所以对文件夹目录的摆放提出了要求,不按照指定位置设置的话是读取不了数据对。

文件夹的设置如下所示:

Urban08

  • calibration
    • EncoderParameter.txt
    • Vehicle2BackSick.txt
    • Vehicle2FOG.txt
    • Vehicle2GPS.txt
    • Vehicle2IMU.txt
    • Vehicle2LeftVLP.txt
    • Vehicle2MiddleSick.txt
    • Vehicle2RightVLP.txt
    • Vehicle2VRS.txt
  • sensor_data
    • VLP_left 文件夹
    • VLP_right 文件夹
    • SICK_back 文件夹
    • SICK_middle 文件夹
    • 其他传感器数据的csv文件

当你用官方的链接下载时,需要将Urban08文件夹进行合并,最终合并成上述所示的文件夹。

3.3 启动 file_player

编译好代码之后,先source,再rospack prodfile,然后执行

roslaunch file_player file_player.launch

会弹出如下所示界面

请添加图片描述
点击 Load 按钮,选中刚才设置好的 Urban08 文件夹,之后会在终端中打印

Stamp data are loaded
Altimeter data are loaded
Encoder calibrated parameter
Encoder resolution: 4096
Encoder left wheel diameter: 0.623803
Encoder right wheel diameter: 0.623095
Encoder wheel base: 1.52683
Encoder data are loaded
Fog data are loaded
Gps data are loaded
Vrs gps data are loaded
IMU data are loaded
scandir: No such file or directory
[ INFO] [1658414406.186192494]: camera calibration URL: file:///media/trunk/Trunk/0-LX/Kaist/Urban08/calibration/left.yaml
[ INFO] [1658414406.187175921]: Unable to open camera calibration file [/media/trunk/Trunk/0-LX/Kaist/Urban08/calibration/left.yaml]
[ WARN] [1658414406.187216202]: Camera calibration file /media/trunk/Trunk/0-LX/Kaist/Urban08/calibration/left.yaml not found.
[ INFO] [1658414406.187247816]: camera calibration URL: file:///media/trunk/Trunk/0-LX/Kaist/Urban08/calibration/right.yaml
[ INFO] [1658414406.187349750]: Unable to open camera calibration file [/media/trunk/Trunk/0-LX/Kaist/Urban08/calibration/right.yaml]
[ WARN] [1658414406.187373500]: Camera calibration file /media/trunk/Trunk/0-LX/Kaist/Urban08/calibration/right.yaml not found.

表示数据加载成功,如果没提示表示没加载成功。然后按 Play 按钮即可将数据通过ROS发布出来。

3.3 传感器数据话题

会有很多个topic发布出来,有些是ros的标准格式,有些是irp_sen_msgs格式的数据

其中ros标准格式的数据如下:

  • /imu/data_raw 110hz
  • /odom 100hz
  • /gps/fix 5hz
  • /ns1/velodyne_points 10hz
  • /ns2/velodyne_points 10hz

其中

  • /vrs_gps_data 是rtk的gps,可以当做位置的真值,是irp_sen_msgs/vrs格式的
  • /xsens_imu_data 是光纤陀螺仪,可以用来当做姿态的真值,是irp_sen_msgs/imu格式的

还有非常多视觉的topic,等用到视觉的时候再说吧

3.4 点云可视化

通过执行 roslaunch kaist_description kaist_description.launch 可以进行点云的可视化

坐标系间的可视化如下
请添加图片描述
点云的可视化如下

请添加图片描述

4 总结

现在数据集选定了,数据也可以通过ROS发布出来了,接下来先是进行建图,然后再开始搞多传感器融合定位。

REFERENCES

[1] KAIST URBAN DATA SET/Complex Urban LiDAR Data Set数据集参数
https://blog.csdn.net/Iqun_LAN/article/details/106445884
[2] Kaist数据集的使用
https://blog.csdn.net/weixin_43846627/article/details/113510014

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

从零开始学定位 --- kaist数据集体验 的相关文章

  • perf使用

    perf可记录高达700多种events事件 sudo perf list 可以查看可以perf的事件 sudo perf record F 999 e cpu clock faults a g p 28544 sleep 60 制定进程7
  • gperftools

    gperftools 实现了更高性能的多线程的malloc 实现 增加了极好的性能分析工具 gperftools 的前身是 pprof https github com google pprof sudo apt get install a
  • RDMA 设备查看

    1硬件检测 1 1检查硬件是否安装 确认硬件已安装 lspci tvm grep Mellanox 查看OFED驱动版本命令 如果没有驱动可以参考 https km sankuai com page 335338645 安装 rpm qa
  • spark 转换tfrecord 成parquet格式

    读取tfrecord 成parquet文件格式 read tfrecord py coding utf 8 34 34 34 读取tfrecord生成parquet文件格式 34 34 34 import os import time im
  • ffmpeg压缩视频

    安装ffmpeg conda install c conda forge x264 61 61 39 1 161 3030 39 ffmpeg 61 4 3 2 压缩mov视频 ffmpeg i movie mov c v libx264
  • AI行动,解放做表打工人

    1 atomecho 插件介绍 如果你是个 需要做财报 数据新闻的冤种 xff1b 或者是 网上有的我都想要 的囤积狂魔 xff1b 或是沉迷 Ctrl 43 C Ctrl 43 V 的做表工具人 那你一定不陌生 对不上的格式 找不到的数据
  • golang高性能rocksdb参数配置

    golang高性能rocksdb参数配置 import 34 errors 34 34 log 34 34 monorepo service autotable comm grocksdb 34 34 strings 34 34 githu
  • Linux doc和docx转换pdf

    准备工作 服务器安装libreoffice apt get install libreoffice 安装完成libreoffice后 xff0c 测试是否安装成功 soffice h 例子 把 tmp test docx 转换成 tmp t
  • 多个硬盘挂载到同一个目录

    同一目录无法重复挂载 xff0c 后挂载的会覆盖之前挂载的磁盘 但是现在需要将4块磁盘并行挂载 xff0c 该如何操作呢 xff1f 将2块磁盘合并到一个逻辑卷 进行挂载 基本知识 基本概念PV Physical Volume 物理卷物理卷
  • LeetCode 跳跃游戏 题解

    题述 xff1a 给定一个非负整数数组 nums xff0c 你最初位于数组的 第一个下标 数组中的每个元素代表你在该位置可以跳跃的最大长度 判断你是否能够到达最后一个下标 思路 xff1a 阅读题目我们可以发现只要数组里面没有0 我们就一
  • #error This file was generated by a newer version of protoc which is 【protoc版本问题】

    在github上下载自己适合的protoc版 xff08 我的环境是ubuntu18 04 ros melodic版本 xff09 gazebo9对应的最低版本protoc为3 0 0 我之前版本为3 14 0会提示目前文件由旧版本生成 x
  • Dispatcher.BeginInvoke()方法使用不当导致UI界面卡死的原因分析

    前段时间 xff0c 公司同事开发了一个小工具 xff0c 在工具执行过程中 xff0c UI 界面一直处于卡死状态 通过阅读代码发现 xff0c 主要是由于 Dispatcher BeginInvoke 方法使用不当导致的 本文将通过一个
  • List的Clear方法与RemoveAll方法用法小结

    示例代码 using System using System Collections Generic namespace ListClearExp class Program static void Main string args Lis
  • 利用C#访问注册表获取软件的安装路径

    绝大多数软件 xff0c 基本上都会在注册表中记录自己的名字和安装路径信息 在注册表中记录这些信息的位置是 xff1a HKEY LOCAL MACHINE SOFTWARE Microsoft Windows CurrentVersion
  • 使用ValidationRule类来检查用户输入的有效性

    1 新建WPF应用程序ValidationRuleExp 整个程序的结构如下图所示 程序运行起来后的效果如下图所示 用户操作程序时 xff0c 先输入固话 手机 Email 个人网站等信息 xff0c 再点击右侧的 点我记住你 按钮 xff
  • 关闭窗体后,进程仍然在运行的问题重现与解决

    1 问题陈述 在开发中 xff0c 遇到这样一个问题 xff1a 点击程序主窗体右上角的叉号关闭应用程序后 xff0c 程序的进程却没有关闭 通过查阅资料 xff0c 了解到 xff0c 产生此类问题的原因主要有以下两点 xff1a 1 x
  • Python判断一个字符串是否包含子串的几种方法

    1 使用成员操作符 in span class hljs prompt gt gt gt span s 61 span class hljs string 39 nihao shijie 39 span span class hljs pr
  • easyui-datagrid获取行和列数据

    1 获取当前行 span class hljs keyword var span row 61 span class hljs string 39 dg 39 span datagrid span class hljs string 39
  • No plugin found for prefix ‘tomcat7’ in the current project and in the plugin groups

    idea中开发javaweb应用 xff0c 使用mvn tomcat7 run命令运行应用时 xff0c 需要配置tomcat的maven插件 在没有配置的情况下会出现下面的错误提示 ERROR No plugin found for p
  • C#中的IComparable和IComparer接口

    C 中 xff0c 自定义类型 xff0c 支持比较和排序 xff0c 需要实现IComparable接口 IComparable接口存在一个名为CompareTo 的方法 xff0c 接收类型为object的参数表示被比较对象 xff0c

随机推荐

  • LeetCode Nim游戏 题解

    题述 xff1a 你和你的朋友 xff0c 两个人一起玩 Nim 游戏 xff1a 桌子上有一堆石头 你们轮流进行自己的回合 xff0c 你作为先手 每一回合 xff0c 轮到的人拿掉 1 3 块石头 拿掉最后一块石头的人就是获胜者 假设你
  • C#接口汇总

    1 IComparable和IComparer接口 用于比较和排序 IComparable 可比较的 xff0c 实现该接口的类 xff0c 便具有 可比较的 特性 IComparer 比较器 xff0c 实现该接口的类 xff0c 是一个
  • Python操作环境变量

    1 使用os读取环境变量 import os os getenv 39 path 39 os environ get 39 path 39 os environ 39 path 39 2 遍历打印所有环境变量 通过访问os environ可
  • 教程 | 阿克曼结构移动机器人的gazebo仿真(一)

    第一章 从SOLIDWORKS中导出URDF 二轮差速小车已经完结 接下去要进入阿克曼结构移动机器人的仿真 阿克曼小车的结构也就是我们看到最多的应用最广的车型 xff0c 也称为car like robot 在这里先挖下一个大坑 xff0c
  • TIANBOT MINI机器人使用blender进行贴图并导出详细教程

    很多小伙伴在看一些仿真视频中会看到 xff0c 仿真模型栩栩如生 xff0c 但是我们自己导出的模型总是不堪入目 xff0c 哪是因为你还没学会贴图 xff0c 下面我来教大家一步一步怎么学会贴图 首先我们打开blender并设置好简体中文
  • 什么是ROS2GO随身系统?

    随着ROS xff08 Robot Operating System xff09 机器人操作系统的越来越热 xff0c 大家都跃跃欲试 想一睹ROS的风采 xff0c 感受ROS的魅力 但是挡在初学者面前的第一个难题就是如何在Ubuntu系
  • 教程 | 阿克曼结构移动机器人的gazebo仿真(二)

    第二章 配置xacro文件 0 前言 上一节已经将urdf导出来了 xff0c 这一节需要配置一下xacro文件 先看一下导出的功能包在gazebo以及rviz中显示的效果 将功能包放进工作空间进行编译 xff0c source一下环境 x
  • 教程 | 阿克曼结构移动机器人的gazebo仿真(三)

    第三章 让小车动起来 1 配置controller 在tianracer description功能包新建config文件夹时 xff0c 我们可以通过一个yaml文件smart control config yaml来声明我们所需要的co
  • 教程 | 阿克曼结构移动机器人的gazebo仿真(五)

    第四章 用xacro优化URDF并配置gazebo仿真插件 1 前言 上节用简易模型写了一个小车的URDF代码 xff0c 这一节将用xacro对其进行优化 xff0c 这里我并不打算用宏对参数进行封装 xff0c 因为我个人觉得这样看起来
  • 教程 | Jetson Xavier NX 开发板强化学习环境配置流程

    一 基本介绍 NX开发板 全名Jetson Xavier NX xff08 后简称为NX xff09 xff0c 是NVIDIA英伟达提供的模组和开发者套件 xff0c 保持Jetson Nano小巧尺寸的同时拥有相当于Jetson TX2
  • 免费教程·开源 | 从零开始制作ROS无人竞速车RACECAR教程

    一 课程前提 自动驾驶汽车即将成为交通出行的主流工具之一 xff0c 它以计算机 现代汽车产业技术为基础 xff0c 以数字化 智能化为依托实现自动化驾驶 xff0c 学习自动驾驶需要了解架构 环境感知 行为决策 规划路径 xff0c 多传
  • c++ 继承 学习总结3 继承中父类和子类同名非静态成员或者同名静态成员的处理方式

    1 继承中父类和子类有同名非静态成员的处理方式 eg include lt iostream gt using namespace std class Base public Base m A 61 100 void func cout l
  • 2022ROS暑期学校暨人工智能与机器人论坛报名及日程安排

    机器人操作系统 ROS 暑期学校自2015年举办以来 xff0c 被中国机器人业界和学界 xff0c 以及ROS开源基金会誉为除了ROSCon之外规模最大 参与人数最多 最成功的ROS线下活动 过去八年 xff0c 共吸引了全国300多所高
  • MATLAB Simulink开发ROS无人车与机器人应用 详细教程

    引言 xff1a MATLAB在机器人中的应用 现在大多数机器人开发者都会选择ROS xff0c 在ROS整个框架下 调包 极其容易 很多ROS开发者热衷于 调包 来实现功能 xff0c 却难以在机器人学的理论知识上有所突破 MATLAB的
  • DE1-SOC入门之Linux开发环境搭建

    入手DE1 SOC这块FPGA也有两三个月了 xff0c 将友晶提供的入门学习例程 代码等摸索了一下 xff0c 感觉正常的fpga和arm之间的通信 控制已经没多大问题了 可是很多时候 xff0c 事情没有自己想的那么简单 现在接手的项目
  • sensor_msgs/NavSatFix Message

    1 sensor msgs NavSatStatus Message http docs ros org en api sensor msgs html msg NavSatStatus html Navigation Satellite
  • 零基础如何入门激光SLAM

    零基础如何入门激光SLAM 最近有几个人加我 xff0c 都说是刚开始学激光slam xff0c 基本都是研一 xff0c 也有一些大四的 xff08 大四的都开始学SLAM了 xff01 xff09 情况也都差不多 xff0c 有的是课题
  • 从零开始搭二维激光SLAM --- 栅格地图的构建

    上周搬家 导致这篇文章更新的慢了点 之前的文章我们都是通过scan to scan的方式进行位姿变换的计算 接下来的文章将带领大家体验scan to map的计算位姿变换的方式 首先 来简要介绍一下什么是map 1 地图与占用栅格地图 1
  • 从零开始搭二维激光SLAM --- 基于gtsam的后端优化的代码实现

    上一篇文章我们分析了如何使用ceres进行位姿图的优化 这篇文章来讲一下如何使用gtsam进行位姿图的优化 1 gtsam简介 gtsam是最近几年火起来的一个优化库 GTSAM xff08 Georgia Tech Smoothing a
  • 从零开始学定位 --- kaist数据集体验

    1 Kaist数据集简介 选择数据集选择了好几天 xff0c 最终选择了kaist数据集 xff0c 这个数据集中有 轮速计 xff0c imu gps 16线雷达 xff0c 这些传感器满足了我认为多传感器融合定位的需要 简要介绍一下Ka