小强机器人运行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)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/299214

相关文章

Linux使用nohup命令在后台运行脚本

《Linux使用nohup命令在后台运行脚本》在Linux或类Unix系统中,后台运行脚本是一项非常实用的技能,尤其适用于需要长时间运行的任务或服务,本文我们来看看如何使用nohup命令在后台... 目录nohup 命令简介基本用法输出重定向& 符号的作用后台进程的特点注意事项实际应用场景长时间运行的任务服

如何在一台服务器上使用docker运行kafka集群

《如何在一台服务器上使用docker运行kafka集群》文章详细介绍了如何在一台服务器上使用Docker运行Kafka集群,包括拉取镜像、创建网络、启动Kafka容器、检查运行状态、编写启动和关闭脚本... 目录1.拉取镜像2.创建集群之间通信的网络3.将zookeeper加入到网络中4.启动kafka集群

Ubuntu 24.04 LTS怎么关闭 Ubuntu Pro 更新提示弹窗?

《Ubuntu24.04LTS怎么关闭UbuntuPro更新提示弹窗?》Ubuntu每次开机都会弹窗提示安全更新,设置里最多只能取消自动下载,自动更新,但无法做到直接让自动更新的弹窗不出现,... 如果你正在使用 Ubuntu 24.04 LTS,可能会注意到——在使用「软件更新器」或运行 APT 命令时,

Python基于火山引擎豆包大模型搭建QQ机器人详细教程(2024年最新)

《Python基于火山引擎豆包大模型搭建QQ机器人详细教程(2024年最新)》:本文主要介绍Python基于火山引擎豆包大模型搭建QQ机器人详细的相关资料,包括开通模型、配置APIKEY鉴权和SD... 目录豆包大模型概述开通模型付费安装 SDK 环境配置 API KEY 鉴权Ark 模型接口Prompt

最便宜的8口2.5G网管交换机! 水星SE109 Pro拆机测评

《最便宜的8口2.5G网管交换机!水星SE109Pro拆机测评》水星SE109Pro价格很便宜,水星SE109Pro,外观、接口,和SE109一样,区别Pro是网管型的,下面我们就来看看详细拆... 听说水星SE109 Pro开卖了,PDD卖 220元,于是买回来javascript拆机看看。推荐阅读:水

PostgreSQL如何用psql运行SQL文件

《PostgreSQL如何用psql运行SQL文件》文章介绍了两种运行预写好的SQL文件的方式:首先连接数据库后执行,或者直接通过psql命令执行,需要注意的是,文件路径在Linux系统中应使用斜杠/... 目录PostgreSQ编程L用psql运行SQL文件方式一方式二总结PostgreSQL用psql运

如何用Docker运行Django项目

本章教程,介绍如何用Docker创建一个Django,并运行能够访问。 一、拉取镜像 这里我们使用python3.11版本的docker镜像 docker pull python:3.11 二、运行容器 这里我们将容器内部的8080端口,映射到宿主机的80端口上。 docker run -itd --name python311 -p

跨系统环境下LabVIEW程序稳定运行

在LabVIEW开发中,不同电脑的配置和操作系统(如Win11与Win7)可能对程序的稳定运行产生影响。为了确保程序在不同平台上都能正常且稳定运行,需要从兼容性、驱动、以及性能优化等多个方面入手。本文将详细介绍如何在不同系统环境下,使LabVIEW开发的程序保持稳定运行的有效策略。 LabVIEW版本兼容性 LabVIEW各版本对不同操作系统的支持存在差异。因此,在开发程序时,尽量使用

如何在运行时修改serialVersionUID

优质博文:IT-BLOG-CN 问题 我正在使用第三方库连接到外部系统,一切运行正常,但突然出现序列化错误 java.io.InvalidClassException: com.essbase.api.base.EssException; local class incompatible: stream classdesc serialVersionUID = 90314637791991

基于树梅派的视频监控机器人Verybot

最近这段时间做了一个基于树梅派 ( raspberry pi ) 的视频监控机器人平台 Verybot ,现在打算把这个机器人的一些图片、视频、设计思路进行公开,并且希望跟大家一起研究相关的各种问题,下面是两张机器人的照片:         图片1:                   图片2                    这个平台的基本组成是: