基于win+ubuntu双系统的FAST-LIVO2部署流程
Ubuntu 双系统的安装部分,我基本复制了Ubuntu/Windows双系统安装巨详细——全面解决各种问题(疑难杂症),有手就行 。为了防止初学者在两个网页窗口之间来回跳跃跟跑产生困惑,我将核心安装步骤搬运至此。
在进行任何双系统操作前,请务必进入设置将 Windows Hello 的安全认证关闭(即取消人脸识别、指纹、PIN 码,确保系统无密码即可进入桌面)。否则,安装双系统的引导改变极有可能触发安全机制,导致之后无法启动进入 Windows 系统!
一、 Ubuntu 双系统安装流程
1.1 制作Ubuntu启动盘
你需要一个容量大于8GB的空u盘(不是空的也没事,但是制作启动盘会格式化u盘,所有东西都会丢失!),然后才能开始制作。
推荐使用rufus制作启动盘:下载Rufus-4.13.exe
下载完后可以直接打开,我们还需要到ubuntu的官网去下载系统iso镜像:下载Ubuntu桌面系统
目前建议下载Ubuntu 20.04.3 LTS(long-term support),虽然21.04已经推出,但是毕竟没有长期支持版来的稳定,并且20.04会持续提供性能和安全性更新。
镜像下载好之后,打开rufus:

有几个需要修改的地方已经用红色圈出。
- 设备会自动扫描你插入的u盘,如果你有多个u盘插入,请选择要写入镜像的u盘,别搞错了。
- 镜像文件选择下载好的Ubuntu iso系统镜像。
- 分区类型务必选择GPT分区表
- 目标类型务必选择UEFI(非CSM)
- 若你的BIOS只支持NTFS,要改成NTFS,不过一般都是支持FAT32的,先用FAT32,如果不行再回来改
然后点击开始,这里选择“以iso镜像模式写入”
1.2. 利用 DiskGenius 划分空间
原教程使用的是系统自带的磁盘管理,这里笔者推荐使用 DiskGenius。打开软件,找一个空闲容量较大的盘(比如硬盘的D盘),右键磁盘蓝色条,选择“调整分区大小”。

在弹出的窗口中,压缩出一部分空间用于安装 Ubuntu(建议 100GB 以上即可,视个人需求而定)。压缩完成后,你的磁盘列表里会多出一块显示为“空闲”的灰色未分配空间。注意:千万不要去新建分区或者格式化它,留着空白就行。

1.3 准备工作(BIOS设置)
1.3.1关闭BitLocker
bitlocker是微软出品的用于保护硬盘的加密系统,按下win+S搜索BitLocker,点击进入后将其关闭,否则它将禁止任何非window的系统或设备对硬盘进行写入操作。
1.3.2 关闭安全启动(secure boot)和快速启动(fast boot)
首先查询你的电脑如何进入BIOSQ,一般是ESC、DEL、F2、F10、F12等。
重启电脑(保持启动盘插入),进入BlOS,找到Secureboot和FastBoot,将他们关闭,记得退出前保存。
1.3.3关闭平台可信模块(TPM)
同样是在BIOS中,关闭TPM(TrustedPlatformQModule),否则可能会禁止外界设备访问硬盘或CPU。若未开启或没有这个选项,则跳过不管。一般来说,此选项和Secure boot一起,在Secure(安全)选项卡下。
1.3.4如果你是dell电脑..
请仔细查看官网的说明:如何启用戴尔设备的安全启动功能|Dell中国,务必将启动模式调整为UEFl,并关闭安全启动。此外,请查看bios选项中的SystemConfigurationQ,若你的硬盘链接协议是SATARAID,请接着看1.3.5。
1.3.5 如果你是机械硬盘+固态硬盘..
一般来说,这时候你的电脑将以SATARAI的方式链接不同的硬盘,然而RAID是一个古老的技术,ubuntu不支持从这种方式启动。首先退出bios正常开机,进入windows之后win+R,输如msconfig回车:

进入“引导”选项卡,将引导选项设置成安全引导,选择最小,然后重启电脑,进入bios。
这时候,将bios中的sata operation改成AHCl,再保存退出BIOS,进入系统,这时候会进入安全模式Q,别慌。再次win+R,
msconfig回车,在”引|导“选项卡关闭安全引导,然后重新启动,看看是否正常进入windows。
1.3.6如果你的电脑使用了傲腾内存或开启了intelRST..
在BIOS中可以看到你的电脑是否启用的快速存储技术(找一找)。直接参照这个链接,一把搞定:DisableRSTforInstallingubuntu 20.4 Dual boot-Ask Ubuntu
1.4 开始安装配置
确保以上的步骤完成后,进入bios,把你的启动盘在启动顺序中调整到第一位,保存退出,重启后就会进入grub界面:

直接回车,就会进入Ubuntu的安装界面了:

选择安装Ubuntu,然后选择简体中文,随后继续选择中文:

先不联网,因为还没有换源,这时候下载的话会慢的半死:

可以选择最小安装,省空间。如果你空间够大,也可以用正常安装,会装好一些媒体播放工具和邮件之类的,还有办公套件libreoffice(和msoffice差不多),其实也没什么用:

1.5 分区设置(重点)
在“安装类型”界面,一定要选择最下面的“其他选项”,这样才可以自己手动分区。

此时会列出你的所有磁盘详细信息。找到刚才用 DiskGenius 分出来的那块显示为“空闲”的空间,根据大小判断就可以,笔者分的是70GB。

- EFI系统分区:大小设为
512MB,新分区类型选“主分区”或“逻辑分区”均可,空间起始位置,用于:“EFI系统分区”。(这是启动引导所在的地方,非常重要) - 随后是根目录,稍微分大一些,因为很多程序默认安装在根目录下的opt文件夹 里,新手就不要随便乱改安装位置了,这里分配了40GB给/,注意分区类型选择主分区。
- 最后是home目录,相当于用户自己的空间,和windows下的C盘之外的空间差不多的概念,剩下的空间全部给/home,有些教程会让你分SWAP(虚拟内存),不过现在大家的内存都很大,所以没这个必要。这里注意选择逻辑分区:
分区分完以后,_再次注意!!!_安装启动引导器(bootloader )的设备要选择刚刚新分配的EFI分区,千万别和windows的EFI分区搞错了,不然直接凉凉。可以通过大小来区别两者(我们分配的大小会是511MB):

选择现在安装,他会再让你确认一下是不是要把文件系统 写入,确定启动器位置安装无误后继续。where you are这里直接继续就行了:
时区直接在地图上点击中国所在的区域,下方会显示 “Shanghai”,点击继续。

在“您是谁?”这个界面,如果您是为了跟跑部署FAST-LIVO2,建议将“您的姓名”和“输入用户名”全部统一设置为
ftlian。密码设置个简单的(例如直接设为123456),建议勾选“自动登录”。
开始安装:

弹处这个界面就是安装好了,直接重启:

拔掉启动盘,按回车:

重启之后会进入grub,如果还是windows,就先进入bios调整一下启动顺序,把ubuntu放到windows前面:

第一个回车就会进入ubuntu,如果要进入windows,进入第三个就是了。

1.6 进入ubuntu后的基础设置
- 考虑到FAST-LIVO2很多东西需要进行联网部署下载环境,需要进行换源
- 在 Ubuntu 桌面空白处右键,选择“在终端中打开”(或者直接同时按住键盘上的 Ctrl + Alt + T 键),调出一个类似于命令行的黑框(终端)。
- 先备份一下系统原来默认的软件源列表。将下面这行代码复制粘贴到终端中,然后按回车。(注意: 因为代码前面带了 sudo 提权指令,系统会要求你输入密码。输入刚才设置的登录密码时屏幕依旧没有任何星号提示,盲打完敲回车即可)
sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak - 接着,我们将默认的国外源网址直接替换为国内阿里云的镜像网址。直接把下面这两行代码一次性复制进终端,并按回车运行:
sudo sed -i 's/cn.archive.ubuntu.com/mirrors.aliyun.com/g' /etc/apt/sources.list sudo sed -i 's/archive.ubuntu.com/mirrors.aliyun.com/g' /etc/apt/sources.list - 网址修改完毕后,我们需要让系统重新联网读取一下最新的软件列表,输入以下代码并回车运行:
sudo apt update
此时屏幕上会开始滚动大量的Get:1 http://mirrors.aliyun.com...字样,静候几十秒钟,当代码停止滚动,且末尾没有弹出红色报错提示,换源操作即完成
- 将启动项从默认的ubuntu换成windows,通常开机时的那个系统选择界面(GRUB 界面),计算机的排序是从0开始数的:第一行是Ubuntu(设为0),第二行是Ubuntu高级选项(设为1),你的 Windows 系统一般在第三行,也就是对应数字2。具体修改步骤如下:
- 在 Ubuntu 桌面空白处右键,选择“在终端中打开”(或者直接同时按住键盘上的 Ctrl + Alt + T 键),调出一个类似于命令行的黑框(终端)。
- 输入以下命令并按回车(提示输入密码时盲打回车即可),打开启动项配置文件,可能有些卡,没有报错就耐心等待:
sudo gedit /etc/default/grub - 这个时候屏幕上会弹出一个类似 Windows 记事本的文本编辑窗口。找到:
GRUB_DEFAULT=0,将其修改为Windows启动项条目对应行数-1的值,一般为GRUB_DEFAULT=2,点击右上角保存,关闭gedit - 回到命令行,输入
sudo update-grub,更新系统设置
二、 Ubuntu 系统设置及 FAST-LIVO2 部署
需要注意的是,本步骤需要一定的英语阅读能力,对于初涉计算机的小白,很容易将所有黑框白字的英文字符全部当成不能理解的报错,将其当成一个工具去使用它,理解他的心态是很重要的。
在使用 Ubuntu 系统时,如不会配置网络代理的规则,请关闭诸如 clash,ssr,easyconnects 等网络代理软件。
接下来的步骤参考并使用了 B站UP主萝卜头vision的流程及部署脚本(下称脚本),下文参考视频如下:# Windows一键跑通FAST-LIVO2,闭眼跟做就行。笔者亦对脚本做出了较大幅度的修改,如您需要,可在本博客下方留言,笔者在后台看到即会联系你,不要钱。
- 将脚本文件整体复制到主文件夹下,推荐目录为
/home/当前用户名/Fast_livo2_env,也就是终端里的$HOME/Fast_livo2_env。随后在该文件夹下属的环境构建build_sh文件夹中打开终端: - 将
$HOME/Fast_livo2_env提权至任何人可读写,中间有一部分,需要你输入刚才设定的密码。**在输入密码时,屏幕上不会给出任何提示,具体来讲,不会显示常见的“*******”这种密码表现形式,盲打即可!**直接将我打好的命令复制过去即可:sudo chmod -R 777 "$HOME/Fast_livo2_env" - 安装编译工具链:
sudo ./1-install_cmake_toolchain.sh - 根据界面提示,输入
glxgears,检查是否有正在转动的齿轮,若无需要更换ubuntu版本,检查后关闭齿轮页面。glxgears - 运行脚本配置 python-pip 镜像,:
./2-set-pip-mirror.sh - 安装 vscode,在使用 “code .” 命令时,中间可能会有一些提示窗,点击 allow,在进入 vscode 后,trust(信任)父目录的作者,并点击左侧的允许。
./3-install_vscode.sh #安装vscode code . #该命令作用为运行vscode,以后需要运行vscode都需要使用该命令 - 构建 sophus、ceres。
./5-build_sophus.sh ./6-build_ceres.sh - 安装 ros1,该步很容易会有网络环境原因导致脚本运行出错的情况,如出现请多尝试几次,根据命令行的提示来观察是否出现错误,包括但不限于 ERROR,time out,Connection failed,Too many requests 等字符,根据脚本提示,依次选择:
[1]:一键安装(推荐):ROS(支持ROS/ROS2,树莓派Jetson)
[1]:更换系统源再继续安装
[2]:更换系统源并清理第三方源
[1]:自动测速选择最快的源
[1]:中科大镜像源 (推荐国内用户使用)
[3]:noetic(ROS1)
[1]:noetic(ROS1)桌面版wget http://fishros.com/install -O fishros && . fishros- 在命令行提示如下所示的字符时,即代表安装完成,但要仔细核查中间是否有脚本出错
Add distro "rolling" updated cache in /home/ftlian/.ros/rosdep/sources.cache - 测试 ros1 安装是否完善,通过第一步的方式,再打开一个新的命令行窗口,并输入:
gazebo- 如 gazebo 打开一个新窗口可以运行,关闭其窗口,如上步所示,再打开一个新的命令行窗口,并运行以下命令:
roscore#如提示以下类似命令,即为正常运行 ... logging to /home/ftlian/.ros/log/9fcbd648-e92b-11f0-8892-e76d4afb4d1d/roslaunch-FTLian-laptop-185487.log started roslaunch server http://localhost:43107/ ROS_MASTER_URI=http://localhost:11311/ started core service [/rosout]- 保留上面那个窗口,打开第三个命令行窗口运行以下命令,如正常打开 Rviz 监控程序,关闭即可,至此,ros1 测试完毕。
rosrun rviz rviz
- 关闭多余的命令行窗口,在第一个命令行窗口安装opencv420依赖库
./9-build_opencv420_local.sh安装ros-cv-bridge插件
sudo apt update sudo apt install ros-noetic-cv-bridge - 构建 fast_livo2,运行以下命令,至此,fast_livo2 部署流程完毕。修正后的脚本会自动使用当前用户的
$HOME/Fast_livo2_env/ws_fast_livo2作为工作空间路径,不再需要手动把脚本中的用户名改成ftlian。./9-build_fast_livo2.sh
常见错误
- 如果在第 12 步出现 command not found 等错误,重新安装 ros1,即第 9 步。
- 由于网络环境原因,在安装时如出现 “time out”,“Connection failed”,“Too many requests”等提示均为网络错误,有两种解决方式:
- 根据运行时的脚本断点,手动输入接下来的脚本
- 重运行脚本
三、 物理硬件连接
硬件部署采用简达硬件同步器 Avia 版,海康 MV-CS050-10GC,大疆 Livox Avia。上手较易,基本的接线连接方式及原理图如下:
- 根据上一章内容,在当前文件夹下构建Livox及摄像头驱动
./10-build-livox-driver.sh
- 将 2USB-A、1xRJ45(网线接口)连接到电脑后,在 Ubuntu 桌面右上角的网络设置里,找到“有线连接(Wired)”的设置,转到 IPv4 选项卡。
- 将有线网卡配置为手动模式(Manual),IP 为
192.168.1.50,网址掩码255.255.255.0,应用保存。 - 在 Ubuntu 系统的终端中输入
lsusb,如下图所示若出现相机厂商字符则 USB 设备挂载成功。 - 随后输入
ping 192.168.1.1xx(其中xx为大疆 Livox Avia 雷达设备 SN 码最后两位,SN 码用手机扫描雷达设备后方右下角的小二维码即可获得到。该流程中的雷达设备 ip 为192.168.1.174)。确定雷达通讯连通后,可输入Ctrl+C强制中断 ping 流程。lsusb #检查usb设备挂载 ping 192.168.1.174 #检查雷达通讯

6. 检查
/dev/ttyUSB0 是否存在。该串口通常用于简达同步器的时间同步;若设备不存在,需要重新插拔同步器 USB,并用 dmesg -w 观察系统实际分配的是 /dev/ttyUSB0、/dev/ttyUSB1 还是其他串口。若存在但驱动提示无权限,可临时放开权限:
ls /dev/ttyUSB*
sudo chmod 666 /dev/ttyUSB0
至此,雷达及相机已连接至 Ubuntu 系统!
四、运行雷达扫描一键脚本
在Fast_livo2_env目录下,在终端中打开,在bash里运行
./run_fastlivo2.sh
选择1,即可开启全部脚本。
五、常用配置文件与结果保存位置
FAST-LIVO2 跑通后,最常需要检查的是两个配置文件:
/home/ftlian/Fast_livo2_env/ws_fast_livo2/src/FAST-LIVO2/config/avia.yaml
/home/ftlian/Fast_livo2_env/ws_fast_livo2/src/FAST-LIVO2/config/camera_pinhole.yaml
如果前面使用并非是推荐用户名 ftlian,则把路径中的ftlian 替换为 当前用户名。
5.1 avia.yaml
avia.yaml 是 FAST-LIVO2 的主运行配置文件,决定订阅哪些 ROS 话题、使用哪些外参、是否启用 IMU/VIO/LIO,以及是否保存点云。
common
common:
img_topic: "/left_camera/image"
lid_topic: "/livox/lidar"
imu_topic: "/livox/imu"
img_en: 1
lidar_en: 1
ros_driver_bug_fix: false
img_topic:相机图像话题。海康相机驱动默认发布到/left_camera/image。lid_topic:Livox 雷达点云话题。使用livox_lidar_msg.launch时通常为/livox/lidar。imu_topic:Livox IMU 话题,通常为/livox/imu。img_en:是否启用图像。1为启用,0为关闭视觉,仅跑 LiDAR/IMU。lidar_en:是否启用雷达。正常运行应为1。ros_driver_bug_fix:针对部分 ROS 驱动时间戳跳变的兼容开关。默认保持false。
pcd_save
pcd_save:
pcd_save_en: false
colmap_output_en: false
filter_size_pcd: 0.15
interval: -1
pcd_save_en:是否保存 PCD 点云。默认关闭。colmap_output_en:是否额外导出 COLMAP 格式的图像和位姿文件。filter_size_pcd:保存点云时的降采样体素大小。interval:PCD 保存间隔。-1表示运行结束时保存为一个总点云;大于0表示每隔指定数量的雷达帧保存一个 PCD。
evo
evo:
seq_name: "CBD_Building_01"
pose_output_en: false
seq_name:轨迹输出文件名的一部分。pose_output_en:是否输出轨迹文件。启用后保存到FAST-LIVO2/Log/result/<seq_name>.txt。
extrin_calib
extrin_calib:
extrinsic_T: [0.04165, 0.02326, -0.0284]
extrinsic_R: [1, 0, 0, 0, 1, 0, 0, 0, 1]
Rcl: [...]
Pcl: [...]
extrinsic_T:IMU 与 LiDAR 之间的平移外参。该值应来自标定结果,不建议随意修改。extrinsic_R:IMU 与 LiDAR 之间的旋转外参,按 3×3 矩阵逐行展开。Rcl:LiDAR 到相机的旋转外参,按 3×3 矩阵逐行展开。Pcl:LiDAR 到相机的平移外参。
time_offset
time_offset:
imu_time_offset: 0.0
img_time_offset: 0.1
exposure_time_init: 0.0
imu_time_offset:IMU 时间偏移补偿。若日志长期提示IMU and LiDAR not synced,可结合实际时间差检查该项。img_time_offset:图像时间偏移补偿。硬件同步正常时通常保持教程给定值。exposure_time_init:曝光时间初值,用于视觉曝光估计。
preprocess
preprocess:
point_filter_num: 1
filter_size_surf: 0.1
lidar_type: 1
scan_line: 6
blind: 0.8
point_filter_num:点云抽样间隔,1表示不过滤抽样。filter_size_surf:面特征/地图点云降采样体素大小,数值越大点云越稀疏。lidar_type:雷达类型,1对应 Livox Avia。scan_line:雷达线数,Avia 默认使用6。blind:近距离盲区过滤阈值,单位为米。小于该距离的点会被过滤。
vio
vio:
max_iterations: 5
outlier_threshold: 1000
img_point_cov: 100
patch_size: 8
patch_pyrimid_level: 4
normal_en: true
raycast_en: false
inverse_composition_en: false
exposure_estimate_en: true
inv_expo_cov: 0.1
max_iterations:视觉优化最大迭代次数。outlier_threshold:视觉残差外点阈值。img_point_cov:图像点观测协方差,数值越大代表对视觉约束越不自信。patch_size:直接法匹配图像块大小。patch_pyrimid_level:图像金字塔层数。normal_en:是否使用法向量信息。raycast_en:是否启用 raycast。inverse_composition_en:是否启用 inverse compositional 优化形式。exposure_estimate_en:是否估计曝光变化。inv_expo_cov:曝光估计协方差。
imu
imu:
imu_en: true
imu_int_frame: 30
acc_cov: 0.5
gyr_cov: 0.3
b_acc_cov: 0.0001
b_gyr_cov: 0.0001
imu_en:是否启用 IMU。imu_int_frame:IMU 初始化/积分使用的帧数参数。acc_cov:加速度计噪声协方差。gyr_cov:陀螺仪噪声协方差。b_acc_cov:加速度计零偏协方差。b_gyr_cov:陀螺仪零偏协方差。
lio
lio:
max_iterations: 5
dept_err: 0.02
beam_err: 0.05
min_eigen_value: 0.0025
voxel_size: 0.5
max_layer: 2
max_points_num: 50
layer_init_num: [5, 5, 5, 5, 5]
max_iterations:LIO 优化最大迭代次数。dept_err:深度误差参数。beam_err:激光束误差参数。min_eigen_value:平面特征最小特征值阈值。voxel_size:体素地图分辨率。max_layer:体素地图最大层级。max_points_num:每个体素内保留的最大点数。layer_init_num:各层体素初始化点数。
local_map
local_map:
map_sliding_en: false
half_map_size: 100
sliding_thresh: 8
map_sliding_en:是否启用局部地图滑窗。half_map_size:局部地图半边长。sliding_thresh:触发地图滑动的阈值。
uav
uav:
imu_rate_odom: false
gravity_align_en: false
imu_rate_odom:是否以 IMU 频率输出里程计。gravity_align_en:是否启用重力对齐。
publish
publish:
dense_map_en: true
pub_effect_point_en: false
pub_plane_en: false
pub_scan_num: 1
blind_rgb_points: 0.0
dense_map_en:是否发布稠密地图。pub_effect_point_en:是否发布参与优化的有效点。pub_plane_en:是否发布平面特征。pub_scan_num:发布点云帧间隔。blind_rgb_points:RGB 点云发布时的近距离过滤阈值。
5.2 camera_pinhole.yaml
camera_pinhole.yaml 是相机模型配置。FAST-LIVO2 对图像尺寸要求非常严格:实际收到的 /left_camera/image 尺寸必须等于 cam_width * scale 与 cam_height * scale。
cam_model: Pinhole
cam_width: 1024
cam_height: 768
scale: 1
cam_fx: 1293.56944
cam_fy: 1293.3155
cam_cx: 498.91359
cam_cy: 394.799224
cam_d0: -0.076160
cam_d1: 0.123001
cam_d2: -0.00113
cam_d3: 0.000251
cam_model:相机模型类型。这里使用针孔模型Pinhole。cam_width:相机标定时的原始图像宽度。cam_height:相机标定时的原始图像高度。scale:图像缩放比例,同时会缩放相机模型尺寸和内参。默认1280x1024配合scale: 0.5,FAST-LIVO2 实际期望输入图像为640x512。cam_fx:相机 x 方向焦距。cam_fy:相机 y 方向焦距。cam_cx:主点 x 坐标。cam_cy:主点 y 坐标。cam_d0:径向畸变参数k1。cam_d1:径向畸变参数k2。cam_d2:切向畸变参数p1。cam_d3:切向畸变参数p2。
运行时可用下面命令检查实际图像尺寸:
rostopic echo -n 1 /left_camera/image | grep -E "height:|width:|encoding:"
若输出为:
height: 512
width: 640
则匹配默认 camera_pinhole.yaml。若输出为 height: 384、width: 512,说明相机实际发布的是 512x384,需要调整海康相机输出尺寸,或重新换算并修改 camera_pinhole.yaml 中的 cam_width、cam_height、cam_fx、cam_fy、cam_cx、cam_cy。
海康相机驱动自身的配置文件通常在:
/home/当前用户名/Fast_livo2_env/ws_mov_driver/src/mvs_ros_driver/config/left_camera_trigger.yaml
其中 image_scale 会影响最终发布图像的缩放比例。若当前驱动源码没有调用海康 SDK 的 Width、Height、OffsetX、OffsetY 设置接口,则 left_camera_trigger.yaml 里的 width、height、Offset_x、Offset_y 可能不会真正改变相机 ROI,最终尺寸仍以 rostopic echo -n 1 /left_camera/image 看到的结果为准。
5.3 PCD 与图像保存位置
FAST-LIVO2 的保存目录不是运行脚本所在目录,而是源码目录下的 Log 文件夹:
/home/当前用户名/Fast_livo2_env/ws_fast_livo2/src/FAST-LIVO2/Log/
PCD 点云
只有当 avia.yaml 中设置:
pcd_save:
pcd_save_en: true
才会保存 PCD 点云。
当 interval: -1 时,程序会在退出时保存总点云:
FAST-LIVO2/Log/PCD/all_raw_points.pcd
FAST-LIVO2/Log/PCD/all_downsampled_points.pcd
当 interval 大于 0 时,程序会按间隔分段保存:
FAST-LIVO2/Log/PCD/1.pcd
FAST-LIVO2/Log/PCD/2.pcd
FAST-LIVO2/Log/PCD/3.pcd
FAST-LIVO2/Log/PCD/scans_pos.json
COLMAP 图像与位姿
只有当 avia.yaml 中设置:
pcd_save:
pcd_save_en: true
colmap_output_en: true
才会导出 COLMAP 相关文件。输出位置为:
FAST-LIVO2/Log/Colmap/images/00001.png
FAST-LIVO2/Log/Colmap/images/00002.png
FAST-LIVO2/Log/Colmap/sparse/0/cameras.txt
FAST-LIVO2/Log/Colmap/sparse/0/images.txt
FAST-LIVO2/Log/Colmap/sparse/0/points3D.txt
注意:启用 colmap_output_en 时,程序会调用 scripts/colmap_output.sh 清理并重建 Log/Colmap/images 和 Log/Colmap/sparse/0,因此旧的 COLMAP 输出会被删除。
轨迹与调试文件
若 evo/pose_output_en: true,轨迹保存到:
FAST-LIVO2/Log/result/<seq_name>.txt
程序还会在 Log 目录下写入调试文件:
FAST-LIVO2/Log/mat_pre.txt
FAST-LIVO2/Log/mat_out.txt













