SLAM领域的热门算法LeGO-LOAM以其轻量级和低漂移特性受到广泛关注。本文旨在帮助初学者在Ubuntu20.04系统上完整跑通KITTI-00数据集,并使用专业的评测工具evo对算法轨迹进行定量分析。无论你是否具备SLAM基础,跟随本教程都能成功复现评测流程。
LeGO-LOAM基于ROS Melodic/Noetic,这里使用Ubuntu20.04对应的ROS Noetic。首先配置ROS源并安装完整桌面版:
sudo sh -c "echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list"sudo apt install curlcurl -s https://raw.githubusercontent.com/ros/rosdistro/master/ros.asc | sudo apt-key add -sudo apt updatesudo apt install ros-noetic-desktop-fullecho "source /opt/ros/noetic/setup.bash" >> ~/.bashrcsource ~/.bashrcsudo apt install python3-rosdep python3-rosinstall python3-rosinstall-generator python3-wstool build-essentialsudo rosdep initrosdep update 安装LeGO-LOAM所需的依赖库:PCL、Eigen3、GTSAM等。推荐使用apt安装:
sudo apt install libpcl-dev libeigen3-dev libboost-all-dev libgtsam-dev 创建catkin工作空间并克隆LeGO-LOAM仓库:
mkdir -p ~/catkin_legoloam/srccd ~/catkin_legoloam/srcgit clone https://github.com/RobustFieldAutonomyLab/LeGO-LOAM.gitcd ..catkin_make -j4echo "source ~/catkin_legoloam/devel/setup.bash" >> ~/.bashrcsource ~/.bashrc 从KITTI官网下载里程计数据集(需要注册,或使用镜像)。我们直接使用00序列的激光雷达数据。执行以下命令下载并解压:
cd ~wget https://s3.eu-central-1.amazonaws.com/avg-kitti/data_odometry_velodyne.zipunzip data_odometry_velodyne.zip -d KITTI/odometry/wget https://s3.eu-central-1.amazonaws.com/avg-kitti/data_odometry_poses.zipunzip data_odometry_poses.zip -d KITTI/odometry/ 解压后,00序列的点云文件位于 ~/KITTI/odometry/dataset/sequences/00/velodyne/,真值文件为 ~/KITTI/odometry/dataset/poses/00.txt。
LeGO-LOAM提供了KITTI辅助节点,可以直接读取bin文件并发布点云。需要修改launch文件中的路径:
# 编辑 ~/catkin_legoloam/src/LeGO-LOAM/LeGO-LOAM/launch/kitti_helper.launch# 将参数 odometryDatasetPath 设置为你的KITTI数据集路径,例如:# # 将参数 sequenceNumber 设置为 00 然后启动kitti_helper节点和LeGO-LOAM主节点:
roslaunch lego_loam kitti_helper.launch# 新终端roslaunch lego_loam run.launch 此时可以看到点云建图过程。运行结束后,轨迹会以话题 /laser_odom_to_init 发布,并保存在 /tmp/loam_pose 文件中(格式为TUM)。
evo是一款用于SLAM轨迹评估的Python工具,支持多种格式。使用pip安装:
pip install evo --upgrade --no-binary evo 如果遇到权限问题,可加 --user 或使用虚拟环境。
首先准备真值轨迹:KITTI提供的真值 00.txt 是pose格式,需转换为TUM格式。使用evo工具转换:
evo_traj kitti ~/KITTI/odometry/dataset/poses/00.txt --save_as_tum 这会生成 00.tum 文件。然后将LeGO-LOAM输出的轨迹(位于 /tmp/loam_pose)复制到当前目录。
计算绝对轨迹误差(APE):
evo_ape tum 00.tum /tmp/loam_pose -va --plot --plot_mode xy evo会自动对齐轨迹并输出RMSE、均值等指标,并显示轨迹对比图。
还可以计算相对位姿误差(RPE):
evo_rpe tum 00.tum /tmp/loam_pose -va --plot --plot_mode xy 通过evo的图表可以直观看到LeGO-LOAM在KITTI-00上的表现。如果误差较大,检查配置文件是否正确,或尝试调整LeGO-LOAM参数。注意:运行前确保时间戳同步,KITTI数据集的真值已对齐。
本教程详细演示了在Ubuntu20.04下使用LeGO-LOAM处理KITTI-00数据集,并用evo进行评测的全过程。涵盖LeGO-LOAM安装、KITTI-00数据集下载、evo评测工具使用等核心环节,希望对SLAM初学者有所帮助。文中涉及的Ubuntu20.04 SLAM环境配置方法也适用于其他类似项目。
本文由主机测评网于2026-02-15发表在主机测评网_免费VPS_免费云服务器_免费独立服务器,如有疑问,请联系我们。
本文链接:https://www.vpshk.cn/20260225302.html