Advertisement

ubuntu18.04笔记本摄像头跑orbslam2

阅读量:

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

1. 安装usb_cam

基于摄像头标定的技术,在笔记本相机中同样可实现定位功能(可选择性配置相机参数以适应不同需求),而外置摄像头同样适用(例如将某文件中的数值由0改为1)。

2. 安装orbslam2

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

复制代码
    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 中安装 orbslam2 也会导致路径冲突
其次是在配置文件路径上存在混乱
如果你已经标定过相机配置
则建议将 catkin_ws 中的 Asus.yaml 文件复制到项目根目录下
并命名为 my.yaml
将其中的相机内参参数替换为自己的标定结果
同时需要避免使用自定义的标定结果文件(因为其格式不符合预期)
最后还需要处理相关的 ROS 节点配置问题
可以在 src 的 orbslam2 包中找到 ros_mono.cc 文件并修改相应的节点设置

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

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

全部评论 (0)

还没有任何评论哟~