小强机器人运行DSO(小强PRO+Ubuntu16.04+Kinect2)

2023-10-29 07:40

本文主要是介绍小强机器人运行DSO(小强PRO+Ubuntu16.04+Kinect2),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1.用DSO原因

之前做过RGBDslam但是发现生成的稠密地图效果很好,但是发现是没有轨迹的,导师在看了RGBDSLAM之后很想要得到轨迹的图片,但是我找了很多的SLAM框架比如ORBSLAM都发现没有轨迹,只保留了关键帧。前几个框架得到对轨迹图都是离线的,不是很符合期望。然后今天在网上看到里DSO,发现这个原本是单目对系统,并且之前有过了解,但没有跑过,并且也不知道原来这个框架是会显示轨迹,然后就试着跑。但是其中遇到一些问题,好在最后都成功解决。

2.安装流程

前人栽树后人乘凉,直接甩上我参考的链接(虽然有很多坑)
https://blog.csdn.net/tatianzhuanshi/article/details/54412392

3.遇到的问题

我发现按照上面的安装流程是无法出结果的(可能是脸黑?)
但是我发现遇到问题的并不是我一个人,在评论区也有人和我遇到同样的问题,但也没有说是如何解决的(陷入僵局)。
由于这个框架需要依赖的东西很多,比如需要有Pangolin,python2.7,Kinect2的驱动等等,任何一步都会出现问题。
(1)在最后编译catkin_make这一步,发现生成不了最后需要运行的dso_live文件,很是奇怪。
在确认前面的依赖项,包括原始对DSO没有错误,我就开始从dso_ros文件上找问题。我用普通的
catkin_make指令发现并没有什么用,编译的时候没有显示生成需要的dso_live文件。
通过比较我参考的链接和我的小强手册,我发现了问题所在。
参考git的dso_ros指令:git clone https://github.com/JakobEngel/dso_ros .git
小强git的dso_ros指令:git clone https://github.com/BlueWhaleRobot/dso_ros.git
抱着试一试的心态,用了小强的指令后我发现可以了,神奇,看来是原来链接的dso_ros文件失效了。还有现在发现ros里面文件多了之后发现catkin_make指令失效了,这时候就应该用我上一篇博文里的指定指令来编译

catkin_make -DCATKIN_WHITELIST_PACKAGE="文件名"

哈哈用多了这条指令,用起来轻车熟路了!

(2)然后我就开开心心跑去运行小车了,运行的命令是
rosrun dso_ros dso_live image:=/kinect2/qhd/image_color_rect calib=/home/xiaoqiang/dso_ros/camera.txt mode=1
发现还是不行啊,发现问题一直是(核心转储),报的错误是不能识别模式1也就是mode1是什么,这明明是固有的指令,晚上没识别不了呢?我按照步骤一步步下来,后来发现了问题所在。在执行指令之前,由于DSO原先是为了单目相机做的,所以相机的内参是需要更改的,然后kinect内参虽然每个都不一样,但是也有默认值(差不太多的值)。于是要更该写一个txt文件,问题就在于此。由于代码读取相机内参的时候是有严格的格式的。我仔细查看了我的txt文件,发现多了一个空格!!!!就是那个小小的空格!!!
敲代码真的需要心思缜密,小心翼翼啊!!!

4.结果

先上结果一张,用的是VNC远程控制机器人跑的实验室短短的一条路。
在这里插入图片描述
发现效果还是不错,但是DSO框架的初始化也太慢了吧,稀疏建图效果比起RGBDSLAM的彩色稠密建图差太多啦,但是速度快很多哈哈,也是很优秀的框架,接下来深入看看这个框架的论文和代码。
还是小白,继续加油学习!大佬多多交流!

这篇关于小强机器人运行DSO(小强PRO+Ubuntu16.04+Kinect2)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!


原文地址:https://blog.csdn.net/BillyPan/article/details/99347556
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.chinasem.cn/article/299214

相关文章

k8s上运行的mysql、mariadb数据库的备份记录(支持x86和arm两种架构)

《k8s上运行的mysql、mariadb数据库的备份记录(支持x86和arm两种架构)》本文记录在K8s上运行的MySQL/MariaDB备份方案,通过工具容器执行mysqldump,结合定时任务实... 目录前言一、获取需要备份的数据库的信息二、备份步骤1.准备工作(X86)1.准备工作(arm)2.手

Java -jar命令如何运行外部依赖JAR包

《Java-jar命令如何运行外部依赖JAR包》在Java应用部署中,java-jar命令是启动可执行JAR包的标准方式,但当应用需要依赖外部JAR文件时,直接使用java-jar会面临类加载困... 目录引言:外部依赖JAR的必要性一、问题本质:类加载机制的限制1. Java -jar的默认行为2. 类加

java -jar命令运行 jar包时运行外部依赖jar包的场景分析

《java-jar命令运行jar包时运行外部依赖jar包的场景分析》:本文主要介绍java-jar命令运行jar包时运行外部依赖jar包的场景分析,本文给大家介绍的非常详细,对大家的学习或工作... 目录Java -jar命令运行 jar包时如何运行外部依赖jar包场景:解决:方法一、启动参数添加: -Xb

eclipse如何运行springboot项目

《eclipse如何运行springboot项目》:本文主要介绍eclipse如何运行springboot项目问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目js录当在eclipse启动spring boot项目时出现问题解决办法1.通过cmd命令行2.在ecl

使用nohup和--remove-source-files在后台运行rsync并记录日志方式

《使用nohup和--remove-source-files在后台运行rsync并记录日志方式》:本文主要介绍使用nohup和--remove-source-files在后台运行rsync并记录日... 目录一、什么是 --remove-source-files?二、示例命令三、命令详解1. nohup2.

Spring Boot项目打包和运行的操作方法

《SpringBoot项目打包和运行的操作方法》SpringBoot应用内嵌了Web服务器,所以基于SpringBoot开发的web应用也可以独立运行,无须部署到其他Web服务器中,下面以打包dem... 目录一、打包为JAR包并运行1.打包为可执行的 JAR 包2.运行 JAR 包二、打包为WAR包并运行

ubuntu16.04如何部署dify? 在Linux上安装部署Dify的技巧

《ubuntu16.04如何部署dify?在Linux上安装部署Dify的技巧》随着云计算和容器技术的快速发展,Docker已经成为现代软件开发和部署的重要工具之一,Dify作为一款优秀的云原生应用... Dify 是一个基于 docker 的工作流管理工具,旨在简化机器学习和数据科学领域的多步骤工作流。它

Java NoClassDefFoundError运行时错误分析解决

《JavaNoClassDefFoundError运行时错误分析解决》在Java开发中,NoClassDefFoundError是一种常见的运行时错误,它通常表明Java虚拟机在尝试加载一个类时未能... 目录前言一、问题分析二、报错原因三、解决思路检查类路径配置检查依赖库检查类文件调试类加载器问题四、常见

Python如何精准判断某个进程是否在运行

《Python如何精准判断某个进程是否在运行》这篇文章主要为大家详细介绍了Python如何精准判断某个进程是否在运行,本文为大家整理了3种方法并进行了对比,有需要的小伙伴可以跟随小编一起学习一下... 目录一、为什么需要判断进程是否存在二、方法1:用psutil库(推荐)三、方法2:用os.system调用

Python运行中频繁出现Restart提示的解决办法

《Python运行中频繁出现Restart提示的解决办法》在编程的世界里,遇到各种奇怪的问题是家常便饭,但是,当你的Python程序在运行过程中频繁出现“Restart”提示时,这可能不仅仅是令人头疼... 目录问题描述代码示例无限循环递归调用内存泄漏解决方案1. 检查代码逻辑无限循环递归调用内存泄漏2.