Lego-loam编译安装与运行

安装依赖:

  1. 下载gtsam
cd ~
git clone https://bitbucket.org/gtborg/gtsam.git
  1. 编译
cd ~/gtsam
mkdir build
cd build
cmake ..
make check   #可选的,运行单元测试,我没执行这个命令,因为在TX2上编译太慢了,太慢了,太慢了
make install

下载并编译LeGO-LOAM

mkdir -p ~/catkin_ws/src
cd ~/catkin_ws/src
git clone https://github.com/RobustFieldAutonomyLab/LeGO-LOAM.git
cd ..
catkin_make -j1

当第一次编译代码时,需要在“catkin_make”后面添加“-j1”以生成一些消息类型。将来的编译不需要“-j1”。

Cmake报错:
CMake Error at /usr/share/cmake-3.5/Modules/CMakeFindDependencyMacro.cmake:45 (message):
Invalid arguments to find_dependency
Call Stack (most recent call first):
/usr/local/lib/cmake/GTSAM/GTSAMConfig.cmake:17 (find_dependency)
LeGO-LOAM/LeGO-LOAM/CMakeLists.txt:23 (find_package)

– Configuring incomplete, errors occurred!
See also “/home/fish/catkin_legoLOAM/build/CMakeFiles/CMakeOutput.log”.
See also “/home/fish/catkin_legoLOAM/build/CMakeFiles/CMakeError.log”.
Invoking “cmake” failed

解决方法:
将/usr/local/lib/cmake/GTSAM/GTSAMConfig.cmake:17 行的find_dependency改成find_package

cd  /usr/local/lib/cmake/GTSAM/
sudo gedit GTSAMConfig.cmake 

改完后重新catkin_make -j1即可。

运行

  1. 运行 launch 文件
roslaunch lego_loam run.launch
  • 注意:参数“/ use_sim_time”,对于模拟则设置为“true”,对于使用真实机器人则设置为“false”。
  • 播放bag文件
rosbag play *.bag --clock --topic /velodyne_points /imu/data
  • 注意:虽然 /imu/data 是可选的,但如果提供的话,它可以大大提高估计的准确性。

地图

在运行过程中执行

rosbag record -o out /laser_cloud_surround

 来录制Loam后生成的地图

1.保存为pcd格式文件

rosrun pcl_ros bag_to_pcd input.bag /laser_cloud_surround pcd

最后一个pcd文件为我们要保存的pcd文件

使用pcl_viewer来查看我们保存的pcd文件

pcl_viewer xxxxxx.pcd #xxxxx.pcd为文件名

2.保存为ply格式文件

但需要第三方软件处理地图点云时,无法打开pcd文件,需要将其转为ply文件

rosbag play AfterLoam.bag /laser_cloud_surround:=/input 

AfterLoam.bag为第一步录制的bag

打开一个新的终端

输入

rosrun pcl_ros pointcloud_to_pcd

可以将其转为pcd格式,再输入

pcl_pcd2ply xxxx.pcd

来转为ply格式。注意无法使用第一步获得的pcd格式来转换,因为使用第一步pcd转换出来的ply格式无法打开

LeGO-LOAM初探:原理,安装和测试_W_Tortoise的博客-CSDN博客_lego-loam  https://blog.csdn.net/learning_tortosie/article/details/86527542

猜你喜欢

转载自blog.csdn.net/qq_34935373/article/details/108226668