文章目录
Github上的orb-slam2项目
github地址如下orb_slam2
在ROS上运行orb-slam2参考步骤
视觉SLAM | 在ROS上运行ORB-SLAM2 - 古月居
1.运行环境
硬件:Realsense D435i
软件环境:Ubuntu18.04、ROS melodic 、librealsense、realsense-ros
1.1 ros安装
参考古月Ros21讲
1.添加软件源
sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main"> /etc/apt/sources.list.d/ros-lastest.list'
2.添加密钥
sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-kry C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654
3.安装ros
sudo apt update
sudo apt install ros-melodic-destop-full
4.初始化rosdep
sudo rosdep init
rosdep update
5.设置环境变量
echo "source /opt/ros/melodic/setup.bash">>~/.bashrc
6.安装rosinstall
sudo apt install python-rosinstall python-rosinstall-generator python-wstool build-essential
7.安装完成打开海龟仿真验证
roscore
打开一个新终端,打开小海龟仿真节点
rosrun turtlesim turtlesim_node
再打开一个终端,启动海龟控制节点
rosrun turtlesim turtle_teleop_key
1.2 librealsense安装
参考自librealsense安装前半部分
添加仓库钥匙
sudo apt-key adv --keyserver keys.gnupg.net --recv-key F6E65AC044F831AC80A06380C8B3A55A6F3EFCDE || sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-key F6E65AC044F831AC80A06380C8B3A55A6F3EFCDE
添加仓库
sudo add-apt-repository "deb https://librealsense.intel.com/Debian/apt-repo $(lsb_release -cs) main" -u
安装库
sudo apt-get install librealsense2-dkms
sudo apt-get install librealsense2-utils
安装开发和调试包
sudo apt-get install librealsense2-dev
sudo apt-get install librealsense2-dbg #(这个可以不安装)
测试
realsense-viewer
1.3 realsense-ros安装
2.安装依赖项
2.1 安装Eigen3
这是矩阵运算用的库,最低要求版本3.1.0。
sudo apt install libeigen3-dev
2.2安装openCV
1.首先安装cmkae
一般都有cmake,可以不用再装
sudo apt install cmake
2.再安装依赖包
sudo apt install libgtk2.0-dev
sudo apt install pkg-config
3.到如下网站下载opencv 3.2.0
opencv.org/releases.html
4.下载后,解压:
unzip opencv-3.2.0.zip
cd opencv-3.2.0
5.建立build文件夹
mkdir build
cd build
6.开始编译:
cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local -D ENABLE_PRECOMPILED_HEADERS=OFF ..
sudo make -j8
sudo make install
问题
CMake Error at cmake/OpenCVCompilerOptions.cmake:21 (else):
Flow control statements are not properly nested.
打开对应的cmake文件21行发现同一个作用域有两个else
解决方法
21行22行注释掉就可以了
别的电脑也编译过貌似没出现过这种问题,应该与cmake版本有关
7.添加库路径:
修改opencv.conf文件的内容
sudo vim /etc/ld.so.conf.d/opencv.conf
opencv.conf的内容:
/usr/local/lib
8.添加环境变量:
sudo vim ~/.profile
.profile最后一行添加:
PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig
export PKG_CONFIG_PATH
3.安装orb_slam2_ros
配置一个工作环境
mkdir -p ~/orbslam2_workspace/src
cd ~/orbslam2_workspace
source /opt/ros/melodic/setup.bash
catkin init
catkin config --extend /opt/ros/melodic
catkin config --cmake-args -DCMAKE_BUILD_TYPE=Release
使用catkin build进行编译
cd ~/orbslam2_workspace/src
git clone https://github.com/appliedAI-Initiative/orb_slam_2_ros.git
cd ~/orbslam2_workspace
catkin build
当然也可以使用catkin_make来编译
mkdir -p ~/catkin_ws/src
cd ~/catkin_ws/src/
git clone https://github.com/appliedAI-Initiative/orb_slam_2_ros.git
catkin_init_workspace
cd ~/catkin_ws/
catkin_make
运行orb_slam2_ros首先需要执行
source ~/orbslam2_workspace/devel/setup.bash
依次运行
roslaunch realsense2_camera rs_rgbd.launch
roslaunch orb_slam2_ros orb_slam2_d435_rgbd.launch
运行rs_rgbd.launch时可能出错,解决方法:
sudo apt install ros-melodic-rgbd-launch
然后在realsense_ws工作空间中重新编译一遍,解决上述问题
打开rviz
rviz
打开后,点击Add->By topic,选择orbslam2节点发布的pose、PointCloud2等话题,就可以显示相机位姿和稀疏点云。