一、下载和安装gtsam:
1.下载gtsam的源代码
git clone https://bitbucket.org/gtborg/gtsam.git
2.编译安装gtsam
mkdir build
cd build
cmake ..
sudo make install
二、下载lego-loam:
1.建立工作空间
mkdir -p catkin_ws/src
cd catkin_ws/src
catkin_init_workspace
2.下载源码
git clone https://gitee.com/Yeah2333/LeGO-LOAM.git
三、修改源码中的.h文件(简单地改了下,应该别的参数也需要改)
utility.h的第53行话题名改成points_raw
utility.h的第60行直接改成32
四、修改mapOptmization.cpp文件
lego-loam输出的pcd文件的x、y、z轴坐标和autoware的不一样。
transformPointCloud函数(有两个参数的那个版本)修改,主要是pointTo的x、y、z坐标调换一下,改成下面这样子:
pointTo.y = cos(transformIn->pitch) * x2 + sin(transformIn->pitch) * z2 + transformIn->x;
pointTo.z = -(y2 + transformIn->y);
pointTo.x = -sin(transformIn->pitch) * x2 + cos(transformIn->pitch) * z2 + transformIn->z;
五、编译lego-loam源码
cd catkin_ws
catkin_make -j1
六、使用方法
1.source那个devel文件夹中的setup.bash。也可以写进.bahsrc
2.启动lego-loam
roslaunch lego_loam run.launch
3.跑bag包
rosbag play XXX.bag --clock
一定要加这个 --clock
4.在跑完之后,ctrl+c终止掉lego-loam,pcd文件会默认写在/temp文件夹下,finalCloud是我们要的。
不想写在/temp下可以修改,在h文件的57行。