跑通A-LOAM并保存点云地图!

2024-02-08 09:58
文章标签 保存 地图 点云 loam 跑通

本文主要是介绍跑通A-LOAM并保存点云地图!,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

本文旨在帮助读者迅速跑通3D激光SLAM算法A-LOAM!代码解读请参考笔者专栏:

A-LOAM源码详解,激光雷达配置参考单、双激光雷达启动与双激光雷达的外参标定(VLP-16)。

废话不多说,直接开始!

一、A-LOAM安装

A-LOAM需要用到ceres库与pcl库,请确保已完成安装。

A-LOAM下载编译:

#创建工作空间
mkdir -p ~/aloam_ws/src
cd ~/aloam_ws/src
catkin_init_workspace#克隆A-LOAM源码
git clone https://github.com/HKUST-Aerial-Robotics/A-LOAM.git#编译
cd ../
catkin_make
source ~/aloam_ws/devel/setup.bash

二、A-LOAM跑数据包

运行A-LOAM:

#运行A-LOAM
roslaunch aloam_velodyne aloam_velodyne_VLP_16.launch

运行rosbag:

#在你的bag文件夹下运行
rosbag play xxx.bag

这里提供一个供测试用的bag,链接:rosbag,提取码:diiq

三、Turtlebot3跑A-LOAM(velodyne16)

首先确保Turtlebot3激光雷达配置完成,方法见笔者单、双激光雷达启动与双激光雷达的外参标定(VLP-16)。

启动Turtlebot3:

#启动turtlebot底盘
roslaunch turtlebot3_bringup turtlebot3_robot.launch#另起终端启动键盘控制
roslaunch turtlebot3_teleop turtlebot3_teleop_key.launch

如此就可以通过键盘wxads(前后左右停)控制Turtlebot3。

启动velodyne16:

#启动激光雷达
roslaunch velodyne_points VLP16_points.launch

启动A-LOAM:

roslaunch aloam_velodyne aloam_velodyne_VLP_16.launch

控制Turtlebot3运动,就能在rviz中看到所建地图了。

四、数据包创建

如果想要创建一个属于自己的rosbag,很简单,在启动A-LOAM后,另起终端开始记录数据:

#创建rosbag
rosbag record -o xxx.bag /velodyne_points /laser_cloud_surround

其中xxx为创建的bag名,/velodyne_points为激光雷达发布点云话题名,/laser_cloud_surround为A-LOAM所建地图话题名。如此就创建了我们自己的rosbag,便于后期调优。

五、点云地图保存与查看

点云地图保存,第一种:

#运行A-LOAM
roslaunch aloam_velodyne aloam_velodyne_VLP_16.launch#另起终端运行rosbag
rosbag play xxx.bag#另起终端用bag_to_pcd方法保存点云图
rosrun pcl_ros bag_to_pcd xxx.bag /laser_cloud_surround pcd

运行结束,可以看到生成了一个pcd文件夹,将里面的文件按照修改时间排序,最新的就是最后的点云地图pcd文件。

点云地图保存,第二种:

#运行A-LOAM
roslaunch aloam_velodyne aloam_velodyne_VLP_16.launch#另起终端运行rosbag
rosbag play xxx.bag#另起终端,用pointcloud_to_pcd方法保存点云图
mkdir pcd
cd pcd
rosrun pcl_ros pointcloud_to_pcd input:=/laser_cloud_surround

运行结束,可以看到生成了一个pcd文件夹,将里面的文件按照修改时间排序,最新的就是最后的点云地图pcd文件。

点云地图查看:

pcl_viewer xxx.pcd

pcd点云地图转ply格式

pcl_pcd2ply xxx.pcd xxxxxxx.ply

当我们需要用第三方软件(MatLab/MeshLab)对点云地图进行处理时就需要将pcd转为ply,其中MeshLab必须使用由pointcloud_to_pcd方法创建pcd转成的ply格式点云!

这篇关于跑通A-LOAM并保存点云地图!的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/690671

相关文章

无人叉车3d激光slam多房间建图定位异常处理方案-墙体画线地图切分方案

墙体画线地图切分方案 针对问题:墙体两侧特征混淆误匹配,导致建图和定位偏差,表现为过门跳变、外月台走歪等 ·解决思路:预期的根治方案IGICP需要较长时间完成上线,先使用切分地图的工程化方案,即墙体两侧切分为不同地图,在某一侧只使用该侧地图进行定位 方案思路 切分原理:切分地图基于关键帧位置,而非点云。 理论基础:光照是直线的,一帧点云必定只能照射到墙的一侧,无法同时照到两侧实践考虑:关

2、PF-Net点云补全

2、PF-Net 点云补全 PF-Net论文链接:PF-Net PF-Net (Point Fractal Network for 3D Point Cloud Completion)是一种专门为三维点云补全设计的深度学习模型。点云补全实际上和图片补全是一个逻辑,都是采用GAN模型的思想来进行补全,在图片补全中,将部分像素点删除并且标记,然后卷积特征提取预测、判别器判别,来训练模型,生成的像

全英文地图/天地图和谷歌瓦片地图杂交/设备分布和轨迹回放/无需翻墙离线使用

一、前言说明 随着风云局势的剧烈变化,对我们搞软件开发的人员来说,影响也是越发明显,比如之前对美对欧的软件居多,现在慢慢的变成了对大鹅和中东以及非洲的居多,这两年明显问有没有俄语或者阿拉伯语的输入法的增多,这要是放在2019年以前,一年也遇不到一个人问这种需求场景的。 地图应用这块也是,之前的应用主要在国内,现在慢慢的多了一些外国的应用场景,这就遇到一个大问题,我们平时主要开发用的都是国内的地

下载/保存/读取 文件,并转成流输出

最近对文件的操作又熟悉了下;现在记载下来:学习在于 坚持!!!不以细小而不为。 实现的是:文件的下载、文件的保存到SD卡、文件的读取输出String 类型、最后是文件转换成流输出;一整套够用了; 重点: 1:   操作网络要记得开线程; 2:更新网络获取的数据 切记用Handler机制; 3:注意代码的可读性(这里面只是保存到SD卡,在项目中切记要对SD卡的有无做判断,然后再获取路径!)

FFmpeg系列-视频解码后保存帧图片为ppm

在正常开发中遇到花屏时怎么处理呢?可以把解码后的数据直接保存成帧图片保存起来,然后直接看图片有没有花屏来排除是否是显示的问题,如果花屏,则代表显示无问题,如果图片中没有花屏,则可以往显示的方向去排查了。 void saveFrame(AVFrame* pFrame, int width, int height, int iFrame){FILE *pFile;char szFilename[

Imageview在百度地图中实现点击事件

1.首先第一步,需要声明的全局有关类的引用 private BMapManager mBMapMan; private MapView mMapView; private MapController mMapController; private RadioGroup radiogroup; private RadioButton normalview; private RadioBu

MMO地图传送

本篇由以下四个点讲解: 创建传送点 传送点配置 编辑器扩展:传送点数据生成 传送协议与实现 创建传送点 建碰撞器触发 //位置归零 建一个传送门cube放到要传送的位置(这个teleporter1是传出的区域 这是从另一张地图传入时的传送门 创建一个脚本TeleporterObject给每个传送cube都绑上脚本 通过脚本,让传送门在编辑器下面还能绘制出来

【LVI-SAM】激光雷达点云处理特征提取LIO-SAM 之FeatureExtraction实现细节

激光雷达点云处理特征提取LIO-SAM 之FeatureExtraction实现细节 1. 特征提取实现过程总结1.0 特征提取过程小结1.1 类 `FeatureExtraction` 的整体结构与作用1.2 详细特征提取的过程1. 平滑度计算(`calculateSmoothness()`)2. 标记遮挡点(`markOccludedPoints()`)3. 特征提取(`extractF

html记账本改写:数据重新布局,更好用了,没有localStorage保存版本

<!DOCTYPE html><html lang="zh-CN"><head><meta charset="UTF-8"><title>htm记账本</title><style>table {user-select: none;/* width: 100%; */border-collapse: collapse;}table,th,td {border: 1px solid bla

在项目中,控制权限保存时,如果多次修改权限,该如何写?

在项目中,控制权限保存时,如果多次修改权限,该如何写? 错误代码: package cn.itcast.crm.service.impl;import java.util.List;import javax.annotation.Resource;import org.apache.commons.lang.xwork.StringUtils;import org.springfr