【复现后续】jake 3991/sonar-SLAM,获取点云数据进行三维重建

本文介绍了在ROS环境中处理点云数据,包括解决rviz报错、点云数据的获取、转换和保存,以及使用ICP进行三维重建的过程。重点提到了如何使用PCL库,如话题选择、pcd文件操作和可视化工具的使用。

首先解决一下rviz报错的问题

又遇到了这个问题:
在这里插入图片描述

ros中启动rviz显示段错误,核心以转储问题_ros rviz启动报错-

终端输入:

export LIBGL_ALWAYS_SOFTWARE=1

解决:
在这里插入图片描述

后续:获取点云数据进行重建

This method employs the scan matching paradigm to align scans using dead-reckoning as an initial guess. Point clouds for ICP are generated by converting sonar images to in-plane clouds. Note that this system is 3DOF and we assume fixed depth motion.
该方法采用扫描匹配范例,使用航位推算作为初始猜测来对准扫描。ICP的点云是通过将声纳图像转换为面内云来生成的。注意,该系统是3DOF的,并且我们假设固定深度运动。
——jake 3991/sonar-SLAM:用于多波束声纳机器人的水下SLAM

ROS:bag数据包内容提取——雷达点云数据和imu数据_rosbag数据提取-
ROS学习篇(七)rostopic消息记录、回放、转.txt_ros topic 记录-

博主也是初学者,很多概念还不清楚,根据名字感觉feature应该是特征点,cloud应该是点云。但是在之后的操作中发现cloud话题中没有信息,所以暂且用feature代替点云,进行可视化(见下文)
下图中planer map部分的图像在最开始运行的时候并没有出现,不知道为什么,看着像是我想要的点云
feature extraction的点是特征点,按理来说把特征点都拿出来进行可视化,应该也能得到相似的形状
但是最终结果是一个扇形,看着就很奇怪,搞不懂

在这里插入图片描述

1.看一下有关于点云的topic

rosbag info /home/ubuntu/catkin_ws/data/sample_data.bag

在这里插入图片描述

在数据回放的时候:新建终端,在终端输入:

rostopic list -v

在这里插入图片描述

在这里插入图片描述

暂定topic是/bruce/slam/slam/cloud(错误的)

可以看到。rosbag info 中显示的话题和rostopic list显示的话题不太一样
在这里插入图片描述

2.保存pcd文件

rosrun pcl_ros bag_to_pcd <xxxxxx.bag> <topic> <output_directory>
# <xxxxxx.bag>指读取的bag数据包的名字
# <topic>指bag数据包雷达点云数据对应的topic名称
# <output_directory>指输出过程中所创建的目录名称,得到的pcd格式的雷达点云数据放在此目录下

在这里插入图片描述
报错bag包里没有需要的topic,尝试从原bag包里提取topic/重新录制bag:

  • 提取其中的数据成立新的bag包,失败:
    在这里插入图片描述
  • 尝试重新录制bag:
rosbag record -a	# -a表示录制所有节点发布的话题

在这里插入图片描述

可以看到应该是之前提取的topic不对,本来就没有信息,应该提取/bruce/slam/feature_extraction/feature

博主也是小白,不明白为什么这些topic没有信息,按理来说feature可能是特征点而cloud才是点云,但是下文先把feature当点云用

rosbag record -O feature /bruce/slam/feature_extraction/feature

在这里插入图片描述
在这里插入图片描述

可以看到点云数据已经提取到新bag包里了,然后转换成pcd文件:

rosrun pcl_ros bag_to_pcd /home/ubuntu/catkin_ws/data/feature.bag /bruce/slam/feature_extraction/feature /home/ubuntu/catkin_ws/data/pcd

在这里插入图片描述

3.点云可视化

HuangCongQing/点云可视化:可视化点云可视化(open3D,mayavi,rviz(ros),PCL等)

可视化代码来自点云库PCL学习——点云的格式、PCD文件的打开和显示_viewpoint pcd 点云修该获取视点-
CMakeLists来自ubuntu20.04安装pcl_ubuntu20.04 pcl1.12+vtk9.1+qt6-
多线程操作 GUI 程序崩溃_most likely this is a multi-threaded client and xi-
点云拼接代码来自如何将多个.pcd文件合并为一个包含点云数据的.pcd文件(python)?-腾讯云开发者社区-腾讯云
c++在linux系统下实现获取目录下所有文件名操作

在这里插入图片描述

好奇怪,怎么会是这个样子,获取的数据有问题

#include "iostream"
#include <pcl/io/pcd_io.h>     //pcd读写文件
#include <pcl/point_types.h>   //点类型文件
#include <pcl/point_cloud.h>   
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

tfnmdmx

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值