当前位置:网站首页>ROS学习(二十)机器人SLAM功能包——rgbdslam的安装与测试
ROS学习(二十)机器人SLAM功能包——rgbdslam的安装与测试
2022-07-06 18:12:00 【敲代码的雪糕】
文章目录
前言
在前面的学习中,slam构建出的地图都是二维地图,而目前很多算法可以实现三维信息的地图构建,机器人不仅知道地图中的什么位置有障碍物,而且还知道该障碍物是什么。
ROS提供了多种3D SLAM的功能包,rgbdslam就是其中一种,本篇主要学习rgbdslam的安装与测试。
一、新建工作空间
命令如下:
mkdir -p ~/catkin_rgbdslam_ws/src
cd ~/catkin_rgbdslam_ws/src
catkin_init_workspace
cd ~/catkin_rgbdslam_ws
catkin_make
二、下载rgbdslam_v2作者对应的g2o
命令如下:
cd ~/catkin_rgbdslam_ws/src
sudo apt-get install libsuitesparse-dev
git clone https://github.com/felixendres/g2o.git
cd g2o
mkdir build
cd build
cmake ..
make..
sudo make install
其中,第二条命令负责安装依赖。
三、安装pcl1.8
下载,命令如下:
cd ~
wget https://github.com/PointCloudLibrary/pcl/archive/pcl-1.8.0.tar.gz
tar -xvzf pcl-pcl-1.8.0.tar.gz
cd ~/pcl-pcl-1.8.0
gedit CMakeLists.txt
将以下内容添加到CMakeLists.txt的第146行(在endif()之后),即添加C++11支持:
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
编译、安装,命令如下:
cd ~/pcl-pcl-1.8.0
mkdir build
cd build
cmake ../
make VERBOSE=1
sudo make install
四、配置rgbdslam_v2
命令如下:
cd ~/catkin_rgbdslam_ws/src
git clone https://github.com/felixendres/rgbdslam_v2
cd rgbdslam_v2
gedit CMakeLists.txt
修改CMakeLists文件内容,将
find_package(PCL 1.7 REQUIRED COMPONENTS common io)
改为:
find_package(PCL 1.8 REQUIRED COMPONENTS common io)
并且在最低端加入以下内容:
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
修改 /opt/ros/kinetic/share/pcl_ros/cmake/pcl_rosConfig.cmake文件,将所有/usr/lib/x86_64-linux-gnu/libpcl_开头的内容改成/usr/local/lib/libpcl_(总计34个)
五、构建siftgpu库
命令如下:
cd ~/catkin_rgbdslam_ws/src/rgbdslam_v2/external/SiftGPU
sudo apt-get install libglew-dev
sudo apt-get install libdevil1c2 libdevil-dev
make
六、编译rgbdslam_v2
命令如下:
cd ~/catkin_rgbdslam_ws
catkin_make
cd build/rgbdslam_v2
make VERBOSE=1
make install
若编译报opencv错误,可以根据本篇博客 openCV踩坑日记进行操作,然后重新编译。
七、测试
1、简单测试
新开一个终端,运行roscore
roscore
切换到/catkin_rgbdslam_ws/devel/lib/rgbdslam/目录下,打开另一个终端,运行如下命令:
./rgbdslam
界面如下:
若此界面正常显示,则证明rgbdslam安装成功。
2、数据集测试
下载数据集,下载地址:http://vision.in.tum.de/data/datasets/rgbd-dataset/download#freiburg1_room,将下载好的.bag文件存放到catkin_rgbdslam_ws/rgdb_data目录下。
修改rgdbslam.launch文件,确保订阅的话题与数据集的一致,修改内容如下:
<param name="config/topic_image_mono" value="/camera/rgb/image_color"/>
<param name="config/topic_image_depth" value="/camera/depth/image"/>
打开终端,输入命令如下:
roscore
切换到rgdbslam_v2/launch目录下,打开新的终端,命令如下:
roslaunch rgbdslam rgbdslam.launch
界面如下所示:
切换到catkin_rgbdslam_ws/rgdb_data目录下,打开新的终端,命令如下:
rosbag play rgbd_dataset_freiburg1_room.bag
数据包开始发布数据时,就可以在界面中看到图像数据和slam的过程,如下:
建图完成后,直接在菜单栏中选择保存为点云数据,我保存在rgdb_data目录下,文件名为quicksave.pcd。
可以使用pcl_ros功能包查看已保存的点云地图:
rosrun pcl_ros pcd_to_pointcloud quicksave.pcd
边栏推荐
- C语言关于链表的代码看不懂?一篇文章让你拿捏二级指针并深入理解函数参数列表中传参的多种形式
- JS Es5 can also create constants?
- Let's see how to realize BP neural network in Matlab toolbox
- golang 基础 —— 数据类型
- C language instance_ five
- 百度飞将BMN时序动作定位框架 | 数据准备与训练指南 (上)
- 公钥\私人 ssh避password登陆
- Long press the button to execute the function
- Google发布安全更新,修复Chrome中已被利用的0 day
- String to date object
猜你喜欢
AcWing 345. 牛站 题解(floyd的性质、倍增)
Dark horse notes - create immutable sets and streams
一起看看matlab工具箱内部是如何实现BP神经网络的
Comparison of picture beds of free white whoring
Reptile practice (VI): novel of climbing pen interesting Pavilion
Baidu flying general BMN timing action positioning framework | data preparation and training guide (Part 2)
蓝桥杯2022年第十三届省赛真题-积木画
黑马笔记---创建不可变集合与Stream流
Yunna | work order management software, work order management software app
修改px4飞控的系统时间
随机推荐
HDU 4661 message passing (wood DP & amp; Combinatorics)
编译命令行终端 swift
AcWing 904. Wormhole solution (SPFA for negative rings)
初识MySQL
Clickhouse fields are grouped and aggregated, and SQL is queried according to the granularity of any time period
DS-5/RVDS4.0变量初始化错误
swiper组件中使用video导致全屏错位
Gin 入门实战
When grep looks for a process, it ignores the grep process itself
【信号与系统】
Public key \ private SSH avoid password login
一起看看matlab工具箱内部是如何实现BP神经网络的
1123. The nearest common ancestor of the deepest leaf node
AI automatically generates annotation documents from code
LeetCode:1175. Prime permutation
[advanced C language] 8 written questions of pointer
百度飞将BMN时序动作定位框架 | 数据准备与训练指南 (下)
LeetCode:1175. 质数排列
The cradle of eternity
鼠标右键 自定义