一、编译环境

gcc 7.5
cmake 3.22 最新的那个
opencv 3.2.0,需要改cmakelist.txt的版本号。包括 DWo2,根目录,ros文件夹下的cmakelist文件
python 2.7

二、安装orb slam3

安装参考链接 link
注意boost是最高版本1.79

三、安装orb slam3 ros

1. Pangolin v0.5(如果orb是1.0版本需要pangolin0.8)

需要gcc 11。安装error问题见https://blog.csdn.net/Robert_Q/article/details/121690089#commentBox
!重要:每次sudo make install 后需要sudo ldconfig。原因见链接。

git clone https://github.com/stevenlovegrove/Pangolin.git
cd Pangolin
git checkout  v0.8
mkdir build
cd build
cmake ..
make -j4 && sudo make install

2. cv_bridge

首选修改ros包里的cv_bridge,不然重连接我没成功过。
方法在sudo apt-get install ros-melodic-cv-bridge后,修改/opt/ros/melodic/shar/cv_bridge/cmake/cv_bridgeConfig.cmake文件,参考https://blog.csdn.net/weixin_44074560/article/details/122958605
根据自己的opencv版本重新编译:
https://blog.csdn.net/double_ZZZ/article/details/113254903
这篇可能也有用:
https://blog.csdn.net/weixin_41120855/article/details/81783081?utm_medium=distribute.pc_relevant.none-task-blog-2defaultbaidujs_title~default-1.pc_relevant_default&spm=1001.2101.3001.4242.2&utm_relevant_index=4
最后在~.bashrc中把cv_bridge引用上去

source ~/cv_bridge_ws/devel/setup.bash

3. 改代码

https://blog.csdn.net/qq_45276794/article/details/120603577

4. 按照orb3git仓库里的readme安装

就是运行./build_ros.sh

5. roscore

如果显示rosdep相关的error
source /opt/ros/melodic/setup.bash

小技巧 软链接命令:ln -s 源地址 目的地

四、使用euroc数据集测试

数据集下载地址见上面的link,保存位置与下面的命令行参数一一对应。

# 测试orb3源码好不好使
cd ORB_SLAM3
# Mono
./Examples/Monocular/mono_euroc ./Vocabulary/ORBvoc.txt ./Examples/Monocular/EuRoC.yaml /home/wang/SLAM/data/EuRoC/MH01 ./Examples/Monocular/EuRoC_TimeStamps/MH01.txt dataset-MH01_mono# Monocular-Inertial
./Examples/Monocular-Inertial/mono_inertial_euroc ./Vocabulary/ORBvoc.txt ./Examples/Monocular-Inertial/EuRoC.yaml /home/wang/SLAM/data/EuRoC/MH01 ./Examples/Monocular-Inertial/EuRoC_TimeStamps/MH01.txt dataset-MH01_monoi# 测试使用ros好不好使
# v0.4
rosrun ORB_SLAM3 Mono /home/wang/SLAM/orb_slam3/ORB_SLAM3-0.4-beta/Vocabulary/ORBvoc.txt /home/wang/SLAM/orb_slam3/ORB_SLAM3-0.4-beta/Examples/Monocular/EuRoC.yaml
# v1.0
rosrun ORB_SLAM3 Mono /home/wang/SLAM/orb_slam3/ORB_SLAM3-master/Vocabulary/ORBvoc.txt /home/wang/SLAM/orb_slam3/ORB_SLAM3-master/Examples/Monocular/EuRoC.yaml
# Monocular-Inertial
rosrun ORB_SLAM3 Mono_Inertial /home/wang/SLAM/orb_slam3/ORB_SLAM3-master/Vocabulary/ORBvoc.txt /home/wang/SLAM/orb_slam3/ORB_SLAM3-master/Examples/Monocular-Inertial/EuRoC.yaml truerosbag play ~/SLAM/data/EuRoC/MH_01_easy.bag

结果如下

五、使用海康威视单目相机测试

海康威视单目相机ROS包及参数标定方法https://blog.csdn.net/qq_37534947/article/details/116432115#t2
注意这个ros包发的 /hik_cam_node/hik_camera 中没有frame_id参数,暂时没解决这个问题
海康威视单目相机参数,其中camera matrix是内参矩阵,得到
[fx 0 cx]
[0 fy cy]
[0 0 1]
distortion是畸变参数,得到k1 k2 p1 p2 k3.

注意,如果点commit保存相机参数文件失败,需要手动将 /tmp/calibrationdata.tar.gz 解压,其中的 ost.yaml 重命名为 hik_camera.yaml 并保存至 ~/.ros/camera_info 文件夹下面。hik_camera与相机名称一致

下面是在终端中显示的标定结果

**** Calibrating ****
D = [-0.30318064649726423, 0.069185487190414, 0.0012419587934706482, -0.0030126245934705576, 0.0]
K = [700.1655092579188, 0.0, 642.3937890798327, 0.0, 703.867733396442, 341.6599142357398, 0.0, 0.0, 1.0]
R = [1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 1.0]
P = [475.14862060546875, 0.0, 628.049404518315, 0.0, 0.0, 641.0703125, 338.66773242736235, 0.0, 0.0, 0.0, 1.0, 0.0]
None
# oST version 5.0 parameters
[image]
width
1280
height
720
[narrow_stereo]
camera matrix
700.165509 0.000000 642.393789
0.000000 703.867733 341.659914
0.000000 0.000000 1.000000
distortion
-0.303181 0.069185 0.001242 -0.003013 0.000000
rectification
1.000000 0.000000 0.000000
0.000000 1.000000 0.000000
0.000000 0.000000 1.000000
projection
475.148621 0.000000 628.049405 0.000000
0.000000 641.070312 338.667732 0.000000
0.000000 0.000000 1.000000 0.000000

将其中参数提取出来保存为 zhen_mono.yaml (这个名字我起的)文件,具体内容参考链接https://blog.csdn.net/qq_42025235/article/details/123247083
下面开始测试

记得把orb3文件夹中ros_mono.cc里的topic换成 /hik_cam_node/hik_camera,然后重新./build_ros.sh 编译

# 标定摄像头参数的代码
roslaunch hikvision_ros hik.launch ip_addr:=192.168.1.64 password:=12345678ABC
rosrun camera_calibration cameracalibrator.py --size 8x5 --square 0.026 image:=/hik_cam_node/hik_camera  camera:=/hik_cam_node/hik_camera
# 8*5是指棋盘格中横竖方向黑白对顶角个数,0.026是每格实际宽度0.026m
# 测试使用海康威视单目摄像头运行的代码
roslaunch hikvision_ros hik.launch ip_addr:=192.168.1.64 password:=12345678ABC
rosrun ORB_SLAM3 Mono /home/wang/SLAM/orb_slam3/ORB_SLAM3-0.4-beta/Vocabulary/ORBvoc.txt /home/wang/zhenrobot/calibrationdata/zhen_mono.yaml

结果如下:

六、ros下输出pose

参考链接 link
除了加代码,还需要改代码:加上判断buf中是否有图像的语句

    if(!Tcw.empty()) {

ORB_SLAM3的安装与测试相关推荐

  1. my SQL下载安装,环境配置,以及密码忘记的解决,以及navicat for mysql下载,安装,测试连接...

    一.下载 在百度上搜索"mysql-5.6.24-winx64下载" 二.安装 选择安装路径,我的路径"C:\Soft\mysql-5.6.24-winx64" ...

  2. http_load安装与测试参数分析

    http_load安装与测试参数分析 http_load以并行复用的方式运行,用以测试 web 服务器的吞吐量与负载.但是它不同于大多数压力测试工具,它可以以一个单一的进程运行,一般不会把客户机搞死. ...

  3. nginx 没有sbin目录_CentOS7下Nginx+ModSecurity配置、安装、测试教程

    " 最近在工作上遇到一点问题,问了大佬.百度,都没有很好地解决:经过大量搜索查阅以及试验,终于将问题解决.于是写下这篇文章以提醒自己,也可供读者参考." 环境:CentOS-7-x ...

  4. AutoBench+Httperf的安装、测试

    首先安装Httperf.主要是Httperf网路上给出的url均无法访问,因此在GitHub上找的源码工程,进行安装. 接下来介绍安装步骤,从Github下载下来的httperf包是zip. unzi ...

  5. 安装并测试nvenc linux sdk

    2019独角兽企业重金招聘Python工程师标准>>> nvidia在cuda之后推出一种官方生成更好视频处理技术nvenc. 网上相关资料很少, 也不知道这个东西到底怎么样,自己测 ...

  6. appium for mac 安装与测试ios说明

    一.安装 安装dmg,可以自己下载appium-1.4.0.dmg或者找rtx我要,文件过大不能添加附件. Appium提供了一个doctor,运行appium-doctor 如果有问题,Fix it ...

  7. Faste R-CNN的安装及测试

    一.拉取源码 下载 fast-rcnn 因下载解压后 caffe-fast-rcnn是空文件夹,故需要单独下 caffe-fast-rcnn-bcd9b4eadc7d8fbc433aeefd564e8 ...

  8. Faster R-CNN的安装及测试(Python版本和Matlab版本)

    rbg的Python版本 一.拉取源码 git clone --recursive https://github.com/rbgirshick/py-faster-rcnn.git 拉取完成后,在/h ...

  9. Eclipse JPBC library安装及测试

    Eclipse JPBC library安装及测试 资源下载路径: 安装配置: JPBC库是一个功能很强大的数学库,用于生成椭圆曲线,双线性等,但网上参考资料很少,重复度极高,该分栏用于安装,JPBC ...

最新文章

  1. CV入门赛最全思路上分技巧汇总!
  2. linux思考の为何要挂载
  3. python中的try...except...finally函数的用法
  4. 23种设计模式C++源码与UML实现--备忘录模式
  5. 去除报错_转录组分析 | 使用trimgalore去除低质量的reads和adaptor
  6. android 巧用资源文件(不断积累)
  7. 在python中打开文件显示没有权限PermissionError: [Errno 13] Permission denied:
  8. 实际生产中,微服务用 Spring Cloud 多还是 Dubbo 多?
  9. 新浪微博开放平台_Xweibo,修改设置…
  10. IKBC poker 2更换WIN键与ALT键(option键与command键)
  11. 非透明桥 Non-Transparent Bridging (一)
  12. Android11 手动屏幕亮度调节流程代码追踪;
  13. 《孙子兵法》对现代战争还适用吗?为什么?
  14. H3C交换机对接思科交换机
  15. android8.0调用系统浏览器,ie浏览器在线使用,ie浏览器8.0手机安卓版-
  16. JS几行代码实现数字炸弹游戏
  17. html动态生成可输入的表格,动态生成表格.html
  18. 使用python 绘制统计图,(折线图,条形统计图,扇形统计图)
  19. 『 kaggle』kaggle-DATA-SCIENCE-BOWL-2018(U-net方法)
  20. 求生之路2不显示局域网服务器,【求生之路2怎么局域网联机】如何局域网联机_求生之路2局域网联机教程_游戏城...

热门文章

  1. Walfisch-Ikegami模型 建筑物的高度、建筑物间的距离、街道宽度对传输损耗的影响
  2. 数据库——实验八 触发器实验
  3. python画泡泡图片例子
  4. 2020 CCPC 秦皇岛 K. Kingdom‘s Power(树形DP)
  5. Visual Studio 2003 下载地址 V7.1各种版本官方下载网址
  6. 计算机主板和硬盘连接吗,我的计算机主板只有一个SATA2接口. 如何连接硬盘和光驱? -...
  7. IDEA修改注释字体
  8. WRL::ComPtr 的坑
  9. HTML链接:带超链接的网页
  10. Android:根据文件大小自动转化为KB, MB, GB