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



gtsamCMakeLists.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



 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

posted @ 2020-09-13 11:25  空洞骑士  阅读(472)  评论(0)    收藏  举报