参考:链接
环境
Ubuntu18
pcl eigen opencv等都已经装好
安装gtsam因子图库
wget -O ~/Downloads/gtsam.zip https://github.com/borglab/gtsam/archive/4.0.0-alpha2.zip
cd ~/Downloads/ && unzip gtsam.zip -d ~/Downloads/
cd ~/Downloads/gtsam-4.0.0-alpha2/
mkdir build && cd build
cmake ..
sudo make install
下载安装
下载lego源码
git clone https://github.com/RobustFieldAutonomyLab/LeGO-LOAM.git
git clone [https://github.com/RobustFieldAutonomyLab/LeGO-LOAM.git](https://github.com/RobustFieldAutonomyLab/LeGO-LOAM.git)
下载数据集:[https://drive.google.com/drive/folders/16p5UPUCZ1uK0U4XE-hJKjazTsRghEMJa](https://drive.google.com/drive/folders/16p5UPUCZ1uK0U4XE-hJKjazTsRghEMJa)
下载rslidar-sdk:[https://github.com/RoboSense-LiDAR/rslidar_sdk/releases](https://github.com/RoboSense-LiDAR/rslidar_sdk/releases)
下载雷达格式转换:https://github.com/HViktorTsoi/rs_to_velodyne.git
雷达驱动安装:
sudo apt-get install -y libpcap-dev
sudo apt-get install -y libyaml-cpp-dev #若已安装ROS desktop-full, 可跳过
编译
下载之后对lego源码、rslidar-sdk、雷达格式转换三部分进行编译,将前两者放入src中即可然后catkin_make即可。
雷达格式转换则需要自己创建一个功能包:
即在src下利用终端输入:catkin_create_pkg rs_to_velodyne roscpp rospy std_msgs
然后再进入创建功能包中的src,将下载的贴进去即可。
上面三者可以放在同一个工作空间也可以不放在同一个。
运行:
rosbag:
roslaunch lego_loam run.launch
rosbag play *.bag --clock --topic /velodyne_points /imu/data
/imu/data可以省略,但是效果会下降
自己雷达:
roslaunch rslidar_sdk start.launch
rosrun rs_to_velodyne rs_tovelodyne XYZIRT XYZIR
roslaunch lego_loam run.launch
1 需要注意的是修改LeGO-LOAM的launch文件:
将这句话的true改成false false代表用雷达,true代表用bag
<param name="/use_sim_time" value="false"/>
2修改rslidar_sdk/config中的config.yaml文件lidar_type
改为自己的型号
3修改 CMakeLists.txt 和 package.xml
(1) 将文件顶部的set(COMPILE_METHOD ORIGINAL)改为set(COMPILE_METHOD CATKIN)
(2) 将set(POINT_TYPE XYZI)改为set(POINT_TYPE XYZIRT)
(3) 将rslidar_sdk工程目录下的package_ros1.xml文件重命名为package.xml
4可以在_ws/src/rs_to_velodyne/src/rs_to_velodyne-master中创建rs2velodyne.launch
文件,rosrun就可以改为roslaunch。同时也可以在其他的launch文件中添加<include file="$(find rs_to_velodyne)/launch/rs2velodyne.launch" />
来省略
<launch>
<node pkg="rs_to_velodyne" name="rs_to_velodyne" type="rs_to_velodyne" args="XYZIRT XYZIRT" output="screen">
</node>
</launch>