前期准备
从零开始跑ORB_SLAM2(零) 安装Ubuntu16.04 LTS
从零开始跑ORB_SLAM2(一) 前期准备与环境配置
从零开始跑ORB_SLAM2(二) 配置ROS Kinetic环境并测试Realsense D435相机
工作环境
PC:i5-8265U 8GRAM 核显 弟弟CPU
相机:Intel-Realsense D435
环境:Ubuntu16.04 LTS+ ROS Kinetic
创造ROS工作空间
国际惯例,GitHub的官方文档发一波:ROS Wrapper for Intel® RealSense™ Devices
如果懒得看英文也可以跟我一步步走。
在开始这一步之前,需要完成的事情分别是:
安装ROS Kinetic
安装Realsense SDK
毫无疑问我们已经完成了这两步,为了安装基于ROS使用RealSense的包,现在开始我们要创造一个ROS的工作空间并且配置它。
Ctrl + Alt + T 新建一个命令行:
新建一个文件夹命名为catkin_ws,在目录下新建一个文件夹src并进入:
mkdir -p ~/catkin_ws/src
cd ~/catkin_ws/src/
将catkin_ws/src设置为工作空间:
catkin_init_workspace
这个工作空间设置完了之后最神奇的地方在于,虽然里面什么也没有,但是仍然可以进行编译:
catkin_make clean
catkin_make -DCATKIN_ENABLE_TESTING=False -DCMAKE_BUILD_TYPE=Release
catkin_make install
编译完毕之后你可以在根目录下看见build等文件。
将最新的ntel® RealSense™ ROS包git到src下: 注意这一步,直接git不一定能得到最新的(虽然我也不知道为什么),我比较建议你们进入Github官网直接把包download到本地。
cd src
git clone https://github.com/IntelRealSense/realsense-ros.git
cd realsense-ros/
git checkout `git tag | sort -V | grep -P "^\d+\.\d+\.\d+" | tail -1`
cd ..
现在需要对工作空间再进行一次编译,但是一部分人会出现编译失败(也包括我…),请看一条报错:
missing: ddynamic_reconfigure_DIR
缺少了ddynamic_reconfigure这个依赖包,进入Github下的Readme中查阅到:
Make sure all dependent packages are installed. You can check .travis.yml file for reference.
Specifically, make sure that the ros package ddynamic_reconfigure is installed. If ddynamic_reconfigure cannot be installed using APT, you may clone it into your workspace ‘catkin_ws/src/’ from here (Version 0.2.0)
所以需要点击此处下载依赖包,解压后将其提取到src下,再重新编译一次:
catkin_make clean
catkin_make -DCATKIN_ENABLE_TESTING=False -DCMAKE_BUILD_TYPE=Release
catkin_make install
如无意外这次可以成功。在src下不需要放其他的东西,ORB_SLAM2的包放在catkin_ws下就行了,如下图。(我的catkin_ws写成了catkin_s,不要介意细节)
主目录下文结构:
至此,ROS工作空间的创造就完成了,如果对工作空间感兴趣可移步这里了解更多信息。
下面配置相机节点并测试。
相关配置
插上相机,Ctrl + Alt + T 新建一个命令行:
在任意目录下输入:
roslaunch realsense2_camera rs_rgbd.launch
请看一条可能的报错:
[rs_rgbd.launch] is neither a launch file in package [realsense2_camera] nor is [realsense2_camera] a launch file name
The traceback for the exception was written to the log file
这是由于你没有把devel下的bash文件添加到bashrc的缘故
为了每次启动命令行都能自动添加,则直接修改bashrc文件:
echo "source ~/catkin_ws/devel/setup.bash" >> ~/.bashrc
echo "source ~/catkin_ws/devel/setup.sh" >> ~/.bashrc
source ~/.bashrc
至此,你的bashrc文件中应该添加了以下路径:
source /opt/ros/kinetic/setup.bash
source ~/catkin_ws/devel/setup.sh
source ~/catkin_ws/devel/setup.bash
export ROS_PACKAGE_PATH=~/catkin_s:/home/(用户名)/catkin_ws/src:/opt/ros/kinetic/share
此时再启动相机节点,
roslaunch realsense2_camera rs_rgbd.launch
成功则有以下提示:
如果你忘记插上相机,则会有warning提示:
[ WARN] [1570683306.945951510]: No RealSense devices were found!
此时按Ctrl+C强制退出,插上相机再执行一次就行。
Ctrl + Alt + T 新建一个命令行:
sudo apt-get install rviz
rviz
此时并不能看见什么结果
左上角 Displays 中 Fixed Frame 选项中,下拉菜单选择 camera_link
这是主要到Global Status变成了绿色
点击该框中的Add -> 上方点击 By topic -> /depth_registered 下的 /points 下的/PointCloud2
点击该框中的Add -> 上方点击 By topic -> /color 下的 /image_raw 下的image
你也可以添加更多的信息(深度图)等,成功则有以下图片,拖动鼠标左右键可以查看生成的点云。附上笔者乱糟糟书柜一张。
相机节点测试完毕。
运行ORB_SLAM2
终于到令人兴奋的 实战环节了!其实到这一步就已经没什么坑了,按照官网的步骤基本都可以成功,但有些细节需要注意,我大概讲一讲。
首先要在工作空间内放置一个Pangolin优化库,这就是我在之前的博客中提到的Pangolin可能需要重新安装的原因,你可以把之前的先卸载了。
在任意目录下安装一些依赖:
sudo apt-get install libglew-dev
sudo apt-get install libboost-dev libboost-thread-dev libboost-filesystem-dev
sudo apt-get install libpython2.7-dev
sudo apt-get install build-essential
cd到catkin_ws/ORBSLAM2下,克隆Pangolin代码到本地仓库并编译:
git clone https://github.com/stevenlovegrove/Pangolin.git
cd Pangolin
mkdir