先装好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文件测试(可以不做,自己好奇到就试试看)
- ubuntu18.04 openni2和nite2配置KinectV1(XBOX360)_zhiwei121的博客-CSDN博客
- 使用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
运行结果:
文章出处登录后可见!