FAST_LIVO2初次安装编译
1、安装依赖库
(1)Sophus
git clone https://github.com/strasdat/Sophus.git
cd Sophus
git checkout a621ff
mkdir build && cd build && cmake ..
make
sudo make install
命令行运行:make时,出现以下错误:
/home/jiangqiang/ccy/FAST_LIVO2/depend/Sophus/sophus/so2.cpp:32:26: error: lvalue required as left operand of assignment
32 | unit_complex_.real() = 1.;
| ^~
/home/jiangqiang/ccy/FAST_LIVO2/depend/Sophus/sophus/so2.cpp:33:26: error: lvalue required as left operand of assignment
33 | unit_complex_.imag() = 0.;
解决办法:
找到so2.cpp文件出错位置,将其替换为:
SO2::SO2()
{
//unit_complex_.real() = 1.;
//unit_complex_.imag() = 0.;
unit_complex_.real(1.);
unit_complex_.imag(0.);
}
修改之后,重新运行:make,无error出现。
2、Build编译
cd ~/catkin_ws/src
git clone https://github.com/hku-mars/FAST-LIVO2
cd ../
catkin_make
source ~/catkin_ws/devel/setup.bash
在运行 catkin_make时,可能出现以下error:
/home/jiangqiang/ccy/FAST_LIVO2/fast_livo2/src/FAST-LIVO2/include/IMU_Processing.h:52:12: error: field ‘fout_imu’ has incomplete type ‘std::ofstream’ {aka ‘std::basic_ofstream<char>’}
52 | ofstream fout_imu;/home/jiangqiang/ccy/FAST_LIVO2/fast_livo2/src/FAST-LIVO2/include/IMU_Processing.h:52:12: error: field ‘fout_imu’ has incomplete type ‘std::ofstream’ {aka ‘std::basic_ofstream<char>’}
52 | ofstream fout_imu;
出现上述问题的原因在于:在IMU_Processing.h
头文件中声明的fout_imu
成员变量类型std::ofstream
是不完整的。这通常意味着编译器在尝试编译包含该头文件的源文件时,没有找到std::ofstream
的完整定义。
解决方法:在IMU_Processing.h
头文件的顶部添加#include <fstream>
。这能提供std::ofstream
的完整定义。
之后重新运行catkin_make,能够正常编译。
3、run运行
(1)数据集验证:
roslaunch fast_livo mapping_avia.launch
rosbag play YOUR_DOWNLOADED.bag
数据集链接: https://pan.baidu.com/s/1C6NLkr6nbRAPqJHsLQq45w?pwd=7tx1 提取码: 7tx1
验证结果已经上传。