一、简介 最近在研究异构传感器定位方面的东西,读了一些论文。写个文章做个小结,主要是为了自我总结,也给有缘的网友们一起看看探讨探讨。以后每读一篇论文就再加一节。异构传感器(Heterogeneous sensor),是一个乍一看很高端的名词,其实异构的意思我的理解就是不同源的传感器,类似于camera、lidar、imu、rtk等传感器都是不同源的。那么异构传感器定位呢,就是利用不同源的传感器获
此代码合并了每一帧的激光点云数据,构成了激光点云地图.ground truth,即真值,在本文简写成GT。在kitti数据集中,GT代表了世界坐标系下相机的位姿真值,也就是Tcam2world经过我的一番推导,Pworld = Tcam2world * Tlidar2cam * Plidar(其实不一定对hhh)最终写成了以下代码 src/sum_liadrCloud.cpp //合并每一帧的
模块介绍 模块名称:DT-06 无线 模块功能:模块实现了模块串口与WiFi数据的实时透传 模块实物图片 模块特点 TTL-WiFi 模块基于 ESP-M2 WiFi 模块研发,引出串口 TTL、EN、STATE 等引脚。产品内置串口透传固件可完成设备 TTL 端口到 WiFi/云的数据实时透传,具备低功耗控制,状态指示等功能。模块可直接取代原有的有线串口,实现嵌入式设备数据采集和控制。
代码,cmake,launch等都在网盘链接中 链接: https://pan.baidu.com/s/14hWBDnRZC41xkqAk6FirtA 提取码: 1een--来自百度网盘超级会员v4的分享 1、简介 3D激光雷达和相机的融合指的是将激光雷达获得的3D点,投影到相机图像上,从而给图像每个像素点添加深度信息或者为雷达获取到的3D点添加RGB信息。效果如图: 可以知道
第一次写博客,难免有错误,大家多多指正! ORB-SLAM2: GitHub - raulmur/ORB_SLAM2: Real-Time SLAM for Monocular, Stereo and RGB-D Cameras, with Loop Detection and Relocalization Capabilities ORB-SLAM3: GitHub - JKTao/ORB
代码和数据网盘链接 链接: https://pan.baidu.com/s/11e1ICOxjYAZxdM4Gx0zlJg 提取码: inp1--来自百度网盘超级会员v4的分享 若在我给出的代码之上做了一些优化调整,希望能分享出来放在博客评论里,大家共同学习进步! 注意再运行此代码时anaconda和ros都应该已经安装好了;并且不会冲突(两者冲突比较常见自己当时调的比较麻烦)解决冲突的办法
0. 简介 作为常用的配准方法,ICP和NDT两种匹配被广泛应用于激光雷达的点云配准方法中。我们知道IPC的匹配主要是描述了点到点的匹配方法,而无法胜任点到面以及面到面的匹配,而本博客主要就是将向读者分析《Generalized-ICP》这篇论文,GICP可以通过点到点的距离作为损失函数求解point-to-point的损失函数,点到局部目标点局部拟合的平面距离作为point-to-pl
orb-slam 对应的github下载地址为:https://github.com/raulmur/ORB_SLAM2 实现仿真视频链接为:orb_slam_gazebo_PX4_simulation 概述 ORB-SLAM是西班牙Zaragoza大学的Raul Mur-Artal编写的视觉SLAM系统。他的论文“ORB-SLAM: a versatile andaccurate mono
0. 简介 作为SLAMer在建图时最怕的就是大量的动态障碍物存在,这会导致建图的不精确,而本文主要围绕着如何剔除动态障碍物开始讲起,并提供一种快速的过滤障碍物的方法。 1. 主要方法 在调研的过程中主要存在有两种方法,第一种如文章《通过帧间确定动态障碍物,剔除动态3D点云数据后用于生成栅格地图》所说的方法。通过扫描局部地图,并使用kd-tree完成点云的过滤,通过两帧之间的变化消除动态障碍
0. 简介 上一节中,我们过完了VIO中的状态预测以及特征点跟踪部分。此时我们已经拿到了光流的特征点信息,而这部分越来越接近我们想要去讲的帧到帧的VIO部分了。这一节,我们将围绕着VIO部分来进行讲解 1. PNP误差更新 我们从之前的博客《经典文献阅读之—R3LIVE》了解到,帧到帧的VIO是将三维地图点投影到上一个图像帧获取二维座标然后通过LK光流法获取到在当前帧的二维坐标,然后可以通过
修改launch文件 在之前将ouster-32的激光雷达设置成了静态IP。 因为设置了固定的雷达IP,所以就在launch文件中设置其参数,不用在用命令行的方式传入该参数 修改内容如下: <arg name="sensor_hostname" doc="hostname or IP in dotted decimal form of the sensor"/> 改为
ouster-32 ROS驱动 此 ROS 软件包支持所有固件 v2.0 或更高版本的 Ouster 传感器。启动后,驱动程序将配置并连接到选定的传感器设备,连接后,驱动程序将处理传入的IMU和激光雷达数据包,解码激光雷达帧并发布有关/ouster/imu和/ouster/points主题的相应ROS消息。如果传感器支持双回波并且已配置为使用此功能,则将发布另一个名为 /ouster/point
占据栅格地图(Occupancy Grid Map) 占用栅格地图基础概念 上图就是一个ROS中的占据栅格地图显示 栅格地图定义 :栅格地图就是用一个个栅格组成的网格来代表地图. 栅格里可以存储不同的数值, 代表这个栅格的不同含义. ROS的栅格地图使用 白色代表空闲,也就是可通过区域,其存储的值为 0; 黑色代表占用,也就是不可通过区域,其存储的值为 100; 灰色代表未知
一、整体介绍 这部分是整个系统的核心,因为这个系统就是建图的呀,建图的核心就是综合所有信息进行优化呀。我们前面几节介绍的所有的信息都会发送到这个节点中来供它使用。这部分的代码在文件apps/hdl_graph_slam_nodelet.cpp中。 这部分的代码看着挺多,如果我们能够对它所有的函数分类,就很容易梳理它的内容了。 我们刚才提到,它需要接收之前几节介绍的所有的信息,并加入概率图中,
做slam怎么能少得了闭环。 闭环检测的代码在文件include/hdl_graph_slam/loop_detector.hpp中,整个流程分布的很清晰,我们直接进入看代码的环节了 1. 整体流程 在调用闭环检测功能时,实际是调用的函数detect,所以我们直接看这个函数,就可以看出它的流程 std::vector<Loop::Ptr> detect(const std::v
地面检测的作用我们在第一节就讲过了,它为建图提供一个约束,可以提高建图精度。 地面检测的代码全都在apps/floor_detection_nodelet.cpp文件中,这是一个节点文件,里面关于订阅和发布数据的内容我们不讲了,只介绍关于检测的核心算法。 地面检测共分为三个步骤:1)根据高度参数把地面分割出来,由函数plane_clip完成 2)把地面点云中,去掉法向量和地面实际法向量差别较
一、整体介绍 在图优化中,关键帧的作用是不言而喻的,一个关键帧就对应一个顶点。在这个系统中,关键中对应的文件有两类: src/hdl_graph_slam/keyframe.cpp 和include/hdl_graph_slam/keyframe.hpp 它包含KeyFrame和KeyFrameSnapshot两个类。 KeyFrame类对应的所有优化相关的信息,包括gps、imu
前端里程计的主要代码在apps/scan_matching_odometry_nodelet.cpp中,它的主要作用是订阅点云、匹配得到位姿,并以odom形式发布位姿。 对于订阅发布数据之类的,属于ros的基础内容,我们不在这里介绍了,我们介绍核心内容,即点云配准这部分。 点云匹配包括两方面内容,一是根据配置文件选择点云匹配方法,二是根据订阅得到的点云去匹配得到位姿。 我们把这两方面内容分别
点云滤波的内容主要在apps/prefiltering_nodelet.cpp中,主要包括两步滤波,一是降采样,而是滤除离群点,我们分别介绍。 1. 降采样滤波 降采样滤波的代码如下 // select a downsample method (VOXELGRID, APPROX_VOXELGRID, NONE) std::string downsample_method = pn
非线性曲线拟合,高博士给的demo主要用谷歌ceres库实现,高斯牛顿方式实现,g2o库实现,这三个程序例子。 一.首先介绍ceres库安装与实现 ceres库是谷歌开发的C++库,用于建模和解决复杂的优化问题的。能用于解决非线性最小二乘问题。ceres介绍 ceres的官方安装链接:ceres安装文档 进入以上链接,首先下载文件,可以用git,或者点击最新稳定发布版本下载:
第三方账号登入
看不清?点击更换
第三方账号登入
QQ 微博 微信