Windows10+VMware15.0+Ubuntu16.04+ROS kinetic+orb-slam2+usb_cam配置过程记录

本来快要配置结束了,结果安装realsense ROS wrapper 之后启动launch文件总是显示找不到节点,搜索,说是可能catkin_ws中加入别的文件导致这个问题,需要把build和devel删掉,重新执行catkin_make。遂执行 rm -rf build devel.应该是命令写错了,src 中的文件也全部被删掉了.......哭死,只能从头再来,这一次,做全程的记录,按照官方文档进行安装。

环境:windows10 + VMware15.0+ubuntu16.04 + ROS kinetic + orb-slam2 + usb摄像头

一、虚拟机的安装(ubuntu 16.04)

遇到的问题和注意的点:

1、realsense D435i 的运行需要USB3.0接口,所以在虚拟机的hardware中 USB Controller 的 USB compatibility 选择 USB 3.0.

2、虚拟机的安装要安装成64位的话,如果显示主机不支持64位,进入主机的BOOT设置VT(Visual Technology) 为 Enabled .

3.本机8G内存,开始分配2G,不够用总是内存占用90%多,分配到最大:3G.

二、ROS kenitic 的安装

参照官网教程

http://wiki.ros.org/kinetic/Installation/Ubuntu

问题点:

1.记得设置软件更新里的选项,还有换源,目前国内清华的源最好。

2.安装桌面完整版。

三、orb-slam2 安装

参考教程

https://blog.itswcg.com/2018-03/orb-slam2-run.html

问题点:

1.安装Pangolin 

(1)执行

make 

虚拟机内存满,然后卡死,等待,安装失败。

解决办法:

https://blog.csdn.net/zzu_seu/article/details/84866858

下载旧版的代码。

(2)./build_ros.sh

遇到问题 Undefined reference to symbol ‘_ZN5boost6system15system_categoryEv’

Windows10+VMware15.0+Ubuntu16.04+ROS kinetic+orb-slam2+usb_cam配置过程记录_第1张图片

一定是Expamples/ROS/ROS_SLAM2/ 下的 CMakelist.txt  改成上面那样的,最后加一行 -lboost_system

2. 下载数据集进行ORB-SLAM2测试

(1)直接在虚拟机下下载速度特别慢,所以选择主机下载然后拷进去。这时需要设置主机和虚拟机的共享文件夹。

参考:

https://blog.csdn.net/qq_31180393/article/details/79891890

设置完之后一定要点OK(英文版是OK,我感觉中文版也是),一定一定!要不虚拟文件夹是不会出来的。

(2)数据集放进去了,也解压了,现在执行命令,但是没有反应。在等!

没戏了,给了命令没反应,查找原因。

(3)没找到原因,重新安装编译,这次成功。

期间做了几个改变,在此记录:

1.opencv 改用2.4.11版本,不用3.2版本。

2.数据集没有生成associations.txt5文件,按照教程下载accociate.py.执行脚本,生成关联文件。也就是说,要严格按照教程来。

3.因为是用的虚拟机,从网上下载的数据集,经过一次解压并不能直接用。所以先在windows下完全解压(能够打开里面看到depth.txt 和rgb.txt 等),然后通过共享文件夹拷入,ORBSLAM2的目录。

Windows10+VMware15.0+Ubuntu16.04+ROS kinetic+orb-slam2+usb_cam配置过程记录_第2张图片

执行命令,不赘述,成功。

4.编译ros并运行自己的usb摄像头。

1.摄像头节点usb_cam下载编译。我是下载再catkin_ws/src中。完事别忘了catkin_make和 source ~/.bashrc

2.编译orb_slam2的ros节点(很多教程)

3.遇到一个问题,就是节点编译完之后,运行时找不到节点。查找原因,目录未被包含进ROS的路径。解决方法。

https://blog.csdn.net/qq_38347931/article/details/80267150

4.一定要确定自己的工作空间路径全都包含进里面了。特别是orb_slam2的ros包所在的路径。不仅是这一次,以后所有的ros包编译之后都要确定已经包含进路径了。

5.对自己的摄像头进行标定,然后生成.yaml文件。我用ROS的标定功能包进行标定,生成的,yaml文件和orb_slam2中的.yaml文件的格式不一样,进行了修改。教程:

https://blog.csdn.net/qq_36122936/article/details/88548052

6.然后启动usb_cam 节点,打开终端 输入

roslaunch usb_cam usb_cam-test.launch

启动orb_slam2节点

 rosrun ORB_SLAM2 Mono /home/walter/catkin_ws/src/ORB_SLAM2/Vocabulary/ORBvoc.txt  /home/walter/catkin_ws/src/ORB_SLAM2/Examples/ROS/ORB_SLAM2/mycam.yaml

运行成功!

Windows10+VMware15.0+Ubuntu16.04+ROS kinetic+orb-slam2+usb_cam配置过程记录_第3张图片

记得每次编译完 source一下   ~/.bashrc

 此次博客记录不详细,时间紧没办法,只能记一下自己踩过的坑,希望以后不要忘了!

此致敬礼!

誓做五好青年!

 

 

 

 

 

 

 

你可能感兴趣的:(SLAM之路)