# FAST_LIO ROS2 pcd_save_en开启后不保存地图或触发pcl::IOExcepti。

> 原文链接：https://robotics.hellobike.com/pitfalls/2024-11-09-fast-lio-348
> 频道：pitfalls | 更新日期：2024-11-09 | 标签：auto, github-issue, fast_lio
> 核心摘要：因ROOT_DIR路径错误或SIGKILL导致自动保存失败，建议改用map_save服务手动触发；若报pcl::IOException需检查点云数据有效性。

# FAST_LIO ROS2 pcd_save_en开启后不保存地图或触发pcl::IOExcepti。

::: v-pre
> 本文由 AI 根据公开内容整理，可能有误，请以原文为准：[Don't save map](https://github.com/hku-mars/FAST_LIO/issues/348)（GitHub hku-mars/FAST_LIO #348）

**状态**：已解决

## 问题

在Ubuntu 22.04 ROS2 Humble下运行FAST_LIO，配置pcd_save_en为true后节点退出时未生成PCD文件且无"current scan saved"日志。部分用户尝试调用map_save服务时报错pcl::IOException: Input point cloud has no data!并导致进程崩溃，但相同数据集在ROS1 Docker环境中正常。

## 环境

Ubuntu 22.04, ROS2 Humble, FAST_LIO (hku-mars), Ouster64 LiDAR

## 解决办法

1. 检查非标准目录结构下ROOT_DIR变量是否正确解析，必要时在代码中硬编码绝对路径作为临时绕过方案。
2. 确认节点退出前终端是否打印"&gt; current scan saved to /PCD/"，若无则说明roslaunch发送SIGKILL过早导致IO未完成，需延长关闭超时或改用手动保存。
3. 调用std_srvs/Trigger类型的map_save服务手动触发保存，避免自动保存受IO性能影响或被信号中断。
4. 若触发map_save时报pcl::IOException且提示Input point cloud has no data，需检查待保存点云尺寸是否为空，确保订阅的点云Topic有有效数据流入后再执行保存操作。

讨论原作者：@Parkeunseok 等，版权归原作者所有。
:::

## 原始参考来源 (Sources)

- [GitHub hku-mars/FAST_LIO #348：Don't save map](https://github.com/hku-mars/FAST_LIO/issues/348)