参考文章:

视觉SLAM十四讲环境搭建(测试环境Ubuntu20.04) - 知乎

小鱼的一键安装系列 | 鱼香ROS

依赖库: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可以看到运行的数据集

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐