基于安卓手机的ORB-SLAM3的调试运行

这篇具有很好参考价值的文章主要介绍了基于安卓手机的ORB-SLAM3的调试运行。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

基于安卓手机的ORB-SLAM3的调试运行

前言

安卓手机集成了惯性与视觉信息,作为一个轻量化的平台能够作为ORB-SLAM3的载体进行运行,作为一个slam的初学者,本文仅作为一个学习过程中遇到的各种问题以及相应的处理经验记录,如果有更好的方法也欢迎进行交流。

一、手机与PC的链接

本人参考博文https://blog.csdn.net/h_372101/article/details/108235178中提供的第二个软件APP实现电脑与手机之间的连接。首先输入roscore启动ros,将手机与电脑处于同一个网络之下,利用命令ifconfig获取当前的IP地址,并将手机软件中的localhost删除,输入上一步获取的IP地址即可完成电脑与手机之间的连接。下图中标红的位置即位对应的IP地址。
基于安卓手机的ORB-SLAM3的调试运行

二、topic转换

在完成手机与PC之间的连接之后,打开终端输入rostopic list查看当前的topic,其具体结果如下图
基于安卓手机的ORB-SLAM3的调试运行
可以看出此时输出的话题为compressed即压缩格式,进行slam时需要将其还原为raw格式进行,此时输入以下代码进行转换(每个人的topic可能不同,需要根据情况进行调整)

rosrun image_transport republish compressed in:=/camera/image raw out:=/camera/image_raw

此时再使用rostopic list即可观察到多了一个/camera/image_raw.

三、相机标定

根据ORB-SLAM3的使用方法,当使用相机的时候需要输入对应的yaml文件,因此需要对其进行标定,方法很多比如matlab拍摄照片直接用matlab进行标定或者使用kalibr进行标定,此处本人参考https://blog.csdn.net/weixin_44401286/article/details/109641268中的内容对于手机相机进行标定,注意修改对应代码中对应的topic信息即可完成相机的标定。并利用标定的信息编写对应的yaml文件,我用的是mate20手机故命名为mate20.yaml。此处仅对相机进行了标定,若需运行惯性加视觉还需要对于手机惯性传感器进行标定。

四、ORB-SLAM3运行

根据手机集成的传感器,其可以进行Mono以及Mono-inertial的运行。以上两项的运行分别需要修改/Examples/ROS/ORB_SLAM3/src中的ros_mono.cc与ros_mono_inertial.cc中对于topic的订阅信息,如下图所示,将订阅的topic修改为/camera/image_raw

基于安卓手机的ORB-SLAM3的调试运行
ros_mono.cc
基于安卓手机的ORB-SLAM3的调试运行
ros_mono_inertial.cc
在完成以上修改后,记得在ORB_SLAM3-master文件夹下打开终端,输入./build_ros.sh进行ros的重新build。
完成以上的所有修改后,若运行单目则在orb文件夹下输入

rosrun ORB_SLAM3 Mono Vocabulary/ORBvoc.txt Examples/Monocular/mate20.yaml

若运行单目+惯性则输入

rosrun ORB_SLAM3 Mono_inertial Vocabulary/ORBvoc.txt Examples/Monocular/mate20.yaml

本来到这个地方都是比较顺利的,但是此时不幸的踏入了一个深深的坑,运行程序后屏幕上一直显示waiting for image没有图像显示,我本以为是图像的订阅问题,一方面检查orb-slam3中的订阅的topic是否有错,另一方面则是利用rviz查看对应topic的输出情况,但是奇怪的是在rviz中数据是能够正常的输出的,但是orb-slam3中仍然是黑屏waiting for images,接下来便是漫长的寻找问题所在的过程。
在经过漫长的原因寻找后,终于发现了问题所在
基于安卓手机的ORB-SLAM3的调试运行
对于image_raw数据的带宽进行查询发现有60~90MB之间,怀疑数据带宽过大导致数据传输造成了一定的影响,毕竟输出的raw格式图片对于数据传输造成了极大的压力。
为了解决该问题,此处将相机输出的图片大小进行调节,查看低带宽的情况下数据传输是否堵塞。
由于本人属于小白,该问题也是困扰了一段时间才解决,最后参考博文http://gizmosmith.com/2018/09/24/configuring-video-cropping-and-resizing-with-ross-image_proc/中老哥的写法,运用image_proc/resize对于图片的分辨率进行调整以降低带宽的压力,以下为参考博文所写的launch文件

<!-- 对于图像大小进行缩放 -->
<launch>    
    <!-- Video resizing -->
    <node pkg="nodelet" type="nodelet" args="standalone image_proc/resize" name="resize_img">
    <!-- remap input topics -->
        <remap from="image" to="camera/image_raw"/>
        <remap from="camera_info" to="camera/camera_info"/>
    <!-- remap output topics -->
        <remap from="resize_image/image" to="camera_resize/image_raw"/>
        <remap from="resize_image/camera_info" to="camera_resize/camera_info"/>
    <!-- remap output topics -->
    </node>
    <node name="$(anon dynparam)" pkg="dynamic_reconfigure" type="dynparam" args="set_from_parameters resize_img">
     <param name="use_scale" type="int" value="0" />
     <param name="width" type="int" value="760" />
     <param name="height" type="int" value="360" />
    </node>
</launch>

原始的输出图像分辨率为1520760,我将其缩小的原始图像分辨率的1/2即760390,其对应的topic为resize_image/image,注意后文的topic修改。完成程序的编写后启动相应的节点,具体的输出情况利用rqt进行观察。
基于安卓手机的ORB-SLAM3的调试运行
image_raw输出的原始图像
基于安卓手机的ORB-SLAM3的调试运行
通过压缩过后的图像输出,可以看出此时输出图像大小受到了压缩。
值得注意的是到这步并不能够直接利用经过压缩后的图像进行orb-slam3的运行,由于resize之后相机的参数发生了变化,因此参考前文的做法对于相机进行再次标定。对ros_mono.cc与ros_mono_inertial.cc中对于topic的订阅信息进行修改并重新进行build。
在完成了以上所有的步骤后即可对于orb-slam3进行运行
基于安卓手机的ORB-SLAM3的调试运行
大功告成(激动)。
总的来说利用手机运行orb-slam3是一个较为繁琐的过程,不过需要在测试过程中保持一定的耐心。

总结

总的来说利用手机运行orb-slam3是一个较为繁琐的过程,网上参考别人的教程的时候很可能一个地方没写清楚就容易踏进一个大坑。不过需要在测试过程中保持一定的耐心最后总是能解决对应的问题的。文章来源地址https://www.toymoban.com/news/detail-450159.html

到了这里,关于基于安卓手机的ORB-SLAM3的调试运行的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 纯小白实践ORB-SLAM2保姆级运行指南

    此篇为博采众家博客之长,沥血整理之集大成者 本人大一学生,参加了SLAM相关的年度项目,第一步便是需要实践ORB-SLAM,在电脑上运行程序并完成可视化与实时化。预实验是跑现成的数据集,正式实验是使用实时摄像头。如图~ 在此过程中,我也是 翻遍全网找各种教程 找各

    2024年02月06日
    浏览(49)
  • ORB-SLAM3算法2之EuRoc、TUM和KITTI开源数据集运行ORB-SLAM3生成轨迹并用evo工具评估轨迹

    ORB-SLAM3算法1 已成功编译安装ORB-SLAM3到本地,本篇目的是用 EuRoc 开源数据来运

    2024年02月08日
    浏览(41)
  • 基于ORB-SLAM3库搭建SLAM系统

    博客地址:https://www.cnblogs.com/zylyehuo/ ORB-SLAM3配置及安装教程 ORB-SLAM3配置安装及运行 Win 11pro VMware 17Pro Ubuntu 18.04 Eigen3 Pangolin Opencv3.4.3 ORB-SLAM3源码: https://github.com/UZ-SLAMLab/ORB_SLAM3 安装 Pangolin 需要的依赖工具 安装 Pangolin 官网下载地址:https://opencv.org/releases/page/5/ 下载之后放在

    2024年02月03日
    浏览(50)
  • Ubuntu20.04在ROS下运行ORB-SLAM3

    目录 1.前言: 2.总体配置: 3.数据集 4.配置ORB-SLAM3 (1)添加环境变量 (2)修改文件 5.编译运行 (1)检查环境 (2)编译 6.运行 7.部分报错 (1)功能包未找到 (2)AR路径下文件的错误 (3)Pangolin库错误 (4)缺少库         小白配置ORB-SLAM3的过程真的辛酸。。各种各样

    2024年03月15日
    浏览(64)
  • 自学SLAM(2)---保姆教程教你如何使用自己的视频运行ORB-SLAM2

    如果你是新手入门,仅仅只会Linux的基本操作,并看了高翔老师视觉SLAM视屏的第一讲,那么你需要准备一整天的时间,可能还不一定能运行出来!运行ORB-SLAM2将会安装很多很多东西。那么,我们准备开始!! 我是默认你已经装了虚拟机和Ubuntu系统的!! 首先先展示一下成果

    2024年02月08日
    浏览(54)
  • ORB-SLAM2算法6之D435i双目IR相机运行ROS版ORB-SLAM2并发布位姿pose的rostopic

    ORB-SLAM2算法1已成功编译安装 ROS 版本 ORB-SLAM2 到本地,以及ORB-SLAM2算法5

    2024年02月09日
    浏览(46)
  • ORB-SLAM2学习笔记6之D435i双目IR相机运行ROS版ORB-SLAM2并发布位姿pose的rostopic

    ORB-SLAM2算法1已成功编译安装 ROS 版本 ORB-SLAM2 到本地,以及ORB-SLAM2算法5

    2024年02月14日
    浏览(47)
  • 用evo工具分析ORB-SLAM2运行TUM,KITTI,EuRoC数据集轨迹

    在ORB-SLAM2的学习过程中,不可避免的会用到这些数据集来运行程序,并且还会将运行轨迹与相机真实轨迹作对比,下面就介绍使用evo工具分析SLAM常用TUM,KITTI,EuRoC数据集。SLAM数据集TUM,KITTI,EuRoC数据集的下载地址与真实轨迹文件的查找总结的博客链接。 可以使用evo工具将

    2024年03月21日
    浏览(48)
  • ORB-SLAM3复现的详细过程——配置安装及ROS和脚本运行---Ubuntu20.04

    ORB-SLAM3代码下载地址:ORB-SLAM3源码下载 所有的操作都是在完成以下网址中的所有操作内容下进行的:Ubuntu系统安装之后首需要做的事情 本文是总结的比较完善和直接的过程。 其实在整个运行中也遇到了一些问题,也做了一些总结,记录在了文章 ORB-SLAM3复现过程中遇到的问题

    2024年02月09日
    浏览(67)
  • 【SLAM实战篇】Ubuntu 20.04版本(OpenCV版本4.5.3)对于ORB-SLAM2安装运行,代码编译,自己的数据集构造

    学完SLAM十四讲 心血来潮想跑一下ORB-SLAM2的代码,纯新手小白,自己的踩坑经历进行整理: 本文章主要对ORB-SLAM2进行编译运行。以及自己构建数据集。 源码github地址:https://github.com/raulmur/ORB_SLAM2 终端克隆代码: 查看源代码,其重要的代码库仅为三个文件夹: Example include s

    2024年03月13日
    浏览(54)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包