第一次写博客,记录一下ros配置orb-slam2的过程与问题,配置过程都是参考各路大神。环境是VMware,Ubuntu18.04,ROS Melodic。
Ubuntu18.04配置ros环境参考博客:Ubuntu18.04安装Ros(最新最详细亲测)_向日葵骑士Faraday的博客-CSDN博客_ubuntu18.04安装ros跟我一步一步来,带你轻松安装ROShttps://blog.csdn.net/KIK9973/article/details/118755045?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522165364013016781483734563%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=165364013016781483734563&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~top_positive~default-2-118755045-null-null.142%5Ev11%5Econtrol,157%5Ev12%5Econtrol&utm_term=ubuntu18.04%E5%AE%89%E8%A3%85Ros&spm=1018.2226.3001.4187我将orb-slam2工程放在catkin_ws/src文件夹下,随后先进行了非ROS环境的SLAM2编译,因为安装了opencv4.1.0,编译orb-slam2时出现了一堆错误,可以参考以下博客:
ROS配置ORB_SLAM2_嚣张的叉烧包的博客-CSDN博客_ros配置orbslam2准备工作ORB_SLAM2/ROS的安装,具体安装流程博主之前写过,读者可以自行阅读。 添加环境变量cd ~gedit .bashrcexport ROS_PACKAGE_PATH=${ROS_PACKAGE_PATH}:PATH/ORB_SLAM2/Examples/ROS其中PATH为ORB_SLAM2的安装路径 编译ROS文件cd ORB_SLAM2的目录下chmod +x build_ros.sh./build_ros.sh 安装摄像头驱动功能包编译usb_cahttps://blog.csdn.net/weixin_43828675/article/details/115312472?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522165383083716782388091271%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=165383083716782388091271&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduend~default-1-115312472-null-null.142%5Ev11%5Econtrol,157%5Ev12%5Econtrol&utm_term=ROS%E9%85%8D%E7%BD%AEORB_SLAM2&spm=1018.2226.3001.4187其中运行roslaunch usb_cam usb_cam-test.launch时出现了select timeout问题:[ERROR] [1653829004.029895654]: select timeout [usb_cam-1] process has died [pid 2955, exit code 1, cmd /home/ideal/catkin_ws/devel/lib/usb_cam/usb_cam_node __name:=usb_cam __log:=/home/ideal/.ros/log/8b920d36-df4e-11ec-b825-000c29789e23/usb_cam-1.log].
猜测是虚拟机的传输效率不够快,尝试将虚拟机usb的兼容性改为usb3.1,同时将摄像头插入usb3.0,成功导入摄像头视频。
随后用slam2自带的参数文件运行rosrun ORB_SLAM2 Mono /home/ideal/catkin_ws/src/ORB_SLAM2-master/Vocabulary/ORBvoc.txt /home/ideal/catkin_ws/src/ORB_SLAM2-master/Examples/Monocular/TUM1.yaml,出现了段错误(核心已转储),后续查找了很多资料,尝试多种方法,包括删除-march=native等方法都没解决,后面发现有大佬说 和 opencv版本有关系,将opencv版本换成slam2源码作者中推荐的版本可以 解决,但自己没去验证,因为发现虚拟机无法安装cuda,因此打算安装双系统,放弃 此问题