当前位置:网站首页>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
边栏推荐
- Baidu flying general BMN timing action positioning framework | data preparation and training guide (Part 2)
- 黑马笔记---异常处理
- Transplant DAC chip mcp4725 to nuc980
- ZOJ problem set – 2563 long dominoes [e.g. pressure DP]
- 【C语言进阶篇】指针的8道笔试题
- 爬虫实战(六):爬笔趣阁小说
- 蓝桥杯2022年第十三届省赛真题-积木画
- 736. LISP syntax parsing: DFS simulation questions
- The cradle of eternity
- 刨析《C语言》【进阶】付费知识【一】
猜你喜欢

Start from the bottom structure to learn the customization and testing of fpga---- FIFO IP

454 Baidu Mianjing 1

Typical problems of subnet division and super network construction

场景实践:基于函数计算快速搭建Wordpress博客系统

AcWing 361. Sightseeing cow problem solution (SPFA seeking positive ring)
![[signal and system]](/img/aa/a65d6da1d1d9410254ca7b775e24a6.png)
[signal and system]

设置Wordpress伪静态连接(无宝塔)

Instructions for using the domain analysis tool bloodhound

tansig和logsig的差异,为什么BP喜欢用tansig

New job insights ~ leave the old and welcome the new~
随机推荐
永久的摇篮
我如何编码8个小时而不会感到疲倦。
C language [23] classic interview questions [Part 2]
JS Es5 can also create constants?
Make Jar, Not War
AI automatically generates annotation documents from code
[chip scheme design] pulse oximeter
Appium基础 — Appium Inspector定位工具(一)
AcWing 344. Solution to the problem of sightseeing tour (Floyd finding the minimum ring of undirected graph)
Hutool post requests to set the body parameter to JSON data
uva 1401 dp+Trie
Domestic images of various languages, software and systems. It is enough to collect this warehouse: Thanks mirror
Curl command
454-百度面经1
JS reverse -- ob confusion and accelerated music that poked the [hornet's nest]
百度飞将BMN时序动作定位框架 | 数据准备与训练指南 (上)
Transplant DAC chip mcp4725 to nuc980
What does front-end processor mean? What is the main function? What is the difference with fortress machine?
Drag to change order
子网划分、构造超网 典型题