当前位置:网站首页>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
边栏推荐
- 糊涂工具类(hutool)post请求设置body参数为json数据
- 字符串的相关编程题
- MySQL's most basic select statement
- 【唯一】的“万字配图“ | 讲透【链式存储结构】是什么?
- [chip scheme design] pulse oximeter
- Dark horse notes - exception handling
- String to date object
- 一文带你走进【内存泄漏】
- Start from the bottom structure to learn the customization and testing of fpga---- FIFO IP
- 从底层结构开始学习FPGA----FIFO IP的定制与测试
猜你喜欢

Right mouse button customization

JVM memory model

爬虫实战(六):爬笔趣阁小说

AcWing 361. Sightseeing cow problem solution (SPFA seeking positive ring)

Let's see how to realize BP neural network in Matlab toolbox

Transplant DAC chip mcp4725 to nuc980

【信号与系统】

Appium automation test foundation uiautomatorviewer positioning tool

1123. The nearest common ancestor of the deepest leaf node

LeetCode:1175. Prime permutation
随机推荐
制作带照明的DIY焊接排烟器
JVM 内存模型
AcWing 904. Wormhole solution (SPFA for negative rings)
HDU 4661 message passing (wood DP & amp; Combinatorics)
Mongodb checks whether the table is imported successfully
Make DIY welding smoke extractor with lighting
拖拽改变顺序
爬虫实战(六):爬笔趣阁小说
454 Baidu Mianjing 1
【信号与系统】
Gin introduction practice
搭建【Redis in CentOS7.x】
According to the analysis of the Internet industry in 2022, how to choose a suitable position?
图片打水印 缩放 和一个输入流的转换
JVM memory model
C语言实例_3
Analyze "C language" [advanced] paid knowledge [End]
蓝桥杯2022年第十三届省赛真题-积木画
字符串的相关编程题
【C语言进阶篇】指针的8道笔试题