又一遍……ORB_SLAM2+ZED相机(SDK2.2.1)+CUDA9.0+ROS Kinetic 安装测试 some tips

2023-05-16

很久没碰过ORB_SLAM2了,今天有需要,再来试一遍~
ORB_SLAM2的github链接

1. 安装ORB_SLAM2的依赖库

按照链接一步一步来就可以
eigen直接用命令安装就可以

sudo apt-get install libeigen3-dev

2.关于ZED相机

2.1 ZED的sdk

ZED的sdk从2.*.*开始似乎消除了对OpenCV的依赖,反正要装ROS,所以OpenCV先不用管它。
安装ZED的SDK需要CUDA
我装的是2.2.1对应的是CUDA9.0,更新的对应的是9.1,更老的对应的是8.0。

我习惯用deb文件安装CUDA

ZED的SDK就是个.run文件,直接运行即可。

2.2 ZED ROS wrapper

zed-ros-wrapper github链接

cd ~/catkin_ws/src

在github页的branch的tag里面选择跟SDK对应的版本,然后下载源代码到这个目录下面

cd ../
catkin_make
source ./devel/setup.bash
注意:最后这条语句似乎只对当前命令行生效?反正ROS的路径经常怪怪的。

所以每次用zed运行orb之前我都重新source一下。

2.3 使用zed tools测试zed

安装完sdk之后

cd /usr/local/zed/tools
./ZED\ Explorer//
//或者其他的,测试一下zed是否运行正常
//注意:使用蓝色的USB3.0口,以及可以先用calibration工具标定一下(真的不是很好标啊……)

3. 关于ROS和build_ros.sh

3.1 Ubuntu16.04对应安装ROS Kinetic 对应的OpenCV版本是3.*.*

3.2 ./build_ros.sh出现的关于boost的问题

问题:undefined reference to symbol ‘_ZN5boost6system15system_categoryEv’

参考链接
验证可解决问题,给原博赞。

ros的路径

echo $ROS_PACKAGE_PATH
显示的路径:/opt/ros/kinetic/share

在bashrc中export了orbslam2中的ros路径之后
export ROS_PACKAGE_PATH=${ROS_PACKAGE_PATH}:PATH/ORB_SLAM2/Examples/ROS

显示路径变成
/opt/ros/kinetic/share:PATH/ORB_SLAM2/Examples/ROS
注意:路径经常变化,ROS_PACKAGE_PATH跟有毒似的。

4. 使用ZED相机的ROS接口,将数据流对接到ORB_SLAM2上去

4.1 看一下zed都有啥数据流

cd ~/catkin_ws
source ./devel/setup.bash
roslaunch zed_wrapper zed.launch

如果

roslaunch zed_wrapper display.launch

会出现rviz的界面
看到命令行里面有这样几行
这里写图片描述
我想使用的是校正后的图像,校正过的图像各条边线都很平,看起来很舒爽,校正的图像和没校正的图像可以用以下命令查看

roslaunch zed_wrapper zed.launch

//打开另外一个命令行
rqt_image_view

/zed/left/image_raw_color 左目未校正图像,原图
这里写图片描述
/zed/left/image_rect_color 左目已校正图像,可以看得到明显的区别。
起码肉眼可见的枕形畸变消除了。
这里写图片描述

好的,确定使用这两个数据流

/zed/left/image_rect_color
/zed/right/image_rect_color

4.2 使用ORB_SLAM2+ZED

比较简单的方法

//先用echo $ROS_PACKAGE_PATH检查一下ROS的路径对不对
cd ~/catkin_ws
source ./devedl/setup.bash   //放到bashrc里面有时候会有问题,为求保险啦

roscore
//再开一个命令行 
roslaunch zed_wrapper zed.launch
//再开一个命令行
//先进入ORB_SLAM2的根目录下
rosrun ORB_SLAM2 Stereo Vocabulary/ORBvoc.txt Examples/Stereo/EuRoC.yaml false /camera/left/image_raw:=/zed/left/image_rect_color /camera/right/image_raw:=/zed/right/image_rect_color

//false的含义是do not rectify,因为使用了校正后的图像,所以不再校正,所以YAML文件也无所谓啦
//如果需要校正的话,需要自己写一个yaml文件,写入自己的传感器的标定参数,比如说使用普通的网络摄像头(Mono),然后选true

结果图
这里写图片描述

或者是仿照
/ORB_SLAM2/Examples/ROS/ORB_SLAM2/src目录下的ros_stereo.cc建立一个新的文件,比如说叫ros_zed_stereo_rect.cc
把代码复制过去,只需要更改

message_filters::Subscriber<sensor_msgs::Image> left_sub(nh, "/zed/left/image_rect_color", 1);
message_filters::Subscriber<sensor_msgs::Image> right_sub(nh, "/zed/right/image_rect_color",1);

然后修改CmakeLists.txt
加入:

# Node for ZED camera
rosbuild_add_executable(zed_Stereo_rect
src/ros_zed_stereo_rect.cc
)

target_link_libraries(zed_Stereo_rect
${LIBS}
)

然后重新编译,在ORB_SLAM2的根目录下

./build_ros.sh

会新生成一个可执行文件叫zed_Stereo_rect
然后,一样的步骤

//先用echo $ROS_PACKAGE_PATH检查一下ROS的路径对不对
cd ~/catkin_ws
source ./devel/setup.bash   //放到bashrc里面有时候会有问题,为求保险啦

roscore
//再开一个命令行 
roslaunch zed_wrapper zed.launch
//再开一个命令行
//先进入ORB_SLAM2的根目录下
rosrun ORB_SLAM2 Stereo Vocabulary/ORBvoc.txt Examples/Stereo/EuRoC.yaml false 
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

又一遍……ORB_SLAM2+ZED相机(SDK2.2.1)+CUDA9.0+ROS Kinetic 安装测试 some tips 的相关文章

  • LINUX amixer工具及kcontrol使用

    网上对amixer工具的使用较多 xff0c 但使用kcontrol coding的例子有限 xff0c 目前比较好的一篇文章如下 xff1a http blog chinaunix net uid 27875 id 5783294 htm
  • 小波部分特征说明和小波特征比较---未写完

    小波特征 1 xff1a 多分辨分析可以对信号进行有效的时频分分解 xff0c 但是由于其尺度函数是按二进制变化的 xff0c 因此在高频段器频率分辨率较差 xff0c 对信号的频段进行指数等间隔划分 小波包能够为信号提供一种更加精细的分析
  • 《国产嵌入式微系统msOS成型记》之终结篇——嵌入式微系统msOS的出发点:应用

    http www eefocus com embedded 329047 msOS设计的本意是为电子类设备及PLC设计的 xff0c 一开始想着仿造西门子的S7 300来设计一套基于CAN通讯的分布式PLC xff0c 然而当设计了几个硬件
  • Debian10(英文环境)安装中文输入法fcitx

    执行 locale 以及 cat etc locale gen 查看当前数据 sudo dpkg reconfigure locales 本身默认已经选择了 en US UTF 8 UTF 8 增加几个zh CN选项 然后ok 然后这里继续
  • 小批量数据测试模型容易出现Bug

    如果是直接用的原来数据集类的数据 xff0c 截取出来后 xff0c 数据范围为 0 255 xff0c 需要手动实现transform的功能
  • Windbg介绍

    文章目录 1 介绍1 1 相关网站1 2 下载1 3 符号配置 2 常用命令2 1 常用的标准命令2 2 常用的 96 96 命令有2 3 常用的 96 96 命令有 3 调试环境搭建3 1 实时调试进程3 2 调试进程dump3 3 调试
  • 笔记本电脑 (天梯图) 处理器 和 显卡

    游戏本一般是i5 9300H起步 xff0c 低于这个标准的游戏本不建议购买 另外需要注意的是不要被10代CPU唬住了 xff0c 拿最近卖的比较火的i5 10210U来说 xff0c 其性能还不如8代的i5 8300H 我们以移动版GTX
  • ActiveX开发详解

    配套源码 http download csdn net detail mingojiang 4743623 转载请注明出自 http blog csdn net MingoJiang 一 ActiveX基础 1 1什么是ActiveX Ac
  • GNVM - Node.js 多版本管理器

    GNVM Node js 多版本管理器 GNVM 是一个简单的 Windows 下 Node js 多版本管理器 xff0c 类似的 nvm nvmw nodist c gt gnvm install latest 1 0 0 x86 1
  • hadoop入门-wordcount

    hadoop是阿帕奇基金会的一个顶级项目 xff0c 主要用于大量的廉价机器组成的集群去执行大规模运算 xff0c 主要是海量数据的处理 在hadoop官网 xff08 http hadoop apache org xff09 hadoop
  • aptitude和apt-get的区别和联系【转,有添加和修改】

    起初GNU Linux系统中只有 tar gz 用户 必须自己编译他们想使用的每一个程序 在Debian出现之後 xff0c 人们认为有必要在系统 中添加一种机 制用来管理 安装在计算机上的软件包 人们将这套系统称为dpkg 至此着名的 p
  • Mac终端配置代理

    export http proxy 61 socks5 127 0 0 1 49719 配置http访问 export https proxy 61 socks5 127 0 0 1 49719 配置https export all pro
  • 如何将Java程序打成可执行jar包

    前几天 xff0c 公司运维找我让我帮他写个Java小程序 xff0c 读取磁盘指定目录的文件 xff0c 然后根据读取的内容查询第三方接口 xff0c 再将第三方接口响应的数据写入磁盘文件 然后我花了半天给他写了这个小程序 xff0c 但
  • javafx_scenebuilder-2_0-windows.msi 百度云盘下载

    javafx scene builder 官网下载很慢 网上有很多人分享 xff0c 都要付积分下载 下面是从官网下载好的 xff0c 传我百度网盘了 xff0c 有需要的大家去下载吧 链接 xff1a https pan baidu co
  • 100+套Axure数据可视化大屏展示原型模板及通用主键库

    内置多种实用美观的可视化组件库及行业模板库 xff0c 行业模板涵盖 xff1a 金融 教育 医疗 政府 交通 制造等多个行业 xff0c 提供设计参考 随着大数据的发展 xff0c 可视化大屏在各行各业得到越来越广泛的应用 可视化大屏不再
  • 数据可视化大屏UI界面

    数据可视化大屏 科技大屏展示 智慧城市 智慧农业 领导页展示大屏 PSD文件 UI可视化大屏模板PSD文件 156套可视化大屏PSD设计文件 xff0c 送给有需要的人 格式格式 xff1a PSD jpg 适合人群 xff1a 可视化大屏
  • SpringBoot 自定义注解实现Redis缓存功能

    背景 最近小A的公司要做一个大屏可视化平台 xff0c 主要是给领导看的 xff0c 领导说这个项目要给领导演示 xff0c 效果好不好直接关系到能不能拿下这个项目 xff0c 领导还补了一句 这项目至少是百万级的 xff0c 大伙要全力以
  • Linux 下 chmod 777 修改权限

    一 rwxrwxrwx 777 Unix Linux 的操作系统 xff0c 每个文件 文件夹也被看作是文件 都按读 写 运行设定权限 例如用ls l命令列文件表时 xff0c 得到如下输出 xff1a rw r r 1 mchopin u
  • Spring创建对象初始化bean的时机分为两种形式:

    import org junit Test import org springframework context ApplicationContext import org springframework context support C
  • 页面动态数据的滚动效果——jquery滚动组件(vticker.js)

    lt script language 61 34 javascript 34 src 61 34 lirms Test jquery 1 4 2 js 34 gt lt script gt lt script language 61 34

随机推荐

  • MySQL 查询结果以百分比显示

    找了一些资料 xff0c 然后我是用到了MySQL字符串处理中的两个函数concat 和left 1 span style color ff0000 CONCAT span str1 str2 返回来自于参数连结的字符串 如果任何参数是 N
  • rpm包安装过程中依赖问题“libc.so.6 is needed by XXX”解决方法

    转自 xff1a http raksmart idcspy com 781 rpm包安装过程中依赖问题 libc so 6 is needed by XXX 解决方法 与本教程高度相关文章 xff08 读完应该可以解决你的问题 xff09
  • 艺博: linux命令大宝典系列之mkdir创建目录

    在成长的过程中 人总要经历一些痛苦和挫折才能更加成熟与坚强 目录 mkdir是什么mkdir的语法mkdir的选项含义mkdir的实例1 使用mkdir命令创建一个dir1目录 默认权限775 2 使用mkdir m命令新建一个dir2目录
  • linux命令xrandr修改桌面分辨率

    xrandr临时修改分辨率 方法一 打开终端xrandr Screen 0 minimum 8 x 8 current 1366 x 768 maximum 32767 x 32767 eDP1 connected primary 1366
  • Python 教你训练一个98%准确率的微博抑郁文本分类模型(含数据)

    Paddle是一个比较高级的深度学习开发框架 xff0c 其内置了许多方便的计算单元可供使用 xff0c 我们之前写过PaddleHub相关的文章 xff1a 1 Python 识别文本情感就这么简单 2 比PS还好用 xff01 Pyth
  • 记一次神奇的时间转换问题(SheetJS)

    最近在写一个功能 xff0c 使用SheetJS读取Excel表格 xff0c 在读取日期的时候发现了一个隐藏很深的坑 xff0c 特此记录一下 SheetJS读取Excel文件时 xff0c 可指定参数 cellDates true xf
  • 通信常识

    bsc指的是基站控制器 xff08 Base Station Controller xff09 由一下模块组成 xff1a AM CM模块 xff1a 话路交换和信息交换的中心 BM模块 xff1a 完成呼叫处理 信令处理 无线资源管理 无
  • python解析基于xml格式的日志文件

    大家中午好 xff0c 由于过年一直还没回到状态 xff0c 好久没分享一波小知识了 xff0c 今天 xff0c 继续给大家分享一波python解析日志的小脚本 首先 xff0c 同样的先看看日志是个啥样 都是xml格式的 xff0c 是
  • 如何在无显示屏的情况下调试树莓派

    一 准备 1 树莓派 xff1b 2 SD卡 读卡器 网线 xff1b 3 系统镜像下载链接 xff1b 4 软件 xff1a SD Card Formatter下载链接 xff1b balenaEtcher下载链接 xff1b VNC V
  • VNC怎么和宿主机共享粘贴板

    VNC怎么和宿主机共享粘贴板 假设目标主机是linux xff0c 终端主机是windows xff08 就是在windows上使用VNC登陆linux xff09 在linux中执行vncconfig nowin amp 在linux选中
  • 系统调用,进程切换

    模式切换 不等同于 进程上下文切换 当进程调用系统调用或者发生中断时 xff0c CPU从用户模式 xff08 用户态 xff09 切换成内核模式 xff08 内核态 xff09 xff0c 此时 xff0c 无论是系统调用程序还是中断服务
  • brew换源

    bin zsh c 34 curl fsSL https gitee com cunkai HomebrewCN raw master Homebrew sh 34 mac安装homebrew失败怎么办 xff1f 金牛肖马的回答 知乎 h
  • 2022年书单

    2022年书单 纸质书 类别序号书名进度社会科学0 从零开始的女性主义 x1f44c 社会科学1 如何抑制女性写作 x1f44c 社会科学2 父权制与资本主义 社会科学3 下流社会 x1f44c 社会科学4 低欲望社会 x1f44c 社会科
  • 书店漫游记录

    目录 北京 上海 杭州 天津 南京 青岛 深圳 香港 北京 万圣书园 豆瓣书店 野草书店 三联韬奋书店 xff08 三里屯 xff09 三联韬奋书店 xff08 美术馆 xff09 Pageone xff08 北京坊 xff09 Pageo
  • C++ std::string 不可初始化为NULL及基本用法

    偶然看到一个问题 xff0c 顺便总结一下std string C 43 43 basic string S construct null not valid stackoverflow例子 std string 字符串不可以初始化为NUL
  • 通过查看端口状态查看mongodb是否已经启动

    LINUX环境下 xff0c 可以通过查看端口27017的状态查看mongod是否已经启动 netstat lanp span class hljs string grep 34 span span class hljs number 27
  • linux & windows C++开发差异

    新手注意事项 1 文件与目录的大小写以及路径分隔符的差别 windows下不区分大小写 xff0c 路径分隔符一般使用 xff1b linux下区分大小写 xff0c 路径分隔符使用 2 itoa 函数在linux下并不存在 所以使用类似s
  • 深度学习结合SLAM的研究思路/成果整理之(一)使用深度学习方法替换SLAM中的模块

    整理了部分近两年深度学习结合SLAM的一些研究成果 xff08 参考知乎帖子https www zhihu com question 66006923 和泡泡机器人公众号 xff0c 附上论文链接和已找到的源代码 数据集链接 xff0c 大
  • 深度学习与自动驾驶领域的数据集(KITTI,Oxford,Cityscape,Comma.ai,BDDV,TORCS,Udacity,GTA,CARLA,Carcraft)

    http blog csdn net solomon1558 article details 70173223 Torontocity HCI middlebury caltech 行人检测数据集 ISPRS航拍数据集 mot challe
  • 又一遍……ORB_SLAM2+ZED相机(SDK2.2.1)+CUDA9.0+ROS Kinetic 安装测试 some tips

    很久没碰过ORB SLAM2了 xff0c 今天有需要 xff0c 再来试一遍 xff5e ORB SLAM2的github链接 1 安装ORB SLAM2的依赖库 按照链接一步一步来就可以 eigen直接用命令安装就可以 sudo apt