Fast Livo2 实践

Posted by [cjtong] on Wednesday, April 2, 2025

介绍

FAST-LIVO2是一种高效精准的激光雷达-惯性-视觉多源融合定位与建图系统,在严重退化环境中展现出实时三维重建与机载机器人定位的显著潜力。https://github.com/hku-mars/FAST-LIVO2

FAST-LIVO2: Fast, Direct LiDAR-Inertial-Visual Odometry FAST-LIVO: Fast and Tightly-coupled Sparse-Direct LiDAR-Inertial-Visual Odometry

系统环境和依赖

Ubuntu and ROS

Ubuntu 20.04. ROS noetic.

PCL && Eigen && OpenCV

PCL=1.10, Follow PCL Installation. Eigen>=3.3.4, Follow Eigen Installation. OpenCV>=4.2, Follow Opencv Installation.

Sophus

Sophus Installation for the non-templated/double-only version.

git clone https://github.com/strasdat/Sophus.git
cd Sophus
git checkout a621ff
mkdir build && cd build && cmake ..
make
sudo make install

Vikit

Vikit contains camera models, some math and interpolation functions that we need. Vikit is a catkin project, therefore, download it into your catkin workspace source folder.

cd catkin_ws/src
git clone https://github.com/xuankuzcr/rpg_vikit.git

livox_ros_driver

Follow livox_ros_driver Installation.

编译

cd ~/catkin_ws/src
git clone https://github.com/hku-mars/FAST-LIVO2
cd ../
catkin_make
source ~/catkin_ws/devel/setup.bash

运行数据集 ATTACH

Download our collected rosbag files via OneDrive (FAST-LIVO2-Dataset).

roslaunch fast_livo mapping_avia.launch
rosbag play YOUR_DOWNLOADED.bag

代码调用流程图 ATTACH

问题

  1. 使用catkin build用户希望安装到install目录,需要对vikit进行改造一下
modified   vikit_common/CMakeLists.txt
@@ -44,9 +44,10 @@ IF(USE_ROS)
   FIND_PACKAGE(catkin REQUIRED COMPONENTS roscpp cmake_modules)
   LIST(APPEND INCLUDE_DIRECTORIES ${catkin_INCLUDE_DIRS})
   catkin_package(
+    INCLUDE_DIRS include/vikit
+    # include/vikit ${CMAKE_INSTALL_PREFIX}/include/vikit
     DEPENDS Eigen OpenCV Sophus
     CATKIN_DEPENDS roscpp
-    INCLUDE_DIRS include
     LIBRARIES ${PROJECT_NAME}
   )
 ELSE()
@@ -103,4 +104,11 @@ IF(NOT USE_ROS)

   INSTALL(DIRECTORY include/vikit DESTINATION ${CMAKE_INSTALL_PREFIX}/include FILES_MATCHING PATTERN "*.h" )
   INSTALL(TARGETS ${PROJECT_NAME} DESTNATION ${CMAKE_INSTALL_PREFIX}/lib )
-ENDIF()
\ No newline at end of file
+ELSE()
+  message("install:${CMAKE_INSTALL_PREFIX}")
+  message(${CATKIN_DEVEL_PREFIX})
+  # message(${CATKIN_DEVEL_INCLUDE_DESTINATION})
+  INSTALL(DIRECTORY include/vikit DESTINATION ${CMAKE_INSTALL_PREFIX}/include FILES_MATCHING PATTERN "*.h" )
+  INSTALL(DIRECTORY include/vikit DESTINATION ${CATKIN_DEVEL_PREFIX}/include FILES_MATCHING PATTERN "*.h" )
+  INSTALL(TARGETS ${PROJECT_NAME} DESTINATION ${CMAKE_INSTALL_PREFIX}/lib )
+ENDIF()

modified   vikit_ros/CMakeLists.txt
@@ -34,7 +34,7 @@ INCLUDE_DIRECTORIES(
 catkin_package(
     DEPENDS EIGEN3 OpenCV Sophus vikit_common
     CATKIN_DEPENDS roscpp visualization_msgs tf
-    INCLUDE_DIRS include
+    INCLUDE_DIRS include/vikit
     LIBRARIES ${PROJECT_NAME}
 )

@@ -49,4 +49,9 @@ TARGET_LINK_LIBRARIES(
   ${PROJECT_NAME}
   ${OpenCV_LIBS}
   ${Sophus_LIBRARIES}
-  ${catkin_LIBRARIES})
\ No newline at end of file
+  ${catkin_LIBRARIES})
+
+INSTALL(DIRECTORY include/vikit DESTINATION ${CMAKE_INSTALL_PREFIX}/include FILES_MATCHING PATTERN "*.h" )
+
+
+INSTALL(TARGETS ${PROJECT_NAME} DESTINATION ${CMAKE_INSTALL_PREFIX}/lib )
modified   vikit_ros/include/vikit/camera_loader.h
  1. vikit默认camera使用5参数,其他参数没有支持

心得体会

  1. 郑博团队非常友善,githhub issuses 很及时回复 👍

「真诚赞赏,手留余香」

CJ.Tong Blog

真诚赞赏,手留余香

使用微信扫描二维码完成支付


comments powered by Disqus