kitti点云地图拼接_semantickitti点云拼接-程序员宅基地

技术标签: slam  SLAM  编程代码学习笔记  ROS  


前言:这段时间在学习坐标系变换相关的知识,同时尝试了利用kitti公开点云数据集以及对应的真实位姿,拼接出全局地图,如下图所示,我采用了kitti点云数据集的00序列来测试拼接地图。下面大致记录下点云拼接过程以及基于C++和Matlab的拼接代码,备忘。

1. 关于kitti数据集以及坐标系

kitti数据集是一个为立体,光流,视觉里程计,3D目标检测和3D跟踪等任务而开发采集的基准数据集。它利用了Annieway自动驾驶平台,配备了1个OXTS RT 3003,1台Velodyne HDL-64E激光扫描仪,2台Point Grey Flea 2(FL2-14S3M-C)一百四十万像素灰度相机,2台一百四十万像素彩色摄像头,以及4个4~8mm的可变焦镜头Edmund Optics NT59-917。根据 Are we ready for Autonomous Driving? The KITTI Vision Benchmark Suite 这篇文章的描述,相机,激光扫描仪以及定位系统全部都经过了校准和时间同步,且里程计的真值由GPS/IMU定位单元的输出投影到校准后的左侧相机得到。也就是说,在kitti提供的里程计真值是基于相机坐标系的,而根据上面kitti链接中的介绍,相机坐标系为:向前为z,向右为x,向下为y;而velodyne激光扫描仪坐标系则是:向前x,向左y,向上z。(需要注意的是,点云数据是在激光雷达坐标系下,而真值则是在相机坐标系下。)
在从官网上下载的真值位姿具有以下格式(kitti总共有编号为00~20的21个数据集序列,其中只有00~10序列公开了真值,序列11~20仅用来做为算法评估使用):

1.000000e+00 9.043680e-12 2.326809e-11 5.551115e-17 9.043683e-12 1.000000e+00 2.392370e-10 3.330669e-16 2.326810e-11 2.392370e-10 9.999999e-01 -4.440892e-16
9.999978e-01 5.272628e-04 -2.066935e-03 -4.690294e-02 -5.296506e-04 9.999992e-01 -1.154865e-03 -2.839928e-02 2.066324e-03 1.155958e-03 9.999971e-01 8.586941e-01
9.999910e-01 1.048972e-03 -4.131348e-03 -9.374345e-02 -1.058514e-03 9.999968e-01 -2.308104e-03 -5.676064e-02 4.128913e-03 2.312456e-03 9.999887e-01 1.716275e+00
9.999796e-01 1.566466e-03 -6.198571e-03 -1.406429e-01 -1.587952e-03 9.999927e-01 -3.462706e-03 -8.515762e-02 6.193102e-03 3.472479e-03 9.999747e-01 2.574964e+00

它们每一行有12个数据,它们记录了每一个时刻的位置和方向,对于上面的每一行, p 0 , p 1 , p 2 , . . . , p 11 p_0, p_1, p_2, ... , p_{11} p0,p1,p2,...,p11; 它们与(旋转+平移)欧式矩阵对应关系如下:
T = [ p 0 p 1 p 2 p 3 p 4 p 5 p 6 p 7 p 8 p 9 p 10 p 11 0 0 0 1 ] = [ R 3 × 3 t 3 × 1 0 1 × 3 1 ] (1.1) T = \left[\begin{matrix} p_0 & p_1 & p_2 & p_3 \\ p_4 & p_5 & p_6 & p_7 \\ p_8 & p_9 & p_{10} & p_{11} \\ 0 & 0 & 0 & 1 \end{matrix}\right] = \left[\begin{matrix} R_{3\times3} & t_{3\times1} \\ 0_{1\times3} & 1 \end{matrix}\right] \tag{1.1} T=p0p4p80p1p5p90p2p6p100

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/sunqin_csdn/article/details/105475082

智能推荐

在jupyter notebook运行指定conda虚拟环境(附带sklearn安装教程)_新建的annaconda虚拟环境怎么用jupyter打开-程序员宅基地

文章浏览阅读2.3k次,点赞5次,收藏25次。在jupyter notebook运行指定conda虚拟环境(附带sklearn安装教程)_新建的annaconda虚拟环境怎么用jupyter打开

软件实施流程(八大阶段)——软件实施工程师_软件实施指导-程序员宅基地

文章浏览阅读3.8k次。软件实施工程师软件实施工程师的工作是软件产品服务主线的一个决定性环节,软件的成功离不开实施。主要负责工程实施: 包括常用操作系统、应用软件及公司所开发的软件安装、调试、维护,还有少部分硬件、网络的工作;负责现场培训: 现场软件应用培训;协助项目验收;负责需求的初步确认;把控项目进度;与客户沟通个性化需求;负责项目维护。软件产品。_软件实施指导

KlayGE 4.0中Deferred Rendering的改进(四):GI的神话-程序员宅基地

文章浏览阅读59次。转载请注明出处为KlayGE游戏引擎上一篇解决了透明物体的渲染问题;本文将挑战另一个实时渲染的神话,实时全局光照(GI)。实时全动态GI目前direct lighting在游戏中日趋成熟,比较前卫的游戏引擎已经不满足于diect lighting的效果了,逐渐开始尝试indirect lighting。早期的方法有通过离线渲染light map来实现静态场景、静态光源的GI。接着出现...

初识Git_git必须用网络吗-程序员宅基地

文章浏览阅读433次。Git 是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。Git 与常用的版本控制工具 CVS, Subversion 等不同,它采用了分布式版本库的方式,不必服务器端软件支持。简言概括:Git就是分布式版本控制。_git必须用网络吗

搭建Vulhub靶场 【附图】_vulhub靶场搭建-程序员宅基地

文章浏览阅读2.1w次,点赞59次,收藏265次。目录0x01简单概述0x02安装环境1. kali设置2. 更新软件源中的所有软件列表3. 安装https协议及CA证书0x03安装步骤一、安装Docker1. 下载安装2. 查看Docker是否安装成功3. 查看docker基本信息二、安装vluhub1. 安装pip32. 安装Docker-Compose3. 查看docker-compose版本三、安装vulhub靶场1. 克隆下载2. 随便进入一个靶场环境目录3. 对靶场进行编译4. 运行此靶场5. 查看启动环境6. 通过浏览器访问7. 关闭此靶场环_vulhub靶场搭建

sensei鼠标测试软件,「硬核测试:游戏鼠标精准度」赛睿SENSEI 310-程序员宅基地

文章浏览阅读564次。原标题:「硬核测试:游戏鼠标精准度」赛睿SENSEI 310作为赛睿最热销游戏鼠标之一,310有SENSEI(对称)和RIVAL(右手)两个版本,均采用今天要测的TrueMove3引擎,是基于PMW3360打造的1:1真实追踪的引擎,虽然现在“1:1引擎”很多了,但TrueMove出来时这个概念还是很新颖的,尤其是提到了消除抖动,最大限度的保持理论和实际DPI的稳定性,那么到底是不是真的1:1呢,..._鼠标精确度检测软件

随便推点

YT88 USB 加密狗 使用方法(一)加壳-程序员宅基地

文章浏览阅读2.3w次,点赞5次,收藏31次。资料下载地址: http://www.dgyzt.com/share.php?id=7到目录:YT88-11-6\外壳加密11(推荐)\外壳加密工具11.6.exe 运行 “外壳加密工具11.6.exe” 其 对应的说明文件为:YT88-11-6\外壳加密11(推荐)\使用说明\使用说明.txtStep1:点击保护Step2:点击 添加密钥Step3:输入..._yt88

Power BI DAX 分组排名 分层排名_powerbi分组排名-程序员宅基地

文章浏览阅读2.2k次,点赞5次,收藏2次。这个DAX公式采取类似Excel行上下文的功能,首先建立一个参数等于类别,在Rankx函数第一个参数添加一个Filter,实现同一类别内进行排名,即分层排名。上述DAX公式使用的是ALLEXCEPT函数,是ALL家族函数,功能是除了第二个参数【类别】都是行上下文计算排名,这样就实现了分组分层排名。如上例,Rankx只有前两个参数是必要的,实际可以输入五个参数,设置排序方式。通过在第一个参数添加函数可以实现进阶功能,例如分组分层排名,依旧使用上述数据。再使用Rankx计算排名。首先建立销售和度量值。_powerbi分组排名

快速访问中的ftp文件夹右键没有选项,无法删除如何解决-程序员宅基地

文章浏览阅读894次。随便在以一个目录里新建一个快捷方式,填上ftp地址,如下:下一步,然后删除此快捷方式,那废的ftp就没了转载于:https://www.cnblogs.com/shuangfeike/p/11413734.html..._群辉的ftp文件点右键没有编辑功能

mybatis根据数组批量查询_前端传入的是long型的数组后端在mybatis中怎么批量查询-程序员宅基地

文章浏览阅读1.8k次。接口/** * 从页面接收的数据是多值数据,就是一个数组,它不想转成其它类型,直接把数组丢给dao */ public List<Emp> queryByArray(Integer[] empnos);EmpMapper.xml配置文件<select id="queryByArray" resultType="emp"> select <incl..._前端传入的是long型的数组后端在mybatis中怎么批量查询

python词云是什么意思_python生成词云-程序员宅基地

文章浏览阅读715次。前言在大数据时代,你竟然会在网上看到的词云,例如这样的。看到之后你是什么感觉?想不想自己做一个?如果你的答案是正确的,那就不要拖延了,现在我们就开始,做一个词云分析图,Python是一个当下很流行的编程语言,你不仅可以用它做数据分析和可视化,还能用来做网站、爬取数据、做数学题、写脚本替你偷懒……如果你之前没有编程基础,没关系。希望你不要限于浏览,而是亲自动手尝试一番。到完成的那一步,你不仅可以做出..._词云是什么意思

nginx_nginxl-程序员宅基地

文章浏览阅读469次。什么是nginxNginx (engine x) 是一个高性能的HTTP和反向代理web服务器,使用c语言编写的一款web服务软件.Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,在BSD-like 协议下发行。其特点是占有内存少,并发能力强,事实上nginx的并发能力在同类型的网页服务器中表现较好,中国大陆使用nginx网站用户有:百度、京东、新浪、网易、腾讯、淘宝等。为什么使用nginx?作用1.反向代理2.负载均衡。3.._nginxl