Ubuntu20.04安装配置Slamesh完整版
参考文章:
视觉SLAM十四讲环境搭建(测试环境Ubuntu20.04) - 知乎
依赖库:Ceres-solver-2.0.0安装_ceres2.0.0-CSDN博客
【opencv】ubuntu安装opencv4.2.0(支持cuda加速)-CSDN博客
无法定位软件包libjasper-dev的解决办法-CSDN博客
ubuntu16.04 命令sudo updatedb报错: command not found解决方案_sudo: updatedb: command not found-CSDN博客
ubuntu安装eigen3.3.7_ubuntu20.04编译安装eigen3.3.7-CSDN博客
Ubuntu20.04安装pcl1.10.0 && pcl1.13.1 一文详细介绍安装步骤(带图)及报错解决-CSDN博客
一.换源(推荐第一种方法)
1.备份原来的源若是以后出现问题可以回溯原来的源
在终端输入
sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak
2.修改源文件
第一种方法:输入以下命令打开/etc/apt/sources.list文件:
sudo gedit /etc/apt/sources.list
可将gedit更换为自己熟悉的编辑器。(我用的是gedit)
将sources.list文件的内容改成如下所示:
#添加阿里源
deb http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse
#添加清华源
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal main restricted universe multiverse
deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-updates main restricted universe multiverse
deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-updates main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-backports main restricted universe multiverse
deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-backports main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-security main restricted universe multiverse
deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-security main restricted universe multiverse multiverse
第二种方法:若是觉得麻烦可以调用小鱼的一键换源
wget http://fishros.com/install -O fishros && . fishros
看着对应的需求输入数字即可
3.更新源
sudo apt-get update
sudo apt-get upgrade
4.安装ros noetic
wget http://fishros.com/install -O fishros && . fishros
选择对应序号进行下载
二.安装库
1.安装GCC,G++等库
sudo apt-get install gcc
sudo apt-get install g++
sudo apt-get install cmake
sudo apt-get install git
2.安装cere2.1.0
01.首先安装依赖
sudo apt-get install cmake
sudo apt-get install libgoogle-glog-dev libgflags-dev
sudo apt-get install libatlas-base-dev
sudo apt-get install libeigen3-dev
02.再安装源码
git clone -b 2.1.0 https://github.com/ceres-solver/ceres-solver.git #安装2.1.0指定版本
03.编译
cd ceres-solver
mkdir build
cd build
cmake ..
make -j4
sudo make install
04.验证
cd ceres-solver/build
bin/simple_bundle_adjuster ../data/problem-16-22106-pre.txt
出现类似的图便是成功了

3.OPENCV4.2
01.安装源码:https://github.com/opencv(找到4.2.0点击sources进行下载)
02.配置环境
sudo apt-get install build-essential
sudo apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev
sudo apt-get install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev
sudo apt-get install libopencv-dev python3-opencv
03.编译
创建build 文件夹并进入
mkdir build &&cd build
##这是不带入opencv_contrib的编译
cmake -D CMAKE_INSTALL_PREFIX=/usr/local -D CMAKE_BUILD_TYPE=Release -D OPENCV_GENERATE_PKGCONFIG=ON -D ENABLE_CXX11=1 -D OPENCV_ENABLE_NONFREE=True ..
make -j4
sudo make install
04.配置路径
#进入 bash.bashrc
sudo gedit /etc/bash.bashrc
#在文件最后添加如下内容
PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig
export PKG_CONFIG_PATH
#更新
sudo updatedb
#打开下列文件
sudo gedit /etc/ld.so.conf.d/opencv.conf
# 添加lib路經
/usr/local/lib
# 更新
sudo ldconfig
05.查看版本号
pkg-config --modversion opencv4
06.遇到问题以及解决方法
一.无法定位软件包libjasper-dev
sudo add-apt-repository "deb http://security.ubuntu.com/ubuntu xenial-security main"
sudo apt update
sudo apt upgrade
sudo apt install libjasper1 libjasper-dev
二.命令sudo updatedb报错: command not found
sudo apt-get install mlocate
4.安装Eigen3.3.7
# 解压
sudo tar -xzvf eigen-3.3.7.tar.gz
# 安装
cd eigen-3.3.7
mkdir build
cd build
sudo cmake ..
sudo make install
#安装后,头文件安装在/usr/local/include/eigen3/
# 移动头文件:
sudo cp -r /usr/local/include/eigen3/Eigen /usr/local/include
- - 在很多程序中include时经常使用#include <Eigen/Dense>;否则系统无法默认搜索到,build时会找不到;
- - 或者直接修改CmakeLists.txt中eigen3库的路径,include_directories( "/usr/local/include/eigen3" ),但太麻烦!
5.安装PCL1.10.1
01.安装依赖
sudo apt update
sudo apt upgrade
sudo apt-get install git build-essential linux-libc-dev cmake cmake-gui
sudo apt-get install libusb-1.0-0-dev libusb-dev libudev-dev libeigen3-dev libboost-all-dev
sudo apt-get install libqhull* libgtest-dev freeglut3-dev pkg-config libxmu-dev libxi-dev mono-complete openjdk-8-jdk openjdk-8-jre
# flann ubuntu20.4对应1.9
sudo apt-get install libopenni-dev libopenni2-dev libflann1.9 libflann-dev
#安装qt5
sudo apt-get install qtbase5-dev qtchooser qt5-qmake qtbase5-dev-tools qtcreator
sudo apt install qt5-default
sudo apt-get install qttools5-dev
sudo apt install libqt5x11extras5-dev
# 安装新版PCL组件
sudo apt-get install ros-noetic-pcl-conversions ros-noetic-pcl-ros
02.安装metslib
wget https://www.coin-or.org/download/source/metslib/metslib-0.5.3.tgz
tar xzvf metslib-0.5.3.tgz
cd metslib-0.5.3
./configure
make -j`nproc`
sudo make install
03.安装VTK
#安装x11
sudo apt-get install libx11-dev libxext-dev libxtst-dev libxrender-dev libxmu-dev libxmuu-dev
#安装opengl
sudo apt-get install build-essential libgl1-mesa-dev libglu1-mesa-dev
#安装libglut-dev 此步不行的话 需要手动源码安装VTK
sudo apt-get install freeglut3-dev
sudo apt-get install libvtk7.1-qt libvtk7.1 libvtk7-qt-dev
VTK官网:Download | VTK
(用源码下载的方式)
或者自动下
wget https://www.vtk.org/files/release/7.1/VTK-7.1.1.tar.gz
tar -xzvf vtk-7.1.1.tar.gz
cd vtk-7.1.1
mkdir build && cd build
#先配置下qt的版本改成5 再依次点击Configure Generate
cmake-gui
cmake ..
make -j4
sudo make install
04.安装PCL
一.安装源码
PointCloudLibrary/pcl:点云库 (PCL) --- PointCloudLibrary/pcl: Point Cloud Library (PCL)如果打不开请记得挂梯子
二.编译
cd pcl-pcl-1.10.1
mkdir build && cd build
cmake .. \
-DCMAKE_BUILD_TYPE=None \
-DCMAKE_INSTALL_PREFIX=/usr/local \
-DCMAKE_PREFIX_PATH=/usr/lib/x86_64-linux-gnu \
-DFREETYPE_LIBRARY=/usr/lib/x86_64-linux-gnu/libfreetype.so \
-DBUILD_GPU=ON \
-DBUILD_apps=ON \
-DBUILD_simulation=ON \
-DBUILD_examples=ON
# 一般这步容易出错
make -j6
#make install指令pcl项目文件 转到默认的路径/usr/include 下
sudo make install
三.添加环境变量
# 源码编译时 配置环境变量
export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH
##使用nano编辑器
nano ~/.bashrc
#滑动到末端,添加下面三段文本
export PCL_DIR=/usr/local/lib/pcl
export LD_LIBRARY_PATH=$PCL_DIR/lib
export PKG_CONFIG_PATH=$PCL_DIR/lib/pkgconfig
# 添加完后 先Ctrl+O保存,按Enter确定,再Ctrl+X退出nano编辑器
# 更新环境变量配置文件
source ~/.bashrc
四.查看版本号
# 这里的1.x应替换为你安装的PCL版本号,例如1.10或1.12等
pkg-config --cflags pcl_common-1.x
apt-cache show libpcl-dev
6.安装Pangolin
# 源码编译最新版
git clone https://github.com/stevenlovegrove/Pangolin.git -b v0.8
cd Pangolin
mkdir build && cd build
cmake .. -DCMAKE_BUILD_TYPE=Release
make -j$(nproc)
sudo make install
7.创建工作空间
mkdir -p ~/catkin_ws/src #创建工作空间catkin_ws和子目录src,自定义空间名
cd ~/catkin_ws/ #进入到工作空间catkin_ws
# 执行隔离构建
catkin_make_isolated #编译工作空间catkin_ws
(注意这里使用的是隔离构建)
8.安装lvr2
# 手动安装lvr2
git clone https://github.com/uos/lvr2.git
cd lvr2
mkdir build && cd build
cmake .. -DCMAKE_INSTALL_PREFIX=/usr/local
make -j$(nproc)
sudo make install
9.安装mesh_tools套件
01.安装依赖
安装系统依赖
sudo apt-get install -y libvtk7-dev libvtk7-qt-dev libboost-all-dev libhdf5-dev libopencv-dev libyaml-cpp-dev
安装ROS依赖
sudo apt-get install -y ros-noetic-cmake-modules ros-noetic-lvr2 ros-noetic-mesh-msgs
02.从源码构建mesh_tools
# 进入你的catkin工作空间
cd ~/slamesh_ws/src
# 克隆mesh_tools仓库(确保使用noetic分支)
git clone https://github.com/naturerobots/mesh_tools.git -b noetic
# 安装依赖
rosdep update
rosdep install --from-paths src --ignore-src -r -y
# 编译
catkin_make -DCMAKE_BUILD_TYPE=Release
source devel/setup.bash
03.验证安装路径
# 检查配置文件是否存在
ls ~/slamesh_ws/devel/share/mesh_msgs/cmake/mesh_msgsConfig.cmake
# 输出应为:
# /home/[你的用户名]/slamesh_ws/devel/share/mesh_msgs/cmake/mesh_msgsConfig.cmake
04.配置环境变量
echo "source ~/slamesh_ws/devel/setup.bash" >> ~/.bashrc
source ~/.bashrc
05.验证安装
# 检查mesh_msgs是否可被ROS识别
rospack find mesh_msgs
# 正确输出示例:
# /home/[你的用户名]/slamesh_ws/src/mesh_tools/mesh_msgs
9.导入SLAMESH库
项目首页 - SLAMesh:ICRA2023, A real-time LiDAR simultaneous localization and meshing method. - GitCode
cd slamesh_ws/src
git clone https://github.com/RuanJY/SLAMesh.git
cd .. && catkin_make
mkdir slamesh_result
source ~/slamesh_ws/src/devel/setup.bash
10.跑数据集
Mai City Dataset – StachnissLab(数据集下载地址)
将数据集下在Slamesh文件夹下并解压
01.打开一个终端
roscore
02.更改主题
首先在数据集文件夹下的bag文件加下打开一个终端
rosbag info 01.bag
记录topic的名字
再打开一个终端
输入
rosrun rviz rviz
在左侧菜单栏的Global Options下的Fixed Frame改为velodyne
(若是下拉框点不开可以选择重开一个终端)
点击左下角的add选择PointCloud2
将Topic改为刚刚终端下记录的topic
相同操作添加其他的
03.在Slamesh文件夹下的launch文件夹中打开终端
输入
roslaunch slamesh slamesh_online.launch
04.在刚刚的bag文件夹下跑bag包
rosbag play 01.bag
此时观看rviz可以看到运行的数据集

更多推荐

所有评论(0)