您的位置:首页 > 其它

在U 4000 buntu16.04 ros Kinect 下运行RGBD-SLAM实战项目

2018-11-13 16:39 302 查看

1.安装ros kinetic

https://mp.csdn.net/postedit/84029866

创建catkin 工作空间存放项目

mkdir -p ~/catkin_ws/src
cd ~/catkin_ws/src
catkin_init_workspace
cd ../
catkin_make

2.下载项目

cd ~/catkin_ws/src
git clone https://github.com/felixendres/rgbdslam_v2

此版本CMakelists是基于的pcl1.7,我们要改成1.8,否则编译好之后运行会崩溃,具体操作从第五步开始。

3.安装g2o依赖

sudo apt-get install cmake libeigen3-dev libsuitesparse-dev libqt4-dev qt4-qmake libqglviewer qt5-qmake

4.安装g2o(确保使用此版本g2o,否则编译可能不通过)

g2o地址: https://github.com/felixendres/g2o
下载下来解压后进入g2o目录(此目录最后不要包含中文,否则可能出错),然后在此目录下打开终端,输入

mkdir build
cd build
cmake ..
make
sudo make install

5.下载pcl1.8并解压,最后不包含中文路径

pcl1.8地址:https://github.com/PointCloudLibrary/pcl/archive/pcl-1.8.0.tar.gz

6.用c++2011编译pcl

进入解压的pcl-pcl-1.8.0目录,打开终端

gedit CMakeLists.txt

找到地第146行(在endif()下面),添加下面一段话

SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")

保存文件退出

7.编译安装pcl1.8

在pcl-pcl-1.8.0目录下

mkdir build
cd build
cmake ..
make
sudo make install

7.将在项目的cmakelsits文件中将pcl1.7改成1.8

cd ~/catkin_ws/src/rgbdslam_v2
gedit CMakeLists.txt

将79行的

find_package(PCL 1.7 REQUIRED COMPONENTS common io)

改成

find_package(PCL 1.8 REQUIRED COMPONENTS common io)

保存退出

9.改pcl_rosConfig.cmake文件

从112或者119行开始将所有的"/usr/lib/x86_64-linux-gnu/libpcl"字符替换成"usr/local/lib/libpcl",可以用查找和替换功能实现

10.编译 siftgpu

cd ~/catkin_ws/src/rgbdslam_v2/external/SiftGPU
sudo apt-get install libglew-dev
sudo apt-get install libdevil1c2 libdevil-dev
make

11.编译rgbdslam

cd ~/catkin_ws
gedit src/rgbdslam_v2/CMakeLists.txt

在最后添加

SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")

保存退出,然后编译

catkin_make

12.测试

在终端输入

roscore

新开终端,输入

~/catkin_ws/devel/lib/rgbdslam/rgbdslam

安装turtlebot

https://blog.csdn.net/weixin_43540678/article/details/84033325

连接rgbd设备后

生成kobuki别名

rosrun kobuki_ftdi create_udev_rules

检查别名:

输入检测命令:

ls /dev/kobuki

会显示有对应的设备/dev/kobuki,前提是电脑连接设备了

设置环境变量

echo $TURTLEBOT_3D_SENSOR
#Output: kinect

如果你看到一个3D传感器,例如asus_xtion_pro,您将需要设置环境变量的默认值

echo "export TURTLEBOT_3D_SENSOR=kinect" >> .bashrc
source .bashrc

开启程序,直到出现画面

roslaunch rgbdslam openni+rgbdslam.launch

启动底座

roslaunch turtlebot_bringup minimal.launch

启动遥控

roslaunch turtlebot_teleop keyboard_teleop.launch

补充

经过实践,先开底座,在开程序,会导致程序没有画面,所以我推荐的启动顺序为
1.将电脑连接设备,打开设备开关
2.

roslaunch rgbdslam openni+rgbdslam.launch
,开启程序直到画面出现,再执行3
3.
roslaunch turtlebot_bringup minimal.launch
,启动底座
4.
roslaunch turtlebot_teleop keyboard_teleop.launch
,启动遥控

阅读更多
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: