站点图标 AI技术聚合

Ubuntu18.04+KinectV1(XBOX360)+ORB_SLAM2

Ubuntu18.04+KinectV1(XBOX360)+ORB_SLAM2

先装好ros!!!

一.安装KinectV1驱动

1、首先新建一个文件夹存放驱动也可以放在software中。

2、推荐博客安装:

(1)ubuntu18.04 openni2和nite2配置KinectV1(XBOX360)_zhiwei121的博客-CSDN博客

(2)Ubuntu安装Kinect驱动(openni、NITE、Sensor)及遇到的问题_张京林要加油的博客-CSDN博客_kinectv1 驱动

(3)Ubuntu16.04 + kinectv1 + ORB_SLAM2_啊,鱼的博客-CSDN博客

遇到的问题:运行./NiViewer时,总出现:

解决方法:当(3)中的方法都不能解决时,给kinectV1换个接口,插在电脑的其他USB接口上

结果:

二、用别人的CMAKELists文件测试(可以不做,自己好奇到就试试看)

  1. ubuntu18.04 openni2和nite2配置KinectV1(XBOX360)_zhiwei121的博客-CSDN博客
  2. 使用CMake编译代码教程之1_豆-Metcalf的博客-CSDN博客_cmake 编译代码

出现问题: openni路径不对

解决方法:修改CMakeList.txt中openni的路径,改成自己的

运行结果:

三、测试KinectV1设备

第一个终端:

roscore

第二终端:

roslaunch openni_launch openni.launch

要么

roslaunch freenect_launch freenect.launch

出现问题:

rviz无图像,Global Status出现红体

解决方法:其实只需要首先,先把左上角的Global Options下面的Fixed Frame左边的map改为world,这时,Global Status就会变成ok状态。然后在左下角选中Add,添加pointcloud2,Topic选择/camera/depth_regist…..。

运行结果:

四、Ubuntu18.04下ORB-SLAM2安装教程

以下是作者的安装步骤。如果遇到无法解决的问题,也可以从这位博主的博客中学习:

https://blog.csdn.net/huapiaoxiang21/article/details/85341233

1、下载

git clone https://github.com/raulmur/ORB_SLAM2

2、打开ORB-SLAM2文件夹,进入Thirdparty文件夹,分别进入DBoW2,g2o文件夹进行cmake,make编译。

3、再进入解压Vocabulary文件夹中的ORBvoc.txt.tar.gz,解压到当前文件夹后,会出现ORBvoc.txt。

4、进入ORB_SALM2根目录下,找到include文件夹下的System.h文件打开,添加头文件:

#include<unistd.h>

5、在http://​ https://github.com/raulmur/ORB_SLAM2 ​下载数据集(Dataset)

在ORB_SLAM2目录下新建一个downloads文件夹,下载TUM Dataset到downloads,点开下载的链接选择fr1/xyz,下载完成后解压。

6、在ORB_SLAM2根目录下,

cmake .
make

7、最后按照官网的运行命令格式为:

./mono_tum path_to_vocabulary path_to_settings path_to_sequence

(1)./mono_tum 是数据集的可执行文件,一般路径为ORB-SLAM2工程目录下Examples/Monocular/mono_tum;

(2)path_to_vocabulary为所选词典的路径,路径为ORB-SLAM2/Vocabulary/ORBvoc.txt;

(3)path_to_settings为配置文件,存放在ORB-SLAM2/Examples/Monocular下,该配置文件中存放的相机的内参和外参,提取特征时候图像金字塔相关参数,可视化过程中用到的参数;

(4)path_to_sequence为数据集路径,这个根据自己下载的数据集路径来指定。

作者这里的代码是:

cd ORB_SLAM2
/Examples/Monocular/mono_tum Vocabulary/ORBvoc.txt Example/Monocular/TUM1.yaml /home/ww/catkin_ws/ORB_SLAM2/downloads/rgbd_dataset_freiburg1_xyz

运行结果:

五、用kinect1相机跑ORB_SLAM2

1、kinect1接12V电源,用自身的USB接到笔记本

2、

roslaunch openni_launch openni.launch #或
roslaunch freenect_launch freenect.launch

3、新终端打开:

rostopic list

查看/camera/rgb/image_raw      /camera/depth_registered/image_raw是否存在。

4、两个新终端打开以下:

 roscore
 rosrun rqt_image_view rqt_image_view

5、配置launch文件时,在ORB_SLAM2的根目录下新建kinect_orbslam2.launch(用touch新建),内容如下(把红色字体改成自己的路径):

<launch> 
  <param name="orb_use_viewer" value="false"/> 
  <node pkg="ORB_SLAM2" type="RGBD" name="ORB_SLAM2" 
        args="/home/ww/catkin_ws/ORB_SLAM2/Vocabulary/ORBvoc.txt 
         /home/ww/catkin_ws/ORB_SLAM2/Examples/RGB-D/TUM1.yaml" cwd="node" output="screen"/> 

  <include file="$(find freenect_launch)/launch/freenect.launch"> 
    <!-- use device registration --> 
    <arg name="depth_registration" value="true" /> 
    <arg name="rgb_processing" value="true" /> 
    <arg name="ir_processing" value="false" /> 
    <arg name="depth_processing" value="false" /> 
    <arg name="depth_registered_processing" value="true" /> 
    <arg name="disparity_processing" value="false" /> 
    <arg name="disparity_registered_processing" value="false" /> 
    <arg name="sw_registered_processing" value="false" /> 
    <arg name="hw_registered_processing" value="true" /> 
  </include> 
</launch> 

再次运行以下代码:

cd ORB_SLAM2
roslaunch kinect_orbslam2.launch

出现错误(1):

发现自己没有编译得到RGBD节点。

解决方法:cd到Examples/ROS/ORB_SLAM2,然后执行以下程序:

mkdir build
cd build
cmake .. -DROS_BUILD_TYPE=Release
make -j

出现错误(2):

解决方案:

在Examples/ROS/ORB_SLAM2/Cmakelist.txt 的文件后面加入两句话:

target_link_libraries(Stereo boost_system boost_filesystem)  

target_link_libraries(RGBD boost_system boost_filesystem)

6、在ORB-SLAM2目录下运行:

roslaunch kinect_orbslam2.launch

运行结果:

文章出处登录后可见!

已经登录?立即刷新
退出移动版