LeGO-LOAM编译运行
依赖:
ROS (tested with indigo and kinetic)
gtsam (Georgia Tech Smoothing and Mapping library)
安装gtsam
先决条件
Boost >= 1.43 (Ubuntu: sudo apt-get install libboost-all-dev)
CMake >= 2.6 (Ubuntu: sudo apt-get install cmake)
A modern compiler, i.e., at least gcc 4.7.3 on Linux.
下载gtsam
cd ~
git clone https://github.com/borglab/gtsam.git
编译
cd ~/gtsam
mkdir build
cd build
cmake ..
sudo make install -j6
下载并编译LeGO-LOAM:
mkdir -p ~/catkin_ws/src
cd ~/catkin_ws/src
git clone https://github.com/RobustFieldAutonomyLab/LeGO-LOAM.git
cd ..
catkin_make
运行
1. 运行 launch 文件
roslaunch lego_loam run.launch
注意:参数“/ use_sim_time”,对于模拟则设置为“true”,对于使用真实机器人则设置为“false”。
2. 播放bag文件
rosbag play *.bag --clock --topic /velodyne_points /imu/data
注意:虽然 /imu/data 是可选的,但如果提供的话,它可以大大提高估计的准确性。
如果你的 IMU 帧与 Velodyne 帧不对齐,使用 IMU 数据将导致明显漂移。
如果对 ”–clock“ 有疑惑,可以参考:https://answers.ros.org/question/12577/when-should-i-need-clock-parameter-on-rosbag-play/
错误:
/usr/local/include/gtsam/base/Vector.h:73:1: error: static assertion failed: Error: GTSAM was built against a different version of Eigen
static_assert(
这是由于gtsam自带eigen版本与系统ros中自带eigen版本之间冲突问题,需要修改gtsam包的CMakeLists.txt文件,使其编译时使用系统eigen,然后重新编译安装gtsam。
在gtsam的CMakeLists.txt文件中找到:
if(GTSAM_USE_SYSTEM_EIGEN)
find_package(Eigen3 REQUIRED)
…
在 if(GTSAM_USE_SYSTEM_EIGEN) 上方添加一句:
set(GTSAM_USE_SYSTEM_EIGEN ON)
然后重新编译安装GTSAM即可。
演示:
2017-06-08-15-50-45_1.bag

浙公网安备 33010602011771号