2021SC@SDUSC
SLAM(Simultaneous Localization and Mapping),即同时定位与地图构建。搭载特定传感器的主体。其中视觉SLAM的主要传感器为相机。
SLAM的主要目的示解决“定位”和“地图构建”。即在估计传感器自身位置的同时建立周围环境的模型。
SLAM系统分模块:视觉里程计、后端优化、建图、回环检测。
使用库:Eigen、OpenCV、PCL、g2o、Ceres等;
码源:https://github.com/gaoxiang12/salmbook
SLAM主要应用:
1. 传感器(激光雷达)
激光雷达是最古老,研究也最多的SLAM传感器。它们提供机器人本体与周围环境障碍物间的距离信息。常见的激光雷达,例如SICK、Velodyne还有我们国产的rplidar等,都可以拿来做SLAM。激光雷达能以很高精度测出机器人周围障碍点的角度和距离,从而方便地实现SLAM、避障等功能。
2.传感器(视觉SLAM)
视觉SLAM是21世纪SLAM研究热点之一,一方面是因为视觉十分直观,不免令人觉得:为何人能通过眼睛认路,机器人就不行呢?另一方面,由于CPU、GPU处理速度的增长,使得许多以前被认为无法实时化的视觉算法得以运行。硬件的提高也促进了视觉SLAM的发展。
3. 机器人
激光+SLAM是目前机器人自主定位导航所使用的主流技术。激光测距相比较于图像和超声波测距,具有良好的指向性和高度聚焦性,是目前最可靠、稳定的定位技术。激光雷达传感器获取地图信息,构建地图,实现路径规划与导航。
4. 无人机
无人机在飞行的过程中需要知道哪里有障碍物,该怎么规避,怎么重新规划路线。显然,这是SLAM技术的应用。但无人机飞行的范围较大,所以对精度的要求不高,市面上其他的一些光流、超声波传感器可以作为辅助。
以下是配置环境的内容:
安装git
sudo apt-get install git
重新安装vim编辑器(预装的那个功能不完整)
之前采用Ubuntu21.0.4系统时,系统没有vim;在安装时出现了递归性缺失,然后换了好几个虚拟机才成功......
sudo apt-get remove vim-common
sudo apt-get install vim
下载SLAM源码
推荐使用git clone 指令安装;但由于垃圾校园网把GitHub墙掉了,我的所有代码均通过一台翻了墙的macbook下载后通过U盘复制到虚拟机内。
源码地址: https://github.com/UZ-SLAMLab/ORB_SLAM3
git clone https://github.com/UZ-SLAMLab/ORB_SLAM3
安装Pangolin
源码地址:github.com/stevenlovegrove/Pangolin(可以用git clone)
根据git里的说明依次安装
sudo apt-get install libgl1-mesa-dev
sudo apt install libglew-dev
sudo apt install cmake
sudo apt install libpython2.7-dev
如果提示权限不够或有哪一个文件没有成功安装,输入如下指令更新即可
sudo apt-get update
安装好之后进行编译
cd Pangolin
mkdir build
cd build
cmake ..
cmake --build .
结果显示pangolin路径不对;参考他人文章后,成功解决。
报错及解决方式如图:
OpenCV安装
源码地址:Releases - OpenCV
个人选择了3.4.16版本进行安装;OpenCV在安装版本4以上时,默认不会生成.pc文件;为了方便,下载较低版本。
下载后解压
unzip opencv-3.4.3.zip
安装OpenCV依赖库
sudo apt-get install build-essential libgtk2.0-dev libavcodec-dev libavformat-dev libjpeg.dev libtiff4.dev libswscale-dev libjasper-dev
安装好后,进行编译
cd opencv-3.4.3
mkdir build
cd build
cmake
cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local ..
然后make一下(时间会比较久)
好了之后进行安装
sudo make install
安装好后配置环境。
Eigen3安装
git clone https://github.com/eigenteam/eigen-git-mirror
cd eigen-git-mirror
mkdir build
cd build
cmake ..
sudo make install
python
sudo apt install libpython2.7-dev
安装libssl-dev
sudo apt-get install libssl-dev
ORB_SLAM3编译
进入源码文件夹
cd ORB_SLAM3
chmod +x build.sh
./build.sh
这里进程可能会自动终结......问题不大,可以买个16G内存条......
然后运行数据集就可以了。
加油~