文章目录1算法原理1.1ORB组成1.2FAST关键点1.2.1ORB检测过程1.2.2存在问题——数量多、尺度和旋转1.2.3旋转解决1.3BRIEF描述子1代码实现n补充n.1Sobeln.2Harrisn.3boxFiltern.4FLANN快速最近邻??n.5SIFT和SURF1算法原理1.1和1.2内容引用高翔《视觉SLAM十四讲》。1.3内容引用:https://mp.weixin.qq.com/s/u5gSCwQ3XahF0fe19biAyQ1.1ORB组成“ORB特征亦由关键点和描述子两部分组成。它的关键点称为“OrientedFAST”,是一种改进的FAST角点。它的描述子称
连载文章,长期更新,欢迎关注:写在前面第1章-ROS入门必备知识第2章-C++编程范式第3章-OpenCV图像处理第4章-机器人传感器第5章-机器人主机第6章-机器人底盘第7章-SLAM中的数学基础第8章-激光SLAM系统第9章-视觉SLAM系统第10章-其他SLAM系统第11章-自主导航中的数学基础第12章-典型自主导航系统第13章-机器人SLAM导航综合实战 13.1运行机器人上的传感器 13.2运行SLAM构建地图 13.3运行自主导航 13.4基于自主导航的应用在“xiihoo机器人”中推荐使用基于激光的Cartographer和基于视
文章目录前言1.安装Pangolin所需依赖2.下载源码(旧版本)3.安装Pangolin(两种编译方法)4.Pangolin库测试遇到的问题解决方法前言Pangolin是一个用于OpenGL显示/交互以及视频输入的一个轻量级、快速开发库,下面是Pangolin的Github网址:https://github.com/stevenlovegrove/Pangolin下面介绍一下Pangolin的安装过程1.安装Pangolin所需依赖sudoaptinstalllibgl1-mesa-devsudoaptinstalllibglew-devsudoaptinstallcmakesudoapti
Ubuntu18.04+Android手机IMU+ROSMelodic跑ORB-SLAM2前言一、ROSMelodic在ubuntu系统18.04版本上的安装二、基于ROS,ORB_SLAM2的安装、配置、运行SLAM单目实例1、前期SLAM环境配置2、ROS下安装ORB_SLAM23、运行单目SLAM实例(1)下载数据集(2)编译(3)结果三、Android手机摄像头与PC建立通信传输1、Android工具下载2、连接热点将PC和Android手机置于同一局域网下四、Android手机摄像头相机参数标定(1)采集并保存图片(2)进行标定新建一个工作目录(3)编译运行,标定(4)参数填入ORB
SLAM可以说是近几年最火的机器人技术之一,也是机器人领域的关键技术。不少同学表示,学了几年还在「爬坑」,甚至感觉「越学越难」。本文通过整理机器人领域常用的SLAM算法架构及特点,希望为大家的方向选择提供一些参考。01 SLAM是啥?我们先界定一下SLAM技术。SLAM,是指即时定位和地图构建,一种同时实现机器人自身定位和环境地图构建的技术。原理是使用相机、激光雷达、惯性测量单元等传感器,来收集环境信息,然后用算法将这些信息融合起来,以确定机器人在未知环境中的位置,并构建一张环境地图。通过SLAM技术,机器人可以在未知环境中进行自主探索和导航。像家用的扫地机,就是一个非常好的应用实例。 SLA
前言 由于ORB-SLAM2在构建的时候只在地图中保留了特征点,对于使用RGB-D相机的小伙伴而言,更希望得到一个点云地图。好在ORB-SLAM2这个框架结构清晰,只需要单独添加一个线程用于维护点云地图,将ORB-SLAM2生成的关键帧传入点云地图构建线程,利用传入关键帧来生成点云地图,这就是基本思路了。其实这个工作高翔博士在早期就已经做过了,并上传到了github中。我的系统属性:操作系统:ubuntu20.04ROS:Noetic版本依赖库版本:eigen3.1.0、pcl-1.12、opencv3.2、vtk6.2、octomap1.9网站上流行的方式分为两种:一种是对o
在上一篇博文的最后提到过,基于高通QXRService已经开发出了能够获取到几乎所有基础数据的工具应用。今天就开始详细讲解如何基于高通QXRService进行程序开发,这一篇主要讲如何获取高通SLAMPose和IMUData。在之前的博文中已经介绍过,由于高通新的SDK在创建几个关键结构体句柄时,需要传入Java虚拟机内存首地址(JavaVM*)以及运行上下文(Context),所以对QXRService的开发是JNI层的Native开发,需要具备一些JNI编程的基础知识。另外,此文的一些具体细节对之前的这一篇博文进行了补充和修正:《QVRService:基于SnapdragonXR-SDK4
旋转轴/旋转角、旋转矩阵、四元数、李代数都可以表示旋转,那么这几者的转换是如何实现的呢?绕一个轴,旋转角度的旋转,例如,在三维空间中,以为轴,旋转45°,表示为,注意,旋转轴模长要化为1,旋转角度乘旋转轴即为旋转向量假如有一个点P(1,2,3),那么点P绕轴(0,0.7071,0.7071)转,后的位置,R为旋转矩阵,旋转向量到旋转矩阵的转化通过罗德里格斯公式实现 n右上面一个小帽子表示将向量n(n1,n2,n3)转化为反对称矩阵(skew-symmetirc) 从旋转矩阵转化回旋转轴和旋转角的方法是对旋转矩阵求迹tr(R) 转轴n是旋转矩阵R特征值1所对应的特征向量。通过特征向量的求解方法求
导航实现:SLAM建图先安装相关的ROS功能包:安装gmapping包(用于构建地图):sudoaptinstallros--gmapping安装地图服务包(用于保存与读取地图):sudoaptinstallros--map-server安装navigation包(用于定位以及路径规划):sudoaptinstallros--navigation 新建功能包,并导入依赖:gmappingmap_serveramclmove_base,其中gampping用于构建地图,map_server用于保存与读取地图,amcl用于定位,move_base用于路径规划(1)编写gmapping相关的lau
SLAM是Simultaneouslocalizationandmapping缩写,意为“同步定位与建图”,主要用于解决机器人在未知环境运动时的定位与地图构建问题。机器人在未知环境中从一个未知位置开始移动,在移动过程中根据位置和地图进行自身定位,同时在自身定位的基础上建造增量式地图,实现机器人的自主定位和导航。小车可以运行ros中激光雷达功能包,在PC端的rviz中可以查看;在启动底盘、键盘控制后可以控制小车移动;根据SLAM算法对实验室的环境进行建图;可以保存、读取地图,在PC端控制小车从A点到B点实现路径规划并自动避障。本文以冰达机器人小车为例,在实际使用过程中遇到了一些问题,总结出的较为