当前位置:网站首页>ROS学习(21)机器人SLAM功能包——orbslam的安装与测试
ROS学习(21)机器人SLAM功能包——orbslam的安装与测试
2022-07-06 18:12:00 【敲代码的雪糕】
前言
在前面的学习中,我们完成了rgdbslam的安装和测试,本篇在此基础上完成ORB-SLAM的安装,这里需要安装的东西就不多了,之前安装RGBD-SLAM时,多数都已安装完毕。
一、安装Pangolin
Pangolin 作为可视化和用户界面。这里需要安装0.5版本的Pangolin,若安装最新版本的,会在SLAM项目编译时报错。
Pangolin0.5下载地址:
https://github.com/stevenlovegrove/Pangolin/releases/tag/v0.5
解压到指定目录,输入命令如下:
cd Pangolin-0.5
mkdir build
cd build
cmake ..
make -j
编译成功,效果如下:
继续输入命令,进行安装:
sudo make install
安装完成后,效果如下:
二、编译ORB-SLAM2
先下载ORB-SLAM2,命令如下:
git clone https://github.com/raulmur/ORB_SLAM2.git ORB_SLAM2
cd ORB_SLAM2
chmod +x build.sh
./build.sh
若编译成功,则效果如下:
然后需要添加ROS环境路径,方法如下:
打开 /opt/ros/kinetic/setup.bash文件,在最后添加一行代码,即
export ROS_PACKAGE_PATH=${
ROS_PACKAGE_PATH}:/home/zt/ORB_SLAM2/Examples/ROS
刷新,命令如下:
source setup.sh
类似上面文件,打开~/.bashrc文件,在最后添加一行代码,即
export ROS_PACKAGE_PATH=${
ROS_PACKAGE_PATH}:/home/zt/ORB_SLAM2/Examples/ROS
刷新,命令如下:
source ~/.bashrc
完成ROS环境路径添加操作后,继续执行编译命令:
cd ORB_SLAM2
chmod +x build_ros.sh
./build_ros.sh
报错,如下:
原因是系统编译的时候找不到boost的链接库,解决方法是修改/ORB_SLAM2/Examples/ROS/ORB_SLAM2/CmakeLists.txt,添加一句
-lboost_system
如下图:
重新输入命令:
./build_ros.sh
编译成功,效果如下:
三、数据集测试
打开新的终端,输入:
roscore
打开新的终端,输入:
rosrun ORB_SLAM2 Mono Vocabulary/ORBvoc.txt Examples/ROS/ORB_SLAM2/Asus.yaml
找到之前下载的数据集,文件名为rgbd_dataset_freiburg1_room.bag,存放在catkin_rgbdslam_ws/rgdb_data目录下,在此目录下,打开新的终端,输入:
rosbag play rgbd_dataset_freiburg1_room.bag /camera/rgb/image_color:=/camera/image_raw
效果如下:
边栏推荐
- According to the analysis of the Internet industry in 2022, how to choose a suitable position?
- tansig和logsig的差异,为什么BP喜欢用tansig
- uva 1401 dp+Trie
- AcWing 1141. 局域网 题解(kruskalkruskal 求最小生成树)
- 鼠标右键 自定义
- 安利一波C2工具
- Appium automation test foundation uiautomatorviewer positioning tool
- Instructions for using the domain analysis tool bloodhound
- Can't you understand the code of linked list in C language? An article allows you to grasp the secondary pointer and deeply understand the various forms of parameter passing in the function parameter
- HDU 4661 message passing (wood DP & amp; Combinatorics)
猜你喜欢
百度飞将BMN时序动作定位框架 | 数据准备与训练指南 (下)
1123. 最深叶节点的最近公共祖先
Typical problems of subnet division and super network construction
Yunna - work order management system and process, work order management specification
Scenario practice: quickly build wordpress blog system based on function calculation
The difference between Tansig and logsig. Why does BP like to use Tansig
[signal and system]
Today's question -2022/7/4 modify string reference type variables in lambda body
百度飞将BMN时序动作定位框架 | 数据准备与训练指南 (上)
AcWing 345. Cattle station solution (nature and multiplication of Floyd)
随机推荐
LeetCode. 剑指offer 62. 圆圈中最后剩下的数
Add PDF Title floating window
编译命令行终端 swift
js如何快速创建一个长度为 n 的数组
When grep looks for a process, it ignores the grep process itself
Appium automation test foundation uiautomatorviewer positioning tool
AcWing 1148. 秘密的牛奶运输 题解(最小生成树)
设置Wordpress伪静态连接(无宝塔)
1123. 最深叶节点的最近公共祖先
字符串转成日期对象
AcWing 344. 观光之旅题解(floyd求无向图的最小环问题)
AcWing 1140. Shortest network (minimum spanning tree)
新工作感悟~辞旧迎新~
shell脚本快速统计项目代码行数
JS es5 peut également créer des constantes?
Baidu flying general BMN timing action positioning framework | data preparation and training guide (Part 1)
鼠标右键 自定义
MySQL's most basic select statement
Image watermarking, scaling and conversion of an input stream
JS ES5也可以創建常量?