ubuntu18.04 + ros melodic
官方链接:https://github.com/RobustFieldAutonomyLab/LeGO-LOAM
文章目录
- 1、下载并编译 gtsam
- 2、下载并编译 LeGO-LOAM
- 3、测试运行
1、下载并编译 gtsam
我下载的是gtsam-4.0.2,官网用的gtsam-4.0.0,因为我用的实体车上已经下载的4.0.2,就想着用相同版本减少不必要的麻烦。
wget -O ~/Downloads/gtsam.zip https://github.com/borglab/gtsam/archive/4.0.2.zip
cd ~/Downloads/ && unzip gtsam.zip -d ~/Downloads/
cd ~/Downloads/gtsam-4.0.2/
mkdir build && cd build
cmake -DGTSAM_BUILD_WITH_MARCH_NATIVE=OFF ..
sudo make install
将Downloads 换成自己的安装目录
cmake … 中间的 -DGTSAM_BUILD_WITH_MARCH_NATIVE=OFF 一定要加上,不然运行的时候会报错
cmake -DGTSAM_BUILD_WITH_MARCH_NATIVE=OFF … 的时候会在 Wrote /home/gyl/gtsam-4.0.2/build/GTSAMConfig.cmake 卡很长时间(我的卡了很久,重新cmake好几次都卡很久),等等就好
2、下载并编译 LeGO-LOAM
mkdir -p ~/catkin_ws/src
cd ~/catkin_ws/src
git clone https://github.com/RobustFieldAutonomyLab/LeGO-LOAM.git
cd ..
catkin_make -j1
source ./devel/setup.bash
3、测试运行
运行 launch 文件:roslaunch lego_loam run.launch
我电脑之前因为跑小车在.bashrc中设置了小车的ROS_MASTER_URI,猜测可能是因为这个原因,因此将下面.bashrc中这两行代码注释,并将/mnt中挂载的小车代码取消挂载,电脑连接自己的手机热点
#export ROS_MASTER_URI=http://192.168.0.100:11311
#export ROS_HOSTNAME=192.168.0.129
重新编译 LeGO-LOAM 后再运行,竟然还是报这个错,有点不明白,于是在.bashrc中添加了现在连接的wifi的ROS_HOSTNAME
结果还是报错,报错内容和上面差不多,忘记截图了,,,
想着可能是编译 gtsam 的问题,当时编译的时候网络用的是小车的网络,可能是这个原因?
于是按照上面的重新编译 gtsam,第二次编译快很多,再运行roslaunch lego_loam run.launch
差不多运行成功了吧,但是还是不太理解为什么 ROS_MASTER_URI 和 ROS_HOSTNAME 会对运行产生影响,并且注释之后还是产生影响。
.bag测试包下载:https://drive.google.com/drive/folders/16p5UPUCZ1uK0U4XE-hJKjazTsRghEMJa
播放bag文件测试:rosbag play *.bag --clock --topic /velodyne_points /imu/data
注意:虽然 /imu/data 是可选的,但如果提供的话,它可以大大提高估计的准确性。
如果对 ”–clock“ 有疑惑,可以参考:https://answers.ros.org/question/12577/when-should-i-need-clock-parameter-on-rosbag-play/ 。