ubuntu18.04笔记本摄像头跑orbslam2

在运行orbslam之前需要的准备工作:

1. 安装usb_cam

参考摄像头标定,笔记本相机的标定(也可以不标定,使用程序中提供的相机参数,反正也不对地图有什么高要求。。。),外接相机也可以,好像是把某个文件中的0改成1.

2. 安装orbslam2

在catkin_ws/src中下载orbslam2,网上有教程。
至于orbslam的安装网上也有很多的教程,首先要安装一些依赖库,github上也有说明,然后编译orbslam,注意去掉文件build.sh中make之后的-j,防止卡死。还有usleep问题,需要在某个文件(程序报错后你就知道了)中加入头文件#include ,这样应该没什么问题了,如果有自己取搜吧。
还有是要编译build_ros.sh,这个的话需要在.bashrc(位于/home/用户名)中加入

export ROS_PACKAGE_PATH=${ROS_PACKAGE_PATH}:/home/用户名/catkin_ws/src/ORB_SLAM2/Examples/ROS

当时我找方法的时候找了很多,然后在/opt/ros/melodic中的setup.bash中也加了这句话,保险起见还是加上吧,上边的路径注意换自己 的用户名,然后就是环境设置,打开终端,运行

source /opt/ros/melodic/setup.bash
source ~/.bashrc

在/catkin_ws/src/ORB_SLAM2/Examples/ROS/ORB_SLAM2中的CMakelists.tst文件中的

set(LIBS
$ {OpenCV_LIBS}
$ {EIGEN3_LIBS}
$ {Pangolin_LIBRARIES}
$ {PROJECT_SOURCE_DIR} /../。 ./../Thirdparty/DBoW2/lib/libDBoW2.so
$ {PROJECT_SOURCE_DIR} /../../../ Thirdparty / g2o / lib / libg2o.so
$ {PROJECT_SOURCE_DIR} /../../ .. /lib/libORB_SLAM2.so

加入-lboost_system,如下所示

set(LIBS
$ {OpenCV_LIBS}
$ {EIGEN3_LIBS}
$ {Pangolin_LIBRARIES}
$ {PROJECT_SOURCE_DIR} /../。 ./../Thirdparty/DBoW2/lib/libDBoW2.so
$ {PROJECT_SOURCE_DIR} /../../../ Thirdparty / g2o / lib / libg2o.so
$ {PROJECT_SOURCE_DIR} /../../ .. /lib/libORB_SLAM2.so
-lboost_system
)

最后就是在ORB_SLAM2中编译build_ros

./build_ros.sh

应该能成功了,我遇到的问题就是上面这些,还有如果你之前在其他位置安装过orbslam2,又在catkin_ws中安装了可能会出现路径问题,这个看一下问题描述应该能自己手动改过来,如果不在catkin_ws中安装的话你把路径写对应该就没问题了。
如果你自己标定了相机,在/catkin_ws/src/ORB_SLAM2/Examples/ROS/ORB_SLAM2中复制一下Asus.yaml为my.yaml,将其中的相机内参改成自己标定的结果,不建议使用自己的标定结果文件,因为格式不对。
还有ros中相机的节点问题,catkin_ws/src/ORB_SLAM2/Examples/ROS/ORB_SLAM2/src的ros_mono.cc中修改节点,将camera_usb换成usb_cam。

3. 运行

打开一个终端,运行ros

roscore

再打开一个终端,运行相机

roslaunch usb_cam usb_cam-test.launch

如果出现错误,试一下在catkin_ws下运行

source devel/setup.bash

再打开一个终端,运行

rosrun ORB_SLAM2 Mono /home/用户名/catkin_ws/src/ORB_SLAM2/Vocabulary/ORBvoc.txt /home/用户名/catkin_ws/src/ORB_SLAM2/Examples/ROS/ORB_SLAM2/my.yaml

注意改成自己的路径。
移动笔记本,不要旋转,进行初始化,然后就可以了。

你可能感兴趣的:(ubuntu18.04笔记本摄像头跑orbslam2)