fast-livo2修改笔记

1 在fast-livox2/src/LIVMapper.cpp下找到savePCD函数,将这段函数改为下面这段

void LIVMapper::savePCD()

{

std::cout << "\n=======================================================" << std::endl;

std::cout << ">>> 收到 Ctrl+C 退出指令,正在执行保存 PCD 的终极操作... <<<" << std::endl;

std::cout << "内存中已收集的 RGB 点云数量: " << pcl_wait_save->points.size() << std::endl;

std::cout << "内存中已收集的 Intensity 点云数量: " << pcl_wait_save_intensity->points.size() << std::endl;

// 自动获取你的系统主目录,强制保存到桌面,避开所有路径陷阱

std::string home_dir = getenv("HOME");

std::string raw_points_dir = home_dir + "/Desktop/fast_livo2_raw.pcd";

std::string downsampled_points_dir = home_dir + "/Desktop/fast_livo2_downsampled.pcd";

pcl::PCDWriter pcd_writer;

if (pcl_wait_save->points.size() > 0)

{

std::cout << "正在以二进制格式保存【RGB彩色点云】到: " << raw_points_dir << std::endl;

pcd_writer.writeBinary(raw_points_dir, *pcl_wait_save);

std::cout << "正在进行体素降采样以减小文件体积..." << std::endl;

pcl::PointCloud<pcl::PointXYZRGB>::Ptr downsampled_cloud(new pcl::PointCloud<pcl::PointXYZRGB>);

pcl::VoxelGrid<pcl::PointXYZRGB> voxel_filter;

voxel_filter.setInputCloud(pcl_wait_save);

voxel_filter.setLeafSize(0.15, 0.15, 0.15);

voxel_filter.filter(*downsampled_cloud);

pcd_writer.writeBinary(downsampled_points_dir, *downsampled_cloud);

std::cout << ">>> 成功!已保存原始点云与降采样点云至桌面! <<<" << std::endl;

}

else if (pcl_wait_save_intensity->points.size() > 0)

{

std::cout << "正在以二进制格式保存【Intensity单色点云】到: " << raw_points_dir << std::endl;

pcd_writer.writeBinary(raw_points_dir, *pcl_wait_save_intensity);

std::cout << ">>> 成功!已保存 Intensity 点云至桌面! <<<" << std::endl;

}

else

{

std::cout << ">>> 致命错误:内存容器中没有任何点云!建图过程中数据未能进入保存队列。 <<<" << std::endl;

}

std::cout << "=======================================================\n" << std::endl;

}

2 关于运行后pcd的保存路径

在savePCD()函数下的std::string raw和string downsampled 把路径改成删去desktop

3 catkinmake再source

用pcl看pcd:

pcl_viewer ~/fast_livo2_raw.pcd

cloudcompare.CloudCompare

相关推荐
摇滚侠5 分钟前
《SpringBoot 3:入门与应用实战》第 13 章 整合 MyBatis 使用 MyBatis-Plus 阅读笔记 40
spring boot·笔记·mybatis
INS_KF9 小时前
【编程笔记】成员函数中两个 const 的区别(const Data &getData() const;)
前端·javascript·笔记
tju新生代魔迷11 小时前
Verilog HDL 学习笔记(十三)| 第13章 编程语言接口(PLI)
笔记·学习
点心的游戏开发世界12 小时前
UnityShaderGraph滚动UV笔记
笔记·uv
瑞码空间12 小时前
git知识点黄金笔记
笔记·git·elasticsearch
天若有情67314 小时前
Node+MySQL小型全栈笔记项目实战课程分享
数据库·笔记·mysql
摇滚侠16 小时前
《SpringBoot 3:入门与应用实战》第 12 章 JDBC 与事务 JDBC 事务管理 阅读笔记 33
spring boot·笔记·后端
Wendy不吃榴莲17 小时前
# AI短剧教程 - 《后西游记》开播后,AI影视为什么更考验“连续讲故事”?
人工智能·笔记·学习·ai·视频
Agudamu116117 小时前
B站学习视频怎么变笔记:用 Ai好记 + Obsidian 搭建个人知识库的完整教程
人工智能·笔记·学习·音视频
疯狂打码的少年19 小时前
【数据库技术】SQL嵌套查询(IN/EXISTS/ANY/ALL)
数据库·笔记·sql