1 安装gtsam
1.1 安装环境
sudo apt-get install libboost-all-dev
sudo apt-get install cmake
1.2 下载gtsam
cd ~
git clone https://bitbucket.org/gtborg/gtsam.git
1.3 编译
cd ~/gtsam
mkdir build
cd build
cmake ..
make check #可选的,运行单元测试
sudo make install
2 下载并编译lego_loam
在home目录下打开终端
cd ~/gtsam
mkdir build
cd build
cmake ..
make check #可选的,运行单元测试
sudo make install
当第一次编译代码时,需要在“catkin_make”后面添加“-j1”以生成一些消息类型。将来的编译不需要“-j1”.
3 运行
3.1 修改程序
3.1.1 utility.h文件中:
修改雷达话题,对于镭神c16线,启动驱动后,输出点云话题为:/points_raw
对应程序中修改为:
extern const string pointCloudTopic = "/points_raw";
extern const string imuTopic = "/imu/data";
注:imu话题可以没有,有建图效果会更好
修改雷达参数:
// ls-c16 线
extern const int N_SCAN = 16;
extern const int Horizon_SCAN = 2000;
extern const float ang_res_x = 0.18;
extern const float ang_res_y = 2.0;
extern const float ang_bottom = 15.0+0.1;
extern const int groundScanInd = 7;
3.1.2 修改imageProjection.cpp
找到copyPointCloud函数
把cloudHeader.stamp = ros::Time::now();
这一行的注释
去掉
。
3.1.3
修改
run.launch
文件
修改
value
:
<!--- Sim Time -->
<param name="/use_sim_time" value="true" />
注意:
播放
bag
包时:
设置
value="true"
,默认使用系统的模拟时间。
此时对应播放
bag
包指令要加—
clock
,即:
rosbag play --clock *.bag
使用雷达实时建图时:
设置value = "false",使用系统时间.
3.2
运行程序建图
3.2.1
运行
c16
驱动
进入
c16
驱动文件目录下打开终端
source devel/setup.bash
roslaunch lslidar_c16_decoder lslidar_c16.launch
3.2.2
启动
lego_loam
进入
lego_loam
目录下打开终端
source devel/setup.bash
roslaunch lego_loam run.launch
如下图所示,则程序运行成功:
3.2.3
播放
bag
包时
如果是雷达实时建图,则
3.2.2
步执行完成后,就可以在
rviz
窗口看到雷达点云,并已经开始建图。
如果需要播放
bag
包建图:
切换到
bag
所在目录文件下重新打开终端:
rosbag play --clock *.bag
就可以在
rviz
窗口看到点云,并开始建图.