环境搭建
1.安装ros:
添加ros软件源
sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list
添加密钥
sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654
安装ros
sudo apt update
sudo apt install ros-noetic-desktop-full
添加环境变量
echo "source /opt/ros/noetic/setup.zsh" >> ~/.zshrc
source ~/.zshrc
安装rosinstall
sudo apt install python3-rosinstall python3-rosinstall-generator python3-wstool build-essential
2.安装gtsam4.0.3
下载安装包
wget -O ~/Downloads/gtsam.zip https://github.com/borglab/gtsam/archive/4.0.3.zip
解压
cd ~/Downloads/ && unzip gtsam.zip -d ~/Downloads/
cd ~/Downloads/gtsam-4.0.3/
编译安装
mkdir build
cd build
cmake -DGTSAM_BUILD_WITH_MARCH_NATIVE=OFF ..
make check -j1
sudo make install
LeGO-LOAM安装运行及问题解决
1.源码下载及编译
cd ~/catkin_ws/src
git clone https://github.com/RobustFieldAutonomyLab/LeGO-LOAM.git
cd ..
catkin_make -j1
2.编译问题
opencv版本问题:由于 20.04 自带的是OpenCV4,所以要对 LIO-SAM 代码做一点改动,在 utility.h 中的
#include<opencv/cv.h>
改为
#include<opencv2/imgproc.hpp>
pcl问题:
pcl的问题主要是需要 C++14的编译,这里修改 lio-sam 的编译配置就行 ,打开 liosam的CMakeLists.txt:
将第5行的
set(CMAKE_CXX_FLAGS "-std=c++11")
改为
set(CMAKE_CXX_FLAGS "-std=c++14")
3.编译成功在下面网址下载数据包:
https://github.com/RobustFieldAutonomyLab/jackal_dataset_20170608
4.运行:
roslaunch lego_loam run.launch
rosbag play 2017-06-08-15-52-45_3.bag --clock --topic /velodyne_points /imu/data
5.运行过程中发现rviz报点云坐标系的错误:transform from[/camera]to[map]
,原因是TF2之后坐标系名称前面省略了/
,解决方法是在代码中所有涉及到frame_id的地方去掉/
.
6.rviz不显示点云的解决方案是,关闭硬件加速:
export LIBGL_ALWAYS_SOFTWARE=1
ok,成功运行!!!
LIO-SAM安装运行及问题解决
1.源码下载及编译:
cd ~/catkin_ws/src
git clone https://github.com/TixiaoShan/LIO-SAM.git
cd ..
catkin_make
2.下载作者官网提供的数据包注意,不同的数据包对应的点云话题、imu话题、参数矩阵是不同的,要注意在参数文件中修改
3.运行:
roslaunch lio_sam run.launch
rosbag play your-bag.bag -r 3
4.保存地图服务
rosservice call [service] [resolution] [destination]
rosservice call /lio_sam/save_map 0.2 "/home/gym/amari.gao/maps"
ok,成功运行!!!