获取点云数据进行三维重建
首先解决一下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>

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

被折叠的 条评论
为什么被折叠?



