硬件:
1、电脑环境:Ubuntu 16.04+ROS-Kinetic-desktop-full
2、笔记本自带的摄像头(其他USB摄像头也可以)
一、创建ROS工作空间
mkdir -p ~/catkin/src
cd catkin
catkin_make
二、下载USB驱动
地址:https://github.com/ros-drivers/usb_cam.git
下载之后解压到src目录
usb_cam是一个独立的package包。编译工作空间:
cd ..
catkin_make
运行结果:
先打开一个终端,运行roscore
另外打开一个终端,运行roslaunch usb_cam usb_cam-test.launch
可以看到,摄像头已经启动了,并将拍摄到的图像显示在屏幕上。
运行一些rosrun rqt_graph rqt_graph看一下节点。
usb_cam节点将摄像头拍摄的图像发布出来了,image_view订阅了消息并显示出来。
三、配置ORB SLAM2
下载ORB SLAM2,网址:https://github.com/raulmur/ORB_SLAM2.git,并将其解压放在src目录下
1、安装依赖项
1)Pangolin
不知道先要安装哪些依赖项?没关系,先直接安装,看报错提示缺什么,就装什么。
cd Pangolin
mkdir build
cd build
cmake ..
这里执行出错了,报错信息如下:
没有找到glew,进行安装
sudo apt-get install libglew-dev
又出错了,报错信息如下:
可以看到,是资源锁不可用,可能是昨天在安装某个东西的时候,还没有安装完成就异常关闭了,输入下面两句命令解决:
sudo rm /var/cache/apt/archives/lock
sudo rm /var/lib/dpkg/lock
然后重试一下安装glew完成。
继续安装Pangolin
cmake ..
cmake --build .
Pangolin安装完成。
2)安装OpenCV
之前已经安装过了,不知道怎么安装可以参考:https://blog.csdn.net/llfjcmx/article/details/81185992
用pkg-config --modversion opencv可以查看OpenCV的版本
3)安装Eigen3
之前已经安装过了,没有安装过的使用命令sudo apt-get install libeigen3-dev进行安装
4)DBoW2 and g2o
这两个库都已经包含在ThirdParty文件夹中了,不需要单独进行安装。
2、配置ROS_PACKAGE_PATH
sudo gedit ~/.bashrc
打开.bashrc文件,在末尾添加:
export ROS_PACKAGE_PATH=${ROS_PACKAGE_PATH}:PATH/ORB_SLAM2/Examples/ROS
上面的PATH改成自己对应的目录。
cd catkin_ws/src/ORB_SLAM2
chmod +x ./build_ros.sh
./build_ros.sh
完成。
3、运行测试(注意要source环境变量)
终端1:
roscore
终端2:
roslaunch usb_cam usb_cam-test.launch
终端3:
rosrun ORB_SLAM2 Mono /home/llf/data/ROS_Project/catkin_ws/src/ORB_SLAM2/Vocabulary/ORBvoc.txt /home/llf/data/ROS_Project/catkin_ws/src/ORB_SLAM2/Examples/Monocular/TUM1.yaml