- 博客(13)
- 资源 (3)
- 收藏
- 关注
原创 ICP算法(迭代最近点算法)详细推导
达代最近点算法( Iterative closest point,简称ICP),是一种广泛使用的点云匹配方法,是求解两个点云集合转换关系的常用方法。本文将首先给出问题的数学描述与模型,列出具体的计算方法,并一步步详细进行推导。详细的内容请参考论文[1]。1. 问题描述有两组点云,分别用,表示,其中为参考帧,为当前帧的点云,共有N个点。我们需要计算从到的变化参数,即旋转R和半移T。如果变换参数是准确的,那么点云中的每一个点,经过变换后应该与点云中的点完全重合,即:。但由于有噪声的存在,不可能所有点都完
2020-09-03 11:20:29
2618
4
原创 罗德里格斯(Rodrigues)变换
opencv C++实现#include <iostream>#include <opencv2/opencv.hpp>#include <opencv2/core.hpp>int main(){ double r_vec[3] = { -2.100418,-2.167796,0.273330 }; cv::Mat pr_vec(1, 3, CV_64FC1, r_vec); std::cout << "pr_vec = " <&l
2020-05-29 17:44:02
8312
原创 vcpkg构建工程,将vcpkg安装的库应用到构建的工程中(适用于vcpkg没有构建库,需要自己构建)
vcpkg为了使安装的库加入到构建的工程中,提供了工具链来加入到工程中。使用如下指令:.\vcpkg.exe integrate install会得到如下提示:CMake projects should use: "-DCMAKE_TOOLCHAIN_FILE=D:/vcpkg/scripts/buildsystems/vcpkg.cmake"因此,在接下来,我们使用cmake编译构建工程时可以如下使用:1、对于在cmd终端或者powershell终端构建camke工程c
2020-05-27 12:20:31
1343
原创 CLion配置OpenCV并测试
准备工作:相对于windows可以下载opencv的.exe,或者从源码编译生成install,然后将bin目录添加到用户环境变量或者系统环境变量中去(例如:D:\Program Files (x86)\OpenCV4.2.0\x64\vc15\bin)然后创建一个CLion工程:测试代码(C++)main.cpp#include <iostream>#include <opencv2/core.hpp>#include <opencv2/opencv
2020-05-14 20:22:58
1126
原创 CNN-SLAM:实时密集单目SLAM,可学习深度预测
摘要:考虑到卷积神经网络在深度预测方面的最新进展(CNNs)。本文研究了如何利用深度神经网络的预测深度图进行精确、密集的单眼重建。我们提出一种将cnn预测的稠密深度图与直接单目SLAM测得的深度融合在一起的方法。我们的融合方案在单目SLAM方法容易失败的图像位置(如低纹理区域)的深度预测方面具有优势,反之亦然。我们演示了使用深度预测来估计重建的绝对规模,从而克服了单眼SLAM的主要局限性之一。...
2020-05-07 18:44:46
3438
原创 Ubuntu18.04 无法获得锁 /var/lib/dpkg/lock-frontend - open (11: 资源暂时不可用)---解决方法
问题:~$ sudo apt-get update && sudo apt-get upgrade或当运行sudo apt-get install/update/或其他命令时,由于各种说不清的原因有时会出现如下提示:E: 无法获得锁 /var/lib/dpkg/lock-frontend - open (11: 资源暂时不可用)E: 无法获取 dpkg 前端锁 (/va...
2020-05-07 09:12:40
4773
1
原创 RTAB-Map作为一个开放源代码的激光雷达和视觉SLAM库大规模和长期的在线操作
摘要:RTAB-Map从2013年开始作为开源库发布,最初是一种基于外观的闭环检测方法,带有内存管理,用于处理大规模、长期的在线操作。然后,它发展到在各种机器人和移动平台上实现同步定位和映射(SLAM)。由于每个应用程序在传感器、处理能力和移动方面都有自己的局限性,因此就成本、准确性、计算能力和集成的方便性而言,它提出了采用哪种SLAM方法最合适的问题。由于大多数SLAM方法要么是可视化的,要...
2020-05-04 18:07:34
5294
原创 opencv-contrib编译(两种自己编译opencv源码方式)
为了能够很好的使用opencv提供的一些扩展模块和一些付费模块,需要进行从源码编译生成适应于C++和python的库。第一种、opencv的C++库的编译(需要电脑有VS2017,VS2019等环境)(1)下载源码分别从github上下载release稳定版的opencv源码和opencv-contrib源码,以opencv 4.2.0和opencv-contrib4.2.0为例:...
2020-05-01 18:22:41
1380
原创 cv2.drawKeypoints函数(opencv学习)
函数表示:cv2.drawKeypoints(image, keypoints, outImage, color=None, flags=None)image 原始图像,可以使三通道或单通道图像; keypoints 特征点向量,向量内每一个元素是一个KeyPoint对象,包含了特征点的各种属性信息; outImage 特征点绘制的画布图像,可以...
2020-05-01 17:46:34
16497
原创 极线几何(opencv学习)
目标在这一章中,我们将学习多视图几何的基础知识。 我们将看到什么是极点,极线,极线约束等。基本概念当我们使用针孔相机拍摄图像时,我们会丢失一个重要的信息,即图像的深度。或者从相机的图像中的每个点有多远,因为它是3D到2D的转换。所以使用这些摄像头是否能找到深度信息是一个重要的问题。一个解决方案是使用多个相机。我们的眼睛以类似的方式使用两个相机(两只眼睛),这就是所谓的立体视觉。那...
2020-05-01 17:16:58
4200
4
原创 相机标定
想要从二维图像中获取到场景的三维信息,相机的内参数是必须的,在SLAM中,相机通常是提前标定好的。张正友于1998年在论文:"A Flexible New Technique fro Camera Calibration"提出了基于单平面棋盘格的相机标定方法。该方法介于传统的标定方法和自标定方法之间,使用简单实用性强,有以下优点:不需要额外的器材,一张打印的棋盘格即可。 标定简单,相机和标定...
2020-05-01 16:38:12
721
原创 第1章 ZLG7290B 简介
1.1、主要特性(1)直接驱动8位共阴式数码管(1英寸以下)或64只独立的LED;(2)能够管理多达64只按键,自动清除抖动,其中8只可以作为功能键使用;(3)段电流可达20mA,位电流可达100mA以上;(4)利用功率电路可以方便的驱动1英寸以上的大型数码管;(5)具有闪烁、段点亮、段熄灭、功能键、连击键计数等强大的功能;(6)提供有10种数字和2
2018-01-17 15:56:52
1187
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人